commit 149dcc26944e163e3868c42fec0e80b3e92e844f Author: thkim Date: Thu Mar 14 11:46:01 2024 +0900 build: 2024-02-26 최신 소스코드 diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..f90d8a5 --- /dev/null +++ b/.classpath @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f4699a4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,92 @@ +.idea/ +/target +.metadata +bin/ +tmp/ +*.tmp +*.bak +*.swp +*~.nib +local.properties +.settings/ +.loadpath +.recommenders + +# External tool builders +.externalToolBuilders/ + +# Locally stored "Eclipse launch configurations" +*.launch + +# PyDev specific (Python IDE for Eclipse) +*.pydevproject + +# CDT-specific (C/C++ Development Tooling) +.cproject + +# CDT- autotools +.autotools + +# Java annotation processor (APT) +.factorypath + +# PDT-specific (PHP Development Tools) +.buildpath + +# sbteclipse plugin +.target + +# Tern plugin +.tern-project + +# TeXlipse plugin +.texlipse + +# STS (Spring Tool Suite) +.springBeans + +# Code Recommenders +.recommenders/ + +# Annotation Processing +.apt_generated/ +.apt_generated_test/ + +# Scala IDE specific (Scala & Java development for Eclipse) +.cache-main +.scala_dependencies +.worksheet + +# Uncomment this line if you wish to ignore the project description file. +# Typically, this file would be tracked if it contains build/dependency configurations: +#.project + +.svn +======= +# ---> Java +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* +replay_pid* + +logs/ \ No newline at end of file diff --git a/.project b/.project new file mode 100644 index 0000000..e8d6024 --- /dev/null +++ b/.project @@ -0,0 +1,54 @@ + + + geoinfo_admin + + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/org.eclipse.wst.jsdt.core.javascriptValidator.launch + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.springframework.ide.eclipse.core.springbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.jdt.core.javanature + org.springframework.ide.eclipse.core.springnature + egovframework.dev.imp.ide.natures.egovnature + org.eclipse.wst.jsdt.core.jsNature + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..89cb74d --- /dev/null +++ b/pom.xml @@ -0,0 +1,519 @@ + + + 4.0.0 + ictway.com.git.geoinfo + geoinfo + war + 1.0.0 + geoinfo + http://www.egovframe.go.kr + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + + + + 1.7 + 3.2.4.RELEASE + 1.7.3 + 1.6.6 + 3.0.3 + + 4.0.9.RELEASE + 3.5.0 + + + + + + mesir-repo + http://mesir.googlecode.com/svn/trunk/mavenrepo + + + mvn2 + http://repo1.maven.org/maven2/ + + true + + + true + + + + + egovframe + http://www.egovframe.go.kr/maven/ + + true + + + false + + + + + oracle + ORACLE JDBC Repository + http://mesir.googlecode.com/svn/trunk/mavenrepo + + + + + + + + + org.apache.ws.xmlrpc + xmlrpc + 2.0.1 + + + + + egovframework.rte + egovframework.rte.ptl.mvc + ${egovframework.rte.version} + + + commons-logging + commons-logging + + + + + egovframework.rte + egovframework.rte.psl.dataaccess + 2.7.0 + + + egovframework.rte + egovframework.rte.fdl.idgnr + ${egovframework.rte.version} + + + egovframework.rte + egovframework.rte.fdl.property + ${egovframework.rte.version} + + + + + org.springframework + spring-context + ${org.springframework-version} + + + + commons-logging + commons-logging + + + + + + org.springframework + spring-web + ${org.springframework-version} + + + + org.springframework + spring-webmvc + ${org.springframework-version} + + + + org.springframework + spring-aop + ${org.springframework-version} + + + + org.springframework + spring-beans + ${org.springframework-version} + + + + org.springframework + spring-context-support + ${org.springframework-version} + + + + org.springframework + spring-core + ${org.springframework-version} + + + + org.springframework + spring-jdbc + ${org.springframework-version} + + + + org.springframework + spring-tx + ${org.springframework-version} + + + + + aopalliance + aopalliance + 1.0 + + + + + org.mybatis + mybatis + 3.2.2 + + + + org.mybatis + mybatis-spring + 1.2.0 + + + + + org.apache.tomcat + tomcat-dbcp + provided + 7.0.53 + + + + commons-dbcp + commons-dbcp + 1.4 + + + + + mysql + mysql-connector-java + 5.1.31 + + + + + + + com.oracle.database.jdbc + ojdbc6 + 11.2.0.4 + + + + + postgresql + postgresql + 9.1-901.jdbc4 + + + + + org.aspectj + aspectjrt + ${org.aspectj-version} + + + + org.aspectj + aspectjweaver + ${org.aspectj-version} + + + + org.aspectj + aspectjtools + ${org.aspectj-version} + + + + + javax.servlet + servlet-api + provided + 2.5 + + + + javax.servlet.jsp + jsp-api + provided + 2.1 + + + + javax.servlet + jstl + 1.2 + + + + javax.annotation + jsr250-api + 1.0 + + + + + org.slf4j + slf4j-api + ${org.slf4j-version} + + + org.slf4j + jcl-over-slf4j + ${org.slf4j-version} + + + org.slf4j + slf4j-log4j12 + ${org.slf4j-version} + + + log4j + log4j + 1.3alpha-8 + + + org.lazyluke + log4jdbc-remix + 0.2.7 + + + + + org.codehaus.jackson + jackson-mapper-asl + 1.9.13 + + + + org.codehaus.jackson + jackson-core-asl + 1.9.13 + + + + com.fasterxml.jackson.core + jackson-core + 2.3.2 + + + com.fasterxml.jackson.core + jackson-databind + 2.3.2 + + + com.fasterxml.jackson.core + jackson-annotations + 2.3.2 + + + org.springframework + spring-oxm + ${spring.maven.artifact.version} + + + + + commons-io + commons-io + 2.0.1 + + + + commons-fileupload + commons-fileupload + 1.2.2 + + + + + commons-codec + commons-codec + 1.10 + + + + + egovframework.rte + egovframework.rte.fdl.property + 2.7.0 + + + + + log4j + log4j + 1.2.17 + + + javax.mail + mail + + + javax.jms + jms + + + com.sun.jdmk + jmxtools + + + com.sun.jmx + jmxri + + + + + + + javax.inject + javax.inject + 1 + + + + org.apache.maven.plugins + maven-war-plugin + 2.3 + + + + + org.apache.tiles + tiles-jsp + ${org.apache.tiles.version} + + + org.apache.tiles + tiles-core + ${org.apache.tiles.version} + + + + + net.sf.jasperreports + jasperreports + 5.1.0 + + + + com.jfinal + cos + 26Dec2008 + + + + + + org.jdom + jdom + 2.0.2 + + + + + + org.apache.poi + poi + 3.16 + + + + org.apache.poi + poi-excelant + 3.16 + + + + org.apache.poi + poi-ooxml-schemas + 3.16 + + + + org.apache.poi + poi-ooxml + 3.16 + + + + org.apache.poi + poi-scratchpad + 3.16 + + + + + + + + + + install + ${basedir}/target + geoinfo_eGov + + + maven-eclipse-plugin + 2.9 + + + org.springframework.ide.eclipse.core.springnature + + + org.springframework.ide.eclipse.core.springbuilder + + true + true + + + + org.apache.maven.plugins + maven-compiler-plugin + 2.5.1 + + ${java-version} + ${java-version} + UTF-8 + -Xlint:all + true + true + + + + org.codehaus.mojo + exec-maven-plugin + 1.2.1 + + org.test.int1.Main + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.5 + + + + \ No newline at end of file diff --git a/src/main/java/egovframework/com/cmm/ComDefaultCodeVO.java b/src/main/java/egovframework/com/cmm/ComDefaultCodeVO.java new file mode 100644 index 0000000..04e5518 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/ComDefaultCodeVO.java @@ -0,0 +1,185 @@ +package egovframework.com.cmm; + +import java.io.Serializable; + +import org.apache.commons.lang3.builder.ToStringBuilder; + +/** + * 클래스 + * @author 공통서비스개발팀 이삼섭 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------       --------    ---------------------------
+ *   2009.3.11   이삼섭          최초 생성
+ *
+ * 
+ */ +@SuppressWarnings("serial") +public class ComDefaultCodeVO implements Serializable { + /** 코드 ID */ + private String codeId = ""; + + /** 상세코드 */ + private String code = ""; + + /** 코드명 */ + private String codeNm = ""; + + /** 코드설명 */ + private String codeDc = ""; + + /** 특정테이블명 */ + private String tableNm = ""; //특정테이블에서 코드정보를추출시 사용 + + /** 상세 조건 여부 */ + private String haveDetailCondition = "N"; + + /** 상세 조건 */ + private String detailCondition = ""; + + /** + * codeId attribute를 리턴한다. + * + * @return the codeId + */ + public String getCodeId() { + return codeId; + } + + /** + * codeId attribute 값을 설정한다. + * + * @param codeId + * the codeId to set + */ + public void setCodeId(String codeId) { + this.codeId = codeId; + } + + /** + * code attribute를 리턴한다. + * + * @return the code + */ + public String getCode() { + return code; + } + + /** + * code attribute 값을 설정한다. + * + * @param code + * the code to set + */ + public void setCode(String code) { + this.code = code; + } + + /** + * codeNm attribute를 리턴한다. + * + * @return the codeNm + */ + public String getCodeNm() { + return codeNm; + } + + /** + * codeNm attribute 값을 설정한다. + * + * @param codeNm + * the codeNm to set + */ + public void setCodeNm(String codeNm) { + this.codeNm = codeNm; + } + + /** + * codeDc attribute를 리턴한다. + * + * @return the codeDc + */ + public String getCodeDc() { + return codeDc; + } + + /** + * codeDc attribute 값을 설정한다. + * + * @param codeDc + * the codeDc to set + */ + public void setCodeDc(String codeDc) { + this.codeDc = codeDc; + } + + /** + * tableNm attribute를 리턴한다. + * + * @return the tableNm + */ + public String getTableNm() { + return tableNm; + } + + /** + * tableNm attribute 값을 설정한다. + * + * @param tableNm + * the tableNm to set + */ + public void setTableNm(String tableNm) { + this.tableNm = tableNm; + } + + /** + * haveDetailCondition attribute를 리턴한다. + * + * @return the haveDetailCondition + */ + public String getHaveDetailCondition() { + return haveDetailCondition; + } + + /** + * haveDetailCondition attribute 값을 설정한다. + * + * @param haveDetailCondition + * the haveDetailCondition to set + */ + public void setHaveDetailCondition(String haveDetailCondition) { + this.haveDetailCondition = haveDetailCondition; + } + + /** + * detailCondition attribute를 리턴한다. + * + * @return the detailCondition + */ + public String getDetailCondition() { + return detailCondition; + } + + /** + * detailCondition attribute 값을 설정한다. + * + * @param detailCondition + * the detailCondition to set + */ + public void setDetailCondition(String detailCondition) { + this.detailCondition = detailCondition; + } + + /** + * toString 메소드를 대치한다. + */ + public String toString() { + return ToStringBuilder.reflectionToString(this); + } +} diff --git a/src/main/java/egovframework/com/cmm/EgovComExcepHndlr.java b/src/main/java/egovframework/com/cmm/EgovComExcepHndlr.java new file mode 100644 index 0000000..84e2630 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/EgovComExcepHndlr.java @@ -0,0 +1,46 @@ +package egovframework.com.cmm; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import egovframework.rte.fdl.cmmn.exception.handler.ExceptionHandler; + +/** + * @Class Name : EgovComExcepHndlr.java + * @Description : 공통서비스의 exception 처리 클래스 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- ------- ------------------- + * 2009. 3. 13. 이삼섭 + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 3. 13. + * @version + * @see + * + */ +public class EgovComExcepHndlr implements ExceptionHandler { + + protected Log log = LogFactory.getLog(this.getClass()); + + /* + @Resource(name = "otherSSLMailSender") + private SimpleSSLMail mailSender; + */ + /** + * 발생된 Exception을 처리한다. + */ + public void occur(Exception ex, String packageName) { + //log.debug(" EgovServiceExceptionHandler run..............."); + try { + //mailSender. send(ex, packageName); + //log.debug(" sending a alert mail is completed "); + log.error(packageName, ex); + } catch (Exception e) { + //e.printStackTrace(); + log.fatal(packageName, ex);// 2011.10.10 보안점검 후속조치 + //throw new RuntimeException(ex); + } + } +} diff --git a/src/main/java/egovframework/com/cmm/EgovComOthersExcepHndlr.java b/src/main/java/egovframework/com/cmm/EgovComOthersExcepHndlr.java new file mode 100644 index 0000000..3cd4b1d --- /dev/null +++ b/src/main/java/egovframework/com/cmm/EgovComOthersExcepHndlr.java @@ -0,0 +1,16 @@ +package egovframework.com.cmm; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import egovframework.rte.fdl.cmmn.exception.handler.ExceptionHandler; + +public class EgovComOthersExcepHndlr implements ExceptionHandler { + + protected Log log = LogFactory.getLog(this.getClass()); + + public void occur(Exception exception, String packageName) { + //log.debug(" EgovServiceExceptionHandler run..............."); + log.error(packageName, exception); + } +} diff --git a/src/main/java/egovframework/com/cmm/EgovComTraceHandler.java b/src/main/java/egovframework/com/cmm/EgovComTraceHandler.java new file mode 100644 index 0000000..ef15e3d --- /dev/null +++ b/src/main/java/egovframework/com/cmm/EgovComTraceHandler.java @@ -0,0 +1,34 @@ +package egovframework.com.cmm; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import egovframework.rte.fdl.cmmn.trace.handler.TraceHandler; + +/** + * @Class Name : EgovComTraceHandler.java + * @Description : 공통서비스의 trace 처리 클래스 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- ------- ------------------- + * 2011. 09. 30. JJY + * + * @author JJY + * @since 2011. 9. 30. + * + */ +public class EgovComTraceHandler implements TraceHandler { + + private static final Logger LOGGER = LoggerFactory.getLogger(EgovComTraceHandler.class); + + /** + * 발생된 메시지를 출력한다. + */ + @Override + public void todo(Class clazz, String message) { + LOGGER.debug("[TRACE]CLASS::: {}", clazz.getName()); + LOGGER.debug("[TRACE]MESSAGE::: {}", message); + //이곳에서 후속처리로 필요한 액션을 취할 수 있다. + } +} diff --git a/src/main/java/egovframework/com/cmm/EgovComponentChecker.java b/src/main/java/egovframework/com/cmm/EgovComponentChecker.java new file mode 100644 index 0000000..174fdb8 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/EgovComponentChecker.java @@ -0,0 +1,62 @@ +package egovframework.com.cmm; + +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.NoSuchBeanDefinitionException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Service; + + +/** + * EgovComUtil 클래스 + * + * @author 서준식 + * @since 2011.09.15 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    -------------    ----------------------
+ *   2011.09.15  서준식        최초 생성
+ * 
+ */ + +@Service("egovUtil") +public class EgovComponentChecker implements ApplicationContextAware{ + + + public static ApplicationContext context; + + public void setApplicationContext(ApplicationContext context) + throws BeansException { + + this.context = context; + } + + + /** + * Spring MVC에서 설정한 빈이 아닌 서비스 빈(컴포넌트)만을 검색할 수 있음 + * + */ + public static boolean hasComponent(String componentName){ + + try{ + Object component = context.getBean(componentName); + + if(component == null){ + return false; + }else{ + return true; + } + + }catch(NoSuchBeanDefinitionException ex){// 해당 컴포넌트를 찾을 수없을 경우 false반환 + return false; + } + } + + + +} diff --git a/src/main/java/egovframework/com/cmm/EgovMessageSource.java b/src/main/java/egovframework/com/cmm/EgovMessageSource.java new file mode 100644 index 0000000..63a1d5b --- /dev/null +++ b/src/main/java/egovframework/com/cmm/EgovMessageSource.java @@ -0,0 +1,55 @@ +package egovframework.com.cmm; + +import java.util.Locale; + +import org.springframework.context.MessageSource; +import org.springframework.context.support.ReloadableResourceBundleMessageSource; + +/** + * 메시지 리소스 사용을 위한 MessageSource 인터페이스 및 ReloadableResourceBundleMessageSource 클래스의 구현체 + * @author 공통서비스 개발팀 이문준 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.03.11  이문준          최초 생성
+ *
+ * 
+ */ + +public class EgovMessageSource extends ReloadableResourceBundleMessageSource implements MessageSource { + + private ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource; + + /** + * getReloadableResourceBundleMessageSource() + * @param reloadableResourceBundleMessageSource - resource MessageSource + * @return ReloadableResourceBundleMessageSource + */ + public void setReloadableResourceBundleMessageSource(ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource) { + this.reloadableResourceBundleMessageSource = reloadableResourceBundleMessageSource; + } + + /** + * getReloadableResourceBundleMessageSource() + * @return ReloadableResourceBundleMessageSource + */ + public ReloadableResourceBundleMessageSource getReloadableResourceBundleMessageSource() { + return reloadableResourceBundleMessageSource; + } + + /** + * 정의된 메세지 조회 + * @param code - 메세지 코드 + * @return String + */ + public String getMessage(String code) { + return getReloadableResourceBundleMessageSource().getMessage(code, null, Locale.getDefault()); + } + +} diff --git a/src/main/java/egovframework/com/cmm/EgovWebUtil.java b/src/main/java/egovframework/com/cmm/EgovWebUtil.java new file mode 100644 index 0000000..031ebc9 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/EgovWebUtil.java @@ -0,0 +1,142 @@ +package egovframework.com.cmm; + +import java.util.regex.Pattern; + +/** + * 교차접속 스크립트 공격 취약성 방지(파라미터 문자열 교체) + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    	--------    ---------------------------
+ *   2011.10.10  한성곤          최초 생성
+ *
+ * 
+ */ + +public class EgovWebUtil { + public static String clearXSSMinimum(String value) { + if (value == null || value.trim().equals("")) { + return ""; + } + + String returnValue = value; + + returnValue = returnValue.replaceAll("&", "&"); + returnValue = returnValue.replaceAll("<", "<"); + returnValue = returnValue.replaceAll(">", ">"); + returnValue = returnValue.replaceAll("\"", """); + returnValue = returnValue.replaceAll("\'", "'"); + return returnValue; + } + + public static String clearXSSMaximum(String value) { + String returnValue = value; + returnValue = clearXSSMinimum(returnValue); + + returnValue = returnValue.replaceAll("%00", null); + + returnValue = returnValue.replaceAll("%", "%"); + + // \\. => . + + returnValue = returnValue.replaceAll("\\.\\./", ""); // ../ + returnValue = returnValue.replaceAll("\\.\\.\\\\", ""); // ..\ + returnValue = returnValue.replaceAll("\\./", ""); // ./ + returnValue = returnValue.replaceAll("%2F", ""); + + return returnValue; + } + + public static String filePathBlackList(String value) { + String returnValue = value; + if (returnValue == null || returnValue.trim().equals("")) { + return ""; + } + + returnValue = returnValue.replaceAll("\\.\\./", ""); // ../ + returnValue = returnValue.replaceAll("\\.\\.\\\\", ""); // ..\ + + return returnValue; + } + + /** + * 행안부 보안취약점 점검 조치 방안. + * + * @param value + * @return + */ + public static String filePathReplaceAll(String value) { + String returnValue = value; + if (returnValue == null || returnValue.trim().equals("")) { + return ""; + } + + returnValue = returnValue.replaceAll("/", ""); + returnValue = returnValue.replaceAll("\\", ""); + returnValue = returnValue.replaceAll("\\.\\.", ""); // .. + returnValue = returnValue.replaceAll("&", ""); + + return returnValue; + } + + public static String filePathWhiteList(String value) { + return value; // TODO + } + + public static boolean isIPAddress(String str) { + Pattern ipPattern = Pattern.compile("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"); + + return ipPattern.matcher(str).matches(); + } + + public static String removeCRLF(String parameter) { + return parameter.replaceAll("\r", "").replaceAll("\n", ""); + } + + public static String removeSQLInjectionRisk(String parameter) { + return parameter.replaceAll("\\p{Space}", "").replaceAll("\\*", "").replaceAll("%", "").replaceAll(";", "").replaceAll("-", "").replaceAll("\\+", "").replaceAll(",", ""); + } + + public static String removeOSCmdRisk(String parameter) { + return parameter.replaceAll("\\p{Space}", "").replaceAll("\\*", "").replaceAll("|", "").replaceAll(";", ""); + } + + + +// public static void main(String[] args) { +// String test = null; +// +// test = ""; +// System.out.println("clearXSSMinimum() Test"); +// System.out.println(test); +// System.out.println("=>"); +// System.out.println(clearXSSMinimum(test)); +// System.out.println(); +// +// test = "/a/b/c../..\\"; +// System.out.println("clearXSSMaximum() Test"); +// System.out.println(test); +// System.out.println(" =>"); +// System.out.println(clearXSSMaximum(test)); +// System.out.println(); +// +// test = "/a/b/c/../../../..\\..\\"; +// System.out.println("filePathBlackList() Test"); +// System.out.println(test); +// System.out.println("=>"); +// System.out.println(filePathBlackList(test)); +// System.out.println(); +// +// test = "192.168.0.1"; +// System.out.println("isIPAddress() test"); +// System.out.println("IP : " + test + " => " + isIPAddress(test)); +// +// test = "abc def*%;-+,ghi"; +// System.out.println("removeSQLInjectionRisk() test"); +// System.out.println(test + " => " + removeSQLInjectionRisk(test)); +// } + // + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/cmm/ImagePaginationRenderer.java b/src/main/java/egovframework/com/cmm/ImagePaginationRenderer.java new file mode 100644 index 0000000..ae7c39f --- /dev/null +++ b/src/main/java/egovframework/com/cmm/ImagePaginationRenderer.java @@ -0,0 +1,48 @@ +package egovframework.com.cmm; + +import javax.servlet.ServletContext; + +import org.springframework.web.context.ServletContextAware; + +import egovframework.rte.ptl.mvc.tags.ui.pagination.AbstractPaginationRenderer; +/** + * ImagePaginationRenderer.java 클래스 + * + * @author 서준식 + * @since 2011. 9. 16. + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일      수정자           수정내용
+ *  -------    -------------    ----------------------
+ *   2011. 9. 16.   서준식       이미지 경로에 ContextPath추가
+ * 
+ */ +public class ImagePaginationRenderer extends AbstractPaginationRenderer implements ServletContextAware{ + + private ServletContext servletContext; + + public ImagePaginationRenderer() { + + } + + public void initVariables(){ + firstPageLabel = "\"처음\" "; + previousPageLabel = "\"이전\" "; + currentPageLabel = "{0} "; + otherPageLabel = "{2} "; + nextPageLabel = "\"다음\" "; + lastPageLabel = "\"마지막\" "; + } + + + + public void setServletContext(ServletContext servletContext) { + this.servletContext = servletContext; + initVariables(); + } + +} diff --git a/src/main/java/egovframework/com/cmm/IncludedCompInfoVO.java b/src/main/java/egovframework/com/cmm/IncludedCompInfoVO.java new file mode 100644 index 0000000..c4cfdbd --- /dev/null +++ b/src/main/java/egovframework/com/cmm/IncludedCompInfoVO.java @@ -0,0 +1,50 @@ +package egovframework.com.cmm; + +/** + * IncludedInfo annotation을 바탕으로 화면에 표시할 정보를 구성하기 위한 VO 클래스 + * @author 공통컴포넌트 정진오 + * @since 2011.08.26 + * @version 2.0.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *  수정일		수정자		수정내용
+ *  -------    	--------    ---------------------------
+ *  2011.08.26	정진오 		최초 생성
+ *
+ * 
+ */ +public class IncludedCompInfoVO { + + private String name; + private String listUrl; + private int order; + private int gid; + + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getListUrl() { + return listUrl; + } + public void setListUrl(String listUrl) { + this.listUrl = listUrl; + } + public int getOrder() { + return order; + } + public void setOrder(int order) { + this.order = order; + } + public int getGid() { + return gid; + } + public void setGid(int gid) { + this.gid = gid; + } +} diff --git a/src/main/java/egovframework/com/cmm/LoginVO.java b/src/main/java/egovframework/com/cmm/LoginVO.java new file mode 100644 index 0000000..8716dbf --- /dev/null +++ b/src/main/java/egovframework/com/cmm/LoginVO.java @@ -0,0 +1,250 @@ +package egovframework.com.cmm; + +import java.io.Serializable; + +/** + * @Class Name : LoginVO.java + * @Description : Login VO class + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.03 박지욱 최초 생성 + * + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.03 + * @version 1.0 + * @see + * + */ +public class LoginVO implements Serializable{ + + /** + * + */ + private static final long serialVersionUID = -8274004534207618049L; + + /** 아이디 */ + private String id; + /** 이름 */ + private String name; + /** 주민등록번호 */ + private String ihidNum; + /** 이메일주소 */ + private String email; + /** 비밀번호 */ + private String password; + /** 비밀번호 힌트 */ + private String passwordHint; + /** 비밀번호 정답 */ + private String passwordCnsr; + /** 사용자구분 */ + private String userSe; + /** 조직(부서)ID */ + private String orgnztId; + /** 조직(부서)명 */ + private String orgnztNm; + /** 고유아이디 */ + private String uniqId; + /** 로그인 후 이동할 페이지 */ + private String url; + /** 사용자 IP정보 */ + private String ip; + /** GPKI인증 DN */ + private String dn; + /** + * id attribute 를 리턴한다. + * @return String + */ + public String getId() { + return id; + } + /** + * id attribute 값을 설정한다. + * @param id String + */ + public void setId(String id) { + this.id = id; + } + /** + * name attribute 를 리턴한다. + * @return String + */ + public String getName() { + return name; + } + /** + * name attribute 값을 설정한다. + * @param name String + */ + public void setName(String name) { + this.name = name; + } + /** + * ihidNum attribute 를 리턴한다. + * @return String + */ + public String getIhidNum() { + return ihidNum; + } + /** + * ihidNum attribute 값을 설정한다. + * @param ihidNum String + */ + public void setIhidNum(String ihidNum) { + this.ihidNum = ihidNum; + } + /** + * email attribute 를 리턴한다. + * @return String + */ + public String getEmail() { + return email; + } + /** + * email attribute 값을 설정한다. + * @param email String + */ + public void setEmail(String email) { + this.email = email; + } + /** + * password attribute 를 리턴한다. + * @return String + */ + public String getPassword() { + return password; + } + /** + * password attribute 값을 설정한다. + * @param password String + */ + public void setPassword(String password) { + this.password = password; + } + /** + * passwordHint attribute 를 리턴한다. + * @return String + */ + public String getPasswordHint() { + return passwordHint; + } + /** + * passwordHint attribute 값을 설정한다. + * @param passwordHint String + */ + public void setPasswordHint(String passwordHint) { + this.passwordHint = passwordHint; + } + /** + * passwordCnsr attribute 를 리턴한다. + * @return String + */ + public String getPasswordCnsr() { + return passwordCnsr; + } + /** + * passwordCnsr attribute 값을 설정한다. + * @param passwordCnsr String + */ + public void setPasswordCnsr(String passwordCnsr) { + this.passwordCnsr = passwordCnsr; + } + /** + * userSe attribute 를 리턴한다. + * @return String + */ + public String getUserSe() { + return userSe; + } + /** + * userSe attribute 값을 설정한다. + * @param userSe String + */ + public void setUserSe(String userSe) { + this.userSe = userSe; + } + /** + * orgnztId attribute 를 리턴한다. + * @return String + */ + public String getOrgnztId() { + return orgnztId; + } + /** + * orgnztId attribute 값을 설정한다. + * @param orgnztId String + */ + public void setOrgnztId(String orgnztId) { + this.orgnztId = orgnztId; + } + /** + * uniqId attribute 를 리턴한다. + * @return String + */ + public String getUniqId() { + return uniqId; + } + /** + * uniqId attribute 값을 설정한다. + * @param uniqId String + */ + public void setUniqId(String uniqId) { + this.uniqId = uniqId; + } + /** + * url attribute 를 리턴한다. + * @return String + */ + public String getUrl() { + return url; + } + /** + * url attribute 값을 설정한다. + * @param url String + */ + public void setUrl(String url) { + this.url = url; + } + /** + * ip attribute 를 리턴한다. + * @return String + */ + public String getIp() { + return ip; + } + /** + * ip attribute 값을 설정한다. + * @param ip String + */ + public void setIp(String ip) { + this.ip = ip; + } + /** + * dn attribute 를 리턴한다. + * @return String + */ + public String getDn() { + return dn; + } + /** + * dn attribute 값을 설정한다. + * @param dn String + */ + public void setDn(String dn) { + this.dn = dn; + } + /** + * @return the orgnztNm + */ + public String getOrgnztNm() { + return orgnztNm; + } + /** + * @param orgnztNm the orgnztNm to set + */ + public void setOrgnztNm(String orgnztNm) { + this.orgnztNm = orgnztNm; + } + +} diff --git a/src/main/java/egovframework/com/cmm/SessionVO.java b/src/main/java/egovframework/com/cmm/SessionVO.java new file mode 100644 index 0000000..1e9e815 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/SessionVO.java @@ -0,0 +1,119 @@ +package egovframework.com.cmm; + +import java.io.Serializable; + +/** + * 세션 VO 클래스 + * @author 공통서비스 개발팀 박지욱 + * @since 2009.03.06 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ * 
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2009.03.06  박지욱          최초 생성 
+ *  
+ *  
+ */ +public class SessionVO implements Serializable { + + /** 아이디 */ + private String sUserId; + /** 이름 */ + private String sUserNm; + /** 이메일 */ + private String sEmail; + /** 사용자구분 */ + private String sUserSe; + /** 조직(부서)ID */ + private String orgnztId; + /** 고유아이디 */ + private String uniqId; + /** + * sUserId attribute 를 리턴한다. + * @return String + */ + public String getSUserId() { + return sUserId; + } + /** + * sUserId attribute 값을 설정한다. + * @param sUserId String + */ + public void setSUserId(String userId) { + sUserId = userId; + } + /** + * sUserNm attribute 를 리턴한다. + * @return String + */ + public String getSUserNm() { + return sUserNm; + } + /** + * sUserNm attribute 값을 설정한다. + * @param sUserNm String + */ + public void setSUserNm(String userNm) { + sUserNm = userNm; + } + /** + * sEmail attribute 를 리턴한다. + * @return String + */ + public String getSEmail() { + return sEmail; + } + /** + * sEmail attribute 값을 설정한다. + * @param sEmail String + */ + public void setSEmail(String email) { + sEmail = email; + } + /** + * sUserSe attribute 를 리턴한다. + * @return String + */ + public String getSUserSe() { + return sUserSe; + } + /** + * sUserSe attribute 값을 설정한다. + * @param sUserSe String + */ + public void setSUserSe(String userSe) { + sUserSe = userSe; + } + /** + * orgnztId attribute 를 리턴한다. + * @return String + */ + public String getOrgnztId() { + return orgnztId; + } + /** + * orgnztId attribute 값을 설정한다. + * @param orgnztId String + */ + public void setOrgnztId(String orgnztId) { + this.orgnztId = orgnztId; + } + /** + * uniqId attribute 를 리턴한다. + * @return String + */ + public String getUniqId() { + return uniqId; + } + /** + * uniqId attribute 값을 설정한다. + * @param uniqId String + */ + public void setUniqId(String uniqId) { + this.uniqId = uniqId; + } +} diff --git a/src/main/java/egovframework/com/cmm/annotation/IncludedInfo.java b/src/main/java/egovframework/com/cmm/annotation/IncludedInfo.java new file mode 100644 index 0000000..a88f458 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/annotation/IncludedInfo.java @@ -0,0 +1,33 @@ +package egovframework.com.cmm.annotation; + +/** + * 컴포넌트의 포함 정보 표현을 위한 annotation 클래스 + * 기본적으로 Controller 클래스에 annotation을 부여하되, + * 하나의 Controller에 여러 개의 목록성 url mapping이 제공되는 경우에는 + * 메소드에 annotation을 부여한다. + * @author 공통컴포넌트 정진오 + * @since 2011.08.26 + * @version 2.0.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *  수정일		수정자		수정내용
+ *  -------    	--------    ---------------------------
+ *  2011.08.26	정진오 		최초 생성
+ *
+ * 
+ */ + + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface IncludedInfo { + String name() default ""; // 컴포넌트의 한글 이름 + String listUrl() default ""; // 컴포넌트의 목록정보조회를 위한 URL + int order() default 0; // 자동 생성되는 메뉴 목록에 표시되는 순서 + int gid() default 0; // 컴포넌트의 Group ID(대분류 구분) +} diff --git a/src/main/java/egovframework/com/cmm/filter/HTMLTagFilter.java b/src/main/java/egovframework/com/cmm/filter/HTMLTagFilter.java new file mode 100644 index 0000000..aa7b9bf --- /dev/null +++ b/src/main/java/egovframework/com/cmm/filter/HTMLTagFilter.java @@ -0,0 +1,45 @@ +/* + * Copyright 2008-2009 MOPAS(MINISTRY OF SECURITY AND PUBLIC ADMINISTRATION). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package egovframework.com.cmm.filter; + +import java.io.IOException; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; + +public class HTMLTagFilter implements Filter{ + + private FilterConfig config; + + public void doFilter(ServletRequest request, ServletResponse response, + FilterChain chain) throws IOException, ServletException { + + chain.doFilter(new HTMLTagFilterRequestWrapper((HttpServletRequest)request), response); + } + + public void init(FilterConfig config) throws ServletException { + this.config = config; + } + + public void destroy() { + + } +} diff --git a/src/main/java/egovframework/com/cmm/filter/HTMLTagFilterRequestWrapper.java b/src/main/java/egovframework/com/cmm/filter/HTMLTagFilterRequestWrapper.java new file mode 100644 index 0000000..c070001 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/filter/HTMLTagFilterRequestWrapper.java @@ -0,0 +1,109 @@ +/* + * Copyright 2008-2009 MOPAS(MINISTRY OF SECURITY AND PUBLIC ADMINISTRATION). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package egovframework.com.cmm.filter; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; + +public class HTMLTagFilterRequestWrapper extends HttpServletRequestWrapper { + + public HTMLTagFilterRequestWrapper(HttpServletRequest request) { + super(request); + } + + public String[] getParameterValues(String parameter) { + + String[] values = super.getParameterValues(parameter); + + if(values==null){ + return null; + } + + for (int i = 0; i < values.length; i++) { + if (values[i] != null) { + StringBuffer strBuff = new StringBuffer(); + for (int j = 0; j < values[i].length(); j++) { + char c = values[i].charAt(j); + switch (c) { + case '<': + strBuff.append("<"); + break; + case '>': + strBuff.append(">"); + break; + //case '&': + //strBuff.append("&"); + //break; + case '"': + strBuff.append("""); + break; + case '\'': + strBuff.append("'"); + break; + default: + strBuff.append(c); + break; + } + } + values[i] = strBuff.toString(); + } else { + values[i] = null; + } + } + + return values; + } + + public String getParameter(String parameter) { + + String value = super.getParameter(parameter); + + if(value==null){ + return null; + } + + StringBuffer strBuff = new StringBuffer(); + + for (int i = 0; i < value.length(); i++) { + char c = value.charAt(i); + switch (c) { + case '<': + strBuff.append("<"); + break; + case '>': + strBuff.append(">"); + break; + case '&': + strBuff.append("&"); + break; + case '"': + strBuff.append("""); + break; + case '\'': + strBuff.append("'"); + break; + default: + strBuff.append(c); + break; + } + } + + value = strBuff.toString(); + + return value; + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/cmm/interceptor/AuthenticInterceptor.java b/src/main/java/egovframework/com/cmm/interceptor/AuthenticInterceptor.java new file mode 100644 index 0000000..e4a1a7e --- /dev/null +++ b/src/main/java/egovframework/com/cmm/interceptor/AuthenticInterceptor.java @@ -0,0 +1,80 @@ +package egovframework.com.cmm.interceptor; + +import java.util.Iterator; +import java.util.Set; +import java.util.regex.Pattern; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.web.servlet.ModelAndView; +import org.springframework.web.servlet.ModelAndViewDefiningException; +import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.util.EgovUserDetailsHelper; + +/** + * 인증여부 체크 인터셉터 + * @author 공통서비스 개발팀 서준식 + * @since 2011.07.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ * 
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2011.07.01  서준식          최초 생성 
+ *  2011.09.07  서준식          인증이 필요없는 URL을 패스하는 로직 추가
+ *  
+ */ + + +public class AuthenticInterceptor extends HandlerInterceptorAdapter { + + private Set permittedURL; + + public void setPermittedURL(Set permittedURL) { + this.permittedURL = permittedURL; + } + + /** + * 세션에 계정정보(LoginVO)가 있는지 여부로 인증 여부를 체크한다. + * 계정정보(LoginVO)가 없다면, 로그인 페이지로 이동한다. + */ + @Override + public boolean preHandle(HttpServletRequest request, + HttpServletResponse response, Object handler) throws Exception { + + String requestURI = request.getRequestURI(); //요청 URI + boolean isPermittedURL = false; + + LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); + + if(loginVO != null){ + return true; + }else{ + + + for(Iterator it = this.permittedURL.iterator(); it.hasNext();){ + String urlPattern = request.getContextPath() + (String) it.next(); + + if(Pattern.matches(urlPattern, requestURI)){// 정규표현식을 이용해서 요청 URI가 허용된 URL에 맞는지 점검함. + isPermittedURL = true; + } + + + } + + if(!isPermittedURL){ + ModelAndView modelAndView = new ModelAndView("redirect:/uat/uia/egovLoginUsr.do"); + throw new ModelAndViewDefiningException(modelAndView); + }else{ + return true; + } + } + } + +} diff --git a/src/main/java/egovframework/com/cmm/interceptor/IpObtainInterceptor.java b/src/main/java/egovframework/com/cmm/interceptor/IpObtainInterceptor.java new file mode 100644 index 0000000..851a88d --- /dev/null +++ b/src/main/java/egovframework/com/cmm/interceptor/IpObtainInterceptor.java @@ -0,0 +1,42 @@ +package egovframework.com.cmm.interceptor; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.util.EgovUserDetailsHelper; + +/** + * 사용자IP 체크 인터셉터 + * @author 유지보수팀 이기하 + * @since 2013.03.28 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ * 
+ *   수정일     수정자          수정내용
+ *  ----------  --------    ---------------------------
+ *  2013.03.28	이기하          최초 생성 
+ *  
+ */ + +public class IpObtainInterceptor extends HandlerInterceptorAdapter { + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + + String clientIp = request.getRemoteAddr(); + + LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser(); + + if (loginVO != null) { + loginVO.setIp(clientIp); + } + + return true; + } +} diff --git a/src/main/java/egovframework/com/cmm/service/CmmnDetailCode.java b/src/main/java/egovframework/com/cmm/service/CmmnDetailCode.java new file mode 100644 index 0000000..3f75448 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/CmmnDetailCode.java @@ -0,0 +1,192 @@ +package egovframework.com.cmm.service; + +import java.io.Serializable; + +/** + * 공통상세코드 모델 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * 
+ */ +public class CmmnDetailCode implements Serializable { + + /* + * 코드ID + */ + private String codeId = ""; + + /* + * 코드ID명 + */ + private String codeIdNm = ""; + + /* + * 코드 + */ + private String code = ""; + + /* + * 코드명 + */ + private String codeNm = ""; + + /* + * 코드설명 + */ + private String codeDc = ""; + + /* + * 사용여부 + */ + private String useAt = ""; + + /* + * 최초등록자ID + */ + private String frstRegisterId = ""; + + /* + * 최종수정자ID + */ + private String lastUpdusrId = ""; + + /** + * codeId attribute 를 리턴한다. + * @return String + */ + public String getCodeId() { + return codeId; + } + + /** + * codeId attribute 값을 설정한다. + * @param codeId String + */ + public void setCodeId(String codeId) { + this.codeId = codeId; + } + + /** + * codeIdNm attribute 를 리턴한다. + * @return String + */ + public String getCodeIdNm() { + return codeIdNm; + } + + /** + * codeIdNm attribute 값을 설정한다. + * @param codeIdNm String + */ + public void setCodeIdNm(String codeIdNm) { + this.codeIdNm = codeIdNm; + } + + /** + * code attribute 를 리턴한다. + * @return String + */ + public String getCode() { + return code; + } + + /** + * code attribute 값을 설정한다. + * @param code String + */ + public void setCode(String code) { + this.code = code; + } + + /** + * codeNm attribute 를 리턴한다. + * @return String + */ + public String getCodeNm() { + return codeNm; + } + + /** + * codeNm attribute 값을 설정한다. + * @param codeNm String + */ + public void setCodeNm(String codeNm) { + this.codeNm = codeNm; + } + + /** + * codeDc attribute 를 리턴한다. + * @return String + */ + public String getCodeDc() { + return codeDc; + } + + /** + * codeDc attribute 값을 설정한다. + * @param codeDc String + */ + public void setCodeDc(String codeDc) { + this.codeDc = codeDc; + } + + /** + * useAt attribute 를 리턴한다. + * @return String + */ + public String getUseAt() { + return useAt; + } + + /** + * useAt attribute 값을 설정한다. + * @param useAt String + */ + public void setUseAt(String useAt) { + this.useAt = useAt; + } + + /** + * frstRegisterId attribute 를 리턴한다. + * @return String + */ + public String getFrstRegisterId() { + return frstRegisterId; + } + + /** + * frstRegisterId attribute 값을 설정한다. + * @param frstRegisterId String + */ + public void setFrstRegisterId(String frstRegisterId) { + this.frstRegisterId = frstRegisterId; + } + + /** + * lastUpdusrId attribute 를 리턴한다. + * @return String + */ + public String getLastUpdusrId() { + return lastUpdusrId; + } + + /** + * lastUpdusrId attribute 값을 설정한다. + * @param lastUpdusrId String + */ + public void setLastUpdusrId(String lastUpdusrId) { + this.lastUpdusrId = lastUpdusrId; + } + + +} diff --git a/src/main/java/egovframework/com/cmm/service/EgovFileMngService.java b/src/main/java/egovframework/com/cmm/service/EgovFileMngService.java new file mode 100644 index 0000000..7803287 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/EgovFileMngService.java @@ -0,0 +1,118 @@ +package egovframework.com.cmm.service; + +import java.util.List; +import java.util.Map; + +/** + * @Class Name : EgovFileMngService.java + * @Description : 파일정보의 관리를 위한 서비스 인터페이스 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- ------- ------------------- + * 2009. 3. 25. 이삼섭 최초생성 + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 3. 25. + * @version + * @see + * + */ +public interface EgovFileMngService { + + /** + * 파일에 대한 목록을 조회한다. + * + * @param fvo + * @return + * @throws Exception + */ + public List selectFileInfs(FileVO fvo) throws Exception; + + /** + * 하나의 파일에 대한 정보(속성 및 상세)를 등록한다. + * + * @param fvo + * @throws Exception + */ + public String insertFileInf(FileVO fvo) throws Exception; + + /** + * 여러 개의 파일에 대한 정보(속성 및 상세)를 등록한다. + * + * @param fvoList + * @throws Exception + */ + @SuppressWarnings("unchecked") + public String insertFileInfs(List fvoList) throws Exception; + + /** + * 여러 개의 파일에 대한 정보(속성 및 상세)를 수정한다. + * + * @param fvoList + * @throws Exception + */ + @SuppressWarnings("unchecked") + public void updateFileInfs(List fvoList) throws Exception; + + /** + * 여러 개의 파일을 삭제한다. + * + * @param fvoList + * @throws Exception + */ + @SuppressWarnings("unchecked") + public void deleteFileInfs(List fvoList) throws Exception; + + /** + * 하나의 파일을 삭제한다. + * + * @param fvo + * @throws Exception + */ + public void deleteFileInf(FileVO fvo) throws Exception; + + /** + * 파일에 대한 상세정보를 조회한다. + * + * @param fvo + * @return + * @throws Exception + */ + public FileVO selectFileInf(FileVO fvo) throws Exception; + + /** + * 파일 구분자에 대한 최대값을 구한다. + * + * @param fvo + * @return + * @throws Exception + */ + public int getMaxFileSN(FileVO fvo) throws Exception; + + /** + * 전체 파일을 삭제한다. + * + * @param fvo + * @throws Exception + */ + public void deleteAllFileInf(FileVO fvo) throws Exception; + + /** + * 파일명 검색에 대한 목록을 조회한다. + * + * @param fvo + * @return + * @throws Exception + */ + public Map selectFileListByFileNm(FileVO fvo) throws Exception; + + /** + * 이미지 파일에 대한 목록을 조회한다. + * + * @param vo + * @return + * @throws Exception + */ + public List selectImageFileList(FileVO vo) throws Exception; +} diff --git a/src/main/java/egovframework/com/cmm/service/EgovFileMngUtil.java b/src/main/java/egovframework/com/cmm/service/EgovFileMngUtil.java new file mode 100644 index 0000000..000a20f --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/EgovFileMngUtil.java @@ -0,0 +1,494 @@ +package egovframework.com.cmm.service; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Map.Entry; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.log4j.Logger; +import org.springframework.stereotype.Component; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.multipart.MultipartFile; + +import egovframework.com.cmm.EgovWebUtil; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; + + +/** + * @Class Name : EgovFileMngUtil.java + * @Description : 메시지 처리 관련 유틸리티 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.02.13 이삼섭 최초 생성 + * 2011.08.09 서준식 utl.fcc패키지와 Dependency제거를 위해 getTimeStamp()메서드 추가 + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 02. 13 + * @version 1.0 + * @see + * + */ +@Component("EgovFileMngUtil") +public class EgovFileMngUtil { + + public static final int BUFF_SIZE = 2048; + + + @Resource(name = "egovFileIdGnrService") + private EgovIdGnrService idgenService; + + private static final Logger LOG = Logger.getLogger(EgovFileMngUtil.class.getName()); + + /** + * 첨부파일에 대한 목록 정보를 취득한다. + * + * @param files + * @return + * @throws Exception + */ + public List parseFileInf(Map files, String KeyStr, int fileKeyParam, String atchFileId, String storePath) throws Exception { + int fileKey = fileKeyParam; + + String storePathString = ""; + String atchFileIdString = ""; + + if ("".equals(storePath) || storePath == null) { + storePathString = EgovProperties.getProperty("Globals.fileStorePath"); + } else { + storePathString = EgovProperties.getProperty(storePath); + } + + if ("".equals(atchFileId) || atchFileId == null) { + atchFileIdString = idgenService.getNextStringId(); + } else { + atchFileIdString = atchFileId; + } + + File saveFolder = new File(EgovWebUtil.filePathBlackList(storePathString)); + + if (!saveFolder.exists() || saveFolder.isFile()) { + saveFolder.mkdirs(); + } + + Iterator> itr = files.entrySet().iterator(); + MultipartFile file; + String filePath = ""; + List result = new ArrayList(); + FileVO fvo; + + while (itr.hasNext()) { + Entry entry = itr.next(); + + file = entry.getValue(); + String orginFileName = file.getOriginalFilename(); + + //-------------------------------------- + // 원 파일명이 없는 경우 처리 + // (첨부가 되지 않은 input file type) + //-------------------------------------- + if ("".equals(orginFileName)) { + continue; + } + ////------------------------------------ + + int index = orginFileName.lastIndexOf("."); + //String fileName = orginFileName.substring(0, index); + String fileExt = orginFileName.substring(index + 1); + String newName = KeyStr + getTimeStamp() + fileKey; + long _size = file.getSize(); + + if (!"".equals(orginFileName)) { + filePath = storePathString + File.separator + newName; + file.transferTo(new File(EgovWebUtil.filePathBlackList(filePath))); + } + fvo = new FileVO(); + fvo.setFileExtsn(fileExt); + fvo.setFileStreCours(storePathString); + fvo.setFileMg(Long.toString(_size)); + fvo.setOrignlFileNm(orginFileName); + fvo.setStreFileNm(newName); + fvo.setAtchFileId(atchFileIdString); + fvo.setFileSn(String.valueOf(fileKey)); + + //writeFile(file, newName, storePathString); + result.add(fvo); + + fileKey++; + } + + return result; + } + + /** + * 첨부파일을 서버에 저장한다. + * + * @param file + * @param newName + * @param stordFilePath + * @throws Exception + */ + protected void writeUploadedFile(MultipartFile file, String newName, String stordFilePath) throws Exception { + InputStream stream = null; + OutputStream bos = null; + + try { + stream = file.getInputStream(); + File cFile = new File(stordFilePath); + + if (!cFile.isDirectory()) { + boolean _flag = cFile.mkdir(); + if (!_flag) { + throw new IOException("Directory creation Failed "); + } + } + + bos = new FileOutputStream(stordFilePath + File.separator + newName); + + int bytesRead = 0; + byte[] buffer = new byte[BUFF_SIZE]; + + while ((bytesRead = stream.read(buffer, 0, BUFF_SIZE)) != -1) { + bos.write(buffer, 0, bytesRead); + } + } catch (Exception e) { + //e.printStackTrace(); + LOG.error("IGNORE:", e); // 2011.10.10 보안점검 후속조치 + } finally { + if (bos != null) { + try { + bos.close(); + } catch (Exception ignore) { + LOG.debug("IGNORED: " + ignore.getMessage()); + } + } + if (stream != null) { + try { + stream.close(); + } catch (Exception ignore) { + LOG.debug("IGNORED: " + ignore.getMessage()); + } + } + } + } + + /** + * 서버의 파일을 다운로드한다. + * + * @param request + * @param response + * @throws Exception + */ + public static void downFile(HttpServletRequest request, HttpServletResponse response) throws Exception { + + String downFileName = ""; + String orgFileName = ""; + + if ((String)request.getAttribute("downFile") == null) { + downFileName = ""; + } else { + downFileName = (String)request.getAttribute("downFile"); + } + + if ((String)request.getAttribute("orgFileName") == null) { + orgFileName = ""; + } else { + orgFileName = (String)request.getAttribute("orginFile"); + } + + orgFileName = orgFileName.replaceAll("\r", "").replaceAll("\n", ""); + + File file = new File(EgovWebUtil.filePathBlackList(downFileName)); + + if (!file.exists()) { + throw new FileNotFoundException(downFileName); + } + + if (!file.isFile()) { + throw new FileNotFoundException(downFileName); + } + + byte[] b = new byte[BUFF_SIZE]; //buffer size 2K. + + response.setContentType("application/x-msdownload"); + response.setHeader("Content-Disposition:", "attachment; filename=" + new String(orgFileName.getBytes(), "UTF-8")); + response.setHeader("Content-Transfer-Encoding", "binary"); + response.setHeader("Pragma", "no-cache"); + response.setHeader("Expires", "0"); + + BufferedInputStream fin = null; + BufferedOutputStream outs = null; + + try { + fin = new BufferedInputStream(new FileInputStream(file)); + outs = new BufferedOutputStream(response.getOutputStream()); + int read = 0; + + while ((read = fin.read(b)) != -1) { + outs.write(b, 0, read); + } + } finally { + if (outs != null) { + try { + outs.close(); + } catch (Exception ignore) { + //System.out.println("IGNORED: " + ignore.getMessage()); + LOG.debug("IGNORED: " + ignore.getMessage()); + } + } + if (fin != null) { + try { + fin.close(); + } catch (Exception ignore) { + //System.out.println("IGNORED: " + ignore.getMessage()); + LOG.debug("IGNORED: " + ignore.getMessage()); + } + } + } + } + + /** + * 첨부로 등록된 파일을 서버에 업로드한다. + * + * @param file + * @return + * @throws Exception + */ + public static HashMap uploadFile(MultipartFile file) throws Exception { + + HashMap map = new HashMap(); + //Write File 이후 Move File???? + String newName = ""; + String stordFilePath = EgovProperties.getProperty("Globals.fileStorePath"); + String orginFileName = file.getOriginalFilename(); + + int index = orginFileName.lastIndexOf("."); + //String fileName = orginFileName.substring(0, _index); + String fileExt = orginFileName.substring(index + 1); + long size = file.getSize(); + + //newName 은 Naming Convention에 의해서 생성 + newName = getTimeStamp(); // 2012.11 KISA 보안조치 + writeFile(file, newName, stordFilePath); + //storedFilePath는 지정 + map.put(Globals.ORIGIN_FILE_NM, orginFileName); + map.put(Globals.UPLOAD_FILE_NM, newName); + map.put(Globals.FILE_EXT, fileExt); + map.put(Globals.FILE_PATH, stordFilePath); + map.put(Globals.FILE_SIZE, String.valueOf(size)); + + return map; + } + + /** + * 파일을 실제 물리적인 경로에 생성한다. + * + * @param file + * @param newName + * @param stordFilePath + * @throws Exception + */ + protected static void writeFile(MultipartFile file, String newName, String stordFilePath) throws Exception { + InputStream stream = null; + OutputStream bos = null; + + try { + stream = file.getInputStream(); + File cFile = new File(EgovWebUtil.filePathBlackList(stordFilePath)); + + if (!cFile.isDirectory()) + cFile.mkdir(); + + bos = new FileOutputStream(EgovWebUtil.filePathBlackList(stordFilePath + File.separator + newName)); + + int bytesRead = 0; + byte[] buffer = new byte[BUFF_SIZE]; + + while ((bytesRead = stream.read(buffer, 0, BUFF_SIZE)) != -1) { + bos.write(buffer, 0, bytesRead); + } + } catch (Exception e) { + //e.printStackTrace(); + //throw new RuntimeException(e); // 보안점검 후속조치 + Logger.getLogger(EgovFileMngUtil.class).debug("IGNORED: " + e.getMessage()); + } finally { + if (bos != null) { + try { + bos.close(); + } catch (Exception ignore) { + Logger.getLogger(EgovFileMngUtil.class).debug("IGNORED: " + ignore.getMessage()); + } + } + if (stream != null) { + try { + stream.close(); + } catch (Exception ignore) { + Logger.getLogger(EgovFileMngUtil.class).debug("IGNORED: " + ignore.getMessage()); + } + } + } + } + + /** + * 서버 파일에 대하여 다운로드를 처리한다. + * + * @param response + * @param streFileNm + * : 파일저장 경로가 포함된 형태 + * @param orignFileNm + * @throws Exception + */ + public void downFile(HttpServletResponse response, String streFileNm, String orignFileNm) throws Exception { + String downFileName = streFileNm; + String orgFileName = orignFileNm; + + File file = new File(downFileName); + //log.debug(this.getClass().getName()+" downFile downFileName "+downFileName); + //log.debug(this.getClass().getName()+" downFile orgFileName "+orgFileName); + + if (!file.exists()) { + throw new FileNotFoundException(downFileName); + } + + if (!file.isFile()) { + throw new FileNotFoundException(downFileName); + } + + //byte[] b = new byte[BUFF_SIZE]; //buffer size 2K. + int fSize = (int)file.length(); + if (fSize > 0) { + BufferedInputStream in = null; + + try { + in = new BufferedInputStream(new FileInputStream(file)); + + String mimetype = "text/html"; //"application/x-msdownload" + + response.setBufferSize(fSize); + response.setContentType(mimetype); + response.setHeader("Content-Disposition:", "attachment; filename=" + orgFileName); + response.setContentLength(fSize); + //response.setHeader("Content-Transfer-Encoding","binary"); + //response.setHeader("Pragma","no-cache"); + //response.setHeader("Expires","0"); + FileCopyUtils.copy(in, response.getOutputStream()); + } finally { + if (in != null) { + try { + in.close(); + } catch (Exception ignore) { + + Logger.getLogger(EgovFileMngUtil.class).debug("IGNORED: " + ignore.getMessage()); + } + } + } + response.getOutputStream().flush(); + response.getOutputStream().close(); + } + + /* + String uploadPath = propertiesService.getString("fileDir"); + + File uFile = new File(uploadPath, requestedFile); + int fSize = (int) uFile.length(); + + if (fSize > 0) { + BufferedInputStream in = new BufferedInputStream(new FileInputStream(uFile)); + + String mimetype = "text/html"; + + response.setBufferSize(fSize); + response.setContentType(mimetype); + response.setHeader("Content-Disposition", "attachment; filename=\"" + + requestedFile + "\""); + response.setContentLength(fSize); + + FileCopyUtils.copy(in, response.getOutputStream()); + in.close(); + response.getOutputStream().flush(); + response.getOutputStream().close(); + } else { + response.setContentType("text/html"); + PrintWriter printwriter = response.getWriter(); + printwriter.println(""); + printwriter.println("


Could not get file name:
" + requestedFile + "

"); + printwriter.println("


Back

"); + printwriter.println("


© webAccess"); + printwriter.println(""); + printwriter.flush(); + printwriter.close(); + } + //*/ + + + /* + response.setContentType("application/x-msdownload"); + response.setHeader("Content-Disposition:", "attachment; filename=" + new String(orgFileName.getBytes(),"UTF-8" )); + response.setHeader("Content-Transfer-Encoding","binary"); + response.setHeader("Pragma","no-cache"); + response.setHeader("Expires","0"); + + BufferedInputStream fin = new BufferedInputStream(new FileInputStream(file)); + BufferedOutputStream outs = new BufferedOutputStream(response.getOutputStream()); + int read = 0; + + while ((read = fin.read(b)) != -1) { + outs.write(b,0,read); + } + log.debug(this.getClass().getName()+" BufferedOutputStream Write Complete!!! "); + + outs.close(); + fin.close(); + //*/ + } + + /** + * 2011.08.09 + * 공통 컴포넌트 utl.fcc 패키지와 Dependency제거를 위해 내부 메서드로 추가 정의함 + * 응용어플리케이션에서 고유값을 사용하기 위해 시스템에서17자리의TIMESTAMP값을 구하는 기능 + * + * @param + * @return Timestamp 값 + * @exception MyException + * @see + */ + private static String getTimeStamp() { + + String rtnStr = null; + + // 문자열로 변환하기 위한 패턴 설정(년도-월-일 시:분:초:초(자정이후 초)) + String pattern = "yyyyMMddhhmmssSSS"; + + try { + SimpleDateFormat sdfCurrent = new SimpleDateFormat(pattern, Locale.KOREA); + Timestamp ts = new Timestamp(System.currentTimeMillis()); + + rtnStr = sdfCurrent.format(ts.getTime()); + } catch (Exception e) { + //e.printStackTrace(); + + //throw new RuntimeException(e); // 보안점검 후속조치 + LOG.debug("IGNORED: " + e.getMessage()); + } + + return rtnStr; + } +} diff --git a/src/main/java/egovframework/com/cmm/service/EgovProperties.java b/src/main/java/egovframework/com/cmm/service/EgovProperties.java new file mode 100644 index 0000000..aee2ab3 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/EgovProperties.java @@ -0,0 +1,328 @@ +package egovframework.com.cmm.service; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +import org.apache.log4j.Logger; + +import egovframework.com.cmm.EgovWebUtil; + +/** + * Class Name : EgovProperties.java + * Description : properties값들을 파일로부터 읽어와 Globals클래스의 정적변수로 로드시켜주는 클래스로 + * 문자열 정보 기준으로 사용할 전역변수를 시스템 재시작으로 반영할 수 있도록 한다. + * Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.01.19 박지욱 최초 생성 + * 2011.07.20 서준식 Globals파일의 상대경로를 읽은 메서드 추가 + * @author 공통 서비스 개발팀 박지욱 + * @since 2009. 01. 19 + * @version 1.0 + * @see + * + */ + +public class EgovProperties{ + + //프로퍼티값 로드시 에러발생하면 반환되는 에러문자열 + public static final String ERR_CODE =" EXCEPTION OCCURRED"; + public static final String ERR_CODE_FNFE =" EXCEPTION(FNFE) OCCURRED"; + public static final String ERR_CODE_IOE =" EXCEPTION(IOE) OCCURRED"; + + //파일구분자 + static final char FILE_SEPARATOR = File.separatorChar; + + //프로퍼티 파일의 물리적 위치 + /*public static final String GLOBALS_PROPERTIES_FILE + = System.getProperty("user.home") + System.getProperty("file.separator") + "egovProps" + + System.getProperty("file.separator") + "globals.properties";*/ + + +// public static final String RELATIVE_PATH_PREFIX = EgovProperties.class.getResource("").getPath() +// + System.getProperty("file.separator") + ".." + System.getProperty("file.separator") +// + ".." + System.getProperty("file.separator") + ".." + System.getProperty("file.separator"); + + + public static final String RELATIVE_PATH_PREFIX = EgovProperties.class.getResource("").getPath().substring(0, EgovProperties.class.getResource("").getPath().lastIndexOf("com")); + + public static final String GLOBALS_PROPERTIES_FILE = RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + "globals.properties"; + public static final String GEOINFO_PROPERTIES_FILE = RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + "geoinfo.properties"; + public static final String GEOINFOWEB_PROPERTIES_FILE = RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + "geoinfoWeb.properties"; + + + + + /** + * 인자로 주어진 문자열을 Key값으로 하는 상대경로 프로퍼티 값을 절대경로로 반환한다(Globals.java 전용) + * @param keyName String + * @return String + */ + public static String getPathProperty(String keyName){ + String value = ERR_CODE; + value="99"; +// debug(GLOBALS_PROPERTIES_FILE + " : " + keyName); + FileInputStream fis = null; + try{ + Properties props = new Properties(); + fis = new FileInputStream(EgovWebUtil.filePathBlackList(GLOBALS_PROPERTIES_FILE)); + props.load(new java.io.BufferedInputStream(fis)); + value = props.getProperty(keyName).trim(); + value = RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + value; + }catch(FileNotFoundException fne){ + debug(fne); + }catch(IOException ioe){ + debug(ioe); + }catch(Exception e){ + debug(e); + }finally{ + try { + if (fis != null) fis.close(); + } catch (Exception ex) { + //ex.printStackTrace(); + //System.out.println("IGNORE: " + ex); // 2011.10.10 보안점검 후속조치 + Logger.getLogger(EgovProperties.class).debug("IGNORED: " + ex.getMessage()); + } + + } + return value; + } + + + /** + * 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 값을 반환한다(Globals.properties 전용) + * @param keyName String + * @return String + */ + public static String getProperty(String keyName){ + String value = ERR_CODE; + value="99"; + debug(GLOBALS_PROPERTIES_FILE + " : " + keyName); + FileInputStream fis = null; + try{ + Properties props = new Properties(); + fis = new FileInputStream(EgovWebUtil.filePathBlackList(GLOBALS_PROPERTIES_FILE)); + props.load(new java.io.BufferedInputStream(fis)); + value = props.getProperty(keyName).trim(); + }catch(FileNotFoundException fne){ + debug(fne); + }catch(IOException ioe){ + debug(ioe); + }catch(Exception e){ + debug(e); + }finally{ + try { + if (fis != null) fis.close(); + } catch (Exception ex) { + //ex.printStackTrace(); + //System.out.println("IGNORE: " + ex); // 2011.10.10 보안점검 후속조치 + Logger.getLogger(EgovProperties.class).debug("IGNORED: " + ex.getMessage()); + } + + } + return value; + } + + /** + * 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 값을 반환한다(geoinfo.properties 전용) + * @param keyName String + * @return String + */ + public static String getGeoinfoProperty(String keyName){ + String value = ERR_CODE; + value="99"; + debug(GLOBALS_PROPERTIES_FILE + " : " + keyName); + FileInputStream fis = null; + try{ + Properties props = new Properties(); + fis = new FileInputStream(EgovWebUtil.filePathBlackList(GLOBALS_PROPERTIES_FILE)); + props.load(new java.io.BufferedInputStream(fis)); + value = props.getProperty(keyName).trim(); + }catch(FileNotFoundException fne){ + debug(fne); + }catch(IOException ioe){ + debug(ioe); + }catch(Exception e){ + debug(e); + }finally{ + try { + if (fis != null) fis.close(); + } catch (Exception ex) { + //ex.printStackTrace(); + //System.out.println("IGNORE: " + ex); // 2011.10.10 보안점검 후속조치 + Logger.getLogger(EgovProperties.class).debug("IGNORED: " + ex.getMessage()); + } + + } + return value; + } + + + /** + * 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 값을 반환한다(geoinfoWeb.properties 전용) + * @param keyName String + * @return String + */ + public static String getGeoinfoWebProperty(String keyName){ + String value = ERR_CODE; + value="99"; + debug(GLOBALS_PROPERTIES_FILE + " : " + keyName); + FileInputStream fis = null; + try{ + Properties props = new Properties(); + fis = new FileInputStream(EgovWebUtil.filePathBlackList(GLOBALS_PROPERTIES_FILE)); + props.load(new java.io.BufferedInputStream(fis)); + value = props.getProperty(keyName).trim(); + }catch(FileNotFoundException fne){ + debug(fne); + }catch(IOException ioe){ + debug(ioe); + }catch(Exception e){ + debug(e); + }finally{ + try { + if (fis != null) fis.close(); + } catch (Exception ex) { + //ex.printStackTrace(); + //System.out.println("IGNORE: " + ex); // 2011.10.10 보안점검 후속조치 + Logger.getLogger(EgovProperties.class).debug("IGNORED: " + ex.getMessage()); + } + + } + return value; + } + + + /** + * 주어진 파일에서 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 상대 경로값을 절대 경로값으로 반환한다 + * @param fileName String + * @param key String + * @return String + */ + public static String getPathProperty(String fileName, String key){ + FileInputStream fis = null; + try{ + java.util.Properties props = new java.util.Properties(); + fis = new FileInputStream(EgovWebUtil.filePathBlackList(fileName)); + props.load(new java.io.BufferedInputStream(fis)); + fis.close(); + + String value = props.getProperty(key); + value = RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + value; + return value; + }catch(java.io.FileNotFoundException fne){ + return ERR_CODE_FNFE; + }catch(java.io.IOException ioe){ + return ERR_CODE_IOE; + }finally{ + try { + if (fis != null) fis.close(); + } catch (Exception ex) { + //ex.printStackTrace(); + debug(ex); // 2011.10.10 보안점검 후속조치 + } + } + } + + + /** + * 주어진 파일에서 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 값을 반환한다 + * @param fileName String + * @param key String + * @return String + */ + public static String getProperty(String fileName, String key){ + FileInputStream fis = null; + try{ + java.util.Properties props = new java.util.Properties(); + fis = new FileInputStream(EgovWebUtil.filePathBlackList(fileName)); + props.load(new java.io.BufferedInputStream(fis)); + fis.close(); + + String value = props.getProperty(key); + return value; + }catch(java.io.FileNotFoundException fne){ + return ERR_CODE_FNFE; + }catch(java.io.IOException ioe){ + return ERR_CODE_IOE; + }finally{ + try { + if (fis != null) fis.close(); + } catch (Exception ex) { + //ex.printStackTrace(); + //System.out.println("IGNORE: " + ex); // 2011.10.10 보안점검 후속조치 + Logger.getLogger(EgovProperties.class).debug("IGNORED: " + ex.getMessage()); + } + } + } + + /** + * 주어진 프로파일의 내용을 파싱하여 (key-value) 형태의 구조체 배열을 반환한다. + * @param property String + * @return ArrayList + */ + public static ArrayList loadPropertyFile(String property){ + + // key - value 형태로 된 배열 결과 + ArrayList keyList = new ArrayList(); + + String src = property.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR); + FileInputStream fis = null; + try + { + + File srcFile = new File(EgovWebUtil.filePathBlackList(src)); + if (srcFile.exists()) { + + java.util.Properties props = new java.util.Properties(); + fis = new FileInputStream(src); + props.load(new java.io.BufferedInputStream(fis)); + fis.close(); + + int i = 0; + Enumeration plist = props.propertyNames(); + if (plist != null) { + while (plist.hasMoreElements()) { + Map map = new HashMap(); + String key = (String)plist.nextElement(); + map.put(key, props.getProperty(key)); + keyList.add(map); + } + } + } + } catch (Exception ex){ + //ex.printStackTrace(); + debug(ex); // 2011.10.10 보안점검 후속조치 + } finally { + try { + if (fis != null) fis.close(); + } catch (Exception ex) { + //ex.printStackTrace(); + //System.out.println("IGNORE: " + ex); // 2011.10.10 보안점검 후속조치 + Logger.getLogger(EgovProperties.class).debug("IGNORED: " + ex.getMessage()); + } + } + + return keyList; + } + /** + * 시스템 로그를 출력한다. + * @param obj Object + */ + private static void debug(Object obj) { + if (obj instanceof java.lang.Exception) { + //((Exception)obj).printStackTrace(); + //System.out.println("DEBUG: " + obj); // 2011.10.10 보안점검 후속조치 + Logger.getLogger(EgovProperties.class).debug("IGNORED: " + ((Exception)obj).getMessage()); + } + } +} + diff --git a/src/main/java/egovframework/com/cmm/service/EgovUserDetailsService.java b/src/main/java/egovframework/com/cmm/service/EgovUserDetailsService.java new file mode 100644 index 0000000..796f5ef --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/EgovUserDetailsService.java @@ -0,0 +1,26 @@ +package egovframework.com.cmm.service; + +import java.util.List; + +public interface EgovUserDetailsService { + + /** + * 인증된 사용자객체를 VO형식으로 가져온다. + * @return Object - 사용자 ValueObject + */ + public Object getAuthenticatedUser(); + + /** + * 인증된 사용자의 권한 정보를 가져온다. + * 예) [ROLE_ADMIN, ROLE_USER, ROLE_A, ROLE_B, ROLE_RESTRICTED, IS_AUTHENTICATED_FULLY, IS_AUTHENTICATED_REMEMBERED, IS_AUTHENTICATED_ANONYMOUSLY] + * @return List - 사용자 권한정보 목록 + */ + public List getAuthorities(); + + /** + * 인증된 사용자 여부를 체크한다. + * @return Boolean - 인증된 사용자 여부(TRUE / FALSE) + */ + public Boolean isAuthenticated(); + +} diff --git a/src/main/java/egovframework/com/cmm/service/FileVO.java b/src/main/java/egovframework/com/cmm/service/FileVO.java new file mode 100644 index 0000000..45d3053 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/FileVO.java @@ -0,0 +1,240 @@ +package egovframework.com.cmm.service; + +import java.io.Serializable; + +import org.apache.commons.lang3.builder.ToStringBuilder; + +/** + * @Class Name : FileVO.java + * @Description : 파일정보 처리를 위한 VO 클래스 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- ------- ------------------- + * 2009. 3. 25. 이삼섭 + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 3. 25. + * @version + * @see + * + */ +@SuppressWarnings("serial") +public class FileVO implements Serializable { + + /** + * 첨부파일 아이디 + */ + public String atchFileId = ""; + /** + * 생성일자 + */ + public String creatDt = ""; + /** + * 파일내용 + */ + public String fileCn = ""; + /** + * 파일확장자 + */ + public String fileExtsn = ""; + /** + * 파일크기 + */ + public String fileMg = ""; + /** + * 파일연번 + */ + public String fileSn = ""; + /** + * 파일저장경로 + */ + public String fileStreCours = ""; + /** + * 원파일명 + */ + public String orignlFileNm = ""; + /** + * 저장파일명 + */ + public String streFileNm = ""; + + /** + * atchFileId attribute를 리턴한다. + * + * @return the atchFileId + */ + public String getAtchFileId() { + return atchFileId; + } + + /** + * atchFileId attribute 값을 설정한다. + * + * @param atchFileId + * the atchFileId to set + */ + public void setAtchFileId(String atchFileId) { + this.atchFileId = atchFileId; + } + + /** + * creatDt attribute를 리턴한다. + * + * @return the creatDt + */ + public String getCreatDt() { + return creatDt; + } + + /** + * creatDt attribute 값을 설정한다. + * + * @param creatDt + * the creatDt to set + */ + public void setCreatDt(String creatDt) { + this.creatDt = creatDt; + } + + /** + * fileCn attribute를 리턴한다. + * + * @return the fileCn + */ + public String getFileCn() { + return fileCn; + } + + /** + * fileCn attribute 값을 설정한다. + * + * @param fileCn + * the fileCn to set + */ + public void setFileCn(String fileCn) { + this.fileCn = fileCn; + } + + /** + * fileExtsn attribute를 리턴한다. + * + * @return the fileExtsn + */ + public String getFileExtsn() { + return fileExtsn; + } + + /** + * fileExtsn attribute 값을 설정한다. + * + * @param fileExtsn + * the fileExtsn to set + */ + public void setFileExtsn(String fileExtsn) { + this.fileExtsn = fileExtsn; + } + + /** + * fileMg attribute를 리턴한다. + * + * @return the fileMg + */ + public String getFileMg() { + return fileMg; + } + + /** + * fileMg attribute 값을 설정한다. + * + * @param fileMg + * the fileMg to set + */ + public void setFileMg(String fileMg) { + this.fileMg = fileMg; + } + + /** + * fileSn attribute를 리턴한다. + * + * @return the fileSn + */ + public String getFileSn() { + return fileSn; + } + + /** + * fileSn attribute 값을 설정한다. + * + * @param fileSn + * the fileSn to set + */ + public void setFileSn(String fileSn) { + this.fileSn = fileSn; + } + + /** + * fileStreCours attribute를 리턴한다. + * + * @return the fileStreCours + */ + public String getFileStreCours() { + return fileStreCours; + } + + /** + * fileStreCours attribute 값을 설정한다. + * + * @param fileStreCours + * the fileStreCours to set + */ + public void setFileStreCours(String fileStreCours) { + this.fileStreCours = fileStreCours; + } + + /** + * orignlFileNm attribute를 리턴한다. + * + * @return the orignlFileNm + */ + public String getOrignlFileNm() { + return orignlFileNm; + } + + /** + * orignlFileNm attribute 값을 설정한다. + * + * @param orignlFileNm + * the orignlFileNm to set + */ + public void setOrignlFileNm(String orignlFileNm) { + this.orignlFileNm = orignlFileNm; + } + + /** + * streFileNm attribute를 리턴한다. + * + * @return the streFileNm + */ + public String getStreFileNm() { + return streFileNm; + } + + /** + * streFileNm attribute 값을 설정한다. + * + * @param streFileNm + * the streFileNm to set + */ + public void setStreFileNm(String streFileNm) { + this.streFileNm = streFileNm; + } + + /** + * toString 메소드를 대치한다. + */ + public String toString() { + return ToStringBuilder.reflectionToString(this); + } + +} diff --git a/src/main/java/egovframework/com/cmm/service/Globals.java b/src/main/java/egovframework/com/cmm/service/Globals.java new file mode 100644 index 0000000..ae7674b --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/Globals.java @@ -0,0 +1,58 @@ +package egovframework.com.cmm.service; + +/** + * Class Name : Globals.java + * Description : 시스템 구동 시 프로퍼티를 통해 사용될 전역변수를 정의한다. + * Modification Information + * + * 수정일 수정자 수정내용 + * ------- -------- --------------------------- + * 2009.01.19 박지욱 최초 생성 + * + * @author 공통 서비스 개발팀 박지욱 + * @since 2009. 01. 19 + * @version 1.0 + * @see + * + */ + +public class Globals { + //OS 유형 + public static final String OS_TYPE = EgovProperties.getProperty("Globals.OsType"); + //DB 유형 + public static final String DB_TYPE = EgovProperties.getProperty("Globals.DbType"); + //메인 페이지 + public static final String MAIN_PAGE = EgovProperties.getProperty("Globals.MainPage"); + //ShellFile 경로 + public static final String SHELL_FILE_PATH = EgovProperties.getPathProperty("Globals.ShellFilePath"); + //퍼로퍼티 파일 위치 + public static final String CONF_PATH = EgovProperties.getPathProperty("Globals.ConfPath"); + //Server정보 프로퍼티 위치 + public static final String SERVER_CONF_PATH = EgovProperties.getPathProperty("Globals.ServerConfPath"); + //Client정보 프로퍼티 위치 + public static final String CLIENT_CONF_PATH = EgovProperties.getPathProperty("Globals.ClientConfPath"); + //파일포맷 정보 프로퍼티 위치 + public static final String FILE_FORMAT_PATH = EgovProperties.getPathProperty("Globals.FileFormatPath"); + + //파일 업로드 원 파일명 + public static final String ORIGIN_FILE_NM = "originalFileName"; + //파일 확장자 + public static final String FILE_EXT = "fileExtension"; + //파일크기 + public static final String FILE_SIZE = "fileSize"; + //업로드된 파일명 + public static final String UPLOAD_FILE_NM = "uploadFileName"; + //파일경로 + public static final String FILE_PATH = "filePath"; + + //메일발송요청 XML파일경로 + public static final String MAIL_REQUEST_PATH = EgovProperties.getPathProperty("Globals.MailRequestPath"); + //메일발송응답 XML파일경로 + public static final String MAIL_RESPONSE_PATH = EgovProperties.getPathProperty("Globals.MailRResponsePath"); + + // G4C 연결용 IP (localhost) + public static final String LOCAL_IP = EgovProperties.getProperty("Globals.LocalIp"); + + + +} diff --git a/src/main/java/egovframework/com/cmm/service/impl/EgovComAbstractDAO.java b/src/main/java/egovframework/com/cmm/service/impl/EgovComAbstractDAO.java new file mode 100644 index 0000000..1ae13cd --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/impl/EgovComAbstractDAO.java @@ -0,0 +1,37 @@ +/** + * + */ +package egovframework.com.cmm.service.impl; + +import javax.annotation.Resource; + +import com.ibatis.sqlmap.client.SqlMapClient; + +import egovframework.rte.psl.dataaccess.EgovAbstractDAO; + +/** + * EgovComAbstractDAO.java 클래스 + * + * @author 서준식 + * @since 2011. 9. 23. + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    -------------    ----------------------
+ *   2011. 9. 23.   서준식        최초 생성
+ * 
+ */ +public abstract class EgovComAbstractDAO extends EgovAbstractDAO{ + + + @Resource(name="egov.sqlMapClient") + public void setSuperSqlMapClient(SqlMapClient sqlMapClient) { + super.setSuperSqlMapClient(sqlMapClient); + } + + +} diff --git a/src/main/java/egovframework/com/cmm/service/impl/EgovFileMngServiceImpl.java b/src/main/java/egovframework/com/cmm/service/impl/EgovFileMngServiceImpl.java new file mode 100644 index 0000000..eabd422 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/impl/EgovFileMngServiceImpl.java @@ -0,0 +1,161 @@ +package egovframework.com.cmm.service.impl; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.apache.log4j.Logger; +import org.springframework.stereotype.Service; + +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.FileVO; +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +/** + * @Class Name : EgovFileMngServiceImpl.java + * @Description : 파일정보의 관리를 위한 구현 클래스 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- ------- ------------------- + * 2009. 3. 25. 이삼섭 최초생성 + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 3. 25. + * @version + * @see + * + */ +@Service("EgovFileMngService") +public class EgovFileMngServiceImpl extends AbstractServiceImpl implements EgovFileMngService { + + @Resource(name = "FileManageDAO") + private FileManageDAO fileMngDAO; + + public static final Logger LOGGER = Logger.getLogger(EgovFileMngServiceImpl.class.getName()); + + /** + * 여러 개의 파일을 삭제한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#deleteFileInfs(java.util.List) + */ + @SuppressWarnings("unchecked") + public void deleteFileInfs(List fvoList) throws Exception { + fileMngDAO.deleteFileInfs(fvoList); + } + + /** + * 하나의 파일에 대한 정보(속성 및 상세)를 등록한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#insertFileInf(egovframework.com.cmm.service.FileVO) + */ + public String insertFileInf(FileVO fvo) throws Exception { + String atchFileId = fvo.getAtchFileId(); + + fileMngDAO.insertFileInf(fvo); + + return atchFileId; + } + + /** + * 여러 개의 파일에 대한 정보(속성 및 상세)를 등록한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#insertFileInfs(java.util.List) + */ + @SuppressWarnings("unchecked") + public String insertFileInfs(List fvoList) throws Exception { + String atchFileId = ""; + + if (fvoList.size() != 0) { + atchFileId = fileMngDAO.insertFileInfs(fvoList); + } + if(atchFileId == ""){ + atchFileId = null; + } + return atchFileId; + } + + /** + * 파일에 대한 목록을 조회한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#selectFileInfs(egovframework.com.cmm.service.FileVO) + */ + public List selectFileInfs(FileVO fvo) throws Exception { + return fileMngDAO.selectFileInfs(fvo); + } + + /** + * 여러 개의 파일에 대한 정보(속성 및 상세)를 수정한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#updateFileInfs(java.util.List) + */ + @SuppressWarnings("unchecked") + public void updateFileInfs(List fvoList) throws Exception { + //Delete & Insert + fileMngDAO.updateFileInfs(fvoList); + } + + /** + * 하나의 파일을 삭제한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#deleteFileInf(egovframework.com.cmm.service.FileVO) + */ + public void deleteFileInf(FileVO fvo) throws Exception { + fileMngDAO.deleteFileInf(fvo); + } + + /** + * 파일에 대한 상세정보를 조회한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#selectFileInf(egovframework.com.cmm.service.FileVO) + */ + public FileVO selectFileInf(FileVO fvo) throws Exception { + return fileMngDAO.selectFileInf(fvo); + } + + /** + * 파일 구분자에 대한 최대값을 구한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#getMaxFileSN(egovframework.com.cmm.service.FileVO) + */ + public int getMaxFileSN(FileVO fvo) throws Exception { + return fileMngDAO.getMaxFileSN(fvo); + } + + /** + * 전체 파일을 삭제한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#deleteAllFileInf(egovframework.com.cmm.service.FileVO) + */ + public void deleteAllFileInf(FileVO fvo) throws Exception { + fileMngDAO.deleteAllFileInf(fvo); + } + + /** + * 파일명 검색에 대한 목록을 조회한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#selectFileListByFileNm(egovframework.com.cmm.service.FileVO) + */ + public Map selectFileListByFileNm(FileVO fvo) throws Exception { + List result = fileMngDAO.selectFileListByFileNm(fvo); + int cnt = fileMngDAO.selectFileListCntByFileNm(fvo); + + Map map = new HashMap(); + + map.put("resultList", result); + map.put("resultCnt", Integer.toString(cnt)); + + return map; + } + + /** + * 이미지 파일에 대한 목록을 조회한다. + * + * @see egovframework.com.cmm.service.EgovFileMngService#selectImageFileList(egovframework.com.cmm.service.FileVO) + */ + public List selectImageFileList(FileVO vo) throws Exception { + return fileMngDAO.selectImageFileList(vo); + } +} diff --git a/src/main/java/egovframework/com/cmm/service/impl/EgovTestUserDetailsServiceImpl.java b/src/main/java/egovframework/com/cmm/service/impl/EgovTestUserDetailsServiceImpl.java new file mode 100644 index 0000000..f6f1331 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/impl/EgovTestUserDetailsServiceImpl.java @@ -0,0 +1,83 @@ +package egovframework.com.cmm.service.impl; + +import java.util.ArrayList; +import java.util.List; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.service.EgovUserDetailsService; +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +/** + * + * @author 공통서비스 개발팀 서준식 + * @since 2011. 8. 12. + * @version 1.0 + * @see + * + *
+ * 개정이력(Modification Information)
+ *
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2011. 8. 12.    서준식        최초생성
+ *
+ *  
+ */ + +public class EgovTestUserDetailsServiceImpl extends AbstractServiceImpl implements + EgovUserDetailsService { + + public Object getAuthenticatedUser() { + + LoginVO loginVO = new LoginVO(); + loginVO.setId("TEST1"); + loginVO.setPassword("a4ayc/80/OGda4BO/1o/V0etpOqiLx1JwB5S3beHW0s="); + loginVO.setUserSe("USR"); + loginVO.setEmail("a3@aa.aa"); + loginVO.setIhidNum("1111111111118"); + loginVO.setName("더미사용자"); + loginVO.setOrgnztId("ORGNZT_0000000000000"); + loginVO.setUniqId("USRCNFRM_00000000000"); + return loginVO; + + // return + // RequestContextHolder.getRequestAttributes().getAttribute("loginVO", + // RequestAttributes.SCOPE_SESSION); + + } + + public List getAuthorities() { + + // 권한 설정을 리턴한다. + + List listAuth = new ArrayList(); + listAuth.add("IS_AUTHENTICATED_ANONYMOUSLY"); + listAuth.add("IS_AUTHENTICATED_FULLY"); + listAuth.add("IS_AUTHENTICATED_REMEMBERED"); + listAuth.add("ROLE_ADMIN"); + listAuth.add("ROLE_ANONYMOUS"); + listAuth.add("ROLE_RESTRICTED"); + listAuth.add("ROLE_USER"); + + return listAuth; + } + + public Boolean isAuthenticated() { + // 인증된 유저인지 확인한다. + + /*if (RequestContextHolder.getRequestAttributes() == null) { + return false; + } else { + + if (RequestContextHolder.getRequestAttributes().getAttribute( + "loginVO", RequestAttributes.SCOPE_SESSION) == null) { + return false; + } else { + return true; + } + }*/ + + return true; + } + +} diff --git a/src/main/java/egovframework/com/cmm/service/impl/EgovUserDetailsSessionServiceImpl.java b/src/main/java/egovframework/com/cmm/service/impl/EgovUserDetailsSessionServiceImpl.java new file mode 100644 index 0000000..ef50abd --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/impl/EgovUserDetailsSessionServiceImpl.java @@ -0,0 +1,66 @@ +package egovframework.com.cmm.service.impl; + +import java.util.ArrayList; +import java.util.List; + +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; + +import egovframework.com.cmm.service.EgovUserDetailsService; +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + +/** + * + * @author 공통서비스 개발팀 서준식 + * @since 2011. 6. 25. + * @version 1.0 + * @see + * + *
+ * 개정이력(Modification Information) 
+ * 
+ *   수정일      수정자          수정내용
+ *  -------    --------    ---------------------------
+ *  2011. 8. 12.    서준식        최초생성
+ *  
+ *  
+ */ + +public class EgovUserDetailsSessionServiceImpl extends AbstractServiceImpl implements + EgovUserDetailsService { + + public Object getAuthenticatedUser() { + + + + return RequestContextHolder.getRequestAttributes().getAttribute("loginVO", RequestAttributes.SCOPE_SESSION); + + } + + public List getAuthorities() { + + // 권한 설정을 리턴한다. + List listAuth = new ArrayList(); + + return listAuth; + } + + public Boolean isAuthenticated() { + // 인증된 유저인지 확인한다. + + if (RequestContextHolder.getRequestAttributes() == null) { + return false; + } else { + + if (RequestContextHolder.getRequestAttributes().getAttribute( + "loginVO", RequestAttributes.SCOPE_SESSION) == null) { + return false; + } else { + return true; + } + } + + + } + +} diff --git a/src/main/java/egovframework/com/cmm/service/impl/FileManageDAO.java b/src/main/java/egovframework/com/cmm/service/impl/FileManageDAO.java new file mode 100644 index 0000000..9951d4d --- /dev/null +++ b/src/main/java/egovframework/com/cmm/service/impl/FileManageDAO.java @@ -0,0 +1,187 @@ +package egovframework.com.cmm.service.impl; + +import java.util.Iterator; +import java.util.List; + +import org.springframework.stereotype.Repository; + +import egovframework.com.cmm.service.FileVO; + +/** + * @Class Name : EgovFileMngDAO.java + * @Description : 파일정보 관리를 위한 데이터 처리 클래스 + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- ------- ------------------- + * 2009. 3. 25. 이삼섭 최초생성 + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 3. 25. + * @version + * @see + * + */ +@Repository("FileManageDAO") +public class FileManageDAO extends EgovComAbstractDAO { + + //private static final Logger LOG = Logger.getLogger(this.getClass()); + + /** + * 여러 개의 파일에 대한 정보(속성 및 상세)를 등록한다. + * + * @param fileList + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public String insertFileInfs(List fileList) throws Exception { + FileVO vo = (FileVO)fileList.get(0); + String atchFileId = vo.getAtchFileId(); + + insert("FileManageDAO.insertFileMaster", vo); + + Iterator iter = fileList.iterator(); + while (iter.hasNext()) { + vo = (FileVO)iter.next(); + + insert("FileManageDAO.insertFileDetail", vo); + } + + return atchFileId; + } + + /** + * 하나의 파일에 대한 정보(속성 및 상세)를 등록한다. + * + * @param vo + * @throws Exception + */ + public void insertFileInf(FileVO vo) throws Exception { + insert("FileManageDAO.insertFileMaster", vo); + insert("FileManageDAO.insertFileDetail", vo); + } + + /** + * 여러 개의 파일에 대한 정보(속성 및 상세)를 수정한다. + * + * @param fileList + * @throws Exception + */ + @SuppressWarnings("unchecked") + public void updateFileInfs(List fileList) throws Exception { + FileVO vo; + Iterator iter = fileList.iterator(); + while (iter.hasNext()) { + vo = (FileVO)iter.next(); + + insert("FileManageDAO.insertFileDetail", vo); + } + } + + /** + * 여러 개의 파일을 삭제한다. + * + * @param fileList + * @throws Exception + */ + @SuppressWarnings("unchecked") + public void deleteFileInfs(List fileList) throws Exception { + Iterator iter = fileList.iterator(); + FileVO vo; + while (iter.hasNext()) { + vo = (FileVO)iter.next(); + + delete("FileManageDAO.deleteFileDetail", vo); + } + } + + /** + * 하나의 파일을 삭제한다. + * + * @param fvo + * @throws Exception + */ + public void deleteFileInf(FileVO fvo) throws Exception { + delete("FileManageDAO.deleteFileDetail", fvo); + } + + /** + * 파일에 대한 목록을 조회한다. + * + * @param vo + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List selectFileInfs(FileVO vo) throws Exception { + return list("FileManageDAO.selectFileList", vo); + } + + /** + * 파일 구분자에 대한 최대값을 구한다. + * + * @param fvo + * @return + * @throws Exception + */ + public int getMaxFileSN(FileVO fvo) throws Exception { + return (Integer)getSqlMapClientTemplate().queryForObject("FileManageDAO.getMaxFileSN", fvo); + } + + /** + * 파일에 대한 상세정보를 조회한다. + * + * @param fvo + * @return + * @throws Exception + */ + public FileVO selectFileInf(FileVO fvo) throws Exception { + return (FileVO)selectByPk("FileManageDAO.selectFileInf", fvo); + } + + /** + * 전체 파일을 삭제한다. + * + * @param fvo + * @throws Exception + */ + public void deleteAllFileInf(FileVO fvo) throws Exception { + update("FileManageDAO.deleteCOMTNFILE", fvo); + } + + /** + * 파일명 검색에 대한 목록을 조회한다. + * + * @param vo + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List selectFileListByFileNm(FileVO fvo) throws Exception { + return list("FileManageDAO.selectFileListByFileNm", fvo); + } + + /** + * 파일명 검색에 대한 목록 전체 건수를 조회한다. + * + * @param fvo + * @return + * @throws Exception + */ + public int selectFileListCntByFileNm(FileVO fvo) throws Exception { + return (Integer)getSqlMapClientTemplate().queryForObject("FileManageDAO.selectFileListCntByFileNm", fvo); + } + + /** + * 이미지 파일에 대한 목록을 조회한다. + * + * @param vo + * @return + * @throws Exception + */ + @SuppressWarnings("unchecked") + public List selectImageFileList(FileVO vo) throws Exception { + return list("FileManageDAO.selectImageFileList", vo); + } +} diff --git a/src/main/java/egovframework/com/cmm/util/EgovUserDetailsHelper.java b/src/main/java/egovframework/com/cmm/util/EgovUserDetailsHelper.java new file mode 100644 index 0000000..b0b7a56 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/util/EgovUserDetailsHelper.java @@ -0,0 +1,68 @@ +package egovframework.com.cmm.util; + +import java.util.List; + +import egovframework.com.cmm.service.EgovUserDetailsService; + +/** + * EgovUserDetails Helper 클래스 + * + * @author sjyoon + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    -------------    ----------------------
+ *   2009.03.10  sjyoon         최초 생성
+ *   2011.07.01	 서준식          interface 생성후 상세 로직의 분리
+ * 
+ */ + +public class EgovUserDetailsHelper { + + static EgovUserDetailsService egovUserDetailsService; + + + + + public EgovUserDetailsService getEgovUserDetailsService() { + return egovUserDetailsService; + } + + public void setEgovUserDetailsService( + EgovUserDetailsService egovUserDetailsService) { + this.egovUserDetailsService = egovUserDetailsService; + } + + /** + * 인증된 사용자객체를 VO형식으로 가져온다. + * @return Object - 사용자 ValueObject + */ + public static Object getAuthenticatedUser() { + return egovUserDetailsService.getAuthenticatedUser(); + } + + /** + * 인증된 사용자의 권한 정보를 가져온다. + * + * @return List - 사용자 권한정보 목록 + */ + public static List getAuthorities() { + + + return egovUserDetailsService.getAuthorities(); + } + + /** + * 인증된 사용자 여부를 체크한다. + * @return Boolean - 인증된 사용자 여부(TRUE / FALSE) + */ + public static Boolean isAuthenticated() { + + return egovUserDetailsService.isAuthenticated(); + } +} diff --git a/src/main/java/egovframework/com/cmm/web/EgovBindingInitializer.java b/src/main/java/egovframework/com/cmm/web/EgovBindingInitializer.java new file mode 100644 index 0000000..33a1ab4 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/web/EgovBindingInitializer.java @@ -0,0 +1,22 @@ +package egovframework.com.cmm.web; + +import java.text.SimpleDateFormat; +import java.util.Date; + +import org.springframework.beans.propertyeditors.CustomDateEditor; +import org.springframework.beans.propertyeditors.StringTrimmerEditor; +import org.springframework.web.bind.WebDataBinder; +import org.springframework.web.bind.support.WebBindingInitializer; +import org.springframework.web.context.request.WebRequest; + +public class EgovBindingInitializer implements WebBindingInitializer { + + + public void initBinder(WebDataBinder binder, WebRequest request) { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + dateFormat.setLenient(false); + binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false)); + binder.registerCustomEditor(String.class, new StringTrimmerEditor(false)); + } + +} diff --git a/src/main/java/egovframework/com/cmm/web/EgovComIndexController.java b/src/main/java/egovframework/com/cmm/web/EgovComIndexController.java new file mode 100644 index 0000000..358eecf --- /dev/null +++ b/src/main/java/egovframework/com/cmm/web/EgovComIndexController.java @@ -0,0 +1,177 @@ +package egovframework.com.cmm.web; + +/** + * 컴포넌트 설치 후 설치된 컴포넌트들을 IncludedInfo annotation을 통해 찾아낸 후 + * 화면에 표시할 정보를 처리하는 Controller 클래스 + * + * 개발시 메뉴 구조가 잡히기 전에 배포파일들에 포함된 공통 컴포넌트들의 목록성 화면에 + * URL을 제공하여 개발자가 편하게 활용하도록 하기 위해 작성된 것으로, + * 실제 운영되는 시스템에서는 적용해서는 안 됨 + * 실 운영 시에는 삭제해서 배포해도 좋음 + * + * 운영시에 본 컨트롤을 사용하여 메뉴를 구성하는 경우 성능 문제를 일으키거나 + * 사용자별 메뉴 구성에 오류를 발생할 수 있음 + * @author 공통컴포넌트 정진오 + * @since 2011.08.26 + * @version 2.0.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *  수정일		수정자		수정내용
+ *  -------    	--------    ---------------------------
+ *  2011.08.26	정진오 		최초 생성
+ *  2011.09.16  서준식		컨텐츠 페이지 생성
+ *  2011.09.26  이기하		header, footer 페이지 생성
+ * 
+ */ + +import java.lang.reflect.Method; +import java.util.Map; +import java.util.TreeMap; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; + +import egovframework.com.cmm.IncludedCompInfoVO; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.cmm.util.EgovUserDetailsHelper; + + +@Controller +public class EgovComIndexController implements ApplicationContextAware ,InitializingBean { + + private ApplicationContext applicationContext; + + protected static final Log LOG = LogFactory.getLog(EgovComIndexController.class); + + private Map map; + + public void afterPropertiesSet() throws Exception { + // TODO Auto-generated method stub + + } + + public void setApplicationContext(ApplicationContext applicationContext) + throws BeansException { + // TODO Auto-generated method stub + this.applicationContext = applicationContext; + LOG.info("EgovComIndexController setApplicationContext method has called!"); + } + + @RequestMapping("/index.do") + public String index(ModelMap model){ + return "egovframework/com/cmm/EgovUnitMain"; + } + + @RequestMapping("/EgovTop.do") + public String top(){ + return "egovframework/com/cmm/EgovUnitTop"; + } + + @RequestMapping("/EgovBottom.do") + public String bottom(){ + return "egovframework/com/cmm/EgovUnitBottom"; + } + + @RequestMapping("/EgovContent.do") + public String setContent(ModelMap model){ + + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + model.addAttribute("loginVO", loginVO); + + return "egovframework/com/cmm/EgovUnitContent"; + } + + + @RequestMapping("/EgovLeft.do") + public String setLeftMenu(ModelMap model){ + + /*최초 한 번만 실행하여 map에 저장해 놓는다.*/ + if(map == null){ + map = new TreeMap(); + RequestMapping rmAnnotation; + IncludedInfo annotation; + IncludedCompInfoVO zooVO; + + /* + * EgovLoginController가 AOP Proxy되는 바람에 클래스를 reflection으로 가져올 수 없음 + * 방법을 찾을때까지 임시로 아래 코드 유지 + */ + try{ + Class loginController = Class.forName("egovframework.com.uat.uia.web.EgovLoginController"); + Method[] methods = loginController.getMethods(); + for(int i = 0; i< methods.length ;i++){ + annotation = methods[i].getAnnotation(IncludedInfo.class); + + if(annotation != null){ + LOG.debug("Found @IncludedInfo Method : " + methods[i] ); + zooVO = new IncludedCompInfoVO(); + zooVO.setName(annotation.name()); + zooVO.setOrder(annotation.order()); + zooVO.setGid(annotation.gid()); + + rmAnnotation = methods[i].getAnnotation(RequestMapping.class); + if("".equals(annotation.listUrl()) && rmAnnotation != null){ + zooVO.setListUrl(rmAnnotation.value()[0]); + } + else{ + zooVO.setListUrl(annotation.listUrl()); + } + map.put(zooVO.getOrder(),zooVO); + } + } + } + catch(Exception e){ + LOG.error("No egovframework.com.uat.uia.web.EgovLoginController!!"); + } + /* 여기까지 AOP Proxy로 인한 임시 코드 */ + + /*@Controller Annotation 처리된 클래스를 모두 찾는다.*/ + Map myZoos = applicationContext.getBeansWithAnnotation(Controller.class); + LOG.debug("How many Controllers : " + myZoos.size()); + for (final Object myZoo : myZoos.values()) { + Class zooClass = myZoo.getClass(); + + Method[] methods = zooClass.getMethods(); + LOG.debug("Controller Detected " + zooClass); + for(int i = 0; i< methods.length ;i++){ + annotation = methods[i].getAnnotation(IncludedInfo.class); + + if(annotation != null){ + //LOG.debug("Found @IncludedInfo Method : " + methods[i] ); + zooVO = new IncludedCompInfoVO(); + zooVO.setName(annotation.name()); + zooVO.setOrder(annotation.order()); + zooVO.setGid(annotation.gid()); + /* + * 목록형 조회를 위한 url 매핑은 @IncludedInfo나 @RequestMapping에서 가져온다 + */ + rmAnnotation = methods[i].getAnnotation(RequestMapping.class); + if("".equals(annotation.listUrl())){ + zooVO.setListUrl(rmAnnotation.value()[0]); + } + else{ + zooVO.setListUrl(annotation.listUrl()); + } + + map.put(zooVO.getOrder(),zooVO); + } + } + } + } + + model.addAttribute("resultList", map.values()); + LOG.debug("EgovComIndexController index is called " ); + return "egovframework/com/cmm/EgovUnitLeft"; + } +} diff --git a/src/main/java/egovframework/com/cmm/web/EgovComUtlController.java b/src/main/java/egovframework/com/cmm/web/EgovComUtlController.java new file mode 100644 index 0000000..06c37a6 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/web/EgovComUtlController.java @@ -0,0 +1,58 @@ +package egovframework.com.cmm.web; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import egovframework.rte.fdl.property.EgovPropertyService; + +/** + * @Class Name : EgovComUtlController.java + * @Description : 공통유틸리티성 작업을 위한 Controller + * @Modification Information + * @ + * @ 수정일 수정자 수정내용 + * @ ------- -------- --------------------------- + * @ 2009.03.02 조재영 최초 생성 + * @ 2011.10.07 이기하 .action -> .do로 변경하면서 동일 매핑이 되어 삭제처리 + * + * @author 공통서비스 개발팀 조재영 + * @since 2009.03.02 + * @version 1.0 + * @see + * + */ +@Controller +public class EgovComUtlController { + + //@Resource(name = "egovUserManageService") + //private EgovUserManageService egovUserManageService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + /** + * JSP 호출작업만 처리하는 공통 함수 + */ + @RequestMapping(value="/EgovPageLink.do") + public String moveToPage(@RequestParam("link") String linkPage){ + String link = linkPage; + // service 사용하여 리턴할 결과값 처리하는 부분은 생략하고 단순 페이지 링크만 처리함 + if (linkPage==null || linkPage.equals("")){ + link="egovframework/com/cmm/egovError"; + } + return link; + } + + /** + * validato rule dynamic Javascript + */ + @RequestMapping("/validator.do") + public String validate(){ + return "egovframework/com/cmm/validator"; + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/cmm/web/EgovFileDownloadController.java b/src/main/java/egovframework/com/cmm/web/EgovFileDownloadController.java new file mode 100644 index 0000000..92732df --- /dev/null +++ b/src/main/java/egovframework/com/cmm/web/EgovFileDownloadController.java @@ -0,0 +1,202 @@ +package egovframework.com.cmm.web; + +import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.PrintWriter; +import java.net.URLEncoder; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.log4j.Logger; +import org.springframework.stereotype.Controller; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.bind.annotation.RequestMapping; + +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.FileVO; +import egovframework.com.cmm.util.EgovUserDetailsHelper; + + +/** + * 파일 다운로드를 위한 컨트롤러 클래스 + * @author 공통서비스개발팀 이삼섭 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.3.25  이삼섭          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +@Controller +public class EgovFileDownloadController { + + + + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + + private static final Logger LOG = Logger.getLogger(EgovFileDownloadController.class.getName()); + + /** + * 브라우저 구분 얻기. + * + * @param request + * @return + */ + private String getBrowser(HttpServletRequest request) { + String header = request.getHeader("User-Agent"); + if (header.indexOf("MSIE") > -1) { + return "MSIE"; + } else if (header.indexOf("Chrome") > -1) { + return "Chrome"; + } else if (header.indexOf("Opera") > -1) { + return "Opera"; + } + return "Firefox"; + } + + /** + * Disposition 지정하기. + * + * @param filename + * @param request + * @param response + * @throws Exception + */ + private void setDisposition(String filename, HttpServletRequest request, HttpServletResponse response) throws Exception { + String browser = getBrowser(request); + + String dispositionPrefix = "attachment; filename="; + String encodedFilename = null; + + if (browser.equals("MSIE")) { + encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20"); + } else if (browser.equals("Firefox")) { + encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; + } else if (browser.equals("Opera")) { + encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\""; + } else if (browser.equals("Chrome")) { + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < filename.length(); i++) { + char c = filename.charAt(i); + if (c > '~') { + sb.append(URLEncoder.encode("" + c, "UTF-8")); + } else { + sb.append(c); + } + } + encodedFilename = sb.toString(); + } else { + //throw new RuntimeException("Not supported browser"); + throw new IOException("Not supported browser"); + } + + response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename); + + if ("Opera".equals(browser)){ + response.setContentType("application/octet-stream;charset=UTF-8"); + } + } + + /** + * 첨부파일로 등록된 파일에 대하여 다운로드를 제공한다. + * + * @param commandMap + * @param response + * @throws Exception + */ + @RequestMapping(value = "/cmm/fms/FileDown.do") + public void cvplFileDownload(Map commandMap, HttpServletRequest request, HttpServletResponse response) throws Exception { + + String atchFileId = (String)commandMap.get("atchFileId"); + String fileSn = (String)commandMap.get("fileSn"); + + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + + if (isAuthenticated) { + + FileVO fileVO = new FileVO(); + fileVO.setAtchFileId(atchFileId); + fileVO.setFileSn(fileSn); + FileVO fvo = fileService.selectFileInf(fileVO); + + File uFile = new File(fvo.getFileStreCours(), fvo.getStreFileNm()); + int fSize = (int)uFile.length(); + + if (fSize > 0) { + String mimetype = "application/x-msdownload"; + + //response.setBufferSize(fSize); // OutOfMemeory 발생 + response.setContentType(mimetype); + //response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fvo.getOrignlFileNm(), "utf-8") + "\""); + setDisposition(fvo.getOrignlFileNm(), request, response); + response.setContentLength(fSize); + + /* + * FileCopyUtils.copy(in, response.getOutputStream()); + * in.close(); + * response.getOutputStream().flush(); + * response.getOutputStream().close(); + */ + BufferedInputStream in = null; + BufferedOutputStream out = null; + + try { + in = new BufferedInputStream(new FileInputStream(uFile)); + out = new BufferedOutputStream(response.getOutputStream()); + + FileCopyUtils.copy(in, out); + out.flush(); + } catch (Exception ex) { + //ex.printStackTrace(); + // 다음 Exception 무시 처리 + // Connection reset by peer: socket write error + LOG.debug("IGNORED: " + ex.getMessage()); + } finally { + if (in != null) { + try { + in.close(); + } catch (Exception ignore) { + // no-op + LOG.debug("IGNORED: " + ignore.getMessage()); + } + } + if (out != null) { + try { + out.close(); + } catch (Exception ignore) { + // no-op + LOG.debug("IGNORED: " + ignore.getMessage()); + } + } + } + + } else { + response.setContentType("application/x-msdownload"); + + PrintWriter printwriter = response.getWriter(); + printwriter.println(""); + printwriter.println("


Could not get file name:
" + fvo.getOrignlFileNm() + "

"); + printwriter.println("


Back

"); + printwriter.println("


© webAccess"); + printwriter.println(""); + printwriter.flush(); + printwriter.close(); + } + } + } +} diff --git a/src/main/java/egovframework/com/cmm/web/EgovFileMngController.java b/src/main/java/egovframework/com/cmm/web/EgovFileMngController.java new file mode 100644 index 0000000..96e5af6 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/web/EgovFileMngController.java @@ -0,0 +1,165 @@ +package egovframework.com.cmm.web; + +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import org.apache.log4j.Logger; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.FileVO; +import egovframework.com.cmm.util.EgovUserDetailsHelper; + +/** + * 파일 조회, 삭제, 다운로드 처리를 위한 컨트롤러 클래스 + * @author 공통서비스개발팀 이삼섭 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.3.25  이삼섭          최초 생성
+ *
+ * 
+ */ +@Controller +public class EgovFileMngController { + + + + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + + private static final Logger LOG = Logger.getLogger(EgovFileMngController.class.getName()); + + /** + * 첨부파일에 대한 목록을 조회한다. + * + * @param fileVO + * @param atchFileId + * @param sessionVO + * @param model + * @return + * @throws Exception + */ + @RequestMapping("/cmm/fms/selectFileInfs.do") + public String selectFileInfs(@ModelAttribute("searchVO") FileVO fileVO, Map commandMap, ModelMap model) throws Exception { + String atchFileId = (String)commandMap.get("param_atchFileId"); + + fileVO.setAtchFileId(atchFileId); + List result = fileService.selectFileInfs(fileVO); + + model.addAttribute("fileList", result); + model.addAttribute("updateFlag", "N"); + model.addAttribute("fileListCnt", result.size()); + model.addAttribute("atchFileId", atchFileId); + + return "egovframework/com/cmm/fms/EgovFileList"; + } + + /** + * 첨부파일 변경을 위한 수정페이지로 이동한다. + * + * @param fileVO + * @param atchFileId + * @param sessionVO + * @param model + * @return + * @throws Exception + */ + @RequestMapping("/cmm/fms/selectFileInfsForUpdate.do") + public String selectFileInfsForUpdate(@ModelAttribute("searchVO") FileVO fileVO, Map commandMap, + //SessionVO sessionVO, + ModelMap model) throws Exception { + + String atchFileId = (String)commandMap.get("param_atchFileId"); + + fileVO.setAtchFileId(atchFileId); + + List result = fileService.selectFileInfs(fileVO); + + model.addAttribute("fileList", result); + model.addAttribute("updateFlag", "Y"); + model.addAttribute("fileListCnt", result.size()); + model.addAttribute("atchFileId", atchFileId); + + return "egovframework/com/cmm/fms/EgovFileList"; + } + + /** + * 첨부파일에 대한 삭제를 처리한다. + * + * @param fileVO + * @param returnUrl + * @param sessionVO + * @param model + * @return + * @throws Exception + */ + @RequestMapping("/cmm/fms/deleteFileInfs.do") + public String deleteFileInf(@ModelAttribute("searchVO") FileVO fileVO, @RequestParam("returnUrl") String returnUrl, + //SessionVO sessionVO, + HttpServletRequest request, + ModelMap model) throws Exception { + + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + + if (isAuthenticated) { + fileService.deleteFileInf(fileVO); + } + + //-------------------------------------------- + // contextRoot가 있는 경우 제외 시켜야 함 + //-------------------------------------------- + ////return "forward:/cmm/fms/selectFileInfs.do"; + //return "forward:" + returnUrl; + + if ("".equals(request.getContextPath()) || "/".equals(request.getContextPath())) { + return "forward:" + returnUrl; + } + + if (returnUrl.startsWith(request.getContextPath())) { + return "forward:" + returnUrl.substring(returnUrl.indexOf("/", 1)); + } else { + return "forward:" + returnUrl; + } + ////------------------------------------------ + } + + /** + * 이미지 첨부파일에 대한 목록을 조회한다. + * + * @param fileVO + * @param atchFileId + * @param sessionVO + * @param model + * @return + * @throws Exception + */ + @RequestMapping("/cmm/fms/selectImageFileInfs.do") + public String selectImageFileInfs(@ModelAttribute("searchVO") FileVO fileVO, Map commandMap, + //SessionVO sessionVO, + ModelMap model) throws Exception { + + String atchFileId = (String)commandMap.get("atchFileId"); + + fileVO.setAtchFileId(atchFileId); + List result = fileService.selectImageFileList(fileVO); + + model.addAttribute("fileList", result); + + return "egovframework/com/cmm/fms/EgovImgFileList"; + } +} diff --git a/src/main/java/egovframework/com/cmm/web/EgovImageProcessController.java b/src/main/java/egovframework/com/cmm/web/EgovImageProcessController.java new file mode 100644 index 0000000..e742fc9 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/web/EgovImageProcessController.java @@ -0,0 +1,143 @@ +package egovframework.com.cmm.web; + +import java.io.BufferedInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletResponse; + +import org.apache.log4j.Logger; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; + +import egovframework.com.cmm.SessionVO; +import egovframework.com.cmm.service.EgovFileMngService; +import egovframework.com.cmm.service.FileVO; + + +/** + * @Class Name : EgovImageProcessController.java + * @Description : + * @Modification Information + * + * 수정일 수정자 수정내용 + * ------- ------- ------------------- + * 2009. 4. 2. 이삼섭 + * + * @author 공통 서비스 개발팀 이삼섭 + * @since 2009. 4. 2. + * @version + * @see + * + */ +@SuppressWarnings("serial") +@Controller +public class EgovImageProcessController extends HttpServlet { + + @Resource(name = "EgovFileMngService") + private EgovFileMngService fileService; + + private static final Logger LOG = Logger.getLogger(EgovImageProcessController.class.getName()); + + /** + * 첨부된 이미지에 대한 미리보기 기능을 제공한다. + * + * @param atchFileId + * @param fileSn + * @param sessionVO + * @param model + * @param response + * @throws Exception + */ + @RequestMapping("/cmm/fms/getImage.do") + public void getImageInf(SessionVO sessionVO, ModelMap model, Map commandMap, HttpServletResponse response) throws Exception { + + //@RequestParam("atchFileId") String atchFileId, + //@RequestParam("fileSn") String fileSn, + String atchFileId = (String)commandMap.get("atchFileId"); + String fileSn = (String)commandMap.get("fileSn"); + + FileVO vo = new FileVO(); + + vo.setAtchFileId(atchFileId); + vo.setFileSn(fileSn); + + FileVO fvo = fileService.selectFileInf(vo); + + //String fileLoaction = fvo.getFileStreCours() + fvo.getStreFileNm(); + + // 2011.10.10 보안점검 후속조치 + File file = null; + FileInputStream fis = null; + + BufferedInputStream in = null; + ByteArrayOutputStream bStream = null; + + try { + file = new File(fvo.getFileStreCours(), fvo.getStreFileNm()); + fis = new FileInputStream(file); + + in = new BufferedInputStream(fis); + bStream = new ByteArrayOutputStream(); + + int imgByte; + while ((imgByte = in.read()) != -1) { + bStream.write(imgByte); + } + + String type = ""; + + if (fvo.getFileExtsn() != null && !"".equals(fvo.getFileExtsn())) { + if ("jpg".equals(fvo.getFileExtsn().toLowerCase())) { + type = "image/jpeg"; + } else { + type = "image/" + fvo.getFileExtsn().toLowerCase(); + } + type = "image/" + fvo.getFileExtsn().toLowerCase(); + + } else { + LOG.debug("Image fileType is null."); + } + + response.setHeader("Content-Type", type); + response.setContentLength(bStream.size()); + + bStream.writeTo(response.getOutputStream()); + + response.getOutputStream().flush(); + response.getOutputStream().close(); + + // 2011.10.10 보안점검 후속조치 끝 + } finally { + if (bStream != null) { + try { + bStream.close(); + } catch (Exception ignore) { + //System.out.println("IGNORE: " + ignore); + LOG.debug("IGNORE: " + ignore.getMessage()); + } + } + if (in != null) { + try { + in.close(); + } catch (Exception ignore) { + //System.out.println("IGNORE: " + ignore); + LOG.debug("IGNORE: " + ignore.getMessage()); + } + } + if (fis != null) { + try { + fis.close(); + } catch (Exception ignore) { + //System.out.println("IGNORE: " + ignore); + LOG.debug("IGNORE: " + ignore.getMessage()); + } + } + } + } +} diff --git a/src/main/java/egovframework/com/cmm/web/EgovMultipartResolver.java b/src/main/java/egovframework/com/cmm/web/EgovMultipartResolver.java new file mode 100644 index 0000000..9c1cdf1 --- /dev/null +++ b/src/main/java/egovframework/com/cmm/web/EgovMultipartResolver.java @@ -0,0 +1,134 @@ +package egovframework.com.cmm.web; + +/* + * Copyright 2001-2006 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the ";License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS"; BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import javax.servlet.ServletContext; + +import org.apache.commons.fileupload.FileItem; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.util.StringUtils; +import org.springframework.web.multipart.MultipartException; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.commons.CommonsMultipartFile; +import org.springframework.web.multipart.commons.CommonsMultipartResolver; + +/** + * 실행환경의 파일업로드 처리를 위한 기능 클래스 + * @author 공통서비스개발팀 이삼섭 + * @since 2009.06.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.3.25  이삼섭          최초 생성
+ *   2011.06.11 서준식          스프링 3.0 업그레이드 API변경으로인한 수정
+ *
+ * 
+ */ +public class EgovMultipartResolver extends CommonsMultipartResolver { + public EgovMultipartResolver() { + } + + + /** + * 첨부파일 처리를 위한 multipart resolver를 생성한다. + * + * @param servletContext + */ + public EgovMultipartResolver(ServletContext servletContext) { + super(servletContext); + } + + /** + * multipart에 대한 parsing을 처리한다. + */ + @SuppressWarnings("unchecked") + @Override + protected MultipartParsingResult parseFileItems(List fileItems, String encoding) { + + //스프링 3.0변경으로 수정한 부분 + MultiValueMap multipartFiles = new LinkedMultiValueMap(); + Map multipartParameters = new HashMap(); + + // Extract multipart files and multipart parameters. + for (Iterator it = fileItems.iterator(); it.hasNext();) { + FileItem fileItem = (FileItem)it.next(); + + if (fileItem.isFormField()) { + + String value = null; + if (encoding != null) { + try { + value = fileItem.getString(encoding); + } catch (UnsupportedEncodingException ex) { + if (logger.isWarnEnabled()) { + logger.warn("Could not decode multipart item '" + fileItem.getFieldName() + "' with encoding '" + encoding + + "': using platform default"); + } + value = fileItem.getString(); + } + } else { + value = fileItem.getString(); + } + String[] curParam = (String[])multipartParameters.get(fileItem.getFieldName()); + if (curParam == null) { + // simple form field + multipartParameters.put(fileItem.getFieldName(), new String[] { value }); + } else { + // array of simple form fields + String[] newParam = StringUtils.addStringToArray(curParam, value); + multipartParameters.put(fileItem.getFieldName(), newParam); + } + } else { + + if (fileItem.getSize() > 0) { + // multipart file field + CommonsMultipartFile file = new CommonsMultipartFile(fileItem); + + + //스프링 3.0 업그레이드 API변경으로인한 수정 + List fileList = new ArrayList(); + fileList.add(file); + + + if (multipartFiles.put(fileItem.getName(), fileList) != null) { // CHANGED!! + throw new MultipartException("Multiple files for field name [" + file.getName() + + "] found - not supported by MultipartResolver"); + } + if (logger.isDebugEnabled()) { + logger.debug("Found multipart file [" + file.getName() + "] of size " + file.getSize() + " bytes with original filename [" + + file.getOriginalFilename() + "], stored " + file.getStorageDescription()); + } + } + + } + } + + return new MultipartParsingResult(multipartFiles, multipartParameters, null); + } +} diff --git a/src/main/java/egovframework/com/json/JSONArray.java b/src/main/java/egovframework/com/json/JSONArray.java new file mode 100644 index 0000000..2ec6b7a --- /dev/null +++ b/src/main/java/egovframework/com/json/JSONArray.java @@ -0,0 +1,960 @@ +package egovframework.com.json; + +/* +Copyright (c) 2002 JSON.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +The Software shall be used for Good, not Evil. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +import java.io.IOException; +import java.io.Writer; +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.Map; + +/** + * A JSONArray is an ordered sequence of values. Its external text form is a + * string wrapped in square brackets with commas separating the values. The + * internal form is an object having get and opt + * methods for accessing the values by index, and put methods for + * adding or replacing values. The values can be any of these types: + * Boolean, JSONArray, JSONObject, + * Number, String, or the + * JSONObject.NULL object. + *

+ * The constructor can convert a JSON text into a Java object. The + * toString method converts to JSON text. + *

+ * A get method returns a value if one can be found, and throws an + * exception if one cannot be found. An opt method returns a + * default value instead of throwing an exception, and so is useful for + * obtaining optional values. + *

+ * The generic get() and opt() methods return an + * object which you can cast or query for type. There are also typed + * get and opt methods that do type checking and type + * coercion for you. + *

+ * The texts produced by the toString methods strictly conform to + * JSON syntax rules. The constructors are more forgiving in the texts they will + * accept: + *

    + *
  • An extra , (comma) may appear just + * before the closing bracket.
  • + *
  • The null value will be inserted when there + * is , (comma) elision.
  • + *
  • Strings may be quoted with ' (single + * quote).
  • + *
  • Strings do not need to be quoted at all if they do not begin with a quote + * or single quote, and if they do not contain leading or trailing spaces, + * and if they do not contain any of these characters: + * { } [ ] / \ : , = ; # and if they do not look like numbers + * and if they are not the reserved words true, + * false, or null.
  • + *
  • Values can be separated by ; (semicolon) as + * well as by , (comma).
  • + *
  • Numbers may have the 0- (octal) or + * 0x- (hex) prefix.
  • + *
+ + * @author JSON.org + * @version 2009-04-13 + */ +public class JSONArray { + + + /** + * The arrayList where the JSONArray's properties are kept. + */ + private ArrayList myArrayList; + + + /** + * Construct an empty JSONArray. + */ + public JSONArray() { + this.myArrayList = new ArrayList(); + } + + /** + * Construct a JSONArray from a JSONTokener. + * @param x A JSONTokener + * @throws JSONException If there is a syntax error. + */ + public JSONArray(JSONTokener x) throws JSONException { + this(); + char c = x.nextClean(); + char q; + if (c == '[') { + q = ']'; + } else if (c == '(') { + q = ')'; + } else { + throw x.syntaxError("A JSONArray text must start with '['"); + } + if (x.nextClean() == ']') { + return; + } + x.back(); + for (;;) { + if (x.nextClean() == ',') { + x.back(); + this.myArrayList.add(null); + } else { + x.back(); + this.myArrayList.add(x.nextValue()); + } + c = x.nextClean(); + switch (c) { + case ';': + case ',': + if (x.nextClean() == ']') { + return; + } + x.back(); + break; + case ']': + case ')': + if (q != c) { + throw x.syntaxError("Expected a '" + new Character(q) + "'"); + } + return; + default: + throw x.syntaxError("Expected a ',' or ']'"); + } + } + } + + + /** + * Construct a JSONArray from a source JSON text. + * @param source A string that begins with + * [ (left bracket) + * and ends with ] (right bracket). + * @throws JSONException If there is a syntax error. + */ + public JSONArray(String source) throws JSONException { + this(new JSONTokener(source)); + } + + + /** + * Construct a JSONArray from a Collection. + * @param collection A Collection. + */ + public JSONArray(Collection collection) { + this.myArrayList = (collection == null) ? + new ArrayList() : + new ArrayList(collection); + } + + /** + * Construct a JSONArray from a collection of beans. + * The collection should have Java Beans. + * + * @throws JSONException If not an array. + */ + + public JSONArray(Collection collection, boolean includeSuperClass) { + this.myArrayList = new ArrayList(); + if (collection != null) { + Iterator iter = collection.iterator(); + while (iter.hasNext()) { + Object o = iter.next(); + if (o instanceof Map) { + this.myArrayList.add(new JSONObject((Map)o, includeSuperClass)); + } else if (!JSONObject.isStandardProperty(o.getClass())) { + this.myArrayList.add(new JSONObject(o, includeSuperClass)); + } else { + this.myArrayList.add(o); + } + } + } + } + + + /** + * Construct a JSONArray from an array + * @throws JSONException If not an array. + */ + public JSONArray(Object array) throws JSONException { + this(); + if (array.getClass().isArray()) { + int length = Array.getLength(array); + for (int i = 0; i < length; i += 1) { + this.put(Array.get(array, i)); + } + } else { + throw new JSONException("JSONArray initial value should be a string or collection or array."); + } + } + + /** + * Construct a JSONArray from an array with a bean. + * The array should have Java Beans. + * + * @throws JSONException If not an array. + */ + public JSONArray(Object array,boolean includeSuperClass) throws JSONException { + this(); + if (array.getClass().isArray()) { + int length = Array.getLength(array); + for (int i = 0; i < length; i += 1) { + Object o = Array.get(array, i); + if (JSONObject.isStandardProperty(o.getClass())) { + this.myArrayList.add(o); + } else { + this.myArrayList.add(new JSONObject(o,includeSuperClass)); + } + } + } else { + throw new JSONException("JSONArray initial value should be a string or collection or array."); + } + } + + + + /** + * Get the object value associated with an index. + * @param index + * The index must be between 0 and length() - 1. + * @return An object value. + * @throws JSONException If there is no value for the index. + */ + public Object get(int index) throws JSONException { + Object o = opt(index); + if (o == null) { + throw new JSONException("JSONArray[" + index + "] not found."); + } + return o; + } + + + /** + * Get the boolean value associated with an index. + * The string values "true" and "false" are converted to boolean. + * + * @param index The index must be between 0 and length() - 1. + * @return The truth. + * @throws JSONException If there is no value for the index or if the + * value is not convertable to boolean. + */ + public boolean getBoolean(int index) throws JSONException { + Object o = get(index); + if (o.equals(Boolean.FALSE) || + (o instanceof String && + ((String)o).equalsIgnoreCase("false"))) { + return false; + } else if (o.equals(Boolean.TRUE) || + (o instanceof String && + ((String)o).equalsIgnoreCase("true"))) { + return true; + } + throw new JSONException("JSONArray[" + index + "] is not a Boolean."); + } + + + /** + * Get the double value associated with an index. + * + * @param index The index must be between 0 and length() - 1. + * @return The value. + * @throws JSONException If the key is not found or if the value cannot + * be converted to a number. + */ + public double getDouble(int index) throws JSONException { + Object o = get(index); + try { + return o instanceof Number ? + ((Number)o).doubleValue() : + Double.valueOf((String)o); + } catch (Exception e) { + throw new JSONException("JSONArray[" + index + + "] is not a number."); + } + } + + + /** + * Get the int value associated with an index. + * + * @param index The index must be between 0 and length() - 1. + * @return The value. + * @throws JSONException If the key is not found or if the value cannot + * be converted to a number. + * if the value cannot be converted to a number. + */ + public int getInt(int index) throws JSONException { + Object o = get(index); + return o instanceof Number ? + ((Number)o).intValue() : (int)getDouble(index); + } + + + /** + * Get the JSONArray associated with an index. + * @param index The index must be between 0 and length() - 1. + * @return A JSONArray value. + * @throws JSONException If there is no value for the index. or if the + * value is not a JSONArray + */ + public JSONArray getJSONArray(int index) throws JSONException { + Object o = get(index); + if (o instanceof JSONArray) { + return (JSONArray)o; + } + throw new JSONException("JSONArray[" + index + + "] is not a JSONArray."); + } + + + /** + * Get the JSONObject associated with an index. + * @param index subscript + * @return A JSONObject value. + * @throws JSONException If there is no value for the index or if the + * value is not a JSONObject + */ + public JSONObject getJSONObject(int index) throws JSONException { + Object o = get(index); + if (o instanceof JSONObject) { + return (JSONObject)o; + } + throw new JSONException("JSONArray[" + index + + "] is not a JSONObject."); + } + + + /** + * Get the long value associated with an index. + * + * @param index The index must be between 0 and length() - 1. + * @return The value. + * @throws JSONException If the key is not found or if the value cannot + * be converted to a number. + */ + public long getLong(int index) throws JSONException { + Object o = get(index); + return o instanceof Number ? + ((Number)o).longValue() : (long)getDouble(index); + } + + + /** + * Get the string associated with an index. + * @param index The index must be between 0 and length() - 1. + * @return A string value. + * @throws JSONException If there is no value for the index. + */ + public String getString(int index) throws JSONException { + return get(index).toString(); + } + + + /** + * Determine if the value is null. + * @param index The index must be between 0 and length() - 1. + * @return true if the value at the index is null, or if there is no value. + */ + public boolean isNull(int index) { + return JSONObject.NULL.equals(opt(index)); + } + + + /** + * Make a string from the contents of this JSONArray. The + * separator string is inserted between each element. + * Warning: This method assumes that the data structure is acyclical. + * @param separator A string that will be inserted between the elements. + * @return a string. + * @throws JSONException If the array contains an invalid number. + */ + public String join(String separator) throws JSONException { + int len = length(); + StringBuffer sb = new StringBuffer(); + + for (int i = 0; i < len; i += 1) { + if (i > 0) { + sb.append(separator); + } + sb.append(JSONObject.valueToString(this.myArrayList.get(i))); + } + return sb.toString(); + } + + + /** + * Get the number of elements in the JSONArray, included nulls. + * + * @return The length (or size). + */ + public int length() { + return this.myArrayList.size(); + } + + + /** + * Get the optional object value associated with an index. + * @param index The index must be between 0 and length() - 1. + * @return An object value, or null if there is no + * object at that index. + */ + public Object opt(int index) { + return (index < 0 || index >= length()) ? + null : this.myArrayList.get(index); + } + + + /** + * Get the optional boolean value associated with an index. + * It returns false if there is no value at that index, + * or if the value is not Boolean.TRUE or the String "true". + * + * @param index The index must be between 0 and length() - 1. + * @return The truth. + */ + public boolean optBoolean(int index) { + return optBoolean(index, false); + } + + + /** + * Get the optional boolean value associated with an index. + * It returns the defaultValue if there is no value at that index or if + * it is not a Boolean or the String "true" or "false" (case insensitive). + * + * @param index The index must be between 0 and length() - 1. + * @param defaultValue A boolean default. + * @return The truth. + */ + public boolean optBoolean(int index, boolean defaultValue) { + try { + return getBoolean(index); + } catch (Exception e) { + return defaultValue; + } + } + + + /** + * Get the optional double value associated with an index. + * NaN is returned if there is no value for the index, + * or if the value is not a number and cannot be converted to a number. + * + * @param index The index must be between 0 and length() - 1. + * @return The value. + */ + public double optDouble(int index) { + return optDouble(index, Double.NaN); + } + + + /** + * Get the optional double value associated with an index. + * The defaultValue is returned if there is no value for the index, + * or if the value is not a number and cannot be converted to a number. + * + * @param index subscript + * @param defaultValue The default value. + * @return The value. + */ + public double optDouble(int index, double defaultValue) { + try { + return getDouble(index); + } catch (Exception e) { + return defaultValue; + } + } + + + /** + * Get the optional int value associated with an index. + * Zero is returned if there is no value for the index, + * or if the value is not a number and cannot be converted to a number. + * + * @param index The index must be between 0 and length() - 1. + * @return The value. + */ + public int optInt(int index) { + return optInt(index, 0); + } + + + /** + * Get the optional int value associated with an index. + * The defaultValue is returned if there is no value for the index, + * or if the value is not a number and cannot be converted to a number. + * @param index The index must be between 0 and length() - 1. + * @param defaultValue The default value. + * @return The value. + */ + public int optInt(int index, int defaultValue) { + try { + return getInt(index); + } catch (Exception e) { + return defaultValue; + } + } + + + /** + * Get the optional JSONArray associated with an index. + * @param index subscript + * @return A JSONArray value, or null if the index has no value, + * or if the value is not a JSONArray. + */ + public JSONArray optJSONArray(int index) { + Object o = opt(index); + return o instanceof JSONArray ? (JSONArray)o : null; + } + + + /** + * Get the optional JSONObject associated with an index. + * Null is returned if the key is not found, or null if the index has + * no value, or if the value is not a JSONObject. + * + * @param index The index must be between 0 and length() - 1. + * @return A JSONObject value. + */ + public JSONObject optJSONObject(int index) { + Object o = opt(index); + return o instanceof JSONObject ? (JSONObject)o : null; + } + + + /** + * Get the optional long value associated with an index. + * Zero is returned if there is no value for the index, + * or if the value is not a number and cannot be converted to a number. + * + * @param index The index must be between 0 and length() - 1. + * @return The value. + */ + public long optLong(int index) { + return optLong(index, 0); + } + + + /** + * Get the optional long value associated with an index. + * The defaultValue is returned if there is no value for the index, + * or if the value is not a number and cannot be converted to a number. + * @param index The index must be between 0 and length() - 1. + * @param defaultValue The default value. + * @return The value. + */ + public long optLong(int index, long defaultValue) { + try { + return getLong(index); + } catch (Exception e) { + return defaultValue; + } + } + + + /** + * Get the optional string value associated with an index. It returns an + * empty string if there is no value at that index. If the value + * is not a string and is not null, then it is coverted to a string. + * + * @param index The index must be between 0 and length() - 1. + * @return A String value. + */ + public String optString(int index) { + return optString(index, ""); + } + + + /** + * Get the optional string associated with an index. + * The defaultValue is returned if the key is not found. + * + * @param index The index must be between 0 and length() - 1. + * @param defaultValue The default value. + * @return A String value. + */ + public String optString(int index, String defaultValue) { + Object o = opt(index); + return o != null ? o.toString() : defaultValue; + } + + + /** + * Append a boolean value. This increases the array's length by one. + * + * @param value A boolean value. + * @return this. + */ + public JSONArray put(boolean value) { + put(value ? Boolean.TRUE : Boolean.FALSE); + return this; + } + + + /** + * Put a value in the JSONArray, where the value will be a + * JSONArray which is produced from a Collection. + * @param value A Collection value. + * @return this. + */ + public JSONArray put(Collection value) { + put(new JSONArray(value)); + return this; + } + + + /** + * Append a double value. This increases the array's length by one. + * + * @param value A double value. + * @throws JSONException if the value is not finite. + * @return this. + */ + public JSONArray put(double value) throws JSONException { + Double d = new Double(value); + JSONObject.testValidity(d); + put(d); + return this; + } + + + /** + * Append an int value. This increases the array's length by one. + * + * @param value An int value. + * @return this. + */ + public JSONArray put(int value) { + put(new Integer(value)); + return this; + } + + + /** + * Append an long value. This increases the array's length by one. + * + * @param value A long value. + * @return this. + */ + public JSONArray put(long value) { + put(new Long(value)); + return this; + } + + + /** + * Put a value in the JSONArray, where the value will be a + * JSONObject which is produced from a Map. + * @param value A Map value. + * @return this. + */ + public JSONArray put(Map value) { + put(new JSONObject(value)); + return this; + } + + + /** + * Append an object value. This increases the array's length by one. + * @param value An object value. The value should be a + * Boolean, Double, Integer, JSONArray, JSONObject, Long, or String, or the + * JSONObject.NULL object. + * @return this. + */ + public JSONArray put(Object value) { + this.myArrayList.add(value); + return this; + } + + + /** + * Put or replace a boolean value in the JSONArray. If the index is greater + * than the length of the JSONArray, then null elements will be added as + * necessary to pad it out. + * @param index The subscript. + * @param value A boolean value. + * @return this. + * @throws JSONException If the index is negative. + */ + public JSONArray put(int index, boolean value) throws JSONException { + put(index, value ? Boolean.TRUE : Boolean.FALSE); + return this; + } + + + /** + * Put a value in the JSONArray, where the value will be a + * JSONArray which is produced from a Collection. + * @param index The subscript. + * @param value A Collection value. + * @return this. + * @throws JSONException If the index is negative or if the value is + * not finite. + */ + public JSONArray put(int index, Collection value) throws JSONException { + put(index, new JSONArray(value)); + return this; + } + + + /** + * Put or replace a double value. If the index is greater than the length of + * the JSONArray, then null elements will be added as necessary to pad + * it out. + * @param index The subscript. + * @param value A double value. + * @return this. + * @throws JSONException If the index is negative or if the value is + * not finite. + */ + public JSONArray put(int index, double value) throws JSONException { + put(index, new Double(value)); + return this; + } + + + /** + * Put or replace an int value. If the index is greater than the length of + * the JSONArray, then null elements will be added as necessary to pad + * it out. + * @param index The subscript. + * @param value An int value. + * @return this. + * @throws JSONException If the index is negative. + */ + public JSONArray put(int index, int value) throws JSONException { + put(index, new Integer(value)); + return this; + } + + + /** + * Put or replace a long value. If the index is greater than the length of + * the JSONArray, then null elements will be added as necessary to pad + * it out. + * @param index The subscript. + * @param value A long value. + * @return this. + * @throws JSONException If the index is negative. + */ + public JSONArray put(int index, long value) throws JSONException { + put(index, new Long(value)); + return this; + } + + + /** + * Put a value in the JSONArray, where the value will be a + * JSONObject which is produced from a Map. + * @param index The subscript. + * @param value The Map value. + * @return this. + * @throws JSONException If the index is negative or if the the value is + * an invalid number. + */ + public JSONArray put(int index, Map value) throws JSONException { + put(index, new JSONObject(value)); + return this; + } + + + /** + * Put or replace an object value in the JSONArray. If the index is greater + * than the length of the JSONArray, then null elements will be added as + * necessary to pad it out. + * @param index The subscript. + * @param value The value to put into the array. The value should be a + * Boolean, Double, Integer, JSONArray, JSONObject, Long, or String, or the + * JSONObject.NULL object. + * @return this. + * @throws JSONException If the index is negative or if the the value is + * an invalid number. + */ + public JSONArray put(int index, Object value) throws JSONException { + JSONObject.testValidity(value); + if (index < 0) { + throw new JSONException("JSONArray[" + index + "] not found."); + } + if (index < length()) { + this.myArrayList.set(index, value); + } else { + while (index != length()) { + put(JSONObject.NULL); + } + put(value); + } + return this; + } + + + /** + * Remove a index and close the hole. + * @param index The index of the element to be removed. + * @return The value that was associated with the index, + * or null if there was no value. + */ + public Object remove(int index) { + Object o = opt(index); + this.myArrayList.remove(index); + return o; + } + + + /** + * Produce a JSONObject by combining a JSONArray of names with the values + * of this JSONArray. + * @param names A JSONArray containing a list of key strings. These will be + * paired with the values. + * @return A JSONObject, or null if there are no names or if this JSONArray + * has no values. + * @throws JSONException If any of the names are null. + */ + public JSONObject toJSONObject(JSONArray names) throws JSONException { + if (names == null || names.length() == 0 || length() == 0) { + return null; + } + JSONObject jo = new JSONObject(); + for (int i = 0; i < names.length(); i += 1) { + jo.put(names.getString(i), this.opt(i)); + } + return jo; + } + + + /** + * Make a JSON text of this JSONArray. For compactness, no + * unnecessary whitespace is added. If it is not possible to produce a + * syntactically correct JSON text then null will be returned instead. This + * could occur if the array contains an invalid number. + *

+ * Warning: This method assumes that the data structure is acyclical. + * + * @return a printable, displayable, transmittable + * representation of the array. + */ + public String toString() { + try { + return '[' + join(",") + ']'; + } catch (Exception e) { + return null; + } + } + + + /** + * Make a prettyprinted JSON text of this JSONArray. + * Warning: This method assumes that the data structure is acyclical. + * @param indentFactor The number of spaces to add to each level of + * indentation. + * @return a printable, displayable, transmittable + * representation of the object, beginning + * with [ (left bracket) and ending + * with ] (right bracket). + * @throws JSONException + */ + public String toString(int indentFactor) throws JSONException { + return toString(indentFactor, 0); + } + + + /** + * Make a prettyprinted JSON text of this JSONArray. + * Warning: This method assumes that the data structure is acyclical. + * @param indentFactor The number of spaces to add to each level of + * indentation. + * @param indent The indention of the top level. + * @return a printable, displayable, transmittable + * representation of the array. + * @throws JSONException + */ + String toString(int indentFactor, int indent) throws JSONException { + int len = length(); + if (len == 0) { + return "[]"; + } + int i; + StringBuffer sb = new StringBuffer("["); + if (len == 1) { + sb.append(JSONObject.valueToString(this.myArrayList.get(0), + indentFactor, indent)); + } else { + int newindent = indent + indentFactor; + sb.append('\n'); + for (i = 0; i < len; i += 1) { + if (i > 0) { + sb.append(",\n"); + } + for (int j = 0; j < newindent; j += 1) { + sb.append(' '); + } + sb.append(JSONObject.valueToString(this.myArrayList.get(i), + indentFactor, newindent)); + } + sb.append('\n'); + for (i = 0; i < indent; i += 1) { + sb.append(' '); + } + } + sb.append(']'); + return sb.toString(); + } + + + /** + * Write the contents of the JSONArray as JSON text to a writer. + * For compactness, no whitespace is added. + *

+ * Warning: This method assumes that the data structure is acyclical. + * + * @return The writer. + * @throws JSONException + */ + public Writer write(Writer writer) throws JSONException { + try { + boolean b = false; + int len = length(); + + writer.write('['); + + for (int i = 0; i < len; i += 1) { + if (b) { + writer.write(','); + } + Object v = this.myArrayList.get(i); + if (v instanceof JSONObject) { + ((JSONObject)v).write(writer); + } else if (v instanceof JSONArray) { + ((JSONArray)v).write(writer); + } else { + writer.write(JSONObject.valueToString(v)); + } + b = true; + } + writer.write(']'); + return writer; + } catch (IOException e) { + throw new JSONException(e); + } + } +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/json/JSONException.java b/src/main/java/egovframework/com/json/JSONException.java new file mode 100644 index 0000000..2c0811d --- /dev/null +++ b/src/main/java/egovframework/com/json/JSONException.java @@ -0,0 +1,27 @@ +package egovframework.com.json; + +/** + * The JSONException is thrown by the JSON.org classes then things are amiss. + * @author JSON.org + * @version 2008-09-18 + */ +public class JSONException extends Exception { + private Throwable cause; + + /** + * Constructs a JSONException with an explanatory message. + * @param message Detail about the reason for the exception. + */ + public JSONException(String message) { + super(message); + } + + public JSONException(Throwable t) { + super(t.getMessage()); + this.cause = t; + } + + public Throwable getCause() { + return this.cause; + } +} diff --git a/src/main/java/egovframework/com/json/JSONObject.java b/src/main/java/egovframework/com/json/JSONObject.java new file mode 100644 index 0000000..b7f8861 --- /dev/null +++ b/src/main/java/egovframework/com/json/JSONObject.java @@ -0,0 +1,1569 @@ +package egovframework.com.json; + +/* +Copyright (c) 2002 JSON.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +The Software shall be used for Good, not Evil. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +import java.io.IOException; +import java.io.Writer; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.TreeSet; + +/** + * A JSONObject is an unordered collection of name/value pairs. Its + * external form is a string wrapped in curly braces with colons between the + * names and values, and commas between the values and names. The internal form + * is an object having get and opt methods for + * accessing the values by name, and put methods for adding or + * replacing values by name. The values can be any of these types: + * Boolean, JSONArray, JSONObject, + * Number, String, or the JSONObject.NULL + * object. A JSONObject constructor can be used to convert an external form + * JSON text into an internal form whose values can be retrieved with the + * get and opt methods, or to convert values into a + * JSON text using the put and toString methods. + * A get method returns a value if one can be found, and throws an + * exception if one cannot be found. An opt method returns a + * default value instead of throwing an exception, and so is useful for + * obtaining optional values. + *

+ * The generic get() and opt() methods return an + * object, which you can cast or query for type. There are also typed + * get and opt methods that do type checking and type + * coercion for you. + *

+ * The put methods adds values to an object. For example,

+ *     myString = new JSONObject().put("JSON", "Hello, World!").toString();
+ * produces the string {"JSON": "Hello, World"}. + *

+ * The texts produced by the toString methods strictly conform to + * the JSON syntax rules. + * The constructors are more forgiving in the texts they will accept: + *

    + *
  • An extra , (comma) may appear just + * before the closing brace.
  • + *
  • Strings may be quoted with ' (single + * quote).
  • + *
  • Strings do not need to be quoted at all if they do not begin with a quote + * or single quote, and if they do not contain leading or trailing spaces, + * and if they do not contain any of these characters: + * { } [ ] / \ : , = ; # and if they do not look like numbers + * and if they are not the reserved words true, + * false, or null.
  • + *
  • Keys can be followed by = or => as well as + * by :.
  • + *
  • Values can be followed by ; (semicolon) as + * well as by , (comma).
  • + *
  • Numbers may have the 0- (octal) or + * 0x- (hex) prefix.
  • + *
+ * @author JSON.org + * @version 2009-03-06 + */ +public class JSONObject { + + /** + * JSONObject.NULL is equivalent to the value that JavaScript calls null, + * whilst Java's null is equivalent to the value that JavaScript calls + * undefined. + */ + private static final class Null { + + /** + * There is only intended to be a single instance of the NULL object, + * so the clone method returns itself. + * @return NULL. + */ + protected final Object clone() { + return this; + } + + + /** + * A Null object is equal to the null value and to itself. + * @param object An object to test for nullness. + * @return true if the object parameter is the JSONObject.NULL object + * or null. + */ + public boolean equals(Object object) { + return object == null || object == this; + } + + + /** + * Get the "null" string value. + * @return The string "null". + */ + public String toString() { + return "null"; + } + } + + + /** + * The map where the JSONObject's properties are kept. + */ + private Map map; + + + /** + * It is sometimes more convenient and less ambiguous to have a + * NULL object than to use Java's null value. + * JSONObject.NULL.equals(null) returns true. + * JSONObject.NULL.toString() returns "null". + */ + public static final Object NULL = new Null(); + + + /** + * Construct an empty JSONObject. + */ + public JSONObject() { + this.map = new HashMap(); + } + + + /** + * Construct a JSONObject from a subset of another JSONObject. + * An array of strings is used to identify the keys that should be copied. + * Missing keys are ignored. + * @param jo A JSONObject. + * @param names An array of strings. + * @exception JSONException If a value is a non-finite number or if a name is duplicated. + */ + public JSONObject(JSONObject jo, String[] names) throws JSONException { + this(); + for (int i = 0; i < names.length; i += 1) { + putOnce(names[i], jo.opt(names[i])); + } + } + + + /** + * Construct a JSONObject from a JSONTokener. + * @param x A JSONTokener object containing the source string. + * @throws JSONException If there is a syntax error in the source string + * or a duplicated key. + */ + public JSONObject(JSONTokener x) throws JSONException { + this(); + char c; + String key; + + if (x.nextClean() != '{') { + throw x.syntaxError("A JSONObject text must begin with '{'"); + } + for (;;) { + c = x.nextClean(); + switch (c) { + case 0: + throw x.syntaxError("A JSONObject text must end with '}'"); + case '}': + return; + default: + x.back(); + key = x.nextValue().toString(); + } + + /* + * The key is followed by ':'. We will also tolerate '=' or '=>'. + */ + + c = x.nextClean(); + if (c == '=') { + if (x.next() != '>') { + x.back(); + } + } else if (c != ':') { + throw x.syntaxError("Expected a ':' after a key"); + } + putOnce(key, x.nextValue()); + + /* + * Pairs are separated by ','. We will also tolerate ';'. + */ + + switch (x.nextClean()) { + case ';': + case ',': + if (x.nextClean() == '}') { + return; + } + x.back(); + break; + case '}': + return; + default: + throw x.syntaxError("Expected a ',' or '}'"); + } + } + } + + + /** + * Construct a JSONObject from a Map. + * + * @param map A map object that can be used to initialize the contents of + * the JSONObject. + */ + public JSONObject(Map map) { + this.map = (map == null) ? new HashMap() : map; + } + + + /** + * Construct a JSONObject from a Map. + * + * Note: Use this constructor when the map contains . + * + * @param map - A map with Key-Bean data. + * @param includeSuperClass - Tell whether to include the super class properties. + */ + public JSONObject(Map map, boolean includeSuperClass) { + this.map = new HashMap(); + if (map != null) { + Iterator i = map.entrySet().iterator(); + while (i.hasNext()) { + Map.Entry e = (Map.Entry)i.next(); + if (isStandardProperty(e.getValue().getClass())) { + this.map.put(e.getKey(), e.getValue()); + } else { + this.map.put(e.getKey(), new JSONObject(e.getValue(), + includeSuperClass)); + } + } + } + } + + + /** + * Construct a JSONObject from an Object using bean getters. + * It reflects on all of the public methods of the object. + * For each of the methods with no parameters and a name starting + * with "get" or "is" followed by an uppercase letter, + * the method is invoked, and a key and the value returned from the getter method + * are put into the new JSONObject. + * + * The key is formed by removing the "get" or "is" prefix. + * If the second remaining character is not upper case, then the first + * character is converted to lower case. + * + * For example, if an object has a method named "getName", and + * if the result of calling object.getName() is "Larry Fine", + * then the JSONObject will contain "name": "Larry Fine". + * + * @param bean An object that has getter methods that should be used + * to make a JSONObject. + */ + public JSONObject(Object bean) { + this(); + populateInternalMap(bean, false); + } + + + /** + * Construct a JSONObject from an Object using bean getters. + * It reflects on all of the public methods of the object. + * For each of the methods with no parameters and a name starting + * with "get" or "is" followed by an uppercase letter, + * the method is invoked, and a key and the value returned from the getter method + * are put into the new JSONObject. + * + * The key is formed by removing the "get" or "is" prefix. + * If the second remaining character is not upper case, then the first + * character is converted to lower case. + * + * @param bean An object that has getter methods that should be used + * to make a JSONObject. + * @param includeSuperClass If true, include the super class properties. + */ + public JSONObject(Object bean, boolean includeSuperClass) { + this(); + populateInternalMap(bean, includeSuperClass); + } + + private void populateInternalMap(Object bean, boolean includeSuperClass){ + Class klass = bean.getClass(); + + /* If klass.getSuperClass is System class then force includeSuperClass to false. */ + + if (klass.getClassLoader() == null) { + includeSuperClass = false; + } + + Method[] methods = (includeSuperClass) ? + klass.getMethods() : klass.getDeclaredMethods(); + for (int i = 0; i < methods.length; i += 1) { + try { + Method method = methods[i]; + if (Modifier.isPublic(method.getModifiers())) { + String name = method.getName(); + String key = ""; + if (name.startsWith("get")) { + key = name.substring(3); + } else if (name.startsWith("is")) { + key = name.substring(2); + } + if (key.length() > 0 && + Character.isUpperCase(key.charAt(0)) && + method.getParameterTypes().length == 0) { + if (key.length() == 1) { + key = key.toLowerCase(); + } else if (!Character.isUpperCase(key.charAt(1))) { + key = key.substring(0, 1).toLowerCase() + + key.substring(1); + } + + Object result = method.invoke(bean, (Object[])null); + if (result == null) { + map.put(key, NULL); + } else if (result.getClass().isArray()) { + map.put(key, new JSONArray(result, includeSuperClass)); + } else if (result instanceof Collection) { // List or Set + map.put(key, new JSONArray((Collection)result, includeSuperClass)); + } else if (result instanceof Map) { + map.put(key, new JSONObject((Map)result, includeSuperClass)); + } else if (isStandardProperty(result.getClass())) { // Primitives, String and Wrapper + map.put(key, result); + } else { + if (result.getClass().getPackage().getName().startsWith("java") || + result.getClass().getClassLoader() == null) { + map.put(key, result.toString()); + } else { // User defined Objects + map.put(key, new JSONObject(result, includeSuperClass)); + } + } + } + } + } catch (Exception e) { + throw new RuntimeException(e); + } + } + } + + + static boolean isStandardProperty(Class clazz) { + return clazz.isPrimitive() || + clazz.isAssignableFrom(Byte.class) || + clazz.isAssignableFrom(Short.class) || + clazz.isAssignableFrom(Integer.class) || + clazz.isAssignableFrom(Long.class) || + clazz.isAssignableFrom(Float.class) || + clazz.isAssignableFrom(Double.class) || + clazz.isAssignableFrom(Character.class) || + clazz.isAssignableFrom(String.class) || + clazz.isAssignableFrom(Boolean.class); + } + + + /** + * Construct a JSONObject from an Object, using reflection to find the + * public members. The resulting JSONObject's keys will be the strings + * from the names array, and the values will be the field values associated + * with those keys in the object. If a key is not found or not visible, + * then it will not be copied into the new JSONObject. + * @param object An object that has fields that should be used to make a + * JSONObject. + * @param names An array of strings, the names of the fields to be obtained + * from the object. + */ + public JSONObject(Object object, String names[]) { + this(); + Class c = object.getClass(); + for (int i = 0; i < names.length; i += 1) { + String name = names[i]; + try { + putOpt(name, c.getField(name).get(object)); + } catch (Exception e) { + /* forget about it */ + } + } + } + + + /** + * Construct a JSONObject from a source JSON text string. + * This is the most commonly used JSONObject constructor. + * @param source A string beginning + * with { (left brace) and ending + * with } (right brace). + * @exception JSONException If there is a syntax error in the source + * string or a duplicated key. + */ + public JSONObject(String source) throws JSONException { + this(new JSONTokener(source)); + } + + + /** + * Accumulate values under a key. It is similar to the put method except + * that if there is already an object stored under the key then a + * JSONArray is stored under the key to hold all of the accumulated values. + * If there is already a JSONArray, then the new value is appended to it. + * In contrast, the put method replaces the previous value. + * @param key A key string. + * @param value An object to be accumulated under the key. + * @return this. + * @throws JSONException If the value is an invalid number + * or if the key is null. + */ + public JSONObject accumulate(String key, Object value) + throws JSONException { + testValidity(value); + Object o = opt(key); + if (o == null) { + put(key, value instanceof JSONArray ? + new JSONArray().put(value) : + value); + } else if (o instanceof JSONArray) { + ((JSONArray)o).put(value); + } else { + put(key, new JSONArray().put(o).put(value)); + } + return this; + } + + + /** + * Append values to the array under a key. If the key does not exist in the + * JSONObject, then the key is put in the JSONObject with its value being a + * JSONArray containing the value parameter. If the key was already + * associated with a JSONArray, then the value parameter is appended to it. + * @param key A key string. + * @param value An object to be accumulated under the key. + * @return this. + * @throws JSONException If the key is null or if the current value + * associated with the key is not a JSONArray. + */ + public JSONObject append(String key, Object value) + throws JSONException { + testValidity(value); + Object o = opt(key); + if (o == null) { + put(key, new JSONArray().put(value)); + } else if (o instanceof JSONArray) { + put(key, ((JSONArray)o).put(value)); + } else { + throw new JSONException("JSONObject[" + key + + "] is not a JSONArray."); + } + return this; + } + + + /** + * Produce a string from a double. The string "null" will be returned if + * the number is not finite. + * @param d A double. + * @return A String. + */ + static public String doubleToString(double d) { + if (Double.isInfinite(d) || Double.isNaN(d)) { + return "null"; + } + +// Shave off trailing zeros and decimal point, if possible. + + String s = Double.toString(d); + if (s.indexOf('.') > 0 && s.indexOf('e') < 0 && s.indexOf('E') < 0) { + while (s.endsWith("0")) { + s = s.substring(0, s.length() - 1); + } + if (s.endsWith(".")) { + s = s.substring(0, s.length() - 1); + } + } + return s; + } + + + /** + * Get the value object associated with a key. + * + * @param key A key string. + * @return The object associated with the key. + * @throws JSONException if the key is not found. + */ + public Object get(String key) throws JSONException { + Object o = opt(key); + if (o == null) { + throw new JSONException("JSONObject[" + quote(key) + + "] not found."); + } + return o; + } + + + /** + * Get the boolean value associated with a key. + * + * @param key A key string. + * @return The truth. + * @throws JSONException + * if the value is not a Boolean or the String "true" or "false". + */ + public boolean getBoolean(String key) throws JSONException { + Object o = get(key); + if (o.equals(Boolean.FALSE) || + (o instanceof String && + ((String)o).equalsIgnoreCase("false"))) { + return false; + } else if (o.equals(Boolean.TRUE) || + (o instanceof String && + ((String)o).equalsIgnoreCase("true"))) { + return true; + } + throw new JSONException("JSONObject[" + quote(key) + + "] is not a Boolean."); + } + + + /** + * Get the double value associated with a key. + * @param key A key string. + * @return The numeric value. + * @throws JSONException if the key is not found or + * if the value is not a Number object and cannot be converted to a number. + */ + public double getDouble(String key) throws JSONException { + Object o = get(key); + try { + return o instanceof Number ? + ((Number)o).doubleValue() : + Double.valueOf((String)o).doubleValue(); + } catch (Exception e) { + throw new JSONException("JSONObject[" + quote(key) + + "] is not a number."); + } + } + + + /** + * Get the int value associated with a key. If the number value is too + * large for an int, it will be clipped. + * + * @param key A key string. + * @return The integer value. + * @throws JSONException if the key is not found or if the value cannot + * be converted to an integer. + */ + public int getInt(String key) throws JSONException { + Object o = get(key); + return o instanceof Number ? + ((Number)o).intValue() : (int)getDouble(key); + } + + + /** + * Get the JSONArray value associated with a key. + * + * @param key A key string. + * @return A JSONArray which is the value. + * @throws JSONException if the key is not found or + * if the value is not a JSONArray. + */ + public JSONArray getJSONArray(String key) throws JSONException { + Object o = get(key); + if (o instanceof JSONArray) { + return (JSONArray)o; + } + throw new JSONException("JSONObject[" + quote(key) + + "] is not a JSONArray."); + } + + + /** + * Get the JSONObject value associated with a key. + * + * @param key A key string. + * @return A JSONObject which is the value. + * @throws JSONException if the key is not found or + * if the value is not a JSONObject. + */ + public JSONObject getJSONObject(String key) throws JSONException { + Object o = get(key); + if (o instanceof JSONObject) { + return (JSONObject)o; + } + throw new JSONException("JSONObject[" + quote(key) + + "] is not a JSONObject."); + } + + + /** + * Get the long value associated with a key. If the number value is too + * long for a long, it will be clipped. + * + * @param key A key string. + * @return The long value. + * @throws JSONException if the key is not found or if the value cannot + * be converted to a long. + */ + public long getLong(String key) throws JSONException { + Object o = get(key); + return o instanceof Number ? + ((Number)o).longValue() : (long)getDouble(key); + } + + + /** + * Get an array of field names from a JSONObject. + * + * @return An array of field names, or null if there are no names. + */ + public static String[] getNames(JSONObject jo) { + int length = jo.length(); + if (length == 0) { + return null; + } + Iterator i = jo.keys(); + String[] names = new String[length]; + int j = 0; + while (i.hasNext()) { + names[j] = (String)i.next(); + j += 1; + } + return names; + } + + + /** + * Get an array of field names from an Object. + * + * @return An array of field names, or null if there are no names. + */ + public static String[] getNames(Object object) { + if (object == null) { + return null; + } + Class klass = object.getClass(); + Field[] fields = klass.getFields(); + int length = fields.length; + if (length == 0) { + return null; + } + String[] names = new String[length]; + for (int i = 0; i < length; i += 1) { + names[i] = fields[i].getName(); + } + return names; + } + + + /** + * Get the string associated with a key. + * + * @param key A key string. + * @return A string which is the value. + * @throws JSONException if the key is not found. + */ + public String getString(String key) throws JSONException { + return get(key).toString(); + } + + + /** + * Determine if the JSONObject contains a specific key. + * @param key A key string. + * @return true if the key exists in the JSONObject. + */ + public boolean has(String key) { + return this.map.containsKey(key); + } + + + /** + * Determine if the value associated with the key is null or if there is + * no value. + * @param key A key string. + * @return true if there is no value associated with the key or if + * the value is the JSONObject.NULL object. + */ + public boolean isNull(String key) { + return JSONObject.NULL.equals(opt(key)); + } + + + /** + * Get an enumeration of the keys of the JSONObject. + * + * @return An iterator of the keys. + */ + public Iterator keys() { + return this.map.keySet().iterator(); + } + + + /** + * Get the number of keys stored in the JSONObject. + * + * @return The number of keys in the JSONObject. + */ + public int length() { + return this.map.size(); + } + + + /** + * Produce a JSONArray containing the names of the elements of this + * JSONObject. + * @return A JSONArray containing the key strings, or null if the JSONObject + * is empty. + */ + public JSONArray names() { + JSONArray ja = new JSONArray(); + Iterator keys = keys(); + while (keys.hasNext()) { + ja.put(keys.next()); + } + return ja.length() == 0 ? null : ja; + } + + /** + * Produce a string from a Number. + * @param n A Number + * @return A String. + * @throws JSONException If n is a non-finite number. + */ + static public String numberToString(Number n) + throws JSONException { + if (n == null) { + throw new JSONException("Null pointer"); + } + testValidity(n); + +// Shave off trailing zeros and decimal point, if possible. + + String s = n.toString(); + if (s.indexOf('.') > 0 && s.indexOf('e') < 0 && s.indexOf('E') < 0) { + while (s.endsWith("0")) { + s = s.substring(0, s.length() - 1); + } + if (s.endsWith(".")) { + s = s.substring(0, s.length() - 1); + } + } + return s; + } + + + /** + * Get an optional value associated with a key. + * @param key A key string. + * @return An object which is the value, or null if there is no value. + */ + public Object opt(String key) { + return key == null ? null : this.map.get(key); + } + + + /** + * Get an optional boolean associated with a key. + * It returns false if there is no such key, or if the value is not + * Boolean.TRUE or the String "true". + * + * @param key A key string. + * @return The truth. + */ + public boolean optBoolean(String key) { + return optBoolean(key, false); + } + + + /** + * Get an optional boolean associated with a key. + * It returns the defaultValue if there is no such key, or if it is not + * a Boolean or the String "true" or "false" (case insensitive). + * + * @param key A key string. + * @param defaultValue The default. + * @return The truth. + */ + public boolean optBoolean(String key, boolean defaultValue) { + try { + return getBoolean(key); + } catch (Exception e) { + return defaultValue; + } + } + + + /** + * Put a key/value pair in the JSONObject, where the value will be a + * JSONArray which is produced from a Collection. + * @param key A key string. + * @param value A Collection value. + * @return this. + * @throws JSONException + */ + public JSONObject put(String key, Collection value) throws JSONException { + put(key, new JSONArray(value)); + return this; + } + + + /** + * Get an optional double associated with a key, + * or NaN if there is no such key or if its value is not a number. + * If the value is a string, an attempt will be made to evaluate it as + * a number. + * + * @param key A string which is the key. + * @return An object which is the value. + */ + public double optDouble(String key) { + return optDouble(key, Double.NaN); + } + + + /** + * Get an optional double associated with a key, or the + * defaultValue if there is no such key or if its value is not a number. + * If the value is a string, an attempt will be made to evaluate it as + * a number. + * + * @param key A key string. + * @param defaultValue The default. + * @return An object which is the value. + */ + public double optDouble(String key, double defaultValue) { + try { + Object o = opt(key); + return o instanceof Number ? ((Number)o).doubleValue() : + new Double((String)o).doubleValue(); + } catch (Exception e) { + return defaultValue; + } + } + + + /** + * Get an optional int value associated with a key, + * or zero if there is no such key or if the value is not a number. + * If the value is a string, an attempt will be made to evaluate it as + * a number. + * + * @param key A key string. + * @return An object which is the value. + */ + public int optInt(String key) { + return optInt(key, 0); + } + + + /** + * Get an optional int value associated with a key, + * or the default if there is no such key or if the value is not a number. + * If the value is a string, an attempt will be made to evaluate it as + * a number. + * + * @param key A key string. + * @param defaultValue The default. + * @return An object which is the value. + */ + public int optInt(String key, int defaultValue) { + try { + return getInt(key); + } catch (Exception e) { + return defaultValue; + } + } + + + /** + * Get an optional JSONArray associated with a key. + * It returns null if there is no such key, or if its value is not a + * JSONArray. + * + * @param key A key string. + * @return A JSONArray which is the value. + */ + public JSONArray optJSONArray(String key) { + Object o = opt(key); + return o instanceof JSONArray ? (JSONArray)o : null; + } + + + /** + * Get an optional JSONObject associated with a key. + * It returns null if there is no such key, or if its value is not a + * JSONObject. + * + * @param key A key string. + * @return A JSONObject which is the value. + */ + public JSONObject optJSONObject(String key) { + Object o = opt(key); + return o instanceof JSONObject ? (JSONObject)o : null; + } + + + /** + * Get an optional long value associated with a key, + * or zero if there is no such key or if the value is not a number. + * If the value is a string, an attempt will be made to evaluate it as + * a number. + * + * @param key A key string. + * @return An object which is the value. + */ + public long optLong(String key) { + return optLong(key, 0); + } + + + /** + * Get an optional long value associated with a key, + * or the default if there is no such key or if the value is not a number. + * If the value is a string, an attempt will be made to evaluate it as + * a number. + * + * @param key A key string. + * @param defaultValue The default. + * @return An object which is the value. + */ + public long optLong(String key, long defaultValue) { + try { + return getLong(key); + } catch (Exception e) { + return defaultValue; + } + } + + + /** + * Get an optional string associated with a key. + * It returns an empty string if there is no such key. If the value is not + * a string and is not null, then it is coverted to a string. + * + * @param key A key string. + * @return A string which is the value. + */ + public String optString(String key) { + return optString(key, ""); + } + + + /** + * Get an optional string associated with a key. + * It returns the defaultValue if there is no such key. + * + * @param key A key string. + * @param defaultValue The default. + * @return A string which is the value. + */ + public String optString(String key, String defaultValue) { + Object o = opt(key); + return o != null ? o.toString() : defaultValue; + } + + + /** + * Put a key/boolean pair in the JSONObject. + * + * @param key A key string. + * @param value A boolean which is the value. + * @return this. + * @throws JSONException If the key is null. + */ + public JSONObject put(String key, boolean value) throws JSONException { + put(key, value ? Boolean.TRUE : Boolean.FALSE); + return this; + } + + + /** + * Put a key/double pair in the JSONObject. + * + * @param key A key string. + * @param value A double which is the value. + * @return this. + * @throws JSONException If the key is null or if the number is invalid. + */ + public JSONObject put(String key, double value) throws JSONException { + put(key, new Double(value)); + return this; + } + + + /** + * Put a key/int pair in the JSONObject. + * + * @param key A key string. + * @param value An int which is the value. + * @return this. + * @throws JSONException If the key is null. + */ + public JSONObject put(String key, int value) throws JSONException { + put(key, new Integer(value)); + return this; + } + + + /** + * Put a key/long pair in the JSONObject. + * + * @param key A key string. + * @param value A long which is the value. + * @return this. + * @throws JSONException If the key is null. + */ + public JSONObject put(String key, long value) throws JSONException { + put(key, new Long(value)); + return this; + } + + + /** + * Put a key/value pair in the JSONObject, where the value will be a + * JSONObject which is produced from a Map. + * @param key A key string. + * @param value A Map value. + * @return this. + * @throws JSONException + */ + public JSONObject put(String key, Map value) throws JSONException { + put(key, new JSONObject(value)); + return this; + } + + + /** + * Put a key/value pair in the JSONObject. If the value is null, + * then the key will be removed from the JSONObject if it is present. + * @param key A key string. + * @param value An object which is the value. It should be of one of these + * types: Boolean, Double, Integer, JSONArray, JSONObject, Long, String, + * or the JSONObject.NULL object. + * @return this. + * @throws JSONException If the value is non-finite number + * or if the key is null. + */ + public JSONObject put(String key, Object value) throws JSONException { + if (key == null) { + throw new JSONException("Null key."); + } + if (value != null) { + testValidity(value); + this.map.put(key, value); + } else { + remove(key); + } + return this; + } + + + /** + * Put a key/value pair in the JSONObject, but only if the key and the + * value are both non-null, and only if there is not already a member + * with that name. + * @param key + * @param value + * @return his. + * @throws JSONException if the key is a duplicate + */ + public JSONObject putOnce(String key, Object value) throws JSONException { + if (key != null && value != null) { + if (opt(key) != null) { + throw new JSONException("Duplicate key \"" + key + "\""); + } + put(key, value); + } + return this; + } + + + /** + * Put a key/value pair in the JSONObject, but only if the + * key and the value are both non-null. + * @param key A key string. + * @param value An object which is the value. It should be of one of these + * types: Boolean, Double, Integer, JSONArray, JSONObject, Long, String, + * or the JSONObject.NULL object. + * @return this. + * @throws JSONException If the value is a non-finite number. + */ + public JSONObject putOpt(String key, Object value) throws JSONException { + if (key != null && value != null) { + put(key, value); + } + return this; + } + + + /** + * Produce a string in double quotes with backslash sequences in all the + * right places. A backslash will be inserted within = '\u0080' && c < '\u00a0') || + (c >= '\u2000' && c < '\u2100')) { + t = "000" + Integer.toHexString(c); + sb.append("\\u" + t.substring(t.length() - 4)); + } else { + sb.append(c); + } + } + } + sb.append('"'); + return sb.toString(); + } + + /** + * Remove a name and its value, if present. + * @param key The name to be removed. + * @return The value that was associated with the name, + * or null if there was no value. + */ + public Object remove(String key) { + return this.map.remove(key); + } + + /** + * Get an enumeration of the keys of the JSONObject. + * The keys will be sorted alphabetically. + * + * @return An iterator of the keys. + */ + public Iterator sortedKeys() { + return new TreeSet(this.map.keySet()).iterator(); + } + + /** + * Try to convert a string into a number, boolean, or null. If the string + * can't be converted, return the string. + * @param s A String. + * @return A simple JSON value. + */ + static public Object stringToValue(String s) { + if (s.equals("")) { + return s; + } + if (s.equalsIgnoreCase("true")) { + return Boolean.TRUE; + } + if (s.equalsIgnoreCase("false")) { + return Boolean.FALSE; + } + if (s.equalsIgnoreCase("null")) { + return JSONObject.NULL; + } + + /* + * If it might be a number, try converting it. We support the 0- and 0x- + * conventions. If a number cannot be produced, then the value will just + * be a string. Note that the 0-, 0x-, plus, and implied string + * conventions are non-standard. A JSON parser is free to accept + * non-JSON forms as long as it accepts all correct JSON forms. + */ + + char b = s.charAt(0); + if ((b >= '0' && b <= '9') || b == '.' || b == '-' || b == '+') { + if (b == '0') { + if (s.length() > 2 && + (s.charAt(1) == 'x' || s.charAt(1) == 'X')) { + try { + return new Integer(Integer.parseInt(s.substring(2), + 16)); + } catch (Exception e) { + /* Ignore the error */ + } + } else { + try { + return new Integer(Integer.parseInt(s, 8)); + } catch (Exception e) { + /* Ignore the error */ + } + } + } + try { + if (s.indexOf('.') > -1 || s.indexOf('e') > -1 || s.indexOf('E') > -1) { + return Double.valueOf(s); + } else { + Long myLong = new Long(s); + if (myLong.longValue() == myLong.intValue()) { + return new Integer(myLong.intValue()); + } else { + return myLong; + } + } + } catch (Exception f) { + /* Ignore the error */ + } + } + return s; + } + + + /** + * Throw an exception if the object is an NaN or infinite number. + * @param o The object to test. + * @throws JSONException If o is a non-finite number. + */ + static void testValidity(Object o) throws JSONException { + if (o != null) { + if (o instanceof Double) { + if (((Double)o).isInfinite() || ((Double)o).isNaN()) { + throw new JSONException( + "JSON does not allow non-finite numbers."); + } + } else if (o instanceof Float) { + if (((Float)o).isInfinite() || ((Float)o).isNaN()) { + throw new JSONException( + "JSON does not allow non-finite numbers."); + } + } + } + } + + + /** + * Produce a JSONArray containing the values of the members of this + * JSONObject. + * @param names A JSONArray containing a list of key strings. This + * determines the sequence of the values in the result. + * @return A JSONArray of values. + * @throws JSONException If any of the values are non-finite numbers. + */ + public JSONArray toJSONArray(JSONArray names) throws JSONException { + if (names == null || names.length() == 0) { + return null; + } + JSONArray ja = new JSONArray(); + for (int i = 0; i < names.length(); i += 1) { + ja.put(this.opt(names.getString(i))); + } + return ja; + } + + /** + * Make a JSON text of this JSONObject. For compactness, no whitespace + * is added. If this would not result in a syntactically correct JSON text, + * then null will be returned instead. + *

+ * Warning: This method assumes that the data structure is acyclical. + * + * @return a printable, displayable, portable, transmittable + * representation of the object, beginning + * with { (left brace) and ending + * with } (right brace). + */ + public String toString() { + try { + Iterator keys = keys(); + StringBuffer sb = new StringBuffer("{"); + + while (keys.hasNext()) { + if (sb.length() > 1) { + sb.append(','); + } + Object o = keys.next(); + sb.append(quote(o.toString())); + sb.append(':'); + sb.append(valueToString(this.map.get(o))); + } + sb.append('}'); + return sb.toString(); + } catch (Exception e) { + return null; + } + } + + + /** + * Make a prettyprinted JSON text of this JSONObject. + *

+ * Warning: This method assumes that the data structure is acyclical. + * @param indentFactor The number of spaces to add to each level of + * indentation. + * @return a printable, displayable, portable, transmittable + * representation of the object, beginning + * with { (left brace) and ending + * with } (right brace). + * @throws JSONException If the object contains an invalid number. + */ + public String toString(int indentFactor) throws JSONException { + return toString(indentFactor, 0); + } + + + /** + * Make a prettyprinted JSON text of this JSONObject. + *

+ * Warning: This method assumes that the data structure is acyclical. + * @param indentFactor The number of spaces to add to each level of + * indentation. + * @param indent The indentation of the top level. + * @return a printable, displayable, transmittable + * representation of the object, beginning + * with { (left brace) and ending + * with } (right brace). + * @throws JSONException If the object contains an invalid number. + */ + String toString(int indentFactor, int indent) throws JSONException { + int j; + int n = length(); + if (n == 0) { + return "{}"; + } + Iterator keys = sortedKeys(); + StringBuffer sb = new StringBuffer("{"); + int newindent = indent + indentFactor; + Object o; + if (n == 1) { + o = keys.next(); + sb.append(quote(o.toString())); + sb.append(": "); + sb.append(valueToString(this.map.get(o), indentFactor, + indent)); + } else { + while (keys.hasNext()) { + o = keys.next(); + if (sb.length() > 1) { + sb.append(",\n"); + } else { + sb.append('\n'); + } + for (j = 0; j < newindent; j += 1) { + sb.append(' '); + } + sb.append(quote(o.toString())); + sb.append(": "); + sb.append(valueToString(this.map.get(o), indentFactor, + newindent)); + } + if (sb.length() > 1) { + sb.append('\n'); + for (j = 0; j < indent; j += 1) { + sb.append(' '); + } + } + } + sb.append('}'); + return sb.toString(); + } + + + /** + * Make a JSON text of an Object value. If the object has an + * value.toJSONString() method, then that method will be used to produce + * the JSON text. The method is required to produce a strictly + * conforming text. If the object does not contain a toJSONString + * method (which is the most common case), then a text will be + * produced by other means. If the value is an array or Collection, + * then a JSONArray will be made from it and its toJSONString method + * will be called. If the value is a MAP, then a JSONObject will be made + * from it and its toJSONString method will be called. Otherwise, the + * value's toString method will be called, and the result will be quoted. + * + *

+ * Warning: This method assumes that the data structure is acyclical. + * @param value The value to be serialized. + * @return a printable, displayable, transmittable + * representation of the object, beginning + * with { (left brace) and ending + * with } (right brace). + * @throws JSONException If the value is or contains an invalid number. + */ + static String valueToString(Object value) throws JSONException { + if (value == null || value.equals("")) { + return "null"; + } + if (value instanceof JSONString) { + Object o; + try { + o = ((JSONString)value).toJSONString(); + } catch (Exception e) { + throw new JSONException(e); + } + if (o instanceof String) { + return (String)o; + } + throw new JSONException("Bad value from toJSONString: " + o); + } + if (value instanceof Number) { + return numberToString((Number) value); + } + if (value instanceof Boolean || value instanceof JSONObject || + value instanceof JSONArray) { + return value.toString(); + } + if (value instanceof Map) { + return new JSONObject((Map)value).toString(); + } + if (value instanceof Collection) { + return new JSONArray((Collection)value, false).toString(); + } + if (value.getClass().isArray()) { + return new JSONArray(value).toString(); + } + return quote(value.toString()); + } + + + /** + * Make a prettyprinted JSON text of an object value. + *

+ * Warning: This method assumes that the data structure is acyclical. + * @param value The value to be serialized. + * @param indentFactor The number of spaces to add to each level of + * indentation. + * @param indent The indentation of the top level. + * @return a printable, displayable, transmittable + * representation of the object, beginning + * with { (left brace) and ending + * with } (right brace). + * @throws JSONException If the object contains an invalid number. + */ + static String valueToString(Object value, int indentFactor, int indent) + throws JSONException { + if (value == null || value.equals("")) { + return ""; + } + try { + if (value instanceof JSONString) { + Object o = ((JSONString)value).toJSONString(); + if (o instanceof String) { + return (String)o; + } + } + } catch (Exception e) { + /* forget about it */ + } + if (value instanceof Number) { + return numberToString((Number) value); + } + if (value instanceof Boolean) { + return value.toString(); + } + if (value instanceof JSONObject) { + return ((JSONObject)value).toString(indentFactor, indent); + } + if (value instanceof JSONArray) { + return ((JSONArray)value).toString(indentFactor, indent); + } + if (value instanceof Map) { + return new JSONObject((Map)value).toString(indentFactor, indent); + } + if (value instanceof Collection) { + return new JSONArray((Collection)value).toString(indentFactor, indent); + } + if (value.getClass().isArray()) { + return new JSONArray(value).toString(indentFactor, indent); + } + return quote(value.toString()); + } + + + /** + * Write the contents of the JSONObject as JSON text to a writer. + * For compactness, no whitespace is added. + *

+ * Warning: This method assumes that the data structure is acyclical. + * + * @return The writer. + * @throws JSONException + */ + public Writer write(Writer writer) throws JSONException { + try { + boolean b = false; + Iterator keys = keys(); + writer.write('{'); + + while (keys.hasNext()) { + if (b) { + writer.write(','); + } + Object k = keys.next(); + writer.write(quote(k.toString())); + writer.write(':'); + Object v = this.map.get(k); + if (v instanceof JSONObject) { + ((JSONObject)v).write(writer); + } else if (v instanceof JSONArray) { + ((JSONArray)v).write(writer); + } else { + writer.write(valueToString(v)); + } + b = true; + } + writer.write('}'); + return writer; + } catch (IOException e) { + throw new JSONException(e); + } + } +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/json/JSONString.java b/src/main/java/egovframework/com/json/JSONString.java new file mode 100644 index 0000000..d114f17 --- /dev/null +++ b/src/main/java/egovframework/com/json/JSONString.java @@ -0,0 +1,18 @@ +package egovframework.com.json; +/** + * The JSONString interface allows a toJSONString() + * method so that a class can change the behavior of + * JSONObject.toString(), JSONArray.toString(), + * and JSONWriter.value(Object). The + * toJSONString method will be used instead of the default behavior + * of using the Object's toString() method and quoting the result. + */ +public interface JSONString { + /** + * The toJSONString method allows a class to produce its own JSON + * serialization. + * + * @return A strictly syntactically correct JSON text. + */ + public String toJSONString(); +} diff --git a/src/main/java/egovframework/com/json/JSONTokener.java b/src/main/java/egovframework/com/json/JSONTokener.java new file mode 100644 index 0000000..d64708e --- /dev/null +++ b/src/main/java/egovframework/com/json/JSONTokener.java @@ -0,0 +1,425 @@ +package egovframework.com.json; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.Reader; +import java.io.StringReader; + +/* +Copyright (c) 2002 JSON.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +The Software shall be used for Good, not Evil. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ + +/** + * A JSONTokener takes a source string and extracts characters and tokens from + * it. It is used by the JSONObject and JSONArray constructors to parse + * JSON source strings. + * @author JSON.org + * @version 2008-09-18 + */ +public class JSONTokener { + + private int index; + private Reader reader; + private char lastChar; + private boolean useLastChar; + + + /** + * Construct a JSONTokener from a string. + * + * @param reader A reader. + */ + public JSONTokener(Reader reader) { + this.reader = reader.markSupported() ? + reader : new BufferedReader(reader); + this.useLastChar = false; + this.index = 0; + } + + + /** + * Construct a JSONTokener from a string. + * + * @param s A source string. + */ + public JSONTokener(String s) { + this(new StringReader(s)); + } + + + /** + * Back up one character. This provides a sort of lookahead capability, + * so that you can test for a digit or letter before attempting to parse + * the next number or identifier. + */ + public void back() throws JSONException { + if (useLastChar || index <= 0) { + throw new JSONException("Stepping back two steps is not supported"); + } + index -= 1; + useLastChar = true; + } + + + + /** + * Get the hex value of a character (base16). + * @param c A character between '0' and '9' or between 'A' and 'F' or + * between 'a' and 'f'. + * @return An int between 0 and 15, or -1 if c was not a hex digit. + */ + public static int dehexchar(char c) { + if (c >= '0' && c <= '9') { + return c - '0'; + } + if (c >= 'A' && c <= 'F') { + return c - ('A' - 10); + } + if (c >= 'a' && c <= 'f') { + return c - ('a' - 10); + } + return -1; + } + + + /** + * Determine if the source string still contains characters that next() + * can consume. + * @return true if not yet at the end of the source. + */ + public boolean more() throws JSONException { + char nextChar = next(); + if (nextChar == 0) { + return false; + } + back(); + return true; + } + + + /** + * Get the next character in the source string. + * + * @return The next character, or 0 if past the end of the source string. + */ + public char next() throws JSONException { + if (this.useLastChar) { + this.useLastChar = false; + if (this.lastChar != 0) { + this.index += 1; + } + return this.lastChar; + } + int c; + try { + c = this.reader.read(); + } catch (IOException exc) { + throw new JSONException(exc); + } + + if (c <= 0) { // End of stream + this.lastChar = 0; + return 0; + } + this.index += 1; + this.lastChar = (char) c; + return this.lastChar; + } + + + /** + * Consume the next character, and check that it matches a specified + * character. + * @param c The character to match. + * @return The character. + * @throws JSONException if the character does not match. + */ + public char next(char c) throws JSONException { + char n = next(); + if (n != c) { + throw syntaxError("Expected '" + c + "' and instead saw '" + + n + "'"); + } + return n; + } + + + /** + * Get the next n characters. + * + * @param n The number of characters to take. + * @return A string of n characters. + * @throws JSONException + * Substring bounds error if there are not + * n characters remaining in the source string. + */ + public String next(int n) throws JSONException { + if (n == 0) { + return ""; + } + + char[] buffer = new char[n]; + int pos = 0; + + if (this.useLastChar) { + this.useLastChar = false; + buffer[0] = this.lastChar; + pos = 1; + } + + try { + int len; + while ((pos < n) && ((len = reader.read(buffer, pos, n - pos)) != -1)) { + pos += len; + } + } catch (IOException exc) { + throw new JSONException(exc); + } + this.index += pos; + + if (pos < n) { + throw syntaxError("Substring bounds error"); + } + + this.lastChar = buffer[n - 1]; + return new String(buffer); + } + + + /** + * Get the next char in the string, skipping whitespace. + * @throws JSONException + * @return A character, or 0 if there are no more characters. + */ + public char nextClean() throws JSONException { + for (;;) { + char c = next(); + if (c == 0 || c > ' ') { + return c; + } + } + } + + + /** + * Return the characters up to the next close quote character. + * Backslash processing is done. The formal JSON format does not + * allow strings in single quotes, but an implementation is allowed to + * accept them. + * @param quote The quoting character, either + * " (double quote) or + * ' (single quote). + * @return A String. + * @throws JSONException Unterminated string. + */ + public String nextString(char quote) throws JSONException { + char c; + StringBuffer sb = new StringBuffer(); + for (;;) { + c = next(); + switch (c) { + case 0: + case '\n': + case '\r': + throw syntaxError("Unterminated string"); + case '\\': + c = next(); + switch (c) { + case 'b': + sb.append('\b'); + break; + case 't': + sb.append('\t'); + break; + case 'n': + sb.append('\n'); + break; + case 'f': + sb.append('\f'); + break; + case 'r': + sb.append('\r'); + break; + case 'u': + sb.append((char)Integer.parseInt(next(4), 16)); + break; + case '"': + case '\'': + case '\\': + case '/': + sb.append(c); + break; + default: + throw syntaxError("Illegal escape."); + } + break; + default: + if (c == quote) { + return sb.toString(); + } + sb.append(c); + } + } + } + + + /** + * Get the text up but not including the specified character or the + * end of line, whichever comes first. + * @param d A delimiter character. + * @return A string. + */ + public String nextTo(char d) throws JSONException { + StringBuffer sb = new StringBuffer(); + for (;;) { + char c = next(); + if (c == d || c == 0 || c == '\n' || c == '\r') { + if (c != 0) { + back(); + } + return sb.toString().trim(); + } + sb.append(c); + } + } + + + /** + * Get the text up but not including one of the specified delimiter + * characters or the end of line, whichever comes first. + * @param delimiters A set of delimiter characters. + * @return A string, trimmed. + */ + public String nextTo(String delimiters) throws JSONException { + char c; + StringBuffer sb = new StringBuffer(); + for (;;) { + c = next(); + if (delimiters.indexOf(c) >= 0 || c == 0 || + c == '\n' || c == '\r') { + if (c != 0) { + back(); + } + return sb.toString().trim(); + } + sb.append(c); + } + } + + + /** + * Get the next value. The value can be a Boolean, Double, Integer, + * JSONArray, JSONObject, Long, or String, or the JSONObject.NULL object. + * @throws JSONException If syntax error. + * + * @return An object. + */ + public Object nextValue() throws JSONException { + char c = nextClean(); + String s; + + switch (c) { + case '"': + case '\'': + return nextString(c); + case '{': + back(); + return new JSONObject(this); + case '[': + case '(': + back(); + return new JSONArray(this); + } + + /* + * Handle unquoted text. This could be the values true, false, or + * null, or it can be a number. An implementation (such as this one) + * is allowed to also accept non-standard forms. + * + * Accumulate characters until we reach the end of the text or a + * formatting character. + */ + + StringBuffer sb = new StringBuffer(); + while (c >= ' ' && ",:]}/\\\"[{;=#".indexOf(c) < 0) { + sb.append(c); + c = next(); + } + back(); + + s = sb.toString().trim(); + if (s.equals("")) { + throw syntaxError("Missing value"); + } + return JSONObject.stringToValue(s); + } + + + /** + * Skip characters until the next character is the requested character. + * If the requested character is not found, no characters are skipped. + * @param to A character to skip to. + * @return The requested character, or zero if the requested character + * is not found. + */ + public char skipTo(char to) throws JSONException { + char c; + try { + int startIndex = this.index; + reader.mark(Integer.MAX_VALUE); + do { + c = next(); + if (c == 0) { + reader.reset(); + this.index = startIndex; + return c; + } + } while (c != to); + } catch (IOException exc) { + throw new JSONException(exc); + } + + back(); + return c; + } + + /** + * Make a JSONException to signal a syntax error. + * + * @param message The error message. + * @return A JSONException object, suitable for throwing + */ + public JSONException syntaxError(String message) { + return new JSONException(message + toString()); + } + + + /** + * Make a printable string of this JSONTokener. + * + * @return " at character [this.index]" + */ + public String toString() { + return " at character " + index; + } +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/ssi/syi/iis/service/CntcInstt.java b/src/main/java/egovframework/com/ssi/syi/iis/service/CntcInstt.java new file mode 100644 index 0000000..d6860c8 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/iis/service/CntcInstt.java @@ -0,0 +1,109 @@ +package egovframework.com.ssi.syi.iis.service; + +import java.io.Serializable; + +/** + * 연계기관 모델 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *

+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class CntcInstt implements Serializable { + + /* + * 기관ID + */ + private String insttId = ""; + + /* + * 기관명 + */ + private String insttNm = ""; + + /* + * 최초등록자ID + */ + private String frstRegisterId = ""; + + /* + * 최종수정자ID + */ + private String lastUpdusrId = ""; + + /** + * insttId attribute 를 리턴한다. + * @return String + */ + public String getInsttId() { + return insttId; + } + + /** + * insttId attribute 값을 설정한다. + * @param insttId String + */ + public void setInsttId(String insttId) { + this.insttId = insttId; + } + + /** + * insttNm attribute 를 리턴한다. + * @return String + */ + public String getInsttNm() { + return insttNm; + } + + /** + * insttNm attribute 값을 설정한다. + * @param insttNm String + */ + public void setInsttNm(String insttNm) { + this.insttNm = insttNm; + } + + /** + * frstRegisterId attribute 를 리턴한다. + * @return String + */ + public String getFrstRegisterId() { + return frstRegisterId; + } + + /** + * frstRegisterId attribute 값을 설정한다. + * @param frstRegisterId String + */ + public void setFrstRegisterId(String frstRegisterId) { + this.frstRegisterId = frstRegisterId; + } + + /** + * lastUpdusrId attribute 를 리턴한다. + * @return String + */ + public String getLastUpdusrId() { + return lastUpdusrId; + } + + /** + * lastUpdusrId attribute 값을 설정한다. + * @param lastUpdusrId String + */ + public void setLastUpdusrId(String lastUpdusrId) { + this.lastUpdusrId = lastUpdusrId; + } + + +} diff --git a/src/main/java/egovframework/com/ssi/syi/iis/service/CntcInsttVO.java b/src/main/java/egovframework/com/ssi/syi/iis/service/CntcInsttVO.java new file mode 100644 index 0000000..45d5576 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/iis/service/CntcInsttVO.java @@ -0,0 +1,197 @@ +package egovframework.com.ssi.syi.iis.service; + +import java.io.Serializable; + +/** + * + * 연계기관 VO 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class CntcInsttVO extends CntcInstt implements Serializable { + + /** 검색조건 */ + private String searchCondition = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + /** + * searchCondition attribute 를 리턴한다. + * @return String + */ + public String getSearchCondition() { + return searchCondition; + } + + /** + * searchCondition attribute 값을 설정한다. + * @param searchCondition String + */ + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + /** + * searchKeyword attribute 를 리턴한다. + * @return String + */ + public String getSearchKeyword() { + return searchKeyword; + } + + /** + * searchKeyword attribute 값을 설정한다. + * @param searchKeyword String + */ + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + /** + * searchUseYn attribute 를 리턴한다. + * @return String + */ + public String getSearchUseYn() { + return searchUseYn; + } + + /** + * searchUseYn attribute 값을 설정한다. + * @param searchUseYn String + */ + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + /** + * pageIndex attribute 를 리턴한다. + * @return int + */ + public int getPageIndex() { + return pageIndex; + } + + /** + * pageIndex attribute 값을 설정한다. + * @param pageIndex int + */ + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * pageUnit attribute 를 리턴한다. + * @return int + */ + public int getPageUnit() { + return pageUnit; + } + + /** + * pageUnit attribute 값을 설정한다. + * @param pageUnit int + */ + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * pageSize attribute 를 리턴한다. + * @return int + */ + public int getPageSize() { + return pageSize; + } + + /** + * pageSize attribute 값을 설정한다. + * @param pageSize int + */ + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + /** + * firstIndex attribute 를 리턴한다. + * @return int + */ + public int getFirstIndex() { + return firstIndex; + } + + /** + * firstIndex attribute 값을 설정한다. + * @param firstIndex int + */ + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * lastIndex attribute 를 리턴한다. + * @return int + */ + public int getLastIndex() { + return lastIndex; + } + + /** + * lastIndex attribute 값을 설정한다. + * @param lastIndex int + */ + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * recordCountPerPage attribute 를 리턴한다. + * @return int + */ + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * recordCountPerPage attribute 값을 설정한다. + * @param recordCountPerPage int + */ + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + +} diff --git a/src/main/java/egovframework/com/ssi/syi/iis/service/CntcService.java b/src/main/java/egovframework/com/ssi/syi/iis/service/CntcService.java new file mode 100644 index 0000000..73ef5c2 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/iis/service/CntcService.java @@ -0,0 +1,192 @@ +package egovframework.com.ssi.syi.iis.service; + +import java.io.Serializable; + +/** + * 연계서비스 모델 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class CntcService implements Serializable { + + /* + * 기관ID + */ + private String insttId = ""; + + /* + * 시스템ID + */ + private String sysId = ""; + + /* + * 서비스ID + */ + private String svcId = ""; + + /* + * 서비스명 + */ + private String svcNm = ""; + + /* + * 요청메시지ID + */ + private String requestMessageId = ""; + + /* + * 응답메시지ID + */ + private String rspnsMessageId = ""; + + /* + * 최초등록자ID + */ + private String frstRegisterId = ""; + + /* + * 최종수정자ID + */ + private String lastUpdusrId = ""; + + /** + * insttId attribute 를 리턴한다. + * @return String + */ + public String getInsttId() { + return insttId; + } + + /** + * insttId attribute 값을 설정한다. + * @param insttId String + */ + public void setInsttId(String insttId) { + this.insttId = insttId; + } + + /** + * sysId attribute 를 리턴한다. + * @return String + */ + public String getSysId() { + return sysId; + } + + /** + * sysId attribute 값을 설정한다. + * @param sysId String + */ + public void setSysId(String sysId) { + this.sysId = sysId; + } + + /** + * svcId attribute 를 리턴한다. + * @return String + */ + public String getSvcId() { + return svcId; + } + + /** + * svcId attribute 값을 설정한다. + * @param svcId String + */ + public void setSvcId(String svcId) { + this.svcId = svcId; + } + + /** + * svcNm attribute 를 리턴한다. + * @return String + */ + public String getSvcNm() { + return svcNm; + } + + /** + * svcNm attribute 값을 설정한다. + * @param svcNm String + */ + public void setSvcNm(String svcNm) { + this.svcNm = svcNm; + } + + /** + * requestMessageId attribute 를 리턴한다. + * @return String + */ + public String getRequestMessageId() { + return requestMessageId; + } + + /** + * requestMessageId attribute 값을 설정한다. + * @param requestMessageId String + */ + public void setRequestMessageId(String requestMessageId) { + this.requestMessageId = requestMessageId; + } + + /** + * rspnsMessageId attribute 를 리턴한다. + * @return String + */ + public String getRspnsMessageId() { + return rspnsMessageId; + } + + /** + * rspnsMessageId attribute 값을 설정한다. + * @param rspnsMessageId String + */ + public void setRspnsMessageId(String rspnsMessageId) { + this.rspnsMessageId = rspnsMessageId; + } + + /** + * frstRegisterId attribute 를 리턴한다. + * @return String + */ + public String getFrstRegisterId() { + return frstRegisterId; + } + + /** + * frstRegisterId attribute 값을 설정한다. + * @param frstRegisterId String + */ + public void setFrstRegisterId(String frstRegisterId) { + this.frstRegisterId = frstRegisterId; + } + + /** + * lastUpdusrId attribute 를 리턴한다. + * @return String + */ + public String getLastUpdusrId() { + return lastUpdusrId; + } + + /** + * lastUpdusrId attribute 값을 설정한다. + * @param lastUpdusrId String + */ + public void setLastUpdusrId(String lastUpdusrId) { + this.lastUpdusrId = lastUpdusrId; + } + +} diff --git a/src/main/java/egovframework/com/ssi/syi/iis/service/CntcServiceVO.java b/src/main/java/egovframework/com/ssi/syi/iis/service/CntcServiceVO.java new file mode 100644 index 0000000..363f028 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/iis/service/CntcServiceVO.java @@ -0,0 +1,197 @@ +package egovframework.com.ssi.syi.iis.service; + +import java.io.Serializable; + +/** + * + * 연계기관 VO 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class CntcServiceVO extends CntcService implements Serializable { + + /** 검색조건 */ + private String searchCondition = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + /** + * searchCondition attribute 를 리턴한다. + * @return String + */ + public String getSearchCondition() { + return searchCondition; + } + + /** + * searchCondition attribute 값을 설정한다. + * @param searchCondition String + */ + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + /** + * searchKeyword attribute 를 리턴한다. + * @return String + */ + public String getSearchKeyword() { + return searchKeyword; + } + + /** + * searchKeyword attribute 값을 설정한다. + * @param searchKeyword String + */ + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + /** + * searchUseYn attribute 를 리턴한다. + * @return String + */ + public String getSearchUseYn() { + return searchUseYn; + } + + /** + * searchUseYn attribute 값을 설정한다. + * @param searchUseYn String + */ + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + /** + * pageIndex attribute 를 리턴한다. + * @return int + */ + public int getPageIndex() { + return pageIndex; + } + + /** + * pageIndex attribute 값을 설정한다. + * @param pageIndex int + */ + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * pageUnit attribute 를 리턴한다. + * @return int + */ + public int getPageUnit() { + return pageUnit; + } + + /** + * pageUnit attribute 값을 설정한다. + * @param pageUnit int + */ + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * pageSize attribute 를 리턴한다. + * @return int + */ + public int getPageSize() { + return pageSize; + } + + /** + * pageSize attribute 값을 설정한다. + * @param pageSize int + */ + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + /** + * firstIndex attribute 를 리턴한다. + * @return int + */ + public int getFirstIndex() { + return firstIndex; + } + + /** + * firstIndex attribute 값을 설정한다. + * @param firstIndex int + */ + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * lastIndex attribute 를 리턴한다. + * @return int + */ + public int getLastIndex() { + return lastIndex; + } + + /** + * lastIndex attribute 값을 설정한다. + * @param lastIndex int + */ + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * recordCountPerPage attribute 를 리턴한다. + * @return int + */ + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * recordCountPerPage attribute 값을 설정한다. + * @param recordCountPerPage int + */ + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + +} diff --git a/src/main/java/egovframework/com/ssi/syi/iis/service/CntcSystem.java b/src/main/java/egovframework/com/ssi/syi/iis/service/CntcSystem.java new file mode 100644 index 0000000..23b402d --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/iis/service/CntcSystem.java @@ -0,0 +1,151 @@ +package egovframework.com.ssi.syi.iis.service; + +import java.io.Serializable; + +/** + * 연계시스템 모델 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class CntcSystem implements Serializable { + + /* + * 기관ID + */ + private String insttId = ""; + + /* + * 시스템ID + */ + private String sysId = ""; + + /* + * 시스템명 + */ + private String sysNm = ""; + + /* + * 시스템IP + */ + private String sysIp = ""; + + /* + * 최초등록자ID + */ + private String frstRegisterId = ""; + + /* + * 최종수정자ID + */ + private String lastUpdusrId = ""; + + /** + * insttId attribute 를 리턴한다. + * @return String + */ + public String getInsttId() { + return insttId; + } + + /** + * insttId attribute 값을 설정한다. + * @param insttId String + */ + public void setInsttId(String insttId) { + this.insttId = insttId; + } + + /** + * sysId attribute 를 리턴한다. + * @return String + */ + public String getSysId() { + return sysId; + } + + /** + * sysId attribute 값을 설정한다. + * @param sysId String + */ + public void setSysId(String sysId) { + this.sysId = sysId; + } + + /** + * sysNm attribute 를 리턴한다. + * @return String + */ + public String getSysNm() { + return sysNm; + } + + /** + * sysNm attribute 값을 설정한다. + * @param sysNm String + */ + public void setSysNm(String sysNm) { + this.sysNm = sysNm; + } + + /** + * sysIp attribute 를 리턴한다. + * @return String + */ + public String getSysIp() { + return sysIp; + } + + /** + * sysIp attribute 값을 설정한다. + * @param sysIp String + */ + public void setSysIp(String sysIp) { + this.sysIp = sysIp; + } + + /** + * frstRegisterId attribute 를 리턴한다. + * @return String + */ + public String getFrstRegisterId() { + return frstRegisterId; + } + + /** + * frstRegisterId attribute 값을 설정한다. + * @param frstRegisterId String + */ + public void setFrstRegisterId(String frstRegisterId) { + this.frstRegisterId = frstRegisterId; + } + + /** + * lastUpdusrId attribute 를 리턴한다. + * @return String + */ + public String getLastUpdusrId() { + return lastUpdusrId; + } + + /** + * lastUpdusrId attribute 값을 설정한다. + * @param lastUpdusrId String + */ + public void setLastUpdusrId(String lastUpdusrId) { + this.lastUpdusrId = lastUpdusrId; + } + + +} diff --git a/src/main/java/egovframework/com/ssi/syi/iis/service/CntcSystemVO.java b/src/main/java/egovframework/com/ssi/syi/iis/service/CntcSystemVO.java new file mode 100644 index 0000000..3a54f53 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/iis/service/CntcSystemVO.java @@ -0,0 +1,197 @@ +package egovframework.com.ssi.syi.iis.service; + +import java.io.Serializable; + +/** + * + * 연계기관 VO 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class CntcSystemVO extends CntcSystem implements Serializable { + + /** 검색조건 */ + private String searchCondition = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + /** + * searchCondition attribute 를 리턴한다. + * @return String + */ + public String getSearchCondition() { + return searchCondition; + } + + /** + * searchCondition attribute 값을 설정한다. + * @param searchCondition String + */ + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + /** + * searchKeyword attribute 를 리턴한다. + * @return String + */ + public String getSearchKeyword() { + return searchKeyword; + } + + /** + * searchKeyword attribute 값을 설정한다. + * @param searchKeyword String + */ + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + /** + * searchUseYn attribute 를 리턴한다. + * @return String + */ + public String getSearchUseYn() { + return searchUseYn; + } + + /** + * searchUseYn attribute 값을 설정한다. + * @param searchUseYn String + */ + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + /** + * pageIndex attribute 를 리턴한다. + * @return int + */ + public int getPageIndex() { + return pageIndex; + } + + /** + * pageIndex attribute 값을 설정한다. + * @param pageIndex int + */ + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * pageUnit attribute 를 리턴한다. + * @return int + */ + public int getPageUnit() { + return pageUnit; + } + + /** + * pageUnit attribute 값을 설정한다. + * @param pageUnit int + */ + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * pageSize attribute 를 리턴한다. + * @return int + */ + public int getPageSize() { + return pageSize; + } + + /** + * pageSize attribute 값을 설정한다. + * @param pageSize int + */ + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + /** + * firstIndex attribute 를 리턴한다. + * @return int + */ + public int getFirstIndex() { + return firstIndex; + } + + /** + * firstIndex attribute 값을 설정한다. + * @param firstIndex int + */ + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * lastIndex attribute 를 리턴한다. + * @return int + */ + public int getLastIndex() { + return lastIndex; + } + + /** + * lastIndex attribute 값을 설정한다. + * @param lastIndex int + */ + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * recordCountPerPage attribute 를 리턴한다. + * @return int + */ + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * recordCountPerPage attribute 값을 설정한다. + * @param recordCountPerPage int + */ + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + +} diff --git a/src/main/java/egovframework/com/ssi/syi/iis/service/EgovCntcInsttService.java b/src/main/java/egovframework/com/ssi/syi/iis/service/EgovCntcInsttService.java new file mode 100644 index 0000000..9067a41 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/iis/service/EgovCntcInsttService.java @@ -0,0 +1,157 @@ +package egovframework.com.ssi.syi.iis.service; + +import java.util.List; + +/** + * + * 연계기관에 관한 서비스 인터페이스 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public interface EgovCntcInsttService { + + /** + * 연계기관을 삭제한다. + * @param cntcInstt + * @throws Exception + */ + void deleteCntcInstt(CntcInstt cntcInstt) throws Exception; + + /** + * 연계시스템을 삭제한다. + * @param cntcInstt + * @throws Exception + */ + void deleteCntcSystem(CntcSystem cntcSystem) throws Exception; + + /** + * 연계서비스를 삭제한다. + * @param cntcInstt + * @throws Exception + */ + void deleteCntcService(CntcService cntcService) throws Exception; + + /** + * 연계기관을 등록한다. + * @param cntcInstt + * @throws Exception + */ + void insertCntcInstt(CntcInstt cntcInstt) throws Exception; + + /** + * 연계시스템을 등록한다. + * @param cntcInstt + * @throws Exception + */ + void insertCntcSystem(CntcSystem cntcSystem) throws Exception; + + /** + * 연계서비스를 등록한다. + * @param cntcService + * @throws Exception + */ + void insertCntcService(CntcService cntcService) throws Exception; + + /** + * 연계기관 상세항목을 조회한다. + * @param cntcInstt + * @return CntcInstt(연계기관) + * @throws Exception + */ + CntcInstt selectCntcInsttDetail(CntcInstt cntcInstt) throws Exception; + + /** + * 연계시스템 상세항목을 조회한다. + * @param cntcInstt + * @return CntcInstt(연계기관) + * @throws Exception + */ + CntcSystem selectCntcSystemDetail(CntcSystem cntcSystem) throws Exception; + + /** + * 연계서비스 상세항목을 조회한다. + * @param cntcInstt + * @return CntcInstt(연계기관) + * @throws Exception + */ + CntcService selectCntcServiceDetail(CntcService cntcService) throws Exception; + + /** + * 연계기관 목록을 조회한다. + * @param searchVO + * @return List(연계기관 목록) + * @throws Exception + */ + List selectCntcInsttList(CntcInsttVO searchVO) throws Exception; + + /** + * 연계기관 총 갯수를 조회한다. + * @param searchVO + * @return int(연계기관 총 갯수) + */ + int selectCntcInsttListTotCnt(CntcInsttVO searchVO) throws Exception; + + /** + * 연계시스템 목록을 조회한다. + * @param searchVO + * @return List(연계시스템 목록) + * @throws Exception + */ + List selectCntcSystemList(CntcSystemVO searchVO) throws Exception; + + /** + * 연계시스템 총 갯수를 조회한다. + * @param searchVO + * @return int(연계시스템 총 갯수) + */ + int selectCntcSystemListTotCnt(CntcSystemVO searchVO) throws Exception; + + /** + * 연계서비스 목록을 조회한다. + * @param searchVO + * @return List(연계시스템 목록) + * @throws Exception + */ + List selectCntcServiceList(CntcServiceVO searchVO) throws Exception; + + /** + * 연계서비스 총 갯수를 조회한다. + * @param searchVO + * @return int(연계시스템 총 갯수) + */ + int selectCntcServiceListTotCnt(CntcServiceVO searchVO) throws Exception; + + /** + * 연계기관을 수정한다. + * @param cntcInstt + * @throws Exception + */ + void updateCntcInstt(CntcInstt cntcInstt) throws Exception; + + /** + * 연계시스템을 수정한다. + * @param cntcInstt + * @throws Exception + */ + void updateCntcSystem(CntcSystem cntcSystem) throws Exception; + + /** + * 연계서비스 수정한다. + * @param cntcInstt + * @throws Exception + */ + void updateCntcService(CntcService cntcService) throws Exception; + +} diff --git a/src/main/java/egovframework/com/ssi/syi/iis/service/impl/CntcInsttDAO.java b/src/main/java/egovframework/com/ssi/syi/iis/service/impl/CntcInsttDAO.java new file mode 100644 index 0000000..cabc04e --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/iis/service/impl/CntcInsttDAO.java @@ -0,0 +1,202 @@ +package egovframework.com.ssi.syi.iis.service.impl; + +import java.util.List; + +import org.springframework.stereotype.Repository; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.ssi.syi.iis.service.CntcInstt; +import egovframework.com.ssi.syi.iis.service.CntcInsttVO; +import egovframework.com.ssi.syi.iis.service.CntcService; +import egovframework.com.ssi.syi.iis.service.CntcServiceVO; +import egovframework.com.ssi.syi.iis.service.CntcSystem; +import egovframework.com.ssi.syi.iis.service.CntcSystemVO; + +/** + * + * 연계기관에 대한 데이터 접근 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +@Repository("CntcInsttDAO") +public class CntcInsttDAO extends EgovComAbstractDAO { + + + /** + * 연계기관을 삭제한다. + * @param cntcInstt + * @throws Exception + */ + public void deleteCntcInstt(CntcInstt cntcInstt) throws Exception { + delete("CntcInsttDAO.deleteCntcInstt", cntcInstt); + } + + /** + * 연계시스템을 삭제한다. + * @param cntcInstt + * @throws Exception + */ + public void deleteCntcSystem(CntcSystem cntcSystem) throws Exception { + delete("CntcInsttDAO.deleteCntcSystem", cntcSystem); + } + + /** + * 연계서비스를 삭제한다. + * @param cntcInstt + * @throws Exception + */ + public void deleteCntcService(CntcService cntcService) throws Exception { + delete("CntcInsttDAO.deleteCntcService", cntcService); + } + + /** + * 연계기관을 등록한다. + * @param cntcInstt + * @throws Exception + */ + public void insertCntcInstt(CntcInstt cntcInstt) throws Exception { + insert("CntcInsttDAO.insertCntcInstt", cntcInstt); + } + + /** + * 연계시스템을 등록한다. + * @param cntcInstt + * @throws Exception + */ + public void insertCntcSystem(CntcSystem cntcSystem) throws Exception { + insert("CntcInsttDAO.insertCntcSystem", cntcSystem); + } + + /** + * 연계서비스를 등록한다. + * @param cntcInstt + * @throws Exception + */ + public void insertCntcService(CntcService cntcService) throws Exception { + insert("CntcInsttDAO.insertCntcService", cntcService); + } + + /** + * 연계기관 상세항목을 조회한다. + * @param cntcInstt + * @return CntcInstt(연계기관) + */ + public CntcInstt selectCntcInsttDetail(CntcInstt cntcInstt) throws Exception { + return (CntcInstt) selectByPk("CntcInsttDAO.selectCntcInsttDetail", cntcInstt); + } + + /** + * 연계시스템 상세항목을 조회한다. + * @param cntcInstt + * @return CntcInstt(연계기관) + */ + public CntcSystem selectCntcSystemDetail(CntcSystem cntcSystem) throws Exception { + return (CntcSystem) selectByPk("CntcInsttDAO.selectCntcSystemDetail", cntcSystem); + } + + /** + * 연계서비스 상세항목을 조회한다. + * @param cntcInstt + * @return CntcInstt(연계기관) + */ + public CntcService selectCntcServiceDetail(CntcService cntcService) throws Exception { + return (CntcService) selectByPk("CntcInsttDAO.selectCntcServiceDetail", cntcService); + } + + /** + * 연계기관 목록을 조회한다. + * @param searchVO + * @return List(연계기관 목록) + * @throws Exception + */ + public List selectCntcInsttList(CntcInsttVO searchVO) throws Exception { + return list("CntcInsttDAO.selectCntcInsttList", searchVO); + } + + /** + * 연계기관 총 갯수를 조회한다. + * @param searchVO + * @return int(연계기관 총 갯수) + */ + public int selectCntcInsttListTotCnt(CntcInsttVO searchVO) throws Exception { + return (Integer)getSqlMapClientTemplate().queryForObject("CntcInsttDAO.selectCntcInsttListTotCnt", searchVO); + } + + /** + * 연계시스템 목록을 조회한다. + * @param searchVO + * @return List(연계시스템 목록) + * @throws Exception + */ + public List selectCntcSystemList(CntcSystemVO searchVO) throws Exception { + return list("CntcInsttDAO.selectCntcSystemList", searchVO); + } + + /** + * 연계시스템 총 갯수를 조회한다. + * @param searchVO + * @return int(연계시스템 총 갯수) + */ + public int selectCntcSystemListTotCnt(CntcSystemVO searchVO) throws Exception { + return (Integer)getSqlMapClientTemplate().queryForObject("CntcInsttDAO.selectCntcSystemListTotCnt", searchVO); + } + + /** + * 연계서비스 목록을 조회한다. + * @param searchVO + * @return List(연계서비스 목록) + * @throws Exception + */ + public List selectCntcServiceList(CntcServiceVO searchVO) throws Exception { + return list("CntcInsttDAO.selectCntcServiceList", searchVO); + } + + /** + * 연계서비스 총 갯수를 조회한다. + * @param searchVO + * @return int(연계서비스 총 갯수) + */ + public int selectCntcServiceListTotCnt(CntcServiceVO searchVO) throws Exception { + return (Integer)getSqlMapClientTemplate().queryForObject("CntcInsttDAO.selectCntcServiceListTotCnt", searchVO); + } + + /** + * 연계기관을 수정한다. + * @param cntcInstt + * @throws Exception + */ + public void updateCntcInstt(CntcInstt cntcInstt) throws Exception { + update("CntcInsttDAO.updateCntcInstt", cntcInstt); + } + + /** + * 연계시스템을 수정한다. + * @param cntcInstt + * @throws Exception + */ + public void updateCntcSystem(CntcSystem cntcSystem) throws Exception { + update("CntcInsttDAO.updateCntcSystem", cntcSystem); + } + + /** + * 연계시스템을 수정한다. + * @param cntcInstt + * @throws Exception + */ + public void updateCntcService(CntcService cntcService) throws Exception { + update("CntcInsttDAO.updateCntcService", cntcService); + } + +} diff --git a/src/main/java/egovframework/com/ssi/syi/iis/service/impl/EgovCntcInsttServiceImpl.java b/src/main/java/egovframework/com/ssi/syi/iis/service/impl/EgovCntcInsttServiceImpl.java new file mode 100644 index 0000000..4b72667 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/iis/service/impl/EgovCntcInsttServiceImpl.java @@ -0,0 +1,174 @@ +package egovframework.com.ssi.syi.iis.service.impl; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import egovframework.com.ssi.syi.iis.service.CntcInstt; +import egovframework.com.ssi.syi.iis.service.CntcInsttVO; +import egovframework.com.ssi.syi.iis.service.CntcService; +import egovframework.com.ssi.syi.iis.service.CntcServiceVO; +import egovframework.com.ssi.syi.iis.service.CntcSystem; +import egovframework.com.ssi.syi.iis.service.CntcSystemVO; +import egovframework.com.ssi.syi.iis.service.EgovCntcInsttService; +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + + +/** + * + * 연계기관에 대한 서비스 구현클래스를 정의한다. + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +@Service("CntcInsttService") +public class EgovCntcInsttServiceImpl extends AbstractServiceImpl implements EgovCntcInsttService { + + + @Resource(name="CntcInsttDAO") + private CntcInsttDAO cntcInsttDAO; + + /** + * 연계기관을 삭제한다. + */ + public void deleteCntcInstt(CntcInstt cntcInstt) throws Exception { + cntcInsttDAO.deleteCntcInstt(cntcInstt); + } + + /** + * 연계시스템을 삭제한다. + */ + public void deleteCntcSystem(CntcSystem cntcSystem) throws Exception { + cntcInsttDAO.deleteCntcSystem(cntcSystem); + } + + /** + * 연계서비스를 삭제한다. + */ + public void deleteCntcService(CntcService cntcService) throws Exception { + cntcInsttDAO.deleteCntcService(cntcService); + } + + + /** + * 연계기관을 등록한다. + */ + public void insertCntcInstt(CntcInstt cntcInstt) throws Exception { + cntcInsttDAO.insertCntcInstt(cntcInstt); + } + + /** + * 연계시스템을 등록한다. + */ + public void insertCntcSystem(CntcSystem cntcSystem) throws Exception { + cntcInsttDAO.insertCntcSystem(cntcSystem); + } + + /** + * 연계서비스를 등록한다. + */ + public void insertCntcService(CntcService cntcService) throws Exception { + cntcInsttDAO.insertCntcService(cntcService); + } + + /** + * 연계기관 상세항목을 조회한다. + */ + public CntcInstt selectCntcInsttDetail(CntcInstt cntcInstt) throws Exception { + CntcInstt ret = (CntcInstt)cntcInsttDAO.selectCntcInsttDetail(cntcInstt); + return ret; + } + + /** + * 연계시스템 상세항목을 조회한다. + */ + public CntcSystem selectCntcSystemDetail(CntcSystem cntcSystem) throws Exception { + CntcSystem ret = (CntcSystem)cntcInsttDAO.selectCntcSystemDetail(cntcSystem); + return ret; + } + + /** + * 연계서비스 상세항목을 조회한다. + */ + public CntcService selectCntcServiceDetail(CntcService cntcService) throws Exception { + CntcService ret = (CntcService)cntcInsttDAO.selectCntcServiceDetail(cntcService); + return ret; + } + + /** + * 연계기관 목록을 조회한다. + */ + public List selectCntcInsttList(CntcInsttVO searchVO) throws Exception { + return cntcInsttDAO.selectCntcInsttList(searchVO); + } + + /** + * 연계기관 총 갯수를 조회한다. + */ + public int selectCntcInsttListTotCnt(CntcInsttVO searchVO) throws Exception { + return cntcInsttDAO.selectCntcInsttListTotCnt(searchVO); + } + + /** + * 연계시스템 목록을 조회한다. + */ + public List selectCntcSystemList(CntcSystemVO searchVO) throws Exception { + return cntcInsttDAO.selectCntcSystemList(searchVO); + } + + /** + * 연계시스템 총 갯수를 조회한다. + */ + public int selectCntcSystemListTotCnt(CntcSystemVO searchVO) throws Exception { + return cntcInsttDAO.selectCntcSystemListTotCnt(searchVO); + } + + /** + * 연계서비스 목록을 조회한다. + */ + public List selectCntcServiceList(CntcServiceVO searchVO) throws Exception { + return cntcInsttDAO.selectCntcServiceList(searchVO); + } + + /** + * 연계서비스 총 갯수를 조회한다. + */ + public int selectCntcServiceListTotCnt(CntcServiceVO searchVO) throws Exception { + return cntcInsttDAO.selectCntcServiceListTotCnt(searchVO); + } + + /** + * 연계기관을 수정한다. + */ + public void updateCntcInstt(CntcInstt cntcInstt) throws Exception { + cntcInsttDAO.updateCntcInstt(cntcInstt); + } + + /** + * 연계시스템을 수정한다. + */ + public void updateCntcSystem(CntcSystem cntcSystem) throws Exception { + cntcInsttDAO.updateCntcSystem(cntcSystem); + } + + /** + * 연계서비스를 수정한다. + */ + public void updateCntcService(CntcService cntcService) throws Exception { + cntcInsttDAO.updateCntcService(cntcService); + } + +} diff --git a/src/main/java/egovframework/com/ssi/syi/iis/web/EgovCntcInsttController.java b/src/main/java/egovframework/com/ssi/syi/iis/web/EgovCntcInsttController.java new file mode 100644 index 0000000..0775f8d --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/iis/web/EgovCntcInsttController.java @@ -0,0 +1,704 @@ +package egovframework.com.ssi.syi.iis.web; + +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springmodules.validation.commons.DefaultBeanValidator; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.cmm.util.EgovUserDetailsHelper; +import egovframework.com.ssi.syi.iis.service.CntcInstt; +import egovframework.com.ssi.syi.iis.service.CntcInsttVO; +import egovframework.com.ssi.syi.iis.service.CntcService; +import egovframework.com.ssi.syi.iis.service.CntcServiceVO; +import egovframework.com.ssi.syi.iis.service.CntcSystem; +import egovframework.com.ssi.syi.iis.service.CntcSystemVO; +import egovframework.com.ssi.syi.iis.service.EgovCntcInsttService; +import egovframework.com.ssi.syi.ims.service.CntcMessageVO; +import egovframework.com.ssi.syi.ims.service.EgovCntcMessageService; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +/** + * + * 연계기관 관리에 관한 요청을 받아 서비스 클래스로 요청을 전달하고 서비스클래스에서 처리한 결과를 웹 화면으로 전달을 위한 Controller를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.8.26	 정진오			IncludedInfo annotation 추가
+ *   2011.09.14  서준식			연계시스템 수정시 입력 데이터 표신 안되는 문제 수정
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ + +@Controller +public class EgovCntcInsttController { + + + + + @Resource(name = "CntcInsttService") + private EgovCntcInsttService cntcInsttService; + + @Resource(name = "CntcMessageService") + private EgovCntcMessageService cntcMessageService; + + /** EgovIdGnrService */ + @Resource(name="egovCntcInsttIdGnrService") + private EgovIdGnrService idgenService; + + /** EgovIdGnrService */ + @Resource(name="egovCntcSystemIdGnrService") + private EgovIdGnrService idgenServiceSys; + + /** EgovIdGnrService */ + @Resource(name="egovCntcServiceIdGnrService") + private EgovIdGnrService idgenServiceSvc; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + @Autowired + private DefaultBeanValidator beanValidator; + + /** + * 연계기관을 삭제한다. + * @param loginVO + * @param cntcInstt + * @param model + * @return "forward:/ssi/syi/iis/EgovCcmAdministCodeList.do" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/iis/removeCntcInstt.do") + public String deleteCntcInstt (CntcInstt cntcInstt + , ModelMap model + ) throws Exception { + cntcInsttService.deleteCntcInstt(cntcInstt); + return "forward:/ssi/syi/iis/getCntcInsttList.do"; + } + + /** + * 연계시스템을 삭제한다. + * @param loginVO + * @param cntcSystem + * @param model + * @return "forward:/ssi/syi/iis/EgovCcmAdministCodeList.do" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/iis/removeCntcSystem.do") + public String deleteCntcSystem(CntcSystem cntcSystem + , ModelMap model + ) throws Exception { + cntcInsttService.deleteCntcSystem(cntcSystem); + return "forward:/ssi/syi/iis/getCntcInsttList.do"; + } + + /** + * 연계서비스를 삭제한다. + * @param loginVO + * @param cntcSystem + * @param model + * @return "forward:/ssi/syi/iis/EgovCcmAdministCodeList.do" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/iis/removeCntcService.do") + public String deleteCntcService(CntcService cntcService + , ModelMap model + ) throws Exception { + cntcInsttService.deleteCntcService(cntcService); + return "forward:/ssi/syi/iis/getCntcInsttList.do"; + } + + /** + * 연계기관을 등록한다. + * @param loginVO + * @param cntcInstt + * @param bindingResult + * @param model + * @return "egovframework/com/ssi/syi/iis/EgovCntcInsttRegist" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/iis/addCntcInstt.do") + public String insertCntcInstt (@ModelAttribute("cntcInstt") CntcInstt cntcInstt + , BindingResult bindingResult + , Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + + return "egovframework/com/ssi/syi/iis/EgovCntcInsttRegist"; + } else if (sCmd.equals("Regist")) { + + beanValidator.validate(cntcInstt, bindingResult); + if (bindingResult.hasErrors()){ + + return "egovframework/com/ssi/syi/iis/EgovCntcInsttRegist"; + } + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String uniqId = loginVO.getUniqId(); + cntcInstt.setFrstRegisterId(uniqId); + + // ID Generation + String sInsttId = idgenService.getNextStringId(); + cntcInstt.setInsttId(sInsttId); + + cntcInsttService.insertCntcInstt(cntcInstt); + + return "forward:/ssi/syi/iis/getCntcInsttList.do"; + } else { + return "forward:/ssi/syi/iis/getCntcInsttList.do"; + } + } + + /** + * 연계시스템을 등록한다. + * @param loginVO + * @param cntcSystem + * @param bindingResult + * @param model + * @return "egovframework/com/ssi/syi/iis/EgovCntcSystemRegist" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/iis/addCntcSystem.do") + public String insertCntcSystem(@ModelAttribute("cntcSystem") CntcSystem cntcSystem + , BindingResult bindingResult + , Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + // 연계기관 리스트박스 데이터 + CntcInsttVO searchCntcInsttVO; + searchCntcInsttVO = new CntcInsttVO(); + searchCntcInsttVO.setRecordCountPerPage(999999); + searchCntcInsttVO.setFirstIndex(0); + searchCntcInsttVO.setSearchCondition("CodeList"); + List cntcInsttList = (List)cntcInsttService.selectCntcInsttList(searchCntcInsttVO); + model.addAttribute("cntcInsttList", cntcInsttList); + + return "egovframework/com/ssi/syi/iis/EgovCntcSystemRegist"; + } else if (sCmd.equals("Regist")) { + + beanValidator.validate(cntcSystem, bindingResult); + if (bindingResult.hasErrors()){ + // 연계기관 리스트박스 데이터 + CntcInsttVO searchCntcInsttVO; + searchCntcInsttVO = new CntcInsttVO(); + searchCntcInsttVO.setRecordCountPerPage(999999); + searchCntcInsttVO.setFirstIndex(0); + searchCntcInsttVO.setSearchCondition("CodeList"); + List cntcInsttList = (List)cntcInsttService.selectCntcInsttList(searchCntcInsttVO); + model.addAttribute("cntcInsttList", cntcInsttList); + + return "egovframework/com/ssi/syi/iis/EgovCntcSystemRegist"; + } + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String uniqId = loginVO.getUniqId(); + cntcSystem.setFrstRegisterId(uniqId); + + // ID Generation + String sSysId = idgenServiceSys.getNextStringId(); + cntcSystem.setSysId(sSysId); + + cntcInsttService.insertCntcSystem(cntcSystem); + return "forward:/ssi/syi/iis/getCntcInsttDetail.do"; + } else { + return "forward:/ssi/syi/iis/getCntcInsttDetail.do"; + } + } + + /** + * 연계서비스를 등록한다. + * @param loginVO + * @param cntcService + * @param bindingResult + * @param model + * @return "egovframework/com/ssi/syi/iis/EgovCntcServiceRegist" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/iis/addCntcService.do") + public String insertCntcService(@ModelAttribute("cntcService") CntcService cntcService + , BindingResult bindingResult + , Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + // 연계기관 리스트박스 데이터 + CntcInsttVO searchCntcInsttVO; + searchCntcInsttVO = new CntcInsttVO(); + searchCntcInsttVO.setRecordCountPerPage(999999); + searchCntcInsttVO.setFirstIndex(0); + searchCntcInsttVO.setSearchCondition("CodeList"); + List cntcInsttList = cntcInsttService.selectCntcInsttList(searchCntcInsttVO); + model.addAttribute("cntcInsttList", cntcInsttList); + + // 연계시스템 리스트박스 데이터 + CntcSystemVO searchCntcSystemVO; + searchCntcSystemVO = new CntcSystemVO(); + searchCntcSystemVO.setRecordCountPerPage(999999); + searchCntcSystemVO.setFirstIndex(0); + searchCntcSystemVO.setSearchCondition("CodeList"); + if (cntcService.getInsttId().equals("")) { + if (cntcInsttList.size() > 0) { + EgovMap emp = (EgovMap)cntcInsttList.get(0); + cntcService.setInsttId(emp.get("insttId").toString()); + } + } + searchCntcSystemVO.setInsttId(cntcService.getInsttId()); + List cntcSystemList = cntcInsttService.selectCntcSystemList(searchCntcSystemVO); + model.addAttribute("cntcSystemList", cntcSystemList); + + // 연계메시지 리스트박스 데이터 + CntcMessageVO searchCntcMessageVO; + searchCntcMessageVO = new CntcMessageVO(); + searchCntcMessageVO.setRecordCountPerPage(999999); + searchCntcMessageVO.setFirstIndex(0); + searchCntcMessageVO.setSearchCondition("CodeList"); + List cntcMessageList = (List)cntcMessageService.selectCntcMessageList(searchCntcMessageVO); + model.addAttribute("cntcMessageList", cntcMessageList); + + return "egovframework/com/ssi/syi/iis/EgovCntcServiceRegist"; + } else if (sCmd.equals("Regist")) { + + beanValidator.validate(cntcService, bindingResult); + if (bindingResult.hasErrors()){ + // 연계기관 리스트박스 데이터 + CntcInsttVO searchCntcInsttVO; + searchCntcInsttVO = new CntcInsttVO(); + searchCntcInsttVO.setRecordCountPerPage(999999); + searchCntcInsttVO.setFirstIndex(0); + searchCntcInsttVO.setSearchCondition("CodeList"); + List cntcInsttList = cntcInsttService.selectCntcInsttList(searchCntcInsttVO); + model.addAttribute("cntcInsttList", cntcInsttList); + + // 연계시스템 리스트박스 데이터 + CntcSystemVO searchCntcSystemVO; + searchCntcSystemVO = new CntcSystemVO(); + searchCntcSystemVO.setRecordCountPerPage(999999); + searchCntcSystemVO.setFirstIndex(0); + searchCntcSystemVO.setSearchCondition("CodeList"); + if (cntcService.getInsttId().equals("")) { + if (cntcInsttList.size() > 0) { + EgovMap emp = (EgovMap)cntcInsttList.get(0); + cntcService.setInsttId(emp.get("insttId").toString()); + } + } + searchCntcSystemVO.setInsttId(cntcService.getInsttId()); + List cntcSystemList = cntcInsttService.selectCntcSystemList(searchCntcSystemVO); + model.addAttribute("cntcSystemList", cntcSystemList); + + // 연계메시지 리스트박스 데이터 + CntcMessageVO searchCntcMessageVO; + searchCntcMessageVO = new CntcMessageVO(); + searchCntcMessageVO.setRecordCountPerPage(999999); + searchCntcMessageVO.setFirstIndex(0); + searchCntcMessageVO.setSearchCondition("CodeList"); + List cntcMessageList = (List)cntcMessageService.selectCntcMessageList(searchCntcMessageVO); + model.addAttribute("cntcMessageList", cntcMessageList); + + return "egovframework/com/ssi/syi/iis/EgovCntcServiceRegist"; + } + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String uniqId = loginVO.getUniqId(); + cntcService.setFrstRegisterId(uniqId); + + // ID Generation + String sSvcId = idgenServiceSvc.getNextStringId(); + cntcService.setSvcId(sSvcId); + + cntcInsttService.insertCntcService(cntcService); + return "forward:/ssi/syi/iis/getCntcInsttDetail.do"; + } else { + return "forward:/ssi/syi/iis/getCntcInsttDetail.do"; + } + } + + /** + * 연계기관 상세내역을 조회한다. + * @param loginVO + * @param cntcInstt + * @param model + * @return "egovframework/com/ssi/syi/iis/EgovCcmCntcInsttDetail" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/iis/getCntcInsttDetail.do") + public String selectCntcInsttDetail (@ModelAttribute("cntcInstt") CntcInstt cntcInstt + , @ModelAttribute("cntcSystemVO") CntcSystemVO cntcSystemVO + , @ModelAttribute("cntcServiceVO") CntcServiceVO cntcServiceVO + , ModelMap model + ) throws Exception { + // 연계메시지 리스트박스 데이터 + CntcMessageVO searchCntcMessageVO; + searchCntcMessageVO = new CntcMessageVO(); + searchCntcMessageVO.setRecordCountPerPage(999999); + searchCntcMessageVO.setFirstIndex(0); + searchCntcMessageVO.setSearchCondition("CodeList"); + List cntcMessageList = (List)cntcMessageService.selectCntcMessageList(searchCntcMessageVO); + model.addAttribute("cntcMessageList", cntcMessageList); + + /* 연계기관 상세 */ + CntcInstt vo = cntcInsttService.selectCntcInsttDetail(cntcInstt); + model.addAttribute("result", vo); + + /* 연계시스템 리스트 */ + cntcSystemVO.setRecordCountPerPage(999999); + cntcSystemVO.setFirstIndex(0); + cntcSystemVO.setSearchCondition("CodeList"); + List cntcSystemList = cntcInsttService.selectCntcSystemList(cntcSystemVO); + model.addAttribute("cntcSystemList", cntcSystemList); + + /* 연계서비스 리스트 */ + cntcServiceVO.setRecordCountPerPage(999999); + cntcServiceVO.setFirstIndex(0); + cntcServiceVO.setSearchCondition("CodeList_InsttId"); + List cntcServiceList = cntcInsttService.selectCntcServiceList(cntcServiceVO); + model.addAttribute("cntcServiceList", cntcServiceList); + + return "egovframework/com/ssi/syi/iis/EgovCntcInsttDetail"; + } + + /** + * 연계기관 목록을 조회한다. + * @param loginVO + * @param searchVO + * @param model + * @return "egovframework/com/ssi/syi/iis/EgovCntcInsttList" + * @throws Exception + */ + @IncludedInfo(name="연계기관관리", listUrl="/ssi/syi/iis/getCntcInsttList.do", order = 1240,gid = 70) + @RequestMapping(value="/ssi/syi/iis/getCntcInsttList.do") + public String selectCntcInsttList (@ModelAttribute("searchVO") CntcInsttVO searchVO + , ModelMap model + ) throws Exception { + /** EgovPropertyService.sample */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List CmmnCodeList = cntcInsttService.selectCntcInsttList(searchVO); + model.addAttribute("resultList", CmmnCodeList); + + int totCnt = cntcInsttService.selectCntcInsttListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + return "egovframework/com/ssi/syi/iis/EgovCntcInsttList"; + } + + /** + * 연계기관을 수정한다. + * @param loginVO + * @param cntcInstt + * @param bindingResult + * @param commandMap + * @param model + * @return "egovframework/com/ssi/syi/iis/EgovCntcInsttUpdt" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/iis/updateCntcInstt.do") + public String updateCntcInstt (@ModelAttribute("cntcInstt") CntcInstt cntcInstt + , BindingResult bindingResult + , Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + CntcInstt vo = cntcInsttService.selectCntcInsttDetail(cntcInstt); + model.addAttribute("cntcInstt", vo); + + return "egovframework/com/ssi/syi/iis/EgovCntcInsttUpdt"; + } else if (sCmd.equals("Modify")) { + beanValidator.validate(cntcInstt, bindingResult); + if (bindingResult.hasErrors()){ + CntcInstt vo = cntcInsttService.selectCntcInsttDetail(cntcInstt); + model.addAttribute("cntcInstt", vo); + + return "egovframework/com/ssi/syi/iis/EgovCntcInsttUpdt"; + } + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String uniqId = loginVO.getUniqId(); + + cntcInstt.setLastUpdusrId(uniqId); + cntcInsttService.updateCntcInstt(cntcInstt); + return "forward:/ssi/syi/iis/getCntcInsttList.do"; + } else { + return "forward:/ssi/syi/iis/getCntcInsttList.do"; + } + } + + /** + * 연계시스템을 수정한다. + * @param loginVO + * @param cntcInstt + * @param bindingResult + * @param commandMap + * @param model + * @return "egovframework/com/ssi/syi/iis/EgovCntcSystemModify" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/iis/updateCntcSystem.do") + public String updateCntcSystem(@ModelAttribute("cntcSystem") CntcSystem cntcSystem + , BindingResult bindingResult + , Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + // 연계기관 리스트박스 데이터 + CntcInsttVO searchCntcInsttVO; + searchCntcInsttVO = new CntcInsttVO(); + searchCntcInsttVO.setRecordCountPerPage(999999); + searchCntcInsttVO.setFirstIndex(0); + searchCntcInsttVO.setSearchCondition("CodeList"); + List cntcInsttList = cntcInsttService.selectCntcInsttList(searchCntcInsttVO); + model.addAttribute("cntcInsttList", cntcInsttList); + + // 연계시스템 리스트박스 데이터 2011.09.14 + CntcSystemVO searchCntcSystemVO; + searchCntcSystemVO = new CntcSystemVO(); + searchCntcSystemVO.setRecordCountPerPage(999999); + searchCntcSystemVO.setFirstIndex(0); + searchCntcSystemVO.setSearchCondition("CodeList"); + if (cntcSystem.getInsttId().equals("")) { + if (cntcInsttList.size() > 0) { + EgovMap emp = (EgovMap)cntcInsttList.get(0); + cntcSystem.setInsttId(emp.get("insttId").toString()); + } + } + searchCntcSystemVO.setInsttId(cntcSystem.getInsttId()); + List cntcSystemList = cntcInsttService.selectCntcSystemList(searchCntcSystemVO); + model.addAttribute("cntcSystemList", cntcSystemList); + + // 연계메시지 리스트박스 데이터 2011.09.14 + CntcMessageVO searchCntcMessageVO; + searchCntcMessageVO = new CntcMessageVO(); + searchCntcMessageVO.setRecordCountPerPage(999999); + searchCntcMessageVO.setFirstIndex(0); + searchCntcMessageVO.setSearchCondition("CodeList"); + List cntcMessageList = (List)cntcMessageService.selectCntcMessageList(searchCntcMessageVO); + model.addAttribute("cntcMessageList", cntcMessageList); + + CntcSystem vo = cntcInsttService.selectCntcSystemDetail(cntcSystem); + model.addAttribute("cntcSystem", vo); + + return "egovframework/com/ssi/syi/iis/EgovCntcSystemUpdt"; + } else if (sCmd.equals("Modify")) { + beanValidator.validate(cntcSystem, bindingResult); + if (bindingResult.hasErrors()){ + // 연계기관 리스트박스 데이터 + CntcInsttVO searchCntcInsttVO; + searchCntcInsttVO = new CntcInsttVO(); + searchCntcInsttVO.setRecordCountPerPage(999999); + searchCntcInsttVO.setFirstIndex(0); + searchCntcInsttVO.setSearchCondition("CodeList"); + List cntcInsttList = cntcInsttService.selectCntcInsttList(searchCntcInsttVO); + model.addAttribute("cntcInsttList", cntcInsttList); + + // 연계시스템 리스트박스 데이터 2011.09.14 + CntcSystemVO searchCntcSystemVO; + searchCntcSystemVO = new CntcSystemVO(); + searchCntcSystemVO.setRecordCountPerPage(999999); + searchCntcSystemVO.setFirstIndex(0); + searchCntcSystemVO.setSearchCondition("CodeList"); + if (cntcSystem.getInsttId().equals("")) { + if (cntcInsttList.size() > 0) { + EgovMap emp = (EgovMap)cntcInsttList.get(0); + cntcSystem.setInsttId(emp.get("insttId").toString()); + } + } + searchCntcSystemVO.setInsttId(cntcSystem.getInsttId()); + List cntcSystemList = cntcInsttService.selectCntcSystemList(searchCntcSystemVO); + model.addAttribute("cntcSystemList", cntcSystemList); + + // 연계메시지 리스트박스 데이터 2011.09.14 + CntcMessageVO searchCntcMessageVO; + searchCntcMessageVO = new CntcMessageVO(); + searchCntcMessageVO.setRecordCountPerPage(999999); + searchCntcMessageVO.setFirstIndex(0); + searchCntcMessageVO.setSearchCondition("CodeList"); + List cntcMessageList = (List)cntcMessageService.selectCntcMessageList(searchCntcMessageVO); + model.addAttribute("cntcMessageList", cntcMessageList); + + CntcSystem vo = cntcInsttService.selectCntcSystemDetail(cntcSystem); + model.addAttribute("cntcSystem", vo); + + return "egovframework/com/ssi/syi/iis/EgovCntcSystemUpdt"; + } + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String uniqId = loginVO.getUniqId(); + + cntcSystem.setLastUpdusrId(uniqId); + cntcInsttService.updateCntcSystem(cntcSystem); + return "forward:/ssi/syi/iis/getCntcInsttList.do"; + } else { + return "forward:/ssi/syi/iis/getCntcInsttList.do"; + } + } + + /** + * 연계서비스를 수정한다. + * @param loginVO + * @param cntcService + * @param bindingResult + * @param commandMap + * @param model + * @return "egovframework/com/ssi/syi/iis/EgovCntcServiceModify" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/iis/updateCntcService.do") + public String updateCntcService(@ModelAttribute("cntcService") CntcService cntcService + , BindingResult bindingResult + , Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + // 연계기관 리스트박스 데이터 + CntcInsttVO searchCntcInsttVO; + searchCntcInsttVO = new CntcInsttVO(); + searchCntcInsttVO.setRecordCountPerPage(999999); + searchCntcInsttVO.setFirstIndex(0); + searchCntcInsttVO.setSearchCondition("CodeList"); + List cntcInsttList = cntcInsttService.selectCntcInsttList(searchCntcInsttVO); + model.addAttribute("cntcInsttList", cntcInsttList); + + // 연계시스템 리스트박스 데이터 + CntcSystemVO searchCntcSystemVO; + searchCntcSystemVO = new CntcSystemVO(); + searchCntcSystemVO.setRecordCountPerPage(999999); + searchCntcSystemVO.setFirstIndex(0); + searchCntcSystemVO.setSearchCondition("CodeList"); + if (cntcService.getInsttId().equals("")) { + if (cntcInsttList.size() > 0) { + EgovMap emp = (EgovMap)cntcInsttList.get(0); + cntcService.setInsttId(emp.get("insttId").toString()); + } + } + searchCntcSystemVO.setInsttId(cntcService.getInsttId()); + List cntcSystemList = cntcInsttService.selectCntcSystemList(searchCntcSystemVO); + model.addAttribute("cntcSystemList", cntcSystemList); + + // 연계메시지 리스트박스 데이터 + CntcMessageVO searchCntcMessageVO; + searchCntcMessageVO = new CntcMessageVO(); + searchCntcMessageVO.setRecordCountPerPage(999999); + searchCntcMessageVO.setFirstIndex(0); + searchCntcMessageVO.setSearchCondition("CodeList"); + List cntcMessageList = (List)cntcMessageService.selectCntcMessageList(searchCntcMessageVO); + model.addAttribute("cntcMessageList", cntcMessageList); + + CntcService vo = cntcInsttService.selectCntcServiceDetail(cntcService); + model.addAttribute("cntcService", vo); + + return "egovframework/com/ssi/syi/iis/EgovCntcServiceUpdt"; + } else if (sCmd.equals("Modify")) { + beanValidator.validate(cntcService, bindingResult); + if (bindingResult.hasErrors()){ + // 연계기관 리스트박스 데이터 + CntcInsttVO searchCntcInsttVO; + searchCntcInsttVO = new CntcInsttVO(); + searchCntcInsttVO.setRecordCountPerPage(999999); + searchCntcInsttVO.setFirstIndex(0); + searchCntcInsttVO.setSearchCondition("CodeList"); + List cntcInsttList = cntcInsttService.selectCntcInsttList(searchCntcInsttVO); + model.addAttribute("cntcInsttList", cntcInsttList); + + // 연계시스템 리스트박스 데이터 + CntcSystemVO searchCntcSystemVO; + searchCntcSystemVO = new CntcSystemVO(); + searchCntcSystemVO.setRecordCountPerPage(999999); + searchCntcSystemVO.setFirstIndex(0); + searchCntcSystemVO.setSearchCondition("CodeList"); + if (cntcService.getInsttId().equals("")) { + if (cntcInsttList.size() > 0) { + EgovMap emp = (EgovMap)cntcInsttList.get(0); + cntcService.setInsttId(emp.get("insttId").toString()); + } + } + searchCntcSystemVO.setInsttId(cntcService.getInsttId()); + List cntcSystemList = cntcInsttService.selectCntcSystemList(searchCntcSystemVO); + model.addAttribute("cntcSystemList", cntcSystemList); + + // 연계메시지 리스트박스 데이터 + CntcMessageVO searchCntcMessageVO; + searchCntcMessageVO = new CntcMessageVO(); + searchCntcMessageVO.setRecordCountPerPage(999999); + searchCntcMessageVO.setFirstIndex(0); + searchCntcMessageVO.setSearchCondition("CodeList"); + List cntcMessageList = (List)cntcMessageService.selectCntcMessageList(searchCntcMessageVO); + model.addAttribute("cntcMessageList", cntcMessageList); + + CntcService vo = cntcInsttService.selectCntcServiceDetail(cntcService); + model.addAttribute("cntcService", vo); + + return "egovframework/com/ssi/syi/iis/EgovCntcServiceUpdt"; + } + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String uniqId = loginVO.getUniqId(); + + cntcService.setLastUpdusrId(uniqId); + cntcInsttService.updateCntcService(cntcService); + return "forward:/ssi/syi/iis/getCntcInsttList.do"; + } else { + return "forward:/ssi/syi/iis/getCntcInsttList.do"; + } + } + /** + * Map 내용을 확인한다. + * @param commandMap + * @return + */ + public String printParameterMap(Map commandMap){ + String ret = ""; + for(Object key:commandMap.keySet()){ + Object value = commandMap.get(key); + + ret += "key:" + key.toString() + " value:" + value.toString(); + } + return ret; + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/ssi/syi/ims/service/CntcMessage.java b/src/main/java/egovframework/com/ssi/syi/ims/service/CntcMessage.java new file mode 100644 index 0000000..79489b3 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/ims/service/CntcMessage.java @@ -0,0 +1,130 @@ +package egovframework.com.ssi.syi.ims.service; + +import java.io.Serializable; + +/** + * 연계메시지 모델 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class CntcMessage implements Serializable { + + /* + * 연계메시지ID + */ + private String cntcMessageId = ""; + + /* + * 연계메시지명 + */ + private String cntcMessageNm = ""; + + /* + * 상위연계메시지ID + */ + private String upperCntcMessageId = ""; + + /* + * 최초등록자ID + */ + private String frstRegisterId = ""; + + /* + * 최종수정자ID + */ + private String lastUpdusrId = ""; + + /** + * cntcMessageId attribute 를 리턴한다. + * @return String + */ + public String getCntcMessageId() { + return cntcMessageId; + } + + /** + * cntcMessageId attribute 값을 설정한다. + * @param cntcMessageId String + */ + public void setCntcMessageId(String cntcMessageId) { + this.cntcMessageId = cntcMessageId; + } + + /** + * cntcMessageNm attribute 를 리턴한다. + * @return String + */ + public String getCntcMessageNm() { + return cntcMessageNm; + } + + /** + * cntcMessageNm attribute 값을 설정한다. + * @param cntcMessageNm String + */ + public void setCntcMessageNm(String cntcMessageNm) { + this.cntcMessageNm = cntcMessageNm; + } + + /** + * upperCntcMessageId attribute 를 리턴한다. + * @return String + */ + public String getUpperCntcMessageId() { + return upperCntcMessageId; + } + + /** + * upperCntcMessageId attribute 값을 설정한다. + * @param upperCntcMessageId String + */ + public void setUpperCntcMessageId(String upperCntcMessageId) { + this.upperCntcMessageId = upperCntcMessageId; + } + + /** + * frstRegisterId attribute 를 리턴한다. + * @return String + */ + public String getFrstRegisterId() { + return frstRegisterId; + } + + /** + * frstRegisterId attribute 값을 설정한다. + * @param frstRegisterId String + */ + public void setFrstRegisterId(String frstRegisterId) { + this.frstRegisterId = frstRegisterId; + } + + /** + * lastUpdusrId attribute 를 리턴한다. + * @return String + */ + public String getLastUpdusrId() { + return lastUpdusrId; + } + + /** + * lastUpdusrId attribute 값을 설정한다. + * @param lastUpdusrId String + */ + public void setLastUpdusrId(String lastUpdusrId) { + this.lastUpdusrId = lastUpdusrId; + } + + +} diff --git a/src/main/java/egovframework/com/ssi/syi/ims/service/CntcMessageItem.java b/src/main/java/egovframework/com/ssi/syi/ims/service/CntcMessageItem.java new file mode 100644 index 0000000..d2ca5cc --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/ims/service/CntcMessageItem.java @@ -0,0 +1,170 @@ +package egovframework.com.ssi.syi.ims.service; + +import java.io.Serializable; + +/** + * 연계메시지항목 모델 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class CntcMessageItem implements Serializable { + /* + * 연계메시지ID + */ + private String cntcMessageId = ""; + + /* + * 항목ID + */ + private String itemId = ""; + + /* + * 항목명 + */ + private String itemNm = ""; + + /* + * 항목타입 + */ + private String itemType = ""; + + /* + * 항목길이 + */ + private int itemLt = 0 ; + + /* + * 최초등록자ID + */ + private String frstRegisterId = ""; + + /* + * 최종수정자ID + */ + private String lastUpdusrId = ""; + + /** + * cntcMessageId attribute 를 리턴한다. + * @return String + */ + public String getCntcMessageId() { + return cntcMessageId; + } + + /** + * cntcMessageId attribute 값을 설정한다. + * @param cntcMessageId String + */ + public void setCntcMessageId(String cntcMessageId) { + this.cntcMessageId = cntcMessageId; + } + + /** + * itemId attribute 를 리턴한다. + * @return String + */ + public String getItemId() { + return itemId; + } + + /** + * itemId attribute 값을 설정한다. + * @param itemId String + */ + public void setItemId(String itemId) { + this.itemId = itemId; + } + + /** + * itemNm attribute 를 리턴한다. + * @return String + */ + public String getItemNm() { + return itemNm; + } + + /** + * itemNm attribute 값을 설정한다. + * @param itemNm String + */ + public void setItemNm(String itemNm) { + this.itemNm = itemNm; + } + + /** + * itemType attribute 를 리턴한다. + * @return String + */ + public String getItemType() { + return itemType; + } + + /** + * itemType attribute 값을 설정한다. + * @param itemType String + */ + public void setItemType(String itemType) { + this.itemType = itemType; + } + + /** + * itemLt attribute 를 리턴한다. + * @return int + */ + public int getItemLt() { + return itemLt; + } + + /** + * itemLt attribute 값을 설정한다. + * @param itemLt int + */ + public void setItemLt(int itemLt) { + this.itemLt = itemLt; + } + + /** + * frstRegisterId attribute 를 리턴한다. + * @return String + */ + public String getFrstRegisterId() { + return frstRegisterId; + } + + /** + * frstRegisterId attribute 값을 설정한다. + * @param frstRegisterId String + */ + public void setFrstRegisterId(String frstRegisterId) { + this.frstRegisterId = frstRegisterId; + } + + /** + * lastUpdusrId attribute 를 리턴한다. + * @return String + */ + public String getLastUpdusrId() { + return lastUpdusrId; + } + + /** + * lastUpdusrId attribute 값을 설정한다. + * @param lastUpdusrId String + */ + public void setLastUpdusrId(String lastUpdusrId) { + this.lastUpdusrId = lastUpdusrId; + } + +} diff --git a/src/main/java/egovframework/com/ssi/syi/ims/service/CntcMessageItemVO.java b/src/main/java/egovframework/com/ssi/syi/ims/service/CntcMessageItemVO.java new file mode 100644 index 0000000..267d1c2 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/ims/service/CntcMessageItemVO.java @@ -0,0 +1,197 @@ +package egovframework.com.ssi.syi.ims.service; + +import java.io.Serializable; + +/** + * + * 연계메시지항목 VO 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class CntcMessageItemVO extends CntcMessageItem implements Serializable { + + /** 검색조건 */ + private String searchCondition = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + /** + * searchCondition attribute 를 리턴한다. + * @return String + */ + public String getSearchCondition() { + return searchCondition; + } + + /** + * searchCondition attribute 값을 설정한다. + * @param searchCondition String + */ + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + /** + * searchKeyword attribute 를 리턴한다. + * @return String + */ + public String getSearchKeyword() { + return searchKeyword; + } + + /** + * searchKeyword attribute 값을 설정한다. + * @param searchKeyword String + */ + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + /** + * searchUseYn attribute 를 리턴한다. + * @return String + */ + public String getSearchUseYn() { + return searchUseYn; + } + + /** + * searchUseYn attribute 값을 설정한다. + * @param searchUseYn String + */ + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + /** + * pageIndex attribute 를 리턴한다. + * @return int + */ + public int getPageIndex() { + return pageIndex; + } + + /** + * pageIndex attribute 값을 설정한다. + * @param pageIndex int + */ + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * pageUnit attribute 를 리턴한다. + * @return int + */ + public int getPageUnit() { + return pageUnit; + } + + /** + * pageUnit attribute 값을 설정한다. + * @param pageUnit int + */ + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * pageSize attribute 를 리턴한다. + * @return int + */ + public int getPageSize() { + return pageSize; + } + + /** + * pageSize attribute 값을 설정한다. + * @param pageSize int + */ + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + /** + * firstIndex attribute 를 리턴한다. + * @return int + */ + public int getFirstIndex() { + return firstIndex; + } + + /** + * firstIndex attribute 값을 설정한다. + * @param firstIndex int + */ + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * lastIndex attribute 를 리턴한다. + * @return int + */ + public int getLastIndex() { + return lastIndex; + } + + /** + * lastIndex attribute 값을 설정한다. + * @param lastIndex int + */ + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * recordCountPerPage attribute 를 리턴한다. + * @return int + */ + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * recordCountPerPage attribute 값을 설정한다. + * @param recordCountPerPage int + */ + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + +} diff --git a/src/main/java/egovframework/com/ssi/syi/ims/service/CntcMessageVO.java b/src/main/java/egovframework/com/ssi/syi/ims/service/CntcMessageVO.java new file mode 100644 index 0000000..e197cd7 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/ims/service/CntcMessageVO.java @@ -0,0 +1,197 @@ +package egovframework.com.ssi.syi.ims.service; + +import java.io.Serializable; + +/** + * + * 연계메시지 VO 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class CntcMessageVO extends CntcMessage implements Serializable { + + /** 검색조건 */ + private String searchCondition = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + /** + * searchCondition attribute 를 리턴한다. + * @return String + */ + public String getSearchCondition() { + return searchCondition; + } + + /** + * searchCondition attribute 값을 설정한다. + * @param searchCondition String + */ + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + /** + * searchKeyword attribute 를 리턴한다. + * @return String + */ + public String getSearchKeyword() { + return searchKeyword; + } + + /** + * searchKeyword attribute 값을 설정한다. + * @param searchKeyword String + */ + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + /** + * searchUseYn attribute 를 리턴한다. + * @return String + */ + public String getSearchUseYn() { + return searchUseYn; + } + + /** + * searchUseYn attribute 값을 설정한다. + * @param searchUseYn String + */ + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + /** + * pageIndex attribute 를 리턴한다. + * @return int + */ + public int getPageIndex() { + return pageIndex; + } + + /** + * pageIndex attribute 값을 설정한다. + * @param pageIndex int + */ + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * pageUnit attribute 를 리턴한다. + * @return int + */ + public int getPageUnit() { + return pageUnit; + } + + /** + * pageUnit attribute 값을 설정한다. + * @param pageUnit int + */ + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * pageSize attribute 를 리턴한다. + * @return int + */ + public int getPageSize() { + return pageSize; + } + + /** + * pageSize attribute 값을 설정한다. + * @param pageSize int + */ + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + /** + * firstIndex attribute 를 리턴한다. + * @return int + */ + public int getFirstIndex() { + return firstIndex; + } + + /** + * firstIndex attribute 값을 설정한다. + * @param firstIndex int + */ + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * lastIndex attribute 를 리턴한다. + * @return int + */ + public int getLastIndex() { + return lastIndex; + } + + /** + * lastIndex attribute 값을 설정한다. + * @param lastIndex int + */ + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * recordCountPerPage attribute 를 리턴한다. + * @return int + */ + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * recordCountPerPage attribute 값을 설정한다. + * @param recordCountPerPage int + */ + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + +} diff --git a/src/main/java/egovframework/com/ssi/syi/ims/service/EgovCntcMessageService.java b/src/main/java/egovframework/com/ssi/syi/ims/service/EgovCntcMessageService.java new file mode 100644 index 0000000..ca6eace --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/ims/service/EgovCntcMessageService.java @@ -0,0 +1,112 @@ +package egovframework.com.ssi.syi.ims.service; + +import java.util.List; + +/** + * + * 연계메시지에 관한 서비스 인터페이스 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public interface EgovCntcMessageService { + + /** + * 연계메시지를 삭제한다. + * @param cntcMessage + * @throws Exception + */ + void deleteCntcMessage(CntcMessage cntcMessage) throws Exception; + + /** + * 연계메시지 항목을 삭제한다. + * @param cntcMessage + * @throws Exception + */ + void deleteCntcMessageItem(CntcMessageItem cntcMessageItem) throws Exception; + + /** + * 연계메시지를 등록한다. + * @param cntcMessage + * @throws Exception + */ + void insertCntcMessage(CntcMessage cntcMessage) throws Exception; + + /** + * 연계메시지 항목을 등록한다. + * @param cntcMessage + * @throws Exception + */ + void insertCntcMessageItem(CntcMessageItem cntcMessageItem) throws Exception; + + /** + * 연계메시지 상세항목을 조회한다. + * @param cntcMessage + * @return CntcMessage(연계메시지) + * @throws Exception + */ + CntcMessage selectCntcMessageDetail(CntcMessage cntcMessage) throws Exception; + + /** + * 연계메시지항목 상세항목을 조회한다. + * @param cntcMessage + * @return CntcMessage(연계메시지) + * @throws Exception + */ + CntcMessageItem selectCntcMessageItemDetail(CntcMessageItem cntcMessageItem) throws Exception; + + /** + * 연계메시지 목록을 조회한다. + * @param searchVO + * @return List(연계메시지 목록) + * @throws Exception + */ + List selectCntcMessageList(CntcMessageVO searchVO) throws Exception; + + /** + * 연계메시지 총 갯수를 조회한다. + * @param searchVO + * @return int(연계메시지 총 갯수) + */ + int selectCntcMessageListTotCnt(CntcMessageVO searchVO) throws Exception; + + /** + * 연계메시지항목 목록을 조회한다. + * @param searchVO + * @return List(연계메시지 목록) + * @throws Exception + */ + List selectCntcMessageItemList(CntcMessageItemVO searchVO) throws Exception; + + /** + * 연계메시지항목 총 갯수를 조회한다. + * @param searchVO + * @return int(연계메시지 총 갯수) + */ + int selectCntcMessageItemListTotCnt(CntcMessageItemVO searchVO) throws Exception; + + /** + * 연계메시지를 수정한다. + * @param cntcMessage + * @throws Exception + */ + void updateCntcMessage(CntcMessage cntcMessage) throws Exception; + + /** + * 연계메시지 항목을 수정한다. + * @param cntcMessage + * @throws Exception + */ + void updateCntcMessageItem(CntcMessageItem cntcMessageItem) throws Exception; +} diff --git a/src/main/java/egovframework/com/ssi/syi/ims/service/impl/CntcMessageDAO.java b/src/main/java/egovframework/com/ssi/syi/ims/service/impl/CntcMessageDAO.java new file mode 100644 index 0000000..f4eb52e --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/ims/service/impl/CntcMessageDAO.java @@ -0,0 +1,145 @@ +package egovframework.com.ssi.syi.ims.service.impl; + +import java.util.List; + +import org.springframework.stereotype.Repository; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.ssi.syi.ims.service.CntcMessage; +import egovframework.com.ssi.syi.ims.service.CntcMessageItem; +import egovframework.com.ssi.syi.ims.service.CntcMessageItemVO; +import egovframework.com.ssi.syi.ims.service.CntcMessageVO; + +/** + * + * 연계메시지에 대한 데이터 접근 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +@Repository("CntcMessageDAO") +public class CntcMessageDAO extends EgovComAbstractDAO { + + + /** + * 연계메시지를 삭제한다. + * @param cntcMessage + * @throws Exception + */ + public void deleteCntcMessage(CntcMessage cntcMessage) throws Exception { + delete("CntcMessageDAO.deleteCntcMessage", cntcMessage); + } + + /** + * 연계메시지 항목을 삭제한다. + * @param cntcMessage + * @throws Exception + */ + public void deleteCntcMessageItem(CntcMessageItem cntcMessageItem) throws Exception { + delete("CntcMessageDAO.deleteCntcMessageItem", cntcMessageItem); + } + + /** + * 연계메시지를 등록한다. + * @param cntcMessage + * @throws Exception + */ + public void insertCntcMessage(CntcMessage cntcMessage) throws Exception { + insert("CntcMessageDAO.insertCntcMessage", cntcMessage); + } + + /** + * 연계메시지 항목을 등록한다. + * @param cntcMessage + * @throws Exception + */ + public void insertCntcMessageItem(CntcMessageItem cntcMessageItem) throws Exception { + insert("CntcMessageDAO.insertCntcMessageItem", cntcMessageItem); + } + + /** + * 연계메시지 상세항목을 조회한다. + * @param cntcMessage + * @return CntcMessage(연계메시지) + */ + public CntcMessage selectCntcMessageDetail(CntcMessage cntcMessage) throws Exception { + return (CntcMessage) selectByPk("CntcMessageDAO.selectCntcMessageDetail", cntcMessage); + } + + /** + * 연계메시지항목 상세항목을 조회한다. + * @param cntcMessage + * @return CntcMessage(연계메시지) + */ + public CntcMessageItem selectCntcMessageItemDetail(CntcMessageItem cntcMessageItem) throws Exception { + return (CntcMessageItem) selectByPk("CntcMessageDAO.selectCntcMessageItemDetail", cntcMessageItem); + } + + /** + * 연계메시지 목록을 조회한다. + * @param searchVO + * @return List(연계메시지 목록) + * @throws Exception + */ + public List selectCntcMessageList(CntcMessageVO searchVO) throws Exception { + return list("CntcMessageDAO.selectCntcMessageList", searchVO); + } + + /** + * 연계메시지 총 갯수를 조회한다. + * @param searchVO + * @return int(연계메시지 총 갯수) + */ + public int selectCntcMessageListTotCnt(CntcMessageVO searchVO) throws Exception { + return (Integer)getSqlMapClientTemplate().queryForObject("CntcMessageDAO.selectCntcMessageListTotCnt", searchVO); + } + + /** + * 연계메시지항목 목록을 조회한다. + * @param searchVO + * @return List(연계메시지 목록) + * @throws Exception + */ + public List selectCntcMessageItemList(CntcMessageItemVO searchVO) throws Exception { + return list("CntcMessageDAO.selectCntcMessageItemList", searchVO); + } + + /** + * 연계메시지항목 총 갯수를 조회한다. + * @param searchVO + * @return int(연계메시지 총 갯수) + */ + public int selectCntcMessageItemListTotCnt(CntcMessageItemVO searchVO) throws Exception { + return (Integer)getSqlMapClientTemplate().queryForObject("CntcMessageDAO.selectCntcMessageItemListTotCnt", searchVO); + } + + /** + * 연계메시지를 수정한다. + * @param cntcMessage + * @throws Exception + */ + public void updateCntcMessage(CntcMessage cntcMessage) throws Exception { + update("CntcMessageDAO.updateCntcMessage", cntcMessage); + } + + /** + * 연계메시지 항목을 수정한다. + * @param cntcMessage + * @throws Exception + */ + public void updateCntcMessageItem(CntcMessageItem cntcMessageItem) throws Exception { + update("CntcMessageDAO.updateCntcMessageItem", cntcMessageItem); + } + +} diff --git a/src/main/java/egovframework/com/ssi/syi/ims/service/impl/EgovCntcMessageServiceImpl.java b/src/main/java/egovframework/com/ssi/syi/ims/service/impl/EgovCntcMessageServiceImpl.java new file mode 100644 index 0000000..f39ab7b --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/ims/service/impl/EgovCntcMessageServiceImpl.java @@ -0,0 +1,128 @@ +package egovframework.com.ssi.syi.ims.service.impl; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import egovframework.com.ssi.syi.ims.service.CntcMessage; +import egovframework.com.ssi.syi.ims.service.CntcMessageItem; +import egovframework.com.ssi.syi.ims.service.CntcMessageItemVO; +import egovframework.com.ssi.syi.ims.service.CntcMessageVO; +import egovframework.com.ssi.syi.ims.service.EgovCntcMessageService; +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + + + +/** + * + * 연계메시지에 대한 서비스 구현클래스를 정의한다. + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +@Service("CntcMessageService") +public class EgovCntcMessageServiceImpl extends AbstractServiceImpl implements EgovCntcMessageService { + + @Resource(name="CntcMessageDAO") + private CntcMessageDAO cntcMessageDAO; + + /** + * 연계메시지를 삭제한다. + */ + public void deleteCntcMessage(CntcMessage cntcMessage) throws Exception { + cntcMessageDAO.deleteCntcMessage(cntcMessage); + } + + /** + * 연계메시지 항목을 삭제한다. + */ + public void deleteCntcMessageItem(CntcMessageItem cntcMessageItem) throws Exception { + cntcMessageDAO.deleteCntcMessageItem(cntcMessageItem); + } + + /** + * 연계메시지를 등록한다. + */ + public void insertCntcMessage(CntcMessage cntcMessage) throws Exception { + cntcMessageDAO.insertCntcMessage(cntcMessage); + } + + /** + * 연계메시지 항목을 등록한다. + */ + public void insertCntcMessageItem(CntcMessageItem cntcMessageItem) throws Exception { + cntcMessageDAO.insertCntcMessageItem(cntcMessageItem); + } + + /** + * 연계메시지 상세항목을 조회한다. + */ + public CntcMessage selectCntcMessageDetail(CntcMessage cntcMessage) throws Exception { + CntcMessage ret = (CntcMessage)cntcMessageDAO.selectCntcMessageDetail(cntcMessage); + return ret; + } + + /** + * 연계메시지항목 상세항목을 조회한다. + */ + public CntcMessageItem selectCntcMessageItemDetail(CntcMessageItem cntcMessageItem) throws Exception { + CntcMessageItem ret = (CntcMessageItem)cntcMessageDAO.selectCntcMessageItemDetail(cntcMessageItem); + return ret; + } + + /** + * 연계메시지 목록을 조회한다. + */ + public List selectCntcMessageList(CntcMessageVO searchVO) throws Exception { + return cntcMessageDAO.selectCntcMessageList(searchVO); + } + + /** + * 연계메시지 총 갯수를 조회한다. + */ + public int selectCntcMessageListTotCnt(CntcMessageVO searchVO) throws Exception { + return cntcMessageDAO.selectCntcMessageListTotCnt(searchVO); + } + + /** + * 연계메시지항목 목록을 조회한다. + */ + public List selectCntcMessageItemList(CntcMessageItemVO searchVO) throws Exception { + return cntcMessageDAO.selectCntcMessageItemList(searchVO); + } + + /** + * 연계메시지항목 총 갯수를 조회한다. + */ + public int selectCntcMessageItemListTotCnt(CntcMessageItemVO searchVO) throws Exception { + return cntcMessageDAO.selectCntcMessageItemListTotCnt(searchVO); + } + + /** + * 연계메시지를 수정한다. + */ + public void updateCntcMessage(CntcMessage cntcMessage) throws Exception { + cntcMessageDAO.updateCntcMessage(cntcMessage); + } + + /** + * 연계메시지 항목을 수정한다. + */ + public void updateCntcMessageItem(CntcMessageItem cntcMessageItem) throws Exception { + cntcMessageDAO.updateCntcMessageItem(cntcMessageItem); + } + +} diff --git a/src/main/java/egovframework/com/ssi/syi/ims/web/EgovCntcMessageController.java b/src/main/java/egovframework/com/ssi/syi/ims/web/EgovCntcMessageController.java new file mode 100644 index 0000000..dae41f3 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/ims/web/EgovCntcMessageController.java @@ -0,0 +1,425 @@ +package egovframework.com.ssi.syi.ims.web; + +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springmodules.validation.commons.DefaultBeanValidator; + +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.cmm.util.EgovUserDetailsHelper; +import egovframework.com.ssi.syi.ims.service.CntcMessage; +import egovframework.com.ssi.syi.ims.service.CntcMessageItem; +import egovframework.com.ssi.syi.ims.service.CntcMessageItemVO; +import egovframework.com.ssi.syi.ims.service.CntcMessageVO; +import egovframework.com.ssi.syi.ims.service.EgovCntcMessageService; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +/** + * + * 연계메시지 관리에 관한 요청을 받아 서비스 클래스로 요청을 전달하고 서비스클래스에서 처리한 결과를 웹 화면으로 전달을 위한 Controller를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.8.26	정진오			IncludedInfo annotation 추가
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ + +@Controller +public class EgovCntcMessageController { + + + + + @Resource(name = "CntcMessageService") + private EgovCntcMessageService cntcMessageService; + + /** EgovIdGnrService */ + @Resource(name="egovCntcMessageIdGnrService") + private EgovIdGnrService idgenService; + + /** EgovIdGnrService */ + @Resource(name="egovCntcMessageItemIdGnrService") + private EgovIdGnrService idgenServiceItem; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + @Autowired + private DefaultBeanValidator beanValidator; + + /** + * 연계메시지를 삭제한다. + * @param loginVO + * @param cntcMessage + * @param model + * @return "forward:/ssi/syi/ims/EgovCcmAdministCodeList.do" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/ims/removeCntcMessage.do") + public String deleteCntcMessage (CntcMessage cntcMessage + , ModelMap model + ) throws Exception { + cntcMessageService.deleteCntcMessage(cntcMessage); + return "forward:/ssi/syi/ims/getCntcMessageList.do"; + } + + /** + * 연계메시지항목을 삭제한다. + * @param loginVO + * @param cntcMessageItem + * @param model + * @return "forward:/ssi/syi/ims/EgovCcmAdministCodeList.do" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/ims/removeCntcMessageItem.do") + public String deleteCntcMessageItem (CntcMessageItem cntcMessageItem + , ModelMap model + ) throws Exception { + cntcMessageService.deleteCntcMessageItem(cntcMessageItem); + return "forward:/ssi/syi/ims/getCntcMessageList.do"; + } + + /** + * 연계메시지를 등록한다. + * @param loginVO + * @param cntcMessage + * @param bindingResult + * @param model + * @return "egovframework/com/ssi/syi/ims/EgovCcmCntcMessageRegist" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/ims/addCntcMessage.do") + public String insertCntcMessage (@ModelAttribute("cntcMessage") CntcMessage cntcMessage + , BindingResult bindingResult + , Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + // 연계메시지 리스트박스 데이터 + CntcMessageVO searchCntcMessageVO; + searchCntcMessageVO = new CntcMessageVO(); + searchCntcMessageVO.setRecordCountPerPage(999999); + searchCntcMessageVO.setFirstIndex(0); + searchCntcMessageVO.setSearchCondition("CodeList"); + List cntcMessageList = (List)cntcMessageService.selectCntcMessageList(searchCntcMessageVO); + model.addAttribute("cntcMessageList", cntcMessageList); + + return "egovframework/com/ssi/syi/ims/EgovCntcMessageRegist"; + } else if (sCmd.equals("Regist")) { + + beanValidator.validate(cntcMessage, bindingResult); + if (bindingResult.hasErrors()){ + // 연계메시지 리스트박스 데이터 + CntcMessageVO searchCntcMessageVO; + searchCntcMessageVO = new CntcMessageVO(); + searchCntcMessageVO.setRecordCountPerPage(999999); + searchCntcMessageVO.setFirstIndex(0); + searchCntcMessageVO.setSearchCondition("CodeList"); + List cntcMessageList = (List)cntcMessageService.selectCntcMessageList(searchCntcMessageVO); + model.addAttribute("cntcMessageList", cntcMessageList); + + return "egovframework/com/ssi/syi/ims/EgovCntcMessageRegist"; + } + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String uniqId = loginVO.getUniqId(); + cntcMessage.setFrstRegisterId(uniqId); + + // ID Generation + String sCntcMessageId = idgenService.getNextStringId(); + cntcMessage.setCntcMessageId(sCntcMessageId); + + cntcMessageService.insertCntcMessage(cntcMessage); + return "forward:/ssi/syi/ims/getCntcMessageList.do"; + } else { + return "forward:/ssi/syi/ims/getCntcMessageList.do"; + } + } + + /** + * 연계메시지 항목을 등록한다. + * @param loginVO + * @param cntcMessageItem + * @param bindingResult + * @param model + * @return "egovframework/com/ssi/syi/ims/EgovCcmCntcMessageRegist" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/ims/addCntcMessageItem.do") + public String insertCntcMessageItem (@ModelAttribute("cntcMessageItem") CntcMessageItem cntcMessageItem + , BindingResult bindingResult + , Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + + // 연계메시지 리스트박스 데이터 + CntcMessageVO searchCntcMessageVO; + searchCntcMessageVO = new CntcMessageVO(); + searchCntcMessageVO.setRecordCountPerPage(999999); + searchCntcMessageVO.setFirstIndex(0); + searchCntcMessageVO.setSearchCondition("CodeList"); + List cntcMessageList = (List)cntcMessageService.selectCntcMessageList(searchCntcMessageVO); + model.addAttribute("cntcMessageList", cntcMessageList); + + return "egovframework/com/ssi/syi/ims/EgovCntcMessageItemRegist"; + } else if (sCmd.equals("Regist")) { + + beanValidator.validate(cntcMessageItem, bindingResult); + if (bindingResult.hasErrors()){ + // 연계메시지 리스트박스 데이터 + CntcMessageVO searchCntcMessageVO; + searchCntcMessageVO = new CntcMessageVO(); + searchCntcMessageVO.setRecordCountPerPage(999999); + searchCntcMessageVO.setFirstIndex(0); + searchCntcMessageVO.setSearchCondition("CodeList"); + List cntcMessageList = (List)cntcMessageService.selectCntcMessageList(searchCntcMessageVO); + model.addAttribute("cntcMessageList", cntcMessageList); + + return "egovframework/com/ssi/syi/ims/EgovCntcMessageItemRegist"; + } + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String uniqId = loginVO.getUniqId(); + cntcMessageItem.setFrstRegisterId(uniqId); + + // ID Generation + String sItemId = idgenServiceItem.getNextStringId(); + cntcMessageItem.setItemId(sItemId); + + cntcMessageService.insertCntcMessageItem(cntcMessageItem); + return "forward:/ssi/syi/ims/getCntcMessageDetail.do"; + } else { + return "forward:/ssi/syi/ims/getCntcMessageDetail.do"; + } + } + + /** + * 연계메시지 상세내역을 조회한다. + * @param loginVO + * @param cntcMessage + * @param model + * @return "egovframework/com/ssi/syi/ims/EgovCcmCntcMessageDetail" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/ims/getCntcMessageDetail.do") + public String selectCntcMessageDetail (@ModelAttribute("cntcMessage") CntcMessage cntcMessage + , @ModelAttribute("cntcMessageItemVO") CntcMessageItemVO cntcMessageItemVO + , ModelMap model + ) throws Exception { + /* 연계메시지 상세 */ + CntcMessage vo = cntcMessageService.selectCntcMessageDetail(cntcMessage); + model.addAttribute("result", vo); + + /* 연계메시지항목 리스트 */ + cntcMessageItemVO.setRecordCountPerPage(9999999); + cntcMessageItemVO.setFirstIndex(0); + + cntcMessageItemVO.setSearchCondition("CodeList"); + List cntcMessageItemList = cntcMessageService.selectCntcMessageItemList(cntcMessageItemVO); + model.addAttribute("cntcMessageItemList", cntcMessageItemList); + + return "egovframework/com/ssi/syi/ims/EgovCntcMessageDetail"; + } + + /** + * 연계메시지 목록을 조회한다. + * @param loginVO + * @param searchVO + * @param model + * @return "egovframework/com/ssi/syi/ims/EgovCcmCntcMessageList" + * @throws Exception + */ + @IncludedInfo(name="연계메시지관리", listUrl="/ssi/syi/ims/getCntcMessageList.do", order = 1230,gid = 70) + @RequestMapping(value="/ssi/syi/ims/getCntcMessageList.do") + public String selectCntcMessageList (@ModelAttribute("searchVO") CntcMessageVO searchVO + , ModelMap model + ) throws Exception { + /** EgovPropertyService.sample */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List CmmnCodeList = cntcMessageService.selectCntcMessageList(searchVO); + model.addAttribute("resultList", CmmnCodeList); + + int totCnt = cntcMessageService.selectCntcMessageListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + return "egovframework/com/ssi/syi/ims/EgovCntcMessageList"; + } + + /** + * 연계메시지를 수정한다. + * @param loginVO + * @param cntcMessage + * @param bindingResult + * @param commandMap + * @param model + * @return "egovframework/com/ssi/syi/ims/EgovCcmAdministCodeModify" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/ims/updateCntcMessage.do") + public String updateCntcMessage (@ModelAttribute("cntcMessage") CntcMessage cntcMessage + , BindingResult bindingResult + , Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + // 연계메시지 리스트박스 데이터 + CntcMessageVO searchCntcMessageVO; + searchCntcMessageVO = new CntcMessageVO(); + searchCntcMessageVO.setRecordCountPerPage(999999); + searchCntcMessageVO.setFirstIndex(0); + searchCntcMessageVO.setSearchCondition("CodeList"); + List cntcMessageList = (List)cntcMessageService.selectCntcMessageList(searchCntcMessageVO); + model.addAttribute("cntcMessageList", cntcMessageList); + + CntcMessage vo = cntcMessageService.selectCntcMessageDetail(cntcMessage); + model.addAttribute("cntcMessage", vo); + + return "egovframework/com/ssi/syi/ims/EgovCntcMessageUpdt"; + } else if (sCmd.equals("Modify")) { + beanValidator.validate(cntcMessage, bindingResult); + if (bindingResult.hasErrors()){ + // 연계메시지 리스트박스 데이터 + CntcMessageVO searchCntcMessageVO; + searchCntcMessageVO = new CntcMessageVO(); + searchCntcMessageVO.setRecordCountPerPage(999999); + searchCntcMessageVO.setFirstIndex(0); + searchCntcMessageVO.setSearchCondition("CodeList"); + List cntcMessageList = (List)cntcMessageService.selectCntcMessageList(searchCntcMessageVO); + model.addAttribute("cntcMessageList", cntcMessageList); + + CntcMessage vo = cntcMessageService.selectCntcMessageDetail(cntcMessage); + model.addAttribute("cntcMessage", vo); + + return "egovframework/com/ssi/syi/ims/EgovCntcMessageUpdt"; + } + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String uniqId = loginVO.getUniqId(); + + cntcMessage.setLastUpdusrId(uniqId); + cntcMessageService.updateCntcMessage(cntcMessage); + return "forward:/ssi/syi/ims/getCntcMessageList.do"; + } else { + return "forward:/ssi/syi/ims/getCntcMessageList.do"; + } + } + + /** + * 연계메시지항목을 수정한다. + * @param loginVO + * @param cntcMessageItem + * @param bindingResult + * @param commandMap + * @param model + * @return "egovframework/com/ssi/syi/ims/EgovCcmAdministCodeModify" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/ims/updateCntcMessageItem.do") + public String updateCntcMessageItem (@ModelAttribute("cntcMessageItem") CntcMessageItem cntcMessageItem + , BindingResult bindingResult + , Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + // 연계메시지 리스트박스 데이터 + CntcMessageVO searchCntcMessageVO; + searchCntcMessageVO = new CntcMessageVO(); + searchCntcMessageVO.setRecordCountPerPage(999999); + searchCntcMessageVO.setFirstIndex(0); + searchCntcMessageVO.setSearchCondition("CodeList"); + List cntcMessageList = (List)cntcMessageService.selectCntcMessageList(searchCntcMessageVO); + model.addAttribute("cntcMessageList", cntcMessageList); + + CntcMessageItem vo = cntcMessageService.selectCntcMessageItemDetail(cntcMessageItem); + model.addAttribute("cntcMessageItem", vo); + + return "egovframework/com/ssi/syi/ims/EgovCntcMessageItemUpdt"; + } else if (sCmd.equals("Modify")) { + beanValidator.validate(cntcMessageItem, bindingResult); + if (bindingResult.hasErrors()){ + // 연계메시지 리스트박스 데이터 + CntcMessageVO searchCntcMessageVO; + searchCntcMessageVO = new CntcMessageVO(); + searchCntcMessageVO.setRecordCountPerPage(999999); + searchCntcMessageVO.setFirstIndex(0); + searchCntcMessageVO.setSearchCondition("CodeList"); + List cntcMessageList = (List)cntcMessageService.selectCntcMessageList(searchCntcMessageVO); + model.addAttribute("cntcMessageList", cntcMessageList); + + CntcMessageItem vo = cntcMessageService.selectCntcMessageItemDetail(cntcMessageItem); + model.addAttribute("cntcMessageItem", vo); + + return "egovframework/com/ssi/syi/ims/EgovCntcMessageItemUpdt"; + } + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String uniqId = loginVO.getUniqId(); + + cntcMessageItem.setLastUpdusrId(uniqId); + cntcMessageService.updateCntcMessageItem(cntcMessageItem); + return "forward:/ssi/syi/ims/getCntcMessageList.do"; + } else { + return "forward:/ssi/syi/ims/getCntcMessageList.do"; + } + } + + /** + * Map 내용을 확인한다. + * @param commandMap + * @return + */ + public String printParameterMap(Map commandMap){ + String ret = ""; + for(Object key:commandMap.keySet()){ + Object value = commandMap.get(key); + + ret += "key:" + key.toString() + " value:" + value.toString(); + } + return ret; + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/ssi/syi/ist/service/CntcSttus.java b/src/main/java/egovframework/com/ssi/syi/ist/service/CntcSttus.java new file mode 100644 index 0000000..da4c528 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/ist/service/CntcSttus.java @@ -0,0 +1,361 @@ +package egovframework.com.ssi.syi.ist.service; + +import java.io.Serializable; + +/** + * 연계현황 모델 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class CntcSttus implements Serializable { + + /* + * 연계ID + */ + private String cntcId = ""; + + /* + * 연계명 + */ + private String cntcNm = ""; + + /* + * 연계유형 + */ + private String cntcType = ""; + + /* + * 총연계건수 + */ + private String cntAll = ""; + + /* + * 성공연계수 + */ + private String cntSuccess = ""; + + /* + * 실패연계수 + */ + private String cntFail = ""; + + /* + * 제공기관ID + */ + private String provdInsttId = ""; + + /* + * 제공기관명 + */ + private String provdInsttNm = ""; + + /* + * 제공시스템ID + */ + private String provdSysId = ""; + + /* + * 제공시스템명 + */ + private String provdSysNm = ""; + + /* + * 제공서비스ID + */ + private String provdSvcId = ""; + + /* + * 제공서비스명 + */ + private String provdSvcNm = ""; + + /* + * 요청기관ID + */ + private String requstInsttId = ""; + + /* + * 요청기관명 + */ + private String requstInsttNm = ""; + + /* + * 요청시스템ID + */ + private String requstSysId = ""; + + /* + * 요청시스템명 + */ + private String requstSysNm = ""; + + /** + * cntcId attribute 를 리턴한다. + * @return String + */ + public String getCntcId() { + return cntcId; + } + + /** + * cntcId attribute 값을 설정한다. + * @param cntcId String + */ + public void setCntcId(String cntcId) { + this.cntcId = cntcId; + } + + /** + * cntcNm attribute 를 리턴한다. + * @return String + */ + public String getCntcNm() { + return cntcNm; + } + + /** + * cntcNm attribute 값을 설정한다. + * @param cntcNm String + */ + public void setCntcNm(String cntcNm) { + this.cntcNm = cntcNm; + } + + /** + * cntcType attribute 를 리턴한다. + * @return String + */ + public String getCntcType() { + return cntcType; + } + + /** + * cntcType attribute 값을 설정한다. + * @param cntcType String + */ + public void setCntcType(String cntcType) { + this.cntcType = cntcType; + } + + /** + * cntAll attribute 를 리턴한다. + * @return String + */ + public String getCntAll() { + return cntAll; + } + + /** + * cntAll attribute 값을 설정한다. + * @param cntAll String + */ + public void setCntAll(String cntAll) { + this.cntAll = cntAll; + } + + /** + * cntSuccess attribute 를 리턴한다. + * @return String + */ + public String getCntSuccess() { + return cntSuccess; + } + + /** + * cntSuccess attribute 값을 설정한다. + * @param cntSuccess String + */ + public void setCntSuccess(String cntSuccess) { + this.cntSuccess = cntSuccess; + } + + /** + * cntFail attribute 를 리턴한다. + * @return String + */ + public String getCntFail() { + return cntFail; + } + + /** + * cntFail attribute 값을 설정한다. + * @param cntFail String + */ + public void setCntFail(String cntFail) { + this.cntFail = cntFail; + } + + /** + * provdInsttId attribute 를 리턴한다. + * @return String + */ + public String getProvdInsttId() { + return provdInsttId; + } + + /** + * provdInsttId attribute 값을 설정한다. + * @param provdInsttId String + */ + public void setProvdInsttId(String provdInsttId) { + this.provdInsttId = provdInsttId; + } + + /** + * provdInsttNm attribute 를 리턴한다. + * @return String + */ + public String getProvdInsttNm() { + return provdInsttNm; + } + + /** + * provdInsttNm attribute 값을 설정한다. + * @param provdInsttNm String + */ + public void setProvdInsttNm(String provdInsttNm) { + this.provdInsttNm = provdInsttNm; + } + + /** + * provdSysId attribute 를 리턴한다. + * @return String + */ + public String getProvdSysId() { + return provdSysId; + } + + /** + * provdSysId attribute 값을 설정한다. + * @param provdSysId String + */ + public void setProvdSysId(String provdSysId) { + this.provdSysId = provdSysId; + } + + /** + * provdSysNm attribute 를 리턴한다. + * @return String + */ + public String getProvdSysNm() { + return provdSysNm; + } + + /** + * provdSysNm attribute 값을 설정한다. + * @param provdSysNm String + */ + public void setProvdSysNm(String provdSysNm) { + this.provdSysNm = provdSysNm; + } + + /** + * provdSvcId attribute 를 리턴한다. + * @return String + */ + public String getProvdSvcId() { + return provdSvcId; + } + + /** + * provdSvcId attribute 값을 설정한다. + * @param provdSvcId String + */ + public void setProvdSvcId(String provdSvcId) { + this.provdSvcId = provdSvcId; + } + + /** + * provdSvcNm attribute 를 리턴한다. + * @return String + */ + public String getProvdSvcNm() { + return provdSvcNm; + } + + /** + * provdSvcNm attribute 값을 설정한다. + * @param provdSvcNm String + */ + public void setProvdSvcNm(String provdSvcNm) { + this.provdSvcNm = provdSvcNm; + } + + /** + * requstInsttId attribute 를 리턴한다. + * @return String + */ + public String getRequstInsttId() { + return requstInsttId; + } + + /** + * requstInsttId attribute 값을 설정한다. + * @param requstInsttId String + */ + public void setRequstInsttId(String requstInsttId) { + this.requstInsttId = requstInsttId; + } + + /** + * requstInsttNm attribute 를 리턴한다. + * @return String + */ + public String getRequstInsttNm() { + return requstInsttNm; + } + + /** + * requstInsttNm attribute 값을 설정한다. + * @param requstInsttNm String + */ + public void setRequstInsttNm(String requstInsttNm) { + this.requstInsttNm = requstInsttNm; + } + + /** + * requstSysId attribute 를 리턴한다. + * @return String + */ + public String getRequstSysId() { + return requstSysId; + } + + /** + * requstSysId attribute 값을 설정한다. + * @param requstSysId String + */ + public void setRequstSysId(String requstSysId) { + this.requstSysId = requstSysId; + } + + /** + * requstSysNm attribute 를 리턴한다. + * @return String + */ + public String getRequstSysNm() { + return requstSysNm; + } + + /** + * requstSysNm attribute 값을 설정한다. + * @param requstSysNm String + */ + public void setRequstSysNm(String requstSysNm) { + this.requstSysNm = requstSysNm; + } + + +} diff --git a/src/main/java/egovframework/com/ssi/syi/ist/service/CntcSttusVO.java b/src/main/java/egovframework/com/ssi/syi/ist/service/CntcSttusVO.java new file mode 100644 index 0000000..0a17623 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/ist/service/CntcSttusVO.java @@ -0,0 +1,197 @@ +package egovframework.com.ssi.syi.ist.service; + +import java.io.Serializable; + +/** + * + * 연계현황 VO 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class CntcSttusVO extends CntcSttus implements Serializable { + + /** 검색조건 */ + private String searchCondition = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + /** + * searchCondition attribute 를 리턴한다. + * @return String + */ + public String getSearchCondition() { + return searchCondition; + } + + /** + * searchCondition attribute 값을 설정한다. + * @param searchCondition String + */ + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + /** + * searchKeyword attribute 를 리턴한다. + * @return String + */ + public String getSearchKeyword() { + return searchKeyword; + } + + /** + * searchKeyword attribute 값을 설정한다. + * @param searchKeyword String + */ + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + /** + * searchUseYn attribute 를 리턴한다. + * @return String + */ + public String getSearchUseYn() { + return searchUseYn; + } + + /** + * searchUseYn attribute 값을 설정한다. + * @param searchUseYn String + */ + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + /** + * pageIndex attribute 를 리턴한다. + * @return int + */ + public int getPageIndex() { + return pageIndex; + } + + /** + * pageIndex attribute 값을 설정한다. + * @param pageIndex int + */ + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * pageUnit attribute 를 리턴한다. + * @return int + */ + public int getPageUnit() { + return pageUnit; + } + + /** + * pageUnit attribute 값을 설정한다. + * @param pageUnit int + */ + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * pageSize attribute 를 리턴한다. + * @return int + */ + public int getPageSize() { + return pageSize; + } + + /** + * pageSize attribute 값을 설정한다. + * @param pageSize int + */ + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + /** + * firstIndex attribute 를 리턴한다. + * @return int + */ + public int getFirstIndex() { + return firstIndex; + } + + /** + * firstIndex attribute 값을 설정한다. + * @param firstIndex int + */ + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * lastIndex attribute 를 리턴한다. + * @return int + */ + public int getLastIndex() { + return lastIndex; + } + + /** + * lastIndex attribute 값을 설정한다. + * @param lastIndex int + */ + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * recordCountPerPage attribute 를 리턴한다. + * @return int + */ + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * recordCountPerPage attribute 값을 설정한다. + * @param recordCountPerPage int + */ + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + +} diff --git a/src/main/java/egovframework/com/ssi/syi/ist/service/EgovCntcSttusService.java b/src/main/java/egovframework/com/ssi/syi/ist/service/EgovCntcSttusService.java new file mode 100644 index 0000000..6f8f53b --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/ist/service/EgovCntcSttusService.java @@ -0,0 +1,48 @@ +package egovframework.com.ssi.syi.ist.service; + +import java.util.List; + +/** + * + * 연계현황에 관한 서비스 인터페이스 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public interface EgovCntcSttusService { + + /** + * 연계현황 상세항목을 조회한다. + * @param cntcMessage + * @return CntcMessage(연계현황) + * @throws Exception + */ + CntcSttus selectCntcSttusDetail(CntcSttus CntcSttus) throws Exception; + + /** + * 연계현황 목록을 조회한다. + * @param searchVO + * @return List(연계현황 목록) + * @throws Exception + */ + List selectCntcSttusList(CntcSttusVO searchVO) throws Exception; + + /** + * 연계현황 총 갯수를 조회한다. + * @param searchVO + * @return int(연계현황 총 갯수) + */ + int selectCntcSttusListTotCnt(CntcSttusVO searchVO) throws Exception; + +} diff --git a/src/main/java/egovframework/com/ssi/syi/ist/service/impl/CntcSttusDAO.java b/src/main/java/egovframework/com/ssi/syi/ist/service/impl/CntcSttusDAO.java new file mode 100644 index 0000000..f428076 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/ist/service/impl/CntcSttusDAO.java @@ -0,0 +1,62 @@ +package egovframework.com.ssi.syi.ist.service.impl; + +import java.util.List; + +import org.springframework.stereotype.Repository; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.ssi.syi.ist.service.CntcSttus; +import egovframework.com.ssi.syi.ist.service.CntcSttusVO; + +/** + * + * 연계현황에 대한 데이터 접근 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +@Repository("CntcSttusDAO") +public class CntcSttusDAO extends EgovComAbstractDAO { + + + /** + * 연계현황 상세항목을 조회한다. + * @param CntcSttus + * @return CntcSttus(연계현황) + */ + public CntcSttus selectCntcSttusDetail(CntcSttus CntcSttus) throws Exception { + return (CntcSttus) selectByPk("CntcSttusDAO.selectCntcSttusDetail", CntcSttus); + } + + + /** + * 연계현황 목록을 조회한다. + * @param searchVO + * @return List(연계현황 목록) + * @throws Exception + */ + public List selectCntcSttusList(CntcSttusVO searchVO) throws Exception { + return list("CntcSttusDAO.selectCntcSttusList", searchVO); + } + + /** + * 연계현황 총 갯수를 조회한다. + * @param searchVO + * @return int(연계현황 총 갯수) + */ + public int selectCntcSttusListTotCnt(CntcSttusVO searchVO) throws Exception { + return (Integer)getSqlMapClientTemplate().queryForObject("CntcSttusDAO.selectCntcSttusListTotCnt", searchVO); + } + +} diff --git a/src/main/java/egovframework/com/ssi/syi/ist/service/impl/EgovCntcSttusServiceImpl.java b/src/main/java/egovframework/com/ssi/syi/ist/service/impl/EgovCntcSttusServiceImpl.java new file mode 100644 index 0000000..62e2917 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/ist/service/impl/EgovCntcSttusServiceImpl.java @@ -0,0 +1,62 @@ +package egovframework.com.ssi.syi.ist.service.impl; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import egovframework.com.ssi.syi.ist.service.CntcSttus; +import egovframework.com.ssi.syi.ist.service.CntcSttusVO; +import egovframework.com.ssi.syi.ist.service.EgovCntcSttusService; +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + + + +/** + * + * 연계현황에 대한 서비스 구현클래스를 정의한다. + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +@Service("CntcSttusService") +public class EgovCntcSttusServiceImpl extends AbstractServiceImpl implements EgovCntcSttusService { + + @Resource(name="CntcSttusDAO") + private CntcSttusDAO cntcSttusDAO; + + /** + * 연계현황 상세항목을 조회한다. + */ + public CntcSttus selectCntcSttusDetail(CntcSttus CntcSttus) throws Exception { + CntcSttus ret = (CntcSttus)cntcSttusDAO.selectCntcSttusDetail(CntcSttus); + return ret; + } + + /** + * 연계현황 목록을 조회한다. + */ + public List selectCntcSttusList(CntcSttusVO searchVO) throws Exception { + return cntcSttusDAO.selectCntcSttusList(searchVO); + } + + /** + * 연계현황 총 갯수를 조회한다. + */ + public int selectCntcSttusListTotCnt(CntcSttusVO searchVO) throws Exception { + return cntcSttusDAO.selectCntcSttusListTotCnt(searchVO); + } + +} diff --git a/src/main/java/egovframework/com/ssi/syi/ist/web/EgovCntcSttusController.java b/src/main/java/egovframework/com/ssi/syi/ist/web/EgovCntcSttusController.java new file mode 100644 index 0000000..15b077f --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/ist/web/EgovCntcSttusController.java @@ -0,0 +1,120 @@ +package egovframework.com.ssi.syi.ist.web; + +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; + +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.ssi.syi.ist.service.CntcSttus; +import egovframework.com.ssi.syi.ist.service.CntcSttusVO; +import egovframework.com.ssi.syi.ist.service.EgovCntcSttusService; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +/** + * + * 연계현황 관리에 관한 요청을 받아 서비스 클래스로 요청을 전달하고 서비스클래스에서 처리한 결과를 웹 화면으로 전달을 위한 Controller를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.8.26	정진오			IncludedInfo annotation 추가
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ + +@Controller +public class EgovCntcSttusController { + + @Resource(name = "CntcSttusService") + private EgovCntcSttusService cntcSttusService; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + /** + * 연계현황 상세내역을 조회한다. + * @param loginVO + * @param CntcSttus + * @param model + * @return "egovframework/com/cmm/sym/ccm/EgovCcmCntcSttusDetail" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/ist/getCntcSttusDetail.do") + public String selectCntcSttusLogDetail (CntcSttus CntcSttus + , ModelMap model + ) throws Exception { + CntcSttus vo = cntcSttusService.selectCntcSttusDetail(CntcSttus); + model.addAttribute("result", vo); + + return "egovframework/com/ssi/syi/ist/EgovCntcSttusDetail"; + } + + /** + * 연계현황 목록을 조회한다. + * @param loginVO + * @param searchVO + * @param model + * @return "egovframework/com/cmm/sym/ccm/EgovCcmCntcSttusList" + * @throws Exception + */ + @IncludedInfo(name="연계현황관리", listUrl="/ssi/syi/ist/getCntcSttusList.do", order = 1220,gid = 70) + @RequestMapping(value="/ssi/syi/ist/getCntcSttusList.do") + public String selectCntcSttusLogList (@ModelAttribute("searchVO") CntcSttusVO searchVO + , ModelMap model + ) throws Exception { + /** EgovPropertyService.sample */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List CmmnCodeList = cntcSttusService.selectCntcSttusList(searchVO); + model.addAttribute("resultList", CmmnCodeList); + + int totCnt = cntcSttusService.selectCntcSttusListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + return "egovframework/com/ssi/syi/ist/EgovCntcSttusList"; + } + + /** + * Map 내용을 확인한다. + * @param commandMap + * @return + */ + public String printParameterMap(Map commandMap){ + String ret = ""; + for(Object key:commandMap.keySet()){ + Object value = commandMap.get(key); + + ret += "key:" + key.toString() + " value:" + value.toString(); + } + return ret; + } + +} \ No newline at end of file diff --git a/src/main/java/egovframework/com/ssi/syi/sim/service/EgovSystemCntcService.java b/src/main/java/egovframework/com/ssi/syi/sim/service/EgovSystemCntcService.java new file mode 100644 index 0000000..dde6dc3 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/sim/service/EgovSystemCntcService.java @@ -0,0 +1,77 @@ +package egovframework.com.ssi.syi.sim.service; + +import java.util.List; + +/** + * + * 시스템연계에 관한 서비스 인터페이스 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public interface EgovSystemCntcService { + + /** + * 시스템연계를 삭제한다. + * @param systemCntc + * @throws Exception + */ + void deleteSystemCntc(SystemCntc systemCntc) throws Exception; + + /** + * 시스템연계를 등록한다. + * @param systemCntc + * @throws Exception + */ + void insertSystemCntc(SystemCntc systemCntc) throws Exception; + + /** + * 시스템연계 상세항목을 조회한다. + * @param systemCntc + * @return SystemCntc(시스템연계) + * @throws Exception + */ + SystemCntc selectSystemCntcDetail(SystemCntc systemCntc) throws Exception; + + /** + * 시스템연계 승인/승인취소한다. + * @param systemCntc + * @return SystemCntc(시스템연계) + * @throws Exception + */ + void confirmSystemCntc(SystemCntc systemCntc) throws Exception; + + /** + * 시스템연계 목록을 조회한다. + * @param searchVO + * @return List(시스템연계 목록) + * @throws Exception + */ + List selectSystemCntcList(SystemCntcVO searchVO) throws Exception; + + /** + * 시스템연계 총 갯수를 조회한다. + * @param searchVO + * @return int(시스템연계 총 갯수) + */ + int selectSystemCntcListTotCnt(SystemCntcVO searchVO) throws Exception; + + /** + * 시스템연계를 수정한다. + * @param systemCntc + * @throws Exception + */ + void updateSystemCntc(SystemCntc systemCntc) throws Exception; + +} diff --git a/src/main/java/egovframework/com/ssi/syi/sim/service/SystemCntc.java b/src/main/java/egovframework/com/ssi/syi/sim/service/SystemCntc.java new file mode 100644 index 0000000..325b040 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/sim/service/SystemCntc.java @@ -0,0 +1,319 @@ +package egovframework.com.ssi.syi.sim.service; + +import java.io.Serializable; + +/** + * 시스템연계 모델 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class SystemCntc implements Serializable { + + /* + * 연계ID + */ + private String cntcId = ""; + + /* + * 연계명 + */ + private String cntcNm = ""; + + /* + * 연계유형코드 + */ + private String cntcType = ""; + + /* + * 제공기관ID + */ + private String provdInsttId = ""; + + /* + * 제공시스템ID + */ + private String provdSysId = ""; + + /* + * 제공서비스ID + */ + private String provdSvcId = ""; + + /* + * 요청기관ID + */ + private String requstInsttId = ""; + + /* + * 요청시스템ID + */ + private String requstSysId = ""; + + /* + * 승인여부 + */ + private String confmAt = ""; + + /* + * 사용여부 + */ + private String useAt = ""; + + /* + * 유효시작일자 + */ + private String validBeginDe = ""; + + /* + * 유효종료일자 + */ + private String validEndDe = ""; + + /* + * 최초등록자ID + */ + private String frstRegisterId = ""; + + /* + * 최종수정자ID + */ + private String lastUpdusrId = ""; + + /** + * cntcId attribute 를 리턴한다. + * @return String + */ + public String getCntcId() { + return cntcId; + } + + /** + * cntcId attribute 값을 설정한다. + * @param cntcId String + */ + public void setCntcId(String cntcId) { + this.cntcId = cntcId; + } + + /** + * cntcNm attribute 를 리턴한다. + * @return String + */ + public String getCntcNm() { + return cntcNm; + } + + /** + * cntcNm attribute 값을 설정한다. + * @param cntcNm String + */ + public void setCntcNm(String cntcNm) { + this.cntcNm = cntcNm; + } + + /** + * cntcType attribute 를 리턴한다. + * @return String + */ + public String getCntcType() { + return cntcType; + } + + /** + * cntcType attribute 값을 설정한다. + * @param cntcType String + */ + public void setCntcType(String cntcType) { + this.cntcType = cntcType; + } + + /** + * provdInsttId attribute 를 리턴한다. + * @return String + */ + public String getProvdInsttId() { + return provdInsttId; + } + + /** + * provdInsttId attribute 값을 설정한다. + * @param provdInsttId String + */ + public void setProvdInsttId(String provdInsttId) { + this.provdInsttId = provdInsttId; + } + + /** + * provdSysId attribute 를 리턴한다. + * @return String + */ + public String getProvdSysId() { + return provdSysId; + } + + /** + * provdSysId attribute 값을 설정한다. + * @param provdSysId String + */ + public void setProvdSysId(String provdSysId) { + this.provdSysId = provdSysId; + } + + /** + * provdSvcId attribute 를 리턴한다. + * @return String + */ + public String getProvdSvcId() { + return provdSvcId; + } + + /** + * provdSvcId attribute 값을 설정한다. + * @param provdSvcId String + */ + public void setProvdSvcId(String provdSvcId) { + this.provdSvcId = provdSvcId; + } + + /** + * requstInsttId attribute 를 리턴한다. + * @return String + */ + public String getRequstInsttId() { + return requstInsttId; + } + + /** + * requstInsttId attribute 값을 설정한다. + * @param requstInsttId String + */ + public void setRequstInsttId(String requstInsttId) { + this.requstInsttId = requstInsttId; + } + + /** + * requstSysId attribute 를 리턴한다. + * @return String + */ + public String getRequstSysId() { + return requstSysId; + } + + /** + * requstSysId attribute 값을 설정한다. + * @param requstSysId String + */ + public void setRequstSysId(String requstSysId) { + this.requstSysId = requstSysId; + } + + /** + * confmAt attribute 를 리턴한다. + * @return String + */ + public String getConfmAt() { + return confmAt; + } + + /** + * confmAt attribute 값을 설정한다. + * @param confmAt String + */ + public void setConfmAt(String confmAt) { + this.confmAt = confmAt; + } + + /** + * useAt attribute 를 리턴한다. + * @return String + */ + public String getUseAt() { + return useAt; + } + + /** + * useAt attribute 값을 설정한다. + * @param useAt String + */ + public void setUseAt(String useAt) { + this.useAt = useAt; + } + + /** + * validBeginDe attribute 를 리턴한다. + * @return String + */ + public String getValidBeginDe() { + return validBeginDe; + } + + /** + * validBeginDe attribute 값을 설정한다. + * @param validBeginDe String + */ + public void setValidBeginDe(String validBeginDe) { + this.validBeginDe = validBeginDe; + } + + /** + * validEndDe attribute 를 리턴한다. + * @return String + */ + public String getValidEndDe() { + return validEndDe; + } + + /** + * validEndDe attribute 값을 설정한다. + * @param validEndDe String + */ + public void setValidEndDe(String validEndDe) { + this.validEndDe = validEndDe; + } + + /** + * frstRegisterId attribute 를 리턴한다. + * @return String + */ + public String getFrstRegisterId() { + return frstRegisterId; + } + + /** + * frstRegisterId attribute 값을 설정한다. + * @param frstRegisterId String + */ + public void setFrstRegisterId(String frstRegisterId) { + this.frstRegisterId = frstRegisterId; + } + + /** + * lastUpdusrId attribute 를 리턴한다. + * @return String + */ + public String getLastUpdusrId() { + return lastUpdusrId; + } + + /** + * lastUpdusrId attribute 값을 설정한다. + * @param lastUpdusrId String + */ + public void setLastUpdusrId(String lastUpdusrId) { + this.lastUpdusrId = lastUpdusrId; + } + + +} diff --git a/src/main/java/egovframework/com/ssi/syi/sim/service/SystemCntcVO.java b/src/main/java/egovframework/com/ssi/syi/sim/service/SystemCntcVO.java new file mode 100644 index 0000000..550c404 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/sim/service/SystemCntcVO.java @@ -0,0 +1,197 @@ +package egovframework.com.ssi.syi.sim.service; + +import java.io.Serializable; + +/** + * + * 시스템연계 VO 클래스 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +public class SystemCntcVO extends SystemCntc implements Serializable { + + /** 검색조건 */ + private String searchCondition = ""; + + /** 검색Keyword */ + private String searchKeyword = ""; + + /** 검색사용여부 */ + private String searchUseYn = ""; + + /** 현재페이지 */ + private int pageIndex = 1; + + /** 페이지갯수 */ + private int pageUnit = 10; + + /** 페이지사이즈 */ + private int pageSize = 10; + + /** firstIndex */ + private int firstIndex = 1; + + /** lastIndex */ + private int lastIndex = 1; + + /** recordCountPerPage */ + private int recordCountPerPage = 10; + + /** + * searchCondition attribute 를 리턴한다. + * @return String + */ + public String getSearchCondition() { + return searchCondition; + } + + /** + * searchCondition attribute 값을 설정한다. + * @param searchCondition String + */ + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + /** + * searchKeyword attribute 를 리턴한다. + * @return String + */ + public String getSearchKeyword() { + return searchKeyword; + } + + /** + * searchKeyword attribute 값을 설정한다. + * @param searchKeyword String + */ + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + /** + * searchUseYn attribute 를 리턴한다. + * @return String + */ + public String getSearchUseYn() { + return searchUseYn; + } + + /** + * searchUseYn attribute 값을 설정한다. + * @param searchUseYn String + */ + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + /** + * pageIndex attribute 를 리턴한다. + * @return int + */ + public int getPageIndex() { + return pageIndex; + } + + /** + * pageIndex attribute 값을 설정한다. + * @param pageIndex int + */ + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + /** + * pageUnit attribute 를 리턴한다. + * @return int + */ + public int getPageUnit() { + return pageUnit; + } + + /** + * pageUnit attribute 값을 설정한다. + * @param pageUnit int + */ + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + /** + * pageSize attribute 를 리턴한다. + * @return int + */ + public int getPageSize() { + return pageSize; + } + + /** + * pageSize attribute 값을 설정한다. + * @param pageSize int + */ + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + /** + * firstIndex attribute 를 리턴한다. + * @return int + */ + public int getFirstIndex() { + return firstIndex; + } + + /** + * firstIndex attribute 값을 설정한다. + * @param firstIndex int + */ + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + /** + * lastIndex attribute 를 리턴한다. + * @return int + */ + public int getLastIndex() { + return lastIndex; + } + + /** + * lastIndex attribute 값을 설정한다. + * @param lastIndex int + */ + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + /** + * recordCountPerPage attribute 를 리턴한다. + * @return int + */ + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + /** + * recordCountPerPage attribute 값을 설정한다. + * @param recordCountPerPage int + */ + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + +} diff --git a/src/main/java/egovframework/com/ssi/syi/sim/service/impl/EgovSystemCntcServiceImpl.java b/src/main/java/egovframework/com/ssi/syi/sim/service/impl/EgovSystemCntcServiceImpl.java new file mode 100644 index 0000000..6ba6541 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/sim/service/impl/EgovSystemCntcServiceImpl.java @@ -0,0 +1,89 @@ +package egovframework.com.ssi.syi.sim.service.impl; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import egovframework.com.ssi.syi.sim.service.EgovSystemCntcService; +import egovframework.com.ssi.syi.sim.service.SystemCntc; +import egovframework.com.ssi.syi.sim.service.SystemCntcVO; +import egovframework.rte.fdl.cmmn.AbstractServiceImpl; + + + +/** + * + * 시스템연계에 대한 서비스 구현클래스를 정의한다. + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +@Service("SystemCntcService") +public class EgovSystemCntcServiceImpl extends AbstractServiceImpl implements EgovSystemCntcService { + + @Resource(name="SystemCntcDAO") + private SystemCntcDAO systemCntcDAO; + + /** + * 시스템연계를 삭제한다. + */ + public void deleteSystemCntc(SystemCntc systemCntc) throws Exception { + systemCntcDAO.deleteSystemCntc(systemCntc); + } + + /** + * 시스템연계를 등록한다. + */ + public void insertSystemCntc(SystemCntc systemCntc) throws Exception { + systemCntcDAO.insertSystemCntc(systemCntc); + } + + /** + * 시스템연계 상세항목을 조회한다. + */ + public SystemCntc selectSystemCntcDetail(SystemCntc systemCntc) throws Exception { + SystemCntc ret = (SystemCntc)systemCntcDAO.selectSystemCntcDetail(systemCntc); + return ret; + } + + /** + * 시스템연계 승인/승인취소한다. + */ + public void confirmSystemCntc(SystemCntc systemCntc) throws Exception { + systemCntcDAO.confirmSystemCntc(systemCntc); + } + + /** + * 시스템연계 목록을 조회한다. + */ + public List selectSystemCntcList(SystemCntcVO searchVO) throws Exception { + return systemCntcDAO.selectSystemCntcList(searchVO); + } + + /** + * 시스템연계 총 갯수를 조회한다. + */ + public int selectSystemCntcListTotCnt(SystemCntcVO searchVO) throws Exception { + return systemCntcDAO.selectSystemCntcListTotCnt(searchVO); + } + + /** + * 시스템연계를 수정한다. + */ + public void updateSystemCntc(SystemCntc systemCntc) throws Exception { + systemCntcDAO.updateSystemCntc(systemCntc); + } +} diff --git a/src/main/java/egovframework/com/ssi/syi/sim/service/impl/SystemCntcDAO.java b/src/main/java/egovframework/com/ssi/syi/sim/service/impl/SystemCntcDAO.java new file mode 100644 index 0000000..083bb23 --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/sim/service/impl/SystemCntcDAO.java @@ -0,0 +1,98 @@ +package egovframework.com.ssi.syi.sim.service.impl; + +import java.util.List; + +import org.springframework.stereotype.Repository; + +import egovframework.com.cmm.service.impl.EgovComAbstractDAO; +import egovframework.com.ssi.syi.sim.service.SystemCntc; +import egovframework.com.ssi.syi.sim.service.SystemCntcVO; + +/** + * + * 시스템연계에 대한 데이터 접근 클래스를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ +@Repository("SystemCntcDAO") +public class SystemCntcDAO extends EgovComAbstractDAO { + + + /** + * 시스템연계를 삭제한다. + * @param systemCntc + * @throws Exception + */ + public void deleteSystemCntc(SystemCntc systemCntc) throws Exception { + delete("SystemCntcDAO.deleteSystemCntc", systemCntc); + } + + /** + * 시스템연계를 등록한다. + * @param systemCntc + * @throws Exception + */ + public void insertSystemCntc(SystemCntc systemCntc) throws Exception { + insert("SystemCntcDAO.insertSystemCntc", systemCntc); + } + + /** + * 시스템연계 상세항목을 조회한다. + * @param systemCntc + * @return SystemCntc(시스템연계) + */ + public SystemCntc selectSystemCntcDetail(SystemCntc systemCntc) throws Exception { + return (SystemCntc) selectByPk("SystemCntcDAO.selectSystemCntcDetail", systemCntc); + } + + /** + * 시스템연계 승인/승인취소한다. + * @param systemCntc + * @throws Exception + */ + public void confirmSystemCntc(SystemCntc systemCntc) throws Exception { + update("SystemCntcDAO.confirmSystemCntc", systemCntc); + } + + + /** + * 시스템연계 목록을 조회한다. + * @param searchVO + * @return List(시스템연계 목록) + * @throws Exception + */ + public List selectSystemCntcList(SystemCntcVO searchVO) throws Exception { + return list("SystemCntcDAO.selectSystemCntcList", searchVO); + } + + /** + * 시스템연계 총 갯수를 조회한다. + * @param searchVO + * @return int(시스템연계 총 갯수) + */ + public int selectSystemCntcListTotCnt(SystemCntcVO searchVO) throws Exception { + return (Integer)getSqlMapClientTemplate().queryForObject("SystemCntcDAO.selectSystemCntcListTotCnt", searchVO); + } + + /** + * 시스템연계를 수정한다. + * @param systemCntc + * @throws Exception + */ + public void updateSystemCntc(SystemCntc systemCntc) throws Exception { + update("SystemCntcDAO.updateSystemCntc", systemCntc); + } + +} diff --git a/src/main/java/egovframework/com/ssi/syi/sim/web/EgovSystemCntcController.java b/src/main/java/egovframework/com/ssi/syi/sim/web/EgovSystemCntcController.java new file mode 100644 index 0000000..db2322d --- /dev/null +++ b/src/main/java/egovframework/com/ssi/syi/sim/web/EgovSystemCntcController.java @@ -0,0 +1,560 @@ +package egovframework.com.ssi.syi.sim.web; + +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springmodules.validation.commons.DefaultBeanValidator; + +import egovframework.com.cmm.EgovMessageSource; +import egovframework.com.cmm.LoginVO; +import egovframework.com.cmm.annotation.IncludedInfo; +import egovframework.com.cmm.util.EgovUserDetailsHelper; +import egovframework.com.ssi.syi.iis.service.CntcInsttVO; +import egovframework.com.ssi.syi.iis.service.CntcServiceVO; +import egovframework.com.ssi.syi.iis.service.CntcSystemVO; +import egovframework.com.ssi.syi.iis.service.EgovCntcInsttService; +import egovframework.com.ssi.syi.sim.service.EgovSystemCntcService; +import egovframework.com.ssi.syi.sim.service.SystemCntc; +import egovframework.com.ssi.syi.sim.service.SystemCntcVO; +import egovframework.rte.fdl.idgnr.EgovIdGnrService; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; + +/** + * + * 시스템연계 관리에 관한 요청을 받아 서비스 클래스로 요청을 전달하고 서비스클래스에서 처리한 결과를 웹 화면으로 전달을 위한 Controller를 정의한다 + * @author 공통서비스 개발팀 이중호 + * @since 2009.04.01 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *   
+ *   수정일      수정자           수정내용
+ *  -------    --------    ---------------------------
+ *   2009.04.01  이중호          최초 생성
+ *   2011.8.26	정진오			IncludedInfo annotation 추가
+ *
+ * Copyright (C) 2009 by MOPAS  All right reserved.
+ * 
+ */ + +@Controller +public class EgovSystemCntcController { + + + + + @Resource(name = "SystemCntcService") + private EgovSystemCntcService systemCntcService; + + @Resource(name = "CntcInsttService") + private EgovCntcInsttService cntcInsttService; + + /** EgovIdGnrService */ + @Resource(name="egovSystemCntcIdGnrService") + private EgovIdGnrService idgenService; + + /** EgovMessageSource */ + @Resource(name="egovMessageSource") + EgovMessageSource egovMessageSource; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + @Autowired + private DefaultBeanValidator beanValidator; + + /** + * 시스템연계를 삭제한다. + * @param loginVO + * @param systemCntc + * @param model + * @return "forward:/ssi/syi/sim/EgovCcmAdministCodeList.do" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/sim/removeSystemCntc.do") + public String deleteSystemCntc (SystemCntc systemCntc + , ModelMap model + ) throws Exception { + systemCntcService.deleteSystemCntc(systemCntc); + return "forward:/ssi/syi/sim/getSystemCntcList.do"; + } + + /** + * 시스템연계를 등록한다. + * @param loginVO + * @param systemCntc + * @param bindingResult + * @param model + * @return "egovframework/com/ssi/syi/sim/EgovCcmSystemCntcRegist" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/sim/addSystemCntc.do") + public String insertSystemCntc (@ModelAttribute("systemCntc") SystemCntc systemCntc + , BindingResult bindingResult + , Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + // 연계기관 리스트박스 데이터 + CntcInsttVO searchCntcInsttVO; + searchCntcInsttVO = new CntcInsttVO(); + searchCntcInsttVO.setRecordCountPerPage(999999); + searchCntcInsttVO.setFirstIndex(0); + searchCntcInsttVO.setSearchCondition("CodeList"); + List cntcInsttList = cntcInsttService.selectCntcInsttList(searchCntcInsttVO); + model.addAttribute("cntcInsttList", cntcInsttList); + + // 연계시스템 리스트박스 데이터 + CntcSystemVO searchCntcSystemVO; + searchCntcSystemVO = new CntcSystemVO(); + searchCntcSystemVO.setRecordCountPerPage(999999); + searchCntcSystemVO.setFirstIndex(0); + searchCntcSystemVO.setSearchCondition("CodeList"); + if (systemCntc.getProvdInsttId().equals("")) { + if(cntcInsttList.size()>0) { + EgovMap emp = (EgovMap)cntcInsttList.get(0); + systemCntc.setProvdInsttId(emp.get("insttId").toString()); + } + } + searchCntcSystemVO.setInsttId(systemCntc.getProvdInsttId()); + List cntcProvdSystemList = cntcInsttService.selectCntcSystemList(searchCntcSystemVO); + model.addAttribute("cntcProvdSystemList", cntcProvdSystemList); + + if (systemCntc.getRequstInsttId().equals("")) { + if(cntcInsttList.size()>0) { + EgovMap emp = (EgovMap)cntcInsttList.get(0); + systemCntc.setRequstInsttId(emp.get("insttId").toString()); + } + } + searchCntcSystemVO.setInsttId(systemCntc.getRequstInsttId()); + List cntcRequstSystemList = cntcInsttService.selectCntcSystemList(searchCntcSystemVO); + model.addAttribute("cntcRequstSystemList", cntcRequstSystemList); + + // 연계서비스 리스트박스 데이터 + CntcServiceVO searchCntcServiceVO; + searchCntcServiceVO = new CntcServiceVO(); + searchCntcServiceVO.setRecordCountPerPage(999999); + searchCntcServiceVO.setFirstIndex(0); + searchCntcServiceVO.setSearchCondition("CodeList"); + searchCntcServiceVO.setInsttId(systemCntc.getProvdInsttId()); + if (systemCntc.getProvdSysId().equals("")) { + if(cntcProvdSystemList.size()>0) { + EgovMap emp = (EgovMap)cntcProvdSystemList.get(0); + systemCntc.setProvdSysId(emp.get("sysId").toString()); + } + } + searchCntcServiceVO.setSysId(systemCntc.getProvdSysId()); + List cntcProvdServiceList = cntcInsttService.selectCntcServiceList(searchCntcServiceVO); + model.addAttribute("cntcProvdServiceList", cntcProvdServiceList); + + return "egovframework/com/ssi/syi/sim/EgovSystemCntcRegist"; + } else if (sCmd.equals("Regist")) { + + beanValidator.validate(systemCntc, bindingResult); + if (bindingResult.hasErrors()){ + + return "egovframework/com/ssi/syi/sim/EgovSystemCntcRegist"; + } + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String uniqId = loginVO.getUniqId(); + systemCntc.setFrstRegisterId(uniqId); + + // ID Generation + String sCntcId = idgenService.getNextStringId(); + systemCntc.setCntcId(sCntcId); + + systemCntcService.insertSystemCntc(systemCntc); + return "forward:/ssi/syi/sim/getSystemCntcList.do"; + } else { + return "forward:/ssi/syi/sim/getSystemCntcList.do"; + } + } + + /** + * 시스템연계 상세내역을 조회한다. + * @param loginVO + * @param systemCntc + * @param model + * @return "egovframework/com/ssi/syi/sim/EgovCcmSystemCntcDetail" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/sim/getSystemCntcDetail.do") + public String selectSystemCntcDetail (SystemCntc systemCntc + , ModelMap model + ) throws Exception { + + // 0. Spring Security 사용자권한 처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if(!isAuthenticated) { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "egovframework/com/uat/uia/EgovLoginUsr"; + } + + String selfUri = "/ssi/syi/sim/getSystemCntcDetail.do"; + model.addAttribute("selfUri", selfUri); + + SystemCntc vo = systemCntcService.selectSystemCntcDetail(systemCntc); + model.addAttribute("result", vo); + + // 연계기관 리스트박스 데이터 + CntcInsttVO searchCntcInsttVO; + searchCntcInsttVO = new CntcInsttVO(); + searchCntcInsttVO.setRecordCountPerPage(999999); + searchCntcInsttVO.setFirstIndex(0); + searchCntcInsttVO.setSearchCondition("CodeList"); + List cntcInsttList = cntcInsttService.selectCntcInsttList(searchCntcInsttVO); + model.addAttribute("cntcInsttList", cntcInsttList); + + // 연계시스템 리스트박스 데이터 + CntcSystemVO searchCntcSystemVO; + searchCntcSystemVO = new CntcSystemVO(); + searchCntcSystemVO.setRecordCountPerPage(999999); + searchCntcSystemVO.setFirstIndex(0); + searchCntcSystemVO.setSearchCondition("CodeList"); + searchCntcSystemVO.setInsttId(vo.getProvdInsttId()); + List cntcProvdSystemList = cntcInsttService.selectCntcSystemList(searchCntcSystemVO); + model.addAttribute("cntcProvdSystemList", cntcProvdSystemList); + + searchCntcSystemVO.setInsttId(vo.getRequstInsttId()); + List cntcRequstSystemList = cntcInsttService.selectCntcSystemList(searchCntcSystemVO); + model.addAttribute("cntcRequstSystemList", cntcRequstSystemList); + + // 연계서비스 리스트박스 데이터 + CntcServiceVO searchCntcServiceVO; + searchCntcServiceVO = new CntcServiceVO(); + searchCntcServiceVO.setRecordCountPerPage(999999); + searchCntcServiceVO.setFirstIndex(0); + searchCntcServiceVO.setSearchCondition("CodeList"); + searchCntcServiceVO.setInsttId(vo.getProvdInsttId()); + searchCntcServiceVO.setSysId(vo.getProvdSysId()); + List cntcProvdServiceList = cntcInsttService.selectCntcServiceList(searchCntcServiceVO); + model.addAttribute("cntcProvdServiceList", cntcProvdServiceList); + + return "egovframework/com/ssi/syi/sim/EgovSystemCntcDetail"; + } + + /** + * 시스템연계 목록을 조회한다. + * @param loginVO + * @param searchVO + * @param model + * @return "egovframework/com/ssi/syi/sim/EgovCcmSystemCntcList" + * @throws Exception + */ + @IncludedInfo(name="시스템연계관리", listUrl="/ssi/syi/sim/getSystemCntcList.do", order = 1210,gid = 70) + @RequestMapping(value="/ssi/syi/sim/getSystemCntcList.do") + public String selectSystemCntcList (@ModelAttribute("searchVO") SystemCntcVO searchVO + , ModelMap model + ) throws Exception { + + // 0. Spring Security 사용자권한 처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if(!isAuthenticated) { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "egovframework/com/uat/uia/EgovLoginUsr"; + } + + String selfUri = "/ssi/syi/sim/getSystemCntcList.do"; + model.addAttribute("selfUri", selfUri); + + /** EgovPropertyService.sample */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List CmmnCodeList = systemCntcService.selectSystemCntcList(searchVO); + model.addAttribute("resultList", CmmnCodeList); + + int totCnt = systemCntcService.selectSystemCntcListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + return "egovframework/com/ssi/syi/sim/EgovSystemCntcList"; + } + + /** + * 시스템연계를 수정한다. + * @param loginVO + * @param integInstt + * @param bindingResult + * @param commandMap + * @param model + * @return "egovframework/com/ssi/syi/sim/EgovCcmAdministCodeModify" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/sim/updateSystemCntc.do") + public String updateSystemCntc (@ModelAttribute("systemCntc") SystemCntc systemCntc + , BindingResult bindingResult + , Map commandMap + , ModelMap model + ) throws Exception { + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("")) { + if (systemCntc.getCntcNm().equals("")) { + SystemCntc vo = systemCntcService.selectSystemCntcDetail(systemCntc); + model.addAttribute("systemCntc", vo); + systemCntc.setProvdInsttId(vo.getProvdInsttId()); + systemCntc.setRequstInsttId(vo.getRequstInsttId()); + systemCntc.setProvdSysId(vo.getProvdSysId()); + } + // 연계기관 리스트박스 데이터 + CntcInsttVO searchCntcInsttVO; + searchCntcInsttVO = new CntcInsttVO(); + searchCntcInsttVO.setRecordCountPerPage(999999); + searchCntcInsttVO.setFirstIndex(0); + searchCntcInsttVO.setSearchCondition("CodeList"); + List cntcInsttList = cntcInsttService.selectCntcInsttList(searchCntcInsttVO); + model.addAttribute("cntcInsttList", cntcInsttList); + + // 연계시스템 리스트박스 데이터 + CntcSystemVO searchCntcSystemVO; + searchCntcSystemVO = new CntcSystemVO(); + searchCntcSystemVO.setRecordCountPerPage(999999); + searchCntcSystemVO.setFirstIndex(0); + searchCntcSystemVO.setSearchCondition("CodeList"); + searchCntcSystemVO.setInsttId(systemCntc.getProvdInsttId()); + List cntcProvdSystemList = cntcInsttService.selectCntcSystemList(searchCntcSystemVO); + model.addAttribute("cntcProvdSystemList", cntcProvdSystemList); + + searchCntcSystemVO.setInsttId(systemCntc.getRequstInsttId()); + List cntcRequstSystemList = cntcInsttService.selectCntcSystemList(searchCntcSystemVO); + model.addAttribute("cntcRequstSystemList", cntcRequstSystemList); + + // 연계서비스 리스트박스 데이터 + CntcServiceVO searchCntcServiceVO; + searchCntcServiceVO = new CntcServiceVO(); + searchCntcServiceVO.setRecordCountPerPage(999999); + searchCntcServiceVO.setFirstIndex(0); + searchCntcServiceVO.setSearchCondition("CodeList"); + searchCntcServiceVO.setInsttId(systemCntc.getProvdInsttId()); + searchCntcServiceVO.setSysId(systemCntc.getProvdSysId()); + List cntcProvdServiceList = cntcInsttService.selectCntcServiceList(searchCntcServiceVO); + model.addAttribute("cntcProvdServiceList", cntcProvdServiceList); + + return "egovframework/com/ssi/syi/sim/EgovSystemCntcUpdt"; + } else if (sCmd.equals("Modify")) { + beanValidator.validate(systemCntc, bindingResult); + if (bindingResult.hasErrors()){ + if (systemCntc.getCntcNm().equals("")) { + SystemCntc vo = systemCntcService.selectSystemCntcDetail(systemCntc); + model.addAttribute("systemCntc", vo); + systemCntc.setProvdInsttId(vo.getProvdInsttId()); + systemCntc.setRequstInsttId(vo.getRequstInsttId()); + systemCntc.setProvdSysId(vo.getProvdSysId()); + } + // 연계기관 리스트박스 데이터 + CntcInsttVO searchCntcInsttVO; + searchCntcInsttVO = new CntcInsttVO(); + searchCntcInsttVO.setRecordCountPerPage(999999); + searchCntcInsttVO.setFirstIndex(0); + searchCntcInsttVO.setSearchCondition("CodeList"); + List cntcInsttList = cntcInsttService.selectCntcInsttList(searchCntcInsttVO); + model.addAttribute("cntcInsttList", cntcInsttList); + + // 연계시스템 리스트박스 데이터 + CntcSystemVO searchCntcSystemVO; + searchCntcSystemVO = new CntcSystemVO(); + searchCntcSystemVO.setRecordCountPerPage(999999); + searchCntcSystemVO.setFirstIndex(0); + searchCntcSystemVO.setSearchCondition("CodeList"); + searchCntcSystemVO.setInsttId(systemCntc.getProvdInsttId()); + List cntcProvdSystemList = cntcInsttService.selectCntcSystemList(searchCntcSystemVO); + model.addAttribute("cntcProvdSystemList", cntcProvdSystemList); + + searchCntcSystemVO.setInsttId(systemCntc.getRequstInsttId()); + List cntcRequstSystemList = cntcInsttService.selectCntcSystemList(searchCntcSystemVO); + model.addAttribute("cntcRequstSystemList", cntcRequstSystemList); + + // 연계서비스 리스트박스 데이터 + CntcServiceVO searchCntcServiceVO; + searchCntcServiceVO = new CntcServiceVO(); + searchCntcServiceVO.setRecordCountPerPage(999999); + searchCntcServiceVO.setFirstIndex(0); + searchCntcServiceVO.setSearchCondition("CodeList"); + searchCntcServiceVO.setInsttId(systemCntc.getProvdInsttId()); + searchCntcServiceVO.setSysId(systemCntc.getProvdSysId()); + List cntcProvdServiceList = cntcInsttService.selectCntcServiceList(searchCntcServiceVO); + model.addAttribute("cntcProvdServiceList", cntcProvdServiceList); + + return "egovframework/com/ssi/syi/sim/EgovSystemCntcUpdt"; + } + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String uniqId = loginVO.getUniqId(); + + systemCntc.setLastUpdusrId(uniqId); + systemCntcService.updateSystemCntc(systemCntc); + return "forward:/ssi/syi/sim/getSystemCntcList.do"; + } else { + return "forward:/ssi/syi/sim/getSystemCntcList.do"; + } + } + + /** + * 시스템연계 승인 목록을 조회한다. + * @param loginVO + * @param integInstt + * @param bindingResult + * @param commandMap + * @param model + * @return "egovframework/com/ssi/syi/sim/EgovCcmAdministCodeModify" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/scm/getConfirmSystemCntcList.do") + //@RequestMapping(value="/ssi/syi/sim/getSystemCntcList.do") + public String selectConfirmSystemCntcList (@ModelAttribute("searchVO") SystemCntcVO searchVO + , ModelMap model + ) throws Exception { + + // 0. Spring Security 사용자권한 처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if(!isAuthenticated) { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "egovframework/com/uat/uia/EgovLoginUsr"; + } + + String selfUri = "/ssi/syi/scm/getConfirmSystemCntcList.do"; + model.addAttribute("selfUri", selfUri); + + /** EgovPropertyService.sample */ + searchVO.setPageUnit(propertiesService.getInt("pageUnit")); + searchVO.setPageSize(propertiesService.getInt("pageSize")); + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + paginationInfo.setCurrentPageNo(searchVO.getPageIndex()); + paginationInfo.setRecordCountPerPage(searchVO.getPageUnit()); + paginationInfo.setPageSize(searchVO.getPageSize()); + + searchVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); + searchVO.setLastIndex(paginationInfo.getLastRecordIndex()); + searchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); + + List CmmnCodeList = systemCntcService.selectSystemCntcList(searchVO); + model.addAttribute("resultList", CmmnCodeList); + + int totCnt = systemCntcService.selectSystemCntcListTotCnt(searchVO); + paginationInfo.setTotalRecordCount(totCnt); + model.addAttribute("paginationInfo", paginationInfo); + + return "egovframework/com/ssi/syi/sim/EgovSystemCntcList"; + } + + /** + * 시스템연계 승인 상세내역을 조회한다. + * @param loginVO + * @param systemCntc + * @param model + * @return "egovframework/com/ssi/syi/sim/EgovCcmSystemCntcDetail" + * @throws Exception + */ + @RequestMapping(value="/ssi/syi/scm/getConfirmSystemCntcDetail.do") + //@RequestMapping(value="/ssi/syi/sim/getSystemCntcDetail.do") + public String selectConfirmSystemCntcDetail (SystemCntc systemCntc + , Map commandMap + , ModelMap model + ) throws Exception { + + // 0. Spring Security 사용자권한 처리 + Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated(); + if(!isAuthenticated) { + model.addAttribute("message", egovMessageSource.getMessage("fail.common.login")); + return "egovframework/com/uat/uia/EgovLoginUsr"; + } + + String sCmd = commandMap.get("cmd") == null ? "" : (String)commandMap.get("cmd"); + if (sCmd.equals("Confirm")) { + + // 로그인VO에서 사용자 정보 가져오기 + LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); + String uniqId = loginVO.getUniqId(); + + systemCntc.setLastUpdusrId(uniqId); + systemCntcService.confirmSystemCntc(systemCntc); + } + + String selfUri = "/ssi/syi/scm/getConfirmSystemCntcDetail.do"; + model.addAttribute("selfUri", selfUri); + + SystemCntc vo = systemCntcService.selectSystemCntcDetail(systemCntc); + model.addAttribute("result", vo); + + // 연계기관 리스트박스 데이터 + CntcInsttVO searchCntcInsttVO; + searchCntcInsttVO = new CntcInsttVO(); + searchCntcInsttVO.setRecordCountPerPage(999999); + searchCntcInsttVO.setFirstIndex(0); + searchCntcInsttVO.setSearchCondition("CodeList"); + List cntcInsttList = cntcInsttService.selectCntcInsttList(searchCntcInsttVO); + model.addAttribute("cntcInsttList", cntcInsttList); + + // 연계시스템 리스트박스 데이터 + CntcSystemVO searchCntcSystemVO; + searchCntcSystemVO = new CntcSystemVO(); + searchCntcSystemVO.setRecordCountPerPage(999999); + searchCntcSystemVO.setFirstIndex(0); + searchCntcSystemVO.setSearchCondition("CodeList"); + searchCntcSystemVO.setInsttId(vo.getProvdInsttId()); + List cntcProvdSystemList = cntcInsttService.selectCntcSystemList(searchCntcSystemVO); + model.addAttribute("cntcProvdSystemList", cntcProvdSystemList); + + searchCntcSystemVO.setInsttId(vo.getRequstInsttId()); + List cntcRequstSystemList = cntcInsttService.selectCntcSystemList(searchCntcSystemVO); + model.addAttribute("cntcRequstSystemList", cntcRequstSystemList); + + // 연계서비스 리스트박스 데이터 + CntcServiceVO searchCntcServiceVO; + searchCntcServiceVO = new CntcServiceVO(); + searchCntcServiceVO.setRecordCountPerPage(999999); + searchCntcServiceVO.setFirstIndex(0); + searchCntcServiceVO.setSearchCondition("CodeList"); + searchCntcServiceVO.setInsttId(vo.getProvdInsttId()); + searchCntcServiceVO.setSysId(vo.getProvdSysId()); + List cntcProvdServiceList = cntcInsttService.selectCntcServiceList(searchCntcServiceVO); + model.addAttribute("cntcProvdServiceList", cntcProvdServiceList); + + return "egovframework/com/ssi/syi/sim/EgovSystemCntcDetail"; + } + + /** + * Map 내용을 확인한다. + * @param commandMap + * @return + */ + public String printParameterMap(Map commandMap){ + String ret = ""; + for(Object key:commandMap.keySet()){ + Object value = commandMap.get(key); + + ret += "key:" + key.toString() + " value:" + value.toString(); + } + return ret; + } + +} \ No newline at end of file diff --git a/src/main/java/geoinfo/admins/board/CommunityController.java b/src/main/java/geoinfo/admins/board/CommunityController.java new file mode 100644 index 0000000..7f6760c --- /dev/null +++ b/src/main/java/geoinfo/admins/board/CommunityController.java @@ -0,0 +1,459 @@ +package geoinfo.admins.board; + +import egovframework.com.cmm.service.EgovProperties; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import geoinfo.admins.board.service.CommunityService; +import geoinfo.com.GeoinfoCommon; +import geoinfo.session.UserInfo; + +import java.io.File; +import java.io.IOException; +import java.util.Calendar; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.List; +import java.util.Objects; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.io.FilenameUtils; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +public class CommunityController { + @Resource(name = "communityService") + private CommunityService masterService; + private final String savePath = EgovProperties.getProperty("Geoinfo.FilePath"); + + @RequestMapping(value = "admins/board/12.do") + public String board00( @RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(10); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List result = masterService.selectInfo(params); + + paginationInfo.setTotalRecordCount(Integer.valueOf(((EgovMap) result.get(0)).get("totalrows").toString())); + + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("result", result); + + return "admins/board/12"; + } + + @RequestMapping(value = "admins/board/12_write.do") + public String write12( @RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + return "admins/board/12_write"; + } + + @RequestMapping(value = "admins/board/12_save", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap saveInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request, MultipartHttpServletRequest multiRequest) throws Exception { + + HashMap jsonMap = new HashMap(); + + request.setCharacterEncoding("euc-kr"); + + String topnotice = params.get("topChk").toString(); + + params.put("topnotice", topnotice); + params.put("password", "kictgis1234"); + + MultipartFile fileName1 = multiRequest.getFile("fileName1"); + MultipartFile fileName2 = multiRequest.getFile("fileName2"); + MultipartFile fileName3 = multiRequest.getFile("fileName3"); + + try { + if(fileName1.getOriginalFilename().equals("")) { + params.put("fileName1", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName1 = L_dat + "_" + L_tmp + fileName1.getOriginalFilename().substring(fileName1.getOriginalFilename().lastIndexOf(".")); + params.put("saveName1", saveName1); + params.put("fileName1", fileName1.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName1)); + fileName1.transferTo(saveFile); + } + + if(fileName2.getOriginalFilename().equals("")) { + params.put("fileName2", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName2 = L_dat + "_" + L_tmp + fileName2.getOriginalFilename().substring(fileName2.getOriginalFilename().lastIndexOf(".")); + params.put("saveName2", saveName2); + params.put("fileName2", fileName2.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName2)); + fileName2.transferTo(saveFile); + } + + if(fileName3.getOriginalFilename().equals("")) { + params.put("fileName3", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName3 = L_dat + "_" + L_tmp + fileName3.getOriginalFilename().substring(fileName3.getOriginalFilename().lastIndexOf(".")); + params.put("saveName3", saveName3); + params.put("fileName3", fileName3.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName3)); + fileName3.transferTo(saveFile); + } + masterService.saveInfo(params); + + jsonMap.put("success", true); + } catch (IOException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/board/12-view.do") + public String view01( @RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + String aid; + if(Objects.isNull(params.get("aid"))) { + aid = params.get("idx").toString(); + } else { + aid = params.get("aid").toString(); + } + + EgovMap result = masterService.selectDetailInfo(params); + + model.addAttribute("aid", aid); + model.addAttribute("result", result); + model.addAttribute("br", "\r"); + + return "admins/board/12-view"; + } + + @RequestMapping(value = "admins/board/12-delete", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap delete12(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + HashMap jsonMap = new HashMap(); + + try { + masterService.deleteInfo(params); + + String fileName1 = GeoinfoCommon.parseData(params.get("fileName1").toString()); + String fileName2 = GeoinfoCommon.parseData(params.get("fileName2").toString()); + String fileName3 = GeoinfoCommon.parseData(params.get("fileName3").toString()); + + File deleteFile1 = new File(savePath + "/" + FilenameUtils.getName(fileName1)); + if(deleteFile1.exists()) { + deleteFile1.delete(); + } + + File deleteFile2 = new File(savePath + "/" + FilenameUtils.getName(fileName2)); + if(deleteFile2.exists()) { + deleteFile2.delete(); + } + + File deleteFile3 = new File(savePath + "/" + FilenameUtils.getName(fileName3)); + if(deleteFile3.exists()) { + deleteFile3.delete(); + } + + jsonMap.put("success", true); + } catch (IOException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/board/12-modify.do") + public String modify12( @RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + String aid = params.get("aid").toString(); + + EgovMap result = masterService.selectModifyInfo(params); + + model.addAttribute("aid", aid); + model.addAttribute("result", result); + + return "admins/board/12-modify"; + } + + @RequestMapping(value = "admins/board/12-modify-post", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap updateInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request, MultipartHttpServletRequest multiRequest) throws Exception { + + HashMap jsonMap = new HashMap(); + + request.setCharacterEncoding("euc-kr"); + + String topnotice = params.get("top").toString(); + + params.put("topnotice", topnotice); + params.put("password", "kictgis1234"); + + String delFile1 = params.get("delFile1").toString(); + String delFile2 = params.get("delFile2").toString(); + String delFile3 = params.get("delFile3").toString(); + + String preFile1 = params.get("preFile1").toString(); + String preFile2 = params.get("preFile2").toString(); + String preFile3 = params.get("preFile3").toString(); + + String preSaveNm1 = params.get("preSaveNm1").toString(); + String preSaveNm2 = params.get("preSaveNm2").toString(); + String preSaveNm3 = params.get("preSaveNm3").toString(); + + MultipartFile fileName1 = multiRequest.getFile("fileName1"); + MultipartFile fileName2 = multiRequest.getFile("fileName2"); + MultipartFile fileName3 = multiRequest.getFile("fileName3"); + + try { +// if(!preFile1.equals("") && delFile1.equals("0") ) { + if(!"".equals(preFile1) && "0".equals(delFile1)) { + params.put("saveName1", preSaveNm1); + params.put("fileName1", preFile1); + } else { + if(fileName1.getOriginalFilename().equals("")) { + params.put("fileName1", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName1 = L_dat + "_" + L_tmp + fileName1.getOriginalFilename().substring(fileName1.getOriginalFilename().lastIndexOf(".")); + params.put("saveName1", saveName1); + params.put("fileName1", fileName1.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName1)); + fileName1.transferTo(saveFile); + } + } + + if(!"".equals(preFile2) && "0".equals(delFile2)) { + params.put("saveName2", preSaveNm2); + params.put("fileName2", preFile2); + } else { + if(fileName2.getOriginalFilename().equals("")) { + params.put("fileName2", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName2 = L_dat + "_" + L_tmp + fileName2.getOriginalFilename().substring(fileName2.getOriginalFilename().lastIndexOf(".")); + params.put("saveName2", saveName2); + params.put("fileName2", fileName2.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName2)); + fileName2.transferTo(saveFile); + } + } + + if(!"".equals(preFile3) && "0".equals(delFile3)) { + params.put("saveName3", preSaveNm3); + params.put("fileName3", preFile3); + } else { + if(fileName3.getOriginalFilename().equals("")) { + params.put("fileName3", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName3 = L_dat + "_" + L_tmp + fileName3.getOriginalFilename().substring(fileName3.getOriginalFilename().lastIndexOf(".")); + params.put("saveName3", saveName3); + params.put("fileName3", fileName3.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName3)); + fileName3.transferTo(saveFile); + } + } + masterService.updateInfo(params); + + jsonMap.put("success", true); + } catch (IOException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/board/12_reply_write.do") + public String replyWrite(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + int pos = 0; + String content = ""; + + EgovMap result = masterService.selectReplyInfo(params); + + content = result.get("content").toString(); + + while((pos=content.indexOf("\'", pos)) != -1) { + String left = content.substring(0, pos); + String right = content.substring(pos, content.length()); + content = left + "\'" + right; + pos += 2; + } + + result.put("content", content); + + model.addAttribute("A", "작성자"); + model.addAttribute("B", "비밀번호"); + model.addAttribute("C", "제목"); + model.addAttribute("D", "내 용"); + model.addAttribute("result", result); + + return "admins/board/12_reply_write"; + } + + @RequestMapping(value = "admins/board/12_reply_save", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap replySave(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request, MultipartHttpServletRequest multiRequest) throws Exception { + + HashMap jsonMap = new HashMap(); + + try { + params.put("password", "kictgis1234"); + MultipartFile fileName = multiRequest.getFile("fileName"); + String seq = GeoinfoCommon.parseData(params.get("seq").toString()); + String lseq = seq.substring(0, 1); + int seq_num = Integer.parseInt(seq); + + String L_dat = null; + String L_tmp = null; + String saveName = ""; + + int idx = 0; + + params.put("fileName2", ""); + params.put("saveName2", ""); + params.put("fileName3", ""); + params.put("saveName3", ""); + + boolean replyMax = true; + + int maxIdx = masterService.getMaxIdx(); + + if(maxIdx == 0) { + idx = 1; + } else { + idx = maxIdx + 1; + } + + params.put("idx", idx); + + int seq_temp = 0; + String mseq_right = ""; + + if(seq_num == 0) { + int maxSeq = masterService.getMaxSeq(params); + + seq_temp = maxSeq + 10; + seq = Integer.toString(seq_temp); + + params.put("seq", seq); + + if(fileName.getOriginalFilename().equals("")) { + params.put("fileName", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + saveName = L_dat + "_" + L_tmp + fileName.getOriginalFilename().substring(fileName.getOriginalFilename().lastIndexOf(".")); + + params.put("saveName", saveName); + params.put("fileName", fileName.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName)); + fileName.transferTo(saveFile); + } + masterService.replyWrite(params); + } else { + params.put("lseq", lseq); + + int maxSeq2 = masterService.getMaxSeq2(params); + + mseq_right = Integer.toString(maxSeq2).substring(1, 2); + + if("9".equals(mseq_right)) { + replyMax = false; + } else { + seq_temp = maxSeq2 + 1; + seq = Integer.toString(seq_temp); + + params.put("seq", seq); + + if(fileName.getOriginalFilename().equals("")) { + params.put("fileName", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + saveName = L_dat + "_" + L_tmp + fileName.getOriginalFilename().substring(fileName.getOriginalFilename().lastIndexOf(".")); + + params.put("saveName", saveName); + params.put("fileName", fileName.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName)); + fileName.transferTo(saveFile); + } + masterService.replyWrite(params); + } + } + + jsonMap.put("replyMax", replyMax); + jsonMap.put("success", true); + } catch (IOException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + +} diff --git a/src/main/java/geoinfo/admins/board/FreqAskQueController.java b/src/main/java/geoinfo/admins/board/FreqAskQueController.java new file mode 100644 index 0000000..ca3f779 --- /dev/null +++ b/src/main/java/geoinfo/admins/board/FreqAskQueController.java @@ -0,0 +1,197 @@ +package geoinfo.admins.board; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import geoinfo.admins.board.service.FreqAskQueService; +import geoinfo.session.UserInfo; + +import java.sql.SQLException; +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; + +@Controller +public class FreqAskQueController { + @Resource(name = "freqAskQueService") + private FreqAskQueService masterService; + + @RequestMapping(value = "admins/board/11.do") + public String board00( @RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(10); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List result = masterService.selectInfo(params); + + paginationInfo.setTotalRecordCount(Integer.valueOf(((EgovMap) result.get(0)).get("totalrows").toString())); + + model.addAttribute("LT", "<"); + model.addAttribute("GT", ">"); + model.addAttribute("br", "\r"); + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("result", result); + + return "admins/board/11"; + } + + @RequestMapping(value = "admins/board/11-write.do") + public String write11( @RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + return "admins/board/11-write"; + } + + @RequestMapping(value = "admins/board/11-write-post", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap saveInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + HashMap jsonMap = new HashMap(); + + String subject = params.get("subject").toString(); + String contents = params.get("contents").toString(); + + if(subject != null) { + subject = subject.replaceAll("<","<"); + subject = subject.replaceAll(">",">"); + + params.put("subject", subject); + } + if(contents != null){ + contents = contents.replaceAll("<","<"); + contents = contents.replaceAll(">",">"); + contents = contents.replaceAll("\n","
"); + + params.put("contents", contents); + } + + try{ + params.put("password", "kictgis1234"); + int maxIdx = masterService.getMaxIdx(); + + params.put("maxIdx", maxIdx); + params.put("cls", "2"); + + masterService.saveInfo(params); + + jsonMap.put("success", true); + } catch (SQLException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/board/11-delete", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap deleteInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + HashMap jsonMap = new HashMap(); + + try { + masterService.deleteInfo(params); + jsonMap.put("success", true); + } catch (SQLException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/board/11-modify.do") + public String modifyInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + EgovMap result = masterService.selectModifyInfo(params); + + String subject = result.get("subject").toString(); + String content = result.get("content").toString(); + + if(subject != null) { + subject = subject.replaceAll("<","<"); + subject = subject.replaceAll(">",">"); + + result.put("subject", subject); + } + + if(content != null) { + content = content.replaceAll("<","<"); + content = content.replaceAll(">",">"); + content = content.replaceAll("
","\n"); + + result.put("content", content); + } + + model.addAttribute("result", result); + + return "admins/board/11-modify"; + } + + @RequestMapping(value = "admins/board/11-modify-post", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap updateInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + HashMap jsonMap = new HashMap(); + + String subject = params.get("subject").toString(); + String content = params.get("content").toString(); + + if(subject != null) { + subject = subject.replaceAll("<","<"); + subject = subject.replaceAll(">",">"); + + params.put("subject", subject); + } + + if(content != null) { + content = content.replaceAll("<","<"); + content = content.replaceAll(">",">"); + content = content.replaceAll("\n","
"); + + params.put("content", content); + } + + try{ + masterService.updateInfo(params); + jsonMap.put("success", true); + } catch (SQLException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + +} diff --git a/src/main/java/geoinfo/admins/board/GroundReportController.java b/src/main/java/geoinfo/admins/board/GroundReportController.java new file mode 100644 index 0000000..dd26ccf --- /dev/null +++ b/src/main/java/geoinfo/admins/board/GroundReportController.java @@ -0,0 +1,346 @@ +package geoinfo.admins.board; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Calendar; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.io.FilenameUtils; +import org.apache.log4j.Logger; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +import egovframework.com.cmm.service.EgovProperties; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import geoinfo.admins.board.service.GroundReportService; +import geoinfo.com.GeoinfoCommon; +import geoinfo.session.UserInfo; + +@Controller +public class GroundReportController { + + @Resource(name = "groundReportService") + private GroundReportService masterService; + + private static final Logger LOGGER = Logger.getLogger(RefrncRoomController.class.getName()); + + // 운영서버 실제 경로 + private final String savePath = EgovProperties.getProperty("Geoinfo.FilePath"); + //private final String savePath = "C:\\app\\files\\ground_report"; + + @RequestMapping(value = "admins/greport/13.do") + public String greport00( @RequestParam HashMap params, + ModelMap model, + HttpServletResponse response, + HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(10); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List result = masterService.selectInfo(params); + + int totalRows = 0; + if ( ! result.isEmpty() ) { + EgovMap totalRowsMap = (EgovMap) result.get(0); + if ( totalRowsMap != null ) { + String totalRowsStr = (String) totalRowsMap.get("totalrows"); + totalRows = Integer.valueOf(totalRowsStr); + } + } + paginationInfo.setTotalRecordCount(totalRows); + + model.addAttribute("paginationInfo", paginationInfo); + model.addAttribute("result", result); + + return "admins/greport/13"; + } + + @RequestMapping(value = "admins/greport/13_write.do") + public String write13( @RequestParam HashMap params, + ModelMap model, + HttpServletResponse response, + HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + return "admins/greport/13_write"; + } + + @RequestMapping(value = "admins/greport/13_save", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap saveInfo(@RequestParam HashMap params, + ModelMap model, + HttpServletResponse response, + HttpServletRequest request, + MultipartHttpServletRequest multiRequest) throws Exception { + + HashMap jsonMap = new HashMap(); + + request.setCharacterEncoding("euc-kr"); + + String topnotice = params.get("topChk").toString(); + + params.put("topnotice", topnotice); + + MultipartFile fileName1 = multiRequest.getFile("fileName1"); + MultipartFile fileName2 = multiRequest.getFile("fileName2"); + MultipartFile fileName3 = multiRequest.getFile("fileName3"); + + try { + if(fileName1.getOriginalFilename().equals("")) { + params.put("fileName1", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName1 = L_dat + "_" + L_tmp + fileName1.getOriginalFilename().substring(fileName1.getOriginalFilename().lastIndexOf(".")); + params.put("saveName1", saveName1); + params.put("fileName1", fileName1.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName1)); + fileName1.transferTo(saveFile); + } + + if(fileName2.getOriginalFilename().equals("")) { + params.put("fileName2", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName2 = L_dat + "_" + L_tmp + fileName2.getOriginalFilename().substring(fileName2.getOriginalFilename().lastIndexOf(".")); + params.put("saveName2", saveName2); + params.put("fileName2", fileName2.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName2)); + fileName2.transferTo(saveFile); + } + + if(fileName3.getOriginalFilename().equals("")) { + params.put("fileName3", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName3 = L_dat + "_" + L_tmp + fileName3.getOriginalFilename().substring(fileName3.getOriginalFilename().lastIndexOf(".")); + params.put("saveName3", saveName3); + params.put("fileName3", fileName3.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName3)); + fileName3.transferTo(saveFile); + } + masterService.saveInfo(params); + + jsonMap.put("success", true); + } catch (IOException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/greport/13-view.do") + public String view01( @RequestParam HashMap params, + ModelMap model, + HttpServletResponse response, + HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + String idx = params.get("idx").toString(); + + EgovMap result = masterService.selectDetailInfo(params); + + model.addAttribute("idx", idx); + model.addAttribute("result", result); + model.addAttribute("br", "\r"); + + return "admins/greport/13-view"; + } + + @RequestMapping(value = "admins/greport/13-delete", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap delete13(@RequestParam HashMap params, + ModelMap model, + HttpServletResponse response, + HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return model; + } + + HashMap jsonMap = new HashMap(); + + try { + masterService.deleteInfo(params); + + String fileName1 = GeoinfoCommon.parseData(params.get("fileName1").toString()); + + File deleteFile1 = new File(savePath + "/" + FilenameUtils.getName(fileName1)); + if(deleteFile1.exists()) { + deleteFile1.delete(); + } + + jsonMap.put("success", true); + } catch (IOException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/greport/13-modify.do") + public String modify13( @RequestParam HashMap params, + ModelMap model, + HttpServletResponse response, + HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + String idx = params.get("idx").toString(); + + EgovMap result = masterService.selectModifyInfo(params); + + model.addAttribute("idx", idx); + model.addAttribute("result", result); + + return "admins/greport/13-modify"; + } + + @RequestMapping(value = "admins/greport/13-modify-post", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap updateInfo(@RequestParam HashMap params, + ModelMap model, + HttpServletResponse response, + HttpServletRequest request, + MultipartHttpServletRequest multiRequest) throws Exception { + + HashMap jsonMap = new HashMap(); + + request.setCharacterEncoding("euc-kr"); + + //String topnotice = params.get("top").toString(); + + //params.put("topnotice", topnotice); + + //String delFile1 = params.get("delFile1").toString(); + + //String preFile1 = params.get("preFile1").toString(); + + //String preSaveNm1 = params.get("preSaveNm1").toString(); + + MultipartFile fileName1 = multiRequest.getFile("REPORT_FILE"); + + try { + + if(fileName1.getOriginalFilename().equals("")) { + + } else { + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName1 = L_dat + "_" + L_tmp + fileName1.getOriginalFilename().substring(fileName1.getOriginalFilename().lastIndexOf(".")); + params.put("saveNm", saveName1); + params.put("fileNm", fileName1.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName1)); + fileName1.transferTo(saveFile); + } + + String idx = (String) request.getParameter("idx"); + String regNm = (String) request.getParameter("regNm"); + String regOrg = (String) request.getParameter("regOrg"); + String regHp = (String) request.getParameter("regHp"); + + params.put("idx", idx); + params.put("regNm", regNm); + params.put("regOrg", regOrg); + params.put("regHp", regHp); + + masterService.updateInfo(params); + + jsonMap.put("success", true); + } catch (IOException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + // 2018-11-30 + // 파일 다운로드 민간조사보고서 다운로드 기능 + @RequestMapping(value = "admins/greport/fileDownload.do") + public void fileDownload(@RequestParam HashMap params, + ModelMap model, + HttpServletResponse response, + HttpServletRequest request) throws Exception { + + String savename = params.get("savename").toString(); + + File file = new File(savePath + "\\" + FilenameUtils.getName(savename)); + + response.setContentType("multipart/form-data"); + response.setContentLength((int)file.length()); + response.setHeader("Content-Disposition", GeoinfoCommon.safeHttpHeader("attachment; filename=\"" + savename + "\"")); + response.setHeader("Content-Transfer-Encoding", "binary"); + + OutputStream out = response.getOutputStream(); + FileInputStream fis = null; + + try { + fis = new FileInputStream(file); + FileCopyUtils.copy(fis, out); + } + catch(IOException e){ + LOGGER.error(e); + }finally{ + if(fis != null){ + try{ + fis.close(); + }catch(IOException e){ + LOGGER.error(e); + } + } + } + out.flush(); + } + +} diff --git a/src/main/java/geoinfo/admins/board/QnaController.java b/src/main/java/geoinfo/admins/board/QnaController.java new file mode 100644 index 0000000..55f614e --- /dev/null +++ b/src/main/java/geoinfo/admins/board/QnaController.java @@ -0,0 +1,265 @@ +package geoinfo.admins.board; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import geoinfo.admins.board.service.QnaService; +import geoinfo.com.GeoinfoCommon; +import geoinfo.session.UserInfo; + +import java.sql.SQLException; +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; + +@Controller +public class QnaController { + @Resource(name = "qnaService") + private QnaService masterService; + + // ##### + @RequestMapping(value = "admins/board/00.do") + public String board00( @RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + paginationInfo.setRecordCountPerPage(10); + paginationInfo.setPageSize(10); + + int maxRowNum = masterService.getMaxRowNum(params); + + paginationInfo.setTotalRecordCount(maxRowNum); + + if (params.get("pageIndex") == null || params.get("pageIndex").equals("") || Integer.parseInt((String) params.get("pageIndex"))<=0 ) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + }else if(Integer.parseInt((String)params.get("pageIndex")) > paginationInfo.getLastPageNo()){ + paginationInfo.setCurrentPageNo(paginationInfo.getLastPageNo()); + params.put("pageIndex", paginationInfo.getLastPageNo()); + } else { + paginationInfo.setCurrentPageNo((Integer) Integer.valueOf((String) params.get("pageIndex"))); + } + + //System.out.println("sss - " + paginationInfo.getFirstRecordIndex()); + params.put("firstIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List qnaList = masterService.getQnaList(params); + + model.addAttribute("params", params); + model.addAttribute("rowNo", maxRowNum); + model.addAttribute("qnaList", qnaList); + model.addAttribute("paginationInfo", paginationInfo); + // 2018. 08.03 추가 게시판 검색 기능 + model.addAttribute("pageIndex",params.get("pageIndex") ); + model.addAttribute("searchTitle",params.get("searchTitle") ); + model.addAttribute("searchKey",params.get("searchKey") ); + + return "admins/board/00"; + } + + @RequestMapping(value = "admins/board/00-view.do") + public String selectInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + //int aid = Integer.parseInt(params.get("aid").toString()); + + List result = masterService.selectQnaInfo(params); + + System.out.println("params - " + params); + model.addAttribute("result", result); + model.addAttribute("br", "\r"); + // 2018. 08.03 추가 게시판 검색 기능 + model.addAttribute("params", params); + return "admins/board/00-view"; + } + + @RequestMapping(value = "admins/board/00-delete", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap deleteInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + HashMap jsonMap = new HashMap(); + + try { + masterService.deleteInfo(params); + jsonMap.put("success", true); + } catch (SQLException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/board/00-modify.do") + public String modifyInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + int aid = Integer.parseInt(params.get("aid").toString()); + + EgovMap result = masterService.selectModifyInfo(params); + + model.addAttribute("aid", aid); + model.addAttribute("result", result); + + return "admins/board/00-modify"; + } + + @RequestMapping(value = "admins/board/00-modify-post", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap updateInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + HashMap jsonMap = new HashMap(); + + try{ + masterService.updateInfo(params); + jsonMap.put("success", true); + } catch (SQLException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "body/psboard/psboard_reply_write.do") + public String replyWrite(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + int pos = 0; + String content = ""; + + EgovMap result = masterService.selectReplyInfo(params); + + content = result.get("content").toString(); + + while((pos=content.indexOf("\'", pos)) != -1) { + String left = content.substring(0, pos); + String right = content.substring(pos, content.length()); + content = left + "\'" + right; + pos += 2; + } + + result.put("content", content); + + model.addAttribute("A", "작성자"); + model.addAttribute("B", "비밀번호"); + model.addAttribute("C", "제목"); + model.addAttribute("D", "내 용"); + model.addAttribute("result", result); + + return "body/psboard/psboard_reply_write"; + } + + @RequestMapping(value = "body/psboard/psboard_reply_save", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap replySave(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + HashMap jsonMap = new HashMap(); + + try { + String seq = GeoinfoCommon.parseData(params.get("seq").toString()); + String lseq = seq.substring(0, 1); + int seq_num = Integer.parseInt(seq); + params.put("password", "kictgis1234"); + + int idx = 0; + + boolean replyMax = true; + + int maxIdx = masterService.getMaxIdx(); + + if(maxIdx == 0) { + idx = 1; + } else { + idx = maxIdx + 1; + } + + params.put("idx", idx); + + int seq_temp = 0; + String mseq_right = ""; + + if(seq_num == 0) { + int maxSeq = masterService.getMaxSeq(params); + + seq_temp = maxSeq + 10; + seq = Integer.toString(seq_temp); + + params.put("seq", seq); + masterService.replyWrite(params); + } else { + params.put("lseq", lseq); + + int maxSeq2 = masterService.getMaxSeq2(params); + + mseq_right = Integer.toString(maxSeq2).substring(1, 2); + + if("9".equals(mseq_right)) { + replyMax = false; + } else { + seq_temp = maxSeq2 + 1; + seq = Integer.toString(seq_temp); + + params.put("seq", seq); + masterService.replyWrite(params); + } + } + + jsonMap.put("replyMax", replyMax); + jsonMap.put("success", true); + } catch (SQLException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/board/00_write.do") + public String writeInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + return "admins/board/00_write"; + } + + @RequestMapping(value = "admins/board/00_save", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap saveInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + HashMap jsonMap = new HashMap(); + params.put("password", "kictgis1234"); + try{ + masterService.saveInfo(params); + jsonMap.put("success", true); + } catch (SQLException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + +} diff --git a/src/main/java/geoinfo/admins/board/RefrncRoomController.java b/src/main/java/geoinfo/admins/board/RefrncRoomController.java new file mode 100644 index 0000000..89c3c65 --- /dev/null +++ b/src/main/java/geoinfo/admins/board/RefrncRoomController.java @@ -0,0 +1,380 @@ +package geoinfo.admins.board; + +import egovframework.com.cmm.service.EgovProperties; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import geoinfo.admins.board.service.RefrncRoomService; +import geoinfo.com.GeoinfoCommon; +import geoinfo.session.UserInfo; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Calendar; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.List; +import java.util.Objects; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.io.FilenameUtils; +import org.apache.log4j.Logger; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +@Controller +public class RefrncRoomController { + + private static final Logger LOGGER = Logger.getLogger(RefrncRoomController.class.getName()); + + @Resource(name = "refrncRoomService") + private RefrncRoomService masterService; + + private final String savePath = EgovProperties.getProperty("Geoinfo.FilePath"); + + @RequestMapping(value = "admins/board/01.do") + public String board01( @RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(10); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List result = masterService.selectInfoList(params); + + paginationInfo.setTotalRecordCount(Integer.valueOf(((EgovMap) result.get(0)).get("totalrows").toString())); + + model.addAttribute("params", params); + model.addAttribute("result", result); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/board/01"; + } + + @RequestMapping(value = "admins/board/01_write.do") + public String write01( @RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + String pId = params.get("pId").toString(); + + model.addAttribute("pId", pId); + + return "admins/board/01_write"; + } + + @RequestMapping(value = "admins/board/01_write-post", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap saveInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request, MultipartHttpServletRequest multiRequest) throws Exception { + + HashMap jsonMap = new HashMap(); + + request.setCharacterEncoding("utf-8"); + + String subject = params.get("subject").toString(); + String contents = params.get("contents").toString(); + String cls = params.get("cls").toString(); + String topnotice = params.get("topChk").toString(); + + params.put("subject", subject); + params.put("contents", contents); + params.put("cls", cls); + params.put("topnotice", topnotice); + + MultipartFile fileName1 = multiRequest.getFile("fileName1"); + MultipartFile fileName2 = multiRequest.getFile("fileName2"); + MultipartFile fileName3 = multiRequest.getFile("fileName3"); + + try { + if(fileName1.getOriginalFilename().equals("")) { + params.put("fileName1", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName1 = L_dat + "_" + L_tmp + fileName1.getOriginalFilename().substring(fileName1.getOriginalFilename().lastIndexOf(".")); + params.put("saveName1", saveName1); + params.put("fileName1", fileName1.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName1)); + fileName1.transferTo(saveFile); + } + + if(fileName2.getOriginalFilename().equals("")) { + params.put("fileName2", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName2 = L_dat + "_" + L_tmp + fileName2.getOriginalFilename().substring(fileName2.getOriginalFilename().lastIndexOf(".")); + params.put("saveName2", saveName2); + params.put("fileName2", fileName2.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName2)); + fileName2.transferTo(saveFile); + } + + if(fileName3.getOriginalFilename().equals("")) { + params.put("fileName3", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName3 = L_dat + "_" + L_tmp + fileName3.getOriginalFilename().substring(fileName3.getOriginalFilename().lastIndexOf(".")); + params.put("saveName3", saveName3); + params.put("fileName3", fileName3.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName3)); + fileName3.transferTo(saveFile); + } + masterService.saveInfo(params); + + jsonMap.put("success", true); + } catch (IOException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/board/01_view.do") + public String view01( @RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + String aid; + if(Objects.isNull(params.get("aid"))) { + aid = params.get("idx").toString(); + } else { + aid = params.get("aid").toString(); + } + + EgovMap result = masterService.selectDetailInfo(params); + + model.addAttribute("aid", aid); + model.addAttribute("result", result); + model.addAttribute("br", "\r"); + + return "admins/board/01_view"; + } + + @RequestMapping(value = "admins/board/01_delete", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap delete01(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + HashMap jsonMap = new HashMap(); + + try { + masterService.deleteInfo(params); + + String fileName1 = GeoinfoCommon.parseData(params.get("fileName1").toString()); + String fileName2 = GeoinfoCommon.parseData(params.get("fileName2").toString()); + String fileName3 = GeoinfoCommon.parseData(params.get("fileName3").toString()); + + params.put("fileName1", fileName1); + params.put("fileName2", fileName2); + params.put("fileName3", fileName3); + + File deleteFile1 = new File(savePath + "/" + FilenameUtils.getName(fileName1)); + if(deleteFile1.exists()) { + deleteFile1.delete(); + } + + File deleteFile2 = new File(savePath + "/" + FilenameUtils.getName(fileName2)); + if(deleteFile2.exists()) { + deleteFile2.delete(); + } + + File deleteFile3 = new File(savePath + "/" + FilenameUtils.getName(fileName3)); + if(deleteFile3.exists()) { + deleteFile3.delete(); + } + + jsonMap.put("success", true); + } catch (IOException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/board/01-modify.do") + public String modify01( @RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + String aid = params.get("aid").toString(); + + EgovMap result = masterService.selectModifyInfo(params); + + model.addAttribute("aid", aid); + model.addAttribute("result", result); + + return "admins/board/01-modify"; + } + + @RequestMapping(value = "admins/board/fileDownload.do") + public void fileDownload(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + String savename = params.get("savename").toString(); + + File file = new File(savePath + "\\" + FilenameUtils.getName(savename)); + + response.setContentType("multipart/form-data"); + response.setContentLength((int)file.length()); + response.setHeader("Content-Disposition", GeoinfoCommon.safeHttpHeader("attachment; filename=\"" + savename + "\"")); + response.setHeader("Content-Transfer-Encoding", "binary"); + + OutputStream out = response.getOutputStream(); + FileInputStream fis = null; + + try { + fis = new FileInputStream(file); + FileCopyUtils.copy(fis, out); + } + catch(IOException e){ + LOGGER.error(e); + }finally{ + if(fis != null){ + try{ + fis.close(); + }catch(IOException e){ + LOGGER.error(e); + } + } + } + out.flush(); + } + + @RequestMapping(value = "admins/board/01-modify-post", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap updateInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request, MultipartHttpServletRequest multiRequest) throws Exception { + + HashMap jsonMap = new HashMap(); + + request.setCharacterEncoding("utf-8"); + + String subject = params.get("subject").toString(); + String contents = params.get("contents").toString(); + String topnotice = params.get("top").toString(); + + params.put("subject", subject); + params.put("contents", contents); + params.put("topnotice", topnotice); + + String delFile1 = params.get("delFile1").toString(); + String delFile2 = params.get("delFile2").toString(); + String delFile3 = params.get("delFile3").toString(); + + String preFile1 = params.get("preFile1").toString(); + String preFile2 = params.get("preFile2").toString(); + String preFile3 = params.get("preFile3").toString(); + + String preSaveNm1 = params.get("preSaveNm1").toString(); + String preSaveNm2 = params.get("preSaveNm2").toString(); + String preSaveNm3 = params.get("preSaveNm3").toString(); + + MultipartFile fileName1 = multiRequest.getFile("fileName1"); + MultipartFile fileName2 = multiRequest.getFile("fileName2"); + MultipartFile fileName3 = multiRequest.getFile("fileName3"); + + try { + if(!"".equals(preFile1) && "0".equals(delFile1)) { + params.put("saveName1", preSaveNm1); + params.put("fileName1", preFile1); + } else { + if(fileName1.getOriginalFilename().equals("")) { + params.put("fileName1", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName1 = L_dat + "_" + L_tmp + fileName1.getOriginalFilename().substring(fileName1.getOriginalFilename().lastIndexOf(".")); + params.put("saveName1", saveName1); + params.put("fileName1", fileName1.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName1)); + fileName1.transferTo(saveFile); + } + } + + if(!"".equals(preFile2) && "0".equals(delFile2)) { + params.put("saveName2", preSaveNm2); + params.put("fileName2", preFile2); + } else { + if(fileName2.getOriginalFilename().equals("")) { + params.put("fileName2", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName2 = L_dat + "_" + L_tmp + fileName2.getOriginalFilename().substring(fileName2.getOriginalFilename().lastIndexOf(".")); + params.put("saveName2", saveName2); + params.put("fileName2", fileName2.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName2)); + fileName2.transferTo(saveFile); + } + } + + if(!"".equals(preFile3) && "0".equals(delFile3)) { + params.put("saveName3", preSaveNm3); + params.put("fileName3", preFile3); + } else { + if(fileName3.getOriginalFilename().equals("")) { + params.put("fileName3", ""); + } else { + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName3 = L_dat + "_" + L_tmp + fileName3.getOriginalFilename().substring(fileName3.getOriginalFilename().lastIndexOf(".")); + params.put("saveName3", saveName3); + params.put("fileName3", fileName3.getOriginalFilename()); + + File saveFile = new File(savePath, FilenameUtils.getName(saveName3)); + fileName3.transferTo(saveFile); + } + } + masterService.updateInfo(params); + + jsonMap.put("success", true); + } catch (IOException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + +} diff --git a/src/main/java/geoinfo/admins/board/service/CommunityMapper.java b/src/main/java/geoinfo/admins/board/service/CommunityMapper.java new file mode 100644 index 0000000..da36c07 --- /dev/null +++ b/src/main/java/geoinfo/admins/board/service/CommunityMapper.java @@ -0,0 +1,34 @@ +package geoinfo.admins.board.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Mapper("communityMapper") +public interface CommunityMapper { + + public List selectInfo(HashMap params) throws Exception; + + public void saveInfo(HashMap params) throws Exception; + + public EgovMap selectDetailInfo(HashMap params) throws Exception; + + public void deleteInfo(HashMap params) throws Exception; + + public EgovMap selectModifyInfo(HashMap params) throws Exception; + + public void updateInfo(HashMap params) throws Exception; + + public EgovMap selectReplyInfo(HashMap params) throws Exception; + + public int getMaxIdx() throws Exception; + + public int getMaxSeq(HashMap params) throws Exception; + + public int getMaxSeq2(HashMap params) throws Exception; + + public void replyWrite(HashMap params) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/board/service/CommunityService.java b/src/main/java/geoinfo/admins/board/service/CommunityService.java new file mode 100644 index 0000000..0e3f3ca --- /dev/null +++ b/src/main/java/geoinfo/admins/board/service/CommunityService.java @@ -0,0 +1,34 @@ +package geoinfo.admins.board.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + + + +public interface CommunityService { + + public List selectInfo(HashMap params) throws Exception; + + public void saveInfo(HashMap params) throws Exception; + + public EgovMap selectDetailInfo(HashMap params) throws Exception; + + public void deleteInfo(HashMap params) throws Exception; + + public EgovMap selectModifyInfo(HashMap params) throws Exception; + + public void updateInfo(HashMap params) throws Exception; + + public EgovMap selectReplyInfo(HashMap params) throws Exception; + + public int getMaxIdx() throws Exception; + + public int getMaxSeq(HashMap params) throws Exception; + + public int getMaxSeq2(HashMap params) throws Exception; + + public void replyWrite(HashMap params) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/board/service/FreqAskQueMapper.java b/src/main/java/geoinfo/admins/board/service/FreqAskQueMapper.java new file mode 100644 index 0000000..36ada5a --- /dev/null +++ b/src/main/java/geoinfo/admins/board/service/FreqAskQueMapper.java @@ -0,0 +1,24 @@ +package geoinfo.admins.board.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Mapper("freqAskQueMapper") +public interface FreqAskQueMapper { + + public List selectInfo(HashMap params) throws Exception; + + public int getMaxIdx() throws Exception; + + public void saveInfo(HashMap params) throws Exception; + + public void deleteInfo(HashMap params) throws Exception; + + public EgovMap selectModifyInfo(HashMap params) throws Exception; + + public void updateInfo(HashMap params) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/board/service/FreqAskQueService.java b/src/main/java/geoinfo/admins/board/service/FreqAskQueService.java new file mode 100644 index 0000000..e943f6c --- /dev/null +++ b/src/main/java/geoinfo/admins/board/service/FreqAskQueService.java @@ -0,0 +1,24 @@ +package geoinfo.admins.board.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + + + +public interface FreqAskQueService { + + public List selectInfo(HashMap params) throws Exception; + + public int getMaxIdx() throws Exception; + + public void saveInfo(HashMap params) throws Exception; + + public void deleteInfo(HashMap params) throws Exception; + + public EgovMap selectModifyInfo(HashMap params) throws Exception; + + public void updateInfo(HashMap params) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/board/service/GroundReportMapper.java b/src/main/java/geoinfo/admins/board/service/GroundReportMapper.java new file mode 100644 index 0000000..9033888 --- /dev/null +++ b/src/main/java/geoinfo/admins/board/service/GroundReportMapper.java @@ -0,0 +1,28 @@ +package geoinfo.admins.board.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Mapper("groundReportMapper") +public interface GroundReportMapper { + + public List selectInfo(HashMap params) throws Exception; + + public void saveInfo(HashMap params) throws Exception; + + public EgovMap selectDetailInfo(HashMap params) throws Exception; + + public void deleteInfo(HashMap params) throws Exception; + + public EgovMap selectModifyInfo(HashMap params) throws Exception; + + public void updateInfo(HashMap params) throws Exception; + + public EgovMap selectReplyInfo(HashMap params) throws Exception; + + public int getMaxIdx() throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/board/service/GroundReportService.java b/src/main/java/geoinfo/admins/board/service/GroundReportService.java new file mode 100644 index 0000000..a51b470 --- /dev/null +++ b/src/main/java/geoinfo/admins/board/service/GroundReportService.java @@ -0,0 +1,28 @@ +package geoinfo.admins.board.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + + + +public interface GroundReportService { + + public List selectInfo(HashMap params) throws Exception; + + public void saveInfo(HashMap params) throws Exception; + + public EgovMap selectDetailInfo(HashMap params) throws Exception; + + public void deleteInfo(HashMap params) throws Exception; + + public EgovMap selectModifyInfo(HashMap params) throws Exception; + + public void updateInfo(HashMap params) throws Exception; + + public EgovMap selectReplyInfo(HashMap params) throws Exception; + + public int getMaxIdx() throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/board/service/QnaMapper.java b/src/main/java/geoinfo/admins/board/service/QnaMapper.java new file mode 100644 index 0000000..000fac6 --- /dev/null +++ b/src/main/java/geoinfo/admins/board/service/QnaMapper.java @@ -0,0 +1,36 @@ +package geoinfo.admins.board.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Mapper("qnaMapper") +public interface QnaMapper { + + public int getMaxRowNum(HashMap params) throws Exception; + + public List getQnaList(HashMap params) throws Exception; + + public List selectQnaInfo(HashMap params) throws Exception; + + public void deleteInfo(HashMap params) throws Exception; + + public EgovMap selectModifyInfo(HashMap params) throws Exception; + + public void updateInfo(HashMap params) throws Exception; + + public EgovMap selectReplyInfo(HashMap params) throws Exception; + + public int getMaxIdx() throws Exception; + + public int getMaxSeq(HashMap params) throws Exception; + + public int getMaxSeq2(HashMap params) throws Exception; + + public void replyWrite(HashMap params) throws Exception; + + public void saveInfo(HashMap params) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/board/service/QnaService.java b/src/main/java/geoinfo/admins/board/service/QnaService.java new file mode 100644 index 0000000..9d2e906 --- /dev/null +++ b/src/main/java/geoinfo/admins/board/service/QnaService.java @@ -0,0 +1,36 @@ +package geoinfo.admins.board.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + + + +public interface QnaService { + + public int getMaxRowNum(HashMap params) throws Exception; + + public List getQnaList(HashMap params) throws Exception; + + public List selectQnaInfo(HashMap params) throws Exception; + + public void deleteInfo(HashMap params) throws Exception; + + public EgovMap selectModifyInfo(HashMap params) throws Exception; + + public void updateInfo(HashMap params) throws Exception; + + public EgovMap selectReplyInfo(HashMap params) throws Exception; + + public int getMaxIdx() throws Exception; + + public int getMaxSeq(HashMap params) throws Exception; + + public int getMaxSeq2(HashMap params) throws Exception; + + public void replyWrite(HashMap params) throws Exception; + + public void saveInfo(HashMap params) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/board/service/RefrncRoomMapper.java b/src/main/java/geoinfo/admins/board/service/RefrncRoomMapper.java new file mode 100644 index 0000000..5b4bbd7 --- /dev/null +++ b/src/main/java/geoinfo/admins/board/service/RefrncRoomMapper.java @@ -0,0 +1,24 @@ +package geoinfo.admins.board.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Mapper("refrncRoomMapper") +public interface RefrncRoomMapper { + + public List selectInfoList(HashMap params) throws Exception; + + public void saveInfo(HashMap params) throws Exception; + + public EgovMap selectDetailInfo(HashMap params) throws Exception; + + public void deleteInfo(HashMap params) throws Exception; + + public EgovMap selectModifyInfo(HashMap params) throws Exception; + + public void updateInfo(HashMap params) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/board/service/RefrncRoomService.java b/src/main/java/geoinfo/admins/board/service/RefrncRoomService.java new file mode 100644 index 0000000..0decf9e --- /dev/null +++ b/src/main/java/geoinfo/admins/board/service/RefrncRoomService.java @@ -0,0 +1,24 @@ +package geoinfo.admins.board.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + + + +public interface RefrncRoomService { + + public List selectInfoList(HashMap params) throws Exception; + + public void saveInfo(HashMap params) throws Exception; + + public EgovMap selectDetailInfo(HashMap params) throws Exception; + + public void deleteInfo(HashMap params) throws Exception; + + public EgovMap selectModifyInfo(HashMap params) throws Exception; + + public void updateInfo(HashMap params) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/board/service/impl/CommunityServiceImpl.java b/src/main/java/geoinfo/admins/board/service/impl/CommunityServiceImpl.java new file mode 100644 index 0000000..9d4e033 --- /dev/null +++ b/src/main/java/geoinfo/admins/board/service/impl/CommunityServiceImpl.java @@ -0,0 +1,75 @@ +package geoinfo.admins.board.service.impl; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.board.service.CommunityMapper; +import geoinfo.admins.board.service.CommunityService; + +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +@Service("communityService") +public class CommunityServiceImpl implements CommunityService { + + @Resource(name = "communityMapper") + private CommunityMapper masterMapper; + + @Override + public List selectInfo(HashMap params) throws Exception { + return masterMapper.selectInfo(params); + } + + @Override + public void saveInfo(HashMap params) throws Exception { + masterMapper.saveInfo(params); + } + + @Override + public EgovMap selectDetailInfo(HashMap params) throws Exception { + return masterMapper.selectDetailInfo(params); + } + + @Override + public void deleteInfo(HashMap params) throws Exception { + masterMapper.deleteInfo(params); + } + + @Override + public EgovMap selectModifyInfo(HashMap params) throws Exception { + return masterMapper.selectModifyInfo(params); + } + + @Override + public void updateInfo(HashMap params) throws Exception { + masterMapper.updateInfo(params); + } + + @Override + public EgovMap selectReplyInfo(HashMap params) throws Exception { + return masterMapper.selectReplyInfo(params); + } + + @Override + public int getMaxIdx() throws Exception { + return masterMapper.getMaxIdx(); + } + + @Override + public int getMaxSeq(HashMap params) throws Exception { + return masterMapper.getMaxSeq(params); + } + + @Override + public int getMaxSeq2(HashMap params) throws Exception { + return masterMapper.getMaxSeq2(params); + } + + @Override + public void replyWrite(HashMap params) throws Exception { + masterMapper.replyWrite(params); + } + +} diff --git a/src/main/java/geoinfo/admins/board/service/impl/FreqAskQueServiceImpl.java b/src/main/java/geoinfo/admins/board/service/impl/FreqAskQueServiceImpl.java new file mode 100644 index 0000000..f2044fb --- /dev/null +++ b/src/main/java/geoinfo/admins/board/service/impl/FreqAskQueServiceImpl.java @@ -0,0 +1,50 @@ +package geoinfo.admins.board.service.impl; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.board.service.FreqAskQueMapper; +import geoinfo.admins.board.service.FreqAskQueService; + +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +@Service("freqAskQueService") +public class FreqAskQueServiceImpl implements FreqAskQueService { + + @Resource(name = "freqAskQueMapper") + private FreqAskQueMapper masterMapper; + + @Override + public List selectInfo(HashMap params) throws Exception { + return masterMapper.selectInfo(params); + } + + @Override + public int getMaxIdx() throws Exception { + return masterMapper.getMaxIdx(); + } + + @Override + public void saveInfo(HashMap params) throws Exception { + masterMapper.saveInfo(params); + } + + @Override + public void deleteInfo(HashMap params) throws Exception { + masterMapper.deleteInfo(params); + } + + @Override + public EgovMap selectModifyInfo(HashMap params) throws Exception { + return masterMapper.selectModifyInfo(params); + } + + @Override + public void updateInfo(HashMap params) throws Exception { + masterMapper.updateInfo(params); + } + +} diff --git a/src/main/java/geoinfo/admins/board/service/impl/GroundReportServiceImpl.java b/src/main/java/geoinfo/admins/board/service/impl/GroundReportServiceImpl.java new file mode 100644 index 0000000..2d72a46 --- /dev/null +++ b/src/main/java/geoinfo/admins/board/service/impl/GroundReportServiceImpl.java @@ -0,0 +1,60 @@ +package geoinfo.admins.board.service.impl; + +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.board.service.GroundReportMapper; +import geoinfo.admins.board.service.GroundReportService; + +@Service("groundReportService") +public class GroundReportServiceImpl implements GroundReportService { + + @Resource(name = "groundReportMapper") + private GroundReportMapper masterMapper; + + @Override + public List selectInfo(HashMap params) throws Exception { + return masterMapper.selectInfo(params); + } + + @Override + public void saveInfo(HashMap params) throws Exception { + masterMapper.saveInfo(params); + } + + @Override + public EgovMap selectDetailInfo(HashMap params) throws Exception { + return masterMapper.selectDetailInfo(params); + } + + @Override + public void deleteInfo(HashMap params) throws Exception { + masterMapper.deleteInfo(params); + } + + @Override + public EgovMap selectModifyInfo(HashMap params) throws Exception { + return masterMapper.selectModifyInfo(params); + } + + @Override + public void updateInfo(HashMap params) throws Exception { + masterMapper.updateInfo(params); + } + + @Override + public EgovMap selectReplyInfo(HashMap params) throws Exception { + return masterMapper.selectReplyInfo(params); + } + + @Override + public int getMaxIdx() throws Exception { + return masterMapper.getMaxIdx(); + } + +} diff --git a/src/main/java/geoinfo/admins/board/service/impl/QnaServiceImpl.java b/src/main/java/geoinfo/admins/board/service/impl/QnaServiceImpl.java new file mode 100644 index 0000000..136ba27 --- /dev/null +++ b/src/main/java/geoinfo/admins/board/service/impl/QnaServiceImpl.java @@ -0,0 +1,80 @@ +package geoinfo.admins.board.service.impl; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.board.service.QnaMapper; +import geoinfo.admins.board.service.QnaService; + +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +@Service("qnaService") +public class QnaServiceImpl implements QnaService { + + @Resource(name = "qnaMapper") + private QnaMapper masterMapper; + + @Override + public int getMaxRowNum(HashMap params) throws Exception { + return masterMapper.getMaxRowNum(params); + } + + @Override + public List getQnaList(HashMap params) throws Exception { + return masterMapper.getQnaList(params); + } + + @Override + public List selectQnaInfo(HashMap params) throws Exception { + return masterMapper.selectQnaInfo(params); + } + + @Override + public void deleteInfo(HashMap params) throws Exception { + masterMapper.deleteInfo(params); + } + + @Override + public EgovMap selectModifyInfo(HashMap params) throws Exception { + return masterMapper.selectModifyInfo(params); + } + + @Override + public void updateInfo(HashMap params) throws Exception { + masterMapper.updateInfo(params); + } + + @Override + public EgovMap selectReplyInfo(HashMap params) throws Exception { + return masterMapper.selectReplyInfo(params); + } + + @Override + public int getMaxIdx() throws Exception { + return masterMapper.getMaxIdx(); + } + + @Override + public int getMaxSeq(HashMap params) throws Exception { + return masterMapper.getMaxSeq(params); + } + + @Override + public int getMaxSeq2(HashMap params) throws Exception { + return masterMapper.getMaxSeq2(params); + } + + @Override + public void replyWrite(HashMap params) throws Exception { + masterMapper.replyWrite(params); + } + + @Override + public void saveInfo(HashMap params) throws Exception { + masterMapper.saveInfo(params); + } + +} diff --git a/src/main/java/geoinfo/admins/board/service/impl/RefrncRoomServiceImpl.java b/src/main/java/geoinfo/admins/board/service/impl/RefrncRoomServiceImpl.java new file mode 100644 index 0000000..f67546f --- /dev/null +++ b/src/main/java/geoinfo/admins/board/service/impl/RefrncRoomServiceImpl.java @@ -0,0 +1,49 @@ +package geoinfo.admins.board.service.impl; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.board.service.RefrncRoomMapper; +import geoinfo.admins.board.service.RefrncRoomService; + +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +@Service("refrncRoomService") +public class RefrncRoomServiceImpl implements RefrncRoomService { + + @Resource(name = "refrncRoomMapper") + private RefrncRoomMapper masterMapper; + + @Override + public List selectInfoList(HashMap params) throws Exception { + return masterMapper.selectInfoList(params); + } + + @Override + public void saveInfo(HashMap params) throws Exception { + masterMapper.saveInfo(params); + } + + @Override + public EgovMap selectDetailInfo(HashMap params) throws Exception { + return masterMapper.selectDetailInfo(params); + } + + @Override + public void deleteInfo(HashMap params) throws Exception { + masterMapper.deleteInfo(params); + } + + @Override + public EgovMap selectModifyInfo(HashMap params) throws Exception { + return masterMapper.selectModifyInfo(params); + } + + @Override + public void updateInfo(HashMap params) throws Exception { + masterMapper.updateInfo(params); + } +} diff --git a/src/main/java/geoinfo/admins/chLog/BoringInfoStatController.java b/src/main/java/geoinfo/admins/chLog/BoringInfoStatController.java new file mode 100644 index 0000000..2d57b77 --- /dev/null +++ b/src/main/java/geoinfo/admins/chLog/BoringInfoStatController.java @@ -0,0 +1,201 @@ +package geoinfo.admins.chLog; + +import geoinfo.admins.chLog.service.BoringInfoStatService; +import geoinfo.com.EgovExcel; +import geoinfo.com.GeoinfoCommon; +import geoinfo.comm.util.strUtil; +import geoinfo.session.UserInfo; + +import java.io.File; +import java.net.URLEncoder; +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; + +import com.clipsoft.clipreport.oof.OOFDocument; +import com.clipsoft.clipreport.oof.OOFFile; +import com.clipsoft.clipreport.oof.connection.OOFConnection; +import com.clipsoft.clipreport.server.service.ReportUtil; + +/** + * 관리자시스템 > 유통/공급 통계분석 > 시추정보통계를 처리하는 Controller 클래스 + * + * @author 공간정보기술(주) + * @since 2017.06.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *      수정일                 수정자                     수정내용
+ *  ------------    ----------------    ---------------------------
+ *   2017.06.07     공간정보기술(주)            최초 생성
+ *
+ * 
+ */ +@Controller +public class BoringInfoStatController { + @Resource(name = "boringInfoStatService") + private BoringInfoStatService masterService; + + @RequestMapping(value = "admins/staticState/30.do") + public String selectInfoListStaticState(ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + return "admins/staticState/30"; + } + + @RequestMapping(value = "admins/staticState/30_jsondata_grid1", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap selectInfoGrid(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + HashMap jsonMap = new HashMap(); + + strUtil sUtil = new strUtil(); + + String srchMode = sUtil.checkNull(GeoinfoCommon.parseData(params.get("searchMode").toString())); + String startDate = sUtil.checkNull(GeoinfoCommon.parseData(params.get("startDate").toString())); + String endDate = sUtil.checkNull(GeoinfoCommon.parseData(params.get("endDate").toString())); + + if("search".equals(srchMode) == false) { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); + Calendar currentDate = Calendar.getInstance(); + + currentDate.add(Calendar.MONTH, -3); + startDate = dateFormat.format(currentDate.getTime()); + + endDate = dateFormat.format(currentDate.getTime()); + } + + if(("").equals(startDate)) { + startDate = "00000000"; + } + + if(("").equals(endDate)) { + endDate = "99999999"; + } + + params.put("srchStartDate", startDate); + params.put("srchEndDate", endDate); + + try{ + ArrayList result = masterService.selectInfoGrid(params); + + jsonMap.put("srchStartDate", startDate); + jsonMap.put("srchEndDate", endDate); + jsonMap.put("dataList1", result); + jsonMap.put("success", true); + } catch (SQLException Ex) { + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "web/popup/calender.do") + public String selectInfoCalender(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + strUtil sUtil = new strUtil(); + String inputID = sUtil.checkNull(params.get("id").toString()); + + model.addAttribute("inputID", inputID); + + return "web/popup/calender"; + } + + @RequestMapping(value = "admins/staticState/input.do") + public String selectInfoListInput(ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + return "admins/staticState/input"; + } + + @RequestMapping(value = "admins/staticState/downloadStatReport.do") + public String selectInfoListReport(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + String srchStartDate = params.get("startDate").toString(); + String srchEndDate = params.get("endDate").toString(); + + OOFDocument oof = OOFDocument.newOOF(); + + String domain = "localhost".equals(request.getServerName()) ? + request.getServerName()+":"+request.getServerPort() : request.getServerName(); + + OOFFile file = oof.addFile("crf.root", "http://"+domain+"/web/rex/statistic/statistic.crf"); + OOFConnection oc = file.addConnectionData("*","oracle1"); + oof.addField("start_year", srchStartDate); + oof.addField("end_year", srchEndDate); + + String propertyPath = request.getSession().getServletContext().getRealPath("") + File.separator + "WEB-INF" + File.separator + "clipreport4" + File.separator + "clipreport4.properties"; + + String resultKey = ReportUtil.createReport(request, oof.toString(), "false", "false", "localhost", propertyPath); + + model.addAttribute("resultKey", resultKey); + + return "admins/staticState/downloadStatReport"; + } + + @RequestMapping(value = "admins/userLog/30_excel.do") + public void selectInfoListVisitorExcel(XSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListExcel(); + + String[] arrHeader = {"다운로드 날짜", "이메일", "핸드폰", "프로젝트 명", "이름", "아이디", "활용범위"}; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "시추정보 다운로드 현황"); + map.put("fileName", "시추정보다운로드현황_"); + + buildExcelDocument(map, workbook, request, response); + } + + public void buildExcelDocument(Map model, XSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + List selectInfoListExcel = (List) model.get("selectInfoListExcel"); + + String[] arrHeader = (String[]) model.get("arrHeader"); + + Sheet sheet = workbook.createSheet((String) model.get("sheetName")); + + EgovExcel.SetExcelList(workbook, sheet, arrHeader, selectInfoListExcel, 0, 0); + + response.setContentType("application/vnd.ms-excel"); + response.setHeader("Content-disposition", "attachment;filename=" + + URLEncoder.encode((String) model.get("fileName") + (new SimpleDateFormat("yyyy.MM.dd", Locale.KOREA)).format(new Date()), "UTF-8") + ".xlsx" + ";"); + ServletOutputStream myOut = response.getOutputStream(); + workbook.write(myOut); // 파일 저장 + } +} diff --git a/src/main/java/geoinfo/admins/chLog/ChInfoController.java b/src/main/java/geoinfo/admins/chLog/ChInfoController.java new file mode 100644 index 0000000..68ea22f --- /dev/null +++ b/src/main/java/geoinfo/admins/chLog/ChInfoController.java @@ -0,0 +1,977 @@ +package geoinfo.admins.chLog; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.text.DecimalFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Objects; + +import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.io.FilenameUtils; +import org.apache.log4j.Logger; +import org.apache.poi.hssf.usermodel.HSSFRow; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.Sheet; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; + +import egovframework.com.cmm.service.EgovProperties; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import geoinfo.admins.board.RefrncRoomController; +import geoinfo.admins.chLog.service.ChInfoService; +import geoinfo.com.EgovExcel; +import geoinfo.com.GeoinfoCommon; +import geoinfo.session.UserInfo; + +/** + * 관리자시스템 > 유통/공급 통계분석 > 유통정보를 처리하는 Controller 클래스 + * + * @author 공간정보기술(주) + * @since 2017.06.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *      수정일                 수정자                     수정내용
+ *  ------------    ----------------    ---------------------------
+ *   2017.06.07		공간정보기술(주)				최초 생성
+ *   2023.11.01		ICTWAY 임효주				공종/공정/광역시도/시군구별 통계 추가
+ *
+ *      
+ */ +@Controller +public class ChInfoController { + @Resource(name = "chInfoService") + private ChInfoService masterService; + + private static final Logger LOGGER = Logger.getLogger(RefrncRoomController.class.getName()); + + // 운영서버 경로 + // private final String savePath = "D:\\Tomcat6\\geoinfoEgov\\webapps\\geoinfo\\files"; + // 개발서버 경로 + private final String savePath = EgovProperties.getProperty("Geoinfo.FilePath"); + + /** + * 관리자시스템 > 유통/공급 통계분석 > 유통정보 > 날짜별 리스트 + * + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/chLog/00.do") + public String selectInfoListDate(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List getYear_date = masterService.getYear_date(); + + if ("".equals(params.get("year")) || params.get("year") == null) { + params.put("year", ((EgovMap) getYear_date.get(0)).get("value")); + } + + List getMonth_date = masterService.getMonth_date(params); + + if ("".equals(params.get("month")) || params.get("month") == null || (getMonth_date.size() != 0 && getMonth_date.size() < Integer.valueOf((String) params.get("month")))) { + params.put("month", ((EgovMap) getMonth_date.get(0)).get("value")); + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(20); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + if (params.get("agreeyn") == null || "".equals(params.get("agreeyn"))) { + params.put("agreeyn", "0"); + } + if (params.get("downyn") == null || "".equals(params.get("downyn"))) { + params.put("downyn", "0"); + } + + List resultList = masterService.selectInfoListDate(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("getYear_date", getYear_date); + model.addAttribute("getMonth_date", getMonth_date); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/chLog/00"; + } + + /** + * 관리자시스템 > 유통/공급 통계분석 > 유통정보 > 날짜별 리스트 > 그래프 + * + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/chLog/00_graph.do") + public String selectInfoGraph(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List getYear_date = masterService.getYear_date(); + + if ("".equals(params.get("year")) || params.get("year") == null) { + params.put("year", ((EgovMap) getYear_date.get(0)).get("value")); + } + + List getMonth_date = masterService.getMonth_date(params); + + if ("".equals(params.get("month")) || params.get("month") == null || (getMonth_date.size() != 0 && getMonth_date.size() < Integer.valueOf((String) params.get("month")))) { + params.put("month", ((EgovMap) getMonth_date.get(0)).get("value")); + } + + EgovMap result = masterService.selectInfoGraph(params); + + model.addAttribute("params", params); + model.addAttribute("getYear_date", getYear_date); + model.addAttribute("getMonth_date", getMonth_date); + model.addAttribute("result", result); + + return "admins/chLog/00_graph"; + } + + /** + * 관리자시스템 > 유통/공급 통계분석 > 유통정보 > 날짜별 리스트 엑셀 다운로드 + * + * @param params + * @param workbook + * @param request + * @param response + * @throws Exception + */ + @RequestMapping(value = "admins/chLog/00_excel.do") + public void selectInfoListDateExcel(@RequestParam HashMap params, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) + throws Exception { + + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListDateExcel(params); + + String[] arrHeader = { "번호", "사업명", "다운로드 수" }; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "날짜별 유통정보"); + map.put("fileName", "날짜별유통정보_"); + + buildExcelDocument(map, workbook, request, response); + } + + /** + * 관리자시스템 > 유통/공급 통계분석 > 유통정보 > 사업별 리스트 + * + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/chLog/01.do") + public String selectInfoListBusiness(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(20); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectInfoListBusiness(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/chLog/01"; + } + + /** + * 관리자시스템 > 유통/공급 통계분석 > 유통정보 > 사업별 리스트 엑셀 다운로드 + * + * @param params + * @param workbook + * @param request + * @param response + * @throws Exception + */ + @RequestMapping(value = "admins/chLog/01_excel.do") + public void selectInfoListBusinessExcel(@RequestParam HashMap params, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) + throws Exception { + + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListBusinessExcel(params); + + String[] arrHeader = { "번호", "사업명", "다운로드 수" }; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "사업별 유통정보"); + map.put("fileName", "사업별유통정보_"); + + buildExcelDocument(map, workbook, request, response); + } + + /** + * 관리자시스템 > 유통/공급 통계분석 > 유통정보 > 다운로드 로그정보 팝업 + * + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/chLog/download_view.do") + public String selectInfoListDateLogPop(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) + throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(6); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectInfoListDateLogPop(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/chLog/download_view"; + } + + @RequestMapping(value = "admins/chLog/03.do") + public String selectInfoListPurpose(ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List resultList = masterService.selectInfoListPurpose(); + + model.addAttribute("resultList", resultList); + + return "admins/chLog/03"; + } + + @RequestMapping(value = "admins/chLog/03_excel.do") + public void selectInfoListPurposeExcel(HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListPurpose(); + + String[] arrHeader = { "년도", "정책입안", "학술연구", "공사계획 및 예비조사", "기본설계", "실시설계", "시공 및 유지관리", "사업비산정", "지하시설물 유지관리", + "스마트시티","도시재생","지진 예방","산사태 예방","급경사지 관리","홍수 예방","지하안전영향평가","소규모지하안전영향평가","사후지하안전영향조사","지반침하위험도평가","지하안전점검", + "기타", "검수", "총계" }; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "목적별 유통정보"); + map.put("fileName", "목적별유통정보_"); + + buildExcelDocument(map, workbook, request, response); + } + + /** + * 2023.11.01 LHJ 공종별 시추공등록 통계 추가 + * 2023.11.01 LHJ 유통/공급 통계분석 > 유통정보 > 공종별 리스트 + * + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/chLog/11.do") + public String selectInfoListGongjong(ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List> originalList = masterService.selectInfoListGongjong(); + List> transposedList = new ArrayList<>(); + transposedList = transposeMatrix(originalList); + List> resultList = transposedList; + model.addAttribute("resultList", resultList); + + ObjectMapper mapper = new ObjectMapper(); + String jsonList = mapper.writeValueAsString(resultList); + model.addAttribute("jsonList", jsonList); + + return "admins/chLog/11"; + } + + /** + * 2024.01.09 LHJ 공정별 시추공등록 통계 추가 + * 2023.01.09 LHJ 유통/공급 통계분석 > 유통정보 > 공정별 리스트 + * + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/chLog/12.do") + public String selectInfoListGongjeong(ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List> originalList = masterService.selectInfoListGongjeong(); + List> transposedList = new ArrayList<>(); + transposedList = transposeMatrix(originalList); + List> resultList = transposedList; + model.addAttribute("resultList", resultList); + + ObjectMapper mapper = new ObjectMapper(); + String jsonList = mapper.writeValueAsString(resultList); + model.addAttribute("jsonList", jsonList); + + return "admins/chLog/12"; + } + + /** + * 2024.01.10 LHJ 시도별 프로젝트 등록 통계 추가 + * 2023.01.10 LHJ 유통/공급 통계분석 > 유통정보 > 시도별 리스트 + * + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/chLog/13.do") + public String selectInfoListSido(ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List> originalList = masterService.selectInfoListSido(); + List> transposedList = new ArrayList<>(); + transposedList = transposeMatrix(originalList); + List> resultList = transposedList; + model.addAttribute("resultList", resultList); + + ObjectMapper mapper = new ObjectMapper(); + String jsonList = mapper.writeValueAsString(resultList); + model.addAttribute("jsonList", jsonList); + + return "admins/chLog/13"; + } + + /** + * 2024.01.30 LHJ 시군구별 프로젝트 등록 통계 추가 + * 2023.01.30 LHJ 유통/공급 통계분석 > 유통정보 > 시군구별 리스트 + * + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/chLog/14.do") + public String selectInfoListSigungu_imsi(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + String sidoCode; + + if(params != null && params.get("sidoCode") != null && !((params.get("sidoCode")).equals(""))) { + sidoCode = params.get("sidoCode").toString(); + } else { + sidoCode = "04:"; + } + + List> sigunguCode = masterService.selectSigunguCode(sidoCode); + + int sidoLength = 0; + List aliasList = new ArrayList<>(); + outerloop: + + for (char first = 'A'; first <= 'Z'; ++first) { + for (char second = 'A'; second <= 'Z'; ++second) { + aliasList.add("" + first + second); + sidoLength++; + if (sidoLength == sigunguCode.size()) { + break outerloop; + } + } + } + + HashMap paramMap = new HashMap<>(); + + paramMap.put("sigunguCode", sigunguCode); + paramMap.put("sidoCode", sidoCode); + paramMap.put("aliasList", aliasList); + + List> originalList = masterService.selectInfoListSigungu(paramMap); + List> transposedList = new ArrayList<>(); + transposedList = transposeMatrix(originalList); + List> resultList = transposedList; + model.addAttribute("resultList", resultList); + + model.addAttribute("sidoCode", sidoCode); + + ObjectMapper mapper = new ObjectMapper(); + String jsonList = mapper.writeValueAsString(resultList); + model.addAttribute("jsonList", jsonList); + + return "admins/chLog/14"; + } + + + public void buildExcelDocument(Map model, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + List selectInfoListExcel = (List) model.get("selectInfoListExcel"); + + String[] arrHeader = (String[]) model.get("arrHeader"); + + Sheet sheet = workbook.createSheet((String) model.get("sheetName")); + + if (Objects.nonNull(arrHeader)) { + EgovExcel.SetExcelList(workbook, sheet, arrHeader, selectInfoListExcel, 0, 0); + } else { + EgovExcel.SetExcelList(workbook, sheet, selectInfoListExcel, 0, 0); + } + response.setContentType("application/vnd.ms-excel"); + response.setHeader("Content-disposition", "attachment;filename=" + + URLEncoder.encode((String) model.get("fileName") + (new SimpleDateFormat("yyyyMMdd", Locale.KOREA)).format(new Date()), "UTF-8") + ".xls" + ";"); + ServletOutputStream myOut = response.getOutputStream(); + workbook.write(myOut); // 파일 저장 + } + + @RequestMapping(value = "admins/chLog/41.do") + public String selectLiqInfoList( @RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(10); //searchVO.getPageUnit() + paginationInfo.setPageSize(10); //searc1hVO.getPageSize() + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectLiqInfoList(params); + int totCnt = masterService.selectLiqInfoListCnt(params); + paginationInfo.setTotalRecordCount(totCnt); + + model.addAttribute("params", params); + model.addAttribute("liqInfo", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/chLog/41"; + } + + @RequestMapping(value = "admins/chLog/41_view.do") + public String selectLiqInfoDetailView(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + EgovMap resultList = masterService.selectWebLiqInfo(params); + + String cntChk = "R"; + String purpose_code = "READ"; + + params.put("cntChk", cntChk); + params.put("purpose_code", purpose_code); + + masterService.updateLiqInfoLog(params); + + model.addAttribute("detailView", resultList); + model.addAttribute("br", "\r"); + + return "admins/chLog/41_view"; + } + + @RequestMapping(value = "admins/chLog/41_write.do") + public String selectLiqInfoListWrite(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + return "admins/chLog/41_write"; + } + + @RequestMapping(value = "admins/chLog/51.do") + public String selectLiqInfoListDate(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(20); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + if((params.get("searchTitle") == null || "".equals(params.get("searchTitle")))) { + params.put("searchTitle", "2"); + }else { + params.put("searchTitle", params.get("searchTitle")); + } + + List resultList = masterService.selectLiqInfoListDate(params); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + + return "admins/chLog/51"; + } + + /** + * 관리자시스템 > 액상화 위험지도 사업별 통계 엑셀 다운로드 + * + * @param params + * @param workbook + * @param request + * @param response + * @throws Exception + */ + @RequestMapping(value = "admins/notice/51_excel.do") + public void selectLiqInfoListDateExcel(@RequestParam HashMap params, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) + throws Exception { + + HashMap map = new HashMap(); + + List selectLiqInfoListExcel = masterService.selectLiqInfoListDateExcel(params); + + String[] arrHeader = { "번호", "파일명", "주소", "조회 수" , "다운로드 수" }; + + map.put("selectLiqInfoListExcel", selectLiqInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "액상화 위험정보"); + map.put("fileName", "액상화 위험정보_"); + + buildExcelLiq(map, workbook, request, response); + } + + @RequestMapping(value = "admins/chLog/52.do") + public String selectSidoInfoListDate(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(20); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + if((params.get("searchTitle") == null || "".equals(params.get("searchTitle")))) { + params.put("searchTitle", "1"); + }else { + params.put("searchTitle", params.get("searchTitle")); + } + List resultList = masterService.selectLiqSidoInfoListDate(params); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + + return "admins/chLog/52"; + } + + /** + * 관리자시스템 > 액상화 위험지도 지역별 통계 엑셀 다운로드 + * + * @param params + * @param workbook + * @param request + * @param response + * @throws Exception + */ + @RequestMapping(value = "admins/notice/52_excel.do") + public void selectSidoInfoListDateExcel(@RequestParam HashMap params, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) + throws Exception { + + HashMap map = new HashMap(); + + List selectLiqInfoListExcel = masterService.selectLiqInfoListDateExcel(params); + + String[] arrHeader = { "번호", "파일명", "주소", "조회 수" , "다운로드 수" }; + + map.put("selectLiqInfoListExcel", selectLiqInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "액상화 위험정보"); + map.put("fileName", "액상화 위험정보_"); + + buildExcelLiq(map, workbook, request, response); + } + + /** + * 관리자시스템 > 액상화 위험지도 로그정보 팝업 + * + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/chLog/download_liq.do") + public String selectLiqInfoListDateLogPop(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) + throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(6); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectLiqInfoListLogPop(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/chLog/download_liq"; + } + + public void buildExcelLiq(Map model, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + List selectLiqInfoListExcel = (List) model.get("selectLiqInfoListExcel"); + + String[] arrHeader = (String[]) model.get("arrHeader"); + + Sheet sheet = workbook.createSheet((String) model.get("sheetName")); + + EgovExcel.SetExcelList(workbook, sheet, arrHeader, selectLiqInfoListExcel, 0, 0); + + response.setContentType("application/vnd.ms-excel"); + response.setHeader("Content-disposition", "attachment;filename=" + + URLEncoder.encode((String) model.get("fileName") + (new SimpleDateFormat("yyyy.MM.dd", Locale.KOREA)).format(new Date()), "UTF-8") + ".xls" + ";"); + ServletOutputStream myOut = response.getOutputStream(); + workbook.write(myOut); // 파일 저장 + } + + @RequestMapping(value = "admins/liq/fileDownload.do") + public void fileDownload(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + String savename = params.get("savename").toString(); + + String cntChk = "D"; + String purpose_code = "DOWN"; + + params.put("cntChk", cntChk); + params.put("purpose_code", purpose_code); + masterService.updateLiqInfoLog(params); + + File file = new File(savePath + "\\" + FilenameUtils.getName(savename)); + + response.setContentType("multipart/form-data"); + response.setContentLength((int)file.length()); + response.setHeader("Content-Disposition", GeoinfoCommon.safeHttpHeader("attachment; filename=\"" + savename + "\"")); + response.setHeader("Content-Transfer-Encoding", "binary"); + + OutputStream out = response.getOutputStream(); + FileInputStream fis = null; + + try { + fis = new FileInputStream(file); + FileCopyUtils.copy(fis, out); + } + catch(IOException e){ + LOGGER.error(e); + }finally{ + if(fis != null){ + try{ + fis.close(); + }catch(IOException e){ + LOGGER.error(e); + } + } + } + out.flush(); + } + + @SuppressWarnings("unused") + private List> transposeMatrix(List> originalList) { + + List> valueList = new ArrayList<>(); + List> transposedList = new ArrayList<>(); + + /** originalList의 value만 list로 만듬 **/ + for (Map row : originalList) { + valueList.add(new ArrayList<>(row.values())); + } + + /** 행과 열 뒤집음 **/ + if (!valueList.isEmpty()) { + int size = valueList.get(0).size(); + for (int i = 0; i < size; i++) { + List columnData = new ArrayList<>(); + for (List row : valueList) { + columnData.add(row.get(i)); + } + transposedList.add(columnData); + } + } + + /** 첫번째 열 숫자의 오름차순 순서대로 행의 순서를 정리하고, 그 첫번째 열을 삭제함 **/ + Collections.sort(transposedList, new java.util.Comparator>() { + @Override + public int compare(List o1, List o2) { + return Integer.compare(Integer.parseInt((String) o1.get(0)), Integer.parseInt((String) o2.get(0))); + } + }); + for (List row : transposedList) { + row.remove(0); + } + + /** 숫자 포맷팅 **/ + DecimalFormat df = new DecimalFormat("#,###"); + for (int i = 1; i < transposedList.size(); i++) { + List row = transposedList.get(i); + for (int j = 0; j < row.size(); j++) { + Object data = row.get(j); + if (data instanceof String) { + try { + Number num = df.parse((String) data); + row.set(j, df.format(num)); + } catch (ParseException e) { + } + } + } + } + return transposedList; + } + + @RequestMapping(value = "admins/downloadExcel.do", method = RequestMethod.POST) + public void downloadExcel(@RequestParam HashMap params, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + String pId = (String) params.get("pId"); + String resultListJson = (String) params.get("resultList"); + + ObjectMapper mapper = new ObjectMapper(); + List> result = mapper.readValue(resultListJson, new TypeReference>>(){}); + + String fileName = ""; + String sheetName = ""; + + switch (pId) { + case "11": + fileName = "공종별등록정보_"; + sheetName = "공종별등록정보"; + break; + case "12": + fileName = "공정별등록정보_"; + sheetName = "공정별등록정보"; + break; + case "13": + fileName = "시도별등록정보_"; + sheetName = "시도별등록정보"; + break; + case "14": + String sidoCode = (String) params.get("sidoCode"); + switch (sidoCode) { + case "04:": + fileName = "시군구별_서울특별시_"; + sheetName = "시군구별_서울특별시"; + break; + case "05:": + fileName = "시군구별_부산광역시_"; + sheetName = "시군구별_부산광역시"; + break; + case "06:": + fileName = "시군구별_광주광역시_"; + sheetName = "시군구별_광주광역시"; + break; + case "07:": + fileName = "시군구별_대전광역시_"; + sheetName = "시군구별_대전광역시"; + break; + case "08:": + fileName = "시군구별_대구광역시_"; + sheetName = "시군구별_대구광역시"; + break; + case "09:": + fileName = "시군구별_인천광역시_"; + sheetName = "시군구별_인천광역시"; + break; + case "10:": + fileName = "시군구별_울산광역시_"; + sheetName = "시군구별_울산광역시"; + break; + case "11:": + fileName = "시군구별_경기도_"; + sheetName = "시군구별_경기도"; + break; + case "12:": + fileName = "시군구별_강원도_"; + sheetName = "시군구별_강원도"; + break; + case "13:": + fileName = "시군구별_충청북도_"; + sheetName = "시군구별_충청북도"; + break; + case "14:": + fileName = "시군구별_충청남도_"; + sheetName = "시군구별_충청남도"; + break; + case "15:": + fileName = "시군구별_경상북도_"; + sheetName = "시군구별_경상북도"; + break; + case "16:": + fileName = "시군구별_경상남도_"; + sheetName = "시군구별_경상남도"; + break; + case "17:": + fileName = "시군구별_전라북도_"; + sheetName = "시군구별_전라북도"; + break; + case "18:": + fileName = "시군구별_전라남도_"; + sheetName = "시군구별_전라남도"; + break; + case "19:": + fileName = "시군구별_제주특별자치도_"; + sheetName = "시군구별_제주특별자치도"; + break; + case "20:": + fileName = "시군구별_세종특별자치시_"; + sheetName = "시군구별_세종특별자치시"; + break; + } + break; + } + + HashMap map = new HashMap(); + + map.put("selectInfoListExcel", result); + map.put("fileName", fileName); + map.put("sheetName", sheetName); + + buildExcelDocument(map, workbook, request, response); + } + +} diff --git a/src/main/java/geoinfo/admins/chLog/DownloadAppController.java b/src/main/java/geoinfo/admins/chLog/DownloadAppController.java new file mode 100644 index 0000000..cf8e978 --- /dev/null +++ b/src/main/java/geoinfo/admins/chLog/DownloadAppController.java @@ -0,0 +1,366 @@ +package geoinfo.admins.chLog; + +import egovframework.com.cmm.service.EgovProperties; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import geoinfo.admins.chLog.service.DownloadAppService; +import geoinfo.com.GeoinfoCommon; +import geoinfo.session.UserInfo; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.apache.commons.io.FilenameUtils; +import org.apache.log4j.Logger; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + +/** + * 관리자시스템 > 유통/공급 통계분석 > 다운로드승인을 처리하는 Controller 클래스 + * + * @author 공간정보기술(주) + * @since 2017.06.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *      수정일                 수정자                     수정내용
+ *  ------------    ----------------    ---------------------------
+ *   2017.06.07     공간정보기술(주)            최초 생성
+ *
+ * 
+ */ +@Controller +public class DownloadAppController { + + private static final Logger LOGGER = Logger.getLogger(DownloadAppController.class.getName()); + + @Resource(name = "downloadAppService") + private DownloadAppService masterService; + + @RequestMapping(value = "admins/chLog/20.do") + public String selectInfoList(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(10); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + if (params.get("agreeyn") == null || "".equals(params.get("agreeyn"))) { + params.put("agreeyn", "0"); + } + if (params.get("downyn") == null || "".equals(params.get("downyn"))) { + params.put("downyn", "0"); + } + if (params.get("filecheck") == null || "".equals(params.get("filecheck"))) { + params.put("filecheck", "0"); + } + + List resultList = masterService.selectInfoList(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/chLog/20"; + } + + @RequestMapping(value = "admins/chLog/20_view.do") + public String selectInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception{ + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + EgovMap result = masterService.selectInfoData(params); + + int today = Integer.parseInt((String) result.get("todate")); + int endday = Integer.parseInt((String) result.get("toenddate")); + String useContents = (String) result.get("use_contents"); + String fileName = (String) result.get("fileName"); + String fileName2 = (String) result.get("fileName2"); + String fname = result.get("metadataid").toString() + ".zip"; + String sichuInfo = (String) result.get("sichuInfo"); // 시추공 정보 + + + model.addAttribute("fname", fname); + + if(("").equals(useContents) && ("").equals(fileName) && ("").equals(fileName2)){ + model.addAttribute("conCheck", "Y"); + }else{ + model.addAttribute("conCheck", "N"); + } + + if(today > endday){ + model.addAttribute("daypass", "Y"); + }else{ + model.addAttribute("daypass", "N"); + } + + model.addAttribute("result", result); + model.addAttribute("agreeyn", params.get("agreeyn")); + + return "admins/chLog/20_view"; + } + + /* + * 지반정보다운로드 승인 상세페이지 + * 저장되는 값 : 활용사례파일 확인여부(Y,N), 활용내용파일, 활용성과 파일) + * */ + @RequestMapping(value = "admins/chLog/downloadApp/20_view_save", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap selectInfo_save( + ModelMap model, HttpServletResponse response, HttpServletRequest request, @RequestParam HashMap params + ,final MultipartHttpServletRequest multiRequest + ) throws Exception { + + HashMap jsonMap = new HashMap(); + if (!UserInfo.isValidSession(request, response, "admin")) { + jsonMap.put("flag", false); + return null; + } + + masterService.savePrcUseCase(params, multiRequest); + + jsonMap.put("flag", true); + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/chLog/downloadApp/agreePop", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap passChange_save(ModelMap model, HttpServletResponse response, HttpServletRequest request, @RequestParam HashMap params) throws Exception { + + HashMap jsonMap = new HashMap(); + + if (!UserInfo.isValidSession(request, response, "admin")) { + jsonMap.put("flag", false); + return null; + } + + String con = GeoinfoCommon.parseData((String) params.get("con")); + String userid = GeoinfoCommon.parseData((String) params.get("userid")); + String idx = GeoinfoCommon.parseData((String) params.get("idx")); + String saveType = GeoinfoCommon.parseData((String) params.get("saveType")); + + params.put("userid", userid); + params.put("idx", idx); + params.put("saveType", saveType); + +// try { + int allCnt = masterService.selectWebDownloadLogCnt(params); //활용기간이 지났고, 활용승인이 승인되지 않은것들 + int sCnt = 0; + + if(allCnt <= 1){ + if("Y".equals(con)){ + masterService.updateWebDownloadLogDown(params); //idx + jsonMap.put("downyn", "Y"); + sCnt = 1; + }else{ + masterService.updateWebDownloadLogApprove(params); + jsonMap.put("approve", "Y"); + } + }else{ + if("Y".equals(con)){ + masterService.updateWebDownloadLogDown(params); + jsonMap.put("downyn", "Y"); + }else{ + masterService.updateWebDownloadLogApprove(params); + jsonMap.put("approve", "Y"); + } + } + + if(sCnt == 1){ + masterService.updateWebDownloadLogScnt(params);//활용 빈칸인 것들에 대해 일괄적으로 다운승인을 해준다. +// jsonMap.put("approve", "Y"); + } + + jsonMap.put("flag", true); +// } catch (Exception Ex) { +// jsonMap.put("flag", false); +// } + + /* 화면에서 다운로드 승인 처리 삭제로 활용사례 승인 시 다운로드 승인 기능 추가 (2017.08.04) */ + masterService.updateApproveLog(params); + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/chLog/downloadApp/cancelPopSave", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap cancelPopSave(ModelMap model, HttpServletResponse response, HttpServletRequest request, @RequestParam HashMap params) throws Exception { + + HashMap jsonMap = new HashMap(); + + if (!UserInfo.isValidSession(request, response, "admin")) { + jsonMap.put("flag", false); + return null; + } + + String con = GeoinfoCommon.parseData((String) params.get("con")); + String idx = GeoinfoCommon.parseData((String) params.get("idx")); + String reason = GeoinfoCommon.parseData((String) params.get("reason")); + String etcname = GeoinfoCommon.parseData((String) params.get("etcName")); + + params.put("idx", idx); + params.put("reason", reason); + params.put("etcname", etcname); + + try { + if("Y".equals(con)){ + masterService.updateWdaDownCancel(params); + }else{ + masterService.updateWdaApproveCancel(params); + } + + jsonMap.put("flag", true); + } catch (SQLException Ex) { + jsonMap.put("flag", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/chLog/downloadApp/cancelPop.do") + public String cancelPopup(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception{ + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List resultList = masterService.selectWebDownCancelCode(params); + + // 메시지 추가 + List msgList = masterService.selectWebSmsMsg(params); + + + model.addAttribute("cancelCde", resultList); + model.addAttribute("smsMsg", msgList); + model.addAttribute("params", params); + + return "admins/chLog/cancelPop"; + } + + @RequestMapping(value = "admins/chLog/downloadApp/fileDownload.do") + public ModelAndView fileDownload(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + String fileName = params.get("savename").toString(); + + // 한글 파일이름 깨질 경우 +// String docName = new String(GeoinfoCommon.parseData(fileName).getBytes("8859_1"), "utf-8"); + //String filePath = "D:\\Tomcat6\\geoinfoEgov\\webapps\\geoinfo\\files"; + String filePath = EgovProperties.getProperty("Geoinfo.FilePath"); + + OutputStream os = response.getOutputStream(); + FileInputStream fis = null; + File file = null; + + try { + response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(params.get("filename").toString(), "UTF-8").replace('+', ' ')); + response.setContentType("application/download; charset=utf-8"); + + file = new File(filePath + FilenameUtils.getName(fileName)); + + fis = new FileInputStream(file); + FileCopyUtils.copy(fis, os); + } catch (IOException Ex) { + LOGGER.error(Ex); + + if (fis != null) { + try { + fis.close(); + } catch (IOException ex) { + LOGGER.error(ex); + } + } + } finally { + if (fis != null) { + try { + fis.close(); + } catch (IOException e) { + LOGGER.error(e); + } + } + } + os.flush(); + + return null; + } + + /** + * SMS 발송 정보 조회 + * @param idx 다운로드 신청 Index + */ + @RequestMapping(value = "admins/chLog/downloadApp/openSmsForm.do") + public String openSmsForm(@RequestParam HashMap params, HttpSession session, ModelMap model) throws Exception{ + HashMap jsonMap = new HashMap(); + + // 2017.10.30 dhlee sms 내용추가 + String idx = GeoinfoCommon.parseData((String) params.get("idx")); + String content = "\n" + GeoinfoCommon.parseData((String) params.get("etcName")); + + String userId = (String)session.getAttribute("admin.userID"); + + model.addAttribute("userId", userId); + model.addAttribute("content", content); + model.addAttribute("RSLT", masterService.selectSmsInfo(idx)); + + return "admins/chLog/20_sms"; + } + + /** + * 문자메시지(SMS) 전송 + * @return 문자메시지 전송 결과 코드, 결과 메시지 + */ + @RequestMapping(value = "admins/chLog/downloadApp/sendSms", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap sendSms(@RequestParam HashMap param, ModelMap model) throws Exception{ + + HashMap jsonMap = new HashMap(); + + try{ + HashMap rslt = masterService.sendSms(param); + jsonMap.put("RSLT_CD", rslt.get("retCode")); + jsonMap.put("RSLT_MSG", rslt.get("retMessage")); + jsonMap.put("success", true); + }catch(Exception e){ + jsonMap.put("success", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } +} diff --git a/src/main/java/geoinfo/admins/chLog/SupplyInfoController.java b/src/main/java/geoinfo/admins/chLog/SupplyInfoController.java new file mode 100644 index 0000000..4ddbfd7 --- /dev/null +++ b/src/main/java/geoinfo/admins/chLog/SupplyInfoController.java @@ -0,0 +1,93 @@ +package geoinfo.admins.chLog; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import geoinfo.admins.chLog.service.SupplyInfoService; +import geoinfo.session.UserInfo; + +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * 관리자시스템 > 유통/공급 통계분석 > 공급정보를 처리하는 Controller 클래스 + * + * @author 공간정보기술(주) + * @since 2017.06.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *      수정일                 수정자                     수정내용
+ *  ------------    ----------------    ---------------------------
+ *   2017.06.07     공간정보기술(주)            최초 생성
+ *
+ * 
+ */ +@Controller +public class SupplyInfoController { + @Resource(name = "supplyInfoService") + private SupplyInfoService masterService; + + /** + * 관리자시스템 > 유통/공급 통계분석 > 공급정보 리스트 + * + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/chLog/10.do") + public String selectInfoList(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List getState = masterService.getState(); + + if ("".equals(params.get("state")) || params.get("state") == null) { + params.put("state", ((EgovMap) getState.get(0)).get("value")); + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(20); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectInfoList(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("getState", getState); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/chLog/10"; + } + +} diff --git a/src/main/java/geoinfo/admins/chLog/service/BoringInfoStatMapper.java b/src/main/java/geoinfo/admins/chLog/service/BoringInfoStatMapper.java new file mode 100644 index 0000000..47b34a2 --- /dev/null +++ b/src/main/java/geoinfo/admins/chLog/service/BoringInfoStatMapper.java @@ -0,0 +1,14 @@ +package geoinfo.admins.chLog.service; + +import java.util.ArrayList; +import java.util.HashMap; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("boringInfoStatMapper") +public interface BoringInfoStatMapper { + + public ArrayList selectInfoGrid(HashMap params) throws Exception; + + public ArrayList selectInfoListExcel() throws Exception; +} diff --git a/src/main/java/geoinfo/admins/chLog/service/BoringInfoStatService.java b/src/main/java/geoinfo/admins/chLog/service/BoringInfoStatService.java new file mode 100644 index 0000000..1c313d0 --- /dev/null +++ b/src/main/java/geoinfo/admins/chLog/service/BoringInfoStatService.java @@ -0,0 +1,11 @@ +package geoinfo.admins.chLog.service; + +import java.util.ArrayList; +import java.util.HashMap; + +public interface BoringInfoStatService { + + public ArrayList selectInfoGrid(HashMap params) throws Exception; + + public ArrayList selectInfoListExcel() throws Exception; +} diff --git a/src/main/java/geoinfo/admins/chLog/service/ChInfoMapper.java b/src/main/java/geoinfo/admins/chLog/service/ChInfoMapper.java new file mode 100644 index 0000000..83de360 --- /dev/null +++ b/src/main/java/geoinfo/admins/chLog/service/ChInfoMapper.java @@ -0,0 +1,56 @@ +package geoinfo.admins.chLog.service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Mapper("chInfoMapper") +public interface ChInfoMapper { + + public List getYear_date() throws Exception; + public List getMonth_date(HashMap params) throws Exception; + public List selectInfoListDate(HashMap params) throws Exception; + public List selectInfoListDateExcel(HashMap params) throws Exception; + public List selectInfoGraph(HashMap params) throws Exception; + + public List selectInfoListBusiness(HashMap params) throws Exception; + public List selectInfoListBusinessExcel(HashMap params) throws Exception; + + public List selectInfoListDateLogPop(HashMap params) throws Exception; + + public List selectInfoListPurpose() throws Exception; + + /** 2023.11.01 LHJ 유통/공급 통계분석 > 유통정보 > 공종별 시추공등록 통계 추가 **/ + public List> selectInfoListGongjong() throws Exception; + + /** 2024.01.09 LHJ 유통/공급 통계분석 > 유통정보 > 공정별 시추공등록 통계 추가 **/ + public List> selectInfoListGongjeong() throws Exception; + + /** 2024.01.10 LHJ 유통/공급 통계분석 > 유통정보 > 시도별 프로젝트 등록 통계 추가 **/ + public List> selectInfoListSido() throws Exception; + + /** 2024.01.30 LHJ 유통/공급 통계분석 > 유통정보 > 시군구별 프로젝트 등록 통계 추가 **/ + public List> selectSigunguCode(String params) throws Exception; + + public List> selectInfoListSigungu(HashMap paramMap) throws Exception; + + public List selectLiqInfoList(Map params) throws Exception; + + public int selectLiqInfoListCnt(HashMap params) throws Exception ; + + public EgovMap selectWebLiqInfo (Map params) throws Exception; + + public void updateLiqInfoLog(Map params) throws Exception; + + public List selectLiqInfoListDate(HashMap params) throws Exception; + + public List selectLiqInfoListDateExcel(HashMap params) throws Exception; + + public List selectLiqInfoListLogPop(HashMap params) throws Exception; + + public List selectLiqSidoInfoListDate(HashMap params) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/chLog/service/ChInfoService.java b/src/main/java/geoinfo/admins/chLog/service/ChInfoService.java new file mode 100644 index 0000000..3fb0056 --- /dev/null +++ b/src/main/java/geoinfo/admins/chLog/service/ChInfoService.java @@ -0,0 +1,53 @@ +package geoinfo.admins.chLog.service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + +public interface ChInfoService { + + public List getYear_date() throws Exception; + public List getMonth_date(HashMap params) throws Exception; + public List selectInfoListDate(HashMap params) throws Exception; + public List selectInfoListDateExcel(HashMap params) throws Exception; + public EgovMap selectInfoGraph(HashMap params) throws Exception; + + public List selectInfoListBusiness(HashMap params) throws Exception; + public List selectInfoListBusinessExcel(HashMap params) throws Exception; + + public List selectInfoListDateLogPop(HashMap params) throws Exception; + + public List selectInfoListPurpose() throws Exception; + + /** 2023.11.01 LHJ 유통/공급 통계분석 > 유통정보 > 공종별 시추공등록 통계 추가 **/ + public List> selectInfoListGongjong() throws Exception; + + /** 2024.01.09 LHJ 유통/공급 통계분석 > 유통정보 > 공정별 시추공등록 통계 추가 **/ + public List> selectInfoListGongjeong() throws Exception; + + /** 2024.01.10 LHJ 유통/공급 통계분석 > 유통정보 > 시도별 프로젝트 등록 통계 추가 **/ + public List> selectInfoListSido() throws Exception; + + /** 2024.01.30 LHJ 유통/공급 통계분석 > 유통정보 > 시군구별 프로젝트 등록 통계 추가 **/ + public List> selectSigunguCode(String params) throws Exception; + + public List> selectInfoListSigungu(HashMap paramMap) throws Exception; + + public List selectLiqInfoList(Map params) throws Exception; + + public int selectLiqInfoListCnt(HashMap params) throws Exception; + + public EgovMap selectWebLiqInfo(Map params) throws Exception; + + public void updateLiqInfoLog(Map params) throws Exception; + + public List selectLiqInfoListDate(HashMap params) throws Exception; + + public List selectLiqInfoListDateExcel(HashMap params) throws Exception; + + public List selectLiqInfoListLogPop(HashMap params) throws Exception; + + public List selectLiqSidoInfoListDate(HashMap params) throws Exception; +} diff --git a/src/main/java/geoinfo/admins/chLog/service/DownloadAppMapper.java b/src/main/java/geoinfo/admins/chLog/service/DownloadAppMapper.java new file mode 100644 index 0000000..25179ba --- /dev/null +++ b/src/main/java/geoinfo/admins/chLog/service/DownloadAppMapper.java @@ -0,0 +1,43 @@ +package geoinfo.admins.chLog.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Mapper("downloadAppMapper") +public interface DownloadAppMapper { + + public List selectInfoList(HashMap params) throws Exception; + + public EgovMap selectInfoData(HashMap params) throws Exception; + + public int selectWebDownloadLogCnt(HashMap params) throws Exception; + + public void updateWebDownloadLogDown(HashMap params) throws Exception; + + public void updateWebDownloadLogApprove(HashMap params) throws Exception; + + public void updateWebDownloadLogScnt(HashMap params) throws Exception; + + public List selectWebDownCancelCode(HashMap params) throws Exception; + + public List selectWebSmsMsg(HashMap params) throws Exception; + + public void updateWdaDownCancel(HashMap params) throws Exception; + + public void updateWdaApproveCancel(HashMap params) throws Exception; + + public EgovMap selectSmsInfo(String idx) throws Exception; + + public void insertSmsLog(HashMap map) throws Exception; + + public EgovMap selectApproveLogCnt(String userId) throws Exception; + + public List selectApproveLogIdxList(HashMap params) throws Exception; + + public void updateApproveLog(String idx) throws Exception; + + int savePrcUseCase(HashMapmap); +} diff --git a/src/main/java/geoinfo/admins/chLog/service/DownloadAppService.java b/src/main/java/geoinfo/admins/chLog/service/DownloadAppService.java new file mode 100644 index 0000000..29301b0 --- /dev/null +++ b/src/main/java/geoinfo/admins/chLog/service/DownloadAppService.java @@ -0,0 +1,40 @@ +package geoinfo.admins.chLog.service; + +import java.util.HashMap; +import java.util.List; + +import org.springframework.web.multipart.MultipartHttpServletRequest; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + +public interface DownloadAppService { + + public List selectInfoList(HashMap params) throws Exception; + + public EgovMap selectInfoData(HashMap params) throws Exception; + + public int selectWebDownloadLogCnt(HashMap params) throws Exception; + + public void updateWebDownloadLogDown(HashMap params) throws Exception; + + public void updateWebDownloadLogApprove(HashMap params) throws Exception; + + public void updateWebDownloadLogScnt(HashMap params) throws Exception; + + public List selectWebDownCancelCode(HashMap params) throws Exception; + + public List selectWebSmsMsg(HashMap params) throws Exception; + + public void updateWdaDownCancel(HashMap params) throws Exception; + + public void updateWdaApproveCancel(HashMap params) throws Exception; + + public void updateApproveLog(HashMap params) throws Exception; + + public EgovMap selectSmsInfo(String idx) throws Exception; + + public HashMap sendSms(HashMap param) throws Exception; + + public void savePrcUseCase(HashMap params, MultipartHttpServletRequest multiRequest) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/chLog/service/SupplyInfoMapper.java b/src/main/java/geoinfo/admins/chLog/service/SupplyInfoMapper.java new file mode 100644 index 0000000..ab9090b --- /dev/null +++ b/src/main/java/geoinfo/admins/chLog/service/SupplyInfoMapper.java @@ -0,0 +1,14 @@ +package geoinfo.admins.chLog.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("supplyInfoMapper") +public interface SupplyInfoMapper { + + public List selectInfoList(HashMap params) throws Exception; + public List getState() throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/chLog/service/SupplyInfoService.java b/src/main/java/geoinfo/admins/chLog/service/SupplyInfoService.java new file mode 100644 index 0000000..e97c0e0 --- /dev/null +++ b/src/main/java/geoinfo/admins/chLog/service/SupplyInfoService.java @@ -0,0 +1,11 @@ +package geoinfo.admins.chLog.service; + +import java.util.HashMap; +import java.util.List; + +public interface SupplyInfoService { + + public List selectInfoList(HashMap params) throws Exception; + public List getState() throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/chLog/service/impl/BoringInfoStatServiceImpl.java b/src/main/java/geoinfo/admins/chLog/service/impl/BoringInfoStatServiceImpl.java new file mode 100644 index 0000000..1926f5c --- /dev/null +++ b/src/main/java/geoinfo/admins/chLog/service/impl/BoringInfoStatServiceImpl.java @@ -0,0 +1,28 @@ +package geoinfo.admins.chLog.service.impl; + +import geoinfo.admins.chLog.service.BoringInfoStatMapper; +import geoinfo.admins.chLog.service.BoringInfoStatService; + +import java.util.ArrayList; +import java.util.HashMap; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +@Service("boringInfoStatService") +public class BoringInfoStatServiceImpl implements BoringInfoStatService { + + @Resource(name = "boringInfoStatMapper") + private BoringInfoStatMapper masterMapper; + + @Override + public ArrayList selectInfoGrid(HashMap params) throws Exception { + return masterMapper.selectInfoGrid(params); + } + + @Override + public ArrayList selectInfoListExcel() throws Exception { + return masterMapper.selectInfoListExcel(); + } +} diff --git a/src/main/java/geoinfo/admins/chLog/service/impl/ChInfoServiceImpl.java b/src/main/java/geoinfo/admins/chLog/service/impl/ChInfoServiceImpl.java new file mode 100644 index 0000000..1e8e39e --- /dev/null +++ b/src/main/java/geoinfo/admins/chLog/service/impl/ChInfoServiceImpl.java @@ -0,0 +1,134 @@ +package geoinfo.admins.chLog.service.impl; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.chLog.service.ChInfoMapper; +import geoinfo.admins.chLog.service.ChInfoService; +import geoinfo.com.GeoinfoCommon; + +@Service("chInfoService") +public class ChInfoServiceImpl implements ChInfoService { + + @Resource(name = "chInfoMapper") + private ChInfoMapper masterMapper; + + @Override + public List getYear_date() throws Exception { + return masterMapper.getYear_date(); + } + + @Override + public List getMonth_date(HashMap params) throws Exception { + return masterMapper.getMonth_date(params); + } + + @Override + public List selectInfoListDate(HashMap params) throws Exception { + return masterMapper.selectInfoListDate(params); + } + + @Override + public EgovMap selectInfoGraph(HashMap params) throws Exception { + return GeoinfoCommon.getMapGraph(masterMapper.selectInfoGraph(params), "mm", "cnt"); + } + + @Override + public List selectInfoListDateExcel(HashMap params) throws Exception { + return masterMapper.selectInfoListDateExcel(params); + } + + @Override + public List selectInfoListBusiness(HashMap params) throws Exception { + return masterMapper.selectInfoListBusiness(params); + } + + @Override + public List selectInfoListBusinessExcel(HashMap params) throws Exception { + return masterMapper.selectInfoListBusinessExcel(params); + } + + @Override + public List selectInfoListDateLogPop(HashMap params) throws Exception { + return masterMapper.selectInfoListDateLogPop(params); + } + + @Override + public List selectInfoListPurpose() throws Exception { + return masterMapper.selectInfoListPurpose(); + } + + /** 2023.11.01 LHJ 유통/공급 통계분석 > 유통정보 > 공종별 시추공등록 통계 추가 **/ + @Override + public List> selectInfoListGongjong() throws Exception { + return masterMapper.selectInfoListGongjong(); + } + + /** 2024.01.09 LHJ 유통/공급 통계분석 > 유통정보 > 공정별 시추공등록 통계 추가 **/ + @Override + public List> selectInfoListGongjeong() throws Exception { + return masterMapper.selectInfoListGongjeong(); + } + + /** 2024.01.10 LHJ 유통/공급 통계분석 > 유통정보 > 시도별 프로젝트 등록 통계 추가 **/ + @Override + public List> selectInfoListSido() throws Exception { + return masterMapper.selectInfoListSido(); + } + + /** 2024.01.30 LHJ 유통/공급 통계분석 > 유통정보 > 시군구별 프로젝트 등록 통계 추가 **/ + public List> selectSigunguCode(String params) throws Exception { + return masterMapper.selectSigunguCode(params); + } + + public List> selectInfoListSigungu(HashMap paramMap) throws Exception { + return masterMapper.selectInfoListSigungu(paramMap); + } + + @Override + public List selectLiqInfoList(Map params) throws Exception { + return masterMapper.selectLiqInfoList(params); + } + + @Override + public int selectLiqInfoListCnt(HashMap params) throws Exception { + return masterMapper.selectLiqInfoListCnt(params); + } + + @Override + public EgovMap selectWebLiqInfo(Map params) throws Exception { + return masterMapper.selectWebLiqInfo(params); + } + + @Override + public void updateLiqInfoLog (Map params) throws Exception { + masterMapper.updateLiqInfoLog(params); + } + + @Override + public List selectLiqInfoListDate(HashMap params) throws Exception { + return masterMapper.selectLiqInfoListDate(params); + } + + @Override + public List selectLiqInfoListDateExcel(HashMap params) throws Exception { + return masterMapper.selectLiqInfoListDateExcel(params); + } + + @Override + public List selectLiqInfoListLogPop(HashMap params) throws Exception { + return masterMapper.selectLiqInfoListLogPop(params); + } + + @Override + public List selectLiqSidoInfoListDate(HashMap params) throws Exception { + return masterMapper.selectLiqSidoInfoListDate(params); + } + +} diff --git a/src/main/java/geoinfo/admins/chLog/service/impl/DownloadAppServiceImpl.java b/src/main/java/geoinfo/admins/chLog/service/impl/DownloadAppServiceImpl.java new file mode 100644 index 0000000..7977e89 --- /dev/null +++ b/src/main/java/geoinfo/admins/chLog/service/impl/DownloadAppServiceImpl.java @@ -0,0 +1,280 @@ +package geoinfo.admins.chLog.service.impl; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.TransactionDefinition; +import org.springframework.transaction.TransactionStatus; +import org.springframework.transaction.support.DefaultTransactionDefinition; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; + +import egovframework.com.cmm.service.EgovProperties; +import egovframework.rte.fdl.property.EgovPropertyService; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.chLog.service.DownloadAppMapper; +import geoinfo.admins.chLog.service.DownloadAppService; +import geoinfo.com.GeoinfoCommon; +import geoinfo.comm.util.FileUtil; + +@Service("downloadAppService") +public class DownloadAppServiceImpl implements DownloadAppService { + + @Autowired + private PlatformTransactionManager transactionManager; + + DefaultTransactionDefinition def = null; + TransactionStatus status = null; + + @Resource(name = "downloadAppMapper") + private DownloadAppMapper masterMapper; + + /** EgovPropertyService */ + @Resource(name = "propertiesService") + protected EgovPropertyService propertiesService; + + @Override + public List selectInfoList(HashMap params) throws Exception { + return masterMapper.selectInfoList(params); + } + + @Override + public EgovMap selectInfoData(HashMap params) throws Exception{ + return masterMapper.selectInfoData(params); + } + + @Override + public int selectWebDownloadLogCnt(HashMap params) throws Exception { + return masterMapper.selectWebDownloadLogCnt(params); + } + + @Override + public void updateWebDownloadLogDown(HashMap params) throws Exception { + masterMapper.updateWebDownloadLogDown(params); + } + + @Override + public void updateWebDownloadLogApprove(HashMap params) throws Exception { + masterMapper.updateWebDownloadLogApprove(params); + } + + @Override + public void updateWebDownloadLogScnt(HashMap params) throws Exception { + masterMapper.updateWebDownloadLogScnt(params); + } + + @Override + public List selectWebDownCancelCode(HashMap params) throws Exception { + return masterMapper.selectWebDownCancelCode(params); + } + + @Override + public List selectWebSmsMsg(HashMap params) throws Exception { + return masterMapper.selectWebSmsMsg(params); + } + + @Override + public void updateWdaDownCancel(HashMap params) throws Exception { + masterMapper.updateWdaDownCancel(params); + } + + @Override + public void updateWdaApproveCancel(HashMap params) throws Exception { + masterMapper.updateWdaApproveCancel(params); + } + + /** + * 활용사례 승인에 따른 다운로드 신청 대기 정보 승인 처리 + * - 사용가능날짜가 지난 정보가 있거나 승인되지 않은 활용사례가 10건 이상이면 리턴 + * - (10건 - 승인되지 않은 활용사례 건수) 만큼의 다운로드 승인처리 + * ex) 승인되지 않은 활용사례가 5건이 존재하면 다운로드 대기 정보 5건 승인 + * @param userid 다운로드 요청 ID + */ + @Override + public void updateApproveLog(HashMap params) throws Exception{ + EgovMap map = masterMapper.selectApproveLogCnt((String)params.get("userid")); + + if(Double.parseDouble(String.valueOf(map.get("chkDate"))) < 0 || (10 - Integer.parseInt(String.valueOf(map.get("cnt"))) < 1 )) return; + + String chkCnt = String.valueOf((10 - Integer.parseInt(String.valueOf(map.get("cnt"))))); + params.put("chkCnt", chkCnt); + + List list = masterMapper.selectApproveLogIdxList(params); + for(EgovMap eMap : list){ + masterMapper.updateApproveLog(String.valueOf(eMap.get("idx"))); + } + } + + /** + * SMS 발송 정보 조회 + * @param userId 사용자 ID + * @param idx 다운로드 신청 Index + * @return SMS 발송정보(받는사람ID, 받는사람 번호, 보내는사람 번호, 프로젝트코드) + */ + @Override + public EgovMap selectSmsInfo(String idx) throws Exception{ + EgovMap map = masterMapper.selectSmsInfo(idx); + map.put("fromPhone", propertiesService.getString("smsFrom")); + + return map; + } + + /** + * 문자메시지(SMS) 전송 + * @param sms_to 받는사람 번호 + * @param sms_from 보내는사람 번호 + * @param sms_date 발송예약시간(현재 null 추후 입력 받아 사용 가능) + * @param sms_msg 발송메시지 + * @param project_code 프로젝트 코드 + * @param reqGbn 요청구분(SMS002 - SMS001 수정요청으로 사용중이라 SMS002로 사용) + * @param sms_to_id 받는 사람 ID + * @param sms_from_id 보내는 사람 ID + * @return 문자메시지 전송 결과 코드 + * ================== SMS 전송 결과값 ================== + * Code=>0, CodeMsg=>Success!!, LastPoint=>9999 + * Code=>99, CodeMsg=>sms send fail + * Code=>100, CodeMsg=>Not Registered ID + * Code=>200, CodeMsg=>Not Enough Point + * Code=>300, CodeMsg=>Login Fail + * Code=>400, CodeMsg=>No Valid Number + * Code=>500, CodeMsg=>No Valid Message + * Code=>600, CodeMsg=>Auth Fail fail + * Code=>700, CodeMsg=>Invalid Recall Number + * Code=>800, CodeMsg=>Send Number Auth Fail - SMS2008 + * ================================================= + */ + @Override + public HashMap sendSms(HashMap param) throws Exception{ + String sms_id = propertiesService.getString("smsId"); // 후이즈SMS 아이디 + String sms_passwd = propertiesService.getString("smsPasswd"); // 후이즈SMS 패스워드 + String sms_type = "L"; // 설정 하지 않는다면 80byte 넘는 메시지는 쪼개져서 sms로 발송, L 로 설정하면 80byte 넘으면 자동으로 lms 변환 + + /* + * whoisSMS whois_sms = new whoisSMS(); whois_sms.login(sms_id, + * sms_passwd); // 로그인 + */ + /* SMS 발송정보 */ + String sms_to = String.valueOf(param.get("sms_to")); // 받는사람번호 + String sms_from = String.valueOf(param.get("sms_from")); // 보내는 사람번호 + String sms_date = String.valueOf(param.get("sms_date")); // 발송예약시간 (현재시간보다 작거나 같으면 즉시 발송이며 현재시간보다 10분이상 큰경우는 예약발송입니다.) + String sms_msg = String.valueOf(param.get("sms_msg")); // 전송 메세지 + // 발송시간을 파라메터로 받지 못한경우 현재시간을 입력해줍니다. + // 즉시발송 시 0 입력 + /*if (sms_date == null) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.KOREA); + Date cNow = new Date(); + sms_date = sdf.format(cNow); + }*/ + if(sms_date == null) sms_date = "0"; + + System.out.println("test : " + sms_msg); + + // SMS 발송 + /* + * whois_sms.setUtf8(); // UTF-8 설정 sms_msg = new + * String(sms_msg.getBytes(), "EUC-KR"); // 보내는 메시지 내용 중 한글 깨짐이 발생될 경우 + * 사용 whois_sms.setParams(sms_to, sms_from, sms_msg, sms_date, + * sms_type); // 파라메터 설정 whois_sms.emmaSend(); // 문자메시지 전송 + * System.out.println("test 2: " + sms_msg); // SMS 발송 결과 int retCode = + * whois_sms.getRetCode(); // 문자메시지 발송 결과 코드 String retMessage = + * whois_sms.getRetMessage(); // 문자메시지 발송 결과 메세지 int retLastPoint = + * whois_sms.getLastPoint(); // 성공적으로 발송한경우 남은 문자갯수(종량제 사용의 경우, 남은 발송가능한 + * 문자수를 확인합니다.) + * + * param.put("retCode", retCode); param.put("retMessage", retMessage); + * param.put("retLastPoint", retLastPoint); + */ + // SMS 발송 이력 저장 + try{ masterMapper.insertSmsLog(param); }catch(Exception e){ e.printStackTrace(); }; + + return param; + } + + /** + * 활용사례 업데이트 + * @param prcUseFile 활용사례 파일 + * @param referFile 첨부 파일 + * @param content 활용내용 (기존 활용사례 등록 오류로 인해 사용 - 변경사항 적용 후 삭제해도 무관) + */ + @Override + public void savePrcUseCase( + HashMap params, MultipartHttpServletRequest multiRequest) throws Exception{ + + //String savePath = "D:\\Tomcat6\\geoinfoEgov\\webapps\\geoinfo\\files" + String savePath = EgovProperties.getProperty("Geoinfo.FilePath"); + Calendar calendar = Calendar.getInstance(); + java.util.Date date = calendar.getTime(); + String today = (new SimpleDateFormat("yyyyMMddHHmmss").format(date)); + + MultipartFile prcUseFile = multiRequest.getFile("prcUseFile"); + MultipartFile referFile = multiRequest.getFile("referFile"); + + String prcUseFileName = ""; + String prcUseSaveName = ""; + String prevPrcUseFile = ""; + String referFileName = ""; + String referSaveName = ""; + String prevReferFile = ""; + + if(prcUseFile != null && prcUseFile.getSize() != 0){ + // 저장파일명 생성 (활용사례 파일 : PUF_현재일시, 첨부파일 : RFF_현재일시) + prcUseFileName = prcUseFile.getOriginalFilename(); + prcUseSaveName = prcUseFileName.equals("") ? "" : "PUF_" + today + prcUseFileName.substring(prcUseFileName.lastIndexOf(".")); + prevPrcUseFile = GeoinfoCommon.parseData((String) params.get("prevPrcUseFile")); + + } + if(referFile != null && referFile.getSize() != 0){ + // 저장파일명 생성 (활용사례 파일 : PUF_현재일시, 첨부파일 : RFF_현재일시) + referFileName = referFile.getOriginalFilename(); + referSaveName = referFileName.equals("") ? "" : referFileName.equals("") ? "" : "RFF_" + today + referFileName.substring(referFileName.lastIndexOf(".")); + prevReferFile = GeoinfoCommon.parseData((String) params.get("prevReferFile")); + + } + + String userid = GeoinfoCommon.parseData((String) params.get("userid")); + String idx = GeoinfoCommon.parseData((String) params.get("idx")); + String filecheck = GeoinfoCommon.parseData((String) params.get("filecheck")); + String saveType = GeoinfoCommon.parseData((String) params.get("saveType")); + + HashMap map = new HashMap(); + map.put("filename", prcUseFileName); + map.put("savename", prcUseSaveName); + map.put("filename2", referFileName); + map.put("savename2", referSaveName); + map.put("idx", idx); + map.put("userId", userid); + map.put("filecheck", filecheck); + map.put("saveType", saveType); //saveType=> "IDX":개별적 수정, "U":다운로드(승인), 활용(대기)일때 일괄 수정 + + def = new DefaultTransactionDefinition(); + def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); + status = transactionManager.getTransaction(def); + + try{ + // 활용사례 DB 등록 + int cnt = masterMapper.savePrcUseCase(map); + + // 활용사례 수정 시 기존 파일 삭제 + if(!prcUseFileName.equals("") && !prevPrcUseFile.equals("")) FileUtil.deleteFile(savePath, prevPrcUseFile); + if(!referSaveName.equals("") && !prevReferFile.equals("")) FileUtil.deleteFile(savePath, prevReferFile); + + // 파일 업로드 + if(cnt > 0){ + if(!prcUseSaveName.equals("")) FileUtil.writeUploadedFile(prcUseFile, prcUseSaveName, savePath); + if(!referSaveName.equals("")) FileUtil.writeUploadedFile(referFile, referSaveName, savePath); + } + transactionManager.commit(status); + }catch(Exception e){ + transactionManager.rollback(status); + e.printStackTrace(); + throw new Exception("PrcUseCase Save Exception!!"); + } + } +} \ No newline at end of file diff --git a/src/main/java/geoinfo/admins/chLog/service/impl/SupplyInfoServiceImpl.java b/src/main/java/geoinfo/admins/chLog/service/impl/SupplyInfoServiceImpl.java new file mode 100644 index 0000000..40179f0 --- /dev/null +++ b/src/main/java/geoinfo/admins/chLog/service/impl/SupplyInfoServiceImpl.java @@ -0,0 +1,30 @@ +package geoinfo.admins.chLog.service.impl; + +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import geoinfo.admins.chLog.service.SupplyInfoMapper; +import geoinfo.admins.chLog.service.SupplyInfoService; + +@Service("supplyInfoService") +public class SupplyInfoServiceImpl implements SupplyInfoService { + + @Resource(name = "supplyInfoMapper") + private SupplyInfoMapper masterMapper; + + @Override + public List selectInfoList(HashMap params) throws Exception { + return masterMapper.selectInfoList(params); + } + + @Override + public List getState() throws Exception { + return masterMapper.getState(); + } + + +} diff --git a/src/main/java/geoinfo/admins/frame/FrameController.java b/src/main/java/geoinfo/admins/frame/FrameController.java new file mode 100644 index 0000000..6d31311 --- /dev/null +++ b/src/main/java/geoinfo/admins/frame/FrameController.java @@ -0,0 +1,92 @@ +package geoinfo.admins.frame; + +import geoinfo.admins.frame.service.FrameService; +import geoinfo.com.GeoinfoCommon; +import geoinfo.session.UserInfo; + +import java.util.HashMap; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * 관리자시스템 > 템플릿을 처리하는 Controller 클래스 + * + * @author 공간정보기술(주) + * @since 2017.06.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *      수정일                 수정자                     수정내용
+ *  ------------      ----------------    ---------------------------
+ *   2017.06.07     공간정보기술(주)            최초 생성
+ *
+ *      
+ */ +@Controller +public class FrameController { + @Resource(name = "frameService") + private FrameService masterService; + + @RequestMapping(value = "admins/frame/mainframe.do") + public String mainframe(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + String menuId = GeoinfoCommon.parseData(params.get("menuId").toString()); + String pId = GeoinfoCommon.parseData(params.get("pId").toString()); + + model.addAttribute("menuId", menuId); + model.addAttribute("pId", pId); + + if(params.get("idx") != null && !((params.get("idx")).equals("")) ) { + String idx = GeoinfoCommon.parseData(params.get("idx").toString()); + model.addAttribute("idx", idx); + String viewName = GeoinfoCommon.parseData(params.get("viewName").toString()); + model.addAttribute("viewName", viewName); + + return "admins/frame/mainframe2"; + }else { + return "admins/frame/mainframe"; + } + + } + + /** + * 각 메뉴의 Left 메뉴를 처리 + * + * @param menuId + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/{menuId}/left.do") + public String left(@PathVariable("menuId") String menuId, @RequestParam String pId, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + String pid = GeoinfoCommon.parseData(pId); + + model.addAttribute("pId", pid); + model.addAttribute("menuId", menuId); + + return "admins/" + menuId + "/left"; + } + +} diff --git a/src/main/java/geoinfo/admins/frame/service/FrameMapper.java b/src/main/java/geoinfo/admins/frame/service/FrameMapper.java new file mode 100644 index 0000000..6322bd2 --- /dev/null +++ b/src/main/java/geoinfo/admins/frame/service/FrameMapper.java @@ -0,0 +1,13 @@ +package geoinfo.admins.frame.service; + +import java.util.List; +import java.util.Map; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Mapper("frameMapper") +public interface FrameMapper { + + +} diff --git a/src/main/java/geoinfo/admins/frame/service/FrameService.java b/src/main/java/geoinfo/admins/frame/service/FrameService.java new file mode 100644 index 0000000..0868405 --- /dev/null +++ b/src/main/java/geoinfo/admins/frame/service/FrameService.java @@ -0,0 +1,11 @@ +package geoinfo.admins.frame.service; + +import java.util.List; +import java.util.Map; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + +public interface FrameService { + + +} diff --git a/src/main/java/geoinfo/admins/frame/service/impl/FrameServiceImpl.java b/src/main/java/geoinfo/admins/frame/service/impl/FrameServiceImpl.java new file mode 100644 index 0000000..b0a19de --- /dev/null +++ b/src/main/java/geoinfo/admins/frame/service/impl/FrameServiceImpl.java @@ -0,0 +1,17 @@ +package geoinfo.admins.frame.service.impl; + +import geoinfo.admins.frame.service.FrameMapper; +import geoinfo.admins.frame.service.FrameService; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +@Service("frameService") +public class FrameServiceImpl implements FrameService { + + @Resource(name = "frameMapper") + private FrameMapper masterMapper; + + +} diff --git a/src/main/java/geoinfo/admins/main/ErrorPageController.java b/src/main/java/geoinfo/admins/main/ErrorPageController.java new file mode 100644 index 0000000..77bd925 --- /dev/null +++ b/src/main/java/geoinfo/admins/main/ErrorPageController.java @@ -0,0 +1,16 @@ +package geoinfo.admins.main; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller +public class ErrorPageController { + + @RequestMapping("/error/error-{errorCode}.do") + public String handlePageNotFound(@PathVariable("errorCode") String errorCode, ModelMap model) { + model.addAttribute("errorCode", errorCode); + return "error/isError"; + } +} \ No newline at end of file diff --git a/src/main/java/geoinfo/admins/main/MainController.java b/src/main/java/geoinfo/admins/main/MainController.java new file mode 100644 index 0000000..f51a912 --- /dev/null +++ b/src/main/java/geoinfo/admins/main/MainController.java @@ -0,0 +1,220 @@ +package geoinfo.admins.main; + +import egovframework.com.json.JSONArray; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.main.service.MainService; +import geoinfo.com.GeoinfoCommon; +import geoinfo.session.UserInfo; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import com.fasterxml.jackson.databind.ObjectMapper; + +@Controller +public class MainController { + @Resource(name = "mainService") + private MainService mainService; + + @RequestMapping(value = "admins/main/login.do") + public String login(ModelMap model, HttpServletResponse response) throws Exception { + return "admins/main/login"; + } + + //2024-01-22 임효주 대시보드 기능 개발 + @RequestMapping(value = "index.do") + public ModelAndView index(ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + ModelAndView mv = new ModelAndView("admins/main/index"); + + if (!UserInfo.isValidSession(request, response, "admin")) { + mv.setViewName("admins/main/login"); + } + + //비밀번호 초기화 요청 목록 + List> PwResetList = mainService.selectPwResetList(); + mv.addObject("PwResetList", PwResetList); + + //지자체 회원가입 승인 요청 목록 + List> SignupRequestList = mainService.selectSignupRequestList(); + mv.addObject("SignupRequestList", SignupRequestList); + + //Q&A 목록 (답변중 게시물이 상단에 노출되도록 수정) + List> QnaList = mainService.selectQnaList(); + mv.addObject("QnaList", QnaList); + + //커뮤니티 목록 + List> comnuList = mainService.selectComnuList(); + mv.addObject("comnuList", comnuList); + + //자료실 목록 + List> pdsList = mainService.selectPdsList(); + mv.addObject("pdsList", pdsList); + + //FAQ 목록 + List> faqList = mainService.selectFaqList(); + mv.addObject("faqList", faqList); + + //방문자수, 등록자수 + String visitors = mainService.selectVisitors(); // 방문자수 + String registrant = mainService.selectRegistrant(); // 등록자수 + mv.addObject("visitors", visitors); + mv.addObject("registrant", registrant); + + //공종통계 + List> gongjongList = mainService.selectGongjongCount(); + ObjectMapper mapper = new ObjectMapper(); + String JsonGjongList = mapper.writeValueAsString(gongjongList); + mv.addObject("JsonGjongList", JsonGjongList); + + //시도통계 + List> sidoList = mainService.selectSidoCount(); + String JsonSidoList = mapper.writeValueAsString(sidoList); + mv.addObject("JsonSidoList", JsonSidoList); + + return mv; + } + + @RequestMapping(value = "admins/main/login_auth", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap loginAuth(ModelMap model, HttpServletResponse response, HttpServletRequest request, @RequestParam Map params) throws Exception { + + String id = GeoinfoCommon.parseData(params.get("id").toString()); + String admin_pass = GeoinfoCommon.parseData(params.get("pw").toString()); + String admin_passwd = GeoinfoCommon.parseData(params.get("passwd").toString()); + String ipAdd = request.getRemoteAddr(); + + System.out.println("admin_pass:###########" + admin_pass); + System.out.println("admin_passwd:###########" + admin_passwd); + System.out.println("ipAdd:###########" + ipAdd); + + params.put("id", id); + params.put("ipAdd", ipAdd); + + String strAccessAllows = "[" + "{\"ip\":\"218.49.16.78\", \"id\":\"admin_user\"}, " + "{\"ip\":\"0:0:0:0:0:0:0:1\", \"id\":\"admin_user\"}, "+ + "{\"ip\":\"218.49.21.65\",\"id\":\"admin_user\"}, " + "{\"ip\":\"218.49.21.65\",\"id\":\"sogone\"}, " + "{\"ip\":\"218.232.234.161\",\"id\":\"admin_user\"} " +"]"; + + JSONArray jsonArray = new JSONArray(strAccessAllows); + + boolean isAuth = false; + boolean encryptChange = true; + boolean loginSuccess = false; + + for (int i = 0; i < jsonArray.length(); i++) { + if (jsonArray.getJSONObject(i).get("ip").equals(ipAdd) && jsonArray.getJSONObject(i).get("id").equals(id)) { + isAuth = true; + break; + } else { + isAuth = false; + } + } + + if (isAuth) { + String encryptChk = mainService.encryptChk(params); + + if (encryptChk == null || ("").equals(encryptChk)) { + encryptChange = false; + } + + if (encryptChange) { + params.put("pw", admin_passwd); + } else { + params.put("pw", admin_pass); + } + + EgovMap getMemberInfo = mainService.getMemberInfo(params); + + if (getMemberInfo != null) { + loginSuccess = true; + UserInfo.setSession(request, id.trim(), getMemberInfo.get("userName").toString(), "", "admin"); + + if (!encryptChange) { + params.put("pw", admin_passwd); + mainService.updateEncrypt(params); + } + mainService.insertAccessLog(params); + } + } + + HashMap jsonMap = new HashMap(); + jsonMap.put("isAuth", isAuth); + jsonMap.put("loginSuccess", loginSuccess); + + model.addAttribute("jsonView", jsonMap); // JSON�쑝濡� 由ы꽩�븯湲� �쐞�빐�꽌�뒗 紐⑤뜽�궎瑜� 'jsonView'濡� 吏��젙�빐�빞�븿 + return model; + } + + @RequestMapping(value = "admins/main/logout.do") + public String logout(ModelMap model, HttpServletRequest request) throws Exception { + UserInfo.outSession(request, "admin"); + return "admins/main/login"; + } + + @RequestMapping(value = "admins/main/main.do") + public String main(@RequestParam HashMap params, + ModelMap model, + HttpServletResponse response, + HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + String menuId = GeoinfoCommon.parseData(params.get("menuId").toString()); + String pId = GeoinfoCommon.parseData(params.get("pId").toString()); + + if(params.get("idx") != null && !((params.get("idx")).equals("")) ) { + String idx = GeoinfoCommon.parseData(params.get("idx").toString()); + model.addAttribute("idx", idx); + String viewName = GeoinfoCommon.parseData(params.get("viewName").toString()); + model.addAttribute("viewName", viewName); + } + + model.addAttribute("menuId", menuId); + + model.addAttribute("pId", pId); + + int nDownApp = mainService.getDownApp(); + model.addAttribute("nDownApp", nDownApp); + + return "admins/main/main"; + } + + @RequestMapping(value = "admins/main/main2.do") + public String main2(@RequestParam HashMap params, + ModelMap model, + HttpServletResponse response, + HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + String menuId = GeoinfoCommon.parseData(params.get("menuId").toString()); + String pId = GeoinfoCommon.parseData(params.get("pId").toString()); + String idx = GeoinfoCommon.parseData(params.get("idx").toString()); + String viewName = GeoinfoCommon.parseData(params.get("viewName").toString()); + + model.addAttribute("menuId", menuId); + model.addAttribute("pId", pId); + model.addAttribute("idx", idx); + model.addAttribute("viewName", viewName); + + int nDownApp = mainService.getDownApp(); + model.addAttribute("nDownApp", nDownApp); + + return "admins/main/main2"; + } +} diff --git a/src/main/java/geoinfo/admins/main/service/MainMapper.java b/src/main/java/geoinfo/admins/main/service/MainMapper.java new file mode 100644 index 0000000..99ad089 --- /dev/null +++ b/src/main/java/geoinfo/admins/main/service/MainMapper.java @@ -0,0 +1,51 @@ +package geoinfo.admins.main.service; + +import java.util.List; +import java.util.Map; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Mapper("mainMapper") +public interface MainMapper { + + public Map selectFileInfo(Map map) throws Exception; + + public void insertFile(Map map) throws Exception; + + public List> selectFiles(Map map) throws Exception; + + public void deleteFiles(Map map) throws Exception; + + public String encryptChk(Map params) throws Exception; + + public EgovMap getMemberInfo(Map params) throws Exception; + + public void updateEncrypt(Map params) throws Exception; + + public void insertAccessLog(Map params) throws Exception; + + public int getDownApp() throws Exception; + + //2024-01-23 임효주 : 대시보드 기능 개발 + public List> selectPwResetList() throws Exception; + + public List> selectSignupRequestList() throws Exception; + + public List> selectQnaList() throws Exception; + + public List> selectComnuList() throws Exception; + + public List> selectPdsList() throws Exception; + + public List> selectFaqList() throws Exception; + + public String selectVisitors() throws Exception; + + public String selectRegistrant() throws Exception; + + public List> selectGongjongCount() throws Exception; + + public List> selectSidoCount() throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/main/service/MainService.java b/src/main/java/geoinfo/admins/main/service/MainService.java new file mode 100644 index 0000000..74064c7 --- /dev/null +++ b/src/main/java/geoinfo/admins/main/service/MainService.java @@ -0,0 +1,48 @@ +package geoinfo.admins.main.service; + +import java.util.List; +import java.util.Map; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + +public interface MainService { + + Map selectFileInfo(Map map) throws Exception; + + void insertFile(Map map) throws Exception; + + List> selectFiles(Map map) throws Exception; + + void deleteFiles(Map map) throws Exception; + + String encryptChk(Map params) throws Exception; + + public EgovMap getMemberInfo(Map params) throws Exception; + + void updateEncrypt(Map params) throws Exception; + + void insertAccessLog(Map params) throws Exception; + + public int getDownApp() throws Exception; + + //2024-01-23 임효주 : 대시보드 기능 개발 + List> selectPwResetList() throws Exception; + + List> selectSignupRequestList() throws Exception; + + List> selectQnaList() throws Exception; + + List> selectComnuList() throws Exception; + + List> selectPdsList() throws Exception; + + List> selectFaqList() throws Exception; + + String selectVisitors() throws Exception; + + String selectRegistrant() throws Exception; + + List> selectGongjongCount() throws Exception; + + List> selectSidoCount() throws Exception; +} diff --git a/src/main/java/geoinfo/admins/main/service/impl/MainServiceImpl.java b/src/main/java/geoinfo/admins/main/service/impl/MainServiceImpl.java new file mode 100644 index 0000000..d86e57a --- /dev/null +++ b/src/main/java/geoinfo/admins/main/service/impl/MainServiceImpl.java @@ -0,0 +1,116 @@ +package geoinfo.admins.main.service.impl; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.main.service.MainMapper; +import geoinfo.admins.main.service.MainService; + +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +@Service("mainService") +public class MainServiceImpl implements MainService { + + @Resource(name = "mainMapper") + private MainMapper mainMapper; + + @Override + public Map selectFileInfo(Map map) throws Exception { + return mainMapper.selectFileInfo(map); + } + + @Override + public void insertFile(Map map) throws Exception { + mainMapper.insertFile(map); + } + + @Override + public void deleteFiles(Map map) throws Exception { + mainMapper.deleteFiles(map); + } + + @Override + public List> selectFiles(Map map) throws Exception { + return mainMapper.selectFiles(map); + } + + @Override + public String encryptChk(Map params) throws Exception { + return mainMapper.encryptChk(params); + } + + @Override + public EgovMap getMemberInfo(Map params) throws Exception { + return mainMapper.getMemberInfo(params); + } + + @Override + public void updateEncrypt(Map params) throws Exception { + mainMapper.updateEncrypt(params); + } + + @Override + public void insertAccessLog(Map params) throws Exception { + mainMapper.insertAccessLog(params); + } + + @Override + public int getDownApp() throws Exception { + return mainMapper.getDownApp(); + } + + //2024-01-23 임효주 : 대시보드 기능 개발 + @Override + public List> selectPwResetList() throws Exception { + return mainMapper.selectPwResetList(); + }; + + @Override + public List> selectSignupRequestList() throws Exception { + return mainMapper.selectSignupRequestList(); + }; + + @Override + public List> selectQnaList() throws Exception { + return mainMapper.selectQnaList(); + }; + + @Override + public List> selectComnuList() throws Exception { + return mainMapper.selectComnuList(); + }; + + @Override + public List> selectPdsList() throws Exception { + return mainMapper.selectPdsList(); + }; + + @Override + public List> selectFaqList() throws Exception { + return mainMapper.selectFaqList(); + }; + + @Override + public String selectVisitors() throws Exception { + return mainMapper.selectVisitors(); + } + + @Override + public String selectRegistrant() throws Exception { + return mainMapper.selectRegistrant(); + } + + @Override + public List> selectGongjongCount() throws Exception { + return mainMapper.selectGongjongCount(); + }; + + @Override + public List> selectSidoCount() throws Exception { + return mainMapper.selectSidoCount(); + }; + +} diff --git a/src/main/java/geoinfo/admins/manager/AdminInfoMngController.java b/src/main/java/geoinfo/admins/manager/AdminInfoMngController.java new file mode 100644 index 0000000..e695915 --- /dev/null +++ b/src/main/java/geoinfo/admins/manager/AdminInfoMngController.java @@ -0,0 +1,68 @@ +package geoinfo.admins.manager; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.manager.service.AdminInfoMngService; +import geoinfo.session.UserInfo; + +import java.io.IOException; +import java.sql.SQLException; +import java.util.HashMap; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; + +@Controller +public class AdminInfoMngController { + @Resource(name = "adminInfoMngService") + private AdminInfoMngService masterService; + + @RequestMapping(value = "admins/manager/00.do") + public String selectInfo() throws Exception { + return "admins/manager/00"; + } + + @RequestMapping(value = "admins/user/updatePwd", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap updatePwd(ModelMap model, HttpServletResponse response, HttpServletRequest request, @RequestParam HashMap params) throws Exception { + + HashMap jsonMap = new HashMap(); + + boolean flag = false; + + if (!UserInfo.isValidSession(request, response, "admin")) { + jsonMap.put("session", false); + } else { + int affectRow = 0; + + params.put("id", "admin_user"); + + EgovMap result = masterService.getMember(params); + + try { + if (result != null) { + affectRow = 1; + masterService.updateInfo(params); + } + + jsonMap.put("affectRow", affectRow); + + flag = true; + + } catch (SQLException e) { + flag = false; + } + } + + jsonMap.put("flag", flag); + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + +} diff --git a/src/main/java/geoinfo/admins/manager/service/AdminInfoMngMapper.java b/src/main/java/geoinfo/admins/manager/service/AdminInfoMngMapper.java new file mode 100644 index 0000000..186e0db --- /dev/null +++ b/src/main/java/geoinfo/admins/manager/service/AdminInfoMngMapper.java @@ -0,0 +1,15 @@ +package geoinfo.admins.manager.service; + +import java.util.HashMap; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Mapper("adminInfoMngMapper") +public interface AdminInfoMngMapper { + + public EgovMap getMember(HashMap params) throws Exception; + + public void updateInfo(HashMap params) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/manager/service/AdminInfoMngService.java b/src/main/java/geoinfo/admins/manager/service/AdminInfoMngService.java new file mode 100644 index 0000000..41a0364 --- /dev/null +++ b/src/main/java/geoinfo/admins/manager/service/AdminInfoMngService.java @@ -0,0 +1,13 @@ +package geoinfo.admins.manager.service; + +import java.util.HashMap; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + +public interface AdminInfoMngService { + + public EgovMap getMember(HashMap params) throws Exception; + + public void updateInfo(HashMap params) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/manager/service/impl/AdminInfoMngServiceImpl.java b/src/main/java/geoinfo/admins/manager/service/impl/AdminInfoMngServiceImpl.java new file mode 100644 index 0000000..ef68d2d --- /dev/null +++ b/src/main/java/geoinfo/admins/manager/service/impl/AdminInfoMngServiceImpl.java @@ -0,0 +1,30 @@ +package geoinfo.admins.manager.service.impl; + +import geoinfo.admins.manager.service.AdminInfoMngMapper; +import geoinfo.admins.manager.service.AdminInfoMngService; + +import java.util.HashMap; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Service("adminInfoMngService") +public class AdminInfoMngServiceImpl implements AdminInfoMngService { + + @Resource(name = "adminInfoMngMapper") + private AdminInfoMngMapper masterMapper; + + @Override + public EgovMap getMember(HashMap params) throws Exception { + return masterMapper.getMember(params); + } + + @Override + public void updateInfo(HashMap params) throws Exception { + masterMapper.updateInfo(params); + } + +} diff --git a/src/main/java/geoinfo/admins/notice/NoticeMngController.java b/src/main/java/geoinfo/admins/notice/NoticeMngController.java new file mode 100644 index 0000000..9643e49 --- /dev/null +++ b/src/main/java/geoinfo/admins/notice/NoticeMngController.java @@ -0,0 +1,400 @@ + package geoinfo.admins.notice; + +import egovframework.com.cmm.ComDefaultCodeVO; +import egovframework.com.cmm.service.EgovProperties; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import geoinfo.admins.notice.service.NoticeMngService; +import geoinfo.com.GeoinfoCommon; +import geoinfo.session.UserInfo; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.io.FilenameUtils; +import org.apache.log4j.Logger; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Sheet; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; + +@Controller +public class NoticeMngController { + + private static final Logger LOGGER = Logger.getLogger(NoticeMngController.class.getName()); + + @Resource(name = "noticeMngService") + private NoticeMngService masterService; + + private final String noticeFilePath = EgovProperties.getProperty("Geoinfo.FilePath"); + + @RequestMapping(value = "admins/notice/00.do") + public String selectInfoList(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(10); //searchVO.getPageUnit() + paginationInfo.setPageSize(10); //searchVO.getPageSize() + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectInfoList(params); + model.addAttribute("noticeInfo", resultList); + + int totCnt = masterService.selectInfoListCnt(params); + paginationInfo.setTotalRecordCount(totCnt); + + model.addAttribute("params", params); + model.addAttribute("noticeInfo", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/notice/00"; + } + + /** 2023.10.23 LHJ 공지사항 팝업 미리보기 **/ + @RequestMapping(value = "noticePopView.do") + public ModelAndView noticePopView(ModelAndView model, @RequestParam HashMap params) throws Exception + { + + EgovMap resultList = masterService.selectWebNoticeInfo(params); + + model.addObject("resultList", resultList); + model.setViewName("admins/notice/popup_notice"); + + return model; + } + + @RequestMapping(value = "admins/notice/00-view.do") + public String selectInfoDetailView(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + EgovMap resultList = masterService.selectWebNoticeInfo(params); + + if (resultList.get("top").equals("Y")) { + resultList.put("top", "상단고정 사용"); + } else { + resultList.put("top", "상단고정 미사용"); + } + + if (resultList.get("popupAt").equals("Y")) { + resultList.put("popupAt", "팝업 사용"); + } else { + resultList.put("popupAt", "팝업 미사용"); + } + + model.addAttribute("detailView", resultList); + model.addAttribute("br", "\r"); + + return "admins/notice/00-view"; + } + + + + @RequestMapping(value = "admins/notice/write.do") + public String Write(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + //팝업창시작일자선택목록(시) + model.addAttribute("popupBgndtHH", getTimeHH()); + //팝업창시작일자선택목록(분) + model.addAttribute("popupBgndtMM", getTimeMM()); + //팝업창종료일자선택목록(시) + model.addAttribute("popupEnddtHH", getTimeHH()); + //팝업창종료일자선택목록(분) + model.addAttribute("popupEnddtMM", getTimeMM()); + + return "admins/notice/write"; + } + + @RequestMapping(value = "admins/notice/00-modify.do") + public String updateDetailView(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + EgovMap detailView = masterService.selectWebNoticeInfo(params); + String saveName = ""; + + saveName = (String) detailView.get("savename"); + + if(saveName != null){ + model.addAttribute("fileExist", "Y"); + }else{ + model.addAttribute("fileExist", "N"); + } + + //팝업창시작일자선택목록(시) + model.addAttribute("popupBgndtHH", getTimeHH()); + //팝업창시작일자선택목록(분) + model.addAttribute("popupBgndtMM", getTimeMM()); + //팝업창종료일자선택목록(시) + model.addAttribute("popupEnddtHH", getTimeHH()); + //팝업창종료일자선택목록(분) + model.addAttribute("popupEnddtMM", getTimeMM()); + + String sPopupBgndt = (String) detailView.get("popupBgndt"); + String sPopupEnddt = (String) detailView.get("popupEnddt"); + + if(sPopupBgndt != null && !sPopupBgndt.equals("")) { + detailView.put("sPopupBgndtHH", sPopupBgndt.substring(8, 10)); + detailView.put("sPopupBgndtMM", sPopupBgndt.substring(10, 12)); + } else { + detailView.put("sPopupBgndtHH", null); + detailView.put("sPopupBgndtMM", null); + } + + if(sPopupEnddt != null && !sPopupEnddt.equals("")) { + detailView.put("sPopupEnddtHH", sPopupEnddt.substring(8, 10)); + detailView.put("sPopupEnddtMM", sPopupEnddt.substring(10, 12)); + } else { + detailView.put("sPopupEnddtHH", null); + detailView.put("sPopupEnddtMM", null); + } + + model.addAttribute("detailView", detailView); + model.addAttribute("br", "\r"); + + return "admins/notice/00-modify"; + } + + @RequestMapping(value="admins/notice/writePost.do") + public String insertWriterPost(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request, + MultipartHttpServletRequest multiRequest) throws Exception{ + String subject = (String) params.get("subject"); + String contents = (String) params.get("contents"); + String top = (String) params.get("top"); + String popupAt = (String) params.get("popupAt"); + String popupBgndt = ""; + String popupEnddt = ""; + MultipartFile file = multiRequest.getFile("file"); + + if(params.get("popupAt").equals("Y")) { + popupBgndt = popupBgndt + (String) params.get("popupBgndtDD") + (String) params.get("popupBgndtHH") + (String) params.get("popupBgndtMM"); + popupEnddt = popupEnddt + (String) params.get("popupEnddtDD") + (String) params.get("popupEnddtHH") + (String) params.get("popupEnddtMM"); + }; + + params.put("subject", subject); + params.put("contents", contents); + params.put("top", top); + params.put("popupAt", popupAt); + params.put("popupBgndt", popupBgndt); + params.put("popupEnddt", popupEnddt); + + if(file.getOriginalFilename().equals("")){ + params.put("filename", ""); + params.put("savename", ""); + }else{ + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName = L_dat + "_" + L_tmp + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + params.put("savename", saveName); + params.put("filename", file.getOriginalFilename()); + + File saveFile = new File(noticeFilePath, FilenameUtils.getName(saveName)); + file.transferTo(saveFile); + } + + masterService.insertWebNotice(params); + + return "redirect:/admins/notice/00.do"; + } + + @RequestMapping(value="admins/notice/updatePost.do") + public String updateWritePost(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request, + MultipartHttpServletRequest multiRequest) throws Exception{ + String subject = (String) params.get("subject"); + String contents = (String) params.get("contents"); + String top = (String) params.get("top"); + String updateFlag = (String) params.get("updateFlag"); + String orgFile = (String) params.get("orgFile"); + String popupAt = (String) params.get("popupAt"); + String popupBgndt = ""; + String popupEnddt = ""; + MultipartFile file = multiRequest.getFile("file"); + + if(params.get("popupAt").equals("Y")) { + popupBgndt = popupBgndt + (String) params.get("popupBgndtDD") + (String) params.get("popupBgndtHH") + (String) params.get("popupBgndtMM"); + popupEnddt = popupEnddt + (String) params.get("popupEnddtDD") + (String) params.get("popupEnddtHH") + (String) params.get("popupEnddtMM"); + }; + + params.put("subject", subject); + params.put("contents", contents); + params.put("top", top); + params.put("popupAt", popupAt); + params.put("popupBgndt", popupBgndt); + params.put("popupEnddt", popupEnddt); + params.put("updateFlag", updateFlag); + + if("Y".equals(updateFlag)){ + if(file.getOriginalFilename().equals("")){ + params.put("filename", ""); + params.put("savename", ""); + }else{ + GregorianCalendar cal = new GregorianCalendar(); + String L_dat = cal.get(Calendar.YEAR) + "_" + cal.get(Calendar.MONTH)+ "_" + cal.get(Calendar.DATE); + String L_tmp = cal.get(Calendar.HOUR) + "_" + cal.get(Calendar.MINUTE)+ "_" + cal.get(Calendar.SECOND); + String saveName = L_dat + "_" + L_tmp + file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); + params.put("savename", saveName); + params.put("filename", file.getOriginalFilename()); + + File saveFile = new File(noticeFilePath, FilenameUtils.getName(saveName)); + file.transferTo(saveFile); + } + + File deleteFile = new File(noticeFilePath, FilenameUtils.getName(orgFile)); + deleteFile.delete(); + } + + masterService.updateWebNotice(params); + + return "redirect:/admins/notice/00.do"; + } + + @RequestMapping(value="admins/notice/delete.do") + public String delete(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception{ + String orgFile = (String) params.get("savename"); + + File deleteFile = new File(noticeFilePath, FilenameUtils.getName(orgFile)); + + deleteFile.delete(); + + masterService.deleteWebNotice(params); + + return "redirect:/admins/notice/00.do"; + } + + @RequestMapping(value = "admins/notice/fileDownload.do") + public void fileDownload(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + String savename = (String) params.get("savename"); + String filename = (String) params.get("filename"); + + File file = new File(noticeFilePath, FilenameUtils.getName(savename)); + +// response.setContentType("multipart/form-data"); + response.setContentLength((int)file.length()); + + response.setHeader("Content-Disposition", GeoinfoCommon.safeHttpHeader("attachment; filename=\"" + filename + "\"")); + response.setHeader("Content-Transfer-Encoding", "binary"); + + OutputStream out = response.getOutputStream(); + FileInputStream fis = null; + + try { + fis = new FileInputStream(file); + FileCopyUtils.copy(fis, out); + } + catch(IOException e){ + LOGGER.error(e); + }finally{ + if(fis != null){ + try{ + fis.close(); + }catch(IOException e){ + LOGGER.error(e); + } + } + } + out.flush(); + } + + /** + * 시간을 LIST를 반환한다. + * @return List + * @throws + */ + @SuppressWarnings("unused") + private List getTimeHH() { + ArrayList listHH = new ArrayList(); + HashMap hmHHMM; + for (int i = 0; i < 24; i++) { + String sHH = ""; + String strI = String.valueOf(i); + if (i < 10) { + sHH = "0" + strI; + } else { + sHH = strI; + } + + ComDefaultCodeVO codeVO = new ComDefaultCodeVO(); + codeVO.setCode(sHH); + codeVO.setCodeNm(sHH); + + listHH.add(codeVO); + } + + return listHH; + } + + /** + * 분을 LIST를 반환한다. + * @return List + * @throws + */ + @SuppressWarnings("unused") + private List getTimeMM() { + ArrayList listMM = new ArrayList(); + HashMap hmHHMM; + for (int i = 0; i < 60; i++) { + + String sMM = ""; + String strI = String.valueOf(i); + if (i < 10) { + sMM = "0" + strI; + } else { + sMM = strI; + } + + ComDefaultCodeVO codeVO = new ComDefaultCodeVO(); + codeVO.setCode(sMM); + codeVO.setCodeNm(sMM); + + listMM.add(codeVO); + } + return listMM; + } + + /** + * 0을 붙여 반환 + * @return String + * @throws + */ + public String dateTypeIntForString(int iInput) { + String sOutput = ""; + if (Integer.toString(iInput).length() == 1) { + sOutput = "0" + Integer.toString(iInput); + } else { + sOutput = Integer.toString(iInput); + } + + return sOutput; + } +} diff --git a/src/main/java/geoinfo/admins/notice/service/NoticeMngMapper.java b/src/main/java/geoinfo/admins/notice/service/NoticeMngMapper.java new file mode 100644 index 0000000..96ec737 --- /dev/null +++ b/src/main/java/geoinfo/admins/notice/service/NoticeMngMapper.java @@ -0,0 +1,23 @@ +package geoinfo.admins.notice.service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Mapper("noticeMngMapper") +public interface NoticeMngMapper { + public List selectInfoList(Map params) throws Exception; + + public int selectInfoListCnt(HashMap params) throws Exception ; + + public EgovMap selectWebNoticeInfo (Map params) throws Exception; + + public void insertWebNotice(Map params) throws Exception; + + public void updateWebNotice(Map params) throws Exception; + + public void deleteWebNotice(Map params) throws Exception; +} diff --git a/src/main/java/geoinfo/admins/notice/service/NoticeMngService.java b/src/main/java/geoinfo/admins/notice/service/NoticeMngService.java new file mode 100644 index 0000000..2cba801 --- /dev/null +++ b/src/main/java/geoinfo/admins/notice/service/NoticeMngService.java @@ -0,0 +1,22 @@ +package geoinfo.admins.notice.service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + +public interface NoticeMngService { + public List selectInfoList(Map params) throws Exception; + + public int selectInfoListCnt(HashMap params) throws Exception; + + public EgovMap selectWebNoticeInfo (Map params) throws Exception; + + public void insertWebNotice(Map params) throws Exception; + + public void updateWebNotice(Map params) throws Exception; + + public void deleteWebNotice(Map params) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/notice/service/impl/NoticeMngServiceImpl.java b/src/main/java/geoinfo/admins/notice/service/impl/NoticeMngServiceImpl.java new file mode 100644 index 0000000..3bc25f5 --- /dev/null +++ b/src/main/java/geoinfo/admins/notice/service/impl/NoticeMngServiceImpl.java @@ -0,0 +1,50 @@ +package geoinfo.admins.notice.service.impl; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.notice.service.NoticeMngMapper; +import geoinfo.admins.notice.service.NoticeMngService; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +@Service("noticeMngService") +public class NoticeMngServiceImpl implements NoticeMngService { + + @Resource(name = "noticeMngMapper") + private NoticeMngMapper masterMapper; + + @Override + public List selectInfoList(Map params) throws Exception { + return masterMapper.selectInfoList(params); + } + + @Override + public int selectInfoListCnt(HashMap params) throws Exception { + return masterMapper.selectInfoListCnt(params); + } + + @Override + public EgovMap selectWebNoticeInfo(Map params) throws Exception { + return masterMapper.selectWebNoticeInfo(params); + } + + @Override + public void insertWebNotice(Map params) throws Exception { + masterMapper.insertWebNotice(params); + } + + @Override + public void updateWebNotice (Map params) throws Exception { + masterMapper.updateWebNotice(params); + }; + + @Override + public void deleteWebNotice (Map params) throws Exception{ + masterMapper.deleteWebNotice(params); + } +} diff --git a/src/main/java/geoinfo/admins/user/AllowDownloadController.java b/src/main/java/geoinfo/admins/user/AllowDownloadController.java new file mode 100644 index 0000000..960875c --- /dev/null +++ b/src/main/java/geoinfo/admins/user/AllowDownloadController.java @@ -0,0 +1,242 @@ +package geoinfo.admins.user; + +import egovframework.com.json.JSONObject; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.user.service.AllowDownloadService; +import geoinfo.comm.util.strUtil; +import geoinfo.session.UserInfo; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import net.sf.jasperreports.web.util.WebUtil; + +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * 관리자시스템 > 사용자관리 > 사용자등록현황을 처리하는 Controller 클래스 + * + * @author 공간정보기술(주) + * @since 2017.06.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *      수정일                 수정자                     수정내용
+ *  ------------    ----------------    ---------------------------
+ *   2017.06.07     공간정보기술(주)            최초 생성
+ *
+ * 
+ */ +@Controller +public class AllowDownloadController { + @Resource(name = "allowDownloadService") + private AllowDownloadService masterService; + + // 지역허용 정보 얻어오기 + @RequestMapping(value = "admins/user/05.do") + public String selectInfoList(ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List resultList = masterService.selectInfoList(); + model.addAttribute("resultList", resultList); + + return "admins/user/05"; + } + + // 사용자 추가 페이지 호출 + @RequestMapping(value = "admins/user/05_addUser.do", produces="text/plain;charset=UTF-8" ) + public String showAddPopop(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if( !UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + // 지역 목록 + JSONObject jsonObj = new JSONObject(); + List location = masterService.getLocCode(); + jsonObj.put("location", location); + + model.put("result", jsonObj); + //EgovMap userId = masterService.getUserId(); userId = masterService.getUserId(); + //jsonObj.put("userId", userId); + + return "admins/user/05_addUser"; + } + + @ResponseBody + @RequestMapping(value = "admins/user/getUserInfo", method = RequestMethod.POST, produces="text/plain;charset=UTF-8" ) + public String getUserInfo(ModelMap model, HttpServletRequest request, HttpServletResponse response, @RequestParam HashMap params) throws Exception { + JSONObject jsonObject = new JSONObject(); + + + + EgovMap temp = masterService.getUserInfo(params); + + String userid = (String) temp.get("userid"); + if( userid != null && userid != "") { + String userName = (String) temp.get("userName"); + String companyName = (String) temp.get("companyName"); + String phone = (String) temp.get("phone"); + + jsonObject.put("RESULT_KEY","Success"); + jsonObject.put("userid", userid); + jsonObject.put("userName", userName); + jsonObject.put("companyName", companyName); + jsonObject.put("phone", phone); + } else { + jsonObject.put("RESULT_KEY","fail"); + } + response.setCharacterEncoding("UTF-8"); + response.getWriter().print(jsonObject); + + return null; + } + + // 지역허용 사용자 추가 + @RequestMapping(value = "admins/user/05_insertUser",method=RequestMethod.POST, produces="text/plain;charset=UTF-8") + public String insertUser(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if( !UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + JSONObject jsonObject = new JSONObject(); + // 변수선언 + //WebUtil wUtil = new WebUtil(); + strUtil sUtil = new strUtil(); + + String oUSER_ID = sUtil.checkNull((String)params.get("userid")); + String oUSER_NAME = sUtil.checkNull((String)params.get("userName")); + String oCOMPANY_NAME = sUtil.checkNull((String)params.get("companyName")); + String oPHONE = sUtil.checkNull((String)params.get("phone")); + String oREGION = sUtil.checkNull((String)params.get("region")); + String oREGION_NAME = sUtil.checkNull((String)params.get("regionName")); + + String oREGION_SGG = sUtil.checkNull((String)params.get("regionSgg")); + String oREGION_SGG_NAME = sUtil.checkNull((String)params.get("regionSggName")); + + String oSTART_DATE = sUtil.checkNull((String)params.get("startDate")); + String oEND_DATE = sUtil.checkNull((String)params.get("endDate")); + + params.put("userid", oUSER_ID); + params.put("userName", oUSER_NAME); + params.put("companyName", oCOMPANY_NAME); + params.put("phone", oPHONE); + params.put("region", oREGION); + params.put("regionName", oREGION_NAME); + params.put("regionSgg", oREGION_SGG); + params.put("regionSggName", oREGION_SGG_NAME); + params.put("startDate", oSTART_DATE); + params.put("endDate", oEND_DATE); + + if( oREGION_SGG_NAME.equals("-") ){ + params.put("regionCode", oREGION); + } else { + params.put("regionCode", oREGION_SGG); + } + + // 지역 이름 추가 + //String oREGION_NAME = masterService.getCityName(params); + //params.put("regionName", oREGION_NAME); + + // 동일한 아이디가 존재하는지 확인 + + int count = masterService.existUser(params); + + if( count > 0 ) { + jsonObject.put("RESULT_KEY","Exist"); + } else { + try { + masterService.insertUser(params); + jsonObject.put("RESULT_KEY","Success"); + } catch (Exception e) { + jsonObject.put("RESULT_KEY","Fail"); + e.printStackTrace(); + } + } + + response.setCharacterEncoding("UTF-8"); + response.getWriter().print(jsonObject); + + return null; + } + + // 지역허용 사용자 추가 + @RequestMapping(value = "admins/user/05_delUser",method=RequestMethod.POST, produces="text/plain;charset=UTF-8") + public String delUser(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if( !UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + JSONObject jsonObject = new JSONObject(); + // 변수선언 + //WebUtil wUtil = new WebUtil(); + strUtil sUtil = new strUtil(); + + String oUSER_ID = sUtil.checkNull((String)params.get("userid")); + String oREGION = sUtil.checkNull((String)params.get("region")); + + params.put("userid", oUSER_ID); + params.put("region", oREGION); + + try { + masterService.delUser(params); + jsonObject.put("RESULT_KEY","Success"); + } catch (Exception e) { + jsonObject.put("RESULT_KEY","fail"); + e.printStackTrace(); + } + + response.setCharacterEncoding("UTF-8"); + response.getWriter().print(jsonObject); + + return null; + } + + @ResponseBody + @RequestMapping(value = "admins/user/05_getLocCodeSgg", method = RequestMethod.POST, produces="text/plain;charset=UTF-8" ) + public String getLocCodeSgg(ModelMap model, HttpServletRequest request, HttpServletResponse response, @RequestParam HashMap params) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + JSONObject jsonObj = new JSONObject(); + + strUtil sUtil = new strUtil(); + String oCode = sUtil.checkNull((String)params.get("code")) + "%"; + params.put("code", oCode); + + List locationSgg = masterService.getLocCodeSgg(params); + jsonObj.put("locationSgg", locationSgg); + + if( locationSgg.isEmpty() == false) { + jsonObj.put("RESULT_KEY","Success"); + } else { + jsonObj.put("RESULT_KEY","fail"); + } + + response.setCharacterEncoding("UTF-8"); + response.getWriter().print(jsonObj); + + return null; + } +} diff --git a/src/main/java/geoinfo/admins/user/ClientMngController.java b/src/main/java/geoinfo/admins/user/ClientMngController.java new file mode 100644 index 0000000..6513a93 --- /dev/null +++ b/src/main/java/geoinfo/admins/user/ClientMngController.java @@ -0,0 +1,132 @@ +package geoinfo.admins.user; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import geoinfo.admins.user.service.ClientMngService; +import geoinfo.com.EgovExcel; +import geoinfo.session.UserInfo; + +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Sheet; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * 관리자시스템 > 사용자관리 > 발주처관리를 처리하는 Controller 클래스 + * + * @author 공간정보기술(주) + * @since 2017.06.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *      수정일                 수정자                     수정내용
+ *  ------------    ----------------    ---------------------------
+ *   2017.06.07		공간정보기술(주)            	최초 생성
+ *   2023.10.25		아이씨티웨이				검색조건 추가(사업자등록번호, 가입기간)
+ *
+ *      
+ */ +@Controller +public class ClientMngController { + @Resource(name = "clientMngService") + private ClientMngService masterService; + + @RequestMapping(value = "admins/user/02.do") + public String selectInfoList(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** 2023.10.25 LHJ 검색조건 추가 : 가입기간 시작/종료날짜를 8자리 숫자로 입력하지 않았을 때 처리 **/ + String searchBgndt = (String) params.get("searchBgndt"); + if(searchBgndt == null || searchBgndt.length() != 8 || !searchBgndt.matches("[0-9]+")) { + params.put("searchBgndt", ""); + } + String searchEnddt = (String) params.get("searchEnddt"); + if(searchEnddt == null || searchEnddt.length() != 8 || !searchEnddt.matches("[0-9]+")) { + params.put("searchEnddt", ""); + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(10); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectInfoList(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/user/02"; + } + + @RequestMapping(value = "admins/user/02_excel.do") + public void selectInfoListExcel(@RequestParam HashMap params, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) + throws Exception { + + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListExcel(params); + + String[] arrHeader = { "번호", "아이디", "이름", "연락처", "이메일", "가입일자", "공공I-PIN가입여부", "그룹", "우편번호", "회사명", "부서명", "회사주소" }; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "발주처관리"); + map.put("fileName", "발주처관리_"); + + buildExcelDocument(map, workbook, request, response); + } + + public void buildExcelDocument(Map model, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + List selectInfoListExcel = (List) model.get("selectInfoListExcel"); + + String[] arrHeader = (String[]) model.get("arrHeader"); + + Sheet sheet = workbook.createSheet((String) model.get("sheetName")); + + EgovExcel.SetExcelList(workbook, sheet, arrHeader, selectInfoListExcel, 0, 0); + + response.setContentType("application/vnd.ms-excel"); + response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode((String) model.get("fileName") + (new SimpleDateFormat("yyyy.MM.dd", Locale.KOREA)).format(new Date()), "UTF-8") + ".xls" + ";"); + ServletOutputStream myOut = response.getOutputStream(); + workbook.write(myOut); // 파일 저장 + } + +} diff --git a/src/main/java/geoinfo/admins/user/GeneralUserMngController.java b/src/main/java/geoinfo/admins/user/GeneralUserMngController.java new file mode 100644 index 0000000..6e145f2 --- /dev/null +++ b/src/main/java/geoinfo/admins/user/GeneralUserMngController.java @@ -0,0 +1,621 @@ +package geoinfo.admins.user; + +import java.net.URLEncoder; +import java.security.SecureRandom; +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.apache.log4j.Logger; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Sheet; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.ModelAndView; + +import egovframework.com.cmm.service.EgovProperties; +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import geoinfo.admins.board.RefrncRoomController; +import geoinfo.admins.user.service.GeneralUserMngService; +import geoinfo.com.EgovExcel; +import geoinfo.com.GeoinfoCommon; +import geoinfo.comm.util.ScriptUtil; +import geoinfo.session.UserInfo; +import whois.whoisSMS; + + +/** + * 관리자시스템 > 사용자관리 > 일반사용자관리를 처리하는 Controller 클래스 + * + * @author 공간정보기술(주) + * @since 2017.06.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *      수정일                 수정자                     수정내용
+ *  ------------    ----------------    ---------------------------
+ *   2017.06.07    	공간정보기술(주)            	최초 생성
+ *   2023.10.25		아이씨티웨이				검색조건 추가(사업자등록번호, 가입기간)
+ *
+ *      
+ */ +@Controller +public class GeneralUserMngController { + @Resource(name = "generalUserMngService") + private GeneralUserMngService masterService; + + private static final Logger LOGGER = Logger.getLogger(RefrncRoomController.class.getName()); + + // 운영서버 경로 + // private final String savePath = "D:\\Tomcat6\\geoinfoEgov\\webapps\\geoinfo\\files"; + // 개발서버 경로 + private final String savePath = EgovProperties.getProperty("Geoinfo.FilePath"); + + @RequestMapping(value = "admins/user/00.do") + public String selectInfoList(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** 2023.10.25 LHJ 검색조건 추가 : 가입기간 시작/종료날짜를 8자리 숫자로 입력하지 않았을 때 처리 **/ + String searchBgndt = (String) params.get("searchBgndt"); + if(searchBgndt == null || searchBgndt.length() != 8 || !searchBgndt.matches("[0-9]+")) { + params.put("searchBgndt", ""); + } + String searchEnddt = (String) params.get("searchEnddt"); + if(searchEnddt == null || searchEnddt.length() != 8 || !searchEnddt.matches("[0-9]+")) { + params.put("searchEnddt", ""); + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(10); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectInfoList(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/user/00"; + } + + @RequestMapping(value = "admins/user/00_view.do") + public String selectInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request, HttpSession session) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + String id = "sogone" ; + String ipAdd = request.getRemoteAddr(); + + params.put("id", id); + params.put("ipAdd", ipAdd); + + EgovMap result = masterService.selectInfo(params); + masterService.selectAccessInfo(params); + + result.put("cls", params.get("cls")); + + model.addAttribute("result", result); + + return "admins/user/00_view"; + } + + @RequestMapping(value = "admins/user/00_view_Ini.do") + public String selectInfoIni(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request, HttpSession session) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + String id = "sogone" ; + String ipAdd = request.getRemoteAddr(); + + params.put("id", id); + params.put("ipAdd", ipAdd); + EgovMap result = masterService.selectInfoIni(params); + masterService.selectAccessInfo(params); + result.put("cls", params.get("cls")); + model.addAttribute("requestdate", params.get("requestdate")); + model.addAttribute("result", result); + + return "admins/user/00_view_Ini"; + } + + @RequestMapping(value = "admins/user/passChange.do") + public String passChange(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + String userId = GeoinfoCommon.parseData((String) params.get("userId")); + model.addAttribute("userId", userId); + + String id = "sogone" ; + String ipAdd = request.getRemoteAddr(); + + params.put("id", id); + params.put("ipAdd", ipAdd); + masterService.pwUpdateInfo(params); + + return "admins/user/passChange"; + } + + @RequestMapping(value = "admins/user/passIniChange", method = RequestMethod.POST) + public ModelMap passIniChange(ModelMap model, HttpServletRequest request, HttpServletResponse response, @RequestParam HashMap params) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return null; + } + String userId = GeoinfoCommon.parseData((String) params.get("userId")); + try { + + final String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + + SecureRandom random = new SecureRandom(); + StringBuilder sb = new StringBuilder(); + + // 루프의 각 반복은 주어진 문자에서 무작위로 문자를 선택합니다. + // ASCII 범위를 `StringBuilder` 인스턴스에 추가합니다. + + for (int i = 0; i < 10; i++) + { + int randomIndex = random.nextInt(chars.length()); + sb.append(chars.charAt(randomIndex)); + } + + String passwordre = ScriptUtil.getSha256(sb.toString(), "UTF-8").substring(0, 20); + /*passwordre = ScriptUtil.getSha256(passwordre, "UTF-8").substring(0, 20);*/ + + params.put("hiddenChPass",passwordre); + params.put("userId", GeoinfoCommon.parseData((String) params.get("userId"))); + params.put("requestDate", GeoinfoCommon.parseData((String) params.get("requestDate"))); + params.put("accept", '1'); + masterService.updateUserInipassInfo(params); + masterService.updateUserPassInfo(params); + +/* String sms_id = "kictgis1234"; // "smstest"; "kictgis1234" + String sms_passwd = "!!kictgis1234"; // "smstest"; "!!kictgis1234" + + whoisSMS whois_sms = new whoisSMS(); + whois_sms.setUtf8(); + String sms_type = "L"; // 설정 하지 않는다면 80byte 넘는 메시지는 쪼개져서 sms로 발송, L 로 + // 설정하면 80byte 넘으면 자동으로 lms 변환 + // 로그인 + whois_sms.login(sms_id, sms_passwd); + + // 받는사람번호 + String sms_to = String.valueOf(params.get("changephone")); + // 보내는 사람번호 + String sms_from = "010-7345-4369"; + // 발송예약시간 (현재시간보다 작거나 같으면 즉시 발송이며 현재시간보다 10분이상 큰경우는 예약발송입니다.) + String sms_date = String.valueOf(params.get("sms_date")); + // 보내는 메세지 + String sms_msg = "[한국건설기술연구원]변경된 비밀번호는 "+sb.toString()+"입니다."; + sms_msg = new String(sms_msg.getBytes("UTF-8"), "iso-8859-1"); + + //sms_msg = new String(sms_msg.getBytes("euc-kr"), "utf-8"); + //sms_msg = new String(sms_msg.getBytes("ISO-8859-1"), "utf-8" ); + // 프로젝트코드 + String project_code = String.valueOf(params.get("project_code")); + + // 요청구분 + String reqGbn = String.valueOf(params.get("reqGbn")); + + // 보내는사람 Id + String sms_from_id = String.valueOf(params.get("sms_from_id")); + + // 받는사람 ID + String sms_to_id = String.valueOf(params.get("sms_to_id")); + + // 발송시간을 파라메터로 받지 못한경우 현재시간을 입력해줍니다. + if (sms_date == null) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.KOREA); + Date cNow = new Date(); + sms_date = sdf.format(cNow); + } + // 파라메터 설정 + whois_sms.setParams(sms_to, sms_from, sms_msg, sms_date, sms_type); + // 문자발송 + whois_sms.emmaSend(); + // 결과값 가져오기 + int retCode = whois_sms.getRetCode(); + // 발송결과 메세지 + String retMessage = whois_sms.getRetMessage(); + // 성공적으로 발송한경우 남은 문자갯수( 종량제 사용의 경우, 남은 발송가능한 문자수를 확인합니다.) + int retLastPoint = whois_sms.getLastPoint();*/ + +/* model.addAttribute("retCode", retCode); + model.addAttribute("retMessage", retMessage); + model.addAttribute("retLastPoint", retLastPoint); + model.addAttribute("project_code", project_code); + model.addAttribute("reqGbn", reqGbn); + model.addAttribute("sms_msg", sms_msg); + model.addAttribute("sms_from_id", sms_from_id); + model.addAttribute("sms_from", sms_from); + model.addAttribute("sms_to_id", sms_to_id); + model.addAttribute("sms_to", sms_to);*/ + + }catch(Exception Ex){ + + } + return null; + } + + @RequestMapping(value = "admins/user/passReturnMes", method = RequestMethod.POST) + public ModelMap passReturnMes(ModelMap model, HttpServletRequest request, HttpServletResponse response, @RequestParam HashMap params) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return null; + } + String userId = GeoinfoCommon.parseData((String) params.get("userId")); + try { + + final String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + + + params.put("accept", '2'); + masterService.updateUserInipassInfo(params); + + String sms_id = "kictgis1234"; // "smstest"; "kictgis1234" + String sms_passwd = "!!kictgis1234"; // "smstest"; "!!kictgis1234" + + whoisSMS whois_sms = new whoisSMS(); + whois_sms.setUtf8(); + String sms_type = "L"; // 설정 하지 않는다면 80byte 넘는 메시지는 쪼개져서 sms로 발송, L 로 + // 설정하면 80byte 넘으면 자동으로 lms 변환 + // 로그인 + whois_sms.login(sms_id, sms_passwd); + + + // 받는사람번호 + String sms_to = String.valueOf(params.get("changephone")); + // 보내는 사람번호 + String sms_from = "010-7345-4369"; + // 발송예약시간 (현재시간보다 작거나 같으면 즉시 발송이며 현재시간보다 10분이상 큰경우는 예약발송입니다.) + String sms_date = String.valueOf(params.get("sms_date")); + // 보내는 메세지 + + /*String sms_msg = mess;*/ + + String sms_msg = String.valueOf(params.get("mes")); + sms_msg = new String(sms_msg.getBytes("UTF-8"), "iso-8859-1"); + //sms_msg = new String(sms_msg.getBytes("euc-kr"), "utf-8"); + //sms_msg = new String(sms_msg.getBytes("ISO-8859-1"), "utf-8" ); + // 프로젝트코드 + String project_code = String.valueOf(params.get("project_code")); + + // 요청구분 + String reqGbn = String.valueOf(params.get("reqGbn")); + + // 보내는사람 Id + String sms_from_id = String.valueOf(params.get("sms_from_id")); + + // 받는사람 ID + String sms_to_id = String.valueOf(params.get("sms_to_id")); + + // 발송시간을 파라메터로 받지 못한경우 현재시간을 입력해줍니다. + if (sms_date == null) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.KOREA); + Date cNow = new Date(); + sms_date = sdf.format(cNow); + } + // 파라메터 설정 + whois_sms.setParams(sms_to, sms_from, sms_msg, sms_date, sms_type); + // 문자발송 + whois_sms.emmaSend(); + // 결과값 가져오기 + int retCode = whois_sms.getRetCode(); + // 발송결과 메세지 + String retMessage = whois_sms.getRetMessage(); + // 성공적으로 발송한경우 남은 문자갯수( 종량제 사용의 경우, 남은 발송가능한 문자수를 확인합니다.) + int retLastPoint = whois_sms.getLastPoint(); + + model.addAttribute("retCode", retCode); + model.addAttribute("retMessage", retMessage); + model.addAttribute("retLastPoint", retLastPoint); + model.addAttribute("project_code", project_code); + model.addAttribute("reqGbn", reqGbn); + model.addAttribute("sms_msg", sms_msg); + model.addAttribute("sms_from_id", sms_from_id); + model.addAttribute("sms_from", sms_from); + model.addAttribute("sms_to_id", sms_to_id); + model.addAttribute("sms_to", sms_to); + + }catch(Exception Ex){ + + } + return null; + } + + @RequestMapping(value = "admins/user/passReturn", method = RequestMethod.POST) + public ModelMap passReturn(ModelMap model, HttpServletRequest request, HttpServletResponse response, @RequestParam HashMap params) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return null; + } + String userId = GeoinfoCommon.parseData((String) params.get("userId")); + try { + + params.put("accept", '2'); + masterService.updateUserInipassInfo(params); + + }catch(Exception Ex){ + + } + return null; + } + + + + + @RequestMapping(value = "admins/user/userDel", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap deleteInfo(ModelMap model, HttpServletResponse response, HttpServletRequest request, @RequestParam HashMap params) throws Exception { + + HashMap jsonMap = new HashMap(); + + try { + masterService.deleteInfo(params); + + String id = "sogone" ; + String ipAdd = request.getRemoteAddr(); + + params.put("id", id); + params.put("ipAdd", ipAdd); + masterService.selectDeleteInfo(params); + + jsonMap.put("flag", true); + } catch (SQLException Ex) { + jsonMap.put("flag", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return null; + } + + @RequestMapping(value = "admins/user/passChange_save", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap passChange_save(ModelMap model, HttpServletResponse response, HttpServletRequest request, @RequestParam HashMap params) throws Exception { + + HashMap jsonMap = new HashMap(); + + if (!UserInfo.isValidSession(request, response, "admin")) { + jsonMap.put("flag", false); + return null; + } + + String userId = GeoinfoCommon.parseData((String) params.get("userId")); + String hiddenChPass = GeoinfoCommon.parseData((String) params.get("hiddenChPass")); + + params.put("userId", userId); + params.put("hiddenChPass", hiddenChPass); + + try { + masterService.updateInfo(params); + jsonMap.put("flag", true); + } catch (SQLException Ex) { + jsonMap.put("flag", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/user/00_excel.do") + public void selectInfoListExcel(@RequestParam HashMap params, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) + throws Exception { + + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListExcel(params); + + String[] arrHeader = { "번호", "아이디", "이름", "연락처", "이메일", "가입일자", "공공I-PIN가입여부", "그룹", "우편번호", "회사명", "부서명", "회사주소" }; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "일반사용자관리"); + map.put("fileName", "일반사용자관리_"); + + buildExcelDocument(map, workbook, request, response); + } + + public void buildExcelDocument(Map model, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + List selectInfoListExcel = (List) model.get("selectInfoListExcel"); + + String[] arrHeader = (String[]) model.get("arrHeader"); + + Sheet sheet = workbook.createSheet((String) model.get("sheetName")); + + EgovExcel.SetExcelList(workbook, sheet, arrHeader, selectInfoListExcel, 0, 0); + + response.setContentType("application/vnd.ms-excel"); + response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode((String) model.get("fileName") + (new SimpleDateFormat("yyyy.MM.dd", Locale.KOREA)).format(new Date()), "UTF-8") + ".xls" + ";"); + ServletOutputStream myOut = response.getOutputStream(); + workbook.write(myOut); // 파일 저장 + } + + + @RequestMapping(value = "admins/user/pswdErrReset.do") + public ModelAndView pswdErrReset( + ModelMap model, + HttpServletResponse response, + HttpServletRequest request, + @RequestParam HashMap params) throws Exception { + + HashMap jsonMap = new HashMap(); + + params.put("loginCount", "0"); + + System.out.println("pswdErrReset params - " + params.toString()); + try { + masterService.updateWebMemberIn(params); + jsonMap.put("flag", true); + System.out.println("pswdErrReset params - " + params.toString()); + } catch (SQLException Ex) { + jsonMap.put("flag", false); + } + + ModelAndView modelAndView = new ModelAndView("jsonView",jsonMap); + + return modelAndView; + + } + + @RequestMapping(value = "admins/user/40.do") + public String selectInfoSidoList(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** 2023.10.25 LHJ 검색조건 추가 : 가입기간 시작/종료날짜를 8자리 숫자로 입력하지 않았을 때 처리 **/ + String searchBgndt = (String) params.get("searchBgndt"); + if(searchBgndt == null || searchBgndt.length() != 8 || !searchBgndt.matches("[0-9]+")) { + params.put("searchBgndt", ""); + } + String searchEnddt = (String) params.get("searchEnddt"); + if(searchEnddt == null || searchEnddt.length() != 8 || !searchEnddt.matches("[0-9]+")) { + params.put("searchEnddt", ""); + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(10); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectInfoSidoList(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/user/40"; + } + + @RequestMapping(value = "admins/user/agree_user", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap agree_user(ModelMap model, HttpServletResponse response, HttpServletRequest request, @RequestParam HashMap params) throws Exception { + + HashMap jsonMap = new HashMap(); + + try { + if(params.get("chk").equals("Y")) { + masterService.updateSidoInfo(params); + }else { + masterService.deleteInfo(params); + } + + String id = "sogone" ; + String ipAdd = request.getRemoteAddr(); + + params.put("id", id); + params.put("ipAdd", ipAdd); + masterService.selectInsertInfo(params); + + jsonMap.put("flag", true); + } catch (SQLException Ex) { + jsonMap.put("flag", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/user/40_view.do") + public String selectSidoInfo(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request, HttpSession session) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + EgovMap result = masterService.selectSidoInfo(params); + + String id = "sogone" ; + String ipAdd = request.getRemoteAddr(); + + params.put("id", id); + params.put("ipAdd", ipAdd); + + masterService.selectAccessSidoInfo(params); + + result.put("cls", params.get("cls")); + + model.addAttribute("result", result); + + return "admins/user/40_view"; + } + + @RequestMapping(value = "admins/user/agree_user_yn", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap agree_user_yn(ModelMap model, HttpServletResponse response, HttpServletRequest request, @RequestParam HashMap params) throws Exception { + + HashMap jsonMap = new HashMap(); + + try { + masterService.updateUserInfo(params); + + String id = "sogone" ; + String ipAdd = request.getRemoteAddr(); + + params.put("id", id); + params.put("ipAdd", ipAdd); + masterService.selectInsertInfo(params); + + jsonMap.put("flag", true); + } catch (SQLException Ex) { + jsonMap.put("flag", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + +} diff --git a/src/main/java/geoinfo/admins/user/SupplierMngController.java b/src/main/java/geoinfo/admins/user/SupplierMngController.java new file mode 100644 index 0000000..bbe49cf --- /dev/null +++ b/src/main/java/geoinfo/admins/user/SupplierMngController.java @@ -0,0 +1,163 @@ +package geoinfo.admins.user; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import geoinfo.admins.user.service.SupplierMngService; +import geoinfo.com.EgovExcel; +import geoinfo.session.UserInfo; + +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Sheet; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * 관리자시스템 > 사용자관리 > 공급자관리를 처리하는 Controller 클래스 + * + * @author 공간정보기술(주) + * @since 2017.06.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *      수정일                 수정자                     수정내용
+ *  ------------    ----------------    ---------------------------
+ *   2017.06.07 	공간정보기술(주)				최초 생성
+ *	 2023.10.25		아이씨티웨이				검색조건 추가(사업자등록번호, 가입기간)
+ *
+ * 
+ */ +@Controller +public class SupplierMngController { + @Resource(name = "supplierMngService") + private SupplierMngService masterService; + + @RequestMapping(value = "admins/user/01.do") + public String selectInfoList(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** 2023.10.25 LHJ 검색조건 추가 : 가입기간 시작/종료날짜를 8자리 숫자로 입력하지 않았을 때 처리 **/ + String searchBgndt = (String) params.get("searchBgndt"); + if(searchBgndt == null || searchBgndt.length() != 8 || !searchBgndt.matches("[0-9]+")) { + params.put("searchBgndt", ""); + } + String searchEnddt = (String) params.get("searchEnddt"); + if(searchEnddt == null || searchEnddt.length() != 8 || !searchEnddt.matches("[0-9]+")) { + params.put("searchEnddt", ""); + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(10); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectInfoList(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/user/01"; + } + + @RequestMapping(value = "admins/user/07.do") + public String selectInfoIniList(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(10); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectInfoIniList(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/user/07"; + } + + @RequestMapping(value = "admins/user/01_excel.do") + public void selectInfoListExcel(@RequestParam HashMap params, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) + throws Exception { + + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListExcel(params); + + String[] arrHeader = { "번호", "아이디", "이름", "연락처", "이메일", "가입일자", "공공I-PIN가입여부", "그룹", "우편번호", "회사명", "부서명", "회사주소"}; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "공급자관리"); + map.put("fileName", "공급자관리_"); + + buildExcelDocument(map, workbook, request, response); + } + + public void buildExcelDocument(Map model, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + List selectInfoListExcel = (List) model.get("selectInfoListExcel"); + + String[] arrHeader = (String[]) model.get("arrHeader"); + + Sheet sheet = workbook.createSheet((String) model.get("sheetName")); + + EgovExcel.SetExcelList(workbook, sheet, arrHeader, selectInfoListExcel, 0, 0); + + response.setContentType("application/vnd.ms-excel"); + response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode((String) model.get("fileName") + (new SimpleDateFormat("yyyy.MM.dd", Locale.KOREA)).format(new Date()), "UTF-8") + ".xls" + ";"); + ServletOutputStream myOut = response.getOutputStream(); + workbook.write(myOut); // 파일 저장 + } +} diff --git a/src/main/java/geoinfo/admins/user/UserRegStatusController.java b/src/main/java/geoinfo/admins/user/UserRegStatusController.java new file mode 100644 index 0000000..5da1ec0 --- /dev/null +++ b/src/main/java/geoinfo/admins/user/UserRegStatusController.java @@ -0,0 +1,51 @@ +package geoinfo.admins.user; + +import geoinfo.admins.user.service.UserRegStatusService; +import geoinfo.session.UserInfo; + +import java.util.List; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + * 관리자시스템 > 사용자관리 > 사용자등록현황을 처리하는 Controller 클래스 + * + * @author 공간정보기술(주) + * @since 2017.06.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *      수정일                 수정자                     수정내용
+ *  ------------    ----------------    ---------------------------
+ *   2017.06.07     공간정보기술(주)            최초 생성
+ *
+ * 
+ */ +@Controller +public class UserRegStatusController { + @Resource(name = "userRegStatusService") + private UserRegStatusService masterService; + + @RequestMapping(value = "admins/user/03.do") + public String selectInfoList(ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List resultList = masterService.selectInfoList(); + + model.addAttribute("resultList", resultList); + + return "admins/user/03"; + } +} diff --git a/src/main/java/geoinfo/admins/user/service/AllowDownloadMapper.java b/src/main/java/geoinfo/admins/user/service/AllowDownloadMapper.java new file mode 100644 index 0000000..ab1862e --- /dev/null +++ b/src/main/java/geoinfo/admins/user/service/AllowDownloadMapper.java @@ -0,0 +1,37 @@ +package geoinfo.admins.user.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Mapper("allowDownloadMapper") +public interface AllowDownloadMapper { + + // 지역허용 정보 얻어오기 + public List selectInfoList() throws Exception; + + public String getCityName( HashMap params ) throws Exception; + + // 지역허용 사용자 추가 + public void insertUser( HashMap params ) throws Exception; + + // 사용자 삭제 + public void delUser( HashMap params ) throws Exception; + + // 지역코드 얻어오기 + public List getLocCode() throws Exception; + + // 지역코드 얻어오기 + public List getLocCodeSgg(HashMap params) throws Exception; + + // 아이디 정보 얻어오기 + public List getUserId() throws Exception; + + // 아이디에 따른 사용자 정보 얻어오기 + public EgovMap getUserInfo( HashMap params ) throws Exception; + + // 추가 된 아이디가 존재하는 지 확인 + public int existUser(HashMap params) throws Exception; +} diff --git a/src/main/java/geoinfo/admins/user/service/AllowDownloadService.java b/src/main/java/geoinfo/admins/user/service/AllowDownloadService.java new file mode 100644 index 0000000..86b6bed --- /dev/null +++ b/src/main/java/geoinfo/admins/user/service/AllowDownloadService.java @@ -0,0 +1,19 @@ +package geoinfo.admins.user.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + +public interface AllowDownloadService { + + public List selectInfoList() throws Exception; + public String getCityName( HashMap params) throws Exception; + public void insertUser( HashMap params) throws Exception; + public void delUser( HashMap params ) throws Exception; + public List getLocCode() throws Exception; + public List getLocCodeSgg(HashMap params) throws Exception; + public List getUserId() throws Exception; + public EgovMap getUserInfo( HashMap params ) throws Exception; + public int existUser(HashMap params) throws Exception; +} diff --git a/src/main/java/geoinfo/admins/user/service/ClientMngMapper.java b/src/main/java/geoinfo/admins/user/service/ClientMngMapper.java new file mode 100644 index 0000000..1b2fa0d --- /dev/null +++ b/src/main/java/geoinfo/admins/user/service/ClientMngMapper.java @@ -0,0 +1,14 @@ +package geoinfo.admins.user.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("clientMngMapper") +public interface ClientMngMapper { + + public List selectInfoList(HashMap params) throws Exception; + + public List selectInfoListExcel(HashMap params) throws Exception; +} diff --git a/src/main/java/geoinfo/admins/user/service/ClientMngService.java b/src/main/java/geoinfo/admins/user/service/ClientMngService.java new file mode 100644 index 0000000..fb45ca9 --- /dev/null +++ b/src/main/java/geoinfo/admins/user/service/ClientMngService.java @@ -0,0 +1,11 @@ +package geoinfo.admins.user.service; + +import java.util.HashMap; +import java.util.List; + +public interface ClientMngService { + + public List selectInfoList(HashMap params) throws Exception; + + public List selectInfoListExcel(HashMap params) throws Exception; +} diff --git a/src/main/java/geoinfo/admins/user/service/GeneralUserMngMapper.java b/src/main/java/geoinfo/admins/user/service/GeneralUserMngMapper.java new file mode 100644 index 0000000..d1535fd --- /dev/null +++ b/src/main/java/geoinfo/admins/user/service/GeneralUserMngMapper.java @@ -0,0 +1,51 @@ +package geoinfo.admins.user.service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Mapper("generalUserMngMapper") +public interface GeneralUserMngMapper { + + public List selectInfoList(HashMap params) throws Exception; + + public List selectInfoListExcel(HashMap params) throws Exception; + + public EgovMap selectInfo(HashMap params) throws Exception; + + public void selectAccessInfo(HashMap params) throws Exception; + + public void selectDeleteInfo(HashMap params) throws Exception; + + public void deleteInfo(HashMap params) throws Exception; + + public void pwUpdateInfo(HashMap params) throws Exception; + + public void updateInfo(HashMap params) throws Exception; + + public void updateWebMemberIn(HashMap params) throws Exception; + + public List selectInfoSidoList(HashMap params) throws Exception; + + public List selectInfoSidoListExcel(HashMap params) throws Exception; + + public void updateSidoInfo(HashMap params) throws Exception; + + public void selectInsertInfo(HashMap params) throws Exception; + + public EgovMap selectSidoInfo(HashMap params) throws Exception; + + public void selectAccessSidoInfo(HashMap params) throws Exception; + + public void updateUserInfo(HashMap params) throws Exception; + + public EgovMap selectInfoIni(HashMap params) throws Exception; + + public void updateUserInipassInfo(HashMap params) throws Exception; + + public void updateUserPassInfo(HashMap params) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/user/service/GeneralUserMngService.java b/src/main/java/geoinfo/admins/user/service/GeneralUserMngService.java new file mode 100644 index 0000000..d49e708 --- /dev/null +++ b/src/main/java/geoinfo/admins/user/service/GeneralUserMngService.java @@ -0,0 +1,50 @@ +package geoinfo.admins.user.service; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + +public interface GeneralUserMngService { + + public List selectInfoList(HashMap params) throws Exception; + + public List selectInfoListExcel(HashMap params) throws Exception; + + public EgovMap selectInfo(HashMap params) throws Exception; + + public void selectAccessInfo(HashMap params) throws Exception; + + public void selectDeleteInfo(HashMap params) throws Exception; + + public void pwUpdateInfo(HashMap params) throws Exception; + + public void deleteInfo(HashMap params) throws Exception; + + public void updateInfo(HashMap params) throws Exception; + + public void updateWebMemberIn(HashMap params) throws Exception; + + public List selectInfoSidoList(HashMap params) throws Exception; + + public List selectInfoSidoListExcel(HashMap params) throws Exception; + + public void updateSidoInfo(HashMap params) throws Exception; + + public void selectInsertInfo(HashMap params) throws Exception; + + public EgovMap selectSidoInfo(HashMap params) throws Exception; + + public void selectAccessSidoInfo(HashMap params) throws Exception; + + public void updateUserInfo(HashMap params) throws Exception; + + public EgovMap selectInfoIni(HashMap params) throws Exception; + + public void updateUserInipassInfo(HashMap params) throws Exception; + + public void updateUserPassInfo(HashMap params) throws Exception; + + +} diff --git a/src/main/java/geoinfo/admins/user/service/SupplierMngMapper.java b/src/main/java/geoinfo/admins/user/service/SupplierMngMapper.java new file mode 100644 index 0000000..bd26159 --- /dev/null +++ b/src/main/java/geoinfo/admins/user/service/SupplierMngMapper.java @@ -0,0 +1,17 @@ +package geoinfo.admins.user.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("supplierMngMapper") +public interface SupplierMngMapper { + + public List selectInfoList(HashMap params) throws Exception; + + public List selectInfoListExcel(HashMap params) throws Exception; + + public List selectInfoIniList(HashMap params) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/user/service/SupplierMngService.java b/src/main/java/geoinfo/admins/user/service/SupplierMngService.java new file mode 100644 index 0000000..c5df4e3 --- /dev/null +++ b/src/main/java/geoinfo/admins/user/service/SupplierMngService.java @@ -0,0 +1,14 @@ +package geoinfo.admins.user.service; + +import java.util.HashMap; +import java.util.List; + +public interface SupplierMngService { + + public List selectInfoList(HashMap params) throws Exception; + + public List selectInfoListExcel(HashMap params) throws Exception; + + public List selectInfoIniList(HashMap params) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/user/service/UserRegStatusMapper.java b/src/main/java/geoinfo/admins/user/service/UserRegStatusMapper.java new file mode 100644 index 0000000..f97499c --- /dev/null +++ b/src/main/java/geoinfo/admins/user/service/UserRegStatusMapper.java @@ -0,0 +1,11 @@ +package geoinfo.admins.user.service; + +import java.util.List; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("userRegStatusMapper") +public interface UserRegStatusMapper { + + public List selectInfoList() throws Exception; +} diff --git a/src/main/java/geoinfo/admins/user/service/UserRegStatusService.java b/src/main/java/geoinfo/admins/user/service/UserRegStatusService.java new file mode 100644 index 0000000..a38a865 --- /dev/null +++ b/src/main/java/geoinfo/admins/user/service/UserRegStatusService.java @@ -0,0 +1,8 @@ +package geoinfo.admins.user.service; + +import java.util.List; + +public interface UserRegStatusService { + + public List selectInfoList() throws Exception; +} diff --git a/src/main/java/geoinfo/admins/user/service/impl/AllowDownloadServiceImpl.java b/src/main/java/geoinfo/admins/user/service/impl/AllowDownloadServiceImpl.java new file mode 100644 index 0000000..be8b00f --- /dev/null +++ b/src/main/java/geoinfo/admins/user/service/impl/AllowDownloadServiceImpl.java @@ -0,0 +1,59 @@ +package geoinfo.admins.user.service.impl; + +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.user.service.AllowDownloadMapper; +import geoinfo.admins.user.service.AllowDownloadService; + +@Service("allowDownloadService") +public class AllowDownloadServiceImpl implements AllowDownloadService { + + @Resource(name = "allowDownloadMapper") + private AllowDownloadMapper masterMapper; + + @Override + public List selectInfoList() throws Exception { + return masterMapper.selectInfoList(); + } + + public String getCityName( HashMap params) throws Exception { + return masterMapper.getCityName(params); + } + + @Override + public void insertUser(HashMap params) throws Exception { + masterMapper.insertUser(params); + } + + public void delUser( HashMap params) throws Exception { + masterMapper.delUser(params); + } + + public List getLocCode() throws Exception { + return masterMapper.getLocCode(); + } + + public List getLocCodeSgg(HashMap params) throws Exception { + return masterMapper.getLocCodeSgg(params); + } + + public List getUserId() throws Exception { + return masterMapper.getUserId(); + } + + public EgovMap getUserInfo( HashMap params) throws Exception { + return masterMapper.getUserInfo(params); + } + + public int existUser( HashMap params) throws Exception { + return masterMapper.existUser(params); + } + + +} diff --git a/src/main/java/geoinfo/admins/user/service/impl/ClientMngServiceImpl.java b/src/main/java/geoinfo/admins/user/service/impl/ClientMngServiceImpl.java new file mode 100644 index 0000000..3fc2268 --- /dev/null +++ b/src/main/java/geoinfo/admins/user/service/impl/ClientMngServiceImpl.java @@ -0,0 +1,28 @@ +package geoinfo.admins.user.service.impl; + +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import geoinfo.admins.user.service.ClientMngMapper; +import geoinfo.admins.user.service.ClientMngService; + +@Service("clientMngService") +public class ClientMngServiceImpl implements ClientMngService { + + @Resource(name = "clientMngMapper") + private ClientMngMapper masterMapper; + + @Override + public List selectInfoList(HashMap params) throws Exception { + return masterMapper.selectInfoList(params); + } + + @Override + public List selectInfoListExcel(HashMap params) throws Exception { + return masterMapper.selectInfoListExcel(params); + } +} diff --git a/src/main/java/geoinfo/admins/user/service/impl/GeneralUserMngServiceImpl.java b/src/main/java/geoinfo/admins/user/service/impl/GeneralUserMngServiceImpl.java new file mode 100644 index 0000000..d8ec5e7 --- /dev/null +++ b/src/main/java/geoinfo/admins/user/service/impl/GeneralUserMngServiceImpl.java @@ -0,0 +1,116 @@ +package geoinfo.admins.user.service.impl; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.user.service.GeneralUserMngMapper; +import geoinfo.admins.user.service.GeneralUserMngService; + +@Service("generalUserMngService") +public class GeneralUserMngServiceImpl implements GeneralUserMngService { + + @Resource(name = "generalUserMngMapper") + private GeneralUserMngMapper masterMapper; + + @Override + public List selectInfoList(HashMap params) throws Exception { + return masterMapper.selectInfoList(params); + } + + @Override + public List selectInfoListExcel(HashMap params) throws Exception { + return masterMapper.selectInfoListExcel(params); + } + + @Override + public EgovMap selectInfo(HashMap params) throws Exception { + return masterMapper.selectInfo(params); + } + + @Override + public void selectAccessInfo(HashMap params) throws Exception { + masterMapper.selectAccessInfo(params); + } + + @Override + public void selectDeleteInfo(HashMap params) throws Exception { + masterMapper.selectDeleteInfo(params); + } + + @Override + public void deleteInfo(HashMap params) throws Exception { + masterMapper.deleteInfo(params); + } + + @Override + public void pwUpdateInfo(HashMap params) throws Exception { + masterMapper.pwUpdateInfo(params); + } + + @Override + public void updateInfo(HashMap params) throws Exception { + masterMapper.updateInfo(params); + } + + @Override + public void updateWebMemberIn(HashMap params) throws Exception { + System.out.println("updateWebMemberIn"); + masterMapper.updateWebMemberIn(params); + } + + @Override + public List selectInfoSidoList(HashMap params) throws Exception { + return masterMapper.selectInfoSidoList(params); + } + + @Override + public List selectInfoSidoListExcel(HashMap params) throws Exception { + return masterMapper.selectInfoSidoListExcel(params); + } + + @Override + public void updateSidoInfo(HashMap params) throws Exception { + masterMapper.updateSidoInfo(params); + } + + @Override + public void selectInsertInfo(HashMap params) throws Exception { + masterMapper.selectInsertInfo(params); + } + + @Override + public EgovMap selectSidoInfo(HashMap params) throws Exception { + return masterMapper.selectSidoInfo(params); + } + + @Override + public void selectAccessSidoInfo(HashMap params) throws Exception { + masterMapper.selectAccessSidoInfo(params); + } + + @Override + public void updateUserInfo(HashMap params) throws Exception { + masterMapper.updateUserInfo(params); + } + + @Override + public EgovMap selectInfoIni(HashMap params) throws Exception { + return masterMapper.selectInfoIni(params); + } + + @Override + public void updateUserInipassInfo(HashMap params) throws Exception { + masterMapper.updateUserInipassInfo(params); + } + @Override + public void updateUserPassInfo(HashMap params) throws Exception { + masterMapper.updateUserPassInfo(params); + } + +} diff --git a/src/main/java/geoinfo/admins/user/service/impl/SupplierMngServiceImpl.java b/src/main/java/geoinfo/admins/user/service/impl/SupplierMngServiceImpl.java new file mode 100644 index 0000000..7221ead --- /dev/null +++ b/src/main/java/geoinfo/admins/user/service/impl/SupplierMngServiceImpl.java @@ -0,0 +1,35 @@ +package geoinfo.admins.user.service.impl; + +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import geoinfo.admins.user.service.SupplierMngMapper; +import geoinfo.admins.user.service.SupplierMngService; + +@Service("supplierMngService") +public class SupplierMngServiceImpl implements SupplierMngService { + + @Resource(name = "supplierMngMapper") + private SupplierMngMapper masterMapper; + + @Override + public List selectInfoList(HashMap params) throws Exception { + return masterMapper.selectInfoList(params); + } + + @Override + public List selectInfoListExcel(HashMap params) throws Exception { + return masterMapper.selectInfoListExcel(params); + } + + @Override + public List selectInfoIniList(HashMap params) throws Exception { + return masterMapper.selectInfoIniList(params); + } + + +} diff --git a/src/main/java/geoinfo/admins/user/service/impl/UserRegStatusServiceImpl.java b/src/main/java/geoinfo/admins/user/service/impl/UserRegStatusServiceImpl.java new file mode 100644 index 0000000..2ccab82 --- /dev/null +++ b/src/main/java/geoinfo/admins/user/service/impl/UserRegStatusServiceImpl.java @@ -0,0 +1,23 @@ +package geoinfo.admins.user.service.impl; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import geoinfo.admins.user.service.UserRegStatusMapper; +import geoinfo.admins.user.service.UserRegStatusService; + +@Service("userRegStatusService") +public class UserRegStatusServiceImpl implements UserRegStatusService { + + @Resource(name = "userRegStatusMapper") + private UserRegStatusMapper masterMapper; + + @Override + public List selectInfoList() throws Exception { + return masterMapper.selectInfoList(); + } + +} diff --git a/src/main/java/geoinfo/admins/userLog/GeoInfoChController.java b/src/main/java/geoinfo/admins/userLog/GeoInfoChController.java new file mode 100644 index 0000000..1792066 --- /dev/null +++ b/src/main/java/geoinfo/admins/userLog/GeoInfoChController.java @@ -0,0 +1,230 @@ +package geoinfo.admins.userLog; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.userLog.service.GeoInfoChService; +import geoinfo.com.EgovExcel; +import geoinfo.session.UserInfo; + +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Sheet; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보유통을 처리하는 Controller 클래스 + * + * @author 공간정보기술(주) + * @since 2017.06.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *      수정일                 수정자                     수정내용
+ *  ------------    ----------------    ---------------------------
+ *   2017.06.07     공간정보기술(주)            최초 생성
+ *
+ * 
+ */ +@Controller +public class GeoInfoChController { + @Resource(name = "geoInfoChService") + private GeoInfoChService masterService; + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보유통 > 그룹별 리스트 + * + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/10.do") + public String selectInfoListGrp(ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + +// List resultList = masterService.selectInfoListGrp(); +// +// model.addAttribute("resultList", resultList); + + return "admins/userLog/10"; + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보유통 > 그룹별 엑셀 리스트 다운로드 + * @param workbook + * @param request + * @param response + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/10_excel.do") + public void selectInfoListGrpExcel(HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListGrp(); + + String[] arrHeader = { "년도", "월", "공급자", "지반조사업체", "설계업체", "시공업체", "유지보수업체", "중앙정부,지방청,공사", "지자체", "연구기관", "개인", "학교", "기타", "총계" }; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "그룹별 사용자 접속통계"); + map.put("fileName", "그룹별사용자접속통계_"); + + buildExcelDocument(map, workbook, request, response); + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보유통 > 날짜별 리스트 + * + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/11.do") + public String selectInfoListDate(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List getYear_date = masterService.getYear_date(); + + if ("".equals(params.get("year")) || params.get("year") == null) { + params.put("year", ((EgovMap) getYear_date.get(0)).get("value")); + } + + List getMonth_date = masterService.getMonth_date(params); + + if ("".equals(params.get("month")) || params.get("month") == null || (getMonth_date.size() != 0 && getMonth_date.size() < Integer.valueOf((String) params.get("month")))) { + params.put("month", ((EgovMap) getMonth_date.get(0)).get("value")); + } + + List resultList = masterService.selectInfoListDate(params); + + model.addAttribute("params", params); + model.addAttribute("getYear_date", getYear_date); + model.addAttribute("getMonth_date", getMonth_date); + model.addAttribute("resultList", resultList); + + return "admins/userLog/11"; + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보유통 > 날짜별 리스트 > 그래프 + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/11_graph.do") + public String selectInfoGraph(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List getYear_date = masterService.getYear_date(); + + if ("".equals(params.get("year")) || params.get("year") == null) { + params.put("year", ((EgovMap) getYear_date.get(0)).get("value")); + } + + List getMonth_date = masterService.getMonth_date_graph(params); + + if ("".equals(params.get("month")) || params.get("month") == null || (getMonth_date.size() != 0 && getMonth_date.size() < Integer.valueOf((String) params.get("month")))) { + params.put("month", ((EgovMap) getMonth_date.get(0)).get("value")); + } + + EgovMap result = masterService.selectInfoGraph(params); + model.addAttribute("params", params); + model.addAttribute("getYear_date", getYear_date); + model.addAttribute("getMonth_date", getMonth_date); + model.addAttribute("result", result); + + return "admins/userLog/11_graph"; + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보유통 > 날짜별 리스트 엑셀 다운로드 + * + * @param workbook + * @param request + * @param response + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/11_excel.do") + public void selectInfoListDateExcel(HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListDateExcel(); + + String[] arrHeader = { "날짜", "총접속수" }; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "날짜별 사용자 접속통계"); + map.put("fileName", "날짜별사용자접속통계_"); + + buildExcelDocument(map, workbook, request, response); + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보유통 > 방문자수 + * + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/30.do") + public String selectInfoListVisitor(ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + return "admins/userLog/30"; + } + + public void buildExcelDocument(Map model, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + List selectInfoListExcel = (List) model.get("selectInfoListExcel"); + + String[] arrHeader = (String[]) model.get("arrHeader"); + + Sheet sheet = workbook.createSheet((String) model.get("sheetName")); + + EgovExcel.SetExcelList(workbook, sheet, arrHeader, selectInfoListExcel, 0, 0); + + response.setContentType("application/vnd.ms-excel"); + response.setHeader("Content-disposition", + "attachment;filename=" + URLEncoder.encode((String) model.get("fileName") + (new SimpleDateFormat("yyyy.MM.dd", Locale.KOREA)).format(new Date()), "UTF-8") + + ".xls" + ";"); + ServletOutputStream myOut = response.getOutputStream(); + workbook.write(myOut); // 파일 저장 + } +} diff --git a/src/main/java/geoinfo/admins/userLog/GeoInfoNewPortalController.java b/src/main/java/geoinfo/admins/userLog/GeoInfoNewPortalController.java new file mode 100644 index 0000000..67dee20 --- /dev/null +++ b/src/main/java/geoinfo/admins/userLog/GeoInfoNewPortalController.java @@ -0,0 +1,400 @@ +package geoinfo.admins.userLog; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.userLog.service.GeoInfoNewPortalService; +import geoinfo.com.EgovExcel; +import geoinfo.session.UserInfo; + +import java.net.URLEncoder; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Sheet; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털(NEW)을 처리하는 Controller 클래스 + * + * @author 공간정보기술(주) + * @since 2017.06.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *        수정일              수정자                       수정내용
+ *  ------------    ----------------    ---------------------------
+ *   2017.06.07     공간정보기술(주)            최초 생성
+ *   2022.08.08		ICTWAY SJY				사용자접속 통계분석
+ *
+ *      
+ */ +@Controller +public class GeoInfoNewPortalController { + @Resource(name = "geoInfoNewPortalService") + private GeoInfoNewPortalService masterService; + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털(NEW) > 그룹별 리스트 + * + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/00.do") + public String selectInfoListGrp(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List resultList = masterService.selectInfoListGrp(); + + model.addAttribute("resultList", resultList); + + return "admins/userLog/00"; + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털(NEW) > 그룹별 엑셀 다운로드 + * + * @param params + * @param workbook + * @param request + * @param response + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/00_excel.do") + public void selectInfoListGrpExcel(HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListGrp(); + + String[] arrHeader = { "년도", "월", "공급자", "지반조사업체", "설계업체", "시공업체", "유지보수업체", "중앙정부,지방청,공사", "지자체", "연구기관", "개인", "학교", "기타", "총계" }; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "그룹별 사용자 접속통계"); + map.put("fileName", "그룹별사용자접속통계_"); + + buildExcelDocument(map, workbook, request, response); + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털(NEW) > 날짜별 리스트 + * + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/01.do") + public String selectInfoListDate(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List getYear_date = masterService.getYear_date(); + + if ("".equals(params.get("year")) || params.get("year") == null) { + params.put("year", ((EgovMap) getYear_date.get(0)).get("value")); + } + + List getMonth_date = masterService.getMonth_date(params); + + if ("".equals(params.get("month")) || params.get("month") == null || (getMonth_date.size() != 0 && getMonth_date.size() < Integer.valueOf((String) params.get("month")))) { + params.put("month", ((EgovMap) getMonth_date.get(getMonth_date.size() - 1)).get("value")); + } + + List resultList = masterService.selectInfoListDate(params); + int totalCnt = masterService.selectInfoListDateCnt(params); + + model.addAttribute("params", params); + model.addAttribute("getYear_date", getYear_date); + model.addAttribute("getMonth_date", getMonth_date); + model.addAttribute("resultList", resultList); + model.addAttribute("totalCnt", totalCnt); + + return "admins/userLog/01"; + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털(NEW) > 날짜별 리스트 > 그래프 + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/01_graph.do") + public String selectInfoGraph(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List getYear_date = masterService.getYear(); + + if ("".equals(params.get("year")) || params.get("year") == null) { + params.put("year", ((EgovMap) getYear_date.get(0)).get("value")); + } + + List getMonth_date = masterService.getMonth(params); + + boolean flag = false; + + for(int i = 0 ; i < getMonth_date.size() ; i++){ + EgovMap map = (EgovMap) getMonth_date.get(i); + + if(map.get("value").equals(params.get("month"))){ + flag = true; + continue; + } + } + + if ("".equals(params.get("month")) || params.get("month") == null || (getMonth_date.size() != 0 && !flag)) { +// params.put("month", ((EgovMap) getMonth_date.get(getMonth_date.size() - 1)).get("value")); + params.put("month", ((EgovMap) getMonth_date.get(0)).get("value")); + } + + EgovMap result = masterService.selectInfoGraph(params); + model.addAttribute("params", params); + model.addAttribute("getYear_date", getYear_date); + model.addAttribute("getMonth_date", getMonth_date); + model.addAttribute("result", result); + + return "admins/userLog/01_graph"; + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털(NEW) > 날짜별 엑셀 다운로드 + * @param workbook + * @param request + * @param response + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/01_excel.do") + public void selectInfoListDateExcel(HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListDateExcel(); + + String[] arrHeader = { "날짜", "총접속수"}; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "날짜별 사용자 접속통계"); + map.put("fileName", "날짜별사용자접속통계_"); + + buildExcelDocument(map, workbook, request, response); + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털(NEW) > 방문자수 리스트 + * + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/08.do") + public String selectInfoListVisitor(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List getYear_Visitor = masterService.getYear_Visitor(); + + if ("".equals(params.get("year")) || params.get("year") == null) { + params.put("year", ((EgovMap) getYear_Visitor.get(0)).get("value")); + } + + List getMonth_Visitor = masterService.getMonth_Visitor(params); + + if ("".equals(params.get("month")) || params.get("month") == null || (getMonth_Visitor.size() != 0 && getMonth_Visitor.size() < Integer.valueOf((String) params.get("month")))) { + params.put("month", ((EgovMap) getMonth_Visitor.get(getMonth_Visitor.size() - 1)).get("value")); + } + + if (params.get("year").equals("2020")) { + params.put("month", "12"); + } + + List resultList = masterService.selectInfoListVisitor(params); + int totalCnt = masterService.selectInfoListVisitorCnt(params); + + model.addAttribute("params", params); + model.addAttribute("getYear_Visitor", getYear_Visitor); + model.addAttribute("getMonth_Visitor", getMonth_Visitor); + model.addAttribute("resultList", resultList); + model.addAttribute("totalCnt", totalCnt); + + return "admins/userLog/08"; + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털(NEW) > 방문자수 엑셀 다운로드 + * @param workbook + * @param request + * @param response + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/08_excel.do") + public void selectInfoListVisitorExcel(HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListVisitorExcel(); + + String[] arrHeader = { "날짜", "방문자수"}; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "날짜별 방문자수 통계"); + map.put("fileName", "날짜별방문자수통계_"); + + buildExcelDocument(map, workbook, request, response); + } + +// /** +// * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털(NEW) > 목적별 리스트 +// * +// * @param params +// * @param model +// * @param response +// * @param request +// * @return +// * @throws Exception +// */ +// @RequestMapping(value = "admins/userLog/03.do") +// public String selectInfoListPurpose(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { +// if (!UserInfo.isValidSession(request, response, "admin")) { +// return ""; +// } +// +// return "admins/userLog/03"; +// } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털(NEW) > 월별가입자 리스트 + * + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/04.do") + public String selectInfoListMonth(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List getYear_Month = masterService.getYear_Month(); + + if ("".equals(params.get("year")) || params.get("year") == null) { + params.put("year", ((EgovMap) getYear_Month.get(0)).get("value")); + } + + List resultList = masterService.selectInfoListMonth(params); + + model.addAttribute("params", params); + model.addAttribute("getYear_Month", getYear_Month); + model.addAttribute("resultList", resultList); + + return "admins/userLog/04"; + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털(NEW) > 월별가입자 리스트 > 그래프 + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/04_graph.do") + public String selectInfoGraphMonth(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List getYear_Month = masterService.getYear_Month(); + + if ("".equals(params.get("year")) || params.get("year") == null) { + params.put("year", ((EgovMap) getYear_Month.get(0)).get("value")); + } + + EgovMap result = masterService.selectInfoGraphMonth(params); + + model.addAttribute("params", params); + model.addAttribute("getYear_Month", getYear_Month); + model.addAttribute("result", result); + + return "admins/userLog/04_graph"; + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털(NEW) > 방문자수 엑셀 다운로드 + * @param workbook + * @param request + * @param response + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/04_excel.do") + public void selectInfoListMonthExcel(HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListMonthExcel(); + + String[] arrHeader = { "날짜", "가입자수"}; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "월별 가입자"); + map.put("fileName", "월별가입자_"); + + buildExcelDocument(map, workbook, request, response); + } + + public void buildExcelDocument(Map model, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + List selectInfoListExcel = (List) model.get("selectInfoListExcel"); + + String[] arrHeader = (String[]) model.get("arrHeader"); + + Sheet sheet = workbook.createSheet((String) model.get("sheetName")); + + EgovExcel.SetExcelList(workbook, sheet, arrHeader, selectInfoListExcel, 0, 0); + + response.setContentType("application/vnd.ms-excel"); + response.setHeader("Content-disposition", "attachment;filename=" + + URLEncoder.encode((String) model.get("fileName") + (new SimpleDateFormat("yyyy.MM.dd", Locale.KOREA)).format(new Date()), "UTF-8") + ".xls" + ";"); + ServletOutputStream myOut = response.getOutputStream(); + workbook.write(myOut); // 파일 저장 + } +} diff --git a/src/main/java/geoinfo/admins/userLog/GeoInfoPortalController.java b/src/main/java/geoinfo/admins/userLog/GeoInfoPortalController.java new file mode 100644 index 0000000..b107f78 --- /dev/null +++ b/src/main/java/geoinfo/admins/userLog/GeoInfoPortalController.java @@ -0,0 +1,552 @@ +package geoinfo.admins.userLog; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; +import geoinfo.admins.userLog.service.GeoInfoPortalService; +import geoinfo.com.EgovExcel; +import geoinfo.session.UserInfo; + +import java.net.URLEncoder; +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Sheet; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털을 처리하는 Controller 클래스 + * + * @author 공간정보기술(주) + * @since 2017.06.07 + * @version 1.0 + * @see + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *      수정일                 수정자                     수정내용
+ *  ------------    ----------------    ---------------------------
+ *   2017.06.07     공간정보기술(주)            최초 생성
+ *
+ *      
+ */ +@Controller +public class GeoInfoPortalController { + @Resource(name = "geoInfoPortalService") + private GeoInfoPortalService masterService; + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털 > 그룹별 리스트 + * + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/20.do") + public String selectInfoListGrp(ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + // List resultList = masterService.selectInfoListGrp(); + // + // model.addAttribute("resultList", resultList); + + return "admins/userLog/20"; + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털 > 그룹별 엑셀 리스트 다운로드 + * + * @param workbook + * @param request + * @param response + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/20_excel.do") + public void selectInfoListGrpExcel(HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListGrp(); + + String[] arrHeader = { "년도", "월", "공급자", "지반조사업체", "설계업체", "시공업체", "유지보수업체", "중앙정부,지방청,공사", "지자체", "연구기관", "개인", "학교", "기타", "총계" }; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "그룹별 사용자 접속통계"); + map.put("fileName", "그룹별사용자접속통계_"); + + buildExcelDocument(map, workbook, request, response); + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털 > 날짜별 리스트 + * + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/21.do") + public String selectInfoListDate(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List getYear_date = masterService.getYear_date(); + + if ("".equals(params.get("year")) || params.get("year") == null) { + params.put("year", ((EgovMap) getYear_date.get(0)).get("value")); + } + + List getMonth_date = masterService.getMonth_date(params); + + boolean flag = false; + + for(int i = 0 ; i < getMonth_date.size() ; i++){ + EgovMap map = (EgovMap) getMonth_date.get(i); + + if(map.get("value").equals(params.get("month"))){ + flag = true; + continue; + } + } + + if ("".equals(params.get("month")) || params.get("month") == null || (getMonth_date.size() != 0 && !flag)) { + params.put("month", ((EgovMap) getMonth_date.get(getMonth_date.size() - 1)).get("value")); + } + + List resultList = masterService.selectInfoListDate(params); + int totalCnt = masterService.selectInfoListDateCnt(params); + + model.addAttribute("params", params); + model.addAttribute("getYear_date", getYear_date); + model.addAttribute("getMonth_date", getMonth_date); + model.addAttribute("resultList", resultList); + model.addAttribute("totalCnt", totalCnt); + + return "admins/userLog/21"; + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털 > 날짜별 엑셀 리스트 다운로드 + * + * @param workbook + * @param request + * @param response + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/21_excel.do") + public void selectInfoListDateExcel(HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListDateExcel(); + + String[] arrHeader = { "날짜", "총접속수" }; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "날짜별 사용자 접속통계"); + map.put("fileName", "날짜별사용자접속통계_"); + + buildExcelDocument(map, workbook, request, response); + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털 > 방문자수 리스트 + * + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/28.do") + public String selectInfoListVisitor(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List getYear_Visitor = masterService.getYear_Visitor(); + + if ("".equals(params.get("year")) || params.get("year") == null) { + params.put("year", ((EgovMap) getYear_Visitor.get(0)).get("value")); + } + + List getMonth_Visitor = masterService.getMonth_Visitor(params); + + if ("".equals(params.get("month")) || params.get("month") == null + || (getMonth_Visitor.size() != 0 && getMonth_Visitor.size() < Integer.valueOf((String) params.get("month")))) { + params.put("month", ((EgovMap) getMonth_Visitor.get(getMonth_Visitor.size() - 1)).get("value")); + } + + List resultList = masterService.selectInfoListVisitor(params); + int totalCnt = masterService.selectInfoListVisitorCnt(params); + + model.addAttribute("params", params); + model.addAttribute("getYear_Visitor", getYear_Visitor); + model.addAttribute("getMonth_Visitor", getMonth_Visitor); + model.addAttribute("resultList", resultList); + model.addAttribute("totalCnt", totalCnt); + + return "admins/userLog/28"; + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털 > 방문자수 엑셀 리스트 다운로드 + * + * @param workbook + * @param request + * @param response + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/28_excel.do") + public void selectInfoListVisitorExcel(HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListVisitorExcel(); + + String[] arrHeader = { "날짜", "방문자수" }; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "날짜별 방문자수 통계"); + map.put("fileName", "날짜별방문자수통계_"); + + buildExcelDocument(map, workbook, request, response); + } + + @RequestMapping(value = "admins/userLog/23.do") + public String selectInfoListPurpose(ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List selectInfoListSiteVisit = masterService.selectInfoListSiteVisit(); + List selectInfoListGeoInfo = masterService.selectInfoListGeoInfo(); + List selectInfoListPrjClient = masterService.selectInfoListPrjClient(); + + model.addAttribute("selectInfoListSiteVisit", selectInfoListSiteVisit); + model.addAttribute("selectInfoListGeoInfo", selectInfoListGeoInfo); + model.addAttribute("selectInfoListPrjClient", selectInfoListPrjClient); + + return "admins/userLog/23"; + } + + @RequestMapping(value = "admins/userLog/etcFrame.do") + public String etcFrame(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(6); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectInfoListSiteVisitEtc(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/userLog/etcFrame"; + } + + @RequestMapping(value = "admins/userLog/etcFrame1.do") + public String etcFrame1(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(6); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectInfoListGeoInfoEtc(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/userLog/etcFrame1"; + } + + @RequestMapping(value = "admins/userLog/etcFrame2.do") + public String etcFrame2(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(6); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectInfoListPrjClientEtc(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/userLog/etcFrame2"; + } + + @RequestMapping(value = "admins/userLog/deleteLog", method = RequestMethod.POST, produces = { MediaType.APPLICATION_JSON_VALUE }) + public ModelMap deleteLog(ModelMap model, HttpServletResponse response, HttpServletRequest request, @RequestParam HashMap params) throws Exception { + + HashMap jsonMap = new HashMap(); + + try { + masterService.deleteLog(params); + jsonMap.put("flag", true); + } catch (SQLException Ex) { + jsonMap.put("flag", false); + } + + model.addAttribute("jsonView", jsonMap); // JSON으로 리턴하기 위해서는 모델키를 'jsonView'로 지정해야함 + return model; + } + + @RequestMapping(value = "admins/userLog/purpose_view.do") + public String purpose_view(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(6); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectInfoListPurpose(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/userLog/purpose_view"; + } + + @RequestMapping(value = "admins/userLog/subject_view.do") + public String subject_view(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(6); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectInfoListSubject(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/userLog/subject_view"; + } + + @RequestMapping(value = "admins/userLog/order_view.do") + public String order_view(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + /** pageing */ + PaginationInfo paginationInfo = new PaginationInfo(); + + if (params.get("pageIndex") == null || "".equals(params.get("pageIndex"))) { + paginationInfo.setCurrentPageNo(1); + params.put("pageIndex", 1); + } else { + paginationInfo.setCurrentPageNo(Integer.valueOf((String) params.get("pageIndex"))); + } + + paginationInfo.setRecordCountPerPage(6); + paginationInfo.setPageSize(10); + + params.put("firstRecordIndex", paginationInfo.getFirstRecordIndex()); + params.put("recordCountPerPage", paginationInfo.getRecordCountPerPage()); + + List resultList = masterService.selectInfoListOrder(params); + + int totalCnt = resultList.size() == 0 ? 0 : Integer.valueOf(((EgovMap) resultList.get(0)).get("totalrows").toString()); + paginationInfo.setTotalRecordCount(totalCnt); + + model.addAttribute("params", params); + model.addAttribute("resultList", resultList); + model.addAttribute("paginationInfo", paginationInfo); + + return "admins/userLog/order_view"; + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털 > 월별 리스트 + * + * @param params + * @param model + * @param response + * @param request + * @return + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/24.do") + public String selectInfoListMonth(@RequestParam HashMap params, ModelMap model, HttpServletResponse response, HttpServletRequest request) throws Exception { + if (!UserInfo.isValidSession(request, response, "admin")) { + return ""; + } + + List getYear_Month = masterService.getYear_Month(); + + if ("".equals(params.get("year")) || params.get("year") == null) { + params.put("year", ((EgovMap) getYear_Month.get(0)).get("value")); + } + + List resultList = masterService.selectInfoListMonth(params); + + model.addAttribute("params", params); + model.addAttribute("getYear_Month", getYear_Month); + model.addAttribute("resultList", resultList); + + return "admins/userLog/24"; + } + + /** + * 관리자시스템 > 사용자접속 통계분석 > 지반정보포털 > 월별 엑셀 리스트 다운로드 + * + * @param workbook + * @param request + * @param response + * @throws Exception + */ + @RequestMapping(value = "admins/userLog/24_excel.do") + public void selectInfoListMonthExcel(HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + HashMap map = new HashMap(); + + List selectInfoListExcel = masterService.selectInfoListMonthExcel(); + + String[] arrHeader = { "날짜", "가입자수" }; + + map.put("selectInfoListExcel", selectInfoListExcel); + map.put("arrHeader", arrHeader); + map.put("sheetName", "월별 가입자"); + map.put("fileName", "월별가입자_"); + + buildExcelDocument(map, workbook, request, response); + } + + public void buildExcelDocument(Map model, HSSFWorkbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception { + + List selectInfoListExcel = (List) model.get("selectInfoListExcel"); + + String[] arrHeader = (String[]) model.get("arrHeader"); + + Sheet sheet = workbook.createSheet((String) model.get("sheetName")); + + EgovExcel.SetExcelList(workbook, sheet, arrHeader, selectInfoListExcel, 0, 0); + + response.setContentType("application/vnd.ms-excel"); + response.setHeader("Content-disposition", "attachment;filename=" + + URLEncoder.encode((String) model.get("fileName") + (new SimpleDateFormat("yyyy.MM.dd", Locale.KOREA)).format(new Date()), "UTF-8") + ".xls" + ";"); + ServletOutputStream myOut = response.getOutputStream(); + workbook.write(myOut); // 파일 저장 + } +} diff --git a/src/main/java/geoinfo/admins/userLog/service/GeoInfoChMapper.java b/src/main/java/geoinfo/admins/userLog/service/GeoInfoChMapper.java new file mode 100644 index 0000000..5a9cba7 --- /dev/null +++ b/src/main/java/geoinfo/admins/userLog/service/GeoInfoChMapper.java @@ -0,0 +1,20 @@ +package geoinfo.admins.userLog.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("geoInfoChMapper") +public interface GeoInfoChMapper { + + public List selectInfoListGrp() throws Exception; + + public List selectInfoListDate(HashMap params) throws Exception; + public List getYear_date() throws Exception; + public List getMonth_date(HashMap params) throws Exception; + public List getMonth_date_graph(HashMap params) throws Exception; + public List selectInfoListDateExcel() throws Exception; + + public List selectInfoGraph(HashMap params) throws Exception; +} diff --git a/src/main/java/geoinfo/admins/userLog/service/GeoInfoChService.java b/src/main/java/geoinfo/admins/userLog/service/GeoInfoChService.java new file mode 100644 index 0000000..b1ecec4 --- /dev/null +++ b/src/main/java/geoinfo/admins/userLog/service/GeoInfoChService.java @@ -0,0 +1,19 @@ +package geoinfo.admins.userLog.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + +public interface GeoInfoChService { + + public List selectInfoListGrp() throws Exception; + + public List selectInfoListDate(HashMap params) throws Exception; + public List getYear_date() throws Exception; + public List getMonth_date(HashMap params) throws Exception; + public List getMonth_date_graph(HashMap params) throws Exception; + public List selectInfoListDateExcel() throws Exception; + + public EgovMap selectInfoGraph(HashMap params) throws Exception; +} diff --git a/src/main/java/geoinfo/admins/userLog/service/GeoInfoNewPortalMapper.java b/src/main/java/geoinfo/admins/userLog/service/GeoInfoNewPortalMapper.java new file mode 100644 index 0000000..96f86a7 --- /dev/null +++ b/src/main/java/geoinfo/admins/userLog/service/GeoInfoNewPortalMapper.java @@ -0,0 +1,37 @@ +package geoinfo.admins.userLog.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +@Mapper("geoInfoNewPortalMapper") +public interface GeoInfoNewPortalMapper { + + public List selectInfoListGrp() throws Exception; + + public List selectInfoListDate(HashMap params) throws Exception; + public int selectInfoListDateCnt(HashMap params) throws Exception; + public List getYear_date() throws Exception; + public List getMonth_date(HashMap params) throws Exception; + public List selectInfoListDateExcel() throws Exception; + + public List selectInfoListVisitor(HashMap params) throws Exception; + public int selectInfoListVisitorCnt(HashMap params) throws Exception; + public List getYear_Visitor() throws Exception; + public List getMonth_Visitor(HashMap params) throws Exception; + public List selectInfoListVisitorExcel() throws Exception; + + public List selectInfoListPurpose(HashMap params) throws Exception; + + public List selectInfoListMonth(HashMap params) throws Exception; + public List getYear_Month() throws Exception; + public List getMonth_Month(HashMap params) throws Exception; + public List selectInfoListMonthExcel() throws Exception; + public List selectInfoGraphMonth(HashMap params) throws Exception; + + public List getYear() throws Exception; + public List getMonth(HashMap params) throws Exception; + public List selectInfoGraph(HashMap params) throws Exception; +} diff --git a/src/main/java/geoinfo/admins/userLog/service/GeoInfoNewPortalService.java b/src/main/java/geoinfo/admins/userLog/service/GeoInfoNewPortalService.java new file mode 100644 index 0000000..eef6e1f --- /dev/null +++ b/src/main/java/geoinfo/admins/userLog/service/GeoInfoNewPortalService.java @@ -0,0 +1,36 @@ +package geoinfo.admins.userLog.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + +public interface GeoInfoNewPortalService { + + public List selectInfoListGrp() throws Exception; + + public List selectInfoListDate(HashMap params) throws Exception; + public int selectInfoListDateCnt(HashMap params) throws Exception; + public List getYear_date() throws Exception; + public List getMonth_date(HashMap params) throws Exception; + public List selectInfoListDateExcel() throws Exception; + + public List selectInfoListVisitor(HashMap params) throws Exception; + public int selectInfoListVisitorCnt(HashMap params) throws Exception; + public List getYear_Visitor() throws Exception; + public List getMonth_Visitor(HashMap params) throws Exception; + public List selectInfoListVisitorExcel() throws Exception; + + public List selectInfoListPurpose(HashMap params) throws Exception; + + public List selectInfoListMonth(HashMap params) throws Exception; + public List getYear_Month() throws Exception; + public List getMonth_Month(HashMap params) throws Exception; + public List selectInfoListMonthExcel() throws Exception; + public EgovMap selectInfoGraphMonth(HashMap params) throws Exception; + + public List getYear() throws Exception; + public List getMonth(HashMap params) throws Exception; + public EgovMap selectInfoGraph(HashMap params) throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/userLog/service/GeoInfoPortalMapper.java b/src/main/java/geoinfo/admins/userLog/service/GeoInfoPortalMapper.java new file mode 100644 index 0000000..137e306 --- /dev/null +++ b/src/main/java/geoinfo/admins/userLog/service/GeoInfoPortalMapper.java @@ -0,0 +1,43 @@ +package geoinfo.admins.userLog.service; + +import java.util.HashMap; +import java.util.List; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("geoInfoPortalMapper") +public interface GeoInfoPortalMapper { + + public List selectInfoListGrp() throws Exception; + + public List selectInfoListDate(HashMap params) throws Exception; + public int selectInfoListDateCnt(HashMap params) throws Exception; + public List getYear_date() throws Exception; + public List getMonth_date(HashMap params) throws Exception; + public List selectInfoListDateExcel() throws Exception; + + public List selectInfoListVisitor(HashMap params) throws Exception; + public int selectInfoListVisitorCnt(HashMap params) throws Exception; + public List getYear_Visitor() throws Exception; + public List getMonth_Visitor(HashMap params) throws Exception; + public List selectInfoListVisitorExcel() throws Exception; + + public List selectInfoListSiteVisit() throws Exception; + public List selectInfoListGeoInfo() throws Exception; + public List selectInfoListPrjClient() throws Exception; + + public List selectInfoListSiteVisitEtc(HashMap params) throws Exception; + public List selectInfoListGeoInfoEtc(HashMap params) throws Exception; + public List selectInfoListPrjClientEtc(HashMap params) throws Exception; + + public void deleteLog(HashMap params) throws Exception; + + public List selectInfoListPurpose(HashMap params) throws Exception; + public List selectInfoListSubject(HashMap params) throws Exception; + public List selectInfoListOrder(HashMap params) throws Exception; + + public List selectInfoListMonth(HashMap params) throws Exception; + public List getYear_Month() throws Exception; + public List selectInfoListMonthExcel() throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/userLog/service/GeoInfoPortalService.java b/src/main/java/geoinfo/admins/userLog/service/GeoInfoPortalService.java new file mode 100644 index 0000000..ed5493d --- /dev/null +++ b/src/main/java/geoinfo/admins/userLog/service/GeoInfoPortalService.java @@ -0,0 +1,40 @@ +package geoinfo.admins.userLog.service; + +import java.util.HashMap; +import java.util.List; + +public interface GeoInfoPortalService { + + public List selectInfoListGrp() throws Exception; + + public List selectInfoListDate(HashMap params) throws Exception; + public int selectInfoListDateCnt(HashMap params) throws Exception; + public List getYear_date() throws Exception; + public List getMonth_date(HashMap params) throws Exception; + public List selectInfoListDateExcel() throws Exception; + + public List selectInfoListVisitor(HashMap params) throws Exception; + public int selectInfoListVisitorCnt(HashMap params) throws Exception; + public List getYear_Visitor() throws Exception; + public List getMonth_Visitor(HashMap params) throws Exception; + public List selectInfoListVisitorExcel() throws Exception; + + public List selectInfoListSiteVisit() throws Exception; + public List selectInfoListGeoInfo() throws Exception; + public List selectInfoListPrjClient() throws Exception; + + public List selectInfoListSiteVisitEtc(HashMap params) throws Exception; + public List selectInfoListGeoInfoEtc(HashMap params) throws Exception; + public List selectInfoListPrjClientEtc(HashMap params) throws Exception; + + public void deleteLog(HashMap params) throws Exception; + + public List selectInfoListPurpose(HashMap params) throws Exception; + public List selectInfoListSubject(HashMap params) throws Exception; + public List selectInfoListOrder(HashMap params) throws Exception; + + public List selectInfoListMonth(HashMap params) throws Exception; + public List getYear_Month() throws Exception; + public List selectInfoListMonthExcel() throws Exception; + +} diff --git a/src/main/java/geoinfo/admins/userLog/service/impl/GeoInfoChServiceImpl.java b/src/main/java/geoinfo/admins/userLog/service/impl/GeoInfoChServiceImpl.java new file mode 100644 index 0000000..9cd8d81 --- /dev/null +++ b/src/main/java/geoinfo/admins/userLog/service/impl/GeoInfoChServiceImpl.java @@ -0,0 +1,57 @@ +package geoinfo.admins.userLog.service.impl; + +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.userLog.service.GeoInfoChMapper; +import geoinfo.admins.userLog.service.GeoInfoChService; +import geoinfo.com.GeoinfoCommon; + +@Service("geoInfoChService") +public class GeoInfoChServiceImpl implements GeoInfoChService { + + @Resource(name = "geoInfoChMapper") + private GeoInfoChMapper masterMapper; + + @Override + public List selectInfoListGrp() throws Exception { + return masterMapper.selectInfoListGrp(); + } + + @Override + public List selectInfoListDate(HashMap params) throws Exception { + return masterMapper.selectInfoListDate(params); + } + + @Override + public List getYear_date() throws Exception { + return masterMapper.getYear_date(); + } + + @Override + public List getMonth_date(HashMap params) throws Exception { + return masterMapper.getMonth_date(params); + } + + @Override + public List getMonth_date_graph(HashMap params) throws Exception { + return masterMapper.getMonth_date_graph(params); + } + + @Override + public List selectInfoListDateExcel() throws Exception { + return masterMapper.selectInfoListDateExcel(); + } + + @Override + public EgovMap selectInfoGraph(HashMap params) throws Exception { + return GeoinfoCommon.getMapGraph(masterMapper.selectInfoGraph(params), "mm", "cnt"); + } + + +} diff --git a/src/main/java/geoinfo/admins/userLog/service/impl/GeoInfoNewPortalServiceImpl.java b/src/main/java/geoinfo/admins/userLog/service/impl/GeoInfoNewPortalServiceImpl.java new file mode 100644 index 0000000..a1076e5 --- /dev/null +++ b/src/main/java/geoinfo/admins/userLog/service/impl/GeoInfoNewPortalServiceImpl.java @@ -0,0 +1,120 @@ +package geoinfo.admins.userLog.service.impl; + +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import egovframework.rte.psl.dataaccess.util.EgovMap; +import geoinfo.admins.userLog.service.GeoInfoNewPortalMapper; +import geoinfo.admins.userLog.service.GeoInfoNewPortalService; +import geoinfo.com.GeoinfoCommon; + +@Service("geoInfoNewPortalService") +public class GeoInfoNewPortalServiceImpl implements GeoInfoNewPortalService { + + @Resource(name = "geoInfoNewPortalMapper") + private GeoInfoNewPortalMapper masterMapper; + + @Override + public List selectInfoListGrp() throws Exception { + return masterMapper.selectInfoListGrp(); + } + + @Override + public List selectInfoListDate(HashMap params) throws Exception { + return masterMapper.selectInfoListDate(params); + } + + @Override + public int selectInfoListDateCnt(HashMap params) throws Exception { + return masterMapper.selectInfoListDateCnt(params); + } + + @Override + public List getYear_date() throws Exception { + return masterMapper.getYear_date(); + } + + @Override + public List getMonth_date(HashMap params) throws Exception { + return masterMapper.getMonth_date(params); + } + + @Override + public List selectInfoListDateExcel() throws Exception { + return masterMapper.selectInfoListDateExcel(); + } + + @Override + public List selectInfoListVisitor(HashMap params) throws Exception { + return masterMapper.selectInfoListVisitor(params); + } + + @Override + public int selectInfoListVisitorCnt(HashMap params) throws Exception { + return masterMapper.selectInfoListVisitorCnt(params); + } + + @Override + public List getYear_Visitor() throws Exception { + return masterMapper.getYear_Visitor(); + } + + @Override + public List getMonth_Visitor(HashMap params) throws Exception { + return masterMapper.getMonth_Visitor(params); + } + + @Override + public List selectInfoListVisitorExcel() throws Exception { + return masterMapper.selectInfoListVisitorExcel(); + } + + @Override + public List selectInfoListPurpose(HashMap params) throws Exception { + return masterMapper.selectInfoListPurpose(params); + } + + @Override + public List selectInfoListMonth(HashMap params) throws Exception { + return masterMapper.selectInfoListMonth(params); + } + + @Override + public List getYear_Month() throws Exception { + return masterMapper.getYear_Month(); + } + + @Override + public List getMonth_Month(HashMap params) throws Exception { + return masterMapper.getMonth_Month(params); + } + + @Override + public List selectInfoListMonthExcel() throws Exception { + return masterMapper.selectInfoListMonthExcel(); + } + + @Override + public EgovMap selectInfoGraphMonth(HashMap params) throws Exception { + return GeoinfoCommon.getMapGraph(masterMapper.selectInfoGraphMonth(params), "mm", "cnt"); + } + + @Override + public List getYear() throws Exception { + return masterMapper.getYear(); + } + + @Override + public List getMonth(HashMap params) throws Exception { + return masterMapper.getMonth(params); + } + + @Override + public EgovMap selectInfoGraph(HashMap params) throws Exception { + return GeoinfoCommon.getMapGraph(masterMapper.selectInfoGraph(params), "mm", "cnt"); + } +} diff --git a/src/main/java/geoinfo/admins/userLog/service/impl/GeoInfoPortalServiceImpl.java b/src/main/java/geoinfo/admins/userLog/service/impl/GeoInfoPortalServiceImpl.java new file mode 100644 index 0000000..b17a962 --- /dev/null +++ b/src/main/java/geoinfo/admins/userLog/service/impl/GeoInfoPortalServiceImpl.java @@ -0,0 +1,136 @@ +package geoinfo.admins.userLog.service.impl; + +import java.util.HashMap; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import geoinfo.admins.userLog.service.GeoInfoPortalMapper; +import geoinfo.admins.userLog.service.GeoInfoPortalService; + +@Service("geoInfoPortalService") +public class GeoInfoPortalServiceImpl implements GeoInfoPortalService { + + @Resource(name = "geoInfoPortalMapper") + private GeoInfoPortalMapper masterMapper; + + @Override + public List selectInfoListGrp() throws Exception { + return masterMapper.selectInfoListGrp(); + } + + @Override + public List selectInfoListDate(HashMap params) throws Exception { + return masterMapper.selectInfoListDate(params); + } + + @Override + public int selectInfoListDateCnt(HashMap params) throws Exception { + return masterMapper.selectInfoListDateCnt(params); + } + + @Override + public List getYear_date() throws Exception { + return masterMapper.getYear_date(); + } + + @Override + public List getMonth_date(HashMap params) throws Exception { + return masterMapper.getMonth_date(params); + } + + @Override + public List selectInfoListDateExcel() throws Exception { + return masterMapper.selectInfoListDateExcel(); + } + + @Override + public List selectInfoListVisitor(HashMap params) throws Exception { + return masterMapper.selectInfoListVisitor(params); + } + + @Override + public int selectInfoListVisitorCnt(HashMap params) throws Exception { + return masterMapper.selectInfoListVisitorCnt(params); + } + + @Override + public List getYear_Visitor() throws Exception { + return masterMapper.getYear_Visitor(); + } + + @Override + public List getMonth_Visitor(HashMap params) throws Exception { + return masterMapper.getMonth_Visitor(params); + } + + @Override + public List selectInfoListVisitorExcel() throws Exception { + return masterMapper.selectInfoListVisitorExcel(); + } + + @Override + public List selectInfoListSiteVisit() throws Exception { + return masterMapper.selectInfoListSiteVisit(); + } + @Override + public List selectInfoListGeoInfo() throws Exception { + return masterMapper.selectInfoListGeoInfo(); + } + @Override + public List selectInfoListPrjClient() throws Exception { + return masterMapper.selectInfoListPrjClient(); + } + + @Override + public List selectInfoListSiteVisitEtc(HashMap params) throws Exception { + return masterMapper.selectInfoListSiteVisitEtc(params); + } + @Override + public List selectInfoListGeoInfoEtc(HashMap params) throws Exception { + return masterMapper.selectInfoListGeoInfoEtc(params); + } + @Override + public List selectInfoListPrjClientEtc(HashMap params) throws Exception { + return masterMapper.selectInfoListPrjClientEtc(params); + } + + @Override + public void deleteLog(HashMap params) throws Exception { + masterMapper.deleteLog(params); + } + + @Override + public List selectInfoListPurpose(HashMap params) throws Exception { + return masterMapper.selectInfoListPurpose(params); + } + + @Override + public List selectInfoListSubject(HashMap params) throws Exception { + return masterMapper.selectInfoListSubject(params); + } + + @Override + public List selectInfoListOrder(HashMap params) throws Exception { + return masterMapper.selectInfoListOrder(params); + } + + @Override + public List selectInfoListMonth(HashMap params) throws Exception { + return masterMapper.selectInfoListMonth(params); + } + + @Override + public List getYear_Month() throws Exception { + return masterMapper.getYear_Month(); + } + + @Override + public List selectInfoListMonthExcel() throws Exception { + return masterMapper.selectInfoListMonthExcel(); + } + + +} diff --git a/src/main/java/geoinfo/com/EgovExcel.java b/src/main/java/geoinfo/com/EgovExcel.java new file mode 100644 index 0000000..1e3ec0f --- /dev/null +++ b/src/main/java/geoinfo/com/EgovExcel.java @@ -0,0 +1,862 @@ +package geoinfo.com; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import org.apache.log4j.Logger; +import org.apache.poi.hssf.util.HSSFColor; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellStyle; +import org.apache.poi.ss.usermodel.DataFormat; +import org.apache.poi.ss.usermodel.DateUtil; +import org.apache.poi.ss.usermodel.Font; +import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.ss.util.CellRangeAddress; + +import egovframework.com.cmm.service.impl.EgovFileMngServiceImpl; +import egovframework.rte.psl.dataaccess.util.EgovMap; + +public class EgovExcel { + private static final Logger LOGGER = Logger.getLogger(EgovExcel.class.getName()); + + @SuppressWarnings("deprecation") + public static Map createStyles(Workbook wb) { + Map styles = new HashMap(); + + CellStyle style; + + //숫자 + style = wb.createCellStyle(); + style.setBorderBottom(CellStyle.BORDER_THIN); + style.setBorderTop(CellStyle.BORDER_THIN); + style.setBorderLeft(CellStyle.BORDER_THIN); + style.setBorderRight(CellStyle.BORDER_THIN); + DataFormat format = wb.createDataFormat(); + style.setDataFormat(format.getFormat("#,##0.00")); + style.setAlignment(CellStyle.ALIGN_CENTER); + style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); + styles.put("number", style); + + //문자 + style = wb.createCellStyle(); + style.setBorderBottom(CellStyle.BORDER_THIN); + style.setBorderTop(CellStyle.BORDER_THIN); + style.setBorderLeft(CellStyle.BORDER_THIN); + style.setBorderRight(CellStyle.BORDER_THIN); + style.setAlignment(CellStyle.ALIGN_CENTER); + style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); + styles.put("string", style); + + //헤더 + style = wb.createCellStyle(); + style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); + style.setBorderBottom(CellStyle.BORDER_THIN); + style.setBorderTop(CellStyle.BORDER_THIN); + style.setBorderLeft(CellStyle.BORDER_THIN); + style.setBorderRight(CellStyle.BORDER_THIN); + style.setFillBackgroundColor(HSSFColor.WHITE.index); + style.setFillForegroundColor(HSSFColor.GREY_25_PERCENT.index); + style.setFillPattern(CellStyle.SOLID_FOREGROUND); + style.setAlignment(CellStyle.ALIGN_CENTER); + Font font = wb.createFont(); +// font.setBoldweight(Font.BOLDWEIGHT_BOLD); + font.setBold(true); + style.setFont(font); + styles.put("mapheader", style); + + Font searchFont = wb.createFont(); + searchFont.setFontHeightInPoints((short) 10); +// headerFont.setBoldweight(Font.BOLDWEIGHT_BOLD); + style = wb.createCellStyle(); + style.setAlignment(CellStyle.ALIGN_LEFT); + style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); + style.setFillForegroundColor(HSSFColor.TAN.index); + style.setFillPattern(CellStyle.SOLID_FOREGROUND); + style.setBorderRight(CellStyle.BORDER_THIN); + style.setRightBorderColor(IndexedColors.BLACK.getIndex()); + style.setBorderLeft(CellStyle.BORDER_THIN); + style.setLeftBorderColor(IndexedColors.BLACK.getIndex()); + style.setBorderTop(CellStyle.BORDER_THIN); + style.setTopBorderColor(IndexedColors.BLACK.getIndex()); + style.setBorderBottom(CellStyle.BORDER_THIN); + style.setBottomBorderColor(IndexedColors.BLACK.getIndex()); + style.setFont(searchFont); + styles.put("search", style); + + Font headerFont = wb.createFont(); + headerFont.setFontHeightInPoints((short) 10); +// headerFont.setBoldweight(Font.BOLDWEIGHT_BOLD); + style = wb.createCellStyle(); + style.setAlignment(CellStyle.ALIGN_CENTER); + style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); + style.setFillForegroundColor(HSSFColor.TAN.index); + style.setFillPattern(CellStyle.SOLID_FOREGROUND); + style.setBorderRight(CellStyle.BORDER_THIN); + style.setRightBorderColor(IndexedColors.BLACK.getIndex()); + style.setBorderLeft(CellStyle.BORDER_THIN); + style.setLeftBorderColor(IndexedColors.BLACK.getIndex()); + style.setBorderTop(CellStyle.BORDER_THIN); + style.setTopBorderColor(IndexedColors.BLACK.getIndex()); + style.setBorderBottom(CellStyle.BORDER_THIN); + style.setBottomBorderColor(IndexedColors.BLACK.getIndex()); + style.setFont(headerFont); + styles.put("header", style); + + Font cellFont = wb.createFont(); + cellFont.setFontHeightInPoints((short) 10); + // headerFont.setBoldweight(Font.BOLDWEIGHT_BOLD); + style = wb.createCellStyle(); + style.setAlignment(CellStyle.ALIGN_LEFT); + style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); + style.setBorderRight(CellStyle.BORDER_THIN); + style.setRightBorderColor(IndexedColors.BLACK.getIndex()); + style.setBorderLeft(CellStyle.BORDER_THIN); + style.setLeftBorderColor(IndexedColors.BLACK.getIndex()); + style.setBorderTop(CellStyle.BORDER_THIN); + style.setTopBorderColor(IndexedColors.BLACK.getIndex()); + style.setBorderBottom(CellStyle.BORDER_THIN); + style.setBottomBorderColor(IndexedColors.BLACK.getIndex()); + style.setFont(cellFont); + styles.put("cell", style); + + Font titlefont = wb.createFont(); + titlefont.setFontHeightInPoints((short) 14); +// titlefont.setBoldweight(Font.BOLDWEIGHT_BOLD); + titlefont.setBold(true); + style = wb.createCellStyle(); + style.setAlignment(CellStyle.ALIGN_CENTER); + style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); + style.setWrapText(false); + style.setFont(titlefont); + styles.put("title", style); + + Font dateFont = wb.createFont(); + dateFont.setFontHeightInPoints((short) 10); + style = wb.createCellStyle(); + style.setAlignment(CellStyle.ALIGN_RIGHT); + style.setVerticalAlignment(CellStyle.VERTICAL_CENTER); + style.setWrapText(false); + styles.put("date", style); + + return styles; + } + + public static void SetAutoColumnWidth(Sheet sheet, int StartCell, int EndCell) { + for (int i = StartCell; i <= EndCell; i++) { + sheet.autoSizeColumn(i); + if(i == EndCell){ + sheet.setColumnWidth(i, (sheet.getColumnWidth(i)) + 1500); + }else{ + sheet.setColumnWidth(i, (sheet.getColumnWidth(i)) + 1024); + } + + } + } + + /** + * @param sheet + * @param arrHeader + * @param ResultList + * @param StartRow + * @param StartCell + * @param wb + * @param titleName + * @param dateName + * @param searchRowCnt + * @param arr + * @param arrSearch1 + * @param arrSearch2 + * @param arrSearchContents + * @throws Exception + */ + public static void SetExcelList(Sheet sheet, String[] arrHeader, List ResultList, int StartRow, int StartCell, Workbook wb, String titleName, String dateName, int searchRowCnt, int[] arr, + String[] arrSearch1, String[] arrSearch2, String[] arrSearchContents) throws Exception { + + Map styles = createStyles(wb); + +// try { + + int CellNum = 0; + + for (int i = 0; i < arrHeader.length; i++) { + + String item = arrHeader[i]; + Row row = sheet.getRow(StartRow); + if (row == null) { + row = sheet.createRow(StartRow); + } + // row.setHeightInPoints(18.00f); + Cell cell = row.getCell(StartCell + CellNum); + if (cell == null) { + cell = row.createCell(StartCell + CellNum); + cell.setCellStyle(styles.get("header")); + } + CellNum++; + cell.setCellValue(item); + } + + StartRow++; + + for (int i = 0; i < ResultList.size(); i++) { + + EgovMap Temp = (EgovMap) ResultList.get(i); + + Row row = sheet.getRow(StartRow + i); + if (row == null) { + row = sheet.createRow(StartRow + i); + } + CellNum = 0; + for (Iterator Header = Temp.keySet().iterator(); Header.hasNext();) { + String item = Header.next(); + + Cell cell = row.getCell(StartCell + CellNum); + + if (cell == null) { + cell = row.createCell(StartCell + CellNum); + } + + if (Temp.get(item) == null || Temp.get(item).equals("")) { + cell.setCellValue(""); + cell.setCellStyle(styles.get("cell")); + } else if (Temp.get(item) instanceof Integer) { + + cell.setCellValue((Integer) Temp.get(item)); + cell.setCellStyle(styles.get("cell")); + } else if (Temp.get(item) instanceof Double) { + + cell.setCellValue((Double) Temp.get(item)); + cell.setCellStyle(styles.get("cell")); + + } else { + cell.setCellValue(String.valueOf(Temp.get(item))); + cell.setCellStyle(styles.get("cell")); + } + CellNum++; + } + } + + Row titleRow = sheet.createRow(0); + Cell titleCell = titleRow.createCell(StartCell); + titleCell.setCellValue(titleName); + titleCell.setCellStyle(styles.get("title")); + sheet.addMergedRegion(new CellRangeAddress(0, 0, StartCell, CellNum - 1)); + + Row dateRow = sheet.createRow(StartRow - 2); + Cell dateCell = dateRow.createCell(StartCell); + dateCell.setCellValue(dateName); + dateCell.setCellStyle(styles.get("date")); + sheet.addMergedRegion(new CellRangeAddress(StartRow - 2, StartRow - 2, StartCell, CellNum - 1)); + + int mergeCnt = 1; + for (int i = 0; i < arr.length; i++) { + + Row row = sheet.getRow(mergeCnt); + if (row == null) { + row = sheet.createRow(mergeCnt); + } + Cell cell = row.getCell(0); + if (cell == null) { + cell = row.createCell(0); + cell.setCellStyle(styles.get("header")); + } + if (arrSearch1.length == arr.length) { + cell.setCellValue(arrSearch1[i]); + } + sheet.addMergedRegion(new CellRangeAddress(mergeCnt, mergeCnt + arr[i] - 1, 0, 0)); + mergeCnt = mergeCnt + arr[i]; + + } + + for (int i = 1; i < searchRowCnt + 1; i++) { + + sheet.addMergedRegion(new CellRangeAddress(i, i, 2, CellNum - 1)); + + for (int j = 0; j < 2; j++) { + Row row = sheet.getRow(i); + if (row == null) { + row = sheet.createRow(i); + } + Cell cell = row.getCell(j); + if (cell == null) { + cell = row.createCell(j); + cell.setCellStyle(styles.get("header")); + } + if (j == 1 && arrSearch2.length == searchRowCnt) { + cell.setCellValue(arrSearch2[i - 1]); + } + } + + for (int j = 2; j < CellNum; j++) { + Row row = sheet.getRow(i); + if (row == null) { + row = sheet.createRow(i); + } + Cell cell = row.getCell(j); + if (cell == null) { + cell = row.createCell(j); + cell.setCellStyle(styles.get("cell")); + } + } + + Row searchRow = sheet.getRow(i); + if (searchRow == null) { + searchRow = sheet.createRow(i); + } + Cell searchCell = searchRow.getCell(2); + if (searchCell == null) { + searchCell = searchRow.createCell(2); + // searchCell.setCellStyle(styles.get("cell")); + } + + searchCell.setCellValue(arrSearchContents[i - 1]); + } + + SetAutoColumnWidth(sheet, StartCell, CellNum); //셀 너비 조정 + +// } catch (Exception ex) { +// // ex.printStackTrace(); +// } + + } + + /** + * @param sheet + * @param arrHeader + * @param ResultList + * @param StartRow + * @param StartCell + * @param wb + * @param titleName + * @param dateName + * @param searchRowCnt + * @param arrSearch1 + * @param arrSearchContents + * @throws Exception + */ + public static void SetExcelList(Sheet sheet, String[] arrHeader, List ResultList, int StartRow, int StartCell, Workbook wb, String titleName, String dateName, int searchRowCnt, + String[] arrSearch1, String[] arrSearchContents) throws Exception { + + Map styles = createStyles(wb); + +// try { + + int CellNum = 0; + + for (int i = 0; i < arrHeader.length; i++) { + + String item = arrHeader[i]; + Row row = sheet.getRow(StartRow); + if (row == null) { + row = sheet.createRow(StartRow); + } + Cell cell = row.getCell(StartCell + CellNum); + if (cell == null) { + cell = row.createCell(StartCell + CellNum); + cell.setCellStyle(styles.get("header")); + } + CellNum++; + cell.setCellValue(item); + } + + StartRow++; + + for (int i = 0; i < ResultList.size(); i++) { + + EgovMap Temp = (EgovMap) ResultList.get(i); + + Row row = sheet.getRow(StartRow + i); + if (row == null) { + row = sheet.createRow(StartRow + i); + } + CellNum = 0; + for (Iterator Header = Temp.keySet().iterator(); Header.hasNext();) { + String item = Header.next(); + + Cell cell = row.getCell(StartCell + CellNum); + + if (cell == null) { + cell = row.createCell(StartCell + CellNum); + } + + if (Temp.get(item) == null || Temp.get(item).equals("")) { + cell.setCellValue(""); + cell.setCellStyle(styles.get("cell")); + } else if (Temp.get(item) instanceof Integer) { + + cell.setCellValue((Integer) Temp.get(item)); + cell.setCellStyle(styles.get("cell")); + } else if (Temp.get(item) instanceof Double) { + + cell.setCellValue((Double) Temp.get(item)); + cell.setCellStyle(styles.get("cell")); + + } else { + cell.setCellValue(String.valueOf(Temp.get(item))); + cell.setCellStyle(styles.get("cell")); + } + CellNum++; + } + } + + Row titleRow = sheet.createRow(0); + Cell titleCell = titleRow.createCell(StartCell); + titleCell.setCellValue(titleName); + titleCell.setCellStyle(styles.get("title")); + sheet.addMergedRegion(new CellRangeAddress(0, 0, StartCell, CellNum - 1)); + + Row dateRow = sheet.createRow(StartRow - 2); + Cell dateCell = dateRow.createCell(StartCell); + dateCell.setCellValue(dateName); + dateCell.setCellStyle(styles.get("date")); + sheet.addMergedRegion(new CellRangeAddress(StartRow - 2, StartRow - 2, StartCell, CellNum - 1)); + + for (int i = 1; i < searchRowCnt + 1; i++) { + + sheet.addMergedRegion(new CellRangeAddress(i, i, 0, 1)); + sheet.addMergedRegion(new CellRangeAddress(i, i, 2, CellNum - 1)); + + for (int j = 0; j < 2; j++) { + Row row = sheet.getRow(i); + if (row == null) { + row = sheet.createRow(i); + } + Cell cell = row.getCell(j); + if (cell == null) { + cell = row.createCell(j); + cell.setCellStyle(styles.get("header")); + } + if (j == 0 && arrSearch1.length == searchRowCnt) { + cell.setCellValue(arrSearch1[i - 1]); + } + } + + for (int j = 2; j < CellNum; j++) { + Row row = sheet.getRow(i); + if (row == null) { + row = sheet.createRow(i); + } + Cell cell = row.getCell(j); + if (cell == null) { + cell = row.createCell(j); + cell.setCellStyle(styles.get("cell")); + } + } + + Row searchRow = sheet.getRow(i); + if (searchRow == null) { + searchRow = sheet.createRow(i); + } + Cell searchCell = searchRow.getCell(2); + if (searchCell == null) { + searchCell = searchRow.createCell(2); + } + + searchCell.setCellValue(arrSearchContents[i - 1]); + } + + SetAutoColumnWidth(sheet, StartCell, CellNum); //셀 너비 조정 + +// } catch (Exception ex) { +// // ex.printStackTrace(); +// } + + } + + /** + * @param wb + * @param sheet + * @param arrHerder + * @param ResultList + * @param StartRow 리스트가 시작 row (2부터 시작해야함) + * @param StartCell 리스트 시작 cell + * @param titleName 엑셀 제목 + * @throws Exception + */ + public static void SetExcelList(Workbook wb, Sheet sheet, String[] arrHerder, List ResultList, int StartRow, int StartCell, String titleName) throws Exception { + + Map styles = createStyles(wb); + + int CellNum = 0; + + Row row = sheet.getRow(StartRow); + if (row == null) { + row = sheet.createRow(StartRow); + } + + for (int i = 0; i < arrHerder.length; i++) { + Cell cell = row.getCell(StartCell + CellNum); + if (cell == null) { + cell = row.createCell(StartCell + CellNum); + cell.setCellStyle(styles.get("mapheader")); + } + cell.setCellValue(arrHerder[i]); + CellNum++; + } + StartRow++; + for (int i = 0; i < ResultList.size(); i++) { + + EgovMap Temp = (EgovMap) ResultList.get(i); + + row = sheet.getRow(StartRow + i); + if (row == null) { + row = sheet.createRow(StartRow + i); + } + CellNum = 0; + for (Iterator Header = Temp.keySet().iterator(); Header.hasNext();) { + String item = Header.next(); + + Cell cell = row.getCell(StartCell + CellNum); + + if (cell == null) { + cell = row.createCell(StartCell + CellNum); + } + + if (Temp.get(item) == null) { + cell.setCellValue(""); + cell.setCellStyle(styles.get("string")); + } else if (Temp.get(item) instanceof Integer) { + cell.setCellValue((Integer) Temp.get(item)); + cell.setCellStyle(styles.get("number")); + } else if (Temp.get(item) instanceof Double) { + cell.setCellValue((Double) Temp.get(item)); + cell.setCellStyle(styles.get("number")); + } else { + cell.setCellValue(String.valueOf(Temp.get(item))); + cell.setCellStyle(styles.get("string")); + } + CellNum++; + } + } + + Row titleRow = sheet.createRow(StartRow - 3); + Cell titleCell = titleRow.createCell(StartCell); + titleCell.setCellValue(titleName); + titleCell.setCellStyle(styles.get("title")); + sheet.addMergedRegion(new CellRangeAddress(StartRow - 3, StartRow - 3, StartCell, CellNum - 1)); + + Row dateRow = sheet.createRow(StartRow - 2); + Cell dateCell = dateRow.createCell(StartCell); + SimpleDateFormat formatter = new SimpleDateFormat("yyyy.MM.dd", Locale.KOREA); + String dateString = formatter.format(new Date()); + dateCell.setCellValue("출력일 : " + dateString); + dateCell.setCellStyle(styles.get("date")); + sheet.addMergedRegion(new CellRangeAddress(StartRow - 2, StartRow - 2, StartCell, CellNum - 1)); + + SetAutoColumnWidth(sheet, StartCell, CellNum); + + } + + /** + * 엑셀 다운로드 + * + * @param sheet + * 시트명 + * @param arrHeader + * 리스트 헤더명 + * @param ResultList + * 리스트 + * @param StartRow + * 시작 row + * @param StartCell + * 시작 cell + * @param wb + * @param titleName + * 제목 + * @throws Exception + */ + public static void SetExcelList(Sheet sheet, String[] arrHeader, List ResultList, int StartRow, int StartCell, Workbook wb, String titleName) throws Exception { + + Map styles = createStyles(wb); + +// try { + + int CellNum = 0; + + for (int i = 0; i < arrHeader.length; i++) { + + String item = arrHeader[i]; + Row row = sheet.getRow(StartRow); + if (row == null) { + row = sheet.createRow(StartRow); + } + Cell cell = row.getCell(StartCell + CellNum); + if (cell == null) { + cell = row.createCell(StartCell + CellNum); + cell.setCellStyle(styles.get("header")); + } + CellNum++; + cell.setCellValue(item); + } + + StartRow++; + + for (int i = 0; i < ResultList.size(); i++) { + + EgovMap Temp = (EgovMap) ResultList.get(i); + + Row row = sheet.getRow(StartRow + i); + if (row == null) { + row = sheet.createRow(StartRow + i); + } + CellNum = 0; + for (Iterator Header = Temp.keySet().iterator(); Header.hasNext();) { + String item = Header.next(); + + Cell cell = row.getCell(StartCell + CellNum); + + if (cell == null) { + cell = row.createCell(StartCell + CellNum); + } + + if (Temp.get(item) == null || Temp.get(item).equals("")) { + cell.setCellValue(""); + cell.setCellStyle(styles.get("cell")); + } else if (Temp.get(item) instanceof Integer) { + + cell.setCellValue((Integer) Temp.get(item)); + cell.setCellStyle(styles.get("cell")); + } else if (Temp.get(item) instanceof Double) { + + cell.setCellValue((Double) Temp.get(item)); + cell.setCellStyle(styles.get("cell")); + + } else { + cell.setCellValue(String.valueOf(Temp.get(item))); + cell.setCellStyle(styles.get("cell")); + } + CellNum++; + } + } + + Row titleRow = sheet.createRow(StartRow - 1); + Cell titleCell = titleRow.createCell(StartCell); + titleCell.setCellValue(titleName); + titleCell.setCellStyle(styles.get("title")); + sheet.addMergedRegion(new CellRangeAddress(0, 0, StartCell, CellNum - 1)); + + SetAutoColumnWidth(sheet, StartCell, CellNum); //셀 너비 조정 + +// } catch (Exception ex) { +// // ex.printStackTrace(); +// } + + } + + /** + * 엑셀 다운로드 (공통함수) + * + * @param wb + * @param sheet + * @param arryHerder + * @param ResultList + * @param StartRow + * @param StartCell + * @throws Exception + */ + public static void SetExcelList(Workbook wb, Sheet sheet, String[] arryHerder, List ResultList, int StartRow, int StartCell) throws Exception { + + Map styles = createStyles(wb); + +// try { + int CellNum = 0; + + Row row = sheet.getRow(StartRow); + if (row == null) { + row = sheet.createRow(StartRow); + } + + for (int i = 0; i < arryHerder.length; i++) { + Cell cell = row.getCell(StartCell + CellNum); + if (cell == null) { + cell = row.createCell(StartCell + CellNum); + cell.setCellStyle(styles.get("mapheader")); + } + cell.setCellValue(arryHerder[i]); + CellNum++; + } + StartRow++; + for (int i = 0; i < ResultList.size(); i++) { + + EgovMap Temp = (EgovMap) ResultList.get(i); + + row = sheet.getRow(StartRow + i); + if (row == null) { + row = sheet.createRow(StartRow + i); + } + CellNum = 0; + for (Iterator Header = Temp.keySet().iterator(); Header.hasNext();) { + String item = Header.next(); + + Cell cell = row.getCell(StartCell + CellNum); + + if (cell == null) { + cell = row.createCell(StartCell + CellNum); + } + + if (Temp.get(item) == null) { + cell.setCellValue(""); + cell.setCellStyle(styles.get("string")); + } else if (Temp.get(item) instanceof Integer) { + cell.setCellValue((Integer) Temp.get(item)); + cell.setCellStyle(styles.get("number")); + } else if (Temp.get(item) instanceof Double) { + cell.setCellValue((Double) Temp.get(item)); + cell.setCellStyle(styles.get("number")); + } else { + cell.setCellValue(String.valueOf(Temp.get(item))); + cell.setCellStyle(styles.get("string")); + } + CellNum++; + } + } + +// mergedCell(sheet, 1, ResultList.size(), 0, 4); + + SetAutoColumnWidth(sheet, StartCell, CellNum); +// } catch (Exception ex) { +// ex.printStackTrace(); +// } + } + + /** + * 엑셀 다운로드 + * @param sheet : 시트명 + * @param ResultList : 리스트 + * @param StartRow : 시작 row + * @param StartCell : 시작 cell + * @param wb : Workbook + * @param titleName : 제목 + * @throws Exception + */ + public static void SetExcelList(Workbook wb, Sheet sheet, List ResultList, int StartRow, int StartCell) throws Exception { + + Map styles = createStyles(wb); + + int CellNum = 0; + + Row row = sheet.getRow(StartRow); + if (row == null) { + row = sheet.createRow(StartRow); + } + + for (int i = 0; i < ResultList.size(); i++) { + + List Temp = (List) ResultList.get(i); + + row = sheet.getRow(StartRow + i); + if (row == null) { + row = sheet.createRow(StartRow + i); + } + CellNum = 0; + + for (int j = 0; j < Temp.size(); j++) { + Object item = Temp.get(j); + + Cell cell = row.getCell(StartCell + CellNum); + + if (cell == null) { + cell = row.createCell(StartCell + CellNum); + } + + if (item == null) { + cell.setCellValue(""); + cell.setCellStyle(styles.get("string")); + } else if (item instanceof Integer) { + cell.setCellValue((Integer) item); + cell.setCellStyle(styles.get("number")); + } else if (item instanceof Double) { + cell.setCellValue((Double) item); + cell.setCellStyle(styles.get("number")); + } else { + cell.setCellValue(String.valueOf(item)); + cell.setCellStyle(styles.get("string")); + } + CellNum++; + } + } + + SetAutoColumnWidth(sheet, StartCell, CellNum); + } + + public static String getExcelValue(Sheet sheet, int nRow, int nCol) { + + String result = ""; +// try { + Row row = sheet.getRow(nRow); + if (row == null) { + row = sheet.createRow(nRow); + } + Cell cell = row.getCell(nCol); + if (cell == null) { // CELL이 없으면 바로 위 행의 ROW의 CELL 스타일을 가지고 옴. + cell = row.createCell(nCol); + } + row = sheet.getRow(nRow); + cell = row.getCell(nCol); + + if (cell.getCellType() == 0) { + if (DateUtil.isCellDateFormatted(cell)) { + SimpleDateFormat fomatter = new SimpleDateFormat("yyyy-MM-dd"); + result = fomatter.format(cell.getDateCellValue()); + } else { + cell.setCellType(Cell.CELL_TYPE_STRING); + result = cell.getStringCellValue(); + } + } else if (cell.getCellType() == 1) { + result = cell.getStringCellValue(); + } else if (cell.getCellType() == 4) { + result = String.valueOf(cell.getBooleanCellValue()); + } + +// } catch (Exception e) { +// // e.printStackTrace(); +// } + + return result; + } + + public static void mergedCell (Sheet sheet, int startRow, int endRow, int startCol, int endCol) { + + for(int i=startCol; i rowIterator = sheet.iterator(); + Row row = rowIterator.next(); + String value = ""; + String temp = ""; + int sumRows = 1; + int sRow = startRow; + + while(rowIterator.hasNext()) { + row = rowIterator.next(); + value = row.getCell(i).getStringCellValue(); + + if(row.getRowNum() > 1) { + if(value.equals(temp)) { + sumRows++; + if(sumRows == endRow){ + sheet.addMergedRegion(new CellRangeAddress(sRow, sumRows, i, i)); + sheet.addMergedRegion(new CellRangeAddress(sRow, sumRows, i+1, i+1)); + } + } else { + temp = value; + if(sRow != sumRows){ + sheet.addMergedRegion(new CellRangeAddress(sRow, sumRows, i, i)); + sheet.addMergedRegion(new CellRangeAddress(sRow, sumRows, i+1, i+1)); + } + sRow = sumRows+1; + sumRows++; + } + } else { + temp = value; + } + } + } + } + +} diff --git a/src/main/java/geoinfo/com/GeoinfoCommon.java b/src/main/java/geoinfo/com/GeoinfoCommon.java new file mode 100644 index 0000000..651c857 --- /dev/null +++ b/src/main/java/geoinfo/com/GeoinfoCommon.java @@ -0,0 +1,217 @@ +package geoinfo.com; + +import java.util.List; + +import org.springframework.web.servlet.ModelAndView; + +import egovframework.rte.psl.dataaccess.util.EgovMap; + +public class GeoinfoCommon { + public static ModelAndView setPage(int rowCount, int page, ModelAndView mv, String taget){ + + ////////////////////////////////////////////////////////// + /////////////////////페이징 처리//////////////////////// + ////////////////////////////////////////////////////////// + int _pageIndex = 0; + int _lastPageIndex = 0; + _pageIndex = 0; + _lastPageIndex = rowCount; + + _pageIndex = (_pageIndex > 0) ? _pageIndex : 0; + _lastPageIndex = (_lastPageIndex > 0) ? _lastPageIndex : 0; + _pageIndex = (_pageIndex > _lastPageIndex) ? _lastPageIndex : _pageIndex; + + int numberOfPages = _lastPageIndex ; + int nowPage = page; + + //시작페이지 + int startPage= ((nowPage / 10) * 10) ; + if (startPage <= 0){ + startPage = 0 ; + } + + //종료페이지 + int endPage = startPage + 9 ; + if (numberOfPages <= endPage ){ + endPage = numberOfPages ; + } + + //이전 페이지 10개 + int frontPage = nowPage - 1; + if (frontPage < 0){ + frontPage = 0 ; + } + + //이후페이지 10개 + int nextPage = nowPage + 1 ; + if (numberOfPages <= nextPage ){ + nextPage = numberOfPages ; + } + + String pageLink = " "; + + for (int idx = startPage; idx <= endPage ; idx++) + { + if(idx == nowPage){ + pageLink = pageLink + "" + (idx + 1) + " \n"; + }else{ + pageLink = pageLink + "" + (idx + 1) + " \n"; + } + } + + mv.addObject("pageNum", pageLink); + mv.addObject("frontPage", frontPage); + mv.addObject("nextPage", nextPage); + mv.addObject("numberOfPage", endPage); + + return mv; + } + + + public static String parseData(String val){ + if(val != null){ + val = val.replaceAll("<","<"); + val = val.replaceAll(">",">"); + val = val.replaceAll("&","&"); + } + + return val; + } + + public static String inverseData(String val){ + val = val.replaceAll("<","<"); + val = val.replaceAll(">",">"); + val = val.replaceAll("&","&"); + + return val; + } + + public static String strReplace(String value){ + //value=value.replaceAll("&","&"); + value=value.replaceAll("<","<"); + value=value.replaceAll(">","&"); + value=value.replaceAll("%00",null); + value=value.replaceAll("\"","""); + value=value.replaceAll("\'","'"); + value=value.replaceAll("%",""); + value=value.replaceAll("../",""); + value=value.replaceAll("..\\\\",""); + value=value.replaceAll("./",""); + value=value.replaceAll("%2F",""); + value=value.replaceAll("SELECT",""); + value=value.replaceAll("FROM",""); + value=value.replaceAll("WHERE",""); + value=value.replaceAll("OR",""); + value=value.replaceAll("FROM",""); + value=value.replaceAll("WHERE",""); + value=value.replaceAll("AND",""); + value=value.replaceAll("CHAR",""); + value=value.replaceAll("select",""); + value=value.replaceAll("from",""); + value=value.replaceAll("where",""); + value=value.replaceAll("char",""); + value=value.replaceAll("int",""); + value=value.replaceAll("style",""); + value=value.replaceAll("script",""); + value=value.replaceAll("alert",""); + value=value.replaceAll("'","\'"); + value=value.replaceAll("1=1",""); + return value.toString(); + } + public static String searchStrReNll(String value){ + value=value.replaceAll("<",""); + value=value.replaceAll(">",""); + value=value.replaceAll("\"",""); + value=value.replaceAll("\'",""); + value=value.replaceAll("%",""); + value=value.replaceAll("../",""); + value=value.replaceAll("..\\\\",""); + value=value.replaceAll("./",""); + value=value.replaceAll("/",""); + value=value.replaceAll("'",""); + value=value.replaceAll("\\(",""); + value=value.replaceAll("\\)",""); + value=value.replaceAll("-",""); + value=value.replaceAll("=",""); + + return value.toString(); + } + + /** + * 그래프 + * @param resultList 리스트 + * @param key1 키 1 + * @param key2 키 2 + * @return EgovMap + */ + public static EgovMap getMapGraph(List resultList, String key1, String key2){ + EgovMap map = new EgovMap(); + + int contentCount = 0; + int ymaxValue = 0; + + String xValues = ""; + String barValues = ""; + + for (int i = 0; i < resultList.size(); i++) { + EgovMap tempMap = (EgovMap) resultList.get(i); + String mm = String.valueOf(tempMap.get(key1)); + String cnt = String.valueOf(tempMap.get(key2)); + + if ("".equals(xValues)) { + xValues = mm; + barValues = cnt; + } else { + xValues = xValues + "^" + mm; + barValues = barValues + "^" + cnt; + } + + if (Integer.valueOf(cnt) > ymaxValue) { + ymaxValue = Integer.valueOf(cnt); + } + + contentCount = i + 1; + } + + map.put("XVALUES", xValues); + map.put("BARVALUES", barValues); + map.put("XCOUNT", Integer.toString(contentCount)); + + if ((ymaxValue / 10) == 0) { + map.put("YMAXVALUE", Integer.toString(ymaxValue + 1)); + map.put("YINTERVAL", Integer.toString(1)); + } else { + map.put("YMAXVALUE", Integer.toString(ymaxValue * 11 / 10)); + map.put("YINTERVAL", Integer.toString(ymaxValue / 10)); + } + + return map; + } + + public static String safeHttpHeader(String value) { + String result = ""; + if(value != null) { + char[] chars = value.toCharArray(); + StringBuilder buffer = new StringBuilder(chars.length); + for(int i= 0; i > shift_value; + return (byte)value; + } else { + int shift_value = (b_offset%4)*8; + int mask_value = 0x0ff << shift_value; + int value = (src[b_offset/4] & mask_value) >> shift_value; + return (byte)value; + } + + } + + public static byte[] get_bytes_for_ints(int[] src, int offset, int ENDIAN) { + int iLen = src.length-offset; + byte[] result = new byte[(iLen)*4]; + for(int i=0; i> 24) & 0x0ff); + dst[dst_offset+1] = (byte)((src >> 16) & 0x0ff); + dst[dst_offset+2] = (byte)((src >> 8) & 0x0ff); + dst[dst_offset+3] = (byte)((src) & 0x0ff); + } else { + dst[dst_offset] = (byte)((src) & 0x0ff); + dst[dst_offset+1] = (byte)((src >> 8) & 0x0ff); + dst[dst_offset+2] = (byte)((src >> 16) & 0x0ff); + dst[dst_offset+3] = (byte)((src >> 24) & 0x0ff); + } + + } + + public static void int_to_byte_unit_big_endian(byte[] dst, int dst_offset, int src) { + dst[dst_offset] = (byte)((src>> 24) & 0x0ff); + dst[dst_offset+1] = (byte)((src >> 16) & 0x0ff); + dst[dst_offset+2] = (byte)((src >> 8) & 0x0ff); + dst[dst_offset+3] = (byte)((src) & 0x0ff); + } + + public static int URShift(int x, int n) { + if(n == 0) + return x; + if(n >= 32) + return 0; + int v = x >> n; + int v_mask = ~(0x80000000 >> (n-1)); + return v & v_mask; + } + + public static final long INT_RANGE_MAX = (long)Math.pow(2, 32); + + public static long intToUnsigned(int x) { + if(x >= 0) + return x; + return x + INT_RANGE_MAX; + } + + + + // DEFAULT : JAVA = BIG_ENDIAN + private static int ENDIAN = BIG_ENDIAN; + + private static final int SHA256_DIGEST_BLOCKLEN = 64; + private static final int SHA256_DIGEST_VALUELEN = 32; + + private static final int SHA256_K[] = + { + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 + }; + + + private static final int ROTL_ULONG(int x, int n) { + return (x << n) | URShift(x, 32 - n); + } + + private static final int ROTR_ULONG(int x, int n) { + return URShift(x, n) | (x << (32 - (n))); + } + + private static final int ENDIAN_REVERSE_ULONG(int dwS) { + return ( (ROTL_ULONG((dwS), 8) & 0x00ff00ff) | (ROTL_ULONG((dwS), 24) & 0xff00ff00) ); + } + + private static final void BIG_D2B(int D, byte[] B, int B_offset) { + int_to_byte_unit(B, B_offset, D, ENDIAN); + } + + private static final int RR(int x, int n) { return ROTR_ULONG(x, n); } + private static final int SS(int x, int n) { return URShift(x, n); } + + private static final int Ch(int x, int y, int z) { return ((x & y) ^ ((~x) & z)); } + private static final int Maj(int x, int y, int z) { return ((x & y) ^ (x & z) ^ (y & z)); } + private static final int Sigma0(int x) { return (RR(x, 2) ^ RR(x, 13) ^ RR(x, 22)); } + private static final int Sigma1(int x) { return (RR(x, 6) ^ RR(x, 11) ^ RR(x, 25)); } + + private static final int RHO0(int x) { return (RR(x, 7) ^ RR(x, 18) ^ SS(x, 3)); } + private static final int RHO1(int x) { return (RR(x, 17) ^ RR(x, 19) ^ SS(x, 10)); } + + private static final int abcdefgh_a = 0; + private static final int abcdefgh_b = 1; + private static final int abcdefgh_c = 2; + private static final int abcdefgh_d = 3; + private static final int abcdefgh_e = 4; + private static final int abcdefgh_f = 5; + private static final int abcdefgh_g = 6; + private static final int abcdefgh_h = 7; + + private static final void FF(int[] abcdefgh, int a, int b, int c, int d, int e, int f, int g, int h, int[] X, int j) { + long T1; + T1 = intToUnsigned(abcdefgh[h]) + intToUnsigned(Sigma1(abcdefgh[e])) + intToUnsigned(Ch(abcdefgh[e], abcdefgh[f], abcdefgh[g])) + intToUnsigned(SHA256_K[j]) + intToUnsigned(X[j]); + abcdefgh[d] += T1; + abcdefgh[h] = (int)(T1 + intToUnsigned(Sigma0(abcdefgh[a])) + intToUnsigned(Maj(abcdefgh[a], abcdefgh[b], abcdefgh[c]))); + } + private static final int GetData(byte[] x, int x_offset) { + return byte_to_int(x, x_offset, ENDIAN); + } + //********************************************************************************************************************************* + // o SHA256_Transform() : 512 비트 단위 블록의 메시지를 입력 받아 연쇄변수를 갱신하는 압축 함수로써 +// 4 라운드(64 단계)로 구성되며 8개의 연쇄변수(a, b, c, d, e, f, g, h)를 사용 + // o 입력 : Message - 입력 메시지의 포인터 변수 +// ChainVar - 연쇄변수의 포인터 변수 + // o 출력 : + //********************************************************************************************************************************* + private static void SHA256_Transform(byte[] Message, int[] ChainVar) { + int abcdefgh[] = new int[8]; + int T1[] = new int[1]; + int X[] = new int[64]; + int j; + + for (j = 0; j < 16; j++) + X[j] = GetData(Message, j*4); + + for (j = 16; j < 64; j++) + X[j] = (int)(intToUnsigned(RHO1(X[j - 2])) + intToUnsigned(X[j - 7]) + intToUnsigned(RHO0(X[j - 15])) + intToUnsigned(X[j - 16])); + + abcdefgh[abcdefgh_a] = ChainVar[0]; + abcdefgh[abcdefgh_b] = ChainVar[1]; + abcdefgh[abcdefgh_c] = ChainVar[2]; + abcdefgh[abcdefgh_d] = ChainVar[3]; + abcdefgh[abcdefgh_e] = ChainVar[4]; + abcdefgh[abcdefgh_f] = ChainVar[5]; + abcdefgh[abcdefgh_g] = ChainVar[6]; + abcdefgh[abcdefgh_h] = ChainVar[7]; + + for (j = 0; j < 64; j += 8) + { + FF(abcdefgh, abcdefgh_a, abcdefgh_b, abcdefgh_c, abcdefgh_d, abcdefgh_e, abcdefgh_f, abcdefgh_g, abcdefgh_h, X, j + 0); + FF(abcdefgh, abcdefgh_h, abcdefgh_a, abcdefgh_b, abcdefgh_c, abcdefgh_d, abcdefgh_e, abcdefgh_f, abcdefgh_g, X, j + 1); + FF(abcdefgh, abcdefgh_g, abcdefgh_h, abcdefgh_a, abcdefgh_b, abcdefgh_c, abcdefgh_d, abcdefgh_e, abcdefgh_f, X, j + 2); + FF(abcdefgh, abcdefgh_f, abcdefgh_g, abcdefgh_h, abcdefgh_a, abcdefgh_b, abcdefgh_c, abcdefgh_d, abcdefgh_e, X, j + 3); + FF(abcdefgh, abcdefgh_e, abcdefgh_f, abcdefgh_g, abcdefgh_h, abcdefgh_a, abcdefgh_b, abcdefgh_c, abcdefgh_d, X, j + 4); + FF(abcdefgh, abcdefgh_d, abcdefgh_e, abcdefgh_f, abcdefgh_g, abcdefgh_h, abcdefgh_a, abcdefgh_b, abcdefgh_c, X, j + 5); + FF(abcdefgh, abcdefgh_c, abcdefgh_d, abcdefgh_e, abcdefgh_f, abcdefgh_g, abcdefgh_h, abcdefgh_a, abcdefgh_b, X, j + 6); + FF(abcdefgh, abcdefgh_b, abcdefgh_c, abcdefgh_d, abcdefgh_e, abcdefgh_f, abcdefgh_g, abcdefgh_h, abcdefgh_a, X, j + 7); + } + + ChainVar[0] += abcdefgh[abcdefgh_a]; + ChainVar[1] += abcdefgh[abcdefgh_b]; + ChainVar[2] += abcdefgh[abcdefgh_c]; + ChainVar[3] += abcdefgh[abcdefgh_d]; + ChainVar[4] += abcdefgh[abcdefgh_e]; + ChainVar[5] += abcdefgh[abcdefgh_f]; + ChainVar[6] += abcdefgh[abcdefgh_g]; + ChainVar[7] += abcdefgh[abcdefgh_h]; + } + + /** + @brief 연쇄변수와 길이변수를 초기화하는 함수 + @param Info : SHA256_Process 호출 시 사용되는 구조체 + */ + public static void SHA256_Init( SHA256_INFO Info ) { + Info.uChainVar[0] = 0x6a09e667; + Info.uChainVar[1] = 0xbb67ae85; + Info.uChainVar[2] = 0x3c6ef372; + Info.uChainVar[3] = 0xa54ff53a; + Info.uChainVar[4] = 0x510e527f; + Info.uChainVar[5] = 0x9b05688c; + Info.uChainVar[6] = 0x1f83d9ab; + Info.uChainVar[7] = 0x5be0cd19; + + Info.uHighLength = Info.uLowLength = 0; + } + + /** + @brief 연쇄변수와 길이변수를 초기화하는 함수 + @param Info : SHA256_Init 호출하여 초기화된 구조체(내부적으로 사용된다.) + @param pszMessage : 사용자 입력 평문 + @param inLen : 사용자 입력 평문 길이 + */ + public static void SHA256_Process( SHA256_INFO Info, byte[] pszMessage, int uDataLen ) { + int pszMessage_offset; + + if((Info.uLowLength += (uDataLen << 3)) < 0) { + Info.uHighLength++; + } + + Info.uHighLength += URShift(uDataLen,29); + + pszMessage_offset = 0; + while (uDataLen >= SHA256_DIGEST_BLOCKLEN) { + arraycopy_offset(Info.szBuffer, 0, pszMessage, pszMessage_offset, SHA256_DIGEST_BLOCKLEN); + SHA256_Transform(Info.szBuffer, Info.uChainVar); + pszMessage_offset += SHA256_DIGEST_BLOCKLEN; + uDataLen -= SHA256_DIGEST_BLOCKLEN; + } + + arraycopy_offset(Info.szBuffer, 0, pszMessage, pszMessage_offset, uDataLen); + } + + /** + @brief 메시지 덧붙이기와 길이 덧붙이기를 수행한 후 마지막 메시지 블록을 가지고 압축함수를 호출하는 함수 + @param Info : SHA256_Init 호출하여 초기화된 구조체(내부적으로 사용된다.) + @param pszDigest : 암호문 + */ + public static void SHA256_Close( SHA256_INFO Info, byte[] pszDigest ) { + int i, Index; + + Index = URShift(Info.uLowLength, 3) % SHA256_DIGEST_BLOCKLEN; + Info.szBuffer[Index++] = (byte)0x80; + + if (Index > SHA256_DIGEST_BLOCKLEN - 8) { + arrayinit_offset(Info.szBuffer, Index, (byte)0, SHA256_DIGEST_BLOCKLEN - Index); + SHA256_Transform(Info.szBuffer, Info.uChainVar); + arrayinit(Info.szBuffer, (byte)0, SHA256_DIGEST_BLOCKLEN - 8); + } + else { + arrayinit_offset(Info.szBuffer, Index, (byte)0, SHA256_DIGEST_BLOCKLEN - Index - 8); + } + + if(ENDIAN == LITTLE_ENDIAN) { + Info.uLowLength = ENDIAN_REVERSE_ULONG(Info.uLowLength); + Info.uHighLength = ENDIAN_REVERSE_ULONG(Info.uHighLength); + } + + int_to_byte_unit(Info.szBuffer, ((int)(SHA256_DIGEST_BLOCKLEN / 4 - 2))*4, Info.uHighLength, ENDIAN); + int_to_byte_unit(Info.szBuffer, ((int)(SHA256_DIGEST_BLOCKLEN / 4 - 1))*4, Info.uLowLength, ENDIAN); + + SHA256_Transform(Info.szBuffer, Info.uChainVar); + + for (i = 0; i < SHA256_DIGEST_VALUELEN; i += 4) + BIG_D2B((Info.uChainVar)[i / 4], pszDigest, i); + } + + /** + @brief 사용자 입력 평문을 한번에 처리 + @param pszMessage : 사용자 입력 평문 + @param pszDigest : 암호문 + @remarks 내부적으로 SHA256_Init, SHA256_Process, SHA256_Close를 호출한다. + */ + public static void SHA256_Encrypt( byte[] pszMessage, int uPlainTextLen, byte[] pszDigest ) { + SHA256_INFO info = new SHA256_INFO(); + SHA256_Init( info ); + SHA256_Process( info, pszMessage, uPlainTextLen ); + SHA256_Close( info, pszDigest ); + } + + + public static class SHA256_INFO { + public int uChainVar[] = new int[SHA256_DIGEST_VALUELEN / 4]; + public int uHighLength; + public int uLowLength; + public byte szBuffer[] = new byte[SHA256_DIGEST_BLOCKLEN]; + } + + public byte[] getBytes(String data) { + String[] str = data.split(","); + byte[] result = new byte[str.length]; + for(int i=0; i= '0' && c<='9') + return (byte)(c - '0'); + if(c >= 'A' && c<='F') + return (byte)(c - 'A' + 10); + return 0; + } + + public String toHex(int b) { + char c[] = new char[2]; + c[0] = toHexNibble((b>>4) & 0x0f); + c[1] = toHexNibble(b & 0x0f); + return new String(c); + } + + public char toHexNibble(int b) { + if(b >= 0 && b <= 9) + return (char)(b + '0'); + if(b >= 0x0a && b <= 0x0f) + return (char)(b + 'A' - 10); + return '0'; + } +} + // private String shaEncrypt(String plainTextStr){ +// String encrypt_plainText = ""; +// String encrypt_cipherText = ""; +// String encrypt_cipherText_base64 = ""; +// String shaPassTemp = ""; +// String shaPass = ""; + +// byte[] plainText = plainTextStr.getBytes("UTF-8"); +// String cipherTextStr = getString(Sha256EncryptB(plainText)); + +// encrypt_plainText = plainTextStr; + // // encrypt_cipherText = cipherTextStr; +// shaPassTemp = encrypt_cipherText.substring(0,20); +// shaPass = shaPassTemp.toLowerCase(); +// return shaPass; + // } diff --git a/src/main/java/geoinfo/com/PaginationInfo.java b/src/main/java/geoinfo/com/PaginationInfo.java new file mode 100644 index 0000000..1ab0844 --- /dev/null +++ b/src/main/java/geoinfo/com/PaginationInfo.java @@ -0,0 +1,104 @@ +package geoinfo.com; + +public class PaginationInfo { + + /** + * Required Fields + * - 이 필드들은 페이징 계산을 위해 반드시 입력되어야 하는 필드 값들이다. + * + * currentPageNo : 현재 페이지 번호 + * recordCountPerPage : 한 페이지당 게시되는 게시물 건 수 + * pageSize : 페이지 리스트에 게시되는 페이지 건수, + * totalRecordCount : 전체 게시물 건 수. + */ + + private int currentPageNo; + private int recordCountPerPage; + private int pageSize; + private int totalRecordCount; + + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getCurrentPageNo() { + return currentPageNo; + } + + public void setCurrentPageNo(int currentPageNo) { + this.currentPageNo = currentPageNo; + } + + public void setTotalRecordCount(int totalRecordCount) { + this.totalRecordCount = totalRecordCount; + } + + public int getTotalRecordCount() { + return totalRecordCount; + } + + /** + * Not Required Fields + * - 이 필드들은 Required Fields 값을 바탕으로 계산해서 정해지는 필드 값이다. + * + * totalPageCount: 페이지 개수 + * firstPageNoOnPageList : 페이지 리스트의 첫 페이지 번호 + * lastPageNoOnPageList : 페이지 리스트의 마지막 페이지 번호 + * firstRecordIndex : 페이징 SQL의 조건절에 사용되는 시작 rownum. + * lastRecordIndex : 페이징 SQL의 조건절에 사용되는 마지막 rownum. + */ + + private int totalPageCount; + private int firstPageNoOnPageList; + private int lastPageNoOnPageList; + private int firstRecordIndex; + private int lastRecordIndex; + + public int getTotalPageCount() { + totalPageCount = ((getTotalRecordCount() - 1) / getRecordCountPerPage()) + 1; + return totalPageCount; + } + + public int getFirstPageNo() { + return 1; + } + + public int getLastPageNo() { + return getTotalPageCount(); + } + + public int getFirstPageNoOnPageList() { + firstPageNoOnPageList = ((getCurrentPageNo() - 1) / getPageSize()) * getPageSize() + 1; + return firstPageNoOnPageList; + } + + public int getLastPageNoOnPageList() { + lastPageNoOnPageList = getFirstPageNoOnPageList() + getPageSize() - 1; + if (lastPageNoOnPageList > getTotalPageCount()) { + lastPageNoOnPageList = getTotalPageCount(); + } + return lastPageNoOnPageList; + } + + public int getFirstRecordIndex() { + firstRecordIndex = (getCurrentPageNo() - 1) * getRecordCountPerPage(); + return firstRecordIndex; + } + + public int getLastRecordIndex() { + lastRecordIndex = getCurrentPageNo() * getRecordCountPerPage(); + return lastRecordIndex; + } +} diff --git a/src/main/java/geoinfo/com/database/HotDeployableMybatisSessionFactoryBean.java b/src/main/java/geoinfo/com/database/HotDeployableMybatisSessionFactoryBean.java new file mode 100644 index 0000000..eb2ecca --- /dev/null +++ b/src/main/java/geoinfo/com/database/HotDeployableMybatisSessionFactoryBean.java @@ -0,0 +1,198 @@ +package geoinfo.com.database; + +import java.io.IOException; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Timer; +import java.util.TimerTask; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantReadWriteLock; + +import org.apache.ibatis.session.SqlSessionFactory; +import org.mybatis.spring.SqlSessionFactoryBean; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.DisposableBean; +import org.springframework.core.io.Resource; + + +public class HotDeployableMybatisSessionFactoryBean extends SqlSessionFactoryBean implements DisposableBean { + + private static final Logger LOGGER = LoggerFactory.getLogger(HotDeployableMybatisSessionFactoryBean.class); + + private SqlSessionFactory proxy; + private int interval = 500; + private boolean running = false; + + private Timer timer; + private TimerTask task; + + private final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(); + private final Lock r = rwl.readLock(); + private final Lock w = rwl.writeLock(); + + public Resource[] mapperLocations; + + @Override + public void setMapperLocations(Resource[] mapperLocations) { + super.setMapperLocations(mapperLocations.clone()); + this.mapperLocations = mapperLocations.clone(); + } + + public void setInterval(int interval) { + this.interval = interval; + } + + public void refresh() throws Exception { + w.lock(); + + try { + super.afterPropertiesSet(); + + } finally { + w.unlock(); + } + + LOGGER.debug("Mybatis Mapper File Reloaded!"); + } + + @Override + public void afterPropertiesSet() throws Exception { + super.afterPropertiesSet(); + + setRefreshable(); + } + + private void setRefreshable() { + proxy = (SqlSessionFactory) Proxy.newProxyInstance( + SqlSessionFactory.class.getClassLoader(), + new Class[]{SqlSessionFactory.class}, + new InvocationHandler() { + @Override + public Object invoke(Object proxy, Method method, + Object[] args) throws Throwable { + // log.debug("method.getName() : " + method.getName()); + return method.invoke(getParentObject(), args); + } + }); + + task = new TimerTask() { + private final Map map = new HashMap(); + + @Override + public void run() { + if (isModified()) { + try { + refresh(); + } catch (Exception e) { + if (LOGGER.isDebugEnabled()) { + LOGGER.error("Refresh Error Exception", e); + } else { + LOGGER.error("Refresh Error Exception"); + } + } + } + } + + private boolean isModified() { + boolean retVal = false; + + if (mapperLocations != null) { + for (int i = 0; i < mapperLocations.length; i++) { + Resource mappingLocation = mapperLocations[i]; + retVal |= findModifiedResource(mappingLocation); + } + } + + return retVal; + } + + private boolean findModifiedResource(Resource resource) { + boolean retVal = false; + List modifiedResources = new ArrayList(); + + try { + long modified = resource.lastModified(); + + if (map.containsKey(resource)) { + long lastModified = map.get(resource).longValue(); + + if (lastModified != modified) { + map.put(resource, new Long(modified)); + modifiedResources.add(resource.getDescription()); + retVal = true; + } + } else { + map.put(resource, new Long(modified)); + } + } catch (IOException e) { + LOGGER.debug("Exception: " + e.toString()); + //LOGGER.error("File Find Exception", e); + } + + if (retVal) { + LOGGER.debug("Mybatis Mapper File Changed: " + modifiedResources); + } + return retVal; + } + }; + + timer = new Timer(true); + resetInterval(); + + } + + private Object getParentObject() throws Exception { + r.lock(); + try { + return super.getObject(); + } finally { + r.unlock(); + } + } + + @Override + public SqlSessionFactory getObject() { + return this.proxy; + } + + @Override + public Class getObjectType() { + return (this.proxy != null ? this.proxy.getClass() : SqlSessionFactory.class); + } + + @Override + public boolean isSingleton() { + return true; + } + + public void setCheckInterval(int ms) { + interval = ms; + + if (timer != null) { + resetInterval(); + } + } + + private void resetInterval() { + if (running) { + timer.cancel(); + running = false; + } + if (interval > 0) { + timer.schedule(task, 0, interval); + running = true; + } + } + + @Override + public void destroy() { + timer.cancel(); + } + +} diff --git a/src/main/java/geoinfo/com/file/FileController.java b/src/main/java/geoinfo/com/file/FileController.java new file mode 100644 index 0000000..4261cf2 --- /dev/null +++ b/src/main/java/geoinfo/com/file/FileController.java @@ -0,0 +1,115 @@ +package geoinfo.com.file; + +import egovframework.com.cmm.service.EgovProperties; +import geoinfo.com.file.service.FileService; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.OutputStream; +import java.io.PrintWriter; +import java.net.URLEncoder; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.io.FilenameUtils; +import org.apache.log4j.Logger; +import org.springframework.stereotype.Controller; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +@Controller +public class FileController +{ + private static final Logger LOGGER = Logger.getLogger(FileController.class.getName()); + + @Resource(name = "fileService") + private FileService fileService; + + public String filePath = EgovProperties.getProperty("Geoinfo.FilePath"); + + // 파일 다운로드 + @RequestMapping(value = "file.do") + public void download(Map map, HttpServletResponse response, HttpServletRequest request, @RequestParam("stored_file_name") String stored_file_name, @RequestParam("target") String target, @RequestParam("idx") int idx) throws Exception + { + try{ + map.put("stored_file_name", stored_file_name); + map.put("target", target); + map.put("board_idx", idx); + Map result = null; + + result = fileService.selectFileInfo(map); + + if (result != null) + { + String storedFileName = (String) result.get("STORED_FILE_NAME"); + String originalFileName = (String) result.get("ORIGINAL_FILE_NAME"); + +// System.out.println(filePath + storedFileName); + + File file = new File(request.getRealPath("/files")+"/" + FilenameUtils.getName(storedFileName)); + if (file.exists()) + { + FileInputStream fis = new FileInputStream(file); +// BufferedInputStream bis = new BufferedInputStream(fis); + byte[] buffer = new byte[(int)file.length()]; + + //byte fileByte[] = FileUtils.readFileToByteArray(file); + + response.setContentType("application/download; charset=utf-8"); + response.setContentLength(buffer.length); + response.setHeader("Content-Disposition", "attachment; fileName=\"" + URLEncoder.encode(originalFileName, "UTF-8") + "\";"); + response.setHeader("Content-Transfer-Encoding", "binary"); + + OutputStream out = response.getOutputStream(); + + try { + FileCopyUtils.copy(fis, out); + } finally { + if(fis != null) { + try { + fis.close(); + } catch(IOException ioe) { + LOGGER.error(ioe); + } + } + } + out.flush(); + fis.close(); + +// response.getOutputStream().write(buffer); +// +// response.getOutputStream().flush(); +// response.getOutputStream().close(); + } + else + { + response.setCharacterEncoding("euc-kr"); + PrintWriter writer = response.getWriter(); + writer.println(""); + writer.flush(); + } + } + else + { + response.setCharacterEncoding("euc-kr"); + PrintWriter writer = response.getWriter(); + writer.println(""); + writer.flush(); + } + }catch(FileNotFoundException ex){ + LOGGER.error(ex); + } + } +} diff --git a/src/main/java/geoinfo/com/file/service/FileMapper.java b/src/main/java/geoinfo/com/file/service/FileMapper.java new file mode 100644 index 0000000..216d570 --- /dev/null +++ b/src/main/java/geoinfo/com/file/service/FileMapper.java @@ -0,0 +1,19 @@ +package geoinfo.com.file.service; + +import java.util.List; +import java.util.Map; + +import egovframework.rte.psl.dataaccess.mapper.Mapper; + +@Mapper("fileMapper") +public interface FileMapper { + + public Map selectFileInfo(Map map) throws Exception; + + public void insertFile(Map map) throws Exception; + + public List> selectFiles(Map map) throws Exception; + + public void deleteFiles(Map map) throws Exception; + +} diff --git a/src/main/java/geoinfo/com/file/service/FileService.java b/src/main/java/geoinfo/com/file/service/FileService.java new file mode 100644 index 0000000..c49c8f8 --- /dev/null +++ b/src/main/java/geoinfo/com/file/service/FileService.java @@ -0,0 +1,16 @@ +package geoinfo.com.file.service; + +import java.util.List; +import java.util.Map; + + +public interface FileService { + + Map selectFileInfo(Map map) throws Exception; + + void insertFile(Map map) throws Exception; + + List> selectFiles(Map map) throws Exception; + + void deleteFiles(Map map) throws Exception; +} diff --git a/src/main/java/geoinfo/com/file/service/impl/FileServiceImpl.java b/src/main/java/geoinfo/com/file/service/impl/FileServiceImpl.java new file mode 100644 index 0000000..e121478 --- /dev/null +++ b/src/main/java/geoinfo/com/file/service/impl/FileServiceImpl.java @@ -0,0 +1,42 @@ +package geoinfo.com.file.service.impl; + +import geoinfo.com.file.service.FileMapper; +import geoinfo.com.file.service.FileService; + +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +@Service("fileService") +public class FileServiceImpl implements FileService{ + + @Resource(name="fileMapper") + private FileMapper fileMapper; + + @Override + public Map selectFileInfo(Map map) throws Exception + { + return fileMapper.selectFileInfo(map); + } + + @Override + public void insertFile(Map map) throws Exception + { + fileMapper.insertFile(map); + } + + @Override + public void deleteFiles(Map map) throws Exception + { + fileMapper.deleteFiles(map); + } + + @Override + public List> selectFiles(Map map) throws Exception { + return fileMapper.selectFiles(map); + } + +} diff --git a/src/main/java/geoinfo/com/jackson/JacksonNullSerializer.java b/src/main/java/geoinfo/com/jackson/JacksonNullSerializer.java new file mode 100644 index 0000000..be5f8e3 --- /dev/null +++ b/src/main/java/geoinfo/com/jackson/JacksonNullSerializer.java @@ -0,0 +1,18 @@ +package geoinfo.com.jackson; + +import java.io.IOException; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +public class JacksonNullSerializer extends JsonSerializer{ + + @Override + public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { + if (value == null) jgen.writeString(""); + } + +} + diff --git a/src/main/java/geoinfo/com/jackson/JacksonObjectMapper.java b/src/main/java/geoinfo/com/jackson/JacksonObjectMapper.java new file mode 100644 index 0000000..ea371f0 --- /dev/null +++ b/src/main/java/geoinfo/com/jackson/JacksonObjectMapper.java @@ -0,0 +1,16 @@ +package geoinfo.com.jackson; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.DefaultSerializerProvider; + +public class JacksonObjectMapper extends ObjectMapper{ + + private static final long serialVersionUID = 1L; + + public JacksonObjectMapper(){ + SerializerProvider sp = this.getSerializerProvider(); + sp.setNullValueSerializer(new JacksonNullSerializer()); + this.setSerializerProvider((DefaultSerializerProvider) sp); + } +} \ No newline at end of file diff --git a/src/main/java/geoinfo/comm/util/DllTest.java b/src/main/java/geoinfo/comm/util/DllTest.java new file mode 100644 index 0000000..7769efb --- /dev/null +++ b/src/main/java/geoinfo/comm/util/DllTest.java @@ -0,0 +1,18 @@ +package geoinfo.comm.util; + +public class DllTest { + + /** + * @param args + */ + public void dllLoad() { + // TODO Auto-generated method stub + System.load("C:/Inetpub/wwwroot/GEOINFO/Server/XWebMapServer.dll"); + //System.loadLibrary("XWebMapServer.dll"); + } + + public void test() { + //System.out.println("asdfadsf"); + } + +} diff --git a/src/main/java/geoinfo/comm/util/Ellip2Ellipsoid.java b/src/main/java/geoinfo/comm/util/Ellip2Ellipsoid.java new file mode 100644 index 0000000..3f7d8f9 --- /dev/null +++ b/src/main/java/geoinfo/comm/util/Ellip2Ellipsoid.java @@ -0,0 +1,106 @@ +/* + * Ellip2Ellipsoid�� Ÿ��ü���� ������ ��ǥ�踦 ��ȯ�ϱ� ���� ���¼ҽ� ���̺귯���Դϴ�. + * 7 �Ķ���͸� ����Ͽ� Ÿ��ü���� ������ ��ǥ�� ��ȯ�մϴ�. + * + * 2011/09/16 ó�� ���������� ���� 1.0�Դϴ�. + * + * ���۱� (C) 2011 ��������(GeoService) + * + * �� ���̺귯���� ���� ����Ʈ�����Դϴ�. + * GNU LGPL�� ���� �������� �� ������/�ְų� ������ �� �ֽ��ϴ�. + * �� ����Ʈ��� ����Կ� �־� �߻��ϴ� ������ å������ �ʽ��ϴ�. + * + * ���� �ڼ��� ������ ���ؼ��� ���� ����ó�� ���� �����Ͻñ� �ٶ��ϴ�. + * + * �� �� �� hjkim@geoservice.co.kr + * �� �� �� www.gisdeveloper.co.kr + * Ȩ������ www.geoservice.co.kr + * + * �����մϴ�. + */ + +package geoinfo.comm.util; + +public class Ellip2Ellipsoid { + private static double degrad = Math.atan(1.0) / 45.0; + private Ellipsoid srcEllipse; + private Ellipsoid dstEllipse; + private Parameters7 params; + + public Ellip2Ellipsoid(Ellipsoid srcEllipse, Ellipsoid dstEllipse, Parameters7 params) { + this.srcEllipse = srcEllipse; + this.dstEllipse = dstEllipse; + this.params = params; + } + + public void transfom(Values3 src, Values3 dst) { + Values3 in = new Values3(src); + + LatLong2Geocentric(in, dst, srcEllipse); + params.transform(dst, in); + Geocentric2LatLong(in, dst, dstEllipse); + } + + public void reverseTransform(Values3 src, Values3 dst) { + Values3 in = new Values3(src); + + LatLong2Geocentric(in, dst, dstEllipse); + params.reverseTransfom(dst, in); + Geocentric2LatLong(in, dst, srcEllipse); + } + + // ������(src:����, �浵, ����)�� ������ǥ(dst)�� ��ȯ + private void LatLong2Geocentric(Values3 src, Values3 dst, Ellipsoid ellipse) { + double sphi, slam, recf, b, es, n, f; + + f = ellipse.f; + sphi = src.V1 * degrad; + slam = src.V2 * degrad; + recf = 1.0 / f; + b = ellipse.a * (recf - 1.0) / recf; + es = (ellipse.a*ellipse.a - b*b) / (ellipse.a*ellipse.a); + + n = ellipse.a / Math.sqrt(1.0 - es * Math.sin(sphi)*Math.sin(sphi)); + + dst.V1 = (n + src.V3) * Math.cos(sphi) * Math.cos(slam); + dst.V2 = (n + src.V3) * Math.cos(sphi) * Math.sin(slam); + dst.V3 = (((b*b) / (ellipse.a*ellipse.a)) * n + src.V3) * Math.sin(sphi); + } + + // ������ǥ(dst)�� ������(src:����, �浵, ����)�� ��ȯ + private void Geocentric2LatLong(Values3 src, Values3 dst, Ellipsoid ellipse) { + double sphiold, sphinew, slam, recf, b, es, n, p, t1, f; + int icount; + + f = ellipse.f; + recf = 1.0 / f; + b = ellipse.a * (recf - 1.0) / recf; + es = (ellipse.a*ellipse.a - b*b) / (ellipse.a*ellipse.a); + + slam = Math.atan(src.V2 / src.V1); + p = Math.sqrt(src.V1*src.V1 + src.V2*src.V2); + + n = ellipse.a; + dst.V3 = 0.0; + sphiold = 0.0; + icount = 0; + do { + icount++; + t1 = Math.pow(((b*b) / (ellipse.a*ellipse.a) * n + dst.V3), 2.0) - (src.V3*src.V3); + t1 = src.V3 / Math.sqrt(t1); + sphinew = Math.atan(t1); + + if(Math.abs(sphinew - sphiold) < 1E-18) break; + + n = ellipse.a / Math.sqrt(1.0 - es * Math.pow(Math.sin(sphinew), 2.0)); + dst.V3 = p / Math.cos(sphinew) - n; + sphiold = sphinew; + } while(icount < 500); + + dst.V1 = sphinew / degrad; + dst.V2 = slam / degrad; + + if(src.V1 < 0.0) dst.V2 = 180.0 + dst.V2; + if(dst.V2 < 0.0) dst.V2 = 360.0 + dst.V2; + } +} diff --git a/src/main/java/geoinfo/comm/util/Ellipsoid.java b/src/main/java/geoinfo/comm/util/Ellipsoid.java new file mode 100644 index 0000000..a671740 --- /dev/null +++ b/src/main/java/geoinfo/comm/util/Ellipsoid.java @@ -0,0 +1,32 @@ +/* + * Ellip2Ellipsoid�� Ÿ��ü���� ������ ��ǥ�踦 ��ȯ�ϱ� ���� ���¼ҽ� ���̺귯���Դϴ�. + * 7 �Ķ���͸� ����Ͽ� Ÿ��ü���� ������ ��ǥ�� ��ȯ�մϴ�. + * + * 2011/09/16 ó�� ���������� ���� 1.0�Դϴ�. + * + * ���۱� (C) 2011 ��������(GeoService) + * + * �� ���̺귯���� ���� ����Ʈ�����Դϴ�. + * GNU LGPL�� ���� �������� �� ������/�ְų� ������ �� �ֽ��ϴ�. + * �� ����Ʈ��� ����Կ� �־� �߻��ϴ� ������ å������ �ʽ��ϴ�. + * + * ���� �ڼ��� ������ ���ؼ��� ���� ����ó�� ���� �����Ͻñ� �ٶ��ϴ�. + * + * �� �� �� hjkim@geoservice.co.kr + * �� �� �� www.gisdeveloper.co.kr + * Ȩ������ www.geoservice.co.kr + * + * �����մϴ�. + */ + +package geoinfo.comm.util; + +public class Ellipsoid { + double a; // ��ݰ� + double f; // ���� = (��ݰ�-�ܹݰ�) / ��ݰ� + + public Ellipsoid(double a, double f) { + this.a = a; + this.f = f; + } +} diff --git a/src/main/java/geoinfo/comm/util/FileUtil.java b/src/main/java/geoinfo/comm/util/FileUtil.java new file mode 100644 index 0000000..461bfd5 --- /dev/null +++ b/src/main/java/geoinfo/comm/util/FileUtil.java @@ -0,0 +1,56 @@ +package geoinfo.comm.util; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; + +import org.springframework.web.multipart.MultipartFile; + +public class FileUtil { + + private static final int BUFF_SIZE = 2048; + + /** + * 파일 업로드 + * @param file 업로드 파일 + * @param newName 파일명 + * @param stordFilePath 파일경로 + */ + public static void writeUploadedFile(MultipartFile file, String newName, String savePath) throws Exception{ + InputStream stream = null; + OutputStream bos = null; + + stream = file.getInputStream(); + File cFile = new File(savePath); + + if (!cFile.isDirectory()) { + boolean _flag = cFile.mkdir(); + if(_flag) throw new IOException("Directory creation Failed "); + } + + bos = new FileOutputStream(savePath + newName); + + int bytesRead = 0; + byte[] buffer = new byte[BUFF_SIZE]; + + while ((bytesRead = stream.read(buffer, 0, BUFF_SIZE)) != -1) { + bos.write(buffer, 0, bytesRead); + } + + if (bos != null) { try { bos.close(); } catch (Exception ignore) { } } + if (stream != null) { try { stream.close(); } catch (Exception ignore) { } } + } + + /** + * 파일 삭제 + * @param savePath 파일저장경로 + * @param fileName 파일명 + */ + public static void deleteFile(String savePath, String fileName) throws Exception{ + File file = new File(savePath + fileName); + if(file.exists()) file.delete(); + } + +} diff --git a/src/main/java/geoinfo/comm/util/HangulEncode.java b/src/main/java/geoinfo/comm/util/HangulEncode.java new file mode 100644 index 0000000..436dd39 --- /dev/null +++ b/src/main/java/geoinfo/comm/util/HangulEncode.java @@ -0,0 +1,34 @@ +package geoinfo.comm.util; + +import java.io.UnsupportedEncodingException; + +import org.apache.log4j.Logger; + +public class HangulEncode { + + private static final Logger LOGGER = Logger.getLogger(HangulEncode.class.getName()); + + public static String to8859_1(String s) { + try { + if (s == null) + return null; + return new String(s.getBytes("KSC5601"), "8859_1"); + } catch (UnsupportedEncodingException exception) { + LOGGER.error(exception); + //System.out.println(exception.getMessage()); + } + return s; + } + + public static String toKSC5601(String s) { + try { + if (s == null) + return null; + return new String(s.getBytes("8859_1"), "KSC5601"); + } catch (UnsupportedEncodingException exception) { + LOGGER.error(exception); + //System.out.println(exception.getMessage()); + } + return s; + } +} \ No newline at end of file diff --git a/src/main/java/geoinfo/comm/util/Parameters7.java b/src/main/java/geoinfo/comm/util/Parameters7.java new file mode 100644 index 0000000..b019622 --- /dev/null +++ b/src/main/java/geoinfo/comm/util/Parameters7.java @@ -0,0 +1,71 @@ +/* + * Ellip2Ellipsoid�� Ÿ��ü���� ������ ��ǥ�踦 ��ȯ�ϱ� ���� ���¼ҽ� ���̺귯���Դϴ�. + * 7 �Ķ���͸� ����Ͽ� Ÿ��ü���� ������ ��ǥ�� ��ȯ�մϴ�. + * + * 2011/09/16 ó�� ���������� ���� 1.0�Դϴ�. + * + * ���۱� (C) 2011 ��������(GeoService) + * + * �� ���̺귯���� ���� ����Ʈ�����Դϴ�. + * GNU LGPL�� ���� �������� �� ������/�ְų� ������ �� �ֽ��ϴ�. + * �� ����Ʈ��� ����Կ� �־� �߻��ϴ� ������ å������ �ʽ��ϴ�. + * + * ���� �ڼ��� ������ ���ؼ��� ���� ����ó�� ���� �����Ͻñ� �ٶ��ϴ�. + * + * �� �� �� hjkim@geoservice.co.kr + * �� �� �� www.gisdeveloper.co.kr + * Ȩ������ www.geoservice.co.kr + * + * �����մϴ�. + */ + +package geoinfo.comm.util; + +// 7 �Ķ���͸� �̿��� ������ǥ�谣�� ��ȯ +public class Parameters7 { + public double tX; // ��ǥ�谣 X�� ������ �̵���(meter) + public double tY; // ��ǥ�谣 Y�� ������ �̵���(meter) + public double tZ; // ��ǥ�谣 Z�� ������ �̵���(meter) + public double tOmega; // ��ǥ�谣�� X���� ȸ����(sec) + public double tPhi; // ��ǥ�谣�� Y���� ȸ����(sec) + public double tKappa; // ��ǥ�谣�� Z���� ȸ����(sec) + public double tScale; // ������ ��� + + public Parameters7(double tX, double tY, double tZ, double tOmega, double tPhi, double tKappa, double tScale) { + setParameters(tX, tY, tZ, tOmega, tPhi, tKappa, tScale); + } + + public void setParameters(double tX, double tY, double tZ, double tOmega, double tPhi, double tKappa, double tScale) { + double degrad; + degrad = Math.atan(1.0) / 45.0; + + this.tX = tX; + this.tY = tY; + this.tZ = tZ; + this.tOmega = tOmega / 3600.0 * degrad; + this.tPhi = tPhi / 3600.0 * degrad; + this.tKappa = tKappa / 3600.0 * degrad; + this.tScale = tScale * 0.000001; + } + + public void transform(Values3 src, Values3 dst) { + double scale = 1.0 + tScale; + + dst.V1 = src.V1 + scale * (tKappa * src.V2 - tPhi * src.V3) + tX; + dst.V2 = src.V2 + scale * (-tKappa * src.V1 + tOmega * src.V3) + tY; + dst.V3 = src.V3 + scale * (tPhi * src.V1 - tOmega * src.V2) + tZ; + } + + public void reverseTransfom(Values3 src, Values3 dst) { + double xt, yt, zt; + + xt = (src.V1 - tX) * (1.0 + tScale); + yt = (src.V2 - tY) * (1.0 + tScale); + zt = (src.V3 - tZ) * (1.0 + tScale); + + dst.V1 = 1.0 / (1 + tScale) * (xt - tKappa * yt + tPhi * zt); + dst.V2 = 1.0 / (1 + tScale) * (tKappa * xt + yt - tOmega * zt); + dst.V3 = 1.0 / (1 + tScale) * (-tPhi * xt + tOmega * yt + zt); + } + +} diff --git a/src/main/java/geoinfo/comm/util/ScriptUtil.java b/src/main/java/geoinfo/comm/util/ScriptUtil.java new file mode 100644 index 0000000..31ea796 --- /dev/null +++ b/src/main/java/geoinfo/comm/util/ScriptUtil.java @@ -0,0 +1,102 @@ +package geoinfo.comm.util; + +import java.io.PrintWriter; +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.logging.Level; +import java.util.logging.Logger; +import javax.servlet.http.HttpServletResponse; + + +public class ScriptUtil { + + private static final String _jsStartTag = ""; + private static final String _contentType = "text/html;charset=utf-8"; + + /** + * 메시지 창 출력 후 지정한 경로로 이동 + * @param message 메시지 + * @param locationHref 이동경로 + */ + public static void doAlertToLocation(HttpServletResponse response , String message , String locationHref) throws Exception{ + StringBuffer sb = new StringBuffer(1024); + sb.append("alert('"+strToAlert(message)+"');"); + sb.append("location.href = '"+locationHref+"';"); + pDoPrintWriteFlush(response, sb.toString()); + } + + /** + * 메시지 창 출력 후 팝업 창 종료, 부모창 지정한 경로로 이동 + * @param message 메시지 + * @param locationHref 이동경로 + */ + public static void doAlertToOpenerLocation(HttpServletResponse response , String message , String locationHref) throws Exception{ + StringBuffer sb = new StringBuffer(1024); + sb.append("alert('"+strToAlert(message)+"');"); + sb.append("opener.location.href = '"+locationHref+"';"); + sb.append("window.close();"); + pDoPrintWriteFlush(response, sb.toString()); + } + + /** + * 메시지 창 출력 후 팝업 창 종료 + * @param message 메시지 + */ + public static void doAlertWindowClose(HttpServletResponse response, String message) throws Exception{ + StringBuffer sb = new StringBuffer(1024); + sb.append("alert('"+strToAlert(message)+"');"); + sb.append("window.close();"); + pDoPrintWriteFlush(response, sb.toString()); + } + + /** + * 메시지 창 출력 후 전화면으로 이동 + * @param message 메시지 + */ + public static void doAlertHistoryBack(HttpServletResponse response, String message) throws Exception{ + StringBuffer sb = new StringBuffer(1024); + sb.append("alert('"+strToAlert(message)+"');"); + sb.append("history.back();"); + pDoPrintWriteFlush(response, sb.toString()); + } + + private static void pDoPrintWriteFlush(HttpServletResponse response , String jsMessage) throws Exception{ + response.setContentType(_contentType); + PrintWriter out = response.getWriter(); + out.println(_jsStartTag); + out.println(jsMessage); + out.println(_jsEndTag); + out.flush(); + out.close(); + } + + private static String strToAlert(String alertMessage){ + alertMessage = alertMessage.replaceAll("'", "\\\\'"); + alertMessage = alertMessage.replaceAll("\n", "\\\\n"); + return alertMessage; + } + + public static String getSha256(String text, String encoding){ + String sha = ""; + try { + + MessageDigest digest = MessageDigest.getInstance("SHA-256"); + byte[] hash = digest.digest(text.getBytes(encoding)); + StringBuffer hexString = new StringBuffer(); + + for (int i = 0; i < hash.length; i++) { + String hex = Integer.toHexString(0xff & hash[i]); + if(hex.length() == 1) hexString.append('0'); + hexString.append(hex); + } + + sha = hexString.toString(); + + } catch (NoSuchAlgorithmException | UnsupportedEncodingException ex) { + System.out.println("getSha256"); + } + return sha; + } +} diff --git a/src/main/java/geoinfo/comm/util/Values3.java b/src/main/java/geoinfo/comm/util/Values3.java new file mode 100644 index 0000000..30ac08f --- /dev/null +++ b/src/main/java/geoinfo/comm/util/Values3.java @@ -0,0 +1,50 @@ +/* + * Ellip2Ellipsoid�� Ÿ��ü���� ������ ��ǥ�踦 ��ȯ�ϱ� ���� ���¼ҽ� ���̺귯���Դϴ�. + * 7 �Ķ���͸� ����Ͽ� Ÿ��ü���� ������ ��ǥ�� ��ȯ�մϴ�. + * + * 2011/09/16 ó�� ���������� ���� 1.0�Դϴ�. + * + * ���۱� (C) 2011 ��������(GeoService) + * + * �� ���̺귯���� ���� ����Ʈ�����Դϴ�. + * GNU LGPL�� ���� �������� �� ������/�ְų� ������ �� �ֽ��ϴ�. + * �� ����Ʈ��� ����Կ� �־� �߻��ϴ� ������ å������ �ʽ��ϴ�. + * + * ���� �ڼ��� ������ ���ؼ��� ���� ����ó�� ���� �����Ͻñ� �ٶ��ϴ�. + * + * �� �� �� hjkim@geoservice.co.kr + * �� �� �� www.gisdeveloper.co.kr + * Ȩ������ www.geoservice.co.kr + * + * �����մϴ�. + */ + +package geoinfo.comm.util; + +public class Values3 { + public Values3() { + V1 = 0.0; + V2 = 0.0; + V3 = 0.0; + } + + public Values3(Values3 v) { + V1 = v.V1; + V2 = v.V2; + V3 = v.V3; + } + + public Values3(double V1, double V2, double V3) { + this.V1 = V1; + this.V2 = V2; + this.V3 = V3; + } + + public String toString() { + return "(" + V1 + ", " + V2 + ", " + V3 + ")"; + } + + public double V1; + public double V2; + public double V3; +} diff --git a/src/main/java/geoinfo/comm/util/parseData.java b/src/main/java/geoinfo/comm/util/parseData.java new file mode 100644 index 0000000..085b56c --- /dev/null +++ b/src/main/java/geoinfo/comm/util/parseData.java @@ -0,0 +1,81 @@ +package geoinfo.comm.util; + +public class parseData { + + + + public String parseData(String val){ + if(val != null){ + val = val.replaceAll("<","<"); + val = val.replaceAll(">",">"); + val = val.replaceAll("&","&"); + } + + return val; + } + + public String inverseData(String val){ + val = val.replaceAll("<","<"); + val = val.replaceAll(">",">"); + val = val.replaceAll("&","&"); + + return val; + } + + public String strReplace(String value){ + //value=value.replaceAll("&","&"); + value=value.replaceAll("<","<"); + value=value.replaceAll(">","&"); + value=value.replaceAll("%00",null); + value=value.replaceAll("\"","""); + value=value.replaceAll("\'","'"); + value=value.replaceAll("%",""); + value=value.replaceAll("../",""); + value=value.replaceAll("..\\\\",""); + value=value.replaceAll("./",""); + value=value.replaceAll("%2F",""); + value=value.replaceAll("SELECT",""); + value=value.replaceAll("FROM",""); + value=value.replaceAll("WHERE",""); + value=value.replaceAll("OR",""); + value=value.replaceAll("FROM",""); + value=value.replaceAll("WHERE",""); + value=value.replaceAll("AND",""); + value=value.replaceAll("CHAR",""); + value=value.replaceAll("select",""); + value=value.replaceAll("from",""); + value=value.replaceAll("where",""); + value=value.replaceAll("char",""); + value=value.replaceAll("int",""); + value=value.replaceAll("style",""); + value=value.replaceAll("script",""); + value=value.replaceAll("alert",""); + value=value.replaceAll("'","\'"); + value=value.replaceAll("1=1",""); + return value.toString(); + } + public String searchStrReNll(String value) { + if(value == null || ("").equals(value)) { + value=value.replaceAll("<",""); + value=value.replaceAll(">",""); + value=value.replaceAll("\"",""); + value=value.replaceAll("\'",""); + value=value.replaceAll("%",""); + value=value.replaceAll("../",""); + value=value.replaceAll("..\\\\",""); + value=value.replaceAll("./",""); + value=value.replaceAll("/",""); + value=value.replaceAll("'",""); + value=value.replaceAll("\\(",""); + value=value.replaceAll("\\)",""); + value=value.replaceAll("-",""); + value=value.replaceAll("=",""); + } + + return value.toString(); + + } + + + +} diff --git a/src/main/java/geoinfo/comm/util/strUtil.java b/src/main/java/geoinfo/comm/util/strUtil.java new file mode 100644 index 0000000..c26419a --- /dev/null +++ b/src/main/java/geoinfo/comm/util/strUtil.java @@ -0,0 +1,189 @@ +package geoinfo.comm.util; + +import java.io.UnsupportedEncodingException; +import java.util.StringTokenizer; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.log4j.Logger; + +public class strUtil { + private static final String[] NULL_DIRTYINSTANCE_ARRAY = new String[0]; + private static final Logger LOGGER = Logger.getLogger(strUtil.class.getName()); + + public void strUtil() { + } + + public String fixLength(String s, int i, String s1) { + String s2 = ""; + if (s.length() > i) + s2 = s.substring(0, i) + s1; + else + s2 = s; + return s2; + } + + public String removeXSS(String value) { + value = value.replaceAll("&", "&"); + value = value.replaceAll("<", "<"); + value = value.replaceAll(">", "&"); + value = value.replaceAll("%00", null); + value = value.replaceAll("\"", """); + value = value.replaceAll("'", "'"); + value = value.replaceAll("%", "%"); + value = value.replaceAll("../", ""); + value = value.replaceAll("..\\\\", ""); + value = value.replaceAll("./", ""); + value = value.replaceAll("%2F", ""); + return value; + } + + public boolean isStringDouble(String s) { + try { + Double.parseDouble(s); + return true; + } catch (NumberFormatException e) { + LOGGER.error(e); + //System.out.println(e.getMessage()); + } + return false; + } + + public String checkNull(String s) { + if (s == null) + s = ""; + else + s = s.trim(); + return s; + } + + public String getParam(HttpServletRequest httpservletrequest, String s) { + if (s == null) { + return ""; + } + return s.trim(); + } + + public boolean getParamValues(HttpServletRequest httpservletrequest, String s) { + return (s != null); + } + + public String isText(HttpServletRequest httpservletrequest, String s) { + return getParam(httpservletrequest, s); + } + + public String Null_String(String s) { + if (s == null) { + return ""; + } + return s; + } + + public String[] MakeActCode(String s, String s1, String s2, String s3) { + if (s == null) + return NULL_DIRTYINSTANCE_ARRAY; + if (s2 == null) { + String[] as = new String[1]; + as[0] = s + "-" + s1; + return as; + } + if (s3 == null) { + String[] as1 = new String[2]; + as1[0] = s + "-" + s1; + as1[1] = s + "-" + s1 + "-" + s2; + return as1; + } + + String[] as2 = new String[3]; + as2[0] = s + "-" + s1; + as2[1] = s + "-" + s1 + "-" + s2; + as2[2] = s + "-" + s1 + "-" + s2 + "-" + s3; + return as2; + } + + public String Null_Value(String s) { + if ((s == null) || (s.trim().equals(""))) { + return "0"; + } + return s; + } + + public String Dis_String(String s, String s1, int i) { + if ((s == null) || ("").equals(s)) + return ""; + if (i == 0) { + return s.substring(0, s.indexOf(s1)); + } + return s.substring(s.indexOf(s1) + 1); + } + + public String intToString(int i, int j) { + String s = ""; + for (int k = 0; k < j; ++k) { + if ((i < Math.pow(10.0D, k)) || (i >= Math.pow(10.0D, k + 1))) + continue; + for (int l = 0; l < j - 1 - k; ++l) { + s = s + "0"; + } + return s + Integer.toString(i); + } + + return ""; + } + + public String StringToken(String s, String s1) { + String s2 = ""; + for (StringTokenizer stringtokenizer = new StringTokenizer(s, s1); stringtokenizer.hasMoreTokens();) { + s2 = s2 + stringtokenizer.nextToken(); + } + return s2; + } + + public float F_round(float f, int i) { + String s = Float.toString(f); + int j = s.indexOf("."); + if (s.substring(j + 1).length() > i) { + String s1 = s.substring(0, j + i).trim(); + int k = Integer.parseInt(s.substring(j + i, j + i + 1).trim()); + int l = Integer.parseInt(s.substring(j + i + 1, j + i + 2)); + if (l > 4) { + return new Float(s1 + Integer.toString(k + 1)).floatValue(); + } + return new Float(s1 + Integer.toString(k)).floatValue(); + } + + return f; + } + + public String toAscii(String s) { + String s1 = null; + try { + s1 = new String(s.getBytes("EUC_KR"), "Cp1252"); + } catch (UnsupportedEncodingException localUnsupportedEncodingException) { + LOGGER.error(localUnsupportedEncodingException); + } + return s1; + } + + public void D_MaxMin(double[] ad, double[] ad1, double[] ad2) { + double d = 0.0D; + double d1 = 0.0D; + for (int i = 0; i < ad.length; ++i) { + if (i == 0) { + d = ad[i]; + d1 = ad[i]; + } else { + if (d > ad[i]) + d = d; + else + d = ad[i]; + if (d1 < ad[i]) + d1 = d1; + else + d1 = ad[i]; + } + } + ad1[0] = d; + ad2[0] = d1; + } +} \ No newline at end of file diff --git a/src/main/java/geoinfo/session/UserInfo.java b/src/main/java/geoinfo/session/UserInfo.java new file mode 100644 index 0000000..6574c6b --- /dev/null +++ b/src/main/java/geoinfo/session/UserInfo.java @@ -0,0 +1,124 @@ +package geoinfo.session; + +import java.io.IOException; +import java.io.Serializable; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.apache.log4j.Logger; + +public class UserInfo implements Serializable { + private static final Logger LOGGER = Logger.getLogger(UserInfo.class.getName()); +// private static String ErrorPage = "/Error.jsp?ERR_CODE=SESSION_OUT"; + private String id; + private String name; + private String mode; + private String flag; + + public static boolean isValidSession(HttpServletRequest request, + HttpServletResponse response, String source) throws IOException { + String errMsg = "INVALID_SESSION"; + if ("CYBER".equals(source)) + errMsg = "CYBER_INVALID_SESSION"; + if (!(getSession(request, source))) { + response.sendRedirect("/Error.jsp?ERR_CODE=SESSION_OUT" + errMsg); + return false; + } + + return true; + } + + public static String getUserID(HttpServletRequest request, String source) { + HttpSession session = request.getSession(false); + String userID = session.getAttribute(source + ".userID").toString(); + return userID; + } + + public static String getUserName(HttpServletRequest request, String source) { + HttpSession session = request.getSession(false); + String userName = session.getAttribute(source + ".userName").toString(); + return userName; + } + + public static String getUserMasterCode(HttpServletRequest request, + String source) { + HttpSession session = request.getSession(false); + String masterCode = session.getAttribute(source + ".masterCode") + .toString(); + return masterCode; + } + + public static void outSession(HttpServletRequest request, String source) { + HttpSession session = request.getSession(false); + if (session == null) + return; + try { + session.removeAttribute(source + ".userID"); + session.removeAttribute(source + ".userName"); + session.removeAttribute(source + ".masterCode"); + } catch (IllegalStateException localIllegalStateException) { + LOGGER.error(localIllegalStateException); + } + } + + public static void setSession(HttpServletRequest request, String userID, String userName, String masterCode, String source) { + HttpSession session = request.getSession(false); + session = request.getSession(false); + session.setAttribute(source + ".userID", userID); + session.setAttribute(source + ".userName", userName); + session.setAttribute(source + ".masterCode", masterCode); + + //InetAddress ip = InetAddress.getLocalHost(); + //session.setAttribute(source + ".userIP", ip); // IP ߰ + + + //request.getHeader("User-Agent"); + + + //session.setAttribute(source + ".user-agent", masterCode); // + } + + public static boolean getSession(HttpServletRequest request, String source) { + boolean isLoginSuccess = false; + + HttpSession session = request.getSession(false); + if (((session != null) && (session.getAttribute(source + ".userID") != null)) || (session.getAttribute(source + ".userName") != null)) + isLoginSuccess = true; + + return isLoginSuccess; + } + + public void setFlag(String flag) { + this.flag = flag; + } + + public void setMode(String mode) { + this.mode = mode; + } + + public void setId(String id) { + this.id = id; + } + + public void setName(String name) { + this.name = name; + } + + public String getFlag() { + return this.flag; + } + + public String getMode() { + return this.mode; + } + + public String getId() { + return this.id; + } + + public String getName() { + return this.name; + } +} diff --git a/src/main/java/geoinfo/session/UserInfoYu.java b/src/main/java/geoinfo/session/UserInfoYu.java new file mode 100644 index 0000000..1154a59 --- /dev/null +++ b/src/main/java/geoinfo/session/UserInfoYu.java @@ -0,0 +1,83 @@ +package geoinfo.session; + +import java.io.Serializable; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +import org.apache.log4j.Logger; + +public class UserInfoYu implements Serializable { +// private static String ErrorPage = "/Error.jsp?menuId="; + private static final Logger LOGGER = Logger.getLogger(UserInfoYu.class.getName()); + +// public static boolean isValidSession(HttpServletRequest httpservletrequest, HttpServletResponse httpservletresponse, String s, String s1) +// throws IOException { +// if (!(getSession(httpservletrequest, s))) { +// httpservletresponse.sendRedirect(ErrorPage + s1); +// return false; +// } +// +// return true; +// } + + public static String getUserID(HttpServletRequest httpservletrequest, String s) { + HttpSession httpsession = httpservletrequest.getSession(false); + String s1 = httpsession.getAttribute(s + ".userID").toString(); + return s1; + } + + public static String getUserName(HttpServletRequest httpservletrequest, String s) { + HttpSession httpsession = httpservletrequest.getSession(false); + String s1 = httpsession.getAttribute(s + ".userName").toString(); + return s1; + } + + public static String getUserCls(HttpServletRequest httpservletrequest, String s) { + HttpSession httpsession = httpservletrequest.getSession(false); + String s1 = httpsession.getAttribute(s + ".userCls").toString(); + return s1; + } + + public static String getUserMasterCode(HttpServletRequest httpservletrequest, String s) { + HttpSession httpsession = httpservletrequest.getSession(false); + String s1 = httpsession.getAttribute(s + ".masterCode").toString(); + return s1; + } + + public static void outSession(HttpServletRequest httpservletrequest, String s) { + HttpSession httpsession = httpservletrequest.getSession(false); + if (httpsession == null) + return; + try { + httpsession.removeAttribute(s + ".userID"); + httpsession.removeAttribute(s + ".userName"); + httpsession.removeAttribute(s + ".userCls"); + httpsession.removeAttribute(s + ".masterCode"); + } catch (IllegalStateException localIllegalStateException) { + LOGGER.error(localIllegalStateException); + } + } + +// public static void setSession(HttpServletRequest httpservletrequest, String s, String s1, String s2, String s3, String s4) { +// HttpSession httpsession = httpservletrequest.getSession(false); +// httpsession = httpservletrequest.getSession(false); +// httpsession.setAttribute(s4 + ".userID", s); +// httpsession.setAttribute(s4 + ".userName", s1); +// httpsession.setAttribute(s4 + ".userCls", s2); +// httpsession.setAttribute(s4 + ".masterCode", s3); +// } + + public static boolean getSession(HttpServletRequest httpservletrequest, String s) { + boolean flag = false; +// try { + HttpSession httpsession = httpservletrequest.getSession(false); + if (((httpsession != null) && (httpsession.getAttribute(s + ".userID") != null)) || (httpsession.getAttribute(s + ".userName") != null)) { + flag = true; + } +// } catch (NullPointerException e) { +// e.getMessage(); +// } + return flag; + } +} \ No newline at end of file diff --git a/src/main/resources/config/context-common.xml b/src/main/resources/config/context-common.xml new file mode 100644 index 0000000..e0c6447 --- /dev/null +++ b/src/main/resources/config/context-common.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + classpath:/egovframework/message/com/message-common + + + + 60 + + + + + + + + + + + + + + + + + + + * + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/config/context-datasource.xml b/src/main/resources/config/context-datasource.xml new file mode 100644 index 0000000..6df1b8b --- /dev/null +++ b/src/main/resources/config/context-datasource.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/config/context-mybatis.xml b/src/main/resources/config/context-mybatis.xml new file mode 100644 index 0000000..9d1d23a --- /dev/null +++ b/src/main/resources/config/context-mybatis.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/config/context-properties.xml b/src/main/resources/config/context-properties.xml new file mode 100644 index 0000000..22b0d15 --- /dev/null +++ b/src/main/resources/config/context-properties.xml @@ -0,0 +1,28 @@ + + + + + + diff --git a/src/main/resources/config/context-transaction.xml b/src/main/resources/config/context-transaction.xml new file mode 100644 index 0000000..042ebfe --- /dev/null +++ b/src/main/resources/config/context-transaction.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + diff --git a/src/main/resources/config/sql-mapper-config.xml b/src/main/resources/config/sql-mapper-config.xml new file mode 100644 index 0000000..36a53ab --- /dev/null +++ b/src/main/resources/config/sql-mapper-config.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/egovProps/globals.properties b/src/main/resources/egovframework/egovProps/globals.properties new file mode 100644 index 0000000..673895d --- /dev/null +++ b/src/main/resources/egovframework/egovProps/globals.properties @@ -0,0 +1,29 @@ +############################################## +################### DB\uad00\ub828 ################### +############################################## + +# Oracle +Oracle.Driver=oracle.jdbc.driver.OracleDriver +#Oracle.Url=jdbc:oracle:thin:@1.234.21.200:7101:GIT +#Oracle.Url=jdbc:oracle:thin:@172.12.192.44:1521:orcl +#Oracle.Url=jdbc:oracle:thin:@218.232.234.162:1521:ORAGEO +#Oracle.Url=jdbc:oracle:thin:@192.168.0.71:1521:orcl + + + +#Oracle.Url=jdbc:oracle:thin:@192.168.0.29:1521:xe +#Oracle.Url=jdbc:oracle:thin:@192.168.0.8:3452:orcl +Oracle.Url=jdbc:oracle:thin:@118.219.150.34:1521:ORAGEODEV + +#Oracle.Url=jdbc:oracle:thin:@localhost:1521:xe +Oracle.ID=geoinfo +Oracle.Password=geoinfo +#Oracle.Password=!!kictgis1234 +#dbEncoding=KO16MSWIN949 + +############################################### +################### \ud30c\uc77c\uad00\ub828 ################### +############################################### + +Geoinfo.FilePath=D:\\app_geoinfo\\app\\eclipse\\workspace\\geoinfo_admin\\src\\main\\webapp\\files\\ +#Geoinfo.FilePath=D:\\gitaey\\geoinfo_eGov\\workspace\\geoinfo_eGov\\src\\main\\webapp\\files\\ \ No newline at end of file diff --git a/src/main/resources/egovframework/message/message-common.properties b/src/main/resources/egovframework/message/message-common.properties new file mode 100644 index 0000000..7457633 --- /dev/null +++ b/src/main/resources/egovframework/message/message-common.properties @@ -0,0 +1,296 @@ +fail.common.msg=\uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +fail.common.sql=sql \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! error code: {0}, error msg: {1} +info.nodata.msg=\ud574\ub2f9 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. + +#UI Common resource# +button.search=\uac80\uc0c9 +button.use=\uc0ac\uc6a9 +button.notUsed=\uc0ac\uc6a9\uc911\uc9c0 +button.inquire=\uc870\ud68c +button.update=\uc218\uc815 +button.create=\ub4f1\ub85d +button.delete=\uc0ad\uc81c +button.deleteDatabase=\uc644\uc804\uc0ad\uc81c +button.close=\ub2eb\uae30 +button.save=\uc800\uc7a5 +button.list=\ubaa9\ub85d +button.reset=\ucde8\uc18c +button.passwordUpdate=\uc554\ud638\ubcc0\uacbd +button.subscribe=\uac00\uc785\uc2e0\uccad +button.realname=\uc2e4\uba85\ud655\uc778 +button.moveToGpin=GPIN\uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.moveToIhidnum=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638 \uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.agree=\ub3d9\uc758 +button.disagree=\ube44\ub3d9\uc758 +button.possible = \uac00\ub2a5 +button.impossible = \ubd88\uac00\ub2a5 +button.qnaregist=Q&A\ub4f1\ub85d +button.cnsltregist=\uc0c1\ub2f4\ub4f1\ub85d +button.preview=\ubbf8\ub9ac\ubcf4\uae30 +button.next=\ub2e4\uc74c +button.add=\ubc14\ub85c\ucd94\uac00 +button.confirm=\ud655\uc778 + + +#UI Common Message# +common.save.msg=\uc800\uc7a5\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.regist.msg=\ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.delete.msg=\uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.update.msg=\uc218\uc815\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.nodata.msg=\uc790\ub8cc\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uac80\uc0c9\uc870\uac74\uc744 \uc120\ud0dd\ud574\uc8fc\uc138\uc694 +common.required.msg=(\uc740)\ub294 \ud544\uc218\uc785\ub825\ud56d\ubaa9\uc785\ub2c8\ub2e4. +common.acknowledgement.msg=\uc2b9\uc778\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.acknowledgementcancel.msg=\uc2b9\uc778\ucde8\uc18c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? + +success.common.select=\uc815\uc0c1\uc801\uc73c\ub85c \uc870\ud68c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.insert=\uc815\uc0c1\uc801\uc73c\ub85c \ub4f1\ub85d\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.update=\uc815\uc0c1\uc801\uc73c\ub85c \uc218\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.delete=\uc815\uc0c1\uc801\uc73c\ub85c \uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +success.request.msg = \uc694\uccad\ucc98\ub9ac\uac00 \uc131\uacf5\uc801\uc73c\ub85c \uc218\ud589\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +common.imposbl.fileupload = \ub354 \uc774\uc0c1 \ud30c\uc77c\uc744 \ucca8\ubd80\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +common.isConfmDe.msg=\uc2b9\uc778\uc77c\uc790\ub97c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4. + + +fail.common.insert = \uc0dd\uc131\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.update = \uc218\uc815\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete = \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete.upperMenuExist = \ucc38\uc870\ub418\ub294 \uba54\ub274\uac00 \uc788\uc5b4 \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.select = \uc870\ud68c\uc5d0 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +common.isExist.msg = \uc774\ubbf8 \uc874\uc7ac\ud558\uac70\ub098 \uacfc\uac70\uc5d0 \ub4f1\ub85d\uc774 \ub418\uc5c8\ub358 \uc0c1\ud0dc\uc785\ub2c8\ub2e4. +fail.common.login = \ub85c\uadf8\uc778 \uc815\ubcf4\uac00 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.common.idsearch = \uc544\uc774\ub514\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.common.pwsearch = \ube44\ubc00\ubc88\ud638\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.request.msg = \uc694\uccad\ucc98\ub9ac\ub97c \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. + +#UI User Message# +fail.user.passwordUpdate1=\ud604\uc7ac \ube44\ubc00\ubc88\ud638\uac00 \ub9de\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.passwordUpdate2=\ube44\ubc00\ubc88\ud638\uc640 \ube44\ubc00\ubc88\ud638 \ud655\uc778\uc774 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +info.user.rlnmCnfirm=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.connectFail=\uc2dc\uc2a4\ud15c \uc7a5\uc560\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.(\uc778\uc99d\uc11c\ubc84 \uc5f0\uacb0 \uc2e4\ud328) +info.user.rlnmPinCnfirm=\uacf5\uacf5 \uc544\uc774\ud540 \uc544\uc774\ub514\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + + +#UI Cop Message# +cop.extrlUser = \uc678\ubd80\uc0ac\uc6a9\uc790 +cop.intrlUser = \ub0b4\ubd80\uc0ac\uc6a9\uc790 +cop.private = \ube44\uacf5\uac1c +cop.public = \uacf5\uac1c + +cop.adbkNm = \uc8fc\uc18c\ub85d\uba85 +cop.othbcScope = \uacf5\uac1c\ubc94\uc704 +cop.company = \ud68c\uc0ac +cop.part = \ubd80\uc11c +cop.man = \uac1c\uc778 +cop.adbkUser = \uad6c\uc131\uc6d0 +cop.bbsNm = \uac8c\uc2dc\ud310\uba85 +cop.bbsIntrcn = \uac8c\uc2dc\ud310\uc18c\uac1c +cop.bbsTyCode = \uac8c\uc2dc\ud310 \uc720\ud615 +cop.bbsAttrbCode = \uac8c\uc2dc\ud310 \uc18d\uc131 +cop.replyPosblAt = \ub2f5\uc7a5\uac00\ub2a5\uc5ec\ubd80 +cop.fileAtchPosblAt = \ud30c\uc77c\ucca8\ubd80\uac00\ub2a5\uc5ec\ubd80 +cop.posblAtchFileNumber = \ucca8\ubd80\uac00\ub2a5\ud30c\uc77c \uc22b\uc790 +cop.tmplatId = \ud15c\ud50c\ub9bf \uc815\ubcf4 +cop.guestList.subject = \ubc29\uba85\ub85d \uac8c\uc2dc\uae00\uc785\ub2c8\ub2e4. +cop.nttSj = \uc81c\ubaa9 +cop.nttCn = \uae00\ub0b4\uc6a9 +cop.ntceBgnde = \uac8c\uc2dc\uc2dc\uc791\uc77c +cop.ntceEndde = \uac8c\uc2dc\uc885\ub8cc\uc77c +cop.ntcrNm = \uc791\uc131\uc790 +cop.password = \ud328\uc2a4\uc6cc\ub4dc +cop.atchFile = \ud30c\uc77c\ucca8\ubd80 +cop.guestList = \ubc29\uba85\ub85d +cop.guestListCn = \ubc29\uba85\ub85d \ub0b4\uc6a9 +cop.noticeTerm = \uac8c\uc2dc\uae30\uac04 +cop.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d +cop.cmmntyNm = \ucee4\ubba4\ub2c8\ud2f0\uba85 +cop.cmmntyIntrcn = \ucee4\ubba4\ub2c8\ud2f0 \uc18c\uac1c +cop.cmmntyMngr = \ucee4\ubba4\ub2c8\ud2f0 \uad00\ub9ac\uc790 +cop.clbOprtr = \ub3d9\ud638\ud68c \uc6b4\uc601\uc790 +cop.clbIntrcn = \ub3d9\ud638\ud68c \uc18c\uac1c +cop.clbNm = \ub3d9\ud638\ud68c \uba85 +cop.tmplatNm = \ud15c\ud50c\ub9bf\uba85 +cop.tmplatSeCode = \ud15c\ud50c\ub9bf \uad6c\ubd84 +cop.tmplatCours = \ud15c\ud50c\ub9bf\uacbd\ub85c +cop.useAt = \uc0ac\uc6a9\uc5ec\ubd80 +cop.ncrdNm = \uc774\ub984 +cop.cmpnyNm = \ud68c\uc0ac\uba85 +cop.deptNm = \ubd80\uc11c\uba85 +cop.ofcpsNm = \uc9c1\uc704 +cop.clsfNm = \uc9c1\uae09 +cop.emailAdres = \uc774\uba54\uc77c\uc8fc\uc18c +cop.telNo = \uc804\ud654\ubc88\ud638 +cop.mbtlNum = \ud734\ub300\ud3f0\ubc88\ud638 +cop.adres = \uc8fc\uc18c +cop.extrlUserAt = \uc678\ubd80\uc0ac\uc6a9\uc790\uc5ec\ubd80 +cop.publicAt = \uacf5\uac1c\uc5ec\ubd80 +cop.remark = \ube44\uace0 +cop.trgetNm = \ucee4\ubba4\ub2c8\ud2f0/\ub3d9\ud638\ud68c \uc815\ubcf4 +cop.preview = \ubbf8\ub9ac\ubcf4\uae30 + +cop.withdraw.msg=\ud0c8\ud1f4\ucc98\ub9ac \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.reregist.msg=\uc7ac\uac00\uc785 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.registmanager.msg=\uc6b4\uc601\uc9c4\uc73c\ub85c \ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.use.msg=\uc0ac\uc6a9 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.unuse.msg=\uc0ac\uc6a9\uc911\uc9c0 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.delete.confirm.msg=\uc0ac\uc6a9\uc911\uc9c0\ub97c \uc120\ud0dd\ud558\uc2e4 \uacbd\uc6b0 \ub2e4\uc2dc \uc0ac\uc6a9\uc73c\ub85c \ubcc0\uacbd\uc774 \ubd88\uac00\ub2a5\ud569\ub2c8\ub2e4. +cop.ing.msg=\uc2b9\uc778\uc694\uccad \uc911\uc785\ub2c8\ub2e4. +cop.request.msg=\uac00\uc785\uc2e0\uccad\uc774 \uc815\uc0c1\uc801\uc73c\ub85c \uc694\uccad\ub418\uc5c8\uc2b5\ub2c8\ub2e4 +cop.password.msg=\ud328\uc2a4\uc6cc\ub4dc\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624. +cop.password.not.same.msg=\ud328\uc2a4\uc6cc\ub4dc\uac00 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +cop.comment.wrterNm = \uc791\uc131\uc790 +cop.comment.commentCn = \ub0b4\uc6a9 +cop.comment.commentPassword = \ud328\uc2a4\uc6cc\ub4dc + +cop.satisfaction.wrterNm = \uc791\uc131\uc790 +cop.satisfaction.stsfdgCn = \ub0b4\uc6a9 +cop.satisfaction.stsfdg = \ub9cc\uc871\ub3c4 +cop.satisfaction.stsfdgPassword = \ud328\uc2a4\uc6cc\ub4dc + +cop.scrap.scrapNm = \uc2a4\ud06c\ub7a9\uba85 + +#UI USS Message# +uss.ion.noi.ntfcSj=\uc81c\ubaa9 +uss.ion.noi.ntfcCn=\ub0b4\uc6a9 +uss.ion.noi.ntfcDate=\uc54c\ub9bc\uc77c\uc790 +uss.ion.noi.ntfcTime=\uc54c\ub9bc\uc2dc\uac04 +uss.ion.noi.ntfcHH=\uc54c\ub9bc\uc2dc\uac04 +uss.ion.noi.ntfcMM=\uc54c\ub9bc\ubd84 +uss.ion.noi.bhNtfcIntrvl=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9 +uss.ion.noi.bhNtfcIntrvl.msg=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. +uss.ion.noi.alertNtfcTime=\uc54c\ub9bc\uc77c\uc790 \ubc0f \uc2dc\uac04\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +#UI COP Message# +cop.sms.trnsmitTelno=\ubc1c\uc2e0\uc804\ud654\ubc88\ud638 +cop.sms.trnsmitCn=\uc804\uc1a1\ub0b4\uc6a9 +cop.sms.recptnTelno=\uc218\uc2e0\uc804\ud654\ubc88\ud638 +cop.sms.send=\uc804\uc1a1 +cop.sms.addRecptn=\ucd94\uac00 +cop.sms.recptnTelno.msg=\uc218\uc2e0\uc804\ud654\ubc88\ud638 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. + +#UI sym.log Message# +sym.log.histSeCode = \uc774\ub825\uad6c\ubd84 +sym.log.sysNm = \uc2dc\uc2a4\ud15c\uba85 +sym.log.histCn = \uc774\ub825\ub0b4\uc6a9 +sym.log.atchFile = \ucca8\ubd80\ud30c\uc77c +sym.log.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d +sym.ems.receiver = \ubc1b\ub294\uc0ac\ub78c +sym.ems.title = \uc81c\ubaa9 +sym.ems.content = \ubc1c\uc2e0\ub0b4\uc6a9 + +#Vlidator Errors# +errors.prefix=
+errors.suffix=

+ +errors.required={0}\uc740(\ub294) \ud544\uc218 \uc785\ub825\uac12\uc785\ub2c8\ub2e4. +errors.minlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.maxlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.invalid={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uac12\uc785\ub2c8\ub2e4. +errors.minInteger={0}\uc740(\ub294) \uc720\ud6a8\ud55c \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4. 1 \uc774\uc0c1\uc758 \uac12\uc744 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.byte={0}\uc740(\ub294) byte\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.short={0}\uc740(\ub294) short\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.integer={0}\uc740(\ub294) \uc815\uc218 \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.long={0}\uc740(\ub294) long \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.float={0}\uc740(\ub294) \uc2e4\uc218 \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.double={0}\uc740(\ub294) double \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. + +errors.date={0}\uc740(\ub294) \ub0a0\uc9dc \uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.range={0}\uc740(\ub294) {1}\uacfc {2} \uc0ac\uc774\uc758 \uac12\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.creditcard={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc2e0\uc6a9\uce74\ub4dc \ubc88\ud638\uc785\ub2c8\ub2e4. +errors.email={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc774\uba54\uc77c \uc8fc\uc18c\uc785\ub2c8\ub2e4. + +errors.ihidnum=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\uc785\ub2c8\ub2e4. +errors.korean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc785\ub825\ud558\uc154\uc57c \ud569\ub2c8\ub2e4. +errors.ip=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 IP\uc8fc\uc18c\uc785\ub2c8\ub2e4. + +errors.password1={0}\uc740(\ub294) 8~20\uc790 \ub0b4\uc5d0\uc11c \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.password2={0}\uc740(\ub294) \ud55c\uae00,\ud2b9\uc218\ubb38\uc790,\ub744\uc5b4\uc4f0\uae30\ub294 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +errors.password3={0}\uc740(\ub294) \uc21c\ucc28\uc801\uc778 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.password4={0}\uc740(\ub294) \ubc18\ubcf5\ub418\ub294 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +errors.notKorean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +error.security.runtime.error = error +#Vlidator Errors- wordDicaryVO# +wordDicaryVO.wordNm=\uc6a9\uc5b4\uba85 +wordDicaryVO.engNm=\uc601\ubb38\uba85 +wordDicaryVO.wordDc=\uc6a9\uc5b4\uc124\uba85 +wordDicaryVO.synonm=\ub3d9\uc758\uc5b4 + +#Vlidator Errors- cnsltManageVO# +cnsltManageVO.cnsltSj=\uc0c1\ub2f4\uc81c\ubaa9 +cnsltManageVO.cnsltCn=\uc0c1\ub2f4\ub0b4\uc6a9 +cnsltManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638 +cnsltManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638 +cnsltManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638 +cnsltManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638 +cnsltManageVO.wrterNm=\uc791\uc131\uc790\uba85 +cnsltManageVO.managtCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- siteManageVO# +siteManageVO.siteNm=\uc0ac\uc774\ud2b8\uba85 +siteManageVO.siteUrl=\uc0ac\uc774\ud2b8 URL +siteManageVO.siteDc=\uc0ac\uc774\ud2b8\uc124\uba85 +siteManageVO.siteThemaClCode=\uc0ac\uc774\ud2b8\uc8fc\uc81c\ubd84\ub958 +siteManageVO.actvtyAt=\ud65c\uc131\uc5ec\ubd80 +siteManageVO.useAt=\uc0ac\uc6a9\uc5ec\ubd80 + +#Vlidator Errors- recomendSiteManageVO# +recomendSiteManageVO.recomendSiteNm=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uba85 +recomendSiteManageVO.recomendSiteUrl=\ucd94\ucc9c\uc0ac\uc774\ud2b8 URL +recomendSiteManageVO.recomendSiteDc=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc124\uba85 +recomendSiteManageVO.recomendResnCn=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc2b9\uc778\uc0ac\uc720 +recomendSiteManageVO.confmDe=\uc2b9\uc778\uc77c\uc790 + +#Vlidator Errors- hpcmManageVO# +hpcmManageVO.hpcmSeCode=\ub3c4\uc6c0\ub9d0\uad6c\ubd84 +hpcmManageVO.hpcmDf=\ub3c4\uc6c0\ub9d0\uc815\uc758 +hpcmManageVO.hpcmDc=\ub3c4\uc6c0\ub9d0\uc124\uba85 + +#Vlidator Errors- newsManageVO# +newsManageVO.newsSj=\ub274\uc2a4\uc81c\ubaa9 +newsManageVO.newsCn=\ub274\uc2a4\ub0b4\uc6a9 +newsManageVO.ntceDe=\uac8c\uc2dc\uc77c\uc790 + +#Vlidator Errors- faqManageVO# +faqManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9 +faqManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9 +faqManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- stplatManageVO# +stplatManageVO.useStplatNm=\uc774\uc6a9\uc57d\uad00\uba85 +stplatManageVO.useStplatCn=\uc774\uc6a9\uc57d\uad00\ub0b4\uc6a9 +stplatManageVO.infoProvdAgreCn=\uc815\ubcf4\uc81c\uacf5\ub3d9\uc758\ub0b4\uc6a9 + +#Vlidator Errors- cpyrhtPrtcPolicyVO# +cpyrhtPrtcPolicyVO.cpyrhtPrtcPolicyCn=\uc800\uc791\uad8c\ubcf4\ud638\uc815\ucc45\ub0b4\uc6a9 + +#Vlidator Errors- qnaManageVO# +qnaManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9 +qnaManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9 +qnaManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638 +qnaManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638 +qnaManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638 +qnaManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638 +qnaManageVO.wrterNm=\uc791\uc131\uc790\uba85 +qnaManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- ReprtStatsVO# +sts.reprtId = \ubcf4\uace0\uc11cID +sts.title = \ubcf4\uace0\uc11c\uba85 +sts.category = \ubcf4\uace0\uc11c\uc720\ud615 +sts.status = \uc9c4\ud589\uc0c1\ud0dc +sts.regDate = \ub4f1\ub85d\uc77c\uc2dc + +#Rest day messages# +sym.cal.restDay = \ud734\uc77c\uc77c\uc790 +sym.cal.restName = \ud734\uc77c\uba85 +sym.cal.restDetail = \ud734\uc77c\uc124\uba85 +sym.cal.restCategory = \ud734\uc77c\uad6c\ubd84 + +image.errorBg = \uc624\ub958\uc774\ubbf8\uc9c0 \ No newline at end of file diff --git a/src/main/resources/egovframework/message/message-common_en.properties b/src/main/resources/egovframework/message/message-common_en.properties new file mode 100644 index 0000000..1d5b3f8 --- /dev/null +++ b/src/main/resources/egovframework/message/message-common_en.properties @@ -0,0 +1,196 @@ +fail.common.msg=error ocurred! +fail.common.sql=sql error ocurred! error code: {0}, error msg: {1} +info.nodata.msg=no data found. + +#UI Common resource# +button.search=Search +button.use=use +button.notUsed=Not used +button.inquire=inquire +button.update=update +button.create=create +button.delete=delete +button.close=close +button.save=save +button.list=list +button.reset=reset +button.passwordUpdate=password update +button.subscribe=subscribe +button.realname=realname confirm +button.moveToGpin=move to gpin confirm +button.moveToIhidnum=move to ihidnum confirm +button.agree=agree +button.disagree=disagree +button.possible = possible +button.impossible = impossible + +#UI Common Message# +common.save.msg=confirm save? +common.regist.msg=confirm regist? +common.delete.msg=confirm delete? +common.update.msg=confirm update? +common.nodata.msg=There is no data. please choose another seach keyword +common.required.msg=is required field +common.acknowledgement.msg=confirm acknowledgement? +common.acknowledgementcancel.msg=confirm acknowledgement cancel? + +success.request.msg=you're request successfully done + +success.common.select=successfully selected +success.common.insert=successfully inserted +success.common.update=successfully updated +success.common.delete=successfully deleted + +common.imposbl.fileupload = cannot upload files + +fail.common.insert = fail to insert. +fail.common.update = fail to update +fail.common.delete = fail to delete +fail.common.delete.upperMenuExist = fail to delete[upperMenuId foreign key error] +fail.common.select = fail to select +common.isExist.msg = already exist +fail.common.login = login information is not correct +fail.common.idsearch = can not find id +fail.common.pwsearch = can not find password + + +#UI User Message# +fail.user.passwordUpdate1=current password is not correct +fail.user.passwordUpdate2=password confirm is not correct +info.user.rlnmCnfirm=realname confirm ready +success.user.rlnmCnfirm=it is realname +fail.user.rlnmCnfirm=it is not realname +fail.user.connectFail=connection fail + +#UI Cop Message# +cop.extrlUser = External User +cop.intrlUser = Internal User +cop.private = private +cop.public = public + +cop.bbsNm = BBS Name +cop.bbsIntrcn = BBS Introduction +cop.bbsTyCode = BBS Type +cop.bbsAttrbCode = BBS Attribute +cop.replyPosblAt = Reply Possible Alternative +cop.fileAtchPosblAt = File Attach Possible Alternative +cop.posblAtchFileNumber = Possible Attach File Number +cop.tmplatId = Template Information +cop.guestList.subject = This article registered by Guest List +cop.nttSj = Notice Subject +cop.nttCn = Notice Contents +cop.ntceBgnde = Notice Start Date +cop.ntceEndde = Notice End Date +cop.ntcrNm = Noticer Name +cop.password = PassWord +cop.atchFile = Attach Files +cop.guestList = Guest List +cop.guestListCn = Guest List Contents +cop.noticeTerm = Notice term +cop.atchFileList = Attached File List +cop.cmmntyNm = Community Name +cop.cmmntyIntrcn = Community Introduction +cop.cmmntyMngr = Community Manager +cop.clbOprtr = Club Operator +cop.clbIntrcn = Club Introduction +cop.clbNm = Club Name +cop.tmplatNm = Template Name +cop.tmplatSeCode = Template Se Code +cop.tmplatCours = Template Cours +cop.useAt = Use Alternative +cop.ncrdNm = NameCard user name +cop.cmpnyNm = Company name +cop.deptNm = Department name +cop.ofcpsNm = OFCPS name +cop.clsfNm = Class Name +cop.emailAdres = E-mail +cop.telNo = Tel No. +cop.mbtlNum = Mobile +cop.adres = Address +cop.extrlUserAt = External User alternative +cop.publicAt = Public open alternative +cop.remark = Remark +cop.trgetNm = Company/Club Information +cop.preview = preview + +cop.withdraw.msg=confirm withdrawal memebership? +cop.reregist.msg=confirm re-registration? +cop.registmanager.msg=confirm registration of manager? +cop.use.msg=confirm use? +cop.unuse.msg=confirm stop using? +cop.delete.confirm.msg=If you choose to disable the re-use change is impossible. +cop.ing.msg=Approval is being requested. +cop.request.msg=Signup is normally requested. +cop.password.msg=Please enter your password. +cop.password.not.same.msg=Password do not match. + +cop.comment.wrterNm = Writer Name +cop.comment.commentCn = Comment +cop.comment.commentPassword = Password + +cop.satisfaction.wrterNm = Writer Name +cop.satisfaction.stsfdgCn = Satisfaction +cop.satisfaction.stsfdg = Satisfaction Degree +cop.satisfaction.stsfdgPassword = Password + +cop.scrap.scrapNm = Scrap Name + +#UI USS Message# +uss.ion.noi.ntfcSj=Subject +uss.ion.noi.ntfcCn=Contents +uss.ion.noi.ntfcDate=Notification Date +uss.ion.noi.ntfcTime=Notification Time +uss.ion.noi.ntfcHH=Notification Hour +uss.ion.noi.ntfcMM=Notification Minute +uss.ion.noi.bhNtfcIntrvl=Beforehand Interval +uss.ion.noi.bhNtfcIntrvl.msg=Beforehand Interval is required. +uss.ion.noi.alertNtfcTime=Date and time of notification is not valid. + +#UI COP Message# +cop.sms.trnsmitTelno=Sender +cop.sms.trnsmitCn=Contents +cop.sms.recptnTelno=Receiver(s) +cop.sms.send=Send +cop.sms.addRecptn=Add +cop.sms.recptnTelno.msg=The phone number of receiver is required. + +#UI sym.log Message# +sym.log.histSeCode = History Code +sym.log.sysNm = System Name +sym.log.histCn = History Contents +sym.log.atchFile = Attached File +sym.log.atchFileList = Attached File List +sym.ems.receiver = Receiver +sym.ems.title = Title +sym.ems.content = Content + +#Vlidator Errors# +errors.required={0} is required. +errors.minlength={0} can not be less than {1} characters. +errors.maxlength={0} can not be greater than {1} characters. +errors.invalid={0} is invalid. + +errors.byte={0} must be a byte. +errors.short={0} must be a short. +errors.integer={0} must be an integer. +errors.long={0} must be a long. +errors.float={0} must be a float. +errors.double={0} must be a double. + +errors.date={0} is not a date. +errors.range={0} is not in the range {1} through {2}. +errors.creditcard={0} is an invalid credit card number. +errors.email={0} is an invalid e-mail address. + +#Vlidator Errors- ReprtStatsVO# +sts.reprtId = Report ID +sts.title = Report Title +sts.category = Report Category +sts.status = Report Status +sts.regDate = Registration Date + +#Rest day messages# +sym.cal.restDay = Holiday Date +sym.cal.restName = Holiday Name +sym.cal.restDetail = Holiday Detail +sym.cal.restCategory = Holiday Category \ No newline at end of file diff --git a/src/main/resources/egovframework/message/message-common_ko.properties b/src/main/resources/egovframework/message/message-common_ko.properties new file mode 100644 index 0000000..7457633 --- /dev/null +++ b/src/main/resources/egovframework/message/message-common_ko.properties @@ -0,0 +1,296 @@ +fail.common.msg=\uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +fail.common.sql=sql \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! error code: {0}, error msg: {1} +info.nodata.msg=\ud574\ub2f9 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. + +#UI Common resource# +button.search=\uac80\uc0c9 +button.use=\uc0ac\uc6a9 +button.notUsed=\uc0ac\uc6a9\uc911\uc9c0 +button.inquire=\uc870\ud68c +button.update=\uc218\uc815 +button.create=\ub4f1\ub85d +button.delete=\uc0ad\uc81c +button.deleteDatabase=\uc644\uc804\uc0ad\uc81c +button.close=\ub2eb\uae30 +button.save=\uc800\uc7a5 +button.list=\ubaa9\ub85d +button.reset=\ucde8\uc18c +button.passwordUpdate=\uc554\ud638\ubcc0\uacbd +button.subscribe=\uac00\uc785\uc2e0\uccad +button.realname=\uc2e4\uba85\ud655\uc778 +button.moveToGpin=GPIN\uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.moveToIhidnum=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638 \uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.agree=\ub3d9\uc758 +button.disagree=\ube44\ub3d9\uc758 +button.possible = \uac00\ub2a5 +button.impossible = \ubd88\uac00\ub2a5 +button.qnaregist=Q&A\ub4f1\ub85d +button.cnsltregist=\uc0c1\ub2f4\ub4f1\ub85d +button.preview=\ubbf8\ub9ac\ubcf4\uae30 +button.next=\ub2e4\uc74c +button.add=\ubc14\ub85c\ucd94\uac00 +button.confirm=\ud655\uc778 + + +#UI Common Message# +common.save.msg=\uc800\uc7a5\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.regist.msg=\ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.delete.msg=\uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.update.msg=\uc218\uc815\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.nodata.msg=\uc790\ub8cc\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uac80\uc0c9\uc870\uac74\uc744 \uc120\ud0dd\ud574\uc8fc\uc138\uc694 +common.required.msg=(\uc740)\ub294 \ud544\uc218\uc785\ub825\ud56d\ubaa9\uc785\ub2c8\ub2e4. +common.acknowledgement.msg=\uc2b9\uc778\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.acknowledgementcancel.msg=\uc2b9\uc778\ucde8\uc18c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? + +success.common.select=\uc815\uc0c1\uc801\uc73c\ub85c \uc870\ud68c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.insert=\uc815\uc0c1\uc801\uc73c\ub85c \ub4f1\ub85d\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.update=\uc815\uc0c1\uc801\uc73c\ub85c \uc218\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.delete=\uc815\uc0c1\uc801\uc73c\ub85c \uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +success.request.msg = \uc694\uccad\ucc98\ub9ac\uac00 \uc131\uacf5\uc801\uc73c\ub85c \uc218\ud589\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +common.imposbl.fileupload = \ub354 \uc774\uc0c1 \ud30c\uc77c\uc744 \ucca8\ubd80\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +common.isConfmDe.msg=\uc2b9\uc778\uc77c\uc790\ub97c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4. + + +fail.common.insert = \uc0dd\uc131\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.update = \uc218\uc815\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete = \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete.upperMenuExist = \ucc38\uc870\ub418\ub294 \uba54\ub274\uac00 \uc788\uc5b4 \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.select = \uc870\ud68c\uc5d0 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +common.isExist.msg = \uc774\ubbf8 \uc874\uc7ac\ud558\uac70\ub098 \uacfc\uac70\uc5d0 \ub4f1\ub85d\uc774 \ub418\uc5c8\ub358 \uc0c1\ud0dc\uc785\ub2c8\ub2e4. +fail.common.login = \ub85c\uadf8\uc778 \uc815\ubcf4\uac00 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.common.idsearch = \uc544\uc774\ub514\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.common.pwsearch = \ube44\ubc00\ubc88\ud638\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.request.msg = \uc694\uccad\ucc98\ub9ac\ub97c \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. + +#UI User Message# +fail.user.passwordUpdate1=\ud604\uc7ac \ube44\ubc00\ubc88\ud638\uac00 \ub9de\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.passwordUpdate2=\ube44\ubc00\ubc88\ud638\uc640 \ube44\ubc00\ubc88\ud638 \ud655\uc778\uc774 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +info.user.rlnmCnfirm=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.connectFail=\uc2dc\uc2a4\ud15c \uc7a5\uc560\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.(\uc778\uc99d\uc11c\ubc84 \uc5f0\uacb0 \uc2e4\ud328) +info.user.rlnmPinCnfirm=\uacf5\uacf5 \uc544\uc774\ud540 \uc544\uc774\ub514\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + + +#UI Cop Message# +cop.extrlUser = \uc678\ubd80\uc0ac\uc6a9\uc790 +cop.intrlUser = \ub0b4\ubd80\uc0ac\uc6a9\uc790 +cop.private = \ube44\uacf5\uac1c +cop.public = \uacf5\uac1c + +cop.adbkNm = \uc8fc\uc18c\ub85d\uba85 +cop.othbcScope = \uacf5\uac1c\ubc94\uc704 +cop.company = \ud68c\uc0ac +cop.part = \ubd80\uc11c +cop.man = \uac1c\uc778 +cop.adbkUser = \uad6c\uc131\uc6d0 +cop.bbsNm = \uac8c\uc2dc\ud310\uba85 +cop.bbsIntrcn = \uac8c\uc2dc\ud310\uc18c\uac1c +cop.bbsTyCode = \uac8c\uc2dc\ud310 \uc720\ud615 +cop.bbsAttrbCode = \uac8c\uc2dc\ud310 \uc18d\uc131 +cop.replyPosblAt = \ub2f5\uc7a5\uac00\ub2a5\uc5ec\ubd80 +cop.fileAtchPosblAt = \ud30c\uc77c\ucca8\ubd80\uac00\ub2a5\uc5ec\ubd80 +cop.posblAtchFileNumber = \ucca8\ubd80\uac00\ub2a5\ud30c\uc77c \uc22b\uc790 +cop.tmplatId = \ud15c\ud50c\ub9bf \uc815\ubcf4 +cop.guestList.subject = \ubc29\uba85\ub85d \uac8c\uc2dc\uae00\uc785\ub2c8\ub2e4. +cop.nttSj = \uc81c\ubaa9 +cop.nttCn = \uae00\ub0b4\uc6a9 +cop.ntceBgnde = \uac8c\uc2dc\uc2dc\uc791\uc77c +cop.ntceEndde = \uac8c\uc2dc\uc885\ub8cc\uc77c +cop.ntcrNm = \uc791\uc131\uc790 +cop.password = \ud328\uc2a4\uc6cc\ub4dc +cop.atchFile = \ud30c\uc77c\ucca8\ubd80 +cop.guestList = \ubc29\uba85\ub85d +cop.guestListCn = \ubc29\uba85\ub85d \ub0b4\uc6a9 +cop.noticeTerm = \uac8c\uc2dc\uae30\uac04 +cop.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d +cop.cmmntyNm = \ucee4\ubba4\ub2c8\ud2f0\uba85 +cop.cmmntyIntrcn = \ucee4\ubba4\ub2c8\ud2f0 \uc18c\uac1c +cop.cmmntyMngr = \ucee4\ubba4\ub2c8\ud2f0 \uad00\ub9ac\uc790 +cop.clbOprtr = \ub3d9\ud638\ud68c \uc6b4\uc601\uc790 +cop.clbIntrcn = \ub3d9\ud638\ud68c \uc18c\uac1c +cop.clbNm = \ub3d9\ud638\ud68c \uba85 +cop.tmplatNm = \ud15c\ud50c\ub9bf\uba85 +cop.tmplatSeCode = \ud15c\ud50c\ub9bf \uad6c\ubd84 +cop.tmplatCours = \ud15c\ud50c\ub9bf\uacbd\ub85c +cop.useAt = \uc0ac\uc6a9\uc5ec\ubd80 +cop.ncrdNm = \uc774\ub984 +cop.cmpnyNm = \ud68c\uc0ac\uba85 +cop.deptNm = \ubd80\uc11c\uba85 +cop.ofcpsNm = \uc9c1\uc704 +cop.clsfNm = \uc9c1\uae09 +cop.emailAdres = \uc774\uba54\uc77c\uc8fc\uc18c +cop.telNo = \uc804\ud654\ubc88\ud638 +cop.mbtlNum = \ud734\ub300\ud3f0\ubc88\ud638 +cop.adres = \uc8fc\uc18c +cop.extrlUserAt = \uc678\ubd80\uc0ac\uc6a9\uc790\uc5ec\ubd80 +cop.publicAt = \uacf5\uac1c\uc5ec\ubd80 +cop.remark = \ube44\uace0 +cop.trgetNm = \ucee4\ubba4\ub2c8\ud2f0/\ub3d9\ud638\ud68c \uc815\ubcf4 +cop.preview = \ubbf8\ub9ac\ubcf4\uae30 + +cop.withdraw.msg=\ud0c8\ud1f4\ucc98\ub9ac \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.reregist.msg=\uc7ac\uac00\uc785 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.registmanager.msg=\uc6b4\uc601\uc9c4\uc73c\ub85c \ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.use.msg=\uc0ac\uc6a9 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.unuse.msg=\uc0ac\uc6a9\uc911\uc9c0 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.delete.confirm.msg=\uc0ac\uc6a9\uc911\uc9c0\ub97c \uc120\ud0dd\ud558\uc2e4 \uacbd\uc6b0 \ub2e4\uc2dc \uc0ac\uc6a9\uc73c\ub85c \ubcc0\uacbd\uc774 \ubd88\uac00\ub2a5\ud569\ub2c8\ub2e4. +cop.ing.msg=\uc2b9\uc778\uc694\uccad \uc911\uc785\ub2c8\ub2e4. +cop.request.msg=\uac00\uc785\uc2e0\uccad\uc774 \uc815\uc0c1\uc801\uc73c\ub85c \uc694\uccad\ub418\uc5c8\uc2b5\ub2c8\ub2e4 +cop.password.msg=\ud328\uc2a4\uc6cc\ub4dc\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624. +cop.password.not.same.msg=\ud328\uc2a4\uc6cc\ub4dc\uac00 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +cop.comment.wrterNm = \uc791\uc131\uc790 +cop.comment.commentCn = \ub0b4\uc6a9 +cop.comment.commentPassword = \ud328\uc2a4\uc6cc\ub4dc + +cop.satisfaction.wrterNm = \uc791\uc131\uc790 +cop.satisfaction.stsfdgCn = \ub0b4\uc6a9 +cop.satisfaction.stsfdg = \ub9cc\uc871\ub3c4 +cop.satisfaction.stsfdgPassword = \ud328\uc2a4\uc6cc\ub4dc + +cop.scrap.scrapNm = \uc2a4\ud06c\ub7a9\uba85 + +#UI USS Message# +uss.ion.noi.ntfcSj=\uc81c\ubaa9 +uss.ion.noi.ntfcCn=\ub0b4\uc6a9 +uss.ion.noi.ntfcDate=\uc54c\ub9bc\uc77c\uc790 +uss.ion.noi.ntfcTime=\uc54c\ub9bc\uc2dc\uac04 +uss.ion.noi.ntfcHH=\uc54c\ub9bc\uc2dc\uac04 +uss.ion.noi.ntfcMM=\uc54c\ub9bc\ubd84 +uss.ion.noi.bhNtfcIntrvl=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9 +uss.ion.noi.bhNtfcIntrvl.msg=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. +uss.ion.noi.alertNtfcTime=\uc54c\ub9bc\uc77c\uc790 \ubc0f \uc2dc\uac04\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +#UI COP Message# +cop.sms.trnsmitTelno=\ubc1c\uc2e0\uc804\ud654\ubc88\ud638 +cop.sms.trnsmitCn=\uc804\uc1a1\ub0b4\uc6a9 +cop.sms.recptnTelno=\uc218\uc2e0\uc804\ud654\ubc88\ud638 +cop.sms.send=\uc804\uc1a1 +cop.sms.addRecptn=\ucd94\uac00 +cop.sms.recptnTelno.msg=\uc218\uc2e0\uc804\ud654\ubc88\ud638 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. + +#UI sym.log Message# +sym.log.histSeCode = \uc774\ub825\uad6c\ubd84 +sym.log.sysNm = \uc2dc\uc2a4\ud15c\uba85 +sym.log.histCn = \uc774\ub825\ub0b4\uc6a9 +sym.log.atchFile = \ucca8\ubd80\ud30c\uc77c +sym.log.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d +sym.ems.receiver = \ubc1b\ub294\uc0ac\ub78c +sym.ems.title = \uc81c\ubaa9 +sym.ems.content = \ubc1c\uc2e0\ub0b4\uc6a9 + +#Vlidator Errors# +errors.prefix=
+errors.suffix=

+ +errors.required={0}\uc740(\ub294) \ud544\uc218 \uc785\ub825\uac12\uc785\ub2c8\ub2e4. +errors.minlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.maxlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.invalid={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uac12\uc785\ub2c8\ub2e4. +errors.minInteger={0}\uc740(\ub294) \uc720\ud6a8\ud55c \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4. 1 \uc774\uc0c1\uc758 \uac12\uc744 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.byte={0}\uc740(\ub294) byte\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.short={0}\uc740(\ub294) short\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.integer={0}\uc740(\ub294) \uc815\uc218 \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.long={0}\uc740(\ub294) long \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.float={0}\uc740(\ub294) \uc2e4\uc218 \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.double={0}\uc740(\ub294) double \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. + +errors.date={0}\uc740(\ub294) \ub0a0\uc9dc \uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.range={0}\uc740(\ub294) {1}\uacfc {2} \uc0ac\uc774\uc758 \uac12\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.creditcard={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc2e0\uc6a9\uce74\ub4dc \ubc88\ud638\uc785\ub2c8\ub2e4. +errors.email={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc774\uba54\uc77c \uc8fc\uc18c\uc785\ub2c8\ub2e4. + +errors.ihidnum=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\uc785\ub2c8\ub2e4. +errors.korean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc785\ub825\ud558\uc154\uc57c \ud569\ub2c8\ub2e4. +errors.ip=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 IP\uc8fc\uc18c\uc785\ub2c8\ub2e4. + +errors.password1={0}\uc740(\ub294) 8~20\uc790 \ub0b4\uc5d0\uc11c \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.password2={0}\uc740(\ub294) \ud55c\uae00,\ud2b9\uc218\ubb38\uc790,\ub744\uc5b4\uc4f0\uae30\ub294 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +errors.password3={0}\uc740(\ub294) \uc21c\ucc28\uc801\uc778 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.password4={0}\uc740(\ub294) \ubc18\ubcf5\ub418\ub294 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +errors.notKorean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +error.security.runtime.error = error +#Vlidator Errors- wordDicaryVO# +wordDicaryVO.wordNm=\uc6a9\uc5b4\uba85 +wordDicaryVO.engNm=\uc601\ubb38\uba85 +wordDicaryVO.wordDc=\uc6a9\uc5b4\uc124\uba85 +wordDicaryVO.synonm=\ub3d9\uc758\uc5b4 + +#Vlidator Errors- cnsltManageVO# +cnsltManageVO.cnsltSj=\uc0c1\ub2f4\uc81c\ubaa9 +cnsltManageVO.cnsltCn=\uc0c1\ub2f4\ub0b4\uc6a9 +cnsltManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638 +cnsltManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638 +cnsltManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638 +cnsltManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638 +cnsltManageVO.wrterNm=\uc791\uc131\uc790\uba85 +cnsltManageVO.managtCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- siteManageVO# +siteManageVO.siteNm=\uc0ac\uc774\ud2b8\uba85 +siteManageVO.siteUrl=\uc0ac\uc774\ud2b8 URL +siteManageVO.siteDc=\uc0ac\uc774\ud2b8\uc124\uba85 +siteManageVO.siteThemaClCode=\uc0ac\uc774\ud2b8\uc8fc\uc81c\ubd84\ub958 +siteManageVO.actvtyAt=\ud65c\uc131\uc5ec\ubd80 +siteManageVO.useAt=\uc0ac\uc6a9\uc5ec\ubd80 + +#Vlidator Errors- recomendSiteManageVO# +recomendSiteManageVO.recomendSiteNm=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uba85 +recomendSiteManageVO.recomendSiteUrl=\ucd94\ucc9c\uc0ac\uc774\ud2b8 URL +recomendSiteManageVO.recomendSiteDc=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc124\uba85 +recomendSiteManageVO.recomendResnCn=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc2b9\uc778\uc0ac\uc720 +recomendSiteManageVO.confmDe=\uc2b9\uc778\uc77c\uc790 + +#Vlidator Errors- hpcmManageVO# +hpcmManageVO.hpcmSeCode=\ub3c4\uc6c0\ub9d0\uad6c\ubd84 +hpcmManageVO.hpcmDf=\ub3c4\uc6c0\ub9d0\uc815\uc758 +hpcmManageVO.hpcmDc=\ub3c4\uc6c0\ub9d0\uc124\uba85 + +#Vlidator Errors- newsManageVO# +newsManageVO.newsSj=\ub274\uc2a4\uc81c\ubaa9 +newsManageVO.newsCn=\ub274\uc2a4\ub0b4\uc6a9 +newsManageVO.ntceDe=\uac8c\uc2dc\uc77c\uc790 + +#Vlidator Errors- faqManageVO# +faqManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9 +faqManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9 +faqManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- stplatManageVO# +stplatManageVO.useStplatNm=\uc774\uc6a9\uc57d\uad00\uba85 +stplatManageVO.useStplatCn=\uc774\uc6a9\uc57d\uad00\ub0b4\uc6a9 +stplatManageVO.infoProvdAgreCn=\uc815\ubcf4\uc81c\uacf5\ub3d9\uc758\ub0b4\uc6a9 + +#Vlidator Errors- cpyrhtPrtcPolicyVO# +cpyrhtPrtcPolicyVO.cpyrhtPrtcPolicyCn=\uc800\uc791\uad8c\ubcf4\ud638\uc815\ucc45\ub0b4\uc6a9 + +#Vlidator Errors- qnaManageVO# +qnaManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9 +qnaManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9 +qnaManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638 +qnaManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638 +qnaManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638 +qnaManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638 +qnaManageVO.wrterNm=\uc791\uc131\uc790\uba85 +qnaManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- ReprtStatsVO# +sts.reprtId = \ubcf4\uace0\uc11cID +sts.title = \ubcf4\uace0\uc11c\uba85 +sts.category = \ubcf4\uace0\uc11c\uc720\ud615 +sts.status = \uc9c4\ud589\uc0c1\ud0dc +sts.regDate = \ub4f1\ub85d\uc77c\uc2dc + +#Rest day messages# +sym.cal.restDay = \ud734\uc77c\uc77c\uc790 +sym.cal.restName = \ud734\uc77c\uba85 +sym.cal.restDetail = \ud734\uc77c\uc124\uba85 +sym.cal.restCategory = \ud734\uc77c\uad6c\ubd84 + +image.errorBg = \uc624\ub958\uc774\ubbf8\uc9c0 \ No newline at end of file diff --git a/src/main/resources/egovframework/spring/context-common.xml b/src/main/resources/egovframework/spring/context-common.xml new file mode 100644 index 0000000..68fdfcb --- /dev/null +++ b/src/main/resources/egovframework/spring/context-common.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + classpath:/egovframework/message/message-common + classpath:/egovframework/rte/fdl/idgnr/messages/idgnr + classpath:/egovframework/rte/fdl/property/messages/properties + + + + 60 + + + + + + + + + + + + + + + + + + + * + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/context-datasource.xml b/src/main/resources/egovframework/spring/context-datasource.xml new file mode 100644 index 0000000..206845c --- /dev/null +++ b/src/main/resources/egovframework/spring/context-datasource.xml @@ -0,0 +1,55 @@ + + + + + + + classpath:/egovframework/egovProps/*.properties + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/spring/context-mybatis.xml b/src/main/resources/egovframework/spring/context-mybatis.xml new file mode 100644 index 0000000..326a06d --- /dev/null +++ b/src/main/resources/egovframework/spring/context-mybatis.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/egovframework/spring/context-properties.xml b/src/main/resources/egovframework/spring/context-properties.xml new file mode 100644 index 0000000..59f31af --- /dev/null +++ b/src/main/resources/egovframework/spring/context-properties.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/egovframework/spring/context-transaction.xml b/src/main/resources/egovframework/spring/context-transaction.xml new file mode 100644 index 0000000..c6e4728 --- /dev/null +++ b/src/main/resources/egovframework/spring/context-transaction.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + diff --git a/src/main/resources/geoinfo/sqlmap/config/sql-mapper-config.xml b/src/main/resources/geoinfo/sqlmap/config/sql-mapper-config.xml new file mode 100644 index 0000000..b20b6b3 --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/config/sql-mapper-config.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/board/Community_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/board/Community_SQL.xml new file mode 100644 index 0000000..3eb5d6d --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/board/Community_SQL.xml @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + UPDATE WEB_COMMUNITY + SET SUBJECT = #{subject}, + CONTENT = #{content}, + FILENAME = #{fileName1}, + SAVENAME = #{saveName1}, + FILENAME2 = #{fileName2}, + SAVENAME2 = #{saveName2}, + FILENAME3 = #{fileName3}, + SAVENAME3 = #{saveName3}, + TOP = #{topnotice} + WHERE IDX = #{idx} + + + + + + + + + + + + INSERT INTO WEB_COMMUNITY(IDX, NAME, PASSWORD, EMAIL, HOMEPAGE, SUBJECT, CONTENT, MASTERID, READCOUNT, FILENAME, SAVENAME, DATETIME, SEQ, TOP, FILENAME2, SAVENAME2, FILENAME3, SAVENAME3) + VALUES(#{idx}, #{name}, #{password}, #{email}, #{homepage}, #{subject}, #{content}, #{masterid}, 0, #{fileName}, #{saveName}, SYSDATE, #{seq}, #{top}, #{fileName2}, #{saveName2}, #{fileName3}, #{saveName3}) + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/board/FreqAskQue_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/board/FreqAskQue_SQL.xml new file mode 100644 index 0000000..5085507 --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/board/FreqAskQue_SQL.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/board/GroundReport_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/board/GroundReport_SQL.xml new file mode 100644 index 0000000..63d7a4b --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/board/GroundReport_SQL.xml @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + UPDATE WEB_GROUND_REPORT + SET + TITLE = #{title} + ,REGNM = #{regNm} + ,REGORG = #{regOrg} + ,REGHP = #{regHp} + ,CONTENT = #{content} + ,FILENM = #{fileNm},SAVENM = #{saveNm} + WHERE IDX = #{idx} + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/board/Qna_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/board/Qna_SQL.xml new file mode 100644 index 0000000..eab97ad --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/board/Qna_SQL.xml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/board/RefrncRoom_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/board/RefrncRoom_SQL.xml new file mode 100644 index 0000000..677b523 --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/board/RefrncRoom_SQL.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/chLog/BoringInfo_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/chLog/BoringInfo_SQL.xml new file mode 100644 index 0000000..faa0823 --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/chLog/BoringInfo_SQL.xml @@ -0,0 +1,65 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/chLog/ChInfo_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/chLog/ChInfo_SQL.xml new file mode 100644 index 0000000..361ec7c --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/chLog/ChInfo_SQL.xml @@ -0,0 +1,816 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MERGE INTO LIQ_INFO_LOG L + USING DUAL + ON ( IDX = #{idx} AND PURPOSE_CODE = #{purpose_code}) + WHEN MATCHED THEN + UPDATE + SET + + CNT= (SELECT MAX(CNT)+1 FROM LIQ_INFO_LOG WHERE IDX=#{idx} AND PURPOSE_CODE = #{purpose_code}) + + + CNT= (SELECT MAX(CNT)+1 FROM LIQ_INFO_LOG WHERE IDX=#{idx} AND PURPOSE_CODE = #{purpose_code}) + + WHEN NOT MATCHED THEN + INSERT ( IDX + , USERID + , READDATE + , DOWNDATE + , PURPOSE_CODE + , FILENAME + , SAVENAME + , CNT + ) + VALUES (#{idx} + , #{userid} + + , SYSDATE, '', 'READ', '', '' + + + , '', SYSDATE, 'DOWN', #{filename}, #{savename} + + , '1' + ) + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/chLog/DownloadApp_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/chLog/DownloadApp_SQL.xml new file mode 100644 index 0000000..f4974b4 --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/chLog/DownloadApp_SQL.xml @@ -0,0 +1,314 @@ + + + + + + + + + + + + UPDATE WEB_DOWNLOAD_LOG + SET DOWNYN = 'Y' + ,DOWN_CANCEL_REASON = '' + ,DOWN_CANCEL_ETC = '' + ,DOWNYNDATE = SYSDATE + WHERE + 1=1 + AND USERID = #{userid} + + AND APPROVE = 'Y' + AND DOWNYN = 'R' + + + AND IDX = #{idx} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + UPDATE WEB_DOWNLOAD_LOG + SET APPROVE = 'Y' + , APPROVEDATE = SYSDATE + WHERE IDX = #{value} + + + + + + + + INSERT INTO TEMP_SMS_LOG( + SMS_ID + , PROJECT_CODE + , REQ_GBN + , RET_CODE + , RET_MESSAGE + , RET_LAST_POINT + , SMS_TO_ID + , SMS_TO_PHONE + , SMS_FROM_ID + , SMS_FROM_PHONE + , SMS_MSG + , REG_DATE) + SELECT + TO_CHAR(SYSDATE, 'YYYYMMDD') || LPAD(NVL(MAX(SUBSTR(SMS_ID, -4)) + 1, 1) , 4, '0') + , #{project_code} + , #{reqGbn} + , #{retCode} + , #{retMessage} + , #{retLastPoint} + , #{sms_to_id} + , #{sms_to} + , #{sms_from_id} + , #{sms_from} + , #{sms_msg} + , SYSDATE + FROM TEMP_SMS_LOG + WHERE SMS_ID LIKE TO_CHAR(SYSDATE, 'YYYYMMDD') || '%' + + + + + UPDATE WEB_DOWNLOAD_LOG + SET + FILECHECK = #{filecheck} + + , FILENAME = #{filename} + , SAVENAME = #{savename} + + + , FILENAME2 = #{filename2} + , SAVENAME2 = #{savename2} + + WHERE + 1=1 + AND USERID = #{userId} + + AND APPROVE = 'Y' + AND DOWNYN = 'R' + + + AND IDX = #{idx} + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/chLog/SupplyInfo_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/chLog/SupplyInfo_SQL.xml new file mode 100644 index 0000000..9e33d1e --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/chLog/SupplyInfo_SQL.xml @@ -0,0 +1,66 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/main/Login_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/main/Login_SQL.xml new file mode 100644 index 0000000..283ee38 --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/main/Login_SQL.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/main/Main_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/main/Main_SQL.xml new file mode 100644 index 0000000..2163d77 --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/main/Main_SQL.xml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/manager/AdminInfoMng_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/manager/AdminInfoMng_SQL.xml new file mode 100644 index 0000000..b0af023 --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/manager/AdminInfoMng_SQL.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/notice/Notice_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/notice/Notice_SQL.xml new file mode 100644 index 0000000..fa5ad22 --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/notice/Notice_SQL.xml @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + ,FILENAME = #{filename} + ,SAVENAME = #{savename} + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/user/AllowDownload_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/user/AllowDownload_SQL.xml new file mode 100644 index 0000000..7a8f06d --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/user/AllowDownload_SQL.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + DELETE FROM WEB_MEMBER_LOC WHERE 1 = 1 + + AND USERID = #{userid} AND REGION = #{region} + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/user/ClientMng_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/user/ClientMng_SQL.xml new file mode 100644 index 0000000..33ad0fe --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/user/ClientMng_SQL.xml @@ -0,0 +1,143 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/user/GeneralUserMng_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/user/GeneralUserMng_SQL.xml new file mode 100644 index 0000000..7fe6328 --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/user/GeneralUserMng_SQL.xml @@ -0,0 +1,432 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/user/SupplierMng_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/user/SupplierMng_SQL.xml new file mode 100644 index 0000000..112dbb4 --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/user/SupplierMng_SQL.xml @@ -0,0 +1,176 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/user/UserRegStatus_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/user/UserRegStatus_SQL.xml new file mode 100644 index 0000000..75452fb --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/user/UserRegStatus_SQL.xml @@ -0,0 +1,18 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/userLog/GeoInfoCh_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/userLog/GeoInfoCh_SQL.xml new file mode 100644 index 0000000..3735038 --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/userLog/GeoInfoCh_SQL.xml @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/userLog/GeoInfoNewPortal_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/userLog/GeoInfoNewPortal_SQL.xml new file mode 100644 index 0000000..c69920f --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/userLog/GeoInfoNewPortal_SQL.xml @@ -0,0 +1,358 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/geoinfo/sqlmap/mappers/admins/userLog/GeoInfoPortal_SQL.xml b/src/main/resources/geoinfo/sqlmap/mappers/admins/userLog/GeoInfoPortal_SQL.xml new file mode 100644 index 0000000..7371e5a --- /dev/null +++ b/src/main/resources/geoinfo/sqlmap/mappers/admins/userLog/GeoInfoPortal_SQL.xml @@ -0,0 +1,534 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml new file mode 100644 index 0000000..cb90410 --- /dev/null +++ b/src/main/resources/log4j2.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/mapper/Community_SQL.xml b/src/main/resources/mapper/Community_SQL.xml new file mode 100644 index 0000000..d6eb9b3 --- /dev/null +++ b/src/main/resources/mapper/Community_SQL.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/Data_SQL.xml b/src/main/resources/mapper/Data_SQL.xml new file mode 100644 index 0000000..c3f628c --- /dev/null +++ b/src/main/resources/mapper/Data_SQL.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/Faq_SQL.xml b/src/main/resources/mapper/Faq_SQL.xml new file mode 100644 index 0000000..ccc8707 --- /dev/null +++ b/src/main/resources/mapper/Faq_SQL.xml @@ -0,0 +1,38 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/File_SQL.xml b/src/main/resources/mapper/File_SQL.xml new file mode 100644 index 0000000..28a161a --- /dev/null +++ b/src/main/resources/mapper/File_SQL.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/Home_SQL.xml b/src/main/resources/mapper/Home_SQL.xml new file mode 100644 index 0000000..3fb263d --- /dev/null +++ b/src/main/resources/mapper/Home_SQL.xml @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + UPDATE ${table} SET ${values} WHERE ${where} + + + + + + + INSERT INTO WEB_MEMBER_EXIT + (USERID, USERNAME, UPJONG_CODE, EXIT_CAUSE) + VALUES (#{userId}, #{userName}, #{upjong_code}, #{exit_cause}) + + + DELETE WEB_MEMBER_IN + WHERE TRIM(USERID) = #{userId} + AND TRIM(PASSWD) = #{pass} + + + \ No newline at end of file diff --git a/src/main/resources/mapper/Join_SQL.xml b/src/main/resources/mapper/Join_SQL.xml new file mode 100644 index 0000000..99b4b1b --- /dev/null +++ b/src/main/resources/mapper/Join_SQL.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + INSERT INTO WEB_MEMBER_IN (USERID,PASSWD,USER_NAME,PHONE,EMAIL,COMPANY_NAME,PART_NAME,ZIP_CODE,ADDRESS,COMPANY_REGIST_NO,UPJONG_CODE,CLS, DUPINFO, VIRTUALNO, LAST_LOGIN_DATE, AGREEYN, LOGIN_COUNT, ENCRYPT_CHANGE) + VALUES(#{userId, jdbcType=VARCHAR},#{password, jdbcType=VARCHAR},#{NameTx, jdbcType=VARCHAR},#{phone, jdbcType=VARCHAR},#{email, jdbcType=VARCHAR},#{companyName, jdbcType=VARCHAR},#{part, jdbcType=VARCHAR},#{zipcode, jdbcType=VARCHAR},#{address, jdbcType=VARCHAR},#{companyNo, jdbcType=VARCHAR},#{upjong, jdbcType=VARCHAR},#{cls},#{DUPINFO},#{VIRTUALNO},SYSDATE-1,'Y',0,'Y') + + + \ No newline at end of file diff --git a/src/main/resources/mapper/Login_SQL.xml b/src/main/resources/mapper/Login_SQL.xml new file mode 100644 index 0000000..6463670 --- /dev/null +++ b/src/main/resources/mapper/Login_SQL.xml @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/Notice_SQL.xml b/src/main/resources/mapper/Notice_SQL.xml new file mode 100644 index 0000000..2d97d03 --- /dev/null +++ b/src/main/resources/mapper/Notice_SQL.xml @@ -0,0 +1,35 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/QnA_SQL.xml b/src/main/resources/mapper/QnA_SQL.xml new file mode 100644 index 0000000..ec40b0a --- /dev/null +++ b/src/main/resources/mapper/QnA_SQL.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/Vote_SQL.xml b/src/main/resources/mapper/Vote_SQL.xml new file mode 100644 index 0000000..b963f03 --- /dev/null +++ b/src/main/resources/mapper/Vote_SQL.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/regi/regi.xml b/src/main/resources/mapper/regi/regi.xml new file mode 100644 index 0000000..dd18c19 --- /dev/null +++ b/src/main/resources/mapper/regi/regi.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/message/com/message-common.properties b/src/main/resources/message/com/message-common.properties new file mode 100644 index 0000000..7457633 --- /dev/null +++ b/src/main/resources/message/com/message-common.properties @@ -0,0 +1,296 @@ +fail.common.msg=\uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +fail.common.sql=sql \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! error code: {0}, error msg: {1} +info.nodata.msg=\ud574\ub2f9 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. + +#UI Common resource# +button.search=\uac80\uc0c9 +button.use=\uc0ac\uc6a9 +button.notUsed=\uc0ac\uc6a9\uc911\uc9c0 +button.inquire=\uc870\ud68c +button.update=\uc218\uc815 +button.create=\ub4f1\ub85d +button.delete=\uc0ad\uc81c +button.deleteDatabase=\uc644\uc804\uc0ad\uc81c +button.close=\ub2eb\uae30 +button.save=\uc800\uc7a5 +button.list=\ubaa9\ub85d +button.reset=\ucde8\uc18c +button.passwordUpdate=\uc554\ud638\ubcc0\uacbd +button.subscribe=\uac00\uc785\uc2e0\uccad +button.realname=\uc2e4\uba85\ud655\uc778 +button.moveToGpin=GPIN\uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.moveToIhidnum=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638 \uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.agree=\ub3d9\uc758 +button.disagree=\ube44\ub3d9\uc758 +button.possible = \uac00\ub2a5 +button.impossible = \ubd88\uac00\ub2a5 +button.qnaregist=Q&A\ub4f1\ub85d +button.cnsltregist=\uc0c1\ub2f4\ub4f1\ub85d +button.preview=\ubbf8\ub9ac\ubcf4\uae30 +button.next=\ub2e4\uc74c +button.add=\ubc14\ub85c\ucd94\uac00 +button.confirm=\ud655\uc778 + + +#UI Common Message# +common.save.msg=\uc800\uc7a5\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.regist.msg=\ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.delete.msg=\uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.update.msg=\uc218\uc815\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.nodata.msg=\uc790\ub8cc\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uac80\uc0c9\uc870\uac74\uc744 \uc120\ud0dd\ud574\uc8fc\uc138\uc694 +common.required.msg=(\uc740)\ub294 \ud544\uc218\uc785\ub825\ud56d\ubaa9\uc785\ub2c8\ub2e4. +common.acknowledgement.msg=\uc2b9\uc778\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.acknowledgementcancel.msg=\uc2b9\uc778\ucde8\uc18c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? + +success.common.select=\uc815\uc0c1\uc801\uc73c\ub85c \uc870\ud68c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.insert=\uc815\uc0c1\uc801\uc73c\ub85c \ub4f1\ub85d\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.update=\uc815\uc0c1\uc801\uc73c\ub85c \uc218\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.delete=\uc815\uc0c1\uc801\uc73c\ub85c \uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +success.request.msg = \uc694\uccad\ucc98\ub9ac\uac00 \uc131\uacf5\uc801\uc73c\ub85c \uc218\ud589\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +common.imposbl.fileupload = \ub354 \uc774\uc0c1 \ud30c\uc77c\uc744 \ucca8\ubd80\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +common.isConfmDe.msg=\uc2b9\uc778\uc77c\uc790\ub97c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4. + + +fail.common.insert = \uc0dd\uc131\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.update = \uc218\uc815\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete = \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete.upperMenuExist = \ucc38\uc870\ub418\ub294 \uba54\ub274\uac00 \uc788\uc5b4 \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.select = \uc870\ud68c\uc5d0 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +common.isExist.msg = \uc774\ubbf8 \uc874\uc7ac\ud558\uac70\ub098 \uacfc\uac70\uc5d0 \ub4f1\ub85d\uc774 \ub418\uc5c8\ub358 \uc0c1\ud0dc\uc785\ub2c8\ub2e4. +fail.common.login = \ub85c\uadf8\uc778 \uc815\ubcf4\uac00 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.common.idsearch = \uc544\uc774\ub514\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.common.pwsearch = \ube44\ubc00\ubc88\ud638\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.request.msg = \uc694\uccad\ucc98\ub9ac\ub97c \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. + +#UI User Message# +fail.user.passwordUpdate1=\ud604\uc7ac \ube44\ubc00\ubc88\ud638\uac00 \ub9de\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.passwordUpdate2=\ube44\ubc00\ubc88\ud638\uc640 \ube44\ubc00\ubc88\ud638 \ud655\uc778\uc774 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +info.user.rlnmCnfirm=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.connectFail=\uc2dc\uc2a4\ud15c \uc7a5\uc560\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.(\uc778\uc99d\uc11c\ubc84 \uc5f0\uacb0 \uc2e4\ud328) +info.user.rlnmPinCnfirm=\uacf5\uacf5 \uc544\uc774\ud540 \uc544\uc774\ub514\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + + +#UI Cop Message# +cop.extrlUser = \uc678\ubd80\uc0ac\uc6a9\uc790 +cop.intrlUser = \ub0b4\ubd80\uc0ac\uc6a9\uc790 +cop.private = \ube44\uacf5\uac1c +cop.public = \uacf5\uac1c + +cop.adbkNm = \uc8fc\uc18c\ub85d\uba85 +cop.othbcScope = \uacf5\uac1c\ubc94\uc704 +cop.company = \ud68c\uc0ac +cop.part = \ubd80\uc11c +cop.man = \uac1c\uc778 +cop.adbkUser = \uad6c\uc131\uc6d0 +cop.bbsNm = \uac8c\uc2dc\ud310\uba85 +cop.bbsIntrcn = \uac8c\uc2dc\ud310\uc18c\uac1c +cop.bbsTyCode = \uac8c\uc2dc\ud310 \uc720\ud615 +cop.bbsAttrbCode = \uac8c\uc2dc\ud310 \uc18d\uc131 +cop.replyPosblAt = \ub2f5\uc7a5\uac00\ub2a5\uc5ec\ubd80 +cop.fileAtchPosblAt = \ud30c\uc77c\ucca8\ubd80\uac00\ub2a5\uc5ec\ubd80 +cop.posblAtchFileNumber = \ucca8\ubd80\uac00\ub2a5\ud30c\uc77c \uc22b\uc790 +cop.tmplatId = \ud15c\ud50c\ub9bf \uc815\ubcf4 +cop.guestList.subject = \ubc29\uba85\ub85d \uac8c\uc2dc\uae00\uc785\ub2c8\ub2e4. +cop.nttSj = \uc81c\ubaa9 +cop.nttCn = \uae00\ub0b4\uc6a9 +cop.ntceBgnde = \uac8c\uc2dc\uc2dc\uc791\uc77c +cop.ntceEndde = \uac8c\uc2dc\uc885\ub8cc\uc77c +cop.ntcrNm = \uc791\uc131\uc790 +cop.password = \ud328\uc2a4\uc6cc\ub4dc +cop.atchFile = \ud30c\uc77c\ucca8\ubd80 +cop.guestList = \ubc29\uba85\ub85d +cop.guestListCn = \ubc29\uba85\ub85d \ub0b4\uc6a9 +cop.noticeTerm = \uac8c\uc2dc\uae30\uac04 +cop.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d +cop.cmmntyNm = \ucee4\ubba4\ub2c8\ud2f0\uba85 +cop.cmmntyIntrcn = \ucee4\ubba4\ub2c8\ud2f0 \uc18c\uac1c +cop.cmmntyMngr = \ucee4\ubba4\ub2c8\ud2f0 \uad00\ub9ac\uc790 +cop.clbOprtr = \ub3d9\ud638\ud68c \uc6b4\uc601\uc790 +cop.clbIntrcn = \ub3d9\ud638\ud68c \uc18c\uac1c +cop.clbNm = \ub3d9\ud638\ud68c \uba85 +cop.tmplatNm = \ud15c\ud50c\ub9bf\uba85 +cop.tmplatSeCode = \ud15c\ud50c\ub9bf \uad6c\ubd84 +cop.tmplatCours = \ud15c\ud50c\ub9bf\uacbd\ub85c +cop.useAt = \uc0ac\uc6a9\uc5ec\ubd80 +cop.ncrdNm = \uc774\ub984 +cop.cmpnyNm = \ud68c\uc0ac\uba85 +cop.deptNm = \ubd80\uc11c\uba85 +cop.ofcpsNm = \uc9c1\uc704 +cop.clsfNm = \uc9c1\uae09 +cop.emailAdres = \uc774\uba54\uc77c\uc8fc\uc18c +cop.telNo = \uc804\ud654\ubc88\ud638 +cop.mbtlNum = \ud734\ub300\ud3f0\ubc88\ud638 +cop.adres = \uc8fc\uc18c +cop.extrlUserAt = \uc678\ubd80\uc0ac\uc6a9\uc790\uc5ec\ubd80 +cop.publicAt = \uacf5\uac1c\uc5ec\ubd80 +cop.remark = \ube44\uace0 +cop.trgetNm = \ucee4\ubba4\ub2c8\ud2f0/\ub3d9\ud638\ud68c \uc815\ubcf4 +cop.preview = \ubbf8\ub9ac\ubcf4\uae30 + +cop.withdraw.msg=\ud0c8\ud1f4\ucc98\ub9ac \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.reregist.msg=\uc7ac\uac00\uc785 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.registmanager.msg=\uc6b4\uc601\uc9c4\uc73c\ub85c \ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.use.msg=\uc0ac\uc6a9 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.unuse.msg=\uc0ac\uc6a9\uc911\uc9c0 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.delete.confirm.msg=\uc0ac\uc6a9\uc911\uc9c0\ub97c \uc120\ud0dd\ud558\uc2e4 \uacbd\uc6b0 \ub2e4\uc2dc \uc0ac\uc6a9\uc73c\ub85c \ubcc0\uacbd\uc774 \ubd88\uac00\ub2a5\ud569\ub2c8\ub2e4. +cop.ing.msg=\uc2b9\uc778\uc694\uccad \uc911\uc785\ub2c8\ub2e4. +cop.request.msg=\uac00\uc785\uc2e0\uccad\uc774 \uc815\uc0c1\uc801\uc73c\ub85c \uc694\uccad\ub418\uc5c8\uc2b5\ub2c8\ub2e4 +cop.password.msg=\ud328\uc2a4\uc6cc\ub4dc\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624. +cop.password.not.same.msg=\ud328\uc2a4\uc6cc\ub4dc\uac00 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +cop.comment.wrterNm = \uc791\uc131\uc790 +cop.comment.commentCn = \ub0b4\uc6a9 +cop.comment.commentPassword = \ud328\uc2a4\uc6cc\ub4dc + +cop.satisfaction.wrterNm = \uc791\uc131\uc790 +cop.satisfaction.stsfdgCn = \ub0b4\uc6a9 +cop.satisfaction.stsfdg = \ub9cc\uc871\ub3c4 +cop.satisfaction.stsfdgPassword = \ud328\uc2a4\uc6cc\ub4dc + +cop.scrap.scrapNm = \uc2a4\ud06c\ub7a9\uba85 + +#UI USS Message# +uss.ion.noi.ntfcSj=\uc81c\ubaa9 +uss.ion.noi.ntfcCn=\ub0b4\uc6a9 +uss.ion.noi.ntfcDate=\uc54c\ub9bc\uc77c\uc790 +uss.ion.noi.ntfcTime=\uc54c\ub9bc\uc2dc\uac04 +uss.ion.noi.ntfcHH=\uc54c\ub9bc\uc2dc\uac04 +uss.ion.noi.ntfcMM=\uc54c\ub9bc\ubd84 +uss.ion.noi.bhNtfcIntrvl=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9 +uss.ion.noi.bhNtfcIntrvl.msg=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. +uss.ion.noi.alertNtfcTime=\uc54c\ub9bc\uc77c\uc790 \ubc0f \uc2dc\uac04\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +#UI COP Message# +cop.sms.trnsmitTelno=\ubc1c\uc2e0\uc804\ud654\ubc88\ud638 +cop.sms.trnsmitCn=\uc804\uc1a1\ub0b4\uc6a9 +cop.sms.recptnTelno=\uc218\uc2e0\uc804\ud654\ubc88\ud638 +cop.sms.send=\uc804\uc1a1 +cop.sms.addRecptn=\ucd94\uac00 +cop.sms.recptnTelno.msg=\uc218\uc2e0\uc804\ud654\ubc88\ud638 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. + +#UI sym.log Message# +sym.log.histSeCode = \uc774\ub825\uad6c\ubd84 +sym.log.sysNm = \uc2dc\uc2a4\ud15c\uba85 +sym.log.histCn = \uc774\ub825\ub0b4\uc6a9 +sym.log.atchFile = \ucca8\ubd80\ud30c\uc77c +sym.log.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d +sym.ems.receiver = \ubc1b\ub294\uc0ac\ub78c +sym.ems.title = \uc81c\ubaa9 +sym.ems.content = \ubc1c\uc2e0\ub0b4\uc6a9 + +#Vlidator Errors# +errors.prefix=
+errors.suffix=

+ +errors.required={0}\uc740(\ub294) \ud544\uc218 \uc785\ub825\uac12\uc785\ub2c8\ub2e4. +errors.minlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.maxlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.invalid={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uac12\uc785\ub2c8\ub2e4. +errors.minInteger={0}\uc740(\ub294) \uc720\ud6a8\ud55c \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4. 1 \uc774\uc0c1\uc758 \uac12\uc744 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.byte={0}\uc740(\ub294) byte\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.short={0}\uc740(\ub294) short\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.integer={0}\uc740(\ub294) \uc815\uc218 \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.long={0}\uc740(\ub294) long \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.float={0}\uc740(\ub294) \uc2e4\uc218 \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.double={0}\uc740(\ub294) double \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. + +errors.date={0}\uc740(\ub294) \ub0a0\uc9dc \uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.range={0}\uc740(\ub294) {1}\uacfc {2} \uc0ac\uc774\uc758 \uac12\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.creditcard={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc2e0\uc6a9\uce74\ub4dc \ubc88\ud638\uc785\ub2c8\ub2e4. +errors.email={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc774\uba54\uc77c \uc8fc\uc18c\uc785\ub2c8\ub2e4. + +errors.ihidnum=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\uc785\ub2c8\ub2e4. +errors.korean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc785\ub825\ud558\uc154\uc57c \ud569\ub2c8\ub2e4. +errors.ip=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 IP\uc8fc\uc18c\uc785\ub2c8\ub2e4. + +errors.password1={0}\uc740(\ub294) 8~20\uc790 \ub0b4\uc5d0\uc11c \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.password2={0}\uc740(\ub294) \ud55c\uae00,\ud2b9\uc218\ubb38\uc790,\ub744\uc5b4\uc4f0\uae30\ub294 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +errors.password3={0}\uc740(\ub294) \uc21c\ucc28\uc801\uc778 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.password4={0}\uc740(\ub294) \ubc18\ubcf5\ub418\ub294 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +errors.notKorean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +error.security.runtime.error = error +#Vlidator Errors- wordDicaryVO# +wordDicaryVO.wordNm=\uc6a9\uc5b4\uba85 +wordDicaryVO.engNm=\uc601\ubb38\uba85 +wordDicaryVO.wordDc=\uc6a9\uc5b4\uc124\uba85 +wordDicaryVO.synonm=\ub3d9\uc758\uc5b4 + +#Vlidator Errors- cnsltManageVO# +cnsltManageVO.cnsltSj=\uc0c1\ub2f4\uc81c\ubaa9 +cnsltManageVO.cnsltCn=\uc0c1\ub2f4\ub0b4\uc6a9 +cnsltManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638 +cnsltManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638 +cnsltManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638 +cnsltManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638 +cnsltManageVO.wrterNm=\uc791\uc131\uc790\uba85 +cnsltManageVO.managtCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- siteManageVO# +siteManageVO.siteNm=\uc0ac\uc774\ud2b8\uba85 +siteManageVO.siteUrl=\uc0ac\uc774\ud2b8 URL +siteManageVO.siteDc=\uc0ac\uc774\ud2b8\uc124\uba85 +siteManageVO.siteThemaClCode=\uc0ac\uc774\ud2b8\uc8fc\uc81c\ubd84\ub958 +siteManageVO.actvtyAt=\ud65c\uc131\uc5ec\ubd80 +siteManageVO.useAt=\uc0ac\uc6a9\uc5ec\ubd80 + +#Vlidator Errors- recomendSiteManageVO# +recomendSiteManageVO.recomendSiteNm=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uba85 +recomendSiteManageVO.recomendSiteUrl=\ucd94\ucc9c\uc0ac\uc774\ud2b8 URL +recomendSiteManageVO.recomendSiteDc=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc124\uba85 +recomendSiteManageVO.recomendResnCn=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc2b9\uc778\uc0ac\uc720 +recomendSiteManageVO.confmDe=\uc2b9\uc778\uc77c\uc790 + +#Vlidator Errors- hpcmManageVO# +hpcmManageVO.hpcmSeCode=\ub3c4\uc6c0\ub9d0\uad6c\ubd84 +hpcmManageVO.hpcmDf=\ub3c4\uc6c0\ub9d0\uc815\uc758 +hpcmManageVO.hpcmDc=\ub3c4\uc6c0\ub9d0\uc124\uba85 + +#Vlidator Errors- newsManageVO# +newsManageVO.newsSj=\ub274\uc2a4\uc81c\ubaa9 +newsManageVO.newsCn=\ub274\uc2a4\ub0b4\uc6a9 +newsManageVO.ntceDe=\uac8c\uc2dc\uc77c\uc790 + +#Vlidator Errors- faqManageVO# +faqManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9 +faqManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9 +faqManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- stplatManageVO# +stplatManageVO.useStplatNm=\uc774\uc6a9\uc57d\uad00\uba85 +stplatManageVO.useStplatCn=\uc774\uc6a9\uc57d\uad00\ub0b4\uc6a9 +stplatManageVO.infoProvdAgreCn=\uc815\ubcf4\uc81c\uacf5\ub3d9\uc758\ub0b4\uc6a9 + +#Vlidator Errors- cpyrhtPrtcPolicyVO# +cpyrhtPrtcPolicyVO.cpyrhtPrtcPolicyCn=\uc800\uc791\uad8c\ubcf4\ud638\uc815\ucc45\ub0b4\uc6a9 + +#Vlidator Errors- qnaManageVO# +qnaManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9 +qnaManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9 +qnaManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638 +qnaManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638 +qnaManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638 +qnaManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638 +qnaManageVO.wrterNm=\uc791\uc131\uc790\uba85 +qnaManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- ReprtStatsVO# +sts.reprtId = \ubcf4\uace0\uc11cID +sts.title = \ubcf4\uace0\uc11c\uba85 +sts.category = \ubcf4\uace0\uc11c\uc720\ud615 +sts.status = \uc9c4\ud589\uc0c1\ud0dc +sts.regDate = \ub4f1\ub85d\uc77c\uc2dc + +#Rest day messages# +sym.cal.restDay = \ud734\uc77c\uc77c\uc790 +sym.cal.restName = \ud734\uc77c\uba85 +sym.cal.restDetail = \ud734\uc77c\uc124\uba85 +sym.cal.restCategory = \ud734\uc77c\uad6c\ubd84 + +image.errorBg = \uc624\ub958\uc774\ubbf8\uc9c0 \ No newline at end of file diff --git a/src/main/resources/message/com/message-common_en.properties b/src/main/resources/message/com/message-common_en.properties new file mode 100644 index 0000000..1d5b3f8 --- /dev/null +++ b/src/main/resources/message/com/message-common_en.properties @@ -0,0 +1,196 @@ +fail.common.msg=error ocurred! +fail.common.sql=sql error ocurred! error code: {0}, error msg: {1} +info.nodata.msg=no data found. + +#UI Common resource# +button.search=Search +button.use=use +button.notUsed=Not used +button.inquire=inquire +button.update=update +button.create=create +button.delete=delete +button.close=close +button.save=save +button.list=list +button.reset=reset +button.passwordUpdate=password update +button.subscribe=subscribe +button.realname=realname confirm +button.moveToGpin=move to gpin confirm +button.moveToIhidnum=move to ihidnum confirm +button.agree=agree +button.disagree=disagree +button.possible = possible +button.impossible = impossible + +#UI Common Message# +common.save.msg=confirm save? +common.regist.msg=confirm regist? +common.delete.msg=confirm delete? +common.update.msg=confirm update? +common.nodata.msg=There is no data. please choose another seach keyword +common.required.msg=is required field +common.acknowledgement.msg=confirm acknowledgement? +common.acknowledgementcancel.msg=confirm acknowledgement cancel? + +success.request.msg=you're request successfully done + +success.common.select=successfully selected +success.common.insert=successfully inserted +success.common.update=successfully updated +success.common.delete=successfully deleted + +common.imposbl.fileupload = cannot upload files + +fail.common.insert = fail to insert. +fail.common.update = fail to update +fail.common.delete = fail to delete +fail.common.delete.upperMenuExist = fail to delete[upperMenuId foreign key error] +fail.common.select = fail to select +common.isExist.msg = already exist +fail.common.login = login information is not correct +fail.common.idsearch = can not find id +fail.common.pwsearch = can not find password + + +#UI User Message# +fail.user.passwordUpdate1=current password is not correct +fail.user.passwordUpdate2=password confirm is not correct +info.user.rlnmCnfirm=realname confirm ready +success.user.rlnmCnfirm=it is realname +fail.user.rlnmCnfirm=it is not realname +fail.user.connectFail=connection fail + +#UI Cop Message# +cop.extrlUser = External User +cop.intrlUser = Internal User +cop.private = private +cop.public = public + +cop.bbsNm = BBS Name +cop.bbsIntrcn = BBS Introduction +cop.bbsTyCode = BBS Type +cop.bbsAttrbCode = BBS Attribute +cop.replyPosblAt = Reply Possible Alternative +cop.fileAtchPosblAt = File Attach Possible Alternative +cop.posblAtchFileNumber = Possible Attach File Number +cop.tmplatId = Template Information +cop.guestList.subject = This article registered by Guest List +cop.nttSj = Notice Subject +cop.nttCn = Notice Contents +cop.ntceBgnde = Notice Start Date +cop.ntceEndde = Notice End Date +cop.ntcrNm = Noticer Name +cop.password = PassWord +cop.atchFile = Attach Files +cop.guestList = Guest List +cop.guestListCn = Guest List Contents +cop.noticeTerm = Notice term +cop.atchFileList = Attached File List +cop.cmmntyNm = Community Name +cop.cmmntyIntrcn = Community Introduction +cop.cmmntyMngr = Community Manager +cop.clbOprtr = Club Operator +cop.clbIntrcn = Club Introduction +cop.clbNm = Club Name +cop.tmplatNm = Template Name +cop.tmplatSeCode = Template Se Code +cop.tmplatCours = Template Cours +cop.useAt = Use Alternative +cop.ncrdNm = NameCard user name +cop.cmpnyNm = Company name +cop.deptNm = Department name +cop.ofcpsNm = OFCPS name +cop.clsfNm = Class Name +cop.emailAdres = E-mail +cop.telNo = Tel No. +cop.mbtlNum = Mobile +cop.adres = Address +cop.extrlUserAt = External User alternative +cop.publicAt = Public open alternative +cop.remark = Remark +cop.trgetNm = Company/Club Information +cop.preview = preview + +cop.withdraw.msg=confirm withdrawal memebership? +cop.reregist.msg=confirm re-registration? +cop.registmanager.msg=confirm registration of manager? +cop.use.msg=confirm use? +cop.unuse.msg=confirm stop using? +cop.delete.confirm.msg=If you choose to disable the re-use change is impossible. +cop.ing.msg=Approval is being requested. +cop.request.msg=Signup is normally requested. +cop.password.msg=Please enter your password. +cop.password.not.same.msg=Password do not match. + +cop.comment.wrterNm = Writer Name +cop.comment.commentCn = Comment +cop.comment.commentPassword = Password + +cop.satisfaction.wrterNm = Writer Name +cop.satisfaction.stsfdgCn = Satisfaction +cop.satisfaction.stsfdg = Satisfaction Degree +cop.satisfaction.stsfdgPassword = Password + +cop.scrap.scrapNm = Scrap Name + +#UI USS Message# +uss.ion.noi.ntfcSj=Subject +uss.ion.noi.ntfcCn=Contents +uss.ion.noi.ntfcDate=Notification Date +uss.ion.noi.ntfcTime=Notification Time +uss.ion.noi.ntfcHH=Notification Hour +uss.ion.noi.ntfcMM=Notification Minute +uss.ion.noi.bhNtfcIntrvl=Beforehand Interval +uss.ion.noi.bhNtfcIntrvl.msg=Beforehand Interval is required. +uss.ion.noi.alertNtfcTime=Date and time of notification is not valid. + +#UI COP Message# +cop.sms.trnsmitTelno=Sender +cop.sms.trnsmitCn=Contents +cop.sms.recptnTelno=Receiver(s) +cop.sms.send=Send +cop.sms.addRecptn=Add +cop.sms.recptnTelno.msg=The phone number of receiver is required. + +#UI sym.log Message# +sym.log.histSeCode = History Code +sym.log.sysNm = System Name +sym.log.histCn = History Contents +sym.log.atchFile = Attached File +sym.log.atchFileList = Attached File List +sym.ems.receiver = Receiver +sym.ems.title = Title +sym.ems.content = Content + +#Vlidator Errors# +errors.required={0} is required. +errors.minlength={0} can not be less than {1} characters. +errors.maxlength={0} can not be greater than {1} characters. +errors.invalid={0} is invalid. + +errors.byte={0} must be a byte. +errors.short={0} must be a short. +errors.integer={0} must be an integer. +errors.long={0} must be a long. +errors.float={0} must be a float. +errors.double={0} must be a double. + +errors.date={0} is not a date. +errors.range={0} is not in the range {1} through {2}. +errors.creditcard={0} is an invalid credit card number. +errors.email={0} is an invalid e-mail address. + +#Vlidator Errors- ReprtStatsVO# +sts.reprtId = Report ID +sts.title = Report Title +sts.category = Report Category +sts.status = Report Status +sts.regDate = Registration Date + +#Rest day messages# +sym.cal.restDay = Holiday Date +sym.cal.restName = Holiday Name +sym.cal.restDetail = Holiday Detail +sym.cal.restCategory = Holiday Category \ No newline at end of file diff --git a/src/main/resources/message/com/message-common_ko.properties b/src/main/resources/message/com/message-common_ko.properties new file mode 100644 index 0000000..7457633 --- /dev/null +++ b/src/main/resources/message/com/message-common_ko.properties @@ -0,0 +1,296 @@ +fail.common.msg=\uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +fail.common.sql=sql \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! error code: {0}, error msg: {1} +info.nodata.msg=\ud574\ub2f9 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. + +#UI Common resource# +button.search=\uac80\uc0c9 +button.use=\uc0ac\uc6a9 +button.notUsed=\uc0ac\uc6a9\uc911\uc9c0 +button.inquire=\uc870\ud68c +button.update=\uc218\uc815 +button.create=\ub4f1\ub85d +button.delete=\uc0ad\uc81c +button.deleteDatabase=\uc644\uc804\uc0ad\uc81c +button.close=\ub2eb\uae30 +button.save=\uc800\uc7a5 +button.list=\ubaa9\ub85d +button.reset=\ucde8\uc18c +button.passwordUpdate=\uc554\ud638\ubcc0\uacbd +button.subscribe=\uac00\uc785\uc2e0\uccad +button.realname=\uc2e4\uba85\ud655\uc778 +button.moveToGpin=GPIN\uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.moveToIhidnum=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638 \uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.agree=\ub3d9\uc758 +button.disagree=\ube44\ub3d9\uc758 +button.possible = \uac00\ub2a5 +button.impossible = \ubd88\uac00\ub2a5 +button.qnaregist=Q&A\ub4f1\ub85d +button.cnsltregist=\uc0c1\ub2f4\ub4f1\ub85d +button.preview=\ubbf8\ub9ac\ubcf4\uae30 +button.next=\ub2e4\uc74c +button.add=\ubc14\ub85c\ucd94\uac00 +button.confirm=\ud655\uc778 + + +#UI Common Message# +common.save.msg=\uc800\uc7a5\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.regist.msg=\ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.delete.msg=\uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.update.msg=\uc218\uc815\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.nodata.msg=\uc790\ub8cc\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uac80\uc0c9\uc870\uac74\uc744 \uc120\ud0dd\ud574\uc8fc\uc138\uc694 +common.required.msg=(\uc740)\ub294 \ud544\uc218\uc785\ub825\ud56d\ubaa9\uc785\ub2c8\ub2e4. +common.acknowledgement.msg=\uc2b9\uc778\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.acknowledgementcancel.msg=\uc2b9\uc778\ucde8\uc18c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? + +success.common.select=\uc815\uc0c1\uc801\uc73c\ub85c \uc870\ud68c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.insert=\uc815\uc0c1\uc801\uc73c\ub85c \ub4f1\ub85d\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.update=\uc815\uc0c1\uc801\uc73c\ub85c \uc218\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.delete=\uc815\uc0c1\uc801\uc73c\ub85c \uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +success.request.msg = \uc694\uccad\ucc98\ub9ac\uac00 \uc131\uacf5\uc801\uc73c\ub85c \uc218\ud589\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +common.imposbl.fileupload = \ub354 \uc774\uc0c1 \ud30c\uc77c\uc744 \ucca8\ubd80\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +common.isConfmDe.msg=\uc2b9\uc778\uc77c\uc790\ub97c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4. + + +fail.common.insert = \uc0dd\uc131\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.update = \uc218\uc815\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete = \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete.upperMenuExist = \ucc38\uc870\ub418\ub294 \uba54\ub274\uac00 \uc788\uc5b4 \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.select = \uc870\ud68c\uc5d0 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +common.isExist.msg = \uc774\ubbf8 \uc874\uc7ac\ud558\uac70\ub098 \uacfc\uac70\uc5d0 \ub4f1\ub85d\uc774 \ub418\uc5c8\ub358 \uc0c1\ud0dc\uc785\ub2c8\ub2e4. +fail.common.login = \ub85c\uadf8\uc778 \uc815\ubcf4\uac00 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.common.idsearch = \uc544\uc774\ub514\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.common.pwsearch = \ube44\ubc00\ubc88\ud638\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.request.msg = \uc694\uccad\ucc98\ub9ac\ub97c \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. + +#UI User Message# +fail.user.passwordUpdate1=\ud604\uc7ac \ube44\ubc00\ubc88\ud638\uac00 \ub9de\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.passwordUpdate2=\ube44\ubc00\ubc88\ud638\uc640 \ube44\ubc00\ubc88\ud638 \ud655\uc778\uc774 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +info.user.rlnmCnfirm=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.connectFail=\uc2dc\uc2a4\ud15c \uc7a5\uc560\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.(\uc778\uc99d\uc11c\ubc84 \uc5f0\uacb0 \uc2e4\ud328) +info.user.rlnmPinCnfirm=\uacf5\uacf5 \uc544\uc774\ud540 \uc544\uc774\ub514\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + + +#UI Cop Message# +cop.extrlUser = \uc678\ubd80\uc0ac\uc6a9\uc790 +cop.intrlUser = \ub0b4\ubd80\uc0ac\uc6a9\uc790 +cop.private = \ube44\uacf5\uac1c +cop.public = \uacf5\uac1c + +cop.adbkNm = \uc8fc\uc18c\ub85d\uba85 +cop.othbcScope = \uacf5\uac1c\ubc94\uc704 +cop.company = \ud68c\uc0ac +cop.part = \ubd80\uc11c +cop.man = \uac1c\uc778 +cop.adbkUser = \uad6c\uc131\uc6d0 +cop.bbsNm = \uac8c\uc2dc\ud310\uba85 +cop.bbsIntrcn = \uac8c\uc2dc\ud310\uc18c\uac1c +cop.bbsTyCode = \uac8c\uc2dc\ud310 \uc720\ud615 +cop.bbsAttrbCode = \uac8c\uc2dc\ud310 \uc18d\uc131 +cop.replyPosblAt = \ub2f5\uc7a5\uac00\ub2a5\uc5ec\ubd80 +cop.fileAtchPosblAt = \ud30c\uc77c\ucca8\ubd80\uac00\ub2a5\uc5ec\ubd80 +cop.posblAtchFileNumber = \ucca8\ubd80\uac00\ub2a5\ud30c\uc77c \uc22b\uc790 +cop.tmplatId = \ud15c\ud50c\ub9bf \uc815\ubcf4 +cop.guestList.subject = \ubc29\uba85\ub85d \uac8c\uc2dc\uae00\uc785\ub2c8\ub2e4. +cop.nttSj = \uc81c\ubaa9 +cop.nttCn = \uae00\ub0b4\uc6a9 +cop.ntceBgnde = \uac8c\uc2dc\uc2dc\uc791\uc77c +cop.ntceEndde = \uac8c\uc2dc\uc885\ub8cc\uc77c +cop.ntcrNm = \uc791\uc131\uc790 +cop.password = \ud328\uc2a4\uc6cc\ub4dc +cop.atchFile = \ud30c\uc77c\ucca8\ubd80 +cop.guestList = \ubc29\uba85\ub85d +cop.guestListCn = \ubc29\uba85\ub85d \ub0b4\uc6a9 +cop.noticeTerm = \uac8c\uc2dc\uae30\uac04 +cop.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d +cop.cmmntyNm = \ucee4\ubba4\ub2c8\ud2f0\uba85 +cop.cmmntyIntrcn = \ucee4\ubba4\ub2c8\ud2f0 \uc18c\uac1c +cop.cmmntyMngr = \ucee4\ubba4\ub2c8\ud2f0 \uad00\ub9ac\uc790 +cop.clbOprtr = \ub3d9\ud638\ud68c \uc6b4\uc601\uc790 +cop.clbIntrcn = \ub3d9\ud638\ud68c \uc18c\uac1c +cop.clbNm = \ub3d9\ud638\ud68c \uba85 +cop.tmplatNm = \ud15c\ud50c\ub9bf\uba85 +cop.tmplatSeCode = \ud15c\ud50c\ub9bf \uad6c\ubd84 +cop.tmplatCours = \ud15c\ud50c\ub9bf\uacbd\ub85c +cop.useAt = \uc0ac\uc6a9\uc5ec\ubd80 +cop.ncrdNm = \uc774\ub984 +cop.cmpnyNm = \ud68c\uc0ac\uba85 +cop.deptNm = \ubd80\uc11c\uba85 +cop.ofcpsNm = \uc9c1\uc704 +cop.clsfNm = \uc9c1\uae09 +cop.emailAdres = \uc774\uba54\uc77c\uc8fc\uc18c +cop.telNo = \uc804\ud654\ubc88\ud638 +cop.mbtlNum = \ud734\ub300\ud3f0\ubc88\ud638 +cop.adres = \uc8fc\uc18c +cop.extrlUserAt = \uc678\ubd80\uc0ac\uc6a9\uc790\uc5ec\ubd80 +cop.publicAt = \uacf5\uac1c\uc5ec\ubd80 +cop.remark = \ube44\uace0 +cop.trgetNm = \ucee4\ubba4\ub2c8\ud2f0/\ub3d9\ud638\ud68c \uc815\ubcf4 +cop.preview = \ubbf8\ub9ac\ubcf4\uae30 + +cop.withdraw.msg=\ud0c8\ud1f4\ucc98\ub9ac \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.reregist.msg=\uc7ac\uac00\uc785 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.registmanager.msg=\uc6b4\uc601\uc9c4\uc73c\ub85c \ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.use.msg=\uc0ac\uc6a9 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.unuse.msg=\uc0ac\uc6a9\uc911\uc9c0 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.delete.confirm.msg=\uc0ac\uc6a9\uc911\uc9c0\ub97c \uc120\ud0dd\ud558\uc2e4 \uacbd\uc6b0 \ub2e4\uc2dc \uc0ac\uc6a9\uc73c\ub85c \ubcc0\uacbd\uc774 \ubd88\uac00\ub2a5\ud569\ub2c8\ub2e4. +cop.ing.msg=\uc2b9\uc778\uc694\uccad \uc911\uc785\ub2c8\ub2e4. +cop.request.msg=\uac00\uc785\uc2e0\uccad\uc774 \uc815\uc0c1\uc801\uc73c\ub85c \uc694\uccad\ub418\uc5c8\uc2b5\ub2c8\ub2e4 +cop.password.msg=\ud328\uc2a4\uc6cc\ub4dc\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624. +cop.password.not.same.msg=\ud328\uc2a4\uc6cc\ub4dc\uac00 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +cop.comment.wrterNm = \uc791\uc131\uc790 +cop.comment.commentCn = \ub0b4\uc6a9 +cop.comment.commentPassword = \ud328\uc2a4\uc6cc\ub4dc + +cop.satisfaction.wrterNm = \uc791\uc131\uc790 +cop.satisfaction.stsfdgCn = \ub0b4\uc6a9 +cop.satisfaction.stsfdg = \ub9cc\uc871\ub3c4 +cop.satisfaction.stsfdgPassword = \ud328\uc2a4\uc6cc\ub4dc + +cop.scrap.scrapNm = \uc2a4\ud06c\ub7a9\uba85 + +#UI USS Message# +uss.ion.noi.ntfcSj=\uc81c\ubaa9 +uss.ion.noi.ntfcCn=\ub0b4\uc6a9 +uss.ion.noi.ntfcDate=\uc54c\ub9bc\uc77c\uc790 +uss.ion.noi.ntfcTime=\uc54c\ub9bc\uc2dc\uac04 +uss.ion.noi.ntfcHH=\uc54c\ub9bc\uc2dc\uac04 +uss.ion.noi.ntfcMM=\uc54c\ub9bc\ubd84 +uss.ion.noi.bhNtfcIntrvl=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9 +uss.ion.noi.bhNtfcIntrvl.msg=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. +uss.ion.noi.alertNtfcTime=\uc54c\ub9bc\uc77c\uc790 \ubc0f \uc2dc\uac04\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +#UI COP Message# +cop.sms.trnsmitTelno=\ubc1c\uc2e0\uc804\ud654\ubc88\ud638 +cop.sms.trnsmitCn=\uc804\uc1a1\ub0b4\uc6a9 +cop.sms.recptnTelno=\uc218\uc2e0\uc804\ud654\ubc88\ud638 +cop.sms.send=\uc804\uc1a1 +cop.sms.addRecptn=\ucd94\uac00 +cop.sms.recptnTelno.msg=\uc218\uc2e0\uc804\ud654\ubc88\ud638 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. + +#UI sym.log Message# +sym.log.histSeCode = \uc774\ub825\uad6c\ubd84 +sym.log.sysNm = \uc2dc\uc2a4\ud15c\uba85 +sym.log.histCn = \uc774\ub825\ub0b4\uc6a9 +sym.log.atchFile = \ucca8\ubd80\ud30c\uc77c +sym.log.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d +sym.ems.receiver = \ubc1b\ub294\uc0ac\ub78c +sym.ems.title = \uc81c\ubaa9 +sym.ems.content = \ubc1c\uc2e0\ub0b4\uc6a9 + +#Vlidator Errors# +errors.prefix=
+errors.suffix=

+ +errors.required={0}\uc740(\ub294) \ud544\uc218 \uc785\ub825\uac12\uc785\ub2c8\ub2e4. +errors.minlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.maxlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.invalid={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uac12\uc785\ub2c8\ub2e4. +errors.minInteger={0}\uc740(\ub294) \uc720\ud6a8\ud55c \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4. 1 \uc774\uc0c1\uc758 \uac12\uc744 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.byte={0}\uc740(\ub294) byte\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.short={0}\uc740(\ub294) short\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.integer={0}\uc740(\ub294) \uc815\uc218 \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.long={0}\uc740(\ub294) long \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.float={0}\uc740(\ub294) \uc2e4\uc218 \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.double={0}\uc740(\ub294) double \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. + +errors.date={0}\uc740(\ub294) \ub0a0\uc9dc \uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.range={0}\uc740(\ub294) {1}\uacfc {2} \uc0ac\uc774\uc758 \uac12\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.creditcard={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc2e0\uc6a9\uce74\ub4dc \ubc88\ud638\uc785\ub2c8\ub2e4. +errors.email={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc774\uba54\uc77c \uc8fc\uc18c\uc785\ub2c8\ub2e4. + +errors.ihidnum=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\uc785\ub2c8\ub2e4. +errors.korean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc785\ub825\ud558\uc154\uc57c \ud569\ub2c8\ub2e4. +errors.ip=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 IP\uc8fc\uc18c\uc785\ub2c8\ub2e4. + +errors.password1={0}\uc740(\ub294) 8~20\uc790 \ub0b4\uc5d0\uc11c \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.password2={0}\uc740(\ub294) \ud55c\uae00,\ud2b9\uc218\ubb38\uc790,\ub744\uc5b4\uc4f0\uae30\ub294 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +errors.password3={0}\uc740(\ub294) \uc21c\ucc28\uc801\uc778 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.password4={0}\uc740(\ub294) \ubc18\ubcf5\ub418\ub294 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +errors.notKorean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +error.security.runtime.error = error +#Vlidator Errors- wordDicaryVO# +wordDicaryVO.wordNm=\uc6a9\uc5b4\uba85 +wordDicaryVO.engNm=\uc601\ubb38\uba85 +wordDicaryVO.wordDc=\uc6a9\uc5b4\uc124\uba85 +wordDicaryVO.synonm=\ub3d9\uc758\uc5b4 + +#Vlidator Errors- cnsltManageVO# +cnsltManageVO.cnsltSj=\uc0c1\ub2f4\uc81c\ubaa9 +cnsltManageVO.cnsltCn=\uc0c1\ub2f4\ub0b4\uc6a9 +cnsltManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638 +cnsltManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638 +cnsltManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638 +cnsltManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638 +cnsltManageVO.wrterNm=\uc791\uc131\uc790\uba85 +cnsltManageVO.managtCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- siteManageVO# +siteManageVO.siteNm=\uc0ac\uc774\ud2b8\uba85 +siteManageVO.siteUrl=\uc0ac\uc774\ud2b8 URL +siteManageVO.siteDc=\uc0ac\uc774\ud2b8\uc124\uba85 +siteManageVO.siteThemaClCode=\uc0ac\uc774\ud2b8\uc8fc\uc81c\ubd84\ub958 +siteManageVO.actvtyAt=\ud65c\uc131\uc5ec\ubd80 +siteManageVO.useAt=\uc0ac\uc6a9\uc5ec\ubd80 + +#Vlidator Errors- recomendSiteManageVO# +recomendSiteManageVO.recomendSiteNm=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uba85 +recomendSiteManageVO.recomendSiteUrl=\ucd94\ucc9c\uc0ac\uc774\ud2b8 URL +recomendSiteManageVO.recomendSiteDc=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc124\uba85 +recomendSiteManageVO.recomendResnCn=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc2b9\uc778\uc0ac\uc720 +recomendSiteManageVO.confmDe=\uc2b9\uc778\uc77c\uc790 + +#Vlidator Errors- hpcmManageVO# +hpcmManageVO.hpcmSeCode=\ub3c4\uc6c0\ub9d0\uad6c\ubd84 +hpcmManageVO.hpcmDf=\ub3c4\uc6c0\ub9d0\uc815\uc758 +hpcmManageVO.hpcmDc=\ub3c4\uc6c0\ub9d0\uc124\uba85 + +#Vlidator Errors- newsManageVO# +newsManageVO.newsSj=\ub274\uc2a4\uc81c\ubaa9 +newsManageVO.newsCn=\ub274\uc2a4\ub0b4\uc6a9 +newsManageVO.ntceDe=\uac8c\uc2dc\uc77c\uc790 + +#Vlidator Errors- faqManageVO# +faqManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9 +faqManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9 +faqManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- stplatManageVO# +stplatManageVO.useStplatNm=\uc774\uc6a9\uc57d\uad00\uba85 +stplatManageVO.useStplatCn=\uc774\uc6a9\uc57d\uad00\ub0b4\uc6a9 +stplatManageVO.infoProvdAgreCn=\uc815\ubcf4\uc81c\uacf5\ub3d9\uc758\ub0b4\uc6a9 + +#Vlidator Errors- cpyrhtPrtcPolicyVO# +cpyrhtPrtcPolicyVO.cpyrhtPrtcPolicyCn=\uc800\uc791\uad8c\ubcf4\ud638\uc815\ucc45\ub0b4\uc6a9 + +#Vlidator Errors- qnaManageVO# +qnaManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9 +qnaManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9 +qnaManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638 +qnaManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638 +qnaManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638 +qnaManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638 +qnaManageVO.wrterNm=\uc791\uc131\uc790\uba85 +qnaManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- ReprtStatsVO# +sts.reprtId = \ubcf4\uace0\uc11cID +sts.title = \ubcf4\uace0\uc11c\uba85 +sts.category = \ubcf4\uace0\uc11c\uc720\ud615 +sts.status = \uc9c4\ud589\uc0c1\ud0dc +sts.regDate = \ub4f1\ub85d\uc77c\uc2dc + +#Rest day messages# +sym.cal.restDay = \ud734\uc77c\uc77c\uc790 +sym.cal.restName = \ud734\uc77c\uba85 +sym.cal.restDetail = \ud734\uc77c\uc124\uba85 +sym.cal.restCategory = \ud734\uc77c\uad6c\ubd84 + +image.errorBg = \uc624\ub958\uc774\ubbf8\uc9c0 \ No newline at end of file diff --git a/src/main/webapp/.gitignore b/src/main/webapp/.gitignore new file mode 100644 index 0000000..0d27a54 --- /dev/null +++ b/src/main/webapp/.gitignore @@ -0,0 +1 @@ +/nonEgov diff --git a/src/main/webapp/ClipReport4/Clip.jsp b/src/main/webapp/ClipReport4/Clip.jsp new file mode 100644 index 0000000..cceceaa --- /dev/null +++ b/src/main/webapp/ClipReport4/Clip.jsp @@ -0,0 +1,161 @@ +<%@page import="java.io.OutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.io.File"%> +<%@ page import="com.clipsoft.clipreport.server.service.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.export.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.export.save.SAVEReport" %> +<%@ page import="com.clipsoft.clipreport.server.service.html.PrintHTML" %> +<%@ page import="com.clipsoft.clipreport.server.service.reporteservice.*" %> +<%@page import="com.clipsoft.clipreport.server.service.eform.EFormUpdateDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.eform.EFormPage"%> +<%@include file="Property.jsp"%><% +out.clear(); +out=pageContext.pushBody(); + +//크로스 도메인 설정 +//response.setHeader("Access-Control-Allow-Origin", "*"); + +//세션을 활용하여 리포트키들을 관리하지 않는 옵션 +//request.getSession().setAttribute("ClipReport-SessionList-Allow", false); + +String passName = request.getParameter("ClipID"); +if(null != passName){ + if("R01".equals(passName)){ + NewReport newReport = new NewReport(); + newReport.doPost(request, response, propertyPath); + //String responseValue = newReport.doPostToString(request, response, propertyPath); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //clipreport4.properties 의 useuserid 옵션이 true 이고 기본 예제[newReport.doPost(request, response, propertyPath);] 사용 했을 때 세션ID가 userID로 사용 됩니다. + //newReport.doPost(request, response, propertyPath, "userID"); + } + else if("R02".equals(passName)){ + Page page1 = new Page(); + page1.doPost(request, response, propertyPath); + //String responseValue = page1.doPostToString(request, response, propertyPath); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, propertyPath, "userID"); + } + else if("R03".equals(passName)){ + PageCount pageCount = new PageCount(); + pageCount.doPost(request, response, propertyPath); + //String responseValue = pageCount.doPostToString(request, response, propertyPath); + } + else if("R04".equals(passName)){ + DeleteReport deleteReport = new DeleteReport(); + deleteReport.doPost(request, response); + //String responseValue = deleteReport.doPostToString(request, response, propertyPath); + } + + else if("R07".equals(passName)){ + HWPReport hwpReport = new HWPReport(); + hwpReport.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //hwpReport.doPost(request, response, "userID"); + } + else if("R08".equals(passName)){ + PDFReport pdfReport = new PDFReport(); + pdfReport.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //pdfReport.doPost(request, response, "userID"); + } + else if("R09".equals(passName)){ + SAVEReport saveReport = new SAVEReport(); + saveReport.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //saveReport.doPost(request, response, "userID"); + + + //문서 암호화를 처리하기 위해서는 jsp forward 사용 합니다. + //RequestDispatcher dispatcher = request.getRequestDispatcher("export/exportForEncryption.jsp"); + //dispatcher.forward(request, response); + + } + else if("R10".equals(passName)){ + PagePrint page1 = new PagePrint(); + page1.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, "userID"); + } + else if("R11".equals(passName)){ + UpDatePage page1 = new UpDatePage(); + page1.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, "userID"); + } + +// else if("R15".equals(passName)){ +// PrintHTML printHTML = new PrintHTML(); +// printHTML.doPost(request, response); +// } + + else if ("R16".equals(passName)) { + FileDownLoadCheck fileCheck = new FileDownLoadCheck(); + fileCheck.doPost(request, response); + //String responseValue = fileCheck.doPostToString(request, response, propertyPath); + } + else if ("R17".equals(passName)) { + PageImage pageImage = new PageImage(); + pageImage.doPost(request, response); + } + else if("R30".equals(passName)){ + EFormPage eformPage = new EFormPage(); + eformPage.doPost(request, response, propertyPath); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //eformPage.doPost(request, response, propertyPath, "userID"); + } + else if("R31".equals(passName)){ + EFormUpdateDocument eformUpDate = new EFormUpdateDocument(); + eformUpDate.doPost(request, response); + } + + else if ("R50".equals(passName)) { + PrintLicense printLicense = new PrintLicense(); + printLicense.doPost(request, response, propertyPath); + } + else if ("R51".equals(passName)) { + UpdateLicense updateLicense = new UpdateLicense(); + updateLicense.doPost(request, response, propertyPath); + } + else if ("R52".equals(passName)) { + ConfigurationAuthorization authorization = new ConfigurationAuthorization(); + authorization.doPost(request, response, propertyPath); + } + else if("R97".equals(passName)){ + SVGExport svgExport = new SVGExport(); + svgExport.doZipPost(request, response); + } + else if ("S01".equals(passName)){ + StringBuffer sessionCookie = new StringBuffer(); + Cookie[] cookies = request.getCookies(); + if(cookies != null) { + for (int i = 0; i < cookies.length; i++) { + Cookie cookie = cookies[i]; + sessionCookie.append(cookie.getName() + "=" + cookie.getValue() + ";"); + } + } + + OutputStream outputStream = response.getOutputStream(); + outputStream.write(sessionCookie.toString().getBytes("UTF-8")); + outputStream.flush(); + outputStream.close(); + } + + // Report +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/ClipAndCAB.jsp b/src/main/webapp/ClipReport4/ClipAndCAB.jsp new file mode 100644 index 0000000..9a15280 --- /dev/null +++ b/src/main/webapp/ClipReport4/ClipAndCAB.jsp @@ -0,0 +1,139 @@ +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.FileInputStream"%> +<%@ page import="java.io.File"%> +<%@ page import="com.clipsoft.clipreport.server.service.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.export.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.export.save.SAVEReport" %> +<%@ page import="com.clipsoft.clipreport.server.service.html.PrintHTML" %> +<%@ page import="com.clipsoft.clipreport.server.service.reporteservice.*" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="Property.jsp"%><% + +out.clear(); +out=pageContext.pushBody(); + +//크로스 도메인 설정 +//response.setHeader("Access-Control-Allow-Origin", "*"); + +String passName = request.getParameter("ClipID"); +if(null != passName){ + if("R01".equals(passName)){ + NewReport newReport = new NewReport(); + newReport.doPost(request, response, propertyPath); + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //clipreport4.properties 의 useuserid 옵션이 true 이고 기본 예제[newReport.doPost(request, response, propertyPath);] 사용 했을 때 세션ID가 userID로 사용 됩니다. + //newReport.doPost(request, response, propertyPath, "userID"); + } + else if("R02".equals(passName)){ + Page page1 = new Page(); + page1.doPost(request, response, propertyPath); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, propertyPath, "userID"); + } + else if("R03".equals(passName)){ + PageCount pageCount = new PageCount(); + pageCount.doPost(request, response, propertyPath); + } + else if("R04".equals(passName)){ + DeleteReport deleteReport = new DeleteReport(); + deleteReport.doPost(request, response); + } + else if("R07".equals(passName)){ + HWPReport hwpReport = new HWPReport(); + hwpReport.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //hwpReport.doPost(request, response, "userID"); + + } + else if("R08".equals(passName)){ + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //ExportInfo exportInfo = ClipReportExport.reportToCAB(request, response, "userID"); + + ExportInfo exportInfo = ClipReportExport.reportToCAB(request, response); + int errorCode = exportInfo.getErrorCode(); + //errorCode == 0 정상 + //errorCode == 1 결과물(document) 파일을 찾을 수 없을 때 오류 + //errorCode == 2 pdf, 바코드에 사용할 html 생성시 오류 + + + //저장한 pdf 파일 위치 + System.out.println(exportInfo.getExportfilePath()); + //바코드에 사용할 저장한 html 파일 위치 + System.out.println(exportInfo.getExportDataFilePath()); + + String dstFile = exportInfo.getExportfilePath(); + //DRM PDF 로 변환(변환된 파일주소를 dstFile 변수에 넣어주시면 됩니다.) + + + //변환된 pdf 클라이언트로 파일 내리기 + File downloadFile = new File(dstFile); + FileInputStream inStream = new FileInputStream(downloadFile); + // obtains response's output stream + OutputStream outStream = response.getOutputStream(); + + byte[] buffer = new byte[4096]; + int bytesRead = -1; + + while ((bytesRead = inStream.read(buffer)) != -1) { + outStream.write(buffer, 0, bytesRead); + } + + inStream.close(); + outStream.close(); + + //생성한 파일 삭제 + ClipReportExport.deleteToFile(request, exportInfo); + } + else if("R09".equals(passName)){ + SAVEReport saveReport = new SAVEReport(); + saveReport.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //saveReport.doPost(request, response, "userID"); + + } + else if("R10".equals(passName)){ + PagePrint page1 = new PagePrint(); + page1.doPost(request, response); + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, "userID"); + } + else if("R11".equals(passName)){ + UpDatePage page1 = new UpDatePage(); + page1.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, "userID"); + } +// else if("R15".equals(passName)){ +// PrintHTML printHTML = new PrintHTML(); +// printHTML.doPost(request, response); +// } + else if ("R16".equals(passName)) { + FileDownLoadCheck fileCheck = new FileDownLoadCheck(); + fileCheck.doPost(request, response); + } + else if ("R17".equals(passName)) { + PageImage pageImage = new PageImage(); + pageImage.doPost(request, response); + } + else if ("R50".equals(passName)) { + PrintLicense printLicense = new PrintLicense(); + printLicense.doPost(request, response, propertyPath); + } + else if ("R51".equals(passName)) { + UpdateLicense updateLicense = new UpdateLicense(); + updateLicense.doPost(request, response, propertyPath); + } + // Report +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/ClipAndFarsoo.jsp b/src/main/webapp/ClipReport4/ClipAndFarsoo.jsp new file mode 100644 index 0000000..bf97541 --- /dev/null +++ b/src/main/webapp/ClipReport4/ClipAndFarsoo.jsp @@ -0,0 +1,129 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.io.File"%> +<%@ page import="com.clipsoft.clipreport.server.service.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.export.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.export.save.SAVEReport" %> +<%@ page import="com.clipsoft.clipreport.server.service.html.PrintHTML" %> +<%@ page import="com.clipsoft.clipreport.server.service.reporteservice.*" %> +<%@include file="Property.jsp"%><% + +out.clear(); +out=pageContext.pushBody(); + +//크로스 도메인 설정 +//response.setHeader("Access-Control-Allow-Origin", "*"); + +//세션을 활용하여 리포트키들을 관리하지 않는 옵션 +//request.getSession().setAttribute("ClipReport-SessionList-Allow", false); + +String passName = request.getParameter("ClipID"); + + +if(null != passName){ + if("R01".equals(passName)){ + NewReport newReport = new NewReport(); + newReport.doPost(request, response, propertyPath); + //String responseValue = newReport.doPostToString(request, response, propertyPath); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //clipreport4.properties 의 useuserid 옵션이 true 이고 기본 예제[newReport.doPost(request, response, propertyPath);] 사용 했을 때 세션ID가 userID로 사용 됩니다. + //newReport.doPost(request, response, propertyPath, "userID"); + } + else if("R02".equals(passName)){ + Page page1 = new Page(); + page1.doPost(request, response, propertyPath); + //String responseValue = page1.doPostToString(request, response, propertyPath); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, propertyPath, "userID"); + } + else if("R03".equals(passName)){ + PageCount pageCount = new PageCount(); + pageCount.doPost(request, response, propertyPath); + //String responseValue = pageCount.doPostToString(request, response, propertyPath); + } + else if("R04".equals(passName)){ + DeleteReport deleteReport = new DeleteReport(); + deleteReport.doPost(request, response); + //String responseValue = deleteReport.doPostToString(request, response, propertyPath); + } + + else if("R07".equals(passName)){ + HWPReport hwpReport = new HWPReport(); + hwpReport.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //hwpReport.doPost(request, response, "userID"); + } + else if("R08".equals(passName)){ + PDFReport pdfReport = new PDFReport(); + //jsp 변경한 이름을 뒤에 동일하게 넣어줍니다. + pdfReport.doPostToFarsoo(request, response, "ClipAndFarsoo.jsp"); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //pdfReport.doPostToFarsoo(request, response, "ClipAndFarsoo.jsp", "userID"); + + } + else if("R09".equals(passName)){ + SAVEReport saveReport = new SAVEReport(); + saveReport.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //saveReport.doPost(request, response, "userID"); + + //문서 암호화를 처리하기 위해서는 jsp forward 사용 합니다. + //RequestDispatcher dispatcher = request.getRequestDispatcher("export/exportForEncryption.jsp"); + //dispatcher.forward(request, response); + + } + else if("R10".equals(passName)){ + PagePrint page1 = new PagePrint(); + page1.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, "userID"); + } + else if("R11".equals(passName)){ + UpDatePage page1 = new UpDatePage(); + page1.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, "userID"); + } + +// else if("R15".equals(passName)){ +// PrintHTML printHTML = new PrintHTML(); +// printHTML.doPost(request, response); +// } + + else if ("R16".equals(passName)) { + FileDownLoadCheck fileCheck = new FileDownLoadCheck(); + fileCheck.doPost(request, response); + } + else if ("R17".equals(passName)) { + PageImage pageImage = new PageImage(); + pageImage.doPost(request, response); + } + + else if ("R50".equals(passName)) { + PrintLicense printLicense = new PrintLicense(); + printLicense.doPost(request, response, propertyPath); + } + else if ("R51".equals(passName)) { + UpdateLicense updateLicense = new UpdateLicense(); + updateLicense.doPost(request, response, propertyPath); + } + else if ("R52".equals(passName)) { + ConfigurationAuthorization authorization = new ConfigurationAuthorization(); + authorization.doPost(request, response, propertyPath); + } + // Report +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/ClipAndMarkAny.jsp b/src/main/webapp/ClipReport4/ClipAndMarkAny.jsp new file mode 100644 index 0000000..1513e34 --- /dev/null +++ b/src/main/webapp/ClipReport4/ClipAndMarkAny.jsp @@ -0,0 +1,153 @@ +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.FileInputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.io.File"%> +<%@ page import="com.clipsoft.clipreport.server.service.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.export.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.export.save.SAVEReport" %> +<%@ page import="com.clipsoft.clipreport.server.service.html.PrintHTML" %> +<%@ page import="com.clipsoft.clipreport.server.service.reporteservice.*" %> +<%@include file="Property.jsp"%><% + +out.clear(); +out=pageContext.pushBody(); + +//크로스 도메인 설정 +//response.setHeader("Access-Control-Allow-Origin", "*"); + +String passName = request.getParameter("ClipID"); +if(null != passName){ + if("R01".equals(passName)){ + NewReport newReport = new NewReport(); + newReport.doPost(request, response, propertyPath); + //String responseValue = newReport.doPostToString(request, response, propertyPath); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //clipreport4.properties 의 useuserid 옵션이 true 이고 기본 예제[newReport.doPost(request, response, propertyPath);] 사용 했을 때 세션ID가 userID로 사용 됩니다. + //newReport.doPost(request, response, propertyPath, "userID"); + } + else if("R02".equals(passName)){ + Page page1 = new Page(); + page1.doPost(request, response, propertyPath); + //String responseValue = page1.doPostToString(request, response, propertyPath); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, propertyPath, "userID"); + } + else if("R03".equals(passName)){ + PageCount pageCount = new PageCount(); + pageCount.doPost(request, response, propertyPath); + //String responseValue = pageCount.doPostToString(request, response, propertyPath); + } + else if("R04".equals(passName)){ + DeleteReport deleteReport = new DeleteReport(); + deleteReport.doPost(request, response); + //String responseValue = deleteReport.doPostToString(request, response, propertyPath); + } + + else if("R07".equals(passName)){ + HWPReport hwpReport = new HWPReport(); + hwpReport.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //hwpReport.doPost(request, response, "userID"); + } + else if("R08".equals(passName)){ + //**********MarkAny print 연동부분******************* + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //ExportInfo exportInfo = ClipReportExport.reportToMarkAny(request, response, "userID"); + ExportInfo exportInfo = ClipReportExport.reportToMarkAny(request, response); + int errorCode = exportInfo.getErrorCode(); + //errorCode == 0 정상 + //errorCode == 1 결과물(document) 파일을 찾을 수 없을 때 오류 + //errorCode == 2 pdf, 바코드데이터 생성시 오류 + + //저장한 pdf 파일 위치 + System.out.println(exportInfo.getExportfilePath()); + //바코드에 사용할 저장한 data 파일 위치 + System.out.println(exportInfo.getExportDataFilePath()); + //pdf 페이지 수 + System.out.println("pageCount:" + exportInfo.getPageCount()); + //바코드 좌표 + System.out.println("left:" +exportInfo.getLeft()+" right:" + exportInfo.getRight() + " top:" + exportInfo.getTop() + " bottom:" + exportInfo.getBottom()); + //세로 문서 : 0 가로 문서 : 1 + System.out.println("PaperOrientation:" + exportInfo.getPaperOrientation()); + + String dstFile = exportInfo.getExportfilePath(); + //DRM PDF 로 변환(변환된 파일주소를 dstFile 변수에 넣어주시면 됩니다.) + + //변환된 pdf 클라이언트로 파일 내리기 + File downloadFile = new File(dstFile); + FileInputStream inStream = new FileInputStream(downloadFile); + // obtains response's output stream + OutputStream outStream = response.getOutputStream(); + + byte[] buffer = new byte[4096]; + int bytesRead = -1; + + while ((bytesRead = inStream.read(buffer)) != -1) { + outStream.write(buffer, 0, bytesRead); + } + inStream.close(); + outStream.close(); + //생성한 파일 삭제 + ClipReportExport.deleteToFile(request, exportInfo); + } + else if("R09".equals(passName)){ + SAVEReport saveReport = new SAVEReport(); + saveReport.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //saveReport.doPost(request, response, "userID"); + + + //문서 암호화를 처리하기 위해서는 jsp forward 사용 합니다. + //RequestDispatcher dispatcher = request.getRequestDispatcher("export/exportForEncryption.jsp"); + //dispatcher.forward(request, response); + + } + else if("R10".equals(passName)){ + PagePrint page1 = new PagePrint(); + page1.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, "userID"); + } + else if("R11".equals(passName)){ + UpDatePage page1 = new UpDatePage(); + page1.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, "userID"); + } +// else if("R15".equals(passName)){ +// PrintHTML printHTML = new PrintHTML(); +// printHTML.doPost(request, response); +// } + else if ("R16".equals(passName)) { + FileDownLoadCheck fileCheck = new FileDownLoadCheck(); + fileCheck.doPost(request, response); + } + else if ("R17".equals(passName)) { + PageImage pageImage = new PageImage(); + pageImage.doPost(request, response); + } + else if ("R50".equals(passName)) { + PrintLicense printLicense = new PrintLicense(); + printLicense.doPost(request, response, propertyPath); + } + else if ("R51".equals(passName)) { + UpdateLicense updateLicense = new UpdateLicense(); + updateLicense.doPost(request, response, propertyPath); + } + // Report +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/ClipAndRedBC.jsp b/src/main/webapp/ClipReport4/ClipAndRedBC.jsp new file mode 100644 index 0000000..b627903 --- /dev/null +++ b/src/main/webapp/ClipReport4/ClipAndRedBC.jsp @@ -0,0 +1,154 @@ +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.FileInputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.io.File"%> +<%@ page import="com.clipsoft.clipreport.server.service.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.export.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.export.save.SAVEReport" %> +<%@ page import="com.clipsoft.clipreport.server.service.html.PrintHTML" %> +<%@ page import="com.clipsoft.clipreport.server.service.reporteservice.*" %> +<%@include file="Property.jsp"%><% + +out.clear(); +out=pageContext.pushBody(); + +//크로스 도메인 설정 +//response.setHeader("Access-Control-Allow-Origin", "*"); + +String passName = request.getParameter("ClipID"); +if(null != passName){ + if("R01".equals(passName)){ + NewReport newReport = new NewReport(); + newReport.doPost(request, response, propertyPath); + //String responseValue = newReport.doPostToString(request, response, propertyPath); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //clipreport4.properties 의 useuserid 옵션이 true 이고 기본 예제[newReport.doPost(request, response, propertyPath);] 사용 했을 때 세션ID가 userID로 사용 됩니다. + //newReport.doPost(request, response, propertyPath, "userID"); + } + else if("R02".equals(passName)){ + Page page1 = new Page(); + page1.doPost(request, response, propertyPath); + //String responseValue = page1.doPostToString(request, response, propertyPath); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, propertyPath, "userID"); + } + else if("R03".equals(passName)){ + PageCount pageCount = new PageCount(); + pageCount.doPost(request, response, propertyPath); + //String responseValue = pageCount.doPostToString(request, response, propertyPath); + } + else if("R04".equals(passName)){ + DeleteReport deleteReport = new DeleteReport(); + deleteReport.doPost(request, response); + //String responseValue = deleteReport.doPostToString(request, response, propertyPath); + } + + else if("R07".equals(passName)){ + HWPReport hwpReport = new HWPReport(); + hwpReport.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //hwpReport.doPost(request, response, "userID"); + } + else if("R08".equals(passName)){ + //**********RebBC print 연동부분******************* + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //ExportInfo exportInfo = ClipReportExport.reportToRedBC(request, response, "userID"); + + ExportInfo exportInfo = ClipReportExport.reportToRedBC(request, response); + int errorCode = exportInfo.getErrorCode(); + //errorCode == 0 정상 + //errorCode == 1 결과물(document) 파일을 찾을 수 없을 때 오류 + //errorCode == 2 pdf, 바코드데이터 생성시 오류 + + //저장한 pdf 파일 위치 + System.out.println(exportInfo.getExportfilePath()); + //저장한 pdf 파일 이름 + System.out.println(exportInfo.getExportfileName()); + //바코드에 사용할 저장한 data 파일 위치 + System.out.println(exportInfo.getExportDataFilePath()); + //pdf 페이지 수 + System.out.println(exportInfo.getPageCount()); + + String dstFile = exportInfo.getExportfilePath(); + //DRM PDF 로 변환(변환된 파일주소를 dstFile 변수에 넣어주시면 됩니다.) + + + + //변환된 pdf 클라이언트로 파일 내리기 + File downloadFile = new File(dstFile); + FileInputStream inStream = new FileInputStream(downloadFile); + // obtains response's output stream + OutputStream outStream = response.getOutputStream(); + + byte[] buffer = new byte[4096]; + int bytesRead = -1; + + while ((bytesRead = inStream.read(buffer)) != -1) { + outStream.write(buffer, 0, bytesRead); + } + inStream.close(); + outStream.close(); + //생성한 파일 삭제 + ClipReportExport.deleteToFile(request, exportInfo); + } + else if("R09".equals(passName)){ + SAVEReport saveReport = new SAVEReport(); + saveReport.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //saveReport.doPost(request, response, "userID"); + + + //문서 암호화를 처리하기 위해서는 jsp forward 사용 합니다. + //RequestDispatcher dispatcher = request.getRequestDispatcher("export/exportForEncryption.jsp"); + //dispatcher.forward(request, response); + + } + else if("R10".equals(passName)){ + PagePrint page1 = new PagePrint(); + page1.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, "userID"); + } + else if("R11".equals(passName)){ + UpDatePage page1 = new UpDatePage(); + page1.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, "userID"); + } +// else if("R15".equals(passName)){ +// PrintHTML printHTML = new PrintHTML(); +// printHTML.doPost(request, response); +// } + else if ("R16".equals(passName)) { + FileDownLoadCheck fileCheck = new FileDownLoadCheck(); + fileCheck.doPost(request, response); + } + else if ("R17".equals(passName)) { + PageImage pageImage = new PageImage(); + pageImage.doPost(request, response); + } + else if ("R50".equals(passName)) { + PrintLicense printLicense = new PrintLicense(); + printLicense.doPost(request, response, propertyPath); + } + else if ("R51".equals(passName)) { + UpdateLicense updateLicense = new UpdateLicense(); + updateLicense.doPost(request, response, propertyPath); + } + // Report +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/ClipAndVoiceEye.jsp b/src/main/webapp/ClipReport4/ClipAndVoiceEye.jsp new file mode 100644 index 0000000..16e5829 --- /dev/null +++ b/src/main/webapp/ClipReport4/ClipAndVoiceEye.jsp @@ -0,0 +1,118 @@ +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.FileInputStream"%> +<%@ page import="java.io.File"%> +<%@ page import="com.clipsoft.clipreport.server.service.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.export.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.export.save.SAVEReport" %> +<%@ page import="com.clipsoft.clipreport.server.service.html.PrintHTML" %> +<%@ page import="com.clipsoft.clipreport.server.service.reporteservice.*" %> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="Property.jsp"%><% + +out.clear(); +out=pageContext.pushBody(); + +//크로스 도메인 설정 +//response.setHeader("Access-Control-Allow-Origin", "*"); + +String passName = request.getParameter("ClipID"); +if(null != passName){ + if("R01".equals(passName)){ + NewReport newReport = new NewReport(); + newReport.doPost(request, response, propertyPath); + //String responseValue = newReport.doPostToString(request, response, propertyPath); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //clipreport4.properties 의 useuserid 옵션이 true 이고 기본 예제[newReport.doPost(request, response, propertyPath);] 사용 했을 때 세션ID가 userID로 사용 됩니다. + //newReport.doPost(request, response, propertyPath, "userID"); + } + else if("R02".equals(passName)){ + Page page1 = new Page(); + page1.doPost(request, response, propertyPath); + //String responseValue = page1.doPostToString(request, response, propertyPath); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, propertyPath, "userID"); + } + else if("R03".equals(passName)){ + PageCount pageCount = new PageCount(); + pageCount.doPost(request, response, propertyPath); + //String responseValue = pageCount.doPostToString(request, response, propertyPath); + } + else if("R04".equals(passName)){ + DeleteReport deleteReport = new DeleteReport(); + deleteReport.doPost(request, response); + //String responseValue = deleteReport.doPostToString(request, response, propertyPath); + } + + else if("R07".equals(passName)){ + HWPReport hwpReport = new HWPReport(); + hwpReport.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //hwpReport.doPost(request, response, "userID"); + } + else if("R08".equals(passName)){ + PDFReport pdfReport = new PDFReport(); + pdfReport.doPostToLocalSaveFileVoiceEye(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //pdfReport.doPostToLocalSaveFileVoiceEye(request, response, "userID"); + } + else if("R09".equals(passName)){ + SAVEReport saveReport = new SAVEReport(); + saveReport.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //saveReport.doPost(request, response, "userID"); + + + //문서 암호화를 처리하기 위해서는 jsp forward 사용 합니다. + //RequestDispatcher dispatcher = request.getRequestDispatcher("export/exportForEncryption.jsp"); + //dispatcher.forward(request, response); + + } + else if("R10".equals(passName)){ + PagePrint page1 = new PagePrint(); + page1.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, "userID"); + } + else if("R11".equals(passName)){ + UpDatePage page1 = new UpDatePage(); + page1.doPost(request, response); + + //리포트의 특정 사용자 ID를 부여합니다. + //clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. + //page1.doPost(request, response, "userID"); + } +// else if("R15".equals(passName)){ +// PrintHTML printHTML = new PrintHTML(); +// printHTML.doPost(request, response); +// } + else if ("R16".equals(passName)) { + FileDownLoadCheck fileCheck = new FileDownLoadCheck(); + fileCheck.doPost(request, response); + } + else if ("R17".equals(passName)) { + PageImage pageImage = new PageImage(); + pageImage.doPost(request, response); + } + else if ("R50".equals(passName)) { + PrintLicense printLicense = new PrintLicense(); + printLicense.doPost(request, response, propertyPath); + } + else if ("R51".equals(passName)) { + UpdateLicense updateLicense = new UpdateLicense(); + updateLicense.doPost(request, response, propertyPath); + } + // Report +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/ClipDRM.jsp b/src/main/webapp/ClipReport4/ClipDRM.jsp new file mode 100644 index 0000000..4e3a7fc --- /dev/null +++ b/src/main/webapp/ClipReport4/ClipDRM.jsp @@ -0,0 +1,89 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.io.File"%> +<%@ page import="com.clipsoft.clipreport.server.service.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.export.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.export.save.SAVEReport" %> +<%@ page import="com.clipsoft.clipreport.server.service.html.PrintHTML" %> +<%@ page import="com.clipsoft.clipreport.server.service.reporteservice.*" %> +<%@include file="Property.jsp"%><% + +out.clear(); +out=pageContext.pushBody(); + +//크로스 도메인 설정 +//response.setHeader("Access-Control-Allow-Origin", "*"); + +String passName = request.getParameter("ClipID"); +if(null != passName){ + if("R01".equals(passName)){ + NewReport newReport = new NewReport(); + newReport.doPost(request, response, propertyPath); + } + else if("R02".equals(passName)){ + Page page1 = new Page(); + page1.doPost(request, response); + } + else if("R03".equals(passName)){ + PageCount pageCount = new PageCount(); + pageCount.doPost(request, response); + } + else if("R04".equals(passName)){ + DeleteReport deleteReport = new DeleteReport(); + deleteReport.doPost(request, response); + } + else if("R05".equals(passName)){ + EXCELReport excelReport = new EXCELReport(); + excelReport.doPost(request, response); + } + else if("R06".equals(passName)){ + HTMLReport htmlReport = new HTMLReport(); + htmlReport.doPost(request, response); + } + else if("R07".equals(passName)){ + HWPReport hwpReport = new HWPReport(); + hwpReport.doPost(request, response); + } + else if("R08".equals(passName)){ + //PDFReport pdfReport = new PDFReport(); + //pdfReport.doPost(request, response); + + //인쇄 제어하기 위한 jsp forward 사용 합니다. + RequestDispatcher dispatcher = request.getRequestDispatcher("export/exportForPrintEncryption.jsp"); + dispatcher.forward(request, response); + } + else if("R09".equals(passName)){ + SAVEReport saveReport = new SAVEReport(); + saveReport.doPost(request, response); + + //문서 암호화를 처리하기 위해서는 jsp forward 사용 합니다. + //RequestDispatcher dispatcher = request.getRequestDispatcher("export/exportForEncryption.jsp"); + //dispatcher.forward(request, response); + + } + else if("R10".equals(passName)){ + PagePrint page1 = new PagePrint(); + page1.doPost(request, response); + } + else if("R11".equals(passName)){ + UpDatePage page1 = new UpDatePage(); + page1.doPost(request, response); + } + else if("R15".equals(passName)){ + PrintHTML printHTML = new PrintHTML(); + printHTML.doPost(request, response); + } + else if ("R16".equals(passName)) { + FileDownLoadCheck fileCheck = new FileDownLoadCheck(); + fileCheck.doPost(request, response); + } + else if ("R50".equals(passName)) { + PrintLicense printLicense = new PrintLicense(); + printLicense.doPost(request, response, propertyPath); + } + else if ("R51".equals(passName)) { + UpdateLicense updateLicense = new UpdateLicense(); + updateLicense.doPost(request, response, propertyPath); + } + // Report +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/ClipTo.jsp b/src/main/webapp/ClipReport4/ClipTo.jsp new file mode 100644 index 0000000..1d9bc75 --- /dev/null +++ b/src/main/webapp/ClipReport4/ClipTo.jsp @@ -0,0 +1,131 @@ +<%@page import="java.io.BufferedWriter"%> +<%@page import="java.util.Iterator"%> +<%@page import="java.util.Set"%> +<%@page import="java.net.HttpURLConnection"%> +<%@page import="java.util.List"%> +<%@page import="java.net.URLEncoder"%> +<%@page import="java.io.InputStream"%> +<%@page import="java.net.URL"%> +<%@page import="java.net.URLConnection"%> +<%@page import="java.io.OutputStreamWriter"%> +<%@page import="java.util.Arrays"%> +<%@page import="java.util.Map"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.io.File"%> +<% +out.clear(); +out=pageContext.pushBody(); + +//크로스 도메인 설정 +//response.setHeader("Access-Control-Allow-Origin", "*"); + +String ReportURL = "http://rexpert.clipsoft.kr/ClipReport/Clip.jsp"; + +StringBuffer params = new StringBuffer(); + +Map map = request.getParameterMap(); + +for (Iterator it = map.entrySet().iterator(); it.hasNext();) { + Map.Entry pairs = (Map.Entry) it.next(); + String key = (String) pairs.getKey(); + String[] value = (String[])map.get(key); + if("oof".equalsIgnoreCase(key) || "data".equalsIgnoreCase(key)){ + params.append(key).append("="); + params.append(URLEncoder.encode(value[0], "UTF-8")).append("&"); + } + else{ + params.append(key).append("=").append(value[0]).append("&"); + } +} +ServletOutputStream outputStream = response.getOutputStream(); +BufferedWriter wr = null; +InputStream inputStream = null; +try{ + URL url = new URL(ReportURL); + HttpURLConnection conn = (HttpURLConnection)url.openConnection(); + conn.setRequestMethod("POST"); + conn.setDoInput(true); + conn.setDoOutput(true); + conn.setUseCaches(false); + conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); + if(null != session.getAttribute("ClipRSend")){ + conn.setRequestProperty("Cookie","JSESSIONID=" + session.getAttribute("ClipRSend")); + } + + wr = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream(), "UTF-8")); + wr.write(params.toString()); + wr.flush(); + wr.close(); + + response.setContentType(conn.getContentType()); + String contentDisposition = conn.getHeaderField("Content-Disposition"); + + if(null != contentDisposition){ + response.setHeader("Content-Disposition", contentDisposition); + } + + Map httpResponseHeaders = conn.getHeaderFields(); + Iterator ite = httpResponseHeaders.keySet().iterator(); + while(ite.hasNext()) { + String headerFieldKey = (String) ite.next(); + if ("Set-Cookie".equalsIgnoreCase(headerFieldKey)) { + List keyList = (List) httpResponseHeaders.get(headerFieldKey); + Iterator listIter = keyList.iterator(); + while (listIter.hasNext()) { + String listValue = (String) listIter.next(); + String[] fields = listValue.split(";\\s*"); + String cookieValue = fields[0]; + if(-1 != cookieValue.indexOf("JSESSIONID")){ + String[] cookieValues = cookieValue.split("="); + //Cookie cookie = new Cookie(cookieValues[0], cookieValues[1]); + //String path = request.getParameter("path"); + //cookie.setPath(path); + //response.addCookie(cookie); + if(null == session.getAttribute("ClipRSend")){ + session.setAttribute("ClipRSend", cookieValues[1]); + } + } + else{ + String[] cookieValues = cookieValue.split("="); + session.setAttribute("ClipRSend", cookieValues[1]); + } + } + + /* + for(int ic=0; ic \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/ClipToBase64.jsp b/src/main/webapp/ClipReport4/ClipToBase64.jsp new file mode 100644 index 0000000..dc4dda2 --- /dev/null +++ b/src/main/webapp/ClipReport4/ClipToBase64.jsp @@ -0,0 +1,128 @@ +<%@page import="com.clipsoft.org.apache.commons.io.output.ByteArrayOutputStream"%> +<%@page import="com.clipsoft.org.apache.commons.codec.binary.Base64"%> +<%@page import="java.util.Iterator"%> +<%@page import="java.util.Set"%> +<%@page import="java.net.HttpURLConnection"%> +<%@page import="java.util.List"%> +<%@page import="java.net.URLEncoder"%> +<%@page import="java.io.InputStream"%> +<%@page import="java.net.URL"%> +<%@page import="java.net.URLConnection"%> +<%@page import="java.io.OutputStreamWriter"%> +<%@page import="java.util.Arrays"%> +<%@page import="java.util.Map"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.io.File"%> +<% +out.clear(); +out=pageContext.pushBody(); + +//크로스 도메인 설정 +//response.setHeader("Access-Control-Allow-Origin", "*"); + +String ReportURL = "http://rexpert.clipsoft.kr/ClipReport/Clip.jsp"; + + +String report_param = request.getParameter("report_param"); + +/* +*********************************************************************** +복호화가 들어가야할 코드 (임시적으로 base64인코딩을 예제로 만들었습니다.) +*/ +report_param = new String(Base64.decodeBase64(report_param), "UTF-8"); +/* +*********************************************************************** +*/ + +ServletOutputStream outputStream = response.getOutputStream(); +OutputStreamWriter wr = null; +InputStream inputStream = null; +try{ + URL url = new URL(ReportURL); + HttpURLConnection conn = (HttpURLConnection)url.openConnection(); + conn.setDoInput(true); + conn.setDoOutput(true); + conn.setUseCaches(false); + conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); + if(null != session.getAttribute("ClipRSend")){ + conn.setRequestProperty("Cookie","JSESSIONID=" + session.getAttribute("ClipRSend")); + } + + wr = new OutputStreamWriter(conn.getOutputStream()); + wr.write(report_param); + wr.flush(); + + boolean isText = -1 != conn.getContentType().indexOf("text/html"); + response.setContentType(conn.getContentType()); + String contentDisposition = conn.getHeaderField("Content-Disposition"); + + if(null != contentDisposition){ + response.setHeader("Content-Disposition", contentDisposition); + } + + Map httpResponseHeaders = conn.getHeaderFields(); + Iterator ite = httpResponseHeaders.keySet().iterator(); + while(ite.hasNext()) { + String headerFieldKey = (String) ite.next(); + if ("Set-Cookie".equalsIgnoreCase(headerFieldKey)) { + List keyList = (List) httpResponseHeaders.get(headerFieldKey); + Iterator listIter = keyList.iterator(); + while (listIter.hasNext()) { + String listValue = (String) listIter.next(); + String[] fields = listValue.split(";\\s*"); + String cookieValue = fields[0]; + if(-1 != cookieValue.indexOf("JSESSIONID")){ + String[] cookieValues = cookieValue.split("="); + if(null == session.getAttribute("ClipRSend")){ + session.setAttribute("ClipRSend", cookieValues[1]); + } + } + else{ + String[] cookieValues = cookieValue.split("="); + session.setAttribute("ClipRSend", cookieValues[1]); + } + } + } + } + inputStream = conn.getInputStream(); + + if(isText){ + /* + *********************************************************************** + 리포트서버에서 결과값을 받아오는 inputStream을 이용하여 text/html 인 경우에만 적용합니다. + 암호화가 들어가야할 코드 (임시적으로 base64인코딩을 예제로 만들었습니다.) + */ + ByteArrayOutputStream bufferOS = new ByteArrayOutputStream(); + byte[] buffer = new byte[4 * 1024]; + int bytesRead = -1; + + while ((bytesRead = inputStream.read(buffer)) != -1) { + bufferOS.write(buffer, 0, bytesRead); + } + bufferOS.flush(); + outputStream.write(Base64.encodeBase64(bufferOS.toByteArray())); + bufferOS.close(); + /* + *********************************************************************** + */ + } + else{ + byte[] buffer = new byte[4 * 1024]; + int bytesRead = -1; + + while ((bytesRead = inputStream.read(buffer)) != -1) { + outputStream.write(buffer, 0, bytesRead); + } + + } + wr.close(); + inputStream.close(); + outputStream.close(); +}catch(Exception e){ + e.printStackTrace(); + wr = null; + inputStream = null; + outputStream = null; +} + // Report +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/DRMVerify.jsp b/src/main/webapp/ClipReport4/DRMVerify.jsp new file mode 100644 index 0000000..10deb04 --- /dev/null +++ b/src/main/webapp/ClipReport4/DRMVerify.jsp @@ -0,0 +1,12 @@ +<%@page import="com.clipsoft.clipreport.server.service.drm.ClipReportDRM"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="Property.jsp"%><% +//out.clear(); +//out=pageContext.pushBody(); +//데이터가 파일 업로드로 넘어오는 경우 +//ClipReportDRM.verify(request, response); +//데이터가 파라미터 (DRMVerify)명의 base64 String 넘어오는 경우 +//ClipReportDRM.verifyBase64(request, response); +//response 사용하지 않고 문자열로 return 받는 경우 +String reportSVG = ClipReportDRM.verifyBase64String(request, propertyPath); +%><%=reportSVG%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/JMeterSample.jsp b/src/main/webapp/ClipReport4/JMeterSample.jsp new file mode 100644 index 0000000..6c39c29 --- /dev/null +++ b/src/main/webapp/ClipReport4/JMeterSample.jsp @@ -0,0 +1,25 @@ +<%@page import="com.clipsoft.clipreport.server.service.export.ExportStatusInfo"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="Property.jsp"%> +<% + +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + + +//리포트 엔진을 실행시킨다. 리포트 템프 파일을 생성한다. +ExportStatusInfo exportStatus = ClipReportExport.EngingeRun(request, propertyPath, oof); +//exportStatus.getErrorType() +//ErrorType == 0 정상적인 출력 +//ErrorType == 1 인스톨 오류 +//ErrorType == 2 oof 문서 오류 +//ErrorType == 3 리포트 엔진 오류 + +ClipReportExport.deleteReportFile(exportStatus); +%><%=exportStatus.getErrorType()%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/META-INF/MANIFEST.MF b/src/main/webapp/ClipReport4/META-INF/MANIFEST.MF new file mode 100644 index 0000000..254272e --- /dev/null +++ b/src/main/webapp/ClipReport4/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/src/main/webapp/ClipReport4/Property.jsp b/src/main/webapp/ClipReport4/Property.jsp new file mode 100644 index 0000000..dd499bd --- /dev/null +++ b/src/main/webapp/ClipReport4/Property.jsp @@ -0,0 +1,4 @@ +<%@page import="java.io.File"%><%@ page language="java" contentType="text/html; charset=UTF-8"%><% + //clipreport4.properties 서버환경에 따라 파일 위치를 지정합니다. + String propertyPath = request.getSession().getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "clipreport4" + File.separator + "clipreport4.properties"; +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/en/engine/createJDBCDataConnection.jsp b/src/main/webapp/ClipReport4/admin/en/engine/createJDBCDataConnection.jsp new file mode 100644 index 0000000..7181f4d --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/engine/createJDBCDataConnection.jsp @@ -0,0 +1,156 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.clipsoft.clipreport.server.service.admin.serviceconfig.util.ParameterConverter" %> +<% + String create = ParameterConverter.valueParameter(request.getParameter("Create")); + String dbName = ParameterConverter.valueParameter((String) request.getAttribute("dbName")); + String version = ParameterConverter.valueParameter((String) request.getAttribute("version")); + String driver = ParameterConverter.valueParameter((String) request.getAttribute("driver")); + String url = ParameterConverter.valueParameter((String) request.getAttribute("url")); + String user = ParameterConverter.valueParameter((String) request.getAttribute("user")); + String password = ParameterConverter.valueParameter((String) request.getAttribute("password")); + String encoding = ParameterConverter.valueParameter((String) request.getAttribute("encoding")); +%> + +
+ +
+
+

If you have an encrypted URL, User, Password is stored encrypted.

+
+ + + +
+ +
+ +
+
+ +
+ + +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ + Cancel +
+
+ +
+
+
+ diff --git a/src/main/webapp/ClipReport4/admin/en/engine/createJNDIDataConnection.jsp b/src/main/webapp/ClipReport4/admin/en/engine/createJNDIDataConnection.jsp new file mode 100644 index 0000000..682b3a6 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/engine/createJNDIDataConnection.jsp @@ -0,0 +1,71 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.clipsoft.clipreport.server.service.admin.serviceconfig.util.ParameterConverter" %> +<% + String create = ParameterConverter.valueParameter(request.getParameter("Create")); + String dbName = ParameterConverter.valueParameter((String) request.getAttribute("dbName")); + String jndiName = ParameterConverter.valueParameter((String) request.getAttribute("jndiName")); + String encoding = ParameterConverter.valueParameter((String) request.getAttribute("encoding")); +%> + +
+ +
+
+ + + +
+ + +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ + Cancel +
+
+ +
+
+
+ diff --git a/src/main/webapp/ClipReport4/admin/en/engine/createRemoteEngine.jsp b/src/main/webapp/ClipReport4/admin/en/engine/createRemoteEngine.jsp new file mode 100644 index 0000000..a5a7065 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/engine/createRemoteEngine.jsp @@ -0,0 +1,60 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> + +
+ + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + 취소 + +
+
+
+
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/en/engine/createSAPDataConnection.jsp b/src/main/webapp/ClipReport4/admin/en/engine/createSAPDataConnection.jsp new file mode 100644 index 0000000..a459abe --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/engine/createSAPDataConnection.jsp @@ -0,0 +1,149 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.clipsoft.clipreport.server.service.admin.serviceconfig.util.ParameterConverter" %> +<% + String create = ParameterConverter.valueParameter(request.getParameter("Create")); + String dbName = ParameterConverter.valueParameter((String) request.getAttribute("dbName")); + String encoding = ParameterConverter.valueParameter((String) request.getAttribute("encoding")); + String client = ParameterConverter.valueParameter((String) request.getAttribute("client")); + String user = ParameterConverter.valueParameter((String) request.getAttribute("user")); + String password = ParameterConverter.valueParameter((String) request.getAttribute("password")); + String language = ParameterConverter.valueParameter((String) request.getAttribute("language")); + String hostName = ParameterConverter.valueParameter((String) request.getAttribute("hostName")); + String systemNumber = ParameterConverter.valueParameter((String) request.getAttribute("systemNumber")); + String group = ParameterConverter.valueParameter((String) request.getAttribute("group")); + String gateway = ParameterConverter.valueParameter((String) request.getAttribute("gateway")); +%> + +
+ +
+
+ + + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ + Cancel +
+
+ +
+
+
+ diff --git a/src/main/webapp/ClipReport4/admin/en/engine/dataConnectionList.jsp b/src/main/webapp/ClipReport4/admin/en/engine/dataConnectionList.jsp new file mode 100644 index 0000000..7e3b0a7 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/engine/dataConnectionList.jsp @@ -0,0 +1,100 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.util.ArrayList" %> +<%@ page import="com.clipsoft.clipreport.common.server.beans.connection.*" %> +<%@ page import="com.clipsoft.clipreport.common.server.enums.DataConnectionType" %> +<% + ArrayList dataConnectionList = (ArrayList) request.getAttribute("dataConnectionList"); +%> + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + <% int count = dataConnectionList.size(); if (count > 0) { for (int index = 0; index < count; index++) {%> + + + + + + + + <% } } else {%> + + + + <% } %> + + +
+ +
+ + + + +
+
NoDB NameConnection Type
<%=index+1%> <%=dataConnectionList.get(index).getDBName()%><%=dataConnectionList.get(index).getType().toString() %> +
+ <% + String readID = ""; + if (dataConnectionList.get(index).getType().toString().equalsIgnoreCase("JDBC")) { + readID = "L104"; + } else if (dataConnectionList.get(index).getType().toString().equalsIgnoreCase("JNDI")){ + readID = "L105"; + } else if (dataConnectionList.get(index).getType().toString().equalsIgnoreCase("SAP")) { + readID = "L106"; + } + %> + + + +
+
+
+ + + +
+
Connection information does not exist, please add a new connection.
+
+
+
diff --git a/src/main/webapp/ClipReport4/admin/en/engine/localEngineLogList.jsp b/src/main/webapp/ClipReport4/admin/en/engine/localEngineLogList.jsp new file mode 100644 index 0000000..f455e5f --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/engine/localEngineLogList.jsp @@ -0,0 +1,114 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.util.ArrayList" %> +<%@ page import="com.clipsoft.clipreport.common.server.*" %> +<%@ page import="com.clipsoft.clipreport.common.server.beans.log.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.admin.util.BootStrapUtil" %> +<% + ArrayList reportLogList = (ArrayList) request.getAttribute("reportLogList"); + int curPageBlock = (Integer) request.getAttribute("curPageBlock"); + int curLogPage = (Integer) request.getAttribute("curLogPage"); + int rowCount = (Integer) request.getAttribute("rowCount"); + int startRow = (Integer) request.getAttribute("startRow"); + int currentBlock = (Integer) request.getAttribute("currentBlock"); + int totalBlock = (Integer) request.getAttribute("totalBlock"); + int startPage = (Integer) request.getAttribute("startPage"); + int endPage = (Integer) request.getAttribute("endPage"); + int size = (Integer) request.getAttribute("size"); +%> +
+ + +
+
+ + +
+ + + + + + + + + + + + + + +
+
+ + +
+
+ + + + + + +
+
NoDateIP AddressReportFileNameTypeMessage
+
+ + + <% if (rowCount > 0) { startRow += 1; for (int i = 0; i < size; i++) { ReportLog reportLog = reportLogList.get(i); %> + <% String logType = reportLog.getLogWriteType().toString(); %> + + + + + + + + + <% }} else { %> + + + + <% } %> + +
<%= startRow++ %><%= reportLog.getDate() %><%= reportLog.getIP() %><%= reportLog.getReportFileName() %><%= logType %><%= reportLog.getLog()%>
Report log information to the engine server does not exist.
+
+
+ +
+
+
diff --git a/src/main/webapp/ClipReport4/admin/en/engine/remoteEngineList.jsp b/src/main/webapp/ClipReport4/admin/en/engine/remoteEngineList.jsp new file mode 100644 index 0000000..1dc919c --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/engine/remoteEngineList.jsp @@ -0,0 +1,88 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.util.ArrayList" %> +<%@ page import="com.clipsoft.clipreport.common.server.beans.engine.Engine" %> +<% + ArrayList remoteEngineList = (ArrayList) request.getAttribute("remoteEngineList"); +%> + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + <% int count = remoteEngineList.size(); if (count > 0) { for (int i = 0; i < count; i++) { Engine engine = remoteEngineList.get(i); %> + + + + + + <%-- + + --%> + + + + <% } } else { %> + + + + <% } %> + +
+ + + +
번호이름주소포트번호관리
<%= i+1 %><%= engine.getName() %><%= engine.getAddress() %><%= engine.getPortNumber() %> + 도구 + +
+ + + +
+
+
+ + + +
+
엔진서버 정보가 존재하지 않습니다. 새로운 엔진서버를 추가해주세요.
+
+
+
diff --git a/src/main/webapp/ClipReport4/admin/en/engine/remoteEngineLogList.jsp b/src/main/webapp/ClipReport4/admin/en/engine/remoteEngineLogList.jsp new file mode 100644 index 0000000..1e32c38 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/engine/remoteEngineLogList.jsp @@ -0,0 +1,129 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.util.ArrayList" %> +<%@ page import="com.clipsoft.clipreport.common.server.*" %> +<%@ page import="com.clipsoft.clipreport.common.server.beans.log.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.admin.util.BootStrapUtil" %> +<%@ page import="com.clipsoft.clipreport.common.server.beans.engine.Engine" %> +<% + String currentViewEngine = (String) request.getAttribute("name"); + ArrayList engineList = (ArrayList) request.getAttribute("engineList"); + ArrayList reportLogList = (ArrayList) request.getAttribute("reportLogList"); + int pageBlock = (Integer) request.getAttribute("pageBlock"); + int logPage = (Integer) request.getAttribute("logPage"); + int rowCount = (Integer) request.getAttribute("rowCount"); + int startRow = (Integer) request.getAttribute("startRow"); + int currentBlock = (Integer) request.getAttribute("currentBlock"); + int totalBlock = (Integer) request.getAttribute("totalBlock"); + int startPage = (Integer) request.getAttribute("startPage"); + int endPage = (Integer) request.getAttribute("endPage"); + int size = (Integer) request.getAttribute("size"); +%> + + + +
+ +
+ +
+
+
+ + + + + + + + + + + + + + + + <% if (rowCount > 0) { startRow += 1; for (int i = 0; i < size; i++) { ReportLog reportLog = reportLogList.get(i); %> + <% String logType = reportLog.getLogWriteType().toString(); %> + + + + + + + + + <% }} else { %> + + + + <% } %> + +
+
+ + + +
+
+ + + + + +
+ +
번호날짜아이피리포트이름로그타입로그
<%= startRow++ %><%= reportLog.getDate() %><%= reportLog.getIP() %><%= reportLog.getReportFileName() %><%= logType %><%= reportLog.getLog() %>
엔진서버에 로그정보가 존재하지 않습니다.
+
+ +
+
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/en/engine/updateJDBCDataConnection.jsp b/src/main/webapp/ClipReport4/admin/en/engine/updateJDBCDataConnection.jsp new file mode 100644 index 0000000..6746bdc --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/engine/updateJDBCDataConnection.jsp @@ -0,0 +1,110 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + String jdbcType = (String) request.getAttribute("jdbcType"); + String dbName = (String) request.getAttribute("dbName"); + String driver = (String) request.getAttribute("driver"); + String version = (String) request.getAttribute("version"); + String url = (String) request.getAttribute("url"); + String user = (String) request.getAttribute("user"); + String password = (String) request.getAttribute("password"); + String encoding = (String) request.getAttribute("encoding"); +%> + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ + Cancel +
+
+ +
+
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/en/engine/updateJNDIDataConnection.jsp b/src/main/webapp/ClipReport4/admin/en/engine/updateJNDIDataConnection.jsp new file mode 100644 index 0000000..37a5030 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/engine/updateJNDIDataConnection.jsp @@ -0,0 +1,56 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + String dbName = (String) request.getAttribute("dbName"); + String jndiName = (String) request.getAttribute("jndiName"); + String encoding = (String) request.getAttribute("encoding"); +%> + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ + Cancel +
+
+ +
+
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/en/engine/updateLocalEngineProperties.jsp b/src/main/webapp/ClipReport4/admin/en/engine/updateLocalEngineProperties.jsp new file mode 100644 index 0000000..8830344 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/engine/updateLocalEngineProperties.jsp @@ -0,0 +1,236 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + String update = (String) request.getParameter("Update"); + String isLoadBalancing = (String) request.getAttribute("isLoadBalancing"); + String isAlwaysPng = (String) request.getAttribute("isAlwaysPng"); + String isEachReport = (String) request.getAttribute("isEachReport"); + String reportFolderPath = (String) request.getAttribute("reportFolderPath"); + String fontFolderPath = (String) request.getAttribute("fontFolderPath"); + String defaultFontFile = (String) request.getAttribute("defaultFontFile"); + String isSystemFont = (String) request.getAttribute("isSystemFont"); + String isConsoleLog = (String) request.getAttribute("isConsoleLog"); + String isFileLog = (String) request.getAttribute("isFileLog"); + String isDBLog = (String) request.getAttribute("isDBLog"); + String logDBFilePath = (String) request.getAttribute("logDBFilePath"); + String logFolderPath = (String) request.getAttribute("logFolderPath"); + String isLogInfo = (String) request.getAttribute("isLogInfo"); + String isLogWarning = (String) request.getAttribute("isLogWarning"); + String isLogError = (String) request.getAttribute("isLogError"); + String isLogDebug = (String) request.getAttribute("isLogDebug"); + + if (isDBLog.equals("false")) { + logDBFilePath = ""; + } + + if (logFolderPath.equals("false")) { + logFolderPath = ""; + } +%> +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + --%> + + + + + +
Report Engine Configuration
LoadBalancing +
+ <% if (isLoadBalancing.equals("true")) { %> + + <% } else { %> + + <% } %> +

The options for report generation server settings if you have more than two.

+
+
Always PNG +
+ <% if (isAlwaysPng.equals("true")) { %> + + <% } else { %> + + <% } %> +

Open JDK is always the image of the environment is an option to save as PNG.

+
+
EachReport +
+ <% if (isEachReport.equals("true")) { %> + + <% } else { %> + + <% } %> +

The report creates a separate folder to determine whether to create.

+
+
ReportFolderPath +
+ +
+
+ It means the path to the report JSON file is saved. +
+
FontFolderPath +
+ +
+
+ It means the path to the folder where you want to manage fonts. +
+
DefaultFontFile +
+ +
+
+ Font that was used in the designer is , if it does not exist in the current server , the default font to be replaced . +
+
SystemFont +
+ <% if (isSystemFont.equals("true")) { %> + + <% } else { %> + + <% } %> +

+ Decide whether to use a font that is set in the system environment.

+
+
Report Log Configuration
Log Write Type +
+ <% if (isConsoleLog.equals("true")) { %> + + <% } else { %> + + <% } %> + + <% if (isFileLog.equals("true")) { %> + + <% } else { %> + + <% } %> + + <% if (isDBLog.equals("true")) { %> + + <% } else { %> + + <% } %> +
+
Log Level +
+ <% if (isLogInfo.equals("true")) { %> + + <% } else { %> + + <% } %> + + <% if (isLogWarning.equals("true")) { %> + + <% } else { %> + + <% } %> + + <% if (isLogError.equals("true")) { %> + + <% } else { %> + + <% } %> + + <% if (isLogDebug.equals("true")) { %> + + <% } else { %> + + <% } %> +
+
Log Database FilePath +
+ +
+
Log FolderPath +
+ +
+
Log FolderPath +
+ +
+
+
+ +
+
+
+
+
+
+ + + diff --git a/src/main/webapp/ClipReport4/admin/en/engine/updateRemoteEngineBaseProperties.jsp b/src/main/webapp/ClipReport4/admin/en/engine/updateRemoteEngineBaseProperties.jsp new file mode 100644 index 0000000..4c5474b --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/engine/updateRemoteEngineBaseProperties.jsp @@ -0,0 +1,94 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + String engineName = (String) request.getParameter("engineName"); + String enginePath = (String) request.getParameter("enginePath"); + String portNumber = (String) request.getParameter("portNumber"); + String reportPath = (String) request.getParameter("reportPath"); + String fontPath = (String) request.getParameter("fontPath"); + + if (reportPath == null || reportPath.equals("null")) { + reportPath = ""; + } + if (fontPath == null || fontPath.equals("null")) { + fontPath = ""; + } + + String status = (String) request.getParameter("status"); + if (status == null) { + status = "true"; + } + +%> + + +
+
+
+ + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ +
+
+
+ + + +
+
+<% if (status.equals("false")) { %> + +<% } %> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/en/engine/updateSAPDataConnection.jsp b/src/main/webapp/ClipReport4/admin/en/engine/updateSAPDataConnection.jsp new file mode 100644 index 0000000..097b327 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/engine/updateSAPDataConnection.jsp @@ -0,0 +1,110 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.clipsoft.clipreport.server.service.admin.serviceconfig.util.ParameterConverter" %> +<% + String dbName = (String) request.getAttribute("dbName"); + String encoding = (String) request.getAttribute("encoding"); + String client = (String) request.getAttribute("client"); + String user = (String) request.getAttribute("user"); + String password = (String) request.getAttribute("password"); + String language = (String) request.getAttribute("language"); + String hostName = (String) request.getAttribute("hostName"); + String systemNumber = (String) request.getAttribute("systemNumber"); + String group = (String) request.getAttribute("group"); + String gateway = (String) request.getAttribute("gateway"); +%> + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ + Cancel +
+
+
+
+
diff --git a/src/main/webapp/ClipReport4/admin/en/license/readLicenseInfo.jsp b/src/main/webapp/ClipReport4/admin/en/license/readLicenseInfo.jsp new file mode 100644 index 0000000..d4eccb7 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/license/readLicenseInfo.jsp @@ -0,0 +1,80 @@ +<%@ page language="java" contentType="text/html; charset=EUC-KR" + pageEncoding="EUC-KR"%> +<% + String licenseNo = (String) request.getAttribute("licenseNo"); + String customer = (String) request.getAttribute("customer"); + String issueDate = (String) request.getAttribute("issueDate"); + String expireDate = (String) request.getAttribute("expireDate"); + String project = (String) request.getAttribute("project"); + String ipAddress = (String) request.getAttribute("ipAddress"); + String cpu = (String) request.getAttribute("cpu"); + String[] products = (String[]) request.getAttribute("products"); +%> + +
+ + +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyValue
LicenseNo<%=licenseNo%>
Customer<%=customer%>
IssueDate<%=issueDate%>
ExpireDate<%=expireDate%>
Project<%=project%>
IP Address<%=ipAddress%>
Cpu<%= cpu%>
Product Code + <% for (int i = 0; i < products.length; i++) { %> + <%= products[i] + "\n" %> + <% } %> +
+
+
+
+
diff --git a/src/main/webapp/ClipReport4/admin/en/license/updateLicense.jsp b/src/main/webapp/ClipReport4/admin/en/license/updateLicense.jsp new file mode 100644 index 0000000..c4ba4d4 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/license/updateLicense.jsp @@ -0,0 +1,46 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + String licenseKey = (String) request.getAttribute("licenseKey"); + if (licenseKey.equals("null")) { + licenseKey = ""; + } +%> + +
+ + + +
+ +
+

+ If the change of the project occurs , it is the page to update the license.
+ (Note: I will update you ask have you remove the line breaks.) +

+ +

+ + + +
+
+ +
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/en/main.jsp b/src/main/webapp/ClipReport4/admin/en/main.jsp new file mode 100644 index 0000000..16cddb4 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/main.jsp @@ -0,0 +1,111 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + String pageFile = request.getParameter("page"); + request.getSession().setAttribute("clipreport_page", pageFile); + if (pageFile == null || pageFile.equals("null")) { + pageFile = "./main/home"; + } + pageFile += ".jsp"; +%> + + + + + + + + + + + + + +CLIP report Server Admin Console + + + +
+ +
+ +
+ +
+ + + + + + \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/en/main/footer.jsp b/src/main/webapp/ClipReport4/admin/en/main/footer.jsp new file mode 100644 index 0000000..f924d90 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/main/footer.jsp @@ -0,0 +1,6 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +
+
+ Copyright CLIPSOFT Corp. All Rights Reserved +
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/en/main/header.jsp b/src/main/webapp/ClipReport4/admin/en/main/header.jsp new file mode 100644 index 0000000..e64cc8f --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/main/header.jsp @@ -0,0 +1,20 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +
+ +
+
+ +
+
+
+
+ + Admin +
+
+
+
+ <%@ include file="../../logout.jsp"%> +
+
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/en/main/home.jsp b/src/main/webapp/ClipReport4/admin/en/main/home.jsp new file mode 100644 index 0000000..dd0d61b --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/main/home.jsp @@ -0,0 +1,10 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.clipsoft.clipreport.reportinfo.ReportInfo" %> +
+ +
+

CLIP report Server

+
Version : <%= ReportInfo.version %>    (<%= ReportInfo.buildDay %>)
+
+
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/en/main/language.jsp b/src/main/webapp/ClipReport4/admin/en/main/language.jsp new file mode 100644 index 0000000..0acc4b3 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/main/language.jsp @@ -0,0 +1,47 @@ +<%@ page import="java.io.File" %> +<%@ page import="java.util.Locale" %> +<%@ page import="com.clipsoft.clipreport.server.service.admin.serviceconfig.ServiceConfigManager" %> + +<% + Locale theLocale = null; + if (null != ServiceConfigManager.getInstance().getServiceProperties()) { + theLocale = ServiceConfigManager.getInstance().getServiceProperties().getLocale(); + } else { + String propertyPath = (String) request.getSession().getAttribute("clipreport_propertyPath"); + String propertiesFilePath = new File(propertyPath).getParentFile().getPath() + File.separator + "Service.properties"; + theLocale = ServiceConfigManager.getInstance().getServiceProperties().getLocaleByPropertiesFile(propertiesFilePath); + } + +%> + +
+
+ + +
+ <% if (theLocale.equals(Locale.KOREA)) { %> + + <% } else { %> + + <% } %> + + <% if (theLocale.equals(Locale.US)) { %> + + <% } else { %> + + <% } %> + + <%-- <% if (theLocale.equals(Locale.JAPAN)) { %> + + <% } else { %> + + <% } %> --%> +
+
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/en/main/navigation.jsp b/src/main/webapp/ClipReport4/admin/en/main/navigation.jsp new file mode 100644 index 0000000..fbc4beb --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/main/navigation.jsp @@ -0,0 +1,82 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +
+
+ +
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/en/service/createPrinter.jsp b/src/main/webapp/ClipReport4/admin/en/service/createPrinter.jsp new file mode 100644 index 0000000..76eefe0 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/service/createPrinter.jsp @@ -0,0 +1,66 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.util.ArrayList" %> +<%@ page import="javax.print.PrintService" %> +<%@ page import="com.clipsoft.clipreport.common.util.print.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.admin.serviceconfig.util.ParameterConverter" %> +<% + ArrayList printerList = PrintControl.getInstance().getPrintServiceList(); + String create = ParameterConverter.valueParameter(request.getParameter("Create")); + String printerName = ParameterConverter.valueParameter((String)request.getAttribute("name")); + String driver = ParameterConverter.valueParameter((String)request.getAttribute("driver")); +%> + +
+ +
+
+ + + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ + Cancel +
+
+ +
+
+
+ \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/en/service/environment.jsp b/src/main/webapp/ClipReport4/admin/en/service/environment.jsp new file mode 100644 index 0000000..b6f2e14 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/service/environment.jsp @@ -0,0 +1,30 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import=" com.clipsoft.clipreport.server.service.admin.serviceconfig.ServiceConfigManager"%> +<% + String engineMotionType = (String) request.getAttribute("engineMotionType"); +%> + +
+ +
+
+
+
+ +

Option of engine operating mode

+ + <% if (engineMotionType.equals("Local")) { %> + + + <% } else { %> + + + <% } %> + +
+
+
+
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/en/service/printerList.jsp b/src/main/webapp/ClipReport4/admin/en/service/printerList.jsp new file mode 100644 index 0000000..ef34df0 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/service/printerList.jsp @@ -0,0 +1,73 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.util.ArrayList" %> +<%@ page import="com.clipsoft.clipreport.common.server.beans.printer.*" %> +<% + ArrayList printerList = (ArrayList) request.getAttribute("printerList"); +%> + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + <% int count = printerList.size(); if (count > 0) { for (int index = 0; index < count; index++) {%> + + + + + + + <% } } else {%> + + + + <% } %> + + +
+ + + +
NoPrinter NameDriver Name
<%=index+1%> <%=printerList.get(index).getName() %><%=printerList.get(index).getDriver() %> +
+ + + +
+
Printer information does not exist, please add a new printer
+
+
+
diff --git a/src/main/webapp/ClipReport4/admin/en/service/updateAdminPassword.jsp b/src/main/webapp/ClipReport4/admin/en/service/updateAdminPassword.jsp new file mode 100644 index 0000000..4d784a8 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/en/service/updateAdminPassword.jsp @@ -0,0 +1,91 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + String update = request.getParameter("update"); +%> + +
+ + +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ + +
+ +
+ +
+ +
+ + Cancel +
+
+
+
+ diff --git a/src/main/webapp/ClipReport4/admin/index.jsp b/src/main/webapp/ClipReport4/admin/index.jsp new file mode 100644 index 0000000..28da66a --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/index.jsp @@ -0,0 +1,11 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.io.File"%> +<%@ page import="com.clipsoft.clipreport.server.service.admin.AdminController" %> +<%@include file="../Property.jsp"%> +<% + if (request.getSession().getAttribute("clipreport_propertyPath") == null) { + request.getSession().setAttribute("clipreport_propertyPath", propertyPath); + } + AdminController.getInstance().execute(request, response, propertyPath); +%> + diff --git a/src/main/webapp/ClipReport4/admin/kr/engine/createJDBCDataConnection.jsp b/src/main/webapp/ClipReport4/admin/kr/engine/createJDBCDataConnection.jsp new file mode 100644 index 0000000..7a0a634 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/engine/createJDBCDataConnection.jsp @@ -0,0 +1,158 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.clipsoft.clipreport.server.service.admin.serviceconfig.util.ParameterConverter" %> +<% + String create = ParameterConverter.valueParameter(request.getParameter("Create")); + String dbName = ParameterConverter.valueParameter((String) request.getAttribute("dbName")); + String version = ParameterConverter.valueParameter((String) request.getAttribute("version")); + String driver = ParameterConverter.valueParameter((String) request.getAttribute("driver")); + String url = ParameterConverter.valueParameter((String) request.getAttribute("url")); + String user = ParameterConverter.valueParameter((String) request.getAttribute("user")); + String password = ParameterConverter.valueParameter((String) request.getAttribute("password")); + String encoding = ParameterConverter.valueParameter((String) request.getAttribute("encoding")); +%> + +
+ +
+
+ +

암호화를 하실경우에는 URL, User, Password가 암호화되어 저장됩니다.

+
+ + + +
+ +
+ +
+
+ +
+ + +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ + 취소 +
+
+ +
+
+
+ + diff --git a/src/main/webapp/ClipReport4/admin/kr/engine/createJNDIDataConnection.jsp b/src/main/webapp/ClipReport4/admin/kr/engine/createJNDIDataConnection.jsp new file mode 100644 index 0000000..e3ff77b --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/engine/createJNDIDataConnection.jsp @@ -0,0 +1,72 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.clipsoft.clipreport.server.service.admin.serviceconfig.util.ParameterConverter" %> +<% + String create = ParameterConverter.valueParameter(request.getParameter("Create")); + String dbName = ParameterConverter.valueParameter((String) request.getAttribute("dbName")); + String jndiName = ParameterConverter.valueParameter((String) request.getAttribute("jndiName")); + String encoding = ParameterConverter.valueParameter((String) request.getAttribute("encoding")); +%> + +
+ +
+
+ + + +
+ + +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ + 취소 +
+
+ +
+
+
+ + diff --git a/src/main/webapp/ClipReport4/admin/kr/engine/createRemoteEngine.jsp b/src/main/webapp/ClipReport4/admin/kr/engine/createRemoteEngine.jsp new file mode 100644 index 0000000..a5a7065 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/engine/createRemoteEngine.jsp @@ -0,0 +1,60 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> + +
+ + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + 취소 + +
+
+
+
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/kr/engine/createSAPDataConnection.jsp b/src/main/webapp/ClipReport4/admin/kr/engine/createSAPDataConnection.jsp new file mode 100644 index 0000000..31edc4b --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/engine/createSAPDataConnection.jsp @@ -0,0 +1,150 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.clipsoft.clipreport.server.service.admin.serviceconfig.util.ParameterConverter" %> +<% + String create = ParameterConverter.valueParameter(request.getParameter("Create")); + String dbName = ParameterConverter.valueParameter((String) request.getAttribute("dbName")); + String encoding = ParameterConverter.valueParameter((String) request.getAttribute("encoding")); + String client = ParameterConverter.valueParameter((String) request.getAttribute("client")); + String user = ParameterConverter.valueParameter((String) request.getAttribute("user")); + String password = ParameterConverter.valueParameter((String) request.getAttribute("password")); + String language = ParameterConverter.valueParameter((String) request.getAttribute("language")); + String hostName = ParameterConverter.valueParameter((String) request.getAttribute("hostName")); + String systemNumber = ParameterConverter.valueParameter((String) request.getAttribute("systemNumber")); + String group = ParameterConverter.valueParameter((String) request.getAttribute("group")); + String gateway = ParameterConverter.valueParameter((String) request.getAttribute("gateway")); +%> + +
+ +
+
+ + + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ + 취소 +
+
+ +
+
+
+ + diff --git a/src/main/webapp/ClipReport4/admin/kr/engine/dataConnectionList.jsp b/src/main/webapp/ClipReport4/admin/kr/engine/dataConnectionList.jsp new file mode 100644 index 0000000..8bac16d --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/engine/dataConnectionList.jsp @@ -0,0 +1,100 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.util.ArrayList" %> +<%@ page import="com.clipsoft.clipreport.common.server.beans.connection.*" %> +<%@ page import="com.clipsoft.clipreport.common.server.enums.DataConnectionType" %> +<% + ArrayList dataConnectionList = (ArrayList) request.getAttribute("dataConnectionList"); +%> + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + <% int count = dataConnectionList.size(); if (count > 0) { for (int index = 0; index < count; index++) {%> + + + + + + + + <% } } else {%> + + + + <% } %> + + +
+ +
+ + + + +
+
번호디비이름커넥션타입
<%=index+1%> <%=dataConnectionList.get(index).getDBName()%><%=dataConnectionList.get(index).getType().toString() %> +
+ <% + String readID = ""; + if (dataConnectionList.get(index).getType().toString().equalsIgnoreCase("JDBC")) { + readID = "L104"; + } else if (dataConnectionList.get(index).getType().toString().equalsIgnoreCase("JNDI")) { + readID = "L105"; + } else if (dataConnectionList.get(index).getType().toString().equalsIgnoreCase("SAP")) { + readID = "L106"; + } + %> + + + +
+
+
+ + + +
+
커넥션정보가 존재하지 않습니다. 새로운 커넥션을 추가해주세여
+
+
+
diff --git a/src/main/webapp/ClipReport4/admin/kr/engine/localEngineLogList.jsp b/src/main/webapp/ClipReport4/admin/kr/engine/localEngineLogList.jsp new file mode 100644 index 0000000..7178dd7 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/engine/localEngineLogList.jsp @@ -0,0 +1,108 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.util.ArrayList" %> +<%@ page import="com.clipsoft.clipreport.common.server.*" %> +<%@ page import="com.clipsoft.clipreport.common.server.beans.log.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.admin.util.BootStrapUtil" %> +<% + ArrayList reportLogList = (ArrayList) request.getAttribute("reportLogList"); + int curPageBlock = (Integer) request.getAttribute("curPageBlock"); + int curLogPage = (Integer) request.getAttribute("curLogPage"); + int rowCount = (Integer) request.getAttribute("rowCount"); + int startRow = (Integer) request.getAttribute("startRow"); + int currentBlock = (Integer) request.getAttribute("currentBlock"); + int totalBlock = (Integer) request.getAttribute("totalBlock"); + int startPage = (Integer) request.getAttribute("startPage"); + int endPage = (Integer) request.getAttribute("endPage"); + int size = (Integer) request.getAttribute("size"); +%> +
+ + +
+
+ + +
+ + + + + + + + + + + + + + +
+
+ + +
+
+ + + + +
+
NoDateIP AddressReportFileNameTypeMessage
+
+ + + <% if (rowCount > 0) { startRow += 1; for (int i = 0; i < size; i++) { ReportLog reportLog = reportLogList.get(i); %> + <% String logType = reportLog.getLogWriteType().toString(); %> + + + + + + + + + <% }} else { %> + + + + <% } %> + +
<%= startRow++ %><%= reportLog.getDate() %><%= reportLog.getIP() %><%= reportLog.getReportFileName() %><%= logType %><%= reportLog.getLog()%>
엔진서버에 리포트로그정보가 존재하지 않습니다.
+
+
+ +
+
+
diff --git a/src/main/webapp/ClipReport4/admin/kr/engine/remoteEngineList.jsp b/src/main/webapp/ClipReport4/admin/kr/engine/remoteEngineList.jsp new file mode 100644 index 0000000..1dc919c --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/engine/remoteEngineList.jsp @@ -0,0 +1,88 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.util.ArrayList" %> +<%@ page import="com.clipsoft.clipreport.common.server.beans.engine.Engine" %> +<% + ArrayList remoteEngineList = (ArrayList) request.getAttribute("remoteEngineList"); +%> + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + <% int count = remoteEngineList.size(); if (count > 0) { for (int i = 0; i < count; i++) { Engine engine = remoteEngineList.get(i); %> + + + + + + <%-- + + --%> + + + + <% } } else { %> + + + + <% } %> + +
+ + + +
번호이름주소포트번호관리
<%= i+1 %><%= engine.getName() %><%= engine.getAddress() %><%= engine.getPortNumber() %> + 도구 + +
+ + + +
+
+
+ + + +
+
엔진서버 정보가 존재하지 않습니다. 새로운 엔진서버를 추가해주세요.
+
+
+
diff --git a/src/main/webapp/ClipReport4/admin/kr/engine/remoteEngineLogList.jsp b/src/main/webapp/ClipReport4/admin/kr/engine/remoteEngineLogList.jsp new file mode 100644 index 0000000..1e32c38 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/engine/remoteEngineLogList.jsp @@ -0,0 +1,129 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.util.ArrayList" %> +<%@ page import="com.clipsoft.clipreport.common.server.*" %> +<%@ page import="com.clipsoft.clipreport.common.server.beans.log.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.admin.util.BootStrapUtil" %> +<%@ page import="com.clipsoft.clipreport.common.server.beans.engine.Engine" %> +<% + String currentViewEngine = (String) request.getAttribute("name"); + ArrayList engineList = (ArrayList) request.getAttribute("engineList"); + ArrayList reportLogList = (ArrayList) request.getAttribute("reportLogList"); + int pageBlock = (Integer) request.getAttribute("pageBlock"); + int logPage = (Integer) request.getAttribute("logPage"); + int rowCount = (Integer) request.getAttribute("rowCount"); + int startRow = (Integer) request.getAttribute("startRow"); + int currentBlock = (Integer) request.getAttribute("currentBlock"); + int totalBlock = (Integer) request.getAttribute("totalBlock"); + int startPage = (Integer) request.getAttribute("startPage"); + int endPage = (Integer) request.getAttribute("endPage"); + int size = (Integer) request.getAttribute("size"); +%> + + + +
+ +
+ +
+
+
+ + + + + + + + + + + + + + + + <% if (rowCount > 0) { startRow += 1; for (int i = 0; i < size; i++) { ReportLog reportLog = reportLogList.get(i); %> + <% String logType = reportLog.getLogWriteType().toString(); %> + + + + + + + + + <% }} else { %> + + + + <% } %> + +
+
+ + + +
+
+ + + + + +
+ +
번호날짜아이피리포트이름로그타입로그
<%= startRow++ %><%= reportLog.getDate() %><%= reportLog.getIP() %><%= reportLog.getReportFileName() %><%= logType %><%= reportLog.getLog() %>
엔진서버에 로그정보가 존재하지 않습니다.
+
+ +
+
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/kr/engine/updateJDBCDataConnection.jsp b/src/main/webapp/ClipReport4/admin/kr/engine/updateJDBCDataConnection.jsp new file mode 100644 index 0000000..0011bc1 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/engine/updateJDBCDataConnection.jsp @@ -0,0 +1,107 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + String jdbcType = (String) request.getAttribute("jdbcType"); + String dbName = (String) request.getAttribute("dbName"); + String driver = (String) request.getAttribute("driver"); + String version = (String) request.getAttribute("version"); + String url = (String) request.getAttribute("url"); + String user = (String) request.getAttribute("user"); + String password = (String) request.getAttribute("password"); + String encoding = (String) request.getAttribute("encoding"); +%> + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ + 취소 +
+
+
+
+
diff --git a/src/main/webapp/ClipReport4/admin/kr/engine/updateJNDIDataConnection.jsp b/src/main/webapp/ClipReport4/admin/kr/engine/updateJNDIDataConnection.jsp new file mode 100644 index 0000000..6c6f4c0 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/engine/updateJNDIDataConnection.jsp @@ -0,0 +1,55 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + String dbName = (String) request.getAttribute("dbName"); + String jndiName = (String) request.getAttribute("jndiName"); + String encoding = (String) request.getAttribute("encoding"); +%> + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ + 취소 +
+
+
+
+
diff --git a/src/main/webapp/ClipReport4/admin/kr/engine/updateLocalEngineProperties.jsp b/src/main/webapp/ClipReport4/admin/kr/engine/updateLocalEngineProperties.jsp new file mode 100644 index 0000000..616c769 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/engine/updateLocalEngineProperties.jsp @@ -0,0 +1,235 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + String update = (String) request.getParameter("Update"); + String isLoadBalancing = (String) request.getAttribute("isLoadBalancing"); + String isAlwaysPng = (String) request.getAttribute("isAlwaysPng"); + String isEachReport = (String) request.getAttribute("isEachReport"); + String reportFolderPath = (String) request.getAttribute("reportFolderPath"); + String fontFolderPath = (String) request.getAttribute("fontFolderPath"); + String defaultFontFile = (String) request.getAttribute("defaultFontFile"); + String isSystemFont = (String) request.getAttribute("isSystemFont"); + String isConsoleLog = (String) request.getAttribute("isConsoleLog"); + String isFileLog = (String) request.getAttribute("isFileLog"); + String isDBLog = (String) request.getAttribute("isDBLog"); + String logDBFilePath = (String) request.getAttribute("logDBFilePath"); + String logFolderPath = (String) request.getAttribute("logFolderPath"); + String isLogInfo = (String) request.getAttribute("isLogInfo"); + String isLogWarning = (String) request.getAttribute("isLogWarning"); + String isLogError = (String) request.getAttribute("isLogError"); + String isLogDebug = (String) request.getAttribute("isLogDebug"); + + if (isDBLog.equals("false")) { + logDBFilePath = ""; + } + + if (logFolderPath.equals("false")) { + logFolderPath = ""; + } +%> +
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + --%> + + + + + +
Report Engine Configuration
LoadBalancing +
+ <% if (isLoadBalancing.equals("true")) { %> + + <% } else { %> + + <% } %> +

리포트 생성 서버가 2대이상 있을경우 설정하는 옵션입니다.

+
+
Always PNG +
+ <% if (isAlwaysPng.equals("true")) { %> + + <% } else { %> + + <% } %> +

OpenJDK 환경에서 이미지를 항상 PNG로 저장을 하기 위한 옵션입니다.

+
+
EachReport +
+ <% if (isEachReport.equals("true")) { %> + + <% } else { %> + + <% } %> +

리포트를 개별적으로 폴더를 생성하여 만들것인지를 결정합니다.

+
+
ReportFolderPath +
+ +
+
+ 리포트 Temporary 파일들이 저장될 경로를 뜻합니다. +
+
FontFolderPath +
+ +
+
+ 폰트들을 관리할 폴더경로를 뜻합니다. +
+
DefaultFontFile +
+ +
+
+ 디자이너에서 사용된 폰트가 현재 서버에 없을경우 대체되는 기본폰트입니다. +
+
SystemFont +
+ <% if (isSystemFont.equals("true")) { %> + + <% } else { %> + + <% } %> +

시스템환경에 설정되어있는 Font들을 사용할것인지를 결정합니다.

+
+
Report Log Configuration
Log Write Type +
+ <% if (isConsoleLog.equals("true")) { %> + + <% } else { %> + + <% } %> + + <% if (isFileLog.equals("true")) { %> + + <% } else { %> + + <% } %> + + <% if (isDBLog.equals("true")) { %> + + <% } else { %> + + <% } %> +
+
Log Level +
+ <% if (isLogInfo.equals("true")) { %> + + <% } else { %> + + <% } %> + + <% if (isLogWarning.equals("true")) { %> + + <% } else { %> + + <% } %> + + <% if (isLogError.equals("true")) { %> + + <% } else { %> + + <% } %> + + <% if (isLogDebug.equals("true")) { %> + + <% } else { %> + + <% } %> +
+
Log Database FilePath +
+ +
+
Log FolderPath +
+ +
+
Log FolderPath +
+ +
+
+
+ +
+
+
+
+
+
+ + + diff --git a/src/main/webapp/ClipReport4/admin/kr/engine/updateRemoteEngineBaseProperties.jsp b/src/main/webapp/ClipReport4/admin/kr/engine/updateRemoteEngineBaseProperties.jsp new file mode 100644 index 0000000..4c5474b --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/engine/updateRemoteEngineBaseProperties.jsp @@ -0,0 +1,94 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + String engineName = (String) request.getParameter("engineName"); + String enginePath = (String) request.getParameter("enginePath"); + String portNumber = (String) request.getParameter("portNumber"); + String reportPath = (String) request.getParameter("reportPath"); + String fontPath = (String) request.getParameter("fontPath"); + + if (reportPath == null || reportPath.equals("null")) { + reportPath = ""; + } + if (fontPath == null || fontPath.equals("null")) { + fontPath = ""; + } + + String status = (String) request.getParameter("status"); + if (status == null) { + status = "true"; + } + +%> + + +
+
+
+ + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ +
+
+
+ + + +
+
+<% if (status.equals("false")) { %> + +<% } %> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/kr/engine/updateSAPDataConnection.jsp b/src/main/webapp/ClipReport4/admin/kr/engine/updateSAPDataConnection.jsp new file mode 100644 index 0000000..5ce18e3 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/engine/updateSAPDataConnection.jsp @@ -0,0 +1,110 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.clipsoft.clipreport.server.service.admin.serviceconfig.util.ParameterConverter" %> +<% + String dbName = (String) request.getAttribute("dbName"); + String encoding = (String) request.getAttribute("encoding"); + String client = (String) request.getAttribute("client"); + String user = (String) request.getAttribute("user"); + String password = (String) request.getAttribute("password"); + String language = (String) request.getAttribute("language"); + String hostName = (String) request.getAttribute("hostName"); + String systemNumber = (String) request.getAttribute("systemNumber"); + String group = (String) request.getAttribute("group"); + String gateway = (String) request.getAttribute("gateway"); +%> + +
+ +
+
+ + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ + 취소 +
+
+
+
+
diff --git a/src/main/webapp/ClipReport4/admin/kr/license/readLicenseInfo.jsp b/src/main/webapp/ClipReport4/admin/kr/license/readLicenseInfo.jsp new file mode 100644 index 0000000..32a2399 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/license/readLicenseInfo.jsp @@ -0,0 +1,81 @@ +<%@ page language="java" contentType="text/html; charset=EUC-KR" + pageEncoding="EUC-KR"%> +<% + String licenseNo = (String) request.getAttribute("licenseNo"); + String customer = (String) request.getAttribute("customer"); + String issueDate = (String) request.getAttribute("issueDate"); + String expireDate = (String) request.getAttribute("expireDate"); + String project = (String) request.getAttribute("project"); + String ipAddress = (String) request.getAttribute("ipAddress"); + String cpu = (String) request.getAttribute("cpu"); + String[] products = (String[]) request.getAttribute("products"); +%> + +
+ + +
+
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KeyValue
LicenseNo<%=licenseNo%>
Customer<%=customer%>
IssueDate<%=issueDate%>
ExpireDate<%=expireDate%>
Project<%=project%>
IP Address<%=ipAddress%>
Cpu<%= cpu%>
Product + <% for (int i = 0; i < products.length; i++) { %> + <%= products[i] + "\n" %> + <% } %> +
+
+ +
+
+
diff --git a/src/main/webapp/ClipReport4/admin/kr/license/updateLicense.jsp b/src/main/webapp/ClipReport4/admin/kr/license/updateLicense.jsp new file mode 100644 index 0000000..6f61e8b --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/license/updateLicense.jsp @@ -0,0 +1,47 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + String licenseKey = (String) request.getAttribute("licenseKey"); + if (licenseKey.equals("null")) { + licenseKey = ""; + } +%> + + +
+ + + +
+ +
+

+ 프로젝트에 대한 변경사항이 생겼을 경우 라이센스를 갱신하는 페이지입니다.
+ (주의사항 : 개행을 빼주시고 갱신해주시길 바랍니다.) +

+ +

+ + + +
+
+ +
diff --git a/src/main/webapp/ClipReport4/admin/kr/main.jsp b/src/main/webapp/ClipReport4/admin/kr/main.jsp new file mode 100644 index 0000000..97213f4 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/main.jsp @@ -0,0 +1,117 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + String pageFile = request.getParameter("page"); + request.getSession().setAttribute("clipreport_page", pageFile); + if (pageFile == null || pageFile.equals("null")) { + pageFile = "./main/home"; + } + pageFile += ".jsp"; +%> + + + + + + + + + + + + + + +CLIP report Server Admin Console + + + +
+ + <%--
+ +
--%> + +
+ +
+ + +
+ + + + + + \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/kr/main/footer.jsp b/src/main/webapp/ClipReport4/admin/kr/main/footer.jsp new file mode 100644 index 0000000..f924d90 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/main/footer.jsp @@ -0,0 +1,6 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +
+
+ Copyright CLIPSOFT Corp. All Rights Reserved +
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/kr/main/header.jsp b/src/main/webapp/ClipReport4/admin/kr/main/header.jsp new file mode 100644 index 0000000..e64cc8f --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/main/header.jsp @@ -0,0 +1,20 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +
+ +
+
+ +
+
+
+
+ + Admin +
+
+
+
+ <%@ include file="../../logout.jsp"%> +
+
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/kr/main/home.jsp b/src/main/webapp/ClipReport4/admin/kr/main/home.jsp new file mode 100644 index 0000000..e44bdd6 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/main/home.jsp @@ -0,0 +1,10 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.clipsoft.clipreport.reportinfo.ReportInfo" %> +
+ +
+

CLIP report Server

+
Version : <%= ReportInfo.version %>    (<%= ReportInfo.buildDay %>)
+
+
+
diff --git a/src/main/webapp/ClipReport4/admin/kr/main/language.jsp b/src/main/webapp/ClipReport4/admin/kr/main/language.jsp new file mode 100644 index 0000000..0acc4b3 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/main/language.jsp @@ -0,0 +1,47 @@ +<%@ page import="java.io.File" %> +<%@ page import="java.util.Locale" %> +<%@ page import="com.clipsoft.clipreport.server.service.admin.serviceconfig.ServiceConfigManager" %> + +<% + Locale theLocale = null; + if (null != ServiceConfigManager.getInstance().getServiceProperties()) { + theLocale = ServiceConfigManager.getInstance().getServiceProperties().getLocale(); + } else { + String propertyPath = (String) request.getSession().getAttribute("clipreport_propertyPath"); + String propertiesFilePath = new File(propertyPath).getParentFile().getPath() + File.separator + "Service.properties"; + theLocale = ServiceConfigManager.getInstance().getServiceProperties().getLocaleByPropertiesFile(propertiesFilePath); + } + +%> + +
+
+ + +
+ <% if (theLocale.equals(Locale.KOREA)) { %> + + <% } else { %> + + <% } %> + + <% if (theLocale.equals(Locale.US)) { %> + + <% } else { %> + + <% } %> + + <%-- <% if (theLocale.equals(Locale.JAPAN)) { %> + + <% } else { %> + + <% } %> --%> +
+
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/kr/main/navigation.jsp b/src/main/webapp/ClipReport4/admin/kr/main/navigation.jsp new file mode 100644 index 0000000..1a42f52 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/main/navigation.jsp @@ -0,0 +1,80 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +
+
+ +
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/kr/service/createPrinter.jsp b/src/main/webapp/ClipReport4/admin/kr/service/createPrinter.jsp new file mode 100644 index 0000000..af99b78 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/service/createPrinter.jsp @@ -0,0 +1,67 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.util.ArrayList" %> +<%@ page import="javax.print.PrintService" %> +<%@ page import="com.clipsoft.clipreport.common.util.print.*" %> +<%@ page import="com.clipsoft.clipreport.server.service.admin.serviceconfig.util.ParameterConverter" %> +<% + ArrayList printerList = PrintControl.getInstance().getPrintServiceList(); + String create = ParameterConverter.valueParameter(request.getParameter("Create")); + String printerName = ParameterConverter.valueParameter((String)request.getAttribute("name")); + String driver = ParameterConverter.valueParameter((String)request.getAttribute("driver")); +%> + +
+ +
+
+ + + +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ + 취소 +
+
+ +
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/kr/service/environment.jsp b/src/main/webapp/ClipReport4/admin/kr/service/environment.jsp new file mode 100644 index 0000000..093a680 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/service/environment.jsp @@ -0,0 +1,30 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import=" com.clipsoft.clipreport.server.service.admin.serviceconfig.ServiceConfigManager"%> +<% + String engineMotionType = (String) request.getAttribute("engineMotionType"); +%> + +
+ +
+
+
+
+ +

엔진 동작모드 옵션

+ + <% if (engineMotionType.equals("Local")) { %> + + + <% } else { %> + + + <% } %> + +
+
+
+
+
diff --git a/src/main/webapp/ClipReport4/admin/kr/service/printerList.jsp b/src/main/webapp/ClipReport4/admin/kr/service/printerList.jsp new file mode 100644 index 0000000..43cb93d --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/service/printerList.jsp @@ -0,0 +1,73 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.util.ArrayList" %> +<%@ page import="com.clipsoft.clipreport.common.server.beans.printer.*" %> +<% + ArrayList printerList = (ArrayList) request.getAttribute("printerList"); +%> + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + <% int count = printerList.size(); if (count > 0) { for (int index = 0; index < count; index++) {%> + + + + + + + <% } } else {%> + + + + <% } %> + + +
+ + + +
번호프린터 이름드라이버 명
<%=index+1%> <%=printerList.get(index).getName() %><%=printerList.get(index).getDriver() %> +
+ + + +
+
프린터 정보가 존재하지 않습니다. 새로운 프린터를 추가 해주세요
+
+
+
diff --git a/src/main/webapp/ClipReport4/admin/kr/service/updateAdminPassword.jsp b/src/main/webapp/ClipReport4/admin/kr/service/updateAdminPassword.jsp new file mode 100644 index 0000000..676d342 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/kr/service/updateAdminPassword.jsp @@ -0,0 +1,71 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + String update = request.getParameter("update"); +%> + +
+ + +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ + + 취소 +
+
+
+ + diff --git a/src/main/webapp/ClipReport4/admin/login.jsp b/src/main/webapp/ClipReport4/admin/login.jsp new file mode 100644 index 0000000..caccb04 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/login.jsp @@ -0,0 +1,170 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + String language = (String) request.getSession().getAttribute("clipreport_language"); + if (null == language) { + language = "kr"; + } + + String theMessage1 = ""; + String theMessage2 = ""; + String theMessage3 = ""; + + if (language.equalsIgnoreCase("KR")) { + theMessage1 = "비밀번호가 틀렸습니다."; + theMessage2 = "다시 입력해주세요"; + theMessage3 = "패스워드를 입력하세요."; + } else if (language.equalsIgnoreCase("EN")) { + theMessage1 = "Password was wrong"; + theMessage2 = "Please re-enter"; + theMessage3 = "Please enter your password"; + } +%> + + + + + + + + + + + + + CLIP report Server Admin Console + + + + + + + +
+ +
+ + + + + + + \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/admin/loginCheck.jsp b/src/main/webapp/ClipReport4/admin/loginCheck.jsp new file mode 100644 index 0000000..56625b2 --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/loginCheck.jsp @@ -0,0 +1,7 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="com.clipsoft.clipreport.server.service.admin.util.LoginHelper"%> +<% + LoginHelper.loginCheck(request, response); +%> + + diff --git a/src/main/webapp/ClipReport4/admin/logout.jsp b/src/main/webapp/ClipReport4/admin/logout.jsp new file mode 100644 index 0000000..993c96d --- /dev/null +++ b/src/main/webapp/ClipReport4/admin/logout.jsp @@ -0,0 +1,9 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="./loginCheck.jsp" %> +
+
+ + + Logout +
+
\ No newline at end of file diff --git a/src/main/webapp/ClipReport4/createJSPReport.html b/src/main/webapp/ClipReport4/createJSPReport.html new file mode 100644 index 0000000..94c6588 --- /dev/null +++ b/src/main/webapp/ClipReport4/createJSPReport.html @@ -0,0 +1,26 @@ + + + +Report + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/createJSPReport.jsp b/src/main/webapp/ClipReport4/createJSPReport.jsp new file mode 100644 index 0000000..22994ad --- /dev/null +++ b/src/main/webapp/ClipReport4/createJSPReport.jsp @@ -0,0 +1,21 @@ + +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="java.io.File"%> +<%@page import="com.clipsoft.clipreport.server.service.ReportUtil"%> +<%@page import="com.clipsoft.org.apache.commons.lang.StringEscapeUtils"%> +<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@page import="com.clipsoft.org.json.simple.JSONObject"%> +<%@page import="com.clipsoft.org.json.simple.parser.JSONParser"%> +<% +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + +%><%@include file="Property.jsp"%><% +String resultKey = ReportUtil.createReport(request, oof, "false", "false", "localhost", propertyPath); +//리포트의 특정 사용자 ID를 부여합니다. +//clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. +//clipreport4.properties 의 useuserid 옵션이 true 이고 기본 예제[String resultKey = ReportUtil.createReport(request, oof, "false", "false", request.getRemoteAddr(), propertyPath);] 사용 했을 때 세션ID가 userID로 사용 됩니다. +//String resultKey = ReportUtil.createReport(request, oof, "false", "false", request.getRemoteAddr(), propertyPath, "userID"); +%> +<%=resultKey%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/css/UserConfig.css b/src/main/webapp/ClipReport4/css/UserConfig.css new file mode 100644 index 0000000..9777cba --- /dev/null +++ b/src/main/webapp/ClipReport4/css/UserConfig.css @@ -0,0 +1,188 @@ +@CHARSET "UTF-8"; + +/* +사용자 정의 css 파일입니다. +기본적으로 제공하는 css 파일의 내용을 복사하여 오버라이딩 하여 사용합니다. +*/ + +/*예제 뷰어 메뉴*/ +/* +.report_menu_div { + position: absolute; + top: 0px; + width: 100%; + height: 65px; + overflow: visible; + background-color: red; + background-position: 5px 50%; + background-repeat: no-repeat; + -webkit-user-select: none; + -moz-user-select: none; + -khtml-user-select: none; + -ms-user-select: none; +} +*/ + +/* +필수 항목을 체크하지 않았을 때 필수 항목이 들어간 컨트롤에 아래의 스타일을 적용합니다. +*/ +.eForm_NecessaryCheck{ + background-color : orange !important; + opacity: 0.5 !important; +} + + +/* +입력 컨트롤에 포커스가 들어왔을 때 아래의 스타일을 적용합니다. +*/ +.eform_textarea:focus{ + border:2pt solid Orange; + outline: none; +} + +.eform_control_focus{ + border:2pt solid Orange; +} + +/* +목차에 관련된 스타일을 적용합니다. +*/ +/* +.eform_toc_menu_top { + position: absolute; + left: 10px; + top: 55px; + height: 50px; + width: 250px; + background-color: rgba(243, 243, 243, 0.95); + border-bottom: 2px solid rgb(212, 212, 212); + box-sizing: border-box; + border-radius: 10px 10px 0px 0px; +} + +.eform_toc_menu_top_text { + position: absolute; + left: 5px; + top: 15px; + font-family: 나눔고딕; + font-size: 13pt; + color: rgb(115, 197, 215); + font-weight: bold; +} + +.eform_toc_menu_top_close { + position: absolute; + right: 10px; + top: 17px; + width: 19px; + height: 19px; + background-image: url(../img/eform/list_close.png); + background-size: contain; + cursor: pointer; +} + +.eform_toc_menu_body { + position: absolute; + left: 10px; + top: 105px; + overflow-x: hidden; + overflow-y: auto; + width: 250px; + bottom: 35px; + background-color: rgba(243, 243, 243, 0.95); + box-sizing: border-box; +} + +.eform_toc_list_depth { + position: relative; + left: 0px; + right: 0px; + height: 30px; + border-bottom: 1px solid rgb(212, 212, 212); +} + +.eform_toc_nec_list_depth { + position: relative; + left: 0px; + right: 0px; + height: 30px; + border-bottom: 1px solid rgb(212, 212, 212); + background-image:url(../img/eform/nec_check.png); + background-size: 15px 15px; + background-repeat: no-repeat; + background-position : 5px center; +} + +.eform_toc_list_depth_text{ + position: absolute; + font-family : 나눔고딕; + font-weight: bold; + text-overflow: ellipsis; + white-space: nowrap; + overflow:hidden; + cursor: pointer; +} + +.eform_toc_list_depth_pageNumber{ + position: absolute; + font-family : 나눔고딕; + white-space: nowrap; + overflow:hidden; + font-size: 10pt; + top:7px; + right:0px; + width:30px; + text-align: center; +} + +.eform_toc_list_depth1_text { + font-size: 12pt; + color: rgb(215, 172, 135); + top: 5px; + bottom: 0px; + +} + +.eform_toc_list_depth2_text { + font-size: 12pt; + color: rgb(100, 100, 100); + top: 5px; + bottom: 0px; +} + +.eform_toc_list_depth3_text { + font-size: 11pt; + color: rgb(100, 100, 100); + top: 7px; + bottom: 0px; +} + +.eform_toc_menu_bottom { + position: absolute; + left: 10px; + bottom: 25px; + height: 10px; + width: 250px; + background-color: rgba(243, 243, 243, 0.95); + box-sizing: border-box; + border-radius: 0px 0px 10px 10px; +} +*/ + +.report_displayNone{ + position:absoulte !important; + width:1px !important; + height:1px !important; + visibility: hidden !important; + opacity:0 !important; +} + +/* +사용자 정의 프로그래스 createUserProgress 함수를 사용하였을 때 동작합니다. +*/ +.user_progress{ + background-position: 50% 50%; + background-image: url(../img/efromProgress.gif); + opacity: 0.5; + background-color:gray; +} diff --git a/src/main/webapp/ClipReport4/css/admin/bootstrap-responsive.css b/src/main/webapp/ClipReport4/css/admin/bootstrap-responsive.css new file mode 100644 index 0000000..c0bba15 --- /dev/null +++ b/src/main/webapp/ClipReport4/css/admin/bootstrap-responsive.css @@ -0,0 +1,1109 @@ +/*! + * Bootstrap Responsive v2.3.2 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +@-ms-viewport { + width: device-width; +} + +.hidden { + display: none; + visibility: hidden; +} + +.visible-phone { + display: none !important; +} + +.visible-tablet { + display: none !important; +} + +.hidden-desktop { + display: none !important; +} + +.visible-desktop { + display: inherit !important; +} + +@media (min-width: 768px) and (max-width: 979px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important ; + } + .visible-tablet { + display: inherit !important; + } + .hidden-tablet { + display: none !important; + } +} + +@media (max-width: 767px) { + .hidden-desktop { + display: inherit !important; + } + .visible-desktop { + display: none !important; + } + .visible-phone { + display: inherit !important; + } + .hidden-phone { + display: none !important; + } +} + +.visible-print { + display: none !important; +} + +@media print { + .visible-print { + display: inherit !important; + } + .hidden-print { + display: none !important; + } +} + +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 30px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 1170px; + } + .span12 { + width: 1170px; + } + .span11 { + width: 1070px; + } + .span10 { + width: 970px; + } + .span9 { + width: 870px; + } + .span8 { + width: 770px; + } + .span7 { + width: 670px; + } + .span6 { + width: 570px; + } + .span5 { + width: 470px; + } + .span4 { + width: 370px; + } + .span3 { + width: 270px; + } + .span2 { + width: 170px; + } + .span1 { + width: 70px; + } + .offset12 { + margin-left: 1230px; + } + .offset11 { + margin-left: 1130px; + } + .offset10 { + margin-left: 1030px; + } + .offset9 { + margin-left: 930px; + } + .offset8 { + margin-left: 830px; + } + .offset7 { + margin-left: 730px; + } + .offset6 { + margin-left: 630px; + } + .offset5 { + margin-left: 530px; + } + .offset4 { + margin-left: 430px; + } + .offset3 { + margin-left: 330px; + } + .offset2 { + margin-left: 230px; + } + .offset1 { + margin-left: 130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.564102564102564%; + *margin-left: 2.5109110747408616%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.564102564102564%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.45299145299145%; + *width: 91.39979996362975%; + } + .row-fluid .span10 { + width: 82.90598290598291%; + *width: 82.8527914166212%; + } + .row-fluid .span9 { + width: 74.35897435897436%; + *width: 74.30578286961266%; + } + .row-fluid .span8 { + width: 65.81196581196582%; + *width: 65.75877432260411%; + } + .row-fluid .span7 { + width: 57.26495726495726%; + *width: 57.21176577559556%; + } + .row-fluid .span6 { + width: 48.717948717948715%; + *width: 48.664757228587014%; + } + .row-fluid .span5 { + width: 40.17094017094017%; + *width: 40.11774868157847%; + } + .row-fluid .span4 { + width: 31.623931623931625%; + *width: 31.570740134569924%; + } + .row-fluid .span3 { + width: 23.076923076923077%; + *width: 23.023731587561375%; + } + .row-fluid .span2 { + width: 14.52991452991453%; + *width: 14.476723040552828%; + } + .row-fluid .span1 { + width: 5.982905982905983%; + *width: 5.929714493544281%; + } + .row-fluid .offset12 { + margin-left: 105.12820512820512%; + *margin-left: 105.02182214948171%; + } + .row-fluid .offset12:first-child { + margin-left: 102.56410256410257%; + *margin-left: 102.45771958537915%; + } + .row-fluid .offset11 { + margin-left: 96.58119658119658%; + *margin-left: 96.47481360247316%; + } + .row-fluid .offset11:first-child { + margin-left: 94.01709401709402%; + *margin-left: 93.91071103837061%; + } + .row-fluid .offset10 { + margin-left: 88.03418803418803%; + *margin-left: 87.92780505546462%; + } + .row-fluid .offset10:first-child { + margin-left: 85.47008547008548%; + *margin-left: 85.36370249136206%; + } + .row-fluid .offset9 { + margin-left: 79.48717948717949%; + *margin-left: 79.38079650845607%; + } + .row-fluid .offset9:first-child { + margin-left: 76.92307692307693%; + *margin-left: 76.81669394435352%; + } + .row-fluid .offset8 { + margin-left: 70.94017094017094%; + *margin-left: 70.83378796144753%; + } + .row-fluid .offset8:first-child { + margin-left: 68.37606837606839%; + *margin-left: 68.26968539734497%; + } + .row-fluid .offset7 { + margin-left: 62.393162393162385%; + *margin-left: 62.28677941443899%; + } + .row-fluid .offset7:first-child { + margin-left: 59.82905982905982%; + *margin-left: 59.72267685033642%; + } + .row-fluid .offset6 { + margin-left: 53.84615384615384%; + *margin-left: 53.739770867430444%; + } + .row-fluid .offset6:first-child { + margin-left: 51.28205128205128%; + *margin-left: 51.175668303327875%; + } + .row-fluid .offset5 { + margin-left: 45.299145299145295%; + *margin-left: 45.1927623204219%; + } + .row-fluid .offset5:first-child { + margin-left: 42.73504273504273%; + *margin-left: 42.62865975631933%; + } + .row-fluid .offset4 { + margin-left: 36.75213675213675%; + *margin-left: 36.645753773413354%; + } + .row-fluid .offset4:first-child { + margin-left: 34.18803418803419%; + *margin-left: 34.081651209310785%; + } + .row-fluid .offset3 { + margin-left: 28.205128205128204%; + *margin-left: 28.0987452264048%; + } + .row-fluid .offset3:first-child { + margin-left: 25.641025641025642%; + *margin-left: 25.53464266230224%; + } + .row-fluid .offset2 { + margin-left: 19.65811965811966%; + *margin-left: 19.551736679396257%; + } + .row-fluid .offset2:first-child { + margin-left: 17.094017094017094%; + *margin-left: 16.98763411529369%; + } + .row-fluid .offset1 { + margin-left: 11.11111111111111%; + *margin-left: 11.004728132387708%; + } + .row-fluid .offset1:first-child { + margin-left: 8.547008547008547%; + *margin-left: 8.440625568285142%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 30px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 1156px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 1056px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 956px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 856px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 756px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 656px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 556px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 456px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 356px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 256px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 156px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 56px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } + .row-fluid .thumbnails { + margin-left: 0; + } +} + +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + line-height: 0; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; + } + .container, + .navbar-static-top .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 724px; + } + .span12 { + width: 724px; + } + .span11 { + width: 662px; + } + .span10 { + width: 600px; + } + .span9 { + width: 538px; + } + .span8 { + width: 476px; + } + .span7 { + width: 414px; + } + .span6 { + width: 352px; + } + .span5 { + width: 290px; + } + .span4 { + width: 228px; + } + .span3 { + width: 166px; + } + .span2 { + width: 104px; + } + .span1 { + width: 42px; + } + .offset12 { + margin-left: 764px; + } + .offset11 { + margin-left: 702px; + } + .offset10 { + margin-left: 640px; + } + .offset9 { + margin-left: 578px; + } + .offset8 { + margin-left: 516px; + } + .offset7 { + margin-left: 454px; + } + .offset6 { + margin-left: 392px; + } + .offset5 { + margin-left: 330px; + } + .offset4 { + margin-left: 268px; + } + .offset3 { + margin-left: 206px; + } + .offset2 { + margin-left: 144px; + } + .offset1 { + margin-left: 82px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + line-height: 0; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.7624309392265194%; + *margin-left: 2.709239449864817%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.7624309392265194%; + } + .row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; + } + .row-fluid .span11 { + width: 91.43646408839778%; + *width: 91.38327259903608%; + } + .row-fluid .span10 { + width: 82.87292817679558%; + *width: 82.81973668743387%; + } + .row-fluid .span9 { + width: 74.30939226519337%; + *width: 74.25620077583166%; + } + .row-fluid .span8 { + width: 65.74585635359117%; + *width: 65.69266486422946%; + } + .row-fluid .span7 { + width: 57.18232044198895%; + *width: 57.12912895262725%; + } + .row-fluid .span6 { + width: 48.61878453038674%; + *width: 48.56559304102504%; + } + .row-fluid .span5 { + width: 40.05524861878453%; + *width: 40.00205712942283%; + } + .row-fluid .span4 { + width: 31.491712707182323%; + *width: 31.43852121782062%; + } + .row-fluid .span3 { + width: 22.92817679558011%; + *width: 22.87498530621841%; + } + .row-fluid .span2 { + width: 14.3646408839779%; + *width: 14.311449394616199%; + } + .row-fluid .span1 { + width: 5.801104972375691%; + *width: 5.747913483013988%; + } + .row-fluid .offset12 { + margin-left: 105.52486187845304%; + *margin-left: 105.41847889972962%; + } + .row-fluid .offset12:first-child { + margin-left: 102.76243093922652%; + *margin-left: 102.6560479605031%; + } + .row-fluid .offset11 { + margin-left: 96.96132596685082%; + *margin-left: 96.8549429881274%; + } + .row-fluid .offset11:first-child { + margin-left: 94.1988950276243%; + *margin-left: 94.09251204890089%; + } + .row-fluid .offset10 { + margin-left: 88.39779005524862%; + *margin-left: 88.2914070765252%; + } + .row-fluid .offset10:first-child { + margin-left: 85.6353591160221%; + *margin-left: 85.52897613729868%; + } + .row-fluid .offset9 { + margin-left: 79.8342541436464%; + *margin-left: 79.72787116492299%; + } + .row-fluid .offset9:first-child { + margin-left: 77.07182320441989%; + *margin-left: 76.96544022569647%; + } + .row-fluid .offset8 { + margin-left: 71.2707182320442%; + *margin-left: 71.16433525332079%; + } + .row-fluid .offset8:first-child { + margin-left: 68.50828729281768%; + *margin-left: 68.40190431409427%; + } + .row-fluid .offset7 { + margin-left: 62.70718232044199%; + *margin-left: 62.600799341718584%; + } + .row-fluid .offset7:first-child { + margin-left: 59.94475138121547%; + *margin-left: 59.838368402492065%; + } + .row-fluid .offset6 { + margin-left: 54.14364640883978%; + *margin-left: 54.037263430116376%; + } + .row-fluid .offset6:first-child { + margin-left: 51.38121546961326%; + *margin-left: 51.27483249088986%; + } + .row-fluid .offset5 { + margin-left: 45.58011049723757%; + *margin-left: 45.47372751851417%; + } + .row-fluid .offset5:first-child { + margin-left: 42.81767955801105%; + *margin-left: 42.71129657928765%; + } + .row-fluid .offset4 { + margin-left: 37.01657458563536%; + *margin-left: 36.91019160691196%; + } + .row-fluid .offset4:first-child { + margin-left: 34.25414364640884%; + *margin-left: 34.14776066768544%; + } + .row-fluid .offset3 { + margin-left: 28.45303867403315%; + *margin-left: 28.346655695309746%; + } + .row-fluid .offset3:first-child { + margin-left: 25.69060773480663%; + *margin-left: 25.584224756083227%; + } + .row-fluid .offset2 { + margin-left: 19.88950276243094%; + *margin-left: 19.783119783707537%; + } + .row-fluid .offset2:first-child { + margin-left: 17.12707182320442%; + *margin-left: 17.02068884448102%; + } + .row-fluid .offset1 { + margin-left: 11.32596685082873%; + *margin-left: 11.219583872105325%; + } + .row-fluid .offset1:first-child { + margin-left: 8.56353591160221%; + *margin-left: 8.457152932878806%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; + } + input.span12, + textarea.span12, + .uneditable-input.span12 { + width: 710px; + } + input.span11, + textarea.span11, + .uneditable-input.span11 { + width: 648px; + } + input.span10, + textarea.span10, + .uneditable-input.span10 { + width: 586px; + } + input.span9, + textarea.span9, + .uneditable-input.span9 { + width: 524px; + } + input.span8, + textarea.span8, + .uneditable-input.span8 { + width: 462px; + } + input.span7, + textarea.span7, + .uneditable-input.span7 { + width: 400px; + } + input.span6, + textarea.span6, + .uneditable-input.span6 { + width: 338px; + } + input.span5, + textarea.span5, + .uneditable-input.span5 { + width: 276px; + } + input.span4, + textarea.span4, + .uneditable-input.span4 { + width: 214px; + } + input.span3, + textarea.span3, + .uneditable-input.span3 { + width: 152px; + } + input.span2, + textarea.span2, + .uneditable-input.span2 { + width: 90px; + } + input.span1, + textarea.span1, + .uneditable-input.span1 { + width: 28px; + } +} + +@media (max-width: 767px) { + body { + padding-right: 20px; + padding-left: 20px; + } + .navbar-fixed-top, + .navbar-fixed-bottom, + .navbar-static-top { + margin-right: -20px; + margin-left: -20px; + } + .container-fluid { + padding: 0; + } + .dl-horizontal dt { + float: none; + width: auto; + clear: none; + text-align: left; + } + .dl-horizontal dd { + margin-left: 0; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row, + .thumbnails { + margin-left: 0; + } + .thumbnails > li { + float: none; + margin-left: 0; + } + [class*="span"], + .uneditable-input[class*="span"], + .row-fluid [class*="span"] { + display: block; + float: none; + width: 100%; + margin-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .span12, + .row-fluid .span12 { + width: 100%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .row-fluid [class*="offset"]:first-child { + margin-left: 0; + } + .input-large, + .input-xlarge, + .input-xxlarge, + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .input-prepend input, + .input-append input, + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + display: inline-block; + width: auto; + } + .controls-row [class*="span"] + [class*="span"] { + margin-left: 0; + } + .modal { + position: fixed; + top: 20px; + right: 20px; + left: 20px; + width: auto; + margin: 0; + } + .modal.fade { + top: -100px; + } + .modal.fade.in { + top: 20px; + } +} + +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 20px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-right: 10px; + padding-left: 10px; + } + .media .pull-left, + .media .pull-right { + display: block; + float: none; + margin-bottom: 10px; + } + .media-object { + margin-right: 0; + margin-left: 0; + } + .modal { + top: 10px; + right: 10px; + left: 10px; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} + +@media (max-width: 979px) { + body { + padding-top: 0; + } + .navbar-fixed-top, + .navbar-fixed-bottom { + position: static; + } + .navbar-fixed-top { + margin-bottom: 20px; + } + .navbar-fixed-bottom { + margin-top: 20px; + } + .navbar-fixed-top .navbar-inner, + .navbar-fixed-bottom .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-right: 10px; + padding-left: 10px; + margin: 0 0 0 -5px; + } + .nav-collapse { + clear: both; + } + .nav-collapse .nav { + float: none; + margin: 0 0 10px; + } + .nav-collapse .nav > li { + float: none; + } + .nav-collapse .nav > li > a { + margin-bottom: 2px; + } + .nav-collapse .nav > .divider-vertical { + display: none; + } + .nav-collapse .nav .nav-header { + color: #777777; + text-shadow: none; + } + .nav-collapse .nav > li > a, + .nav-collapse .dropdown-menu a { + padding: 9px 15px; + font-weight: bold; + color: #777777; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + .nav-collapse .btn { + padding: 4px 10px 4px; + font-weight: normal; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + } + .nav-collapse .dropdown-menu li + li a { + margin-bottom: 2px; + } + .nav-collapse .nav > li > a:hover, + .nav-collapse .nav > li > a:focus, + .nav-collapse .dropdown-menu a:hover, + .nav-collapse .dropdown-menu a:focus { + background-color: #f2f2f2; + } + .navbar-inverse .nav-collapse .nav > li > a, + .navbar-inverse .nav-collapse .dropdown-menu a { + color: #999999; + } + .navbar-inverse .nav-collapse .nav > li > a:hover, + .navbar-inverse .nav-collapse .nav > li > a:focus, + .navbar-inverse .nav-collapse .dropdown-menu a:hover, + .navbar-inverse .nav-collapse .dropdown-menu a:focus { + background-color: #111111; + } + .nav-collapse.in .btn-group { + padding: 0; + margin-top: 5px; + } + .nav-collapse .dropdown-menu { + position: static; + top: auto; + left: auto; + display: none; + float: none; + max-width: none; + padding: 0; + margin: 0 15px; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .nav-collapse .open > .dropdown-menu { + display: block; + } + .nav-collapse .dropdown-menu:before, + .nav-collapse .dropdown-menu:after { + display: none; + } + .nav-collapse .dropdown-menu .divider { + display: none; + } + .nav-collapse .nav > li > .dropdown-menu:before, + .nav-collapse .nav > li > .dropdown-menu:after { + display: none; + } + .nav-collapse .navbar-form, + .nav-collapse .navbar-search { + float: none; + padding: 10px 15px; + margin: 10px 0; + border-top: 1px solid #f2f2f2; + border-bottom: 1px solid #f2f2f2; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + } + .navbar-inverse .nav-collapse .navbar-form, + .navbar-inverse .nav-collapse .navbar-search { + border-top-color: #111111; + border-bottom-color: #111111; + } + .navbar .nav-collapse .nav.pull-right { + float: none; + margin-left: 0; + } + .nav-collapse, + .nav-collapse.collapse { + height: 0; + overflow: hidden; + } + .navbar .btn-navbar { + display: block; + } + .navbar-static .navbar-inner { + padding-right: 10px; + padding-left: 10px; + } +} + +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} diff --git a/src/main/webapp/ClipReport4/css/admin/bootstrap-responsive.min.css b/src/main/webapp/ClipReport4/css/admin/bootstrap-responsive.min.css new file mode 100644 index 0000000..96a435b --- /dev/null +++ b/src/main/webapp/ClipReport4/css/admin/bootstrap-responsive.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap Responsive v2.3.2 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}@-ms-viewport{width:device-width}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}.visible-desktop{display:inherit!important}@media(min-width:768px) and (max-width:979px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}}@media(max-width:767px){.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}.visible-phone{display:inherit!important}.hidden-phone{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:inherit!important}.hidden-print{display:none!important}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:30px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.564102564102564%;*margin-left:2.5109110747408616%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.564102564102564%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145299145%;*width:91.39979996362975%}.row-fluid .span10{width:82.90598290598291%;*width:82.8527914166212%}.row-fluid .span9{width:74.35897435897436%;*width:74.30578286961266%}.row-fluid .span8{width:65.81196581196582%;*width:65.75877432260411%}.row-fluid .span7{width:57.26495726495726%;*width:57.21176577559556%}.row-fluid .span6{width:48.717948717948715%;*width:48.664757228587014%}.row-fluid .span5{width:40.17094017094017%;*width:40.11774868157847%}.row-fluid .span4{width:31.623931623931625%;*width:31.570740134569924%}.row-fluid .span3{width:23.076923076923077%;*width:23.023731587561375%}.row-fluid .span2{width:14.52991452991453%;*width:14.476723040552828%}.row-fluid .span1{width:5.982905982905983%;*width:5.929714493544281%}.row-fluid .offset12{margin-left:105.12820512820512%;*margin-left:105.02182214948171%}.row-fluid .offset12:first-child{margin-left:102.56410256410257%;*margin-left:102.45771958537915%}.row-fluid .offset11{margin-left:96.58119658119658%;*margin-left:96.47481360247316%}.row-fluid .offset11:first-child{margin-left:94.01709401709402%;*margin-left:93.91071103837061%}.row-fluid .offset10{margin-left:88.03418803418803%;*margin-left:87.92780505546462%}.row-fluid .offset10:first-child{margin-left:85.47008547008548%;*margin-left:85.36370249136206%}.row-fluid .offset9{margin-left:79.48717948717949%;*margin-left:79.38079650845607%}.row-fluid .offset9:first-child{margin-left:76.92307692307693%;*margin-left:76.81669394435352%}.row-fluid .offset8{margin-left:70.94017094017094%;*margin-left:70.83378796144753%}.row-fluid .offset8:first-child{margin-left:68.37606837606839%;*margin-left:68.26968539734497%}.row-fluid .offset7{margin-left:62.393162393162385%;*margin-left:62.28677941443899%}.row-fluid .offset7:first-child{margin-left:59.82905982905982%;*margin-left:59.72267685033642%}.row-fluid .offset6{margin-left:53.84615384615384%;*margin-left:53.739770867430444%}.row-fluid .offset6:first-child{margin-left:51.28205128205128%;*margin-left:51.175668303327875%}.row-fluid .offset5{margin-left:45.299145299145295%;*margin-left:45.1927623204219%}.row-fluid .offset5:first-child{margin-left:42.73504273504273%;*margin-left:42.62865975631933%}.row-fluid .offset4{margin-left:36.75213675213675%;*margin-left:36.645753773413354%}.row-fluid .offset4:first-child{margin-left:34.18803418803419%;*margin-left:34.081651209310785%}.row-fluid .offset3{margin-left:28.205128205128204%;*margin-left:28.0987452264048%}.row-fluid .offset3:first-child{margin-left:25.641025641025642%;*margin-left:25.53464266230224%}.row-fluid .offset2{margin-left:19.65811965811966%;*margin-left:19.551736679396257%}.row-fluid .offset2:first-child{margin-left:17.094017094017094%;*margin-left:16.98763411529369%}.row-fluid .offset1{margin-left:11.11111111111111%;*margin-left:11.004728132387708%}.row-fluid .offset1:first-child{margin-left:8.547008547008547%;*margin-left:8.440625568285142%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:30px}input.span12,textarea.span12,.uneditable-input.span12{width:1156px}input.span11,textarea.span11,.uneditable-input.span11{width:1056px}input.span10,textarea.span10,.uneditable-input.span10{width:956px}input.span9,textarea.span9,.uneditable-input.span9{width:856px}input.span8,textarea.span8,.uneditable-input.span8{width:756px}input.span7,textarea.span7,.uneditable-input.span7{width:656px}input.span6,textarea.span6,.uneditable-input.span6{width:556px}input.span5,textarea.span5,.uneditable-input.span5{width:456px}input.span4,textarea.span4,.uneditable-input.span4{width:356px}input.span3,textarea.span3,.uneditable-input.span3{width:256px}input.span2,textarea.span2,.uneditable-input.span2{width:156px}input.span1,textarea.span1,.uneditable-input.span1{width:56px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.7624309392265194%;*margin-left:2.709239449864817%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.7624309392265194%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.43646408839778%;*width:91.38327259903608%}.row-fluid .span10{width:82.87292817679558%;*width:82.81973668743387%}.row-fluid .span9{width:74.30939226519337%;*width:74.25620077583166%}.row-fluid .span8{width:65.74585635359117%;*width:65.69266486422946%}.row-fluid .span7{width:57.18232044198895%;*width:57.12912895262725%}.row-fluid .span6{width:48.61878453038674%;*width:48.56559304102504%}.row-fluid .span5{width:40.05524861878453%;*width:40.00205712942283%}.row-fluid .span4{width:31.491712707182323%;*width:31.43852121782062%}.row-fluid .span3{width:22.92817679558011%;*width:22.87498530621841%}.row-fluid .span2{width:14.3646408839779%;*width:14.311449394616199%}.row-fluid .span1{width:5.801104972375691%;*width:5.747913483013988%}.row-fluid .offset12{margin-left:105.52486187845304%;*margin-left:105.41847889972962%}.row-fluid .offset12:first-child{margin-left:102.76243093922652%;*margin-left:102.6560479605031%}.row-fluid .offset11{margin-left:96.96132596685082%;*margin-left:96.8549429881274%}.row-fluid .offset11:first-child{margin-left:94.1988950276243%;*margin-left:94.09251204890089%}.row-fluid .offset10{margin-left:88.39779005524862%;*margin-left:88.2914070765252%}.row-fluid .offset10:first-child{margin-left:85.6353591160221%;*margin-left:85.52897613729868%}.row-fluid .offset9{margin-left:79.8342541436464%;*margin-left:79.72787116492299%}.row-fluid .offset9:first-child{margin-left:77.07182320441989%;*margin-left:76.96544022569647%}.row-fluid .offset8{margin-left:71.2707182320442%;*margin-left:71.16433525332079%}.row-fluid .offset8:first-child{margin-left:68.50828729281768%;*margin-left:68.40190431409427%}.row-fluid .offset7{margin-left:62.70718232044199%;*margin-left:62.600799341718584%}.row-fluid .offset7:first-child{margin-left:59.94475138121547%;*margin-left:59.838368402492065%}.row-fluid .offset6{margin-left:54.14364640883978%;*margin-left:54.037263430116376%}.row-fluid .offset6:first-child{margin-left:51.38121546961326%;*margin-left:51.27483249088986%}.row-fluid .offset5{margin-left:45.58011049723757%;*margin-left:45.47372751851417%}.row-fluid .offset5:first-child{margin-left:42.81767955801105%;*margin-left:42.71129657928765%}.row-fluid .offset4{margin-left:37.01657458563536%;*margin-left:36.91019160691196%}.row-fluid .offset4:first-child{margin-left:34.25414364640884%;*margin-left:34.14776066768544%}.row-fluid .offset3{margin-left:28.45303867403315%;*margin-left:28.346655695309746%}.row-fluid .offset3:first-child{margin-left:25.69060773480663%;*margin-left:25.584224756083227%}.row-fluid .offset2{margin-left:19.88950276243094%;*margin-left:19.783119783707537%}.row-fluid .offset2:first-child{margin-left:17.12707182320442%;*margin-left:17.02068884448102%}.row-fluid .offset1{margin-left:11.32596685082873%;*margin-left:11.219583872105325%}.row-fluid .offset1:first-child{margin-left:8.56353591160221%;*margin-left:8.457152932878806%}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:710px}input.span11,textarea.span11,.uneditable-input.span11{width:648px}input.span10,textarea.span10,.uneditable-input.span10{width:586px}input.span9,textarea.span9,.uneditable-input.span9{width:524px}input.span8,textarea.span8,.uneditable-input.span8{width:462px}input.span7,textarea.span7,.uneditable-input.span7{width:400px}input.span6,textarea.span6,.uneditable-input.span6{width:338px}input.span5,textarea.span5,.uneditable-input.span5{width:276px}input.span4,textarea.span4,.uneditable-input.span4{width:214px}input.span3,textarea.span3,.uneditable-input.span3{width:152px}input.span2,textarea.span2,.uneditable-input.span2{width:90px}input.span1,textarea.span1,.uneditable-input.span1{width:28px}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom,.navbar-static-top{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}.thumbnails>li{float:none;margin-left:0}[class*="span"],.uneditable-input[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:100%;margin-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.span12,.row-fluid .span12{width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="offset"]:first-child{margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}.controls-row [class*="span"]+[class*="span"]{margin-left:0}.modal{position:fixed;top:20px;right:20px;left:20px;width:auto;margin:0}.modal.fade{top:-100px}.modal.fade.in{top:20px}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:20px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.media .pull-left,.media .pull-right{display:block;float:none;margin-bottom:10px}.media-object{margin-right:0;margin-left:0}.modal{top:10px;right:10px;left:10px}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top,.navbar-fixed-bottom{position:static}.navbar-fixed-top{margin-bottom:20px}.navbar-fixed-bottom{margin-top:20px}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 10px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#777;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:9px 15px;font-weight:bold;color:#777;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .nav>li>a:focus,.nav-collapse .dropdown-menu a:hover,.nav-collapse .dropdown-menu a:focus{background-color:#f2f2f2}.navbar-inverse .nav-collapse .nav>li>a,.navbar-inverse .nav-collapse .dropdown-menu a{color:#999}.navbar-inverse .nav-collapse .nav>li>a:hover,.navbar-inverse .nav-collapse .nav>li>a:focus,.navbar-inverse .nav-collapse .dropdown-menu a:hover,.navbar-inverse .nav-collapse .dropdown-menu a:focus{background-color:#111}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:none;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .open>.dropdown-menu{display:block}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .nav>li>.dropdown-menu:before,.nav-collapse .nav>li>.dropdown-menu:after{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:10px 15px;margin:10px 0;border-top:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar-inverse .nav-collapse .navbar-form,.navbar-inverse .nav-collapse .navbar-search{border-top-color:#111;border-bottom-color:#111}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} diff --git a/src/main/webapp/ClipReport4/css/admin/bootstrap.css b/src/main/webapp/ClipReport4/css/admin/bootstrap.css new file mode 100644 index 0000000..2df9556 --- /dev/null +++ b/src/main/webapp/ClipReport4/css/admin/bootstrap.css @@ -0,0 +1,6168 @@ +/*! + * Bootstrap v2.3.2 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */ + +.clearfix { + *zoom: 1; +} + +.clearfix:before, +.clearfix:after { + display: table; + line-height: 0; + content: ""; +} + +.clearfix:after { + clear: both; +} + +.hide-text { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.input-block-level { + display: block; + width: 100%; + min-height: 30px; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +audio:not([controls]) { + display: none; +} + +html { + font-size: 100%; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +a:hover, +a:active { + outline: 0; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + width: auto\9; + height: auto; + max-width: 100%; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} + +#map_canvas img, +.google-maps img { + max-width: none; +} + +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} + +button, +input { + *overflow: visible; + line-height: normal; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 0.5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} + +body { + margin: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + + font-size: 14px; + line-height: 20px; + color: #333333; + background-color: #ffffff; +} + +a { + color: #0088cc; + text-decoration: none; +} + +a:hover, +a:focus { + color: #005580; + text-decoration: underline; +} + +.img-rounded { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.img-polaroid { + padding: 4px; + background-color: #fff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); +} + +.img-circle { + -webkit-border-radius: 500px; + -moz-border-radius: 500px; + border-radius: 500px; +} + +.row { + margin-left: -20px; + *zoom: 1; +} + +.row:before, +.row:after { + display: table; + line-height: 0; + content: ""; +} + +.row:after { + clear: both; +} + +[class*="span"] { + float: left; + min-height: 1px; + margin-left: 20px; +} + +.container, +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 1200px; +} + +.span12 { + width: 940px; +} + +.span11 { + width: 860px; +} + +.span10 { + width: 780px; +} + +.span9 { + width: 700px; +} + +.span8 { + width: 620px; +} + +.span7 { + width: 540px; +} + +.span6 { + width: 460px; +} + +.span5 { + width: 380px; +} + +.span4 { + width: 300px; +} + +.span3 { + width: 220px; +} + +.span2 { + width: 140px; +} + +.span1 { + width: 60px; +} + +.offset12 { + margin-left: 980px; +} + +.offset11 { + margin-left: 900px; +} + +.offset10 { + margin-left: 820px; +} + +.offset9 { + margin-left: 740px; +} + +.offset8 { + margin-left: 660px; +} + +.offset7 { + margin-left: 580px; +} + +.offset6 { + margin-left: 500px; +} + +.offset5 { + margin-left: 420px; +} + +.offset4 { + margin-left: 340px; +} + +.offset3 { + margin-left: 260px; +} + +.offset2 { + margin-left: 180px; +} + +.offset1 { + margin-left: 100px; +} + +.row-fluid { + width: 100%; + *zoom: 1; +} + +.row-fluid:before, +.row-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.row-fluid:after { + clear: both; +} + +.row-fluid [class*="span"] { + display: block; + float: left; + width: 100%; + min-height: 30px; + margin-left: 2.127659574468085%; + *margin-left: 2.074468085106383%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.row-fluid [class*="span"]:first-child { + margin-left: 0; +} + +.row-fluid .controls-row [class*="span"] + [class*="span"] { + margin-left: 2.127659574468085%; +} + +.row-fluid .span12 { + width: 100%; + *width: 99.94680851063829%; +} + +.row-fluid .span11 { + width: 91.48936170212765%; + *width: 91.43617021276594%; +} + +.row-fluid .span10 { + width: 82.97872340425532%; + *width: 82.92553191489361%; +} + +.row-fluid .span9 { + width: 74.46808510638297%; + *width: 74.41489361702126%; +} + +.row-fluid .span8 { + width: 65.95744680851064%; + *width: 65.90425531914893%; +} + +.row-fluid .span7 { + width: 57.44680851063829%; + *width: 57.39361702127659%; +} + +.row-fluid .span6 { + width: 48.93617021276595%; + *width: 48.88297872340425%; +} + +.row-fluid .span5 { + width: 40.42553191489362%; + *width: 40.37234042553192%; +} + +.row-fluid .span4 { + width: 31.914893617021278%; + *width: 31.861702127659576%; +} + +.row-fluid .span3 { + width: 23.404255319148934%; + *width: 23.351063829787233%; +} + +.row-fluid .span2 { + width: 14.893617021276595%; + *width: 14.840425531914894%; +} + +.row-fluid .span1 { + width: 6.382978723404255%; + *width: 6.329787234042553%; +} + +.row-fluid .offset12 { + margin-left: 104.25531914893617%; + *margin-left: 104.14893617021275%; +} + +.row-fluid .offset12:first-child { + margin-left: 102.12765957446808%; + *margin-left: 102.02127659574467%; +} + +.row-fluid .offset11 { + margin-left: 95.74468085106382%; + *margin-left: 95.6382978723404%; +} + +.row-fluid .offset11:first-child { + margin-left: 93.61702127659574%; + *margin-left: 93.51063829787232%; +} + +.row-fluid .offset10 { + margin-left: 87.23404255319149%; + *margin-left: 87.12765957446807%; +} + +.row-fluid .offset10:first-child { + margin-left: 85.1063829787234%; + *margin-left: 84.99999999999999%; +} + +.row-fluid .offset9 { + margin-left: 78.72340425531914%; + *margin-left: 78.61702127659572%; +} + +.row-fluid .offset9:first-child { + margin-left: 76.59574468085106%; + *margin-left: 76.48936170212764%; +} + +.row-fluid .offset8 { + margin-left: 70.2127659574468%; + *margin-left: 70.10638297872339%; +} + +.row-fluid .offset8:first-child { + margin-left: 68.08510638297872%; + *margin-left: 67.9787234042553%; +} + +.row-fluid .offset7 { + margin-left: 61.70212765957446%; + *margin-left: 61.59574468085106%; +} + +.row-fluid .offset7:first-child { + margin-left: 59.574468085106375%; + *margin-left: 59.46808510638297%; +} + +.row-fluid .offset6 { + margin-left: 53.191489361702125%; + *margin-left: 53.085106382978715%; +} + +.row-fluid .offset6:first-child { + margin-left: 51.063829787234035%; + *margin-left: 50.95744680851063%; +} + +.row-fluid .offset5 { + margin-left: 44.68085106382979%; + *margin-left: 44.57446808510638%; +} + +.row-fluid .offset5:first-child { + margin-left: 42.5531914893617%; + *margin-left: 42.4468085106383%; +} + +.row-fluid .offset4 { + margin-left: 36.170212765957444%; + *margin-left: 36.06382978723405%; +} + +.row-fluid .offset4:first-child { + margin-left: 34.04255319148936%; + *margin-left: 33.93617021276596%; +} + +.row-fluid .offset3 { + margin-left: 27.659574468085104%; + *margin-left: 27.5531914893617%; +} + +.row-fluid .offset3:first-child { + margin-left: 25.53191489361702%; + *margin-left: 25.425531914893618%; +} + +.row-fluid .offset2 { + margin-left: 19.148936170212764%; + *margin-left: 19.04255319148936%; +} + +.row-fluid .offset2:first-child { + margin-left: 17.02127659574468%; + *margin-left: 16.914893617021278%; +} + +.row-fluid .offset1 { + margin-left: 10.638297872340425%; + *margin-left: 10.53191489361702%; +} + +.row-fluid .offset1:first-child { + margin-left: 8.51063829787234%; + *margin-left: 8.404255319148938%; +} + +[class*="span"].hide, +.row-fluid [class*="span"].hide { + display: none; +} + +[class*="span"].pull-right, +.row-fluid [class*="span"].pull-right { + float: right; +} + +.container { + margin-right: auto; + margin-left: auto; + *zoom: 1; +} + +.container:before, +.container:after { + display: table; + line-height: 0; + content: ""; +} + +.container:after { + clear: both; +} + +.container-fluid { + padding-right: 20px; + padding-left: 20px; + *zoom: 1; +} + +.container-fluid:before, +.container-fluid:after { + display: table; + line-height: 0; + content: ""; +} + +.container-fluid:after { + clear: both; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 21px; + font-weight: 200; + line-height: 30px; +} + +small { + font-size: 85%; +} + +strong { + font-weight: bold; +} + +em { + font-style: italic; +} + +cite { + font-style: normal; +} + +.muted { + color: #999999; +} + +a.muted:hover, +a.muted:focus { + color: #808080; +} + +.text-warning { + color: #c09853; +} + +a.text-warning:hover, +a.text-warning:focus { + color: #a47e3c; +} + +.text-error { + color: #b94a48; +} + +a.text-error:hover, +a.text-error:focus { + color: #953b39; +} + +.text-info { + color: #3a87ad; +} + +a.text-info:hover, +a.text-info:focus { + color: #2d6987; +} + +.text-success { + color: #468847; +} + +a.text-success:hover, +a.text-success:focus { + color: #356635; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 10px 0; + font-family: inherit; + font-weight: bold; + line-height: 20px; + color: inherit; + text-rendering: optimizelegibility; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1, +h2, +h3 { + line-height: 40px; +} + +h1 { + font-size: 38.5px; +} + +h2 { + font-size: 31.5px; +} + +h3 { + font-size: 24.5px; +} + +h4 { + font-size: 17.5px; +} + +h5 { + font-size: 14px; +} + +h6 { + font-size: 11.9px; +} + +h1 small { + font-size: 24.5px; +} + +h2 small { + font-size: 17.5px; +} + +h3 small { + font-size: 14px; +} + +h4 small { + font-size: 14px; +} + +.page-header { + padding-bottom: 9px; + margin: 20px 0 30px; + border-bottom: 1px solid #eeeeee; +} + +ul, +ol { + padding: 0; + margin: 0 0 10px 25px; +} + +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom: 0; +} + +li { + line-height: 20px; +} + +ul.unstyled, +ol.unstyled { + margin-left: 0; + list-style: none; +} + +ul.inline, +ol.inline { + margin-left: 0; + list-style: none; +} + +ul.inline > li, +ol.inline > li { + display: inline-block; + *display: inline; + padding-right: 5px; + padding-left: 5px; + *zoom: 1; +} + +dl { + margin-bottom: 20px; +} + +dt, +dd { + line-height: 20px; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 10px; +} + +.dl-horizontal { + *zoom: 1; +} + +.dl-horizontal:before, +.dl-horizontal:after { + display: table; + line-height: 0; + content: ""; +} + +.dl-horizontal:after { + clear: both; +} + +.dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; +} + +.dl-horizontal dd { + margin-left: 180px; +} + +hr { + margin: 20px 0; + border: 0; + border-top: 1px solid #eeeeee; + border-bottom: 1px solid #ffffff; +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 0 0 0 15px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + margin-bottom: 0; + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} + +blockquote small { + display: block; + line-height: 20px; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + float: right; + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +blockquote.pull-right small:before { + content: ''; +} + +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 20px; +} + +code, +pre { + padding: 0 3px 2px; + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; + font-size: 12px; + color: #333333; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +code { + padding: 2px 4px; + color: #d14; + white-space: nowrap; + background-color: #f7f7f9; + border: 1px solid #e1e1e8; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 20px; + word-break: break-all; + word-wrap: break-word; + white-space: pre; + white-space: pre-wrap; + background-color: #f5f5f5; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 20px; +} + +pre code { + padding: 0; + color: inherit; + white-space: pre; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +form { + margin: 0 0 20px; +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: 40px; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +legend small { + font-size: 15px; + color: #999999; +} + +label, +input, +button, +select, +textarea { + font-size: 14px; + font-weight: normal; + line-height: 20px; +} + +input, +button, +select, +textarea { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} + +label { + display: block; + margin-bottom: 5px; +} + +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display: inline-block; + height: 20px; + padding: 4px 6px; + margin-bottom: 10px; + font-size: 14px; + line-height: 20px; + color: #555555; + vertical-align: middle; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +input, +textarea, +.uneditable-input { + width: 206px; +} + +textarea { + height: auto; +} + +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color: #ffffff; + border: 1px solid #cccccc; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; + -moz-transition: border linear 0.2s, box-shadow linear 0.2s; + -o-transition: border linear 0.2s, box-shadow linear 0.2s; + transition: border linear 0.2s, box-shadow linear 0.2s; +} + +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color: rgba(82, 168, 236, 0.8); + outline: 0; + outline: thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + *margin-top: 0; + line-height: normal; +} + +input[type="file"], +input[type="image"], +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width: auto; +} + +select, +input[type="file"] { + height: 30px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top: 4px; + /* For IE7, add top margin to align select with labels */ + + line-height: 30px; +} + +select { + width: 220px; + background-color: #ffffff; + border: 1px solid #cccccc; +} + +select[multiple], +select[size] { + height: auto; +} + +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.uneditable-input, +.uneditable-textarea { + color: #999999; + cursor: not-allowed; + background-color: #fcfcfc; + border-color: #cccccc; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); +} + +.uneditable-input { + overflow: hidden; + white-space: nowrap; +} + +.uneditable-textarea { + width: auto; + height: auto; +} + +input:-moz-placeholder, +textarea:-moz-placeholder { + color: #999999; +} + +input:-ms-input-placeholder, +textarea:-ms-input-placeholder { + color: #999999; +} + +input::-webkit-input-placeholder, +textarea::-webkit-input-placeholder { + color: #999999; +} + +.radio, +.checkbox { + min-height: 20px; + padding-left: 20px; +} + +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -20px; +} + +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top: 5px; +} + +.radio.inline, +.checkbox.inline { + display: inline-block; + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} + +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left: 10px; +} + +.input-mini { + width: 60px; +} + +.input-small { + width: 90px; +} + +.input-medium { + width: 150px; +} + +.input-large { + width: 210px; +} + +.input-xlarge { + width: 270px; +} + +.input-xxlarge { + width: 530px; +} + +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float: none; + margin-left: 0; +} + +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display: inline-block; +} + +input, +textarea, +.uneditable-input { + margin-left: 0; +} + +.controls-row [class*="span"] + [class*="span"] { + margin-left: 20px; +} + +input.span12, +textarea.span12, +.uneditable-input.span12 { + width: 926px; +} + +input.span11, +textarea.span11, +.uneditable-input.span11 { + width: 846px; +} + +input.span10, +textarea.span10, +.uneditable-input.span10 { + width: 766px; +} + +input.span9, +textarea.span9, +.uneditable-input.span9 { + width: 686px; +} + +input.span8, +textarea.span8, +.uneditable-input.span8 { + width: 606px; +} + +input.span7, +textarea.span7, +.uneditable-input.span7 { + width: 526px; +} + +input.span6, +textarea.span6, +.uneditable-input.span6 { + width: 446px; +} + +input.span5, +textarea.span5, +.uneditable-input.span5 { + width: 366px; +} + +input.span4, +textarea.span4, +.uneditable-input.span4 { + width: 286px; +} + +input.span3, +textarea.span3, +.uneditable-input.span3 { + width: 206px; +} + +input.span2, +textarea.span2, +.uneditable-input.span2 { + width: 126px; +} + +input.span1, +textarea.span1, +.uneditable-input.span1 { + width: 46px; +} + +.controls-row { + *zoom: 1; +} + +.controls-row:before, +.controls-row:after { + display: table; + line-height: 0; + content: ""; +} + +.controls-row:after { + clear: both; +} + +.controls-row [class*="span"], +.row-fluid .controls-row [class*="span"] { + float: left; +} + +.controls-row .checkbox[class*="span"], +.controls-row .radio[class*="span"] { + padding-top: 5px; +} + +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor: not-allowed; + background-color: #eeeeee; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color: transparent; +} + +.control-group.warning .control-label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color: #c09853; +} + +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color: #c09853; +} + +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +} + +.control-group.warning .input-prepend .add-on, +.control-group.warning .input-append .add-on { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} + +.control-group.error .control-label, +.control-group.error .help-block, +.control-group.error .help-inline { + color: #b94a48; +} + +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color: #b94a48; +} + +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} + +.control-group.error .input-prepend .add-on, +.control-group.error .input-append .add-on { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} + +.control-group.success .control-label, +.control-group.success .help-block, +.control-group.success .help-inline { + color: #468847; +} + +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color: #468847; +} + +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} + +.control-group.success .input-prepend .add-on, +.control-group.success .input-append .add-on { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} + +.control-group.info .control-label, +.control-group.info .help-block, +.control-group.info .help-inline { + color: #3a87ad; +} + +.control-group.info .checkbox, +.control-group.info .radio, +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + color: #3a87ad; +} + +.control-group.info input, +.control-group.info select, +.control-group.info textarea { + border-color: #3a87ad; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.control-group.info input:focus, +.control-group.info select:focus, +.control-group.info textarea:focus { + border-color: #2d6987; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3; +} + +.control-group.info .input-prepend .add-on, +.control-group.info .input-append .add-on { + color: #3a87ad; + background-color: #d9edf7; + border-color: #3a87ad; +} + +input:focus:invalid, +textarea:focus:invalid, +select:focus:invalid { + color: #b94a48; + border-color: #ee5f5b; +} + +input:focus:invalid:focus, +textarea:focus:invalid:focus, +select:focus:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} + +.form-actions { + padding: 19px 20px 20px; + margin-top: 20px; + margin-bottom: 20px; + background-color: #f5f5f5; + border-top: 1px solid #e5e5e5; + *zoom: 1; +} + +.form-actions:before, +.form-actions:after { + display: table; + line-height: 0; + content: ""; +} + +.form-actions:after { + clear: both; +} + +.help-block, +.help-inline { + color: #595959; +} + +.help-block { + display: block; + margin-bottom: 10px; +} + +.help-inline { + display: inline-block; + *display: inline; + padding-left: 5px; + vertical-align: middle; + *zoom: 1; +} + +.input-append, +.input-prepend { + display: inline-block; + margin-bottom: 10px; + font-size: 0; + white-space: nowrap; + vertical-align: middle; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input, +.input-append .dropdown-menu, +.input-prepend .dropdown-menu, +.input-append .popover, +.input-prepend .popover { + font-size: 14px; +} + +.input-append input, +.input-prepend input, +.input-append select, +.input-prepend select, +.input-append .uneditable-input, +.input-prepend .uneditable-input { + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: top; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append input:focus, +.input-prepend input:focus, +.input-append select:focus, +.input-prepend select:focus, +.input-append .uneditable-input:focus, +.input-prepend .uneditable-input:focus { + z-index: 2; +} + +.input-append .add-on, +.input-prepend .add-on { + display: inline-block; + width: auto; + height: 20px; + min-width: 16px; + padding: 4px 5px; + font-size: 14px; + font-weight: normal; + line-height: 20px; + text-align: center; + text-shadow: 0 1px 0 #ffffff; + background-color: #eeeeee; + border: 1px solid #ccc; +} + +.input-append .add-on, +.input-prepend .add-on, +.input-append .btn, +.input-prepend .btn, +.input-append .btn-group > .dropdown-toggle, +.input-prepend .btn-group > .dropdown-toggle { + vertical-align: top; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-append .active, +.input-prepend .active { + background-color: #a9dba9; + border-color: #46a546; +} + +.input-prepend .add-on, +.input-prepend .btn { + margin-right: -1px; +} + +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-append input + .btn-group .btn:last-child, +.input-append select + .btn-group .btn:last-child, +.input-append .uneditable-input + .btn-group .btn:last-child { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-append .add-on, +.input-append .btn, +.input-append .btn-group { + margin-left: -1px; +} + +.input-append .add-on:last-child, +.input-append .btn:last-child, +.input-append .btn-group:last-child > .dropdown-toggle { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append input, +.input-prepend.input-append select, +.input-prepend.input-append .uneditable-input { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.input-prepend.input-append input + .btn-group .btn, +.input-prepend.input-append select + .btn-group .btn, +.input-prepend.input-append .uneditable-input + .btn-group .btn { + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.input-prepend.input-append .add-on:last-child, +.input-prepend.input-append .btn:last-child { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.input-prepend.input-append .btn-group:first-child { + margin-left: 0; +} + +input.search-query { + padding-right: 14px; + padding-right: 4px \9; + padding-left: 14px; + padding-left: 4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom: 0; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +/* Allow for input prepend/append in search forms */ + +.form-search .input-append .search-query, +.form-search .input-prepend .search-query { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.form-search .input-append .search-query { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search .input-append .btn { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .search-query { + -webkit-border-radius: 0 14px 14px 0; + -moz-border-radius: 0 14px 14px 0; + border-radius: 0 14px 14px 0; +} + +.form-search .input-prepend .btn { + -webkit-border-radius: 14px 0 0 14px; + -moz-border-radius: 14px 0 0 14px; + border-radius: 14px 0 0 14px; +} + +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display: inline-block; + *display: inline; + margin-bottom: 0; + vertical-align: middle; + *zoom: 1; +} + +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display: none; +} + +.form-search label, +.form-inline label, +.form-search .btn-group, +.form-inline .btn-group { + display: inline-block; +} + +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom: 0; +} + +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left: 0; + margin-bottom: 0; + vertical-align: middle; +} + +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float: left; + margin-right: 3px; + margin-left: 0; +} + +.control-group { + margin-bottom: 10px; +} + +legend + .control-group { + margin-top: 20px; + -webkit-margin-top-collapse: separate; +} + +.form-horizontal .control-group { + margin-bottom: 20px; + *zoom: 1; +} + +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display: table; + line-height: 0; + content: ""; +} + +.form-horizontal .control-group:after { + clear: both; +} + +.form-horizontal .control-label { + float: left; + width: 160px; + padding-top: 5px; + text-align: right; +} + +.form-horizontal .controls { + *display: inline-block; + *padding-left: 20px; + margin-left: 180px; + *margin-left: 0; +} + +.form-horizontal .controls:first-child { + *padding-left: 180px; +} + +.form-horizontal .help-block { + margin-bottom: 0; +} + +.form-horizontal input + .help-block, +.form-horizontal select + .help-block, +.form-horizontal textarea + .help-block, +.form-horizontal .uneditable-input + .help-block, +.form-horizontal .input-prepend + .help-block, +.form-horizontal .input-append + .help-block { + margin-top: 10px; +} + +.form-horizontal .form-actions { + padding-left: 180px; +} + +table { + max-width: 100%; + background-color: transparent; + border-collapse: collapse; + border-spacing: 0; +} + +.table { + width: 100%; + margin-bottom: 20px; +} + +.table th, +.table td { + padding: 8px; + line-height: 20px; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table th { + font-weight: bold; +} + +.table thead th { + vertical-align: bottom; +} + +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table .table { + background-color: #ffffff; +} + +.table-condensed th, +.table-condensed td { + padding: 4px 5px; +} + +.table-bordered { + border: 1px solid #dddddd; + border-collapse: separate; + *border-collapse: collapse; + border-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.table-bordered th, +.table-bordered td { + border-left: 1px solid #dddddd; +} + +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} + +.table-bordered thead:first-child tr:first-child > th:first-child, +.table-bordered tbody:first-child tr:first-child > td:first-child, +.table-bordered tbody:first-child tr:first-child > th:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered thead:first-child tr:first-child > th:last-child, +.table-bordered tbody:first-child tr:first-child > td:last-child, +.table-bordered tbody:first-child tr:first-child > th:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:first-child, +.table-bordered tbody:last-child tr:last-child > td:first-child, +.table-bordered tbody:last-child tr:last-child > th:first-child, +.table-bordered tfoot:last-child tr:last-child > td:first-child, +.table-bordered tfoot:last-child tr:last-child > th:first-child { + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.table-bordered thead:last-child tr:last-child > th:last-child, +.table-bordered tbody:last-child tr:last-child > td:last-child, +.table-bordered tbody:last-child tr:last-child > th:last-child, +.table-bordered tfoot:last-child tr:last-child > td:last-child, +.table-bordered tfoot:last-child tr:last-child > th:last-child { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-bottomright: 4px; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:first-child { + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomleft: 0; +} + +.table-bordered tfoot + tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomright: 0; +} + +.table-bordered caption + thead tr:first-child th:first-child, +.table-bordered caption + tbody tr:first-child td:first-child, +.table-bordered colgroup + thead tr:first-child th:first-child, +.table-bordered colgroup + tbody tr:first-child td:first-child { + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topleft: 4px; +} + +.table-bordered caption + thead tr:first-child th:last-child, +.table-bordered caption + tbody tr:first-child td:last-child, +.table-bordered colgroup + thead tr:first-child th:last-child, +.table-bordered colgroup + tbody tr:first-child td:last-child { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -moz-border-radius-topright: 4px; +} + +.table-striped tbody > tr:nth-child(odd) > td, +.table-striped tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} + +.table-hover tbody tr:hover > td, +.table-hover tbody tr:hover > th { + background-color: #f5f5f5; +} + +table td[class*="span"], +table th[class*="span"], +.row-fluid table td[class*="span"], +.row-fluid table th[class*="span"] { + display: table-cell; + float: none; + margin-left: 0; +} + +.table td.span1, +.table th.span1 { + float: none; + width: 44px; + margin-left: 0; +} + +.table td.span2, +.table th.span2 { + float: none; + width: 124px; + margin-left: 0; +} + +.table td.span3, +.table th.span3 { + float: none; + width: 204px; + margin-left: 0; +} + +.table td.span4, +.table th.span4 { + float: none; + width: 284px; + margin-left: 0; +} + +.table td.span5, +.table th.span5 { + float: none; + width: 364px; + margin-left: 0; +} + +.table td.span6, +.table th.span6 { + float: none; + width: 444px; + margin-left: 0; +} + +.table td.span7, +.table th.span7 { + float: none; + width: 524px; + margin-left: 0; +} + +.table td.span8, +.table th.span8 { + float: none; + width: 604px; + margin-left: 0; +} + +.table td.span9, +.table th.span9 { + float: none; + width: 684px; + margin-left: 0; +} + +.table td.span10, +.table th.span10 { + float: none; + width: 764px; + margin-left: 0; +} + +.table td.span11, +.table th.span11 { + float: none; + width: 844px; + margin-left: 0; +} + +.table td.span12, +.table th.span12 { + float: none; + width: 924px; + margin-left: 0; +} + +.table tbody tr.success > td { + background-color: #dff0d8; +} + +.table tbody tr.error > td { + background-color: #f2dede; +} + +.table tbody tr.warning > td { + background-color: #fcf8e3; +} + +.table tbody tr.info > td { + background-color: #d9edf7; +} + +.table-hover tbody tr.success:hover > td { + background-color: #d0e9c6; +} + +.table-hover tbody tr.error:hover > td { + background-color: #ebcccc; +} + +.table-hover tbody tr.warning:hover > td { + background-color: #faf2cc; +} + +.table-hover tbody tr.info:hover > td { + background-color: #c4e3f3; +} + +[class^="icon-"], +[class*=" icon-"] { + display: inline-block; + width: 14px; + height: 14px; + margin-top: 1px; + *margin-right: .3em; + line-height: 14px; + vertical-align: text-top; + background-image: url("../../img/admin/glyphicons-halflings.png"); + background-position: 14px 14px; + background-repeat: no-repeat; +} + +/* White icons with optional class, or on hover/focus/active states of certain elements */ + +.icon-white, +.nav-pills > .active > a > [class^="icon-"], +.nav-pills > .active > a > [class*=" icon-"], +.nav-list > .active > a > [class^="icon-"], +.nav-list > .active > a > [class*=" icon-"], +.navbar-inverse .nav > .active > a > [class^="icon-"], +.navbar-inverse .nav > .active > a > [class*=" icon-"], +.dropdown-menu > li > a:hover > [class^="icon-"], +.dropdown-menu > li > a:focus > [class^="icon-"], +.dropdown-menu > li > a:hover > [class*=" icon-"], +.dropdown-menu > li > a:focus > [class*=" icon-"], +.dropdown-menu > .active > a > [class^="icon-"], +.dropdown-menu > .active > a > [class*=" icon-"], +.dropdown-submenu:hover > a > [class^="icon-"], +.dropdown-submenu:focus > a > [class^="icon-"], +.dropdown-submenu:hover > a > [class*=" icon-"], +.dropdown-submenu:focus > a > [class*=" icon-"] { + background-image: url("../../img/admin/glyphicons-halflings-white.png"); +} + +.icon-glass { + background-position: 0 0; +} + +.icon-music { + background-position: -24px 0; +} + +.icon-search { + background-position: -48px 0; +} + +.icon-envelope { + background-position: -72px 0; +} + +.icon-heart { + background-position: -96px 0; +} + +.icon-star { + background-position: -120px 0; +} + +.icon-star-empty { + background-position: -144px 0; +} + +.icon-user { + background-position: -168px 0; +} + +.icon-film { + background-position: -192px 0; +} + +.icon-th-large { + background-position: -216px 0; +} + +.icon-th { + background-position: -240px 0; +} + +.icon-th-list { + background-position: -264px 0; +} + +.icon-ok { + background-position: -288px 0; +} + +.icon-remove { + background-position: -312px 0; +} + +.icon-zoom-in { + background-position: -336px 0; +} + +.icon-zoom-out { + background-position: -360px 0; +} + +.icon-off { + background-position: -384px 0; +} + +.icon-signal { + background-position: -408px 0; +} + +.icon-cog { + background-position: -432px 0; +} + +.icon-trash { + background-position: -456px 0; +} + +.icon-home { + background-position: 0 -24px; +} + +.icon-file { + background-position: -24px -24px; +} + +.icon-time { + background-position: -48px -24px; +} + +.icon-road { + background-position: -72px -24px; +} + +.icon-download-alt { + background-position: -96px -24px; +} + +.icon-download { + background-position: -120px -24px; +} + +.icon-upload { + background-position: -144px -24px; +} + +.icon-inbox { + background-position: -168px -24px; +} + +.icon-play-circle { + background-position: -192px -24px; +} + +.icon-repeat { + background-position: -216px -24px; +} + +.icon-refresh { + background-position: -240px -24px; +} + +.icon-list-alt { + background-position: -264px -24px; +} + +.icon-lock { + background-position: -287px -24px; +} + +.icon-flag { + background-position: -312px -24px; +} + +.icon-headphones { + background-position: -336px -24px; +} + +.icon-volume-off { + background-position: -360px -24px; +} + +.icon-volume-down { + background-position: -384px -24px; +} + +.icon-volume-up { + background-position: -408px -24px; +} + +.icon-qrcode { + background-position: -432px -24px; +} + +.icon-barcode { + background-position: -456px -24px; +} + +.icon-tag { + background-position: 0 -48px; +} + +.icon-tags { + background-position: -25px -48px; +} + +.icon-book { + background-position: -48px -48px; +} + +.icon-bookmark { + background-position: -72px -48px; +} + +.icon-print { + background-position: -96px -48px; +} + +.icon-camera { + background-position: -120px -48px; +} + +.icon-font { + background-position: -144px -48px; +} + +.icon-bold { + background-position: -167px -48px; +} + +.icon-italic { + background-position: -192px -48px; +} + +.icon-text-height { + background-position: -216px -48px; +} + +.icon-text-width { + background-position: -240px -48px; +} + +.icon-align-left { + background-position: -264px -48px; +} + +.icon-align-center { + background-position: -288px -48px; +} + +.icon-align-right { + background-position: -312px -48px; +} + +.icon-align-justify { + background-position: -336px -48px; +} + +.icon-list { + background-position: -360px -48px; +} + +.icon-indent-left { + background-position: -384px -48px; +} + +.icon-indent-right { + background-position: -408px -48px; +} + +.icon-facetime-video { + background-position: -432px -48px; +} + +.icon-picture { + background-position: -456px -48px; +} + +.icon-pencil { + background-position: 0 -72px; +} + +.icon-map-marker { + background-position: -24px -72px; +} + +.icon-adjust { + background-position: -48px -72px; +} + +.icon-tint { + background-position: -72px -72px; +} + +.icon-edit { + background-position: -96px -72px; +} + +.icon-share { + background-position: -120px -72px; +} + +.icon-check { + background-position: -144px -72px; +} + +.icon-move { + background-position: -168px -72px; +} + +.icon-step-backward { + background-position: -192px -72px; +} + +.icon-fast-backward { + background-position: -216px -72px; +} + +.icon-backward { + background-position: -240px -72px; +} + +.icon-play { + background-position: -264px -72px; +} + +.icon-pause { + background-position: -288px -72px; +} + +.icon-stop { + background-position: -312px -72px; +} + +.icon-forward { + background-position: -336px -72px; +} + +.icon-fast-forward { + background-position: -360px -72px; +} + +.icon-step-forward { + background-position: -384px -72px; +} + +.icon-eject { + background-position: -408px -72px; +} + +.icon-chevron-left { + background-position: -432px -72px; +} + +.icon-chevron-right { + background-position: -456px -72px; +} + +.icon-plus-sign { + background-position: 0 -96px; +} + +.icon-minus-sign { + background-position: -24px -96px; +} + +.icon-remove-sign { + background-position: -48px -96px; +} + +.icon-ok-sign { + background-position: -72px -96px; +} + +.icon-question-sign { + background-position: -96px -96px; +} + +.icon-info-sign { + background-position: -120px -96px; +} + +.icon-screenshot { + background-position: -144px -96px; +} + +.icon-remove-circle { + background-position: -168px -96px; +} + +.icon-ok-circle { + background-position: -192px -96px; +} + +.icon-ban-circle { + background-position: -216px -96px; +} + +.icon-arrow-left { + background-position: -240px -96px; +} + +.icon-arrow-right { + background-position: -264px -96px; +} + +.icon-arrow-up { + background-position: -289px -96px; +} + +.icon-arrow-down { + background-position: -312px -96px; +} + +.icon-share-alt { + background-position: -336px -96px; +} + +.icon-resize-full { + background-position: -360px -96px; +} + +.icon-resize-small { + background-position: -384px -96px; +} + +.icon-plus { + background-position: -408px -96px; +} + +.icon-minus { + background-position: -433px -96px; +} + +.icon-asterisk { + background-position: -456px -96px; +} + +.icon-exclamation-sign { + background-position: 0 -120px; +} + +.icon-gift { + background-position: -24px -120px; +} + +.icon-leaf { + background-position: -48px -120px; +} + +.icon-fire { + background-position: -72px -120px; +} + +.icon-eye-open { + background-position: -96px -120px; +} + +.icon-eye-close { + background-position: -120px -120px; +} + +.icon-warning-sign { + background-position: -144px -120px; +} + +.icon-plane { + background-position: -168px -120px; +} + +.icon-calendar { + background-position: -192px -120px; +} + +.icon-random { + width: 16px; + background-position: -216px -120px; +} + +.icon-comment { + background-position: -240px -120px; +} + +.icon-magnet { + background-position: -264px -120px; +} + +.icon-chevron-up { + background-position: -288px -120px; +} + +.icon-chevron-down { + background-position: -313px -119px; +} + +.icon-retweet { + background-position: -336px -120px; +} + +.icon-shopping-cart { + background-position: -360px -120px; +} + +.icon-folder-close { + width: 16px; + background-position: -384px -120px; +} + +.icon-folder-open { + width: 16px; + background-position: -408px -120px; +} + +.icon-resize-vertical { + background-position: -432px -119px; +} + +.icon-resize-horizontal { + background-position: -456px -118px; +} + +.icon-hdd { + background-position: 0 -144px; +} + +.icon-bullhorn { + background-position: -24px -144px; +} + +.icon-bell { + background-position: -48px -144px; +} + +.icon-certificate { + background-position: -72px -144px; +} + +.icon-thumbs-up { + background-position: -96px -144px; +} + +.icon-thumbs-down { + background-position: -120px -144px; +} + +.icon-hand-right { + background-position: -144px -144px; +} + +.icon-hand-left { + background-position: -168px -144px; +} + +.icon-hand-up { + background-position: -192px -144px; +} + +.icon-hand-down { + background-position: -216px -144px; +} + +.icon-circle-arrow-right { + background-position: -240px -144px; +} + +.icon-circle-arrow-left { + background-position: -264px -144px; +} + +.icon-circle-arrow-up { + background-position: -288px -144px; +} + +.icon-circle-arrow-down { + background-position: -312px -144px; +} + +.icon-globe { + background-position: -336px -144px; +} + +.icon-wrench { + background-position: -360px -144px; +} + +.icon-tasks { + background-position: -384px -144px; +} + +.icon-filter { + background-position: -408px -144px; +} + +.icon-briefcase { + background-position: -432px -144px; +} + +.icon-fullscreen { + background-position: -456px -144px; +} + +.dropup, +.dropdown { + position: relative; +} + +.dropdown-toggle { + *margin-bottom: -3px; +} + +.dropdown-toggle:active, +.open .dropdown-toggle { + outline: 0; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + vertical-align: top; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-left: 4px solid transparent; + content: ""; +} + +.dropdown .caret { + margin-top: 8px; + margin-left: 2px; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-submenu:hover > a, +.dropdown-submenu:focus > a { + color: #ffffff; + text-decoration: none; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + outline: 0; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open { + *z-index: 1000; +} + +.open > .dropdown-menu { + display: block; +} + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0; + border-bottom: 4px solid #000000; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +.dropdown-submenu { + position: relative; +} + +.dropdown-submenu > .dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + -webkit-border-radius: 0 6px 6px 6px; + -moz-border-radius: 0 6px 6px 6px; + border-radius: 0 6px 6px 6px; +} + +.dropdown-submenu:hover > .dropdown-menu { + display: block; +} + +.dropup .dropdown-submenu > .dropdown-menu { + top: auto; + bottom: 0; + margin-top: 0; + margin-bottom: -2px; + -webkit-border-radius: 5px 5px 5px 0; + -moz-border-radius: 5px 5px 5px 0; + border-radius: 5px 5px 5px 0; +} + +.dropdown-submenu > a:after { + display: block; + float: right; + width: 0; + height: 0; + margin-top: 5px; + margin-right: -10px; + border-color: transparent; + border-left-color: #cccccc; + border-style: solid; + border-width: 5px 0 5px 5px; + content: " "; +} + +.dropdown-submenu:hover > a:after { + border-left-color: #ffffff; +} + +.dropdown-submenu.pull-left { + float: none; +} + +.dropdown-submenu.pull-left > .dropdown-menu { + left: -100%; + margin-left: 10px; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.dropdown .dropdown-menu .nav-header { + padding-right: 20px; + padding-left: 20px; +} + +.typeahead { + z-index: 1051; + margin-top: 2px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-large { + padding: 24px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.well-small { + padding: 9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -moz-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + -moz-transition: height 0.35s ease; + -o-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +.collapse.in { + height: auto; +} + +.close { + float: right; + font-size: 20px; + font-weight: bold; + line-height: 20px; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + filter: alpha(opacity=40); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.btn { + display: inline-block; + *display: inline; + padding: 4px 12px; + margin-bottom: 0; + *margin-left: .3em; + font-size: 14px; + line-height: 20px; + color: #333333; + text-align: center; + text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align: middle; + cursor: pointer; + background-color: #f5f5f5; + *background-color: #e6e6e6; + background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); + background-image: linear-gradient(to bottom, #ffffff, #e6e6e6); + background-repeat: repeat-x; + border: 1px solid #cccccc; + *border: 0; + border-color: #e6e6e6 #e6e6e6 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border-bottom-color: #b3b3b3; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn:hover, +.btn:focus, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + color: #333333; + background-color: #e6e6e6; + *background-color: #d9d9d9; +} + +.btn:active, +.btn.active { + background-color: #cccccc \9; +} + +.btn:first-child { + *margin-left: 0; +} + +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; + background-position: 0 -15px; + -webkit-transition: background-position 0.1s linear; + -moz-transition: background-position 0.1s linear; + -o-transition: background-position 0.1s linear; + transition: background-position 0.1s linear; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn.active, +.btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn.disabled, +.btn[disabled] { + cursor: default; + background-image: none; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-large { + padding: 11px 19px; + font-size: 17.5px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.btn-large [class^="icon-"], +.btn-large [class*=" icon-"] { + margin-top: 4px; +} + +.btn-small { + padding: 2px 10px; + font-size: 11.9px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-small [class^="icon-"], +.btn-small [class*=" icon-"] { + margin-top: 0; +} + +.btn-mini [class^="icon-"], +.btn-mini [class*=" icon-"] { + margin-top: -1px; +} + +.btn-mini { + padding: 0 6px; + font-size: 10.5px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} + +.btn-primary { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #006dcc; + *background-color: #0044cc; + background-image: -moz-linear-gradient(top, #0088cc, #0044cc); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); + background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); + background-image: -o-linear-gradient(top, #0088cc, #0044cc); + background-image: linear-gradient(to bottom, #0088cc, #0044cc); + background-repeat: repeat-x; + border-color: #0044cc #0044cc #002a80; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + color: #ffffff; + background-color: #0044cc; + *background-color: #003bb3; +} + +.btn-primary:active, +.btn-primary.active { + background-color: #003399 \9; +} + +.btn-warning { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #faa732; + *background-color: #f89406; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + border-color: #f89406 #f89406 #ad6704; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + color: #ffffff; + background-color: #f89406; + *background-color: #df8505; +} + +.btn-warning:active, +.btn-warning.active { + background-color: #c67605 \9; +} + +.btn-danger { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #da4f49; + *background-color: #bd362f; + background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); + background-image: linear-gradient(to bottom, #ee5f5b, #bd362f); + background-repeat: repeat-x; + border-color: #bd362f #bd362f #802420; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + color: #ffffff; + background-color: #bd362f; + *background-color: #a9302a; +} + +.btn-danger:active, +.btn-danger.active { + background-color: #942a25 \9; +} + +.btn-success { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #5bb75b; + *background-color: #51a351; + background-image: -moz-linear-gradient(top, #62c462, #51a351); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image: -webkit-linear-gradient(top, #62c462, #51a351); + background-image: -o-linear-gradient(top, #62c462, #51a351); + background-image: linear-gradient(to bottom, #62c462, #51a351); + background-repeat: repeat-x; + border-color: #51a351 #51a351 #387038; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + color: #ffffff; + background-color: #51a351; + *background-color: #499249; +} + +.btn-success:active, +.btn-success.active { + background-color: #408140 \9; +} + +.btn-info { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #49afcd; + *background-color: #2f96b4; + background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); + background-image: linear-gradient(to bottom, #5bc0de, #2f96b4); + background-repeat: repeat-x; + border-color: #2f96b4 #2f96b4 #1f6377; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + color: #ffffff; + background-color: #2f96b4; + *background-color: #2a85a0; +} + +.btn-info:active, +.btn-info.active { + background-color: #24748c \9; +} + +.btn-inverse { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #363636; + *background-color: #222222; + background-image: -moz-linear-gradient(top, #444444, #222222); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222)); + background-image: -webkit-linear-gradient(top, #444444, #222222); + background-image: -o-linear-gradient(top, #444444, #222222); + background-image: linear-gradient(to bottom, #444444, #222222); + background-repeat: repeat-x; + border-color: #222222 #222222 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.btn-inverse:hover, +.btn-inverse:focus, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + color: #ffffff; + background-color: #222222; + *background-color: #151515; +} + +.btn-inverse:active, +.btn-inverse.active { + background-color: #080808 \9; +} + +button.btn, +input[type="submit"].btn { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn::-moz-focus-inner, +input[type="submit"].btn::-moz-focus-inner { + padding: 0; + border: 0; +} + +button.btn.btn-large, +input[type="submit"].btn.btn-large { + *padding-top: 7px; + *padding-bottom: 7px; +} + +button.btn.btn-small, +input[type="submit"].btn.btn-small { + *padding-top: 3px; + *padding-bottom: 3px; +} + +button.btn.btn-mini, +input[type="submit"].btn.btn-mini { + *padding-top: 1px; + *padding-bottom: 1px; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; +} + +.btn-link { + color: #0088cc; + cursor: pointer; + border-color: transparent; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-link:hover, +.btn-link:focus { + color: #005580; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { + color: #333333; + text-decoration: none; +} + +.btn-group { + position: relative; + display: inline-block; + *display: inline; + *margin-left: .3em; + font-size: 0; + white-space: nowrap; + vertical-align: middle; + *zoom: 1; +} + +.btn-group:first-child { + *margin-left: 0; +} + +.btn-group + .btn-group { + margin-left: 5px; +} + +.btn-toolbar { + margin-top: 10px; + margin-bottom: 10px; + font-size: 0; +} + +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn { + position: relative; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group > .btn + .btn { + margin-left: -1px; +} + +.btn-group > .btn, +.btn-group > .dropdown-menu, +.btn-group > .popover { + font-size: 14px; +} + +.btn-group > .btn-mini { + font-size: 10.5px; +} + +.btn-group > .btn-small { + font-size: 11.9px; +} + +.btn-group > .btn-large { + font-size: 17.5px; +} + +.btn-group > .btn:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.btn-group > .btn.large:first-child { + margin-left: 0; + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index: 2; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group > .btn + .dropdown-toggle { + *padding-top: 5px; + padding-right: 8px; + *padding-bottom: 5px; + padding-left: 8px; + -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group > .btn-mini + .dropdown-toggle { + *padding-top: 2px; + padding-right: 5px; + *padding-bottom: 2px; + padding-left: 5px; +} + +.btn-group > .btn-small + .dropdown-toggle { + *padding-top: 5px; + *padding-bottom: 4px; +} + +.btn-group > .btn-large + .dropdown-toggle { + *padding-top: 7px; + padding-right: 12px; + *padding-bottom: 7px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + background-image: none; + -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.btn-group.open .btn.dropdown-toggle { + background-color: #e6e6e6; +} + +.btn-group.open .btn-primary.dropdown-toggle { + background-color: #0044cc; +} + +.btn-group.open .btn-warning.dropdown-toggle { + background-color: #f89406; +} + +.btn-group.open .btn-danger.dropdown-toggle { + background-color: #bd362f; +} + +.btn-group.open .btn-success.dropdown-toggle { + background-color: #51a351; +} + +.btn-group.open .btn-info.dropdown-toggle { + background-color: #2f96b4; +} + +.btn-group.open .btn-inverse.dropdown-toggle { + background-color: #222222; +} + +.btn .caret { + margin-top: 8px; + margin-left: 0; +} + +.btn-large .caret { + margin-top: 6px; +} + +.btn-large .caret { + border-top-width: 5px; + border-right-width: 5px; + border-left-width: 5px; +} + +.btn-mini .caret, +.btn-small .caret { + margin-top: 8px; +} + +.dropup .btn-large .caret { + border-bottom-width: 5px; +} + +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.btn-group-vertical { + display: inline-block; + *display: inline; + /* IE7 inline-block hack */ + + *zoom: 1; +} + +.btn-group-vertical > .btn { + display: block; + float: none; + max-width: 100%; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.btn-group-vertical > .btn + .btn { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:first-child { + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.btn-group-vertical > .btn:last-child { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.btn-group-vertical > .btn-large:first-child { + -webkit-border-radius: 6px 6px 0 0; + -moz-border-radius: 6px 6px 0 0; + border-radius: 6px 6px 0 0; +} + +.btn-group-vertical > .btn-large:last-child { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.alert, +.alert h4 { + color: #c09853; +} + +.alert h4 { + margin: 0; +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px; +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-success h4 { + color: #468847; +} + +.alert-danger, +.alert-error { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-danger h4, +.alert-error h4 { + color: #b94a48; +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-info h4 { + color: #3a87ad; +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} + +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} + +.alert-block p + p { + margin-top: 5px; +} + +.nav { + margin-bottom: 20px; + margin-left: 0; + list-style: none; +} + +.nav > li > a { + display: block; +} + +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > li > a > img { + max-width: none; +} + +.nav > .pull-right { + float: right; +} + +.nav-header { + display: block; + padding: 3px 15px; + font-size: 11px; + font-weight: bold; + line-height: 20px; + color: #999999; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} + +.nav li + .nav-header { + margin-top: 9px; +} + +.nav-list { + padding-right: 15px; + padding-left: 15px; + margin-bottom: 0; +} + +.nav-list > li > a, +.nav-list .nav-header { + margin-right: -15px; + margin-left: -15px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); +} + +.nav-list > li > a { + padding: 3px 15px; +} + +.nav-list > .active > a, +.nav-list > .active > a:hover, +.nav-list > .active > a:focus { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + background-color: #0088cc; +} + +.nav-list [class^="icon-"], +.nav-list [class*=" icon-"] { + margin-right: 2px; +} + +.nav-list .divider { + *width: 100%; + height: 1px; + margin: 9px 1px; + *margin: -5px 0 5px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #ffffff; +} + +.nav-tabs, +.nav-pills { + *zoom: 1; +} + +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display: table; + line-height: 0; + content: ""; +} + +.nav-tabs:after, +.nav-pills:after { + clear: both; +} + +.nav-tabs > li, +.nav-pills > li { + float: left; +} + +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right: 12px; + padding-left: 12px; + margin-right: 2px; + line-height: 14px; +} + +.nav-tabs { + border-bottom: 1px solid #ddd; +} + +.nav-tabs > li { + margin-bottom: -1px; +} + +.nav-tabs > li > a { + padding-top: 8px; + padding-bottom: 8px; + line-height: 20px; + border: 1px solid transparent; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover, +.nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover, +.nav-tabs > .active > a:focus { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #ddd; + border-bottom-color: transparent; +} + +.nav-pills > li > a { + padding-top: 8px; + padding-bottom: 8px; + margin-top: 2px; + margin-bottom: 2px; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + border-radius: 5px; +} + +.nav-pills > .active > a, +.nav-pills > .active > a:hover, +.nav-pills > .active > a:focus { + color: #ffffff; + background-color: #0088cc; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li > a { + margin-right: 0; +} + +.nav-tabs.nav-stacked { + border-bottom: 0; +} + +.nav-tabs.nav-stacked > li > a { + border: 1px solid #ddd; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; +} + +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -moz-border-radius-bottomright: 4px; + -moz-border-radius-bottomleft: 4px; +} + +.nav-tabs.nav-stacked > li > a:hover, +.nav-tabs.nav-stacked > li > a:focus { + z-index: 2; + border-color: #ddd; +} + +.nav-pills.nav-stacked > li > a { + margin-bottom: 3px; +} + +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom: 1px; +} + +.nav-tabs .dropdown-menu { + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; +} + +.nav-pills .dropdown-menu { + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.nav .dropdown-toggle .caret { + margin-top: 6px; + border-top-color: #0088cc; + border-bottom-color: #0088cc; +} + +.nav .dropdown-toggle:hover .caret, +.nav .dropdown-toggle:focus .caret { + border-top-color: #005580; + border-bottom-color: #005580; +} + +/* move down carets for tabs */ + +.nav-tabs .dropdown-toggle .caret { + margin-top: 8px; +} + +.nav .active .dropdown-toggle .caret { + border-top-color: #fff; + border-bottom-color: #fff; +} + +.nav-tabs .active .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.nav > .dropdown.active > a:hover, +.nav > .dropdown.active > a:focus { + cursor: pointer; +} + +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover, +.nav > li.dropdown.open.active > a:focus { + color: #ffffff; + background-color: #999999; + border-color: #999999; +} + +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret, +.nav li.dropdown.open a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; + opacity: 1; + filter: alpha(opacity=100); +} + +.tabs-stacked .open > a:hover, +.tabs-stacked .open > a:focus { + border-color: #999999; +} + +.tabbable { + *zoom: 1; +} + +.tabbable:before, +.tabbable:after { + display: table; + line-height: 0; + content: ""; +} + +.tabbable:after { + clear: both; +} + +.tab-content { + overflow: auto; +} + +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom: 0; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.tabs-below > .nav-tabs { + border-top: 1px solid #ddd; +} + +.tabs-below > .nav-tabs > li { + margin-top: -1px; + margin-bottom: 0; +} + +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius: 0 0 4px 4px; + -moz-border-radius: 0 0 4px 4px; + border-radius: 0 0 4px 4px; +} + +.tabs-below > .nav-tabs > li > a:hover, +.tabs-below > .nav-tabs > li > a:focus { + border-top-color: #ddd; + border-bottom-color: transparent; +} + +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover, +.tabs-below > .nav-tabs > .active > a:focus { + border-color: transparent #ddd #ddd #ddd; +} + +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float: none; +} + +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width: 74px; + margin-right: 0; + margin-bottom: 3px; +} + +.tabs-left > .nav-tabs { + float: left; + margin-right: 19px; + border-right: 1px solid #ddd; +} + +.tabs-left > .nav-tabs > li > a { + margin-right: -1px; + -webkit-border-radius: 4px 0 0 4px; + -moz-border-radius: 4px 0 0 4px; + border-radius: 4px 0 0 4px; +} + +.tabs-left > .nav-tabs > li > a:hover, +.tabs-left > .nav-tabs > li > a:focus { + border-color: #eeeeee #dddddd #eeeeee #eeeeee; +} + +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover, +.tabs-left > .nav-tabs .active > a:focus { + border-color: #ddd transparent #ddd #ddd; + *border-right-color: #ffffff; +} + +.tabs-right > .nav-tabs { + float: right; + margin-left: 19px; + border-left: 1px solid #ddd; +} + +.tabs-right > .nav-tabs > li > a { + margin-left: -1px; + -webkit-border-radius: 0 4px 4px 0; + -moz-border-radius: 0 4px 4px 0; + border-radius: 0 4px 4px 0; +} + +.tabs-right > .nav-tabs > li > a:hover, +.tabs-right > .nav-tabs > li > a:focus { + border-color: #eeeeee #eeeeee #eeeeee #dddddd; +} + +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover, +.tabs-right > .nav-tabs .active > a:focus { + border-color: #ddd #ddd #ddd transparent; + *border-left-color: #ffffff; +} + +.nav > .disabled > a { + color: #999999; +} + +.nav > .disabled > a:hover, +.nav > .disabled > a:focus { + text-decoration: none; + cursor: default; + background-color: transparent; +} + +.navbar { + *position: relative; + *z-index: 2; + margin-bottom: 20px; + overflow: visible; +} + +.navbar-inner { + min-height: 40px; + padding-right: 20px; + padding-left: 20px; + background-color: #fafafa; + background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2)); + background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2); + background-image: -o-linear-gradient(top, #ffffff, #f2f2f2); + background-image: linear-gradient(to bottom, #ffffff, #f2f2f2); + background-repeat: repeat-x; + border: 1px solid #d4d4d4; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0); + *zoom: 1; + -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065); +} + +.navbar-inner:before, +.navbar-inner:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-inner:after { + clear: both; +} + +.navbar .container { + width: auto; +} + +.nav-collapse.collapse { + height: auto; + overflow: visible; +} + +.navbar .brand { + display: block; + float: left; + padding: 10px 20px 10px; + margin-left: -20px; + font-size: 20px; + font-weight: 200; + color: #777777; + text-shadow: 0 1px 0 #ffffff; +} + +.navbar .brand:hover, +.navbar .brand:focus { + text-decoration: none; +} + +.navbar-text { + margin-bottom: 0; + line-height: 40px; + color: #777777; +} + +.navbar-link { + color: #777777; +} + +.navbar-link:hover, +.navbar-link:focus { + color: #333333; +} + +.navbar .divider-vertical { + height: 40px; + margin: 0 9px; + border-right: 1px solid #ffffff; + border-left: 1px solid #f2f2f2; +} + +.navbar .btn, +.navbar .btn-group { + margin-top: 5px; +} + +.navbar .btn-group .btn, +.navbar .input-prepend .btn, +.navbar .input-append .btn, +.navbar .input-prepend .btn-group, +.navbar .input-append .btn-group { + margin-top: 0; +} + +.navbar-form { + margin-bottom: 0; + *zoom: 1; +} + +.navbar-form:before, +.navbar-form:after { + display: table; + line-height: 0; + content: ""; +} + +.navbar-form:after { + clear: both; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top: 5px; +} + +.navbar-form input, +.navbar-form select, +.navbar-form .btn { + display: inline-block; + margin-bottom: 0; +} + +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top: 3px; +} + +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top: 5px; + white-space: nowrap; +} + +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top: 0; +} + +.navbar-search { + position: relative; + float: left; + margin-top: 5px; + margin-bottom: 0; +} + +.navbar-search .search-query { + padding: 4px 14px; + margin-bottom: 0; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 13px; + font-weight: normal; + line-height: 1; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.navbar-static-top { + position: static; + margin-bottom: 0; +} + +.navbar-static-top .navbar-inner { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + z-index: 1030; + margin-bottom: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + border-width: 0 0 1px; +} + +.navbar-fixed-bottom .navbar-inner { + border-width: 1px 0 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right: 0; + padding-left: 0; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; +} + +.navbar-static-top .container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width: 940px; +} + +.navbar-fixed-top { + top: 0; +} + +.navbar-fixed-top .navbar-inner, +.navbar-static-top .navbar-inner { + -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar-fixed-bottom { + bottom: 0; +} + +.navbar-fixed-bottom .navbar-inner { + -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); + box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1); +} + +.navbar .nav { + position: relative; + left: 0; + display: block; + float: left; + margin: 0 10px 0 0; +} + +.navbar .nav.pull-right { + float: right; + margin-right: 0; +} + +.navbar .nav > li { + float: left; +} + +.navbar .nav > li > a { + float: none; + padding: 10px 15px 10px; + color: #777777; + text-decoration: none; + text-shadow: 0 1px 0 #ffffff; +} + +.navbar .nav .dropdown-toggle .caret { + margin-top: 8px; +} + +.navbar .nav > li > a:focus, +.navbar .nav > li > a:hover { + color: #333333; + text-decoration: none; + background-color: transparent; +} + +.navbar .nav > .active > a, +.navbar .nav > .active > a:hover, +.navbar .nav > .active > a:focus { + color: #555555; + text-decoration: none; + background-color: #e5e5e5; + -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125); +} + +.navbar .btn-navbar { + display: none; + float: right; + padding: 7px 10px; + margin-right: 5px; + margin-left: 5px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #ededed; + *background-color: #e5e5e5; + background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5)); + background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5); + background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5); + background-repeat: repeat-x; + border-color: #e5e5e5 #e5e5e5 #bfbfbf; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); +} + +.navbar .btn-navbar:hover, +.navbar .btn-navbar:focus, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + color: #ffffff; + background-color: #e5e5e5; + *background-color: #d9d9d9; +} + +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color: #cccccc \9; +} + +.navbar .btn-navbar .icon-bar { + display: block; + width: 18px; + height: 2px; + background-color: #f5f5f5; + -webkit-border-radius: 1px; + -moz-border-radius: 1px; + border-radius: 1px; + -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); +} + +.btn-navbar .icon-bar + .icon-bar { + margin-top: 3px; +} + +.navbar .nav > li > .dropdown-menu:before { + position: absolute; + top: -7px; + left: 9px; + display: inline-block; + border-right: 7px solid transparent; + border-bottom: 7px solid #ccc; + border-left: 7px solid transparent; + border-bottom-color: rgba(0, 0, 0, 0.2); + content: ''; +} + +.navbar .nav > li > .dropdown-menu:after { + position: absolute; + top: -6px; + left: 10px; + display: inline-block; + border-right: 6px solid transparent; + border-bottom: 6px solid #ffffff; + border-left: 6px solid transparent; + content: ''; +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:before { + top: auto; + bottom: -7px; + border-top: 7px solid #ccc; + border-bottom: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} + +.navbar-fixed-bottom .nav > li > .dropdown-menu:after { + top: auto; + bottom: -6px; + border-top: 6px solid #ffffff; + border-bottom: 0; +} + +.navbar .nav li.dropdown > a:hover .caret, +.navbar .nav li.dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + color: #555555; + background-color: #e5e5e5; +} + +.navbar .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} + +.navbar .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.navbar .pull-right > li > .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:before, +.navbar .nav > li > .dropdown-menu.pull-right:before { + right: 12px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu:after, +.navbar .nav > li > .dropdown-menu.pull-right:after { + right: 13px; + left: auto; +} + +.navbar .pull-right > li > .dropdown-menu .dropdown-menu, +.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu { + right: 100%; + left: auto; + margin-right: -1px; + margin-left: 0; + -webkit-border-radius: 6px 0 6px 6px; + -moz-border-radius: 6px 0 6px 6px; + border-radius: 6px 0 6px 6px; +} + +.navbar-inverse .navbar-inner { + background-color: #1b1b1b; + background-image: -moz-linear-gradient(top, #222222, #111111); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111)); + background-image: -webkit-linear-gradient(top, #222222, #111111); + background-image: -o-linear-gradient(top, #222222, #111111); + background-image: linear-gradient(to bottom, #222222, #111111); + background-repeat: repeat-x; + border-color: #252525; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0); +} + +.navbar-inverse .brand, +.navbar-inverse .nav > li > a { + color: #999999; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar-inverse .brand:hover, +.navbar-inverse .nav > li > a:hover, +.navbar-inverse .brand:focus, +.navbar-inverse .nav > li > a:focus { + color: #ffffff; +} + +.navbar-inverse .brand { + color: #999999; +} + +.navbar-inverse .navbar-text { + color: #999999; +} + +.navbar-inverse .nav > li > a:focus, +.navbar-inverse .nav > li > a:hover { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .nav .active > a, +.navbar-inverse .nav .active > a:hover, +.navbar-inverse .nav .active > a:focus { + color: #ffffff; + background-color: #111111; +} + +.navbar-inverse .navbar-link { + color: #999999; +} + +.navbar-inverse .navbar-link:hover, +.navbar-inverse .navbar-link:focus { + color: #ffffff; +} + +.navbar-inverse .divider-vertical { + border-right-color: #222222; + border-left-color: #111111; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle { + color: #ffffff; + background-color: #111111; +} + +.navbar-inverse .nav li.dropdown > a:hover .caret, +.navbar-inverse .nav li.dropdown > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} + +.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret, +.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-search .search-query { + color: #ffffff; + background-color: #515151; + border-color: #111111; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} + +.navbar-inverse .navbar-search .search-query:-moz-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:-ms-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder { + color: #cccccc; +} + +.navbar-inverse .navbar-search .search-query:focus, +.navbar-inverse .navbar-search .search-query.focused { + padding: 5px 15px; + color: #333333; + text-shadow: 0 1px 0 #ffffff; + background-color: #ffffff; + border: 0; + outline: 0; + -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); +} + +.navbar-inverse .btn-navbar { + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e0e0e; + *background-color: #040404; + background-image: -moz-linear-gradient(top, #151515, #040404); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404)); + background-image: -webkit-linear-gradient(top, #151515, #040404); + background-image: -o-linear-gradient(top, #151515, #040404); + background-image: linear-gradient(to bottom, #151515, #040404); + background-repeat: repeat-x; + border-color: #040404 #040404 #000000; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.navbar-inverse .btn-navbar:hover, +.navbar-inverse .btn-navbar:focus, +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active, +.navbar-inverse .btn-navbar.disabled, +.navbar-inverse .btn-navbar[disabled] { + color: #ffffff; + background-color: #040404; + *background-color: #000000; +} + +.navbar-inverse .btn-navbar:active, +.navbar-inverse .btn-navbar.active { + background-color: #000000 \9; +} + +.breadcrumb { + padding: 8px 15px; + margin: 0 0 20px; + list-style: none; + background-color: #f5f5f5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.breadcrumb > li { + display: inline-block; + *display: inline; + text-shadow: 0 1px 0 #ffffff; + *zoom: 1; +} + +.breadcrumb > li > .divider { + padding: 0 5px; + color: #ccc; +} + +.breadcrumb > .active { + color: #999999; +} + +.pagination { + margin: 20px 0; +} + +.pagination ul { + display: inline-block; + *display: inline; + margin-bottom: 0; + margin-left: 0; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + *zoom: 1; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.pagination ul > li { + display: inline; +} + +.pagination ul > li > a, +.pagination ul > li > span { + float: left; + padding: 4px 12px; + line-height: 20px; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; + border-left-width: 0; +} + +.pagination ul > li > a:hover, +.pagination ul > li > a:focus, +.pagination ul > .active > a, +.pagination ul > .active > span { + background-color: #f5f5f5; +} + +.pagination ul > .active > a, +.pagination ul > .active > span { + color: #999999; + cursor: default; +} + +.pagination ul > .disabled > span, +.pagination ul > .disabled > a, +.pagination ul > .disabled > a:hover, +.pagination ul > .disabled > a:focus { + color: #999999; + cursor: default; + background-color: transparent; +} + +.pagination ul > li:first-child > a, +.pagination ul > li:first-child > span { + border-left-width: 1px; + -webkit-border-bottom-left-radius: 4px; + border-bottom-left-radius: 4px; + -webkit-border-top-left-radius: 4px; + border-top-left-radius: 4px; + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-topleft: 4px; +} + +.pagination ul > li:last-child > a, +.pagination ul > li:last-child > span { + -webkit-border-top-right-radius: 4px; + border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; +} + +.pagination-centered { + text-align: center; +} + +.pagination-right { + text-align: right; +} + +.pagination-large ul > li > a, +.pagination-large ul > li > span { + padding: 11px 19px; + font-size: 17.5px; +} + +.pagination-large ul > li:first-child > a, +.pagination-large ul > li:first-child > span { + -webkit-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -webkit-border-top-left-radius: 6px; + border-top-left-radius: 6px; + -moz-border-radius-bottomleft: 6px; + -moz-border-radius-topleft: 6px; +} + +.pagination-large ul > li:last-child > a, +.pagination-large ul > li:last-child > span { + -webkit-border-top-right-radius: 6px; + border-top-right-radius: 6px; + -webkit-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + -moz-border-radius-topright: 6px; + -moz-border-radius-bottomright: 6px; +} + +.pagination-mini ul > li:first-child > a, +.pagination-small ul > li:first-child > a, +.pagination-mini ul > li:first-child > span, +.pagination-small ul > li:first-child > span { + -webkit-border-bottom-left-radius: 3px; + border-bottom-left-radius: 3px; + -webkit-border-top-left-radius: 3px; + border-top-left-radius: 3px; + -moz-border-radius-bottomleft: 3px; + -moz-border-radius-topleft: 3px; +} + +.pagination-mini ul > li:last-child > a, +.pagination-small ul > li:last-child > a, +.pagination-mini ul > li:last-child > span, +.pagination-small ul > li:last-child > span { + -webkit-border-top-right-radius: 3px; + border-top-right-radius: 3px; + -webkit-border-bottom-right-radius: 3px; + border-bottom-right-radius: 3px; + -moz-border-radius-topright: 3px; + -moz-border-radius-bottomright: 3px; +} + +.pagination-small ul > li > a, +.pagination-small ul > li > span { + padding: 2px 10px; + font-size: 11.9px; +} + +.pagination-mini ul > li > a, +.pagination-mini ul > li > span { + padding: 0 6px; + font-size: 10.5px; +} + +.pager { + margin: 20px 0; + text-align: center; + list-style: none; + *zoom: 1; +} + +.pager:before, +.pager:after { + display: table; + line-height: 0; + content: ""; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #f5f5f5; +} + +.pager .next > a, +.pager .next > span { + float: right; +} + +.pager .previous > a, +.pager .previous > span { + float: left; +} + +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #999999; + cursor: default; + background-color: #fff; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop, +.modal-backdrop.fade.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.modal { + position: fixed; + top: 10%; + left: 50%; + z-index: 1050; + width: 560px; + margin-left: -280px; + background-color: #ffffff; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.3); + *border: 1px solid #999; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + outline: none; + -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + background-clip: padding-box; +} + +.modal.fade { + top: -25%; + -webkit-transition: opacity 0.3s linear, top 0.3s ease-out; + -moz-transition: opacity 0.3s linear, top 0.3s ease-out; + -o-transition: opacity 0.3s linear, top 0.3s ease-out; + transition: opacity 0.3s linear, top 0.3s ease-out; +} + +.modal.fade.in { + top: 10%; +} + +.modal-header { + padding: 9px 15px; + border-bottom: 1px solid #eee; +} + +.modal-header .close { + margin-top: 2px; +} + +.modal-header h3 { + margin: 0; + line-height: 30px; +} + +.modal-body { + position: relative; + max-height: 400px; + padding: 15px; + overflow-y: auto; +} + +.modal-form { + margin-bottom: 0; +} + +.modal-footer { + padding: 14px 15px 15px; + margin-bottom: 0; + text-align: right; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + -webkit-border-radius: 0 0 6px 6px; + -moz-border-radius: 0 0 6px 6px; + border-radius: 0 0 6px 6px; + *zoom: 1; + -webkit-box-shadow: inset 0 1px 0 #ffffff; + -moz-box-shadow: inset 0 1px 0 #ffffff; + box-shadow: inset 0 1px 0 #ffffff; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + line-height: 0; + content: ""; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + font-size: 11px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.8; + filter: alpha(opacity=80); +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + -webkit-border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + border-radius: 5px 5px 0 0; +} + +.popover-title:empty { + display: none; +} + +.popover-content { + padding: 9px 14px; +} + +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover .arrow { + border-width: 11px; +} + +.popover .arrow:after { + border-width: 10px; + content: ""; +} + +.popover.top .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} + +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-top-color: #ffffff; + border-bottom-width: 0; +} + +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} + +.popover.right .arrow:after { + bottom: -10px; + left: 1px; + border-right-color: #ffffff; + border-left-width: 0; +} + +.popover.bottom .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-top-width: 0; +} + +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-bottom-color: #ffffff; + border-top-width: 0; +} + +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); + border-right-width: 0; +} + +.popover.left .arrow:after { + right: 1px; + bottom: -10px; + border-left-color: #ffffff; + border-right-width: 0; +} + +.thumbnails { + margin-left: -20px; + list-style: none; + *zoom: 1; +} + +.thumbnails:before, +.thumbnails:after { + display: table; + line-height: 0; + content: ""; +} + +.thumbnails:after { + clear: both; +} + +.row-fluid .thumbnails { + margin-left: 0; +} + +.thumbnails > li { + float: left; + margin-bottom: 20px; + margin-left: 20px; +} + +.thumbnail { + display: block; + padding: 4px; + line-height: 20px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055); + -webkit-transition: all 0.2s ease-in-out; + -moz-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #0088cc; + -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); +} + +.thumbnail > img { + display: block; + max-width: 100%; + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #555555; +} + +.media, +.media-body { + overflow: hidden; + *overflow: visible; + zoom: 1; +} + +.media, +.media .media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media-object { + display: block; +} + +.media-heading { + margin: 0 0 5px; +} + +.media > .pull-left { + margin-right: 10px; +} + +.media > .pull-right { + margin-left: 10px; +} + +.media-list { + margin-left: 0; + list-style: none; +} + +.label, +.badge { + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; +} + +.label { + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.badge { + padding-right: 9px; + padding-left: 9px; + -webkit-border-radius: 9px; + -moz-border-radius: 9px; + border-radius: 9px; +} + +.label:empty, +.badge:empty { + display: none; +} + +a.label:hover, +a.label:focus, +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label-important, +.badge-important { + background-color: #b94a48; +} + +.label-important[href], +.badge-important[href] { + background-color: #953b39; +} + +.label-warning, +.badge-warning { + background-color: #f89406; +} + +.label-warning[href], +.badge-warning[href] { + background-color: #c67605; +} + +.label-success, +.badge-success { + background-color: #468847; +} + +.label-success[href], +.badge-success[href] { + background-color: #356635; +} + +.label-info, +.badge-info { + background-color: #3a87ad; +} + +.label-info[href], +.badge-info[href] { + background-color: #2d6987; +} + +.label-inverse, +.badge-inverse { + background-color: #333333; +} + +.label-inverse[href], +.badge-inverse[href] { + background-color: #1a1a1a; +} + +.btn .label, +.btn .badge { + position: relative; + top: -1px; +} + +.btn-mini .label, +.btn-mini .badge { + top: 0; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-ms-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f7f7f7; + background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9); + background-repeat: repeat-x; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0); + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress .bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #0e90d2; + background-image: -moz-linear-gradient(top, #149bdf, #0480be); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image: -webkit-linear-gradient(top, #149bdf, #0480be); + background-image: -o-linear-gradient(top, #149bdf, #0480be); + background-image: linear-gradient(to bottom, #149bdf, #0480be); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0); + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: width 0.6s ease; + -moz-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress .bar + .bar { + -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15); +} + +.progress-striped .bar { + background-color: #149bdf; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + -moz-background-size: 40px 40px; + -o-background-size: 40px 40px; + background-size: 40px 40px; +} + +.progress.active .bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-danger .bar, +.progress .bar-danger { + background-color: #dd514c; + background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); + background-image: linear-gradient(to bottom, #ee5f5b, #c43c35); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0); +} + +.progress-danger.progress-striped .bar, +.progress-striped .bar-danger { + background-color: #ee5f5b; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-success .bar, +.progress .bar-success { + background-color: #5eb95e; + background-image: -moz-linear-gradient(top, #62c462, #57a957); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image: -webkit-linear-gradient(top, #62c462, #57a957); + background-image: -o-linear-gradient(top, #62c462, #57a957); + background-image: linear-gradient(to bottom, #62c462, #57a957); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0); +} + +.progress-success.progress-striped .bar, +.progress-striped .bar-success { + background-color: #62c462; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-info .bar, +.progress .bar-info { + background-color: #4bb1cf; + background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image: -o-linear-gradient(top, #5bc0de, #339bb9); + background-image: linear-gradient(to bottom, #5bc0de, #339bb9); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0); +} + +.progress-info.progress-striped .bar, +.progress-striped .bar-info { + background-color: #5bc0de; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-warning .bar, +.progress .bar-warning { + background-color: #faa732; + background-image: -moz-linear-gradient(top, #fbb450, #f89406); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image: -webkit-linear-gradient(top, #fbb450, #f89406); + background-image: -o-linear-gradient(top, #fbb450, #f89406); + background-image: linear-gradient(to bottom, #fbb450, #f89406); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0); +} + +.progress-warning.progress-striped .bar, +.progress-striped .bar-warning { + background-color: #fbb450; + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.accordion { + margin-bottom: 20px; +} + +.accordion-group { + margin-bottom: 2px; + border: 1px solid #e5e5e5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.accordion-heading { + border-bottom: 0; +} + +.accordion-heading .accordion-toggle { + display: block; + padding: 8px 15px; +} + +.accordion-toggle { + cursor: pointer; +} + +.accordion-inner { + padding: 9px 15px; + border-top: 1px solid #e5e5e5; +} + +.carousel { + position: relative; + margin-bottom: 20px; + line-height: 1; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + -moz-transition: 0.6s ease-in-out left; + -o-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + line-height: 1; +} + +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} + +.carousel-inner > .active { + left: 0; +} + +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel-inner > .next { + left: 100%; +} + +.carousel-inner > .prev { + left: -100%; +} + +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} + +.carousel-inner > .active.left { + left: -100%; +} + +.carousel-inner > .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 40%; + left: 15px; + width: 40px; + height: 40px; + margin-top: -20px; + font-size: 60px; + font-weight: 100; + line-height: 30px; + color: #ffffff; + text-align: center; + background: #222222; + border: 3px solid #ffffff; + -webkit-border-radius: 23px; + -moz-border-radius: 23px; + border-radius: 23px; + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.right { + right: 15px; + left: auto; +} + +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-indicators { + position: absolute; + top: 15px; + right: 15px; + z-index: 5; + margin: 0; + list-style: none; +} + +.carousel-indicators li { + display: block; + float: left; + width: 10px; + height: 10px; + margin-left: 5px; + text-indent: -999px; + background-color: #ccc; + background-color: rgba(255, 255, 255, 0.25); + border-radius: 5px; +} + +.carousel-indicators .active { + background-color: #fff; +} + +.carousel-caption { + position: absolute; + right: 0; + bottom: 0; + left: 0; + padding: 15px; + background: #333333; + background: rgba(0, 0, 0, 0.75); +} + +.carousel-caption h4, +.carousel-caption p { + line-height: 20px; + color: #ffffff; +} + +.carousel-caption h4 { + margin: 0 0 5px; +} + +.carousel-caption p { + margin-bottom: 0; +} + +.hero-unit { + padding: 60px; + margin-bottom: 30px; + font-size: 18px; + font-weight: 200; + line-height: 30px; + color: inherit; + background-color: #eeeeee; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +.hero-unit h1 { + margin-bottom: 0; + font-size: 60px; + line-height: 1; + letter-spacing: -1px; + color: inherit; +} + +.hero-unit li { + line-height: 30px; +} + +.pull-right { + float: right; +} + +.pull-left { + float: left; +} + +.hide { + display: none; +} + +.show { + display: block; +} + +.invisible { + visibility: hidden; +} + +.affix { + position: fixed; +} diff --git a/src/main/webapp/ClipReport4/css/admin/bootstrap.min.css b/src/main/webapp/ClipReport4/css/admin/bootstrap.min.css new file mode 100644 index 0000000..f8ca3ba --- /dev/null +++ b/src/main/webapp/ClipReport4/css/admin/bootstrap.min.css @@ -0,0 +1,9 @@ +/*! + * Bootstrap v2.3.2 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;line-height:0;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{width:auto\9;height:auto;max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:20px;color:#333;background-color:#fff}a{color:#08c;text-decoration:none}a:hover,a:focus{color:#005580;text-decoration:underline}.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.img-polaroid{padding:4px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.1);box-shadow:0 1px 3px rgba(0,0,0,0.1)}.img-circle{-webkit-border-radius:500px;-moz-border-radius:500px;border-radius:500px}.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;line-height:0;content:""}.row:after{clear:both}[class*="span"]{float:left;min-height:1px;margin-left:20px}.container,.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1200px}.span12{width:940px}.span11{width:860px}.span10{width:780px}.span9{width:700px}.span8{width:620px}.span7{width:540px}.span6{width:460px}.span5{width:380px}.span4{width:300px}.span3{width:220px}.span2{width:140px}.span1{width:60px}.offset12{margin-left:980px}.offset11{margin-left:900px}.offset10{margin-left:820px}.offset9{margin-left:740px}.offset8{margin-left:660px}.offset7{margin-left:580px}.offset6{margin-left:500px}.offset5{margin-left:420px}.offset4{margin-left:340px}.offset3{margin-left:260px}.offset2{margin-left:180px}.offset1{margin-left:100px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;line-height:0;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:30px;margin-left:2.127659574468085%;*margin-left:2.074468085106383%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .controls-row [class*="span"]+[class*="span"]{margin-left:2.127659574468085%}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.48936170212765%;*width:91.43617021276594%}.row-fluid .span10{width:82.97872340425532%;*width:82.92553191489361%}.row-fluid .span9{width:74.46808510638297%;*width:74.41489361702126%}.row-fluid .span8{width:65.95744680851064%;*width:65.90425531914893%}.row-fluid .span7{width:57.44680851063829%;*width:57.39361702127659%}.row-fluid .span6{width:48.93617021276595%;*width:48.88297872340425%}.row-fluid .span5{width:40.42553191489362%;*width:40.37234042553192%}.row-fluid .span4{width:31.914893617021278%;*width:31.861702127659576%}.row-fluid .span3{width:23.404255319148934%;*width:23.351063829787233%}.row-fluid .span2{width:14.893617021276595%;*width:14.840425531914894%}.row-fluid .span1{width:6.382978723404255%;*width:6.329787234042553%}.row-fluid .offset12{margin-left:104.25531914893617%;*margin-left:104.14893617021275%}.row-fluid .offset12:first-child{margin-left:102.12765957446808%;*margin-left:102.02127659574467%}.row-fluid .offset11{margin-left:95.74468085106382%;*margin-left:95.6382978723404%}.row-fluid .offset11:first-child{margin-left:93.61702127659574%;*margin-left:93.51063829787232%}.row-fluid .offset10{margin-left:87.23404255319149%;*margin-left:87.12765957446807%}.row-fluid .offset10:first-child{margin-left:85.1063829787234%;*margin-left:84.99999999999999%}.row-fluid .offset9{margin-left:78.72340425531914%;*margin-left:78.61702127659572%}.row-fluid .offset9:first-child{margin-left:76.59574468085106%;*margin-left:76.48936170212764%}.row-fluid .offset8{margin-left:70.2127659574468%;*margin-left:70.10638297872339%}.row-fluid .offset8:first-child{margin-left:68.08510638297872%;*margin-left:67.9787234042553%}.row-fluid .offset7{margin-left:61.70212765957446%;*margin-left:61.59574468085106%}.row-fluid .offset7:first-child{margin-left:59.574468085106375%;*margin-left:59.46808510638297%}.row-fluid .offset6{margin-left:53.191489361702125%;*margin-left:53.085106382978715%}.row-fluid .offset6:first-child{margin-left:51.063829787234035%;*margin-left:50.95744680851063%}.row-fluid .offset5{margin-left:44.68085106382979%;*margin-left:44.57446808510638%}.row-fluid .offset5:first-child{margin-left:42.5531914893617%;*margin-left:42.4468085106383%}.row-fluid .offset4{margin-left:36.170212765957444%;*margin-left:36.06382978723405%}.row-fluid .offset4:first-child{margin-left:34.04255319148936%;*margin-left:33.93617021276596%}.row-fluid .offset3{margin-left:27.659574468085104%;*margin-left:27.5531914893617%}.row-fluid .offset3:first-child{margin-left:25.53191489361702%;*margin-left:25.425531914893618%}.row-fluid .offset2{margin-left:19.148936170212764%;*margin-left:19.04255319148936%}.row-fluid .offset2:first-child{margin-left:17.02127659574468%;*margin-left:16.914893617021278%}.row-fluid .offset1{margin-left:10.638297872340425%;*margin-left:10.53191489361702%}.row-fluid .offset1:first-child{margin-left:8.51063829787234%;*margin-left:8.404255319148938%}[class*="span"].hide,.row-fluid [class*="span"].hide{display:none}[class*="span"].pull-right,.row-fluid [class*="span"].pull-right{float:right}.container{margin-right:auto;margin-left:auto;*zoom:1}.container:before,.container:after{display:table;line-height:0;content:""}.container:after{clear:both}.container-fluid{padding-right:20px;padding-left:20px;*zoom:1}.container-fluid:before,.container-fluid:after{display:table;line-height:0;content:""}.container-fluid:after{clear:both}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:21px;font-weight:200;line-height:30px}small{font-size:85%}strong{font-weight:bold}em{font-style:italic}cite{font-style:normal}.muted{color:#999}a.muted:hover,a.muted:focus{color:#808080}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-error{color:#b94a48}a.text-error:hover,a.text-error:focus{color:#953b39}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6{margin:10px 0;font-family:inherit;font-weight:bold;line-height:20px;color:inherit;text-rendering:optimizelegibility}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{line-height:40px}h1{font-size:38.5px}h2{font-size:31.5px}h3{font-size:24.5px}h4{font-size:17.5px}h5{font-size:14px}h6{font-size:11.9px}h1 small{font-size:24.5px}h2 small{font-size:17.5px}h3 small{font-size:14px}h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:20px 0 30px;border-bottom:1px solid #eee}ul,ol{padding:0;margin:0 0 10px 25px}ul ul,ul ol,ol ol,ol ul{margin-bottom:0}li{line-height:20px}ul.unstyled,ol.unstyled{margin-left:0;list-style:none}ul.inline,ol.inline{margin-left:0;list-style:none}ul.inline>li,ol.inline>li{display:inline-block;*display:inline;padding-right:5px;padding-left:5px;*zoom:1}dl{margin-bottom:20px}dt,dd{line-height:20px}dt{font-weight:bold}dd{margin-left:10px}.dl-horizontal{*zoom:1}.dl-horizontal:before,.dl-horizontal:after{display:table;line-height:0;content:""}.dl-horizontal:after{clear:both}.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}hr{margin:20px 0;border:0;border-top:1px solid #eee;border-bottom:1px solid #fff}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:0 0 0 15px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{margin-bottom:0;font-size:17.5px;font-weight:300;line-height:1.25}blockquote small{display:block;line-height:20px;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:20px}code,pre{padding:0 3px 2px;font-family:Monaco,Menlo,Consolas,"Courier New",monospace;font-size:12px;color:#333;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}code{padding:2px 4px;color:#d14;white-space:nowrap;background-color:#f7f7f9;border:1px solid #e1e1e8}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;white-space:pre;white-space:pre-wrap;background-color:#f5f5f5;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;color:inherit;white-space:pre;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}form{margin:0 0 20px}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:40px;color:#333;border:0;border-bottom:1px solid #e5e5e5}legend small{font-size:15px;color:#999}label,input,button,select,textarea{font-size:14px;font-weight:normal;line-height:20px}input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif}label{display:block;margin-bottom:5px}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{display:inline-block;height:20px;padding:4px 6px;margin-bottom:10px;font-size:14px;line-height:20px;color:#555;vertical-align:middle;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}input,textarea,.uneditable-input{width:206px}textarea{height:auto}textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{background-color:#fff;border:1px solid #ccc;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border linear .2s,box-shadow linear .2s;-moz-transition:border linear .2s,box-shadow linear .2s;-o-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus,.uneditable-input:focus{border-color:rgba(82,168,236,0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;*margin-top:0;line-height:normal}input[type="file"],input[type="image"],input[type="submit"],input[type="reset"],input[type="button"],input[type="radio"],input[type="checkbox"]{width:auto}select,input[type="file"]{height:30px;*margin-top:4px;line-height:30px}select{width:220px;background-color:#fff;border:1px solid #ccc}select[multiple],select[size]{height:auto}select:focus,input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.uneditable-input,.uneditable-textarea{color:#999;cursor:not-allowed;background-color:#fcfcfc;border-color:#ccc;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.025);box-shadow:inset 0 1px 2px rgba(0,0,0,0.025)}.uneditable-input{overflow:hidden;white-space:nowrap}.uneditable-textarea{width:auto;height:auto}input:-moz-placeholder,textarea:-moz-placeholder{color:#999}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#999}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#999}.radio,.checkbox{min-height:20px;padding-left:20px}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-20px}.controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}.input-mini{width:60px}.input-small{width:90px}.input-medium{width:150px}.input-large{width:210px}.input-xlarge{width:270px}.input-xxlarge{width:530px}input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0}.input-append input[class*="span"],.input-append .uneditable-input[class*="span"],.input-prepend input[class*="span"],.input-prepend .uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"],.row-fluid .input-prepend [class*="span"],.row-fluid .input-append [class*="span"]{display:inline-block}input,textarea,.uneditable-input{margin-left:0}.controls-row [class*="span"]+[class*="span"]{margin-left:20px}input.span12,textarea.span12,.uneditable-input.span12{width:926px}input.span11,textarea.span11,.uneditable-input.span11{width:846px}input.span10,textarea.span10,.uneditable-input.span10{width:766px}input.span9,textarea.span9,.uneditable-input.span9{width:686px}input.span8,textarea.span8,.uneditable-input.span8{width:606px}input.span7,textarea.span7,.uneditable-input.span7{width:526px}input.span6,textarea.span6,.uneditable-input.span6{width:446px}input.span5,textarea.span5,.uneditable-input.span5{width:366px}input.span4,textarea.span4,.uneditable-input.span4{width:286px}input.span3,textarea.span3,.uneditable-input.span3{width:206px}input.span2,textarea.span2,.uneditable-input.span2{width:126px}input.span1,textarea.span1,.uneditable-input.span1{width:46px}.controls-row{*zoom:1}.controls-row:before,.controls-row:after{display:table;line-height:0;content:""}.controls-row:after{clear:both}.controls-row [class*="span"],.row-fluid .controls-row [class*="span"]{float:left}.controls-row .checkbox[class*="span"],.controls-row .radio[class*="span"]{padding-top:5px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eee}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent}.control-group.warning .control-label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853}.control-group.warning .checkbox,.control-group.warning .radio,.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853}.control-group.warning input,.control-group.warning select,.control-group.warning textarea{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.control-group.error .control-label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48}.control-group.error .checkbox,.control-group.error .radio,.control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48}.control-group.error input,.control-group.error select,.control-group.error textarea{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.control-group.success .control-label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847}.control-group.success .checkbox,.control-group.success .radio,.control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847}.control-group.success input,.control-group.success select,.control-group.success textarea{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847}.control-group.info .control-label,.control-group.info .help-block,.control-group.info .help-inline{color:#3a87ad}.control-group.info .checkbox,.control-group.info .radio,.control-group.info input,.control-group.info select,.control-group.info textarea{color:#3a87ad}.control-group.info input,.control-group.info select,.control-group.info textarea{border-color:#3a87ad;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.control-group.info input:focus,.control-group.info select:focus,.control-group.info textarea:focus{border-color:#2d6987;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7ab5d3}.control-group.info .input-prepend .add-on,.control-group.info .input-append .add-on{color:#3a87ad;background-color:#d9edf7;border-color:#3a87ad}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#b94a48;border-color:#ee5f5b}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7}.form-actions{padding:19px 20px 20px;margin-top:20px;margin-bottom:20px;background-color:#f5f5f5;border-top:1px solid #e5e5e5;*zoom:1}.form-actions:before,.form-actions:after{display:table;line-height:0;content:""}.form-actions:after{clear:both}.help-block,.help-inline{color:#595959}.help-block{display:block;margin-bottom:10px}.help-inline{display:inline-block;*display:inline;padding-left:5px;vertical-align:middle;*zoom:1}.input-append,.input-prepend{display:inline-block;margin-bottom:10px;font-size:0;white-space:nowrap;vertical-align:middle}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input,.input-append .dropdown-menu,.input-prepend .dropdown-menu,.input-append .popover,.input-prepend .popover{font-size:14px}.input-append input,.input-prepend input,.input-append select,.input-prepend select,.input-append .uneditable-input,.input-prepend .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:top;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append input:focus,.input-prepend input:focus,.input-append select:focus,.input-prepend select:focus,.input-append .uneditable-input:focus,.input-prepend .uneditable-input:focus{z-index:2}.input-append .add-on,.input-prepend .add-on{display:inline-block;width:auto;height:20px;min-width:16px;padding:4px 5px;font-size:14px;font-weight:normal;line-height:20px;text-align:center;text-shadow:0 1px 0 #fff;background-color:#eee;border:1px solid #ccc}.input-append .add-on,.input-prepend .add-on,.input-append .btn,.input-prepend .btn,.input-append .btn-group>.dropdown-toggle,.input-prepend .btn-group>.dropdown-toggle{vertical-align:top;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-append .active,.input-prepend .active{background-color:#a9dba9;border-color:#46a546}.input-prepend .add-on,.input-prepend .btn{margin-right:-1px}.input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-append input+.btn-group .btn:last-child,.input-append select+.btn-group .btn:last-child,.input-append .uneditable-input+.btn-group .btn:last-child{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-append .add-on,.input-append .btn,.input-append .btn-group{margin-left:-1px}.input-append .add-on:last-child,.input-append .btn:last-child,.input-append .btn-group:last-child>.dropdown-toggle{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.input-prepend.input-append input+.btn-group .btn,.input-prepend.input-append select+.btn-group .btn,.input-prepend.input-append .uneditable-input+.btn-group .btn{-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.input-prepend.input-append .btn-group:first-child{margin-left:0}input.search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.form-search .input-append .search-query,.form-search .input-prepend .search-query{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.form-search .input-append .search-query{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search .input-append .btn{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .search-query{-webkit-border-radius:0 14px 14px 0;-moz-border-radius:0 14px 14px 0;border-radius:0 14px 14px 0}.form-search .input-prepend .btn{-webkit-border-radius:14px 0 0 14px;-moz-border-radius:14px 0 0 14px;border-radius:14px 0 0 14px}.form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;margin-bottom:0;vertical-align:middle;*zoom:1}.form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none}.form-search label,.form-inline label,.form-search .btn-group,.form-inline .btn-group{display:inline-block}.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0}.form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0}.control-group{margin-bottom:10px}legend+.control-group{margin-top:20px;-webkit-margin-top-collapse:separate}.form-horizontal .control-group{margin-bottom:20px;*zoom:1}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;line-height:0;content:""}.form-horizontal .control-group:after{clear:both}.form-horizontal .control-label{float:left;width:160px;padding-top:5px;text-align:right}.form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:180px;*margin-left:0}.form-horizontal .controls:first-child{*padding-left:180px}.form-horizontal .help-block{margin-bottom:0}.form-horizontal input+.help-block,.form-horizontal select+.help-block,.form-horizontal textarea+.help-block,.form-horizontal .uneditable-input+.help-block,.form-horizontal .input-prepend+.help-block,.form-horizontal .input-append+.help-block{margin-top:10px}.form-horizontal .form-actions{padding-left:180px}table{max-width:100%;background-color:transparent;border-collapse:collapse;border-spacing:0}.table{width:100%;margin-bottom:20px}.table th,.table td{padding:8px;line-height:20px;text-align:left;vertical-align:top;border-top:1px solid #ddd}.table th{font-weight:bold}.table thead th{vertical-align:bottom}.table caption+thead tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed th,.table-condensed td{padding:4px 5px}.table-bordered{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;border-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.table-bordered th,.table-bordered td{border-left:1px solid #ddd}.table-bordered caption+thead tr:first-child th,.table-bordered caption+tbody tr:first-child th,.table-bordered caption+tbody tr:first-child td,.table-bordered colgroup+thead tr:first-child th,.table-bordered colgroup+tbody tr:first-child th,.table-bordered colgroup+tbody tr:first-child td,.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0}.table-bordered thead:first-child tr:first-child>th:first-child,.table-bordered tbody:first-child tr:first-child>td:first-child,.table-bordered tbody:first-child tr:first-child>th:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered thead:first-child tr:first-child>th:last-child,.table-bordered tbody:first-child tr:first-child>td:last-child,.table-bordered tbody:first-child tr:first-child>th:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-bordered thead:last-child tr:last-child>th:first-child,.table-bordered tbody:last-child tr:last-child>td:first-child,.table-bordered tbody:last-child tr:last-child>th:first-child,.table-bordered tfoot:last-child tr:last-child>td:first-child,.table-bordered tfoot:last-child tr:last-child>th:first-child{-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px}.table-bordered thead:last-child tr:last-child>th:last-child,.table-bordered tbody:last-child tr:last-child>td:last-child,.table-bordered tbody:last-child tr:last-child>th:last-child,.table-bordered tfoot:last-child tr:last-child>td:last-child,.table-bordered tfoot:last-child tr:last-child>th:last-child{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px}.table-bordered tfoot+tbody:last-child tr:last-child td:first-child{-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;-moz-border-radius-bottomleft:0}.table-bordered tfoot+tbody:last-child tr:last-child td:last-child{-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-moz-border-radius-bottomright:0}.table-bordered caption+thead tr:first-child th:first-child,.table-bordered caption+tbody tr:first-child td:first-child,.table-bordered colgroup+thead tr:first-child th:first-child,.table-bordered colgroup+tbody tr:first-child td:first-child{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topleft:4px}.table-bordered caption+thead tr:first-child th:last-child,.table-bordered caption+tbody tr:first-child td:last-child,.table-bordered colgroup+thead tr:first-child th:last-child,.table-bordered colgroup+tbody tr:first-child td:last-child{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-moz-border-radius-topright:4px}.table-striped tbody>tr:nth-child(odd)>td,.table-striped tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover tbody tr:hover>td,.table-hover tbody tr:hover>th{background-color:#f5f5f5}table td[class*="span"],table th[class*="span"],.row-fluid table td[class*="span"],.row-fluid table th[class*="span"]{display:table-cell;float:none;margin-left:0}.table td.span1,.table th.span1{float:none;width:44px;margin-left:0}.table td.span2,.table th.span2{float:none;width:124px;margin-left:0}.table td.span3,.table th.span3{float:none;width:204px;margin-left:0}.table td.span4,.table th.span4{float:none;width:284px;margin-left:0}.table td.span5,.table th.span5{float:none;width:364px;margin-left:0}.table td.span6,.table th.span6{float:none;width:444px;margin-left:0}.table td.span7,.table th.span7{float:none;width:524px;margin-left:0}.table td.span8,.table th.span8{float:none;width:604px;margin-left:0}.table td.span9,.table th.span9{float:none;width:684px;margin-left:0}.table td.span10,.table th.span10{float:none;width:764px;margin-left:0}.table td.span11,.table th.span11{float:none;width:844px;margin-left:0}.table td.span12,.table th.span12{float:none;width:924px;margin-left:0}.table tbody tr.success>td{background-color:#dff0d8}.table tbody tr.error>td{background-color:#f2dede}.table tbody tr.warning>td{background-color:#fcf8e3}.table tbody tr.info>td{background-color:#d9edf7}.table-hover tbody tr.success:hover>td{background-color:#d0e9c6}.table-hover tbody tr.error:hover>td{background-color:#ebcccc}.table-hover tbody tr.warning:hover>td{background-color:#faf2cc}.table-hover tbody tr.info:hover>td{background-color:#c4e3f3}[class^="icon-"],[class*=" icon-"]{display:inline-block;width:14px;height:14px;margin-top:1px;*margin-right:.3em;line-height:14px;vertical-align:text-top;background-image:url("../img/glyphicons-halflings.png.jsp");background-position:14px 14px;background-repeat:no-repeat}.icon-white,.nav-pills>.active>a>[class^="icon-"],.nav-pills>.active>a>[class*=" icon-"],.nav-list>.active>a>[class^="icon-"],.nav-list>.active>a>[class*=" icon-"],.navbar-inverse .nav>.active>a>[class^="icon-"],.navbar-inverse .nav>.active>a>[class*=" icon-"],.dropdown-menu>li>a:hover>[class^="icon-"],.dropdown-menu>li>a:focus>[class^="icon-"],.dropdown-menu>li>a:hover>[class*=" icon-"],.dropdown-menu>li>a:focus>[class*=" icon-"],.dropdown-menu>.active>a>[class^="icon-"],.dropdown-menu>.active>a>[class*=" icon-"],.dropdown-submenu:hover>a>[class^="icon-"],.dropdown-submenu:focus>a>[class^="icon-"],.dropdown-submenu:hover>a>[class*=" icon-"],.dropdown-submenu:focus>a>[class*=" icon-"]{background-image:url("../img/glyphicons-halflings-white.png.jsp")}.icon-glass{background-position:0 0}.icon-music{background-position:-24px 0}.icon-search{background-position:-48px 0}.icon-envelope{background-position:-72px 0}.icon-heart{background-position:-96px 0}.icon-star{background-position:-120px 0}.icon-star-empty{background-position:-144px 0}.icon-user{background-position:-168px 0}.icon-film{background-position:-192px 0}.icon-th-large{background-position:-216px 0}.icon-th{background-position:-240px 0}.icon-th-list{background-position:-264px 0}.icon-ok{background-position:-288px 0}.icon-remove{background-position:-312px 0}.icon-zoom-in{background-position:-336px 0}.icon-zoom-out{background-position:-360px 0}.icon-off{background-position:-384px 0}.icon-signal{background-position:-408px 0}.icon-cog{background-position:-432px 0}.icon-trash{background-position:-456px 0}.icon-home{background-position:0 -24px}.icon-file{background-position:-24px -24px}.icon-time{background-position:-48px -24px}.icon-road{background-position:-72px -24px}.icon-download-alt{background-position:-96px -24px}.icon-download{background-position:-120px -24px}.icon-upload{background-position:-144px -24px}.icon-inbox{background-position:-168px -24px}.icon-play-circle{background-position:-192px -24px}.icon-repeat{background-position:-216px -24px}.icon-refresh{background-position:-240px -24px}.icon-list-alt{background-position:-264px -24px}.icon-lock{background-position:-287px -24px}.icon-flag{background-position:-312px -24px}.icon-headphones{background-position:-336px -24px}.icon-volume-off{background-position:-360px -24px}.icon-volume-down{background-position:-384px -24px}.icon-volume-up{background-position:-408px -24px}.icon-qrcode{background-position:-432px -24px}.icon-barcode{background-position:-456px -24px}.icon-tag{background-position:0 -48px}.icon-tags{background-position:-25px -48px}.icon-book{background-position:-48px -48px}.icon-bookmark{background-position:-72px -48px}.icon-print{background-position:-96px -48px}.icon-camera{background-position:-120px -48px}.icon-font{background-position:-144px -48px}.icon-bold{background-position:-167px -48px}.icon-italic{background-position:-192px -48px}.icon-text-height{background-position:-216px -48px}.icon-text-width{background-position:-240px -48px}.icon-align-left{background-position:-264px -48px}.icon-align-center{background-position:-288px -48px}.icon-align-right{background-position:-312px -48px}.icon-align-justify{background-position:-336px -48px}.icon-list{background-position:-360px -48px}.icon-indent-left{background-position:-384px -48px}.icon-indent-right{background-position:-408px -48px}.icon-facetime-video{background-position:-432px -48px}.icon-picture{background-position:-456px -48px}.icon-pencil{background-position:0 -72px}.icon-map-marker{background-position:-24px -72px}.icon-adjust{background-position:-48px -72px}.icon-tint{background-position:-72px -72px}.icon-edit{background-position:-96px -72px}.icon-share{background-position:-120px -72px}.icon-check{background-position:-144px -72px}.icon-move{background-position:-168px -72px}.icon-step-backward{background-position:-192px -72px}.icon-fast-backward{background-position:-216px -72px}.icon-backward{background-position:-240px -72px}.icon-play{background-position:-264px -72px}.icon-pause{background-position:-288px -72px}.icon-stop{background-position:-312px -72px}.icon-forward{background-position:-336px -72px}.icon-fast-forward{background-position:-360px -72px}.icon-step-forward{background-position:-384px -72px}.icon-eject{background-position:-408px -72px}.icon-chevron-left{background-position:-432px -72px}.icon-chevron-right{background-position:-456px -72px}.icon-plus-sign{background-position:0 -96px}.icon-minus-sign{background-position:-24px -96px}.icon-remove-sign{background-position:-48px -96px}.icon-ok-sign{background-position:-72px -96px}.icon-question-sign{background-position:-96px -96px}.icon-info-sign{background-position:-120px -96px}.icon-screenshot{background-position:-144px -96px}.icon-remove-circle{background-position:-168px -96px}.icon-ok-circle{background-position:-192px -96px}.icon-ban-circle{background-position:-216px -96px}.icon-arrow-left{background-position:-240px -96px}.icon-arrow-right{background-position:-264px -96px}.icon-arrow-up{background-position:-289px -96px}.icon-arrow-down{background-position:-312px -96px}.icon-share-alt{background-position:-336px -96px}.icon-resize-full{background-position:-360px -96px}.icon-resize-small{background-position:-384px -96px}.icon-plus{background-position:-408px -96px}.icon-minus{background-position:-433px -96px}.icon-asterisk{background-position:-456px -96px}.icon-exclamation-sign{background-position:0 -120px}.icon-gift{background-position:-24px -120px}.icon-leaf{background-position:-48px -120px}.icon-fire{background-position:-72px -120px}.icon-eye-open{background-position:-96px -120px}.icon-eye-close{background-position:-120px -120px}.icon-warning-sign{background-position:-144px -120px}.icon-plane{background-position:-168px -120px}.icon-calendar{background-position:-192px -120px}.icon-random{width:16px;background-position:-216px -120px}.icon-comment{background-position:-240px -120px}.icon-magnet{background-position:-264px -120px}.icon-chevron-up{background-position:-288px -120px}.icon-chevron-down{background-position:-313px -119px}.icon-retweet{background-position:-336px -120px}.icon-shopping-cart{background-position:-360px -120px}.icon-folder-close{width:16px;background-position:-384px -120px}.icon-folder-open{width:16px;background-position:-408px -120px}.icon-resize-vertical{background-position:-432px -119px}.icon-resize-horizontal{background-position:-456px -118px}.icon-hdd{background-position:0 -144px}.icon-bullhorn{background-position:-24px -144px}.icon-bell{background-position:-48px -144px}.icon-certificate{background-position:-72px -144px}.icon-thumbs-up{background-position:-96px -144px}.icon-thumbs-down{background-position:-120px -144px}.icon-hand-right{background-position:-144px -144px}.icon-hand-left{background-position:-168px -144px}.icon-hand-up{background-position:-192px -144px}.icon-hand-down{background-position:-216px -144px}.icon-circle-arrow-right{background-position:-240px -144px}.icon-circle-arrow-left{background-position:-264px -144px}.icon-circle-arrow-up{background-position:-288px -144px}.icon-circle-arrow-down{background-position:-312px -144px}.icon-globe{background-position:-336px -144px}.icon-wrench{background-position:-360px -144px}.icon-tasks{background-position:-384px -144px}.icon-filter{background-position:-408px -144px}.icon-briefcase{background-position:-432px -144px}.icon-fullscreen{background-position:-456px -144px}.dropup,.dropdown{position:relative}.dropdown-toggle{*margin-bottom:-3px}.dropdown-toggle:active,.open .dropdown-toggle{outline:0}.caret{display:inline-block;width:0;height:0;vertical-align:top;border-top:4px solid #000;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.dropdown .caret{margin-top:8px;margin-left:2px}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);*border-right-width:2px;*border-bottom-width:2px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus,.dropdown-submenu:hover>a,.dropdown-submenu:focus>a{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;outline:0;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0)}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open{*z-index:1000}.open>.dropdown-menu{display:block}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}.dropdown-submenu{position:relative}.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}.dropdown-submenu:hover>.dropdown-menu{display:block}.dropup .dropdown-submenu>.dropdown-menu{top:auto;bottom:0;margin-top:0;margin-bottom:-2px;-webkit-border-radius:5px 5px 5px 0;-moz-border-radius:5px 5px 5px 0;border-radius:5px 5px 5px 0}.dropdown-submenu>a:after{display:block;float:right;width:0;height:0;margin-top:5px;margin-right:-10px;border-color:transparent;border-left-color:#ccc;border-style:solid;border-width:5px 0 5px 5px;content:" "}.dropdown-submenu:hover>a:after{border-left-color:#fff}.dropdown-submenu.pull-left{float:none}.dropdown-submenu.pull-left>.dropdown-menu{left:-100%;margin-left:10px;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.dropdown .dropdown-menu .nav-header{padding-right:20px;padding-left:20px}.typeahead{z-index:1051;margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.fade{opacity:0;-webkit-transition:opacity .15s linear;-moz-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;-moz-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.collapse.in{height:auto}.close{float:right;font-size:20px;font-weight:bold;line-height:20px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.btn{display:inline-block;*display:inline;padding:4px 12px;margin-bottom:0;*margin-left:.3em;font-size:14px;line-height:20px;color:#333;text-align:center;text-shadow:0 1px 1px rgba(255,255,255,0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;*background-color:#e6e6e6;background-image:-moz-linear-gradient(top,#fff,#e6e6e6);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#e6e6e6));background-image:-webkit-linear-gradient(top,#fff,#e6e6e6);background-image:-o-linear-gradient(top,#fff,#e6e6e6);background-image:linear-gradient(to bottom,#fff,#e6e6e6);background-repeat:repeat-x;border:1px solid #ccc;*border:0;border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffe6e6e6',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);*zoom:1;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn:hover,.btn:focus,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{color:#333;background-color:#e6e6e6;*background-color:#d9d9d9}.btn:active,.btn.active{background-color:#ccc \9}.btn:first-child{*margin-left:0}.btn:hover,.btn:focus{color:#333;text-decoration:none;background-position:0 -15px;-webkit-transition:background-position .1s linear;-moz-transition:background-position .1s linear;-o-transition:background-position .1s linear;transition:background-position .1s linear}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn.disabled,.btn[disabled]{cursor:default;background-image:none;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-large{padding:11px 19px;font-size:17.5px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.btn-large [class^="icon-"],.btn-large [class*=" icon-"]{margin-top:4px}.btn-small{padding:2px 10px;font-size:11.9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-small [class^="icon-"],.btn-small [class*=" icon-"]{margin-top:0}.btn-mini [class^="icon-"],.btn-mini [class*=" icon-"]{margin-top:-1px}.btn-mini{padding:0 6px;font-size:10.5px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255,255,255,0.75)}.btn-primary{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#006dcc;*background-color:#04c;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;border-color:#04c #04c #002a80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{color:#fff;background-color:#04c;*background-color:#003bb3}.btn-primary:active,.btn-primary.active{background-color:#039 \9}.btn-warning{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#faa732;*background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;border-color:#f89406 #f89406 #ad6704;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{color:#fff;background-color:#f89406;*background-color:#df8505}.btn-warning:active,.btn-warning.active{background-color:#c67605 \9}.btn-danger{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#da4f49;*background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#bd362f));background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);background-repeat:repeat-x;border-color:#bd362f #bd362f #802420;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffbd362f',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{color:#fff;background-color:#bd362f;*background-color:#a9302a}.btn-danger:active,.btn-danger.active{background-color:#942a25 \9}.btn-success{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#5bb75b;*background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#51a351));background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);background-repeat:repeat-x;border-color:#51a351 #51a351 #387038;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff51a351',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{color:#fff;background-color:#51a351;*background-color:#499249}.btn-success:active,.btn-success.active{background-color:#408140 \9}.btn-info{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#49afcd;*background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#2f96b4));background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);background-repeat:repeat-x;border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff2f96b4',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{color:#fff;background-color:#2f96b4;*background-color:#2a85a0}.btn-info:active,.btn-info.active{background-color:#24748c \9}.btn-inverse{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#363636;*background-color:#222;background-image:-moz-linear-gradient(top,#444,#222);background-image:-webkit-gradient(linear,0 0,0 100%,from(#444),to(#222));background-image:-webkit-linear-gradient(top,#444,#222);background-image:-o-linear-gradient(top,#444,#222);background-image:linear-gradient(to bottom,#444,#222);background-repeat:repeat-x;border-color:#222 #222 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444',endColorstr='#ff222222',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.btn-inverse:hover,.btn-inverse:focus,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{color:#fff;background-color:#222;*background-color:#151515}.btn-inverse:active,.btn-inverse.active{background-color:#080808 \9}button.btn,input[type="submit"].btn{*padding-top:3px;*padding-bottom:3px}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0}button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px}button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px}button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px}.btn-link,.btn-link:active,.btn-link[disabled]{background-color:transparent;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.btn-link{color:#08c;cursor:pointer;border-color:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-link:hover,.btn-link:focus{color:#005580;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,.btn-link[disabled]:focus{color:#333;text-decoration:none}.btn-group{position:relative;display:inline-block;*display:inline;*margin-left:.3em;font-size:0;white-space:nowrap;vertical-align:middle;*zoom:1}.btn-group:first-child{*margin-left:0}.btn-group+.btn-group{margin-left:5px}.btn-toolbar{margin-top:10px;margin-bottom:10px;font-size:0}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group{margin-left:5px}.btn-group>.btn{position:relative;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group>.btn+.btn{margin-left:-1px}.btn-group>.btn,.btn-group>.dropdown-menu,.btn-group>.popover{font-size:14px}.btn-group>.btn-mini{font-size:10.5px}.btn-group>.btn-small{font-size:11.9px}.btn-group>.btn-large{font-size:17.5px}.btn-group>.btn:first-child{margin-left:0;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.btn-group>.btn:last-child,.btn-group>.dropdown-toggle{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.btn-group>.btn.large:first-child{margin-left:0;-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.btn-group>.btn.large:last-child,.btn-group>.large.dropdown-toggle{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.btn-group>.btn:hover,.btn-group>.btn:focus,.btn-group>.btn:active,.btn-group>.btn.active{z-index:2}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{*padding-top:5px;padding-right:8px;*padding-bottom:5px;padding-left:8px;-webkit-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 1px 0 0 rgba(255,255,255,0.125),inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.btn-group>.btn-mini+.dropdown-toggle{*padding-top:2px;padding-right:5px;*padding-bottom:2px;padding-left:5px}.btn-group>.btn-small+.dropdown-toggle{*padding-top:5px;*padding-bottom:4px}.btn-group>.btn-large+.dropdown-toggle{*padding-top:7px;padding-right:12px;*padding-bottom:7px;padding-left:12px}.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.btn-group.open .btn.dropdown-toggle{background-color:#e6e6e6}.btn-group.open .btn-primary.dropdown-toggle{background-color:#04c}.btn-group.open .btn-warning.dropdown-toggle{background-color:#f89406}.btn-group.open .btn-danger.dropdown-toggle{background-color:#bd362f}.btn-group.open .btn-success.dropdown-toggle{background-color:#51a351}.btn-group.open .btn-info.dropdown-toggle{background-color:#2f96b4}.btn-group.open .btn-inverse.dropdown-toggle{background-color:#222}.btn .caret{margin-top:8px;margin-left:0}.btn-large .caret{margin-top:6px}.btn-large .caret{border-top-width:5px;border-right-width:5px;border-left-width:5px}.btn-mini .caret,.btn-small .caret{margin-top:8px}.dropup .btn-large .caret{border-bottom-width:5px}.btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#fff;border-bottom-color:#fff}.btn-group-vertical{display:inline-block;*display:inline;*zoom:1}.btn-group-vertical>.btn{display:block;float:none;max-width:100%;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.btn-group-vertical>.btn+.btn{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:first-child{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.btn-group-vertical>.btn-large:first-child{-webkit-border-radius:6px 6px 0 0;-moz-border-radius:6px 6px 0 0;border-radius:6px 6px 0 0}.btn-group-vertical>.btn-large:last-child{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.alert{padding:8px 35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.alert,.alert h4{color:#c09853}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success h4{color:#468847}.alert-danger,.alert-error{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger h4,.alert-error h4{color:#b94a48}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info h4{color:#3a87ad}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#08c}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.nav-pills>.active>a,.nav-pills>.active>a:hover,.nav-pills>.active>a:focus{color:#fff;background-color:#08c}.nav-stacked>li{float:none}.nav-stacked>li>a{margin-right:0}.nav-tabs.nav-stacked{border-bottom:0}.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-topleft:4px}.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-moz-border-radius-bottomright:4px;-moz-border-radius-bottomleft:4px}.nav-tabs.nav-stacked>li>a:hover,.nav-tabs.nav-stacked>li>a:focus{z-index:2;border-color:#ddd}.nav-pills.nav-stacked>li>a{margin-bottom:3px}.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px}.nav-tabs .dropdown-menu{-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px}.nav-pills .dropdown-menu{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.nav .dropdown-toggle .caret{margin-top:6px;border-top-color:#08c;border-bottom-color:#08c}.nav .dropdown-toggle:hover .caret,.nav .dropdown-toggle:focus .caret{border-top-color:#005580;border-bottom-color:#005580}.nav-tabs .dropdown-toggle .caret{margin-top:8px}.nav .active .dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.nav-tabs .active .dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.nav>.dropdown.active>a:hover,.nav>.dropdown.active>a:focus{cursor:pointer}.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>li.dropdown.open.active>a:hover,.nav>li.dropdown.open.active>a:focus{color:#fff;background-color:#999;border-color:#999}.nav li.dropdown.open .caret,.nav li.dropdown.open.active .caret,.nav li.dropdown.open a:hover .caret,.nav li.dropdown.open a:focus .caret{border-top-color:#fff;border-bottom-color:#fff;opacity:1;filter:alpha(opacity=100)}.tabs-stacked .open>a:hover,.tabs-stacked .open>a:focus{border-color:#999}.tabbable{*zoom:1}.tabbable:before,.tabbable:after{display:table;line-height:0;content:""}.tabbable:after{clear:both}.tab-content{overflow:auto}.tabs-below>.nav-tabs,.tabs-right>.nav-tabs,.tabs-left>.nav-tabs{border-bottom:0}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.tabs-below>.nav-tabs{border-top:1px solid #ddd}.tabs-below>.nav-tabs>li{margin-top:-1px;margin-bottom:0}.tabs-below>.nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px}.tabs-below>.nav-tabs>li>a:hover,.tabs-below>.nav-tabs>li>a:focus{border-top-color:#ddd;border-bottom-color:transparent}.tabs-below>.nav-tabs>.active>a,.tabs-below>.nav-tabs>.active>a:hover,.tabs-below>.nav-tabs>.active>a:focus{border-color:transparent #ddd #ddd #ddd}.tabs-left>.nav-tabs>li,.tabs-right>.nav-tabs>li{float:none}.tabs-left>.nav-tabs>li>a,.tabs-right>.nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px}.tabs-left>.nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd}.tabs-left>.nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.tabs-left>.nav-tabs>li>a:hover,.tabs-left>.nav-tabs>li>a:focus{border-color:#eee #ddd #eee #eee}.tabs-left>.nav-tabs .active>a,.tabs-left>.nav-tabs .active>a:hover,.tabs-left>.nav-tabs .active>a:focus{border-color:#ddd transparent #ddd #ddd;*border-right-color:#fff}.tabs-right>.nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd}.tabs-right>.nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.tabs-right>.nav-tabs>li>a:hover,.tabs-right>.nav-tabs>li>a:focus{border-color:#eee #eee #eee #ddd}.tabs-right>.nav-tabs .active>a,.tabs-right>.nav-tabs .active>a:hover,.tabs-right>.nav-tabs .active>a:focus{border-color:#ddd #ddd #ddd transparent;*border-left-color:#fff}.nav>.disabled>a{color:#999}.nav>.disabled>a:hover,.nav>.disabled>a:focus{text-decoration:none;cursor:default;background-color:transparent}.navbar{*position:relative;*z-index:2;margin-bottom:20px;overflow:visible}.navbar-inner{min-height:40px;padding-right:20px;padding-left:20px;background-color:#fafafa;background-image:-moz-linear-gradient(top,#fff,#f2f2f2);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#f2f2f2));background-image:-webkit-linear-gradient(top,#fff,#f2f2f2);background-image:-o-linear-gradient(top,#fff,#f2f2f2);background-image:linear-gradient(to bottom,#fff,#f2f2f2);background-repeat:repeat-x;border:1px solid #d4d4d4;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#fff2f2f2',GradientType=0);*zoom:1;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.065);-moz-box-shadow:0 1px 4px rgba(0,0,0,0.065);box-shadow:0 1px 4px rgba(0,0,0,0.065)}.navbar-inner:before,.navbar-inner:after{display:table;line-height:0;content:""}.navbar-inner:after{clear:both}.navbar .container{width:auto}.nav-collapse.collapse{height:auto;overflow:visible}.navbar .brand{display:block;float:left;padding:10px 20px 10px;margin-left:-20px;font-size:20px;font-weight:200;color:#777;text-shadow:0 1px 0 #fff}.navbar .brand:hover,.navbar .brand:focus{text-decoration:none}.navbar-text{margin-bottom:0;line-height:40px;color:#777}.navbar-link{color:#777}.navbar-link:hover,.navbar-link:focus{color:#333}.navbar .divider-vertical{height:40px;margin:0 9px;border-right:1px solid #fff;border-left:1px solid #f2f2f2}.navbar .btn,.navbar .btn-group{margin-top:5px}.navbar .btn-group .btn,.navbar .input-prepend .btn,.navbar .input-append .btn,.navbar .input-prepend .btn-group,.navbar .input-append .btn-group{margin-top:0}.navbar-form{margin-bottom:0;*zoom:1}.navbar-form:before,.navbar-form:after{display:table;line-height:0;content:""}.navbar-form:after{clear:both}.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px}.navbar-form input,.navbar-form select,.navbar-form .btn{display:inline-block;margin-bottom:0}.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px}.navbar-form .input-append,.navbar-form .input-prepend{margin-top:5px;white-space:nowrap}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0}.navbar-search{position:relative;float:left;margin-top:5px;margin-bottom:0}.navbar-search .search-query{padding:4px 14px;margin-bottom:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.navbar-static-top{position:static;margin-bottom:0}.navbar-static-top .navbar-inner{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{border-width:0 0 1px}.navbar-fixed-bottom .navbar-inner{border-width:1px 0 0}.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-right:0;padding-left:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.navbar-static-top .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px}.navbar-fixed-top{top:0}.navbar-fixed-top .navbar-inner,.navbar-static-top .navbar-inner{-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-fixed-bottom{bottom:0}.navbar-fixed-bottom .navbar-inner{-webkit-box-shadow:0 -1px 10px rgba(0,0,0,0.1);-moz-box-shadow:0 -1px 10px rgba(0,0,0,0.1);box-shadow:0 -1px 10px rgba(0,0,0,0.1)}.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0}.navbar .nav.pull-right{float:right;margin-right:0}.navbar .nav>li{float:left}.navbar .nav>li>a{float:none;padding:10px 15px 10px;color:#777;text-decoration:none;text-shadow:0 1px 0 #fff}.navbar .nav .dropdown-toggle .caret{margin-top:8px}.navbar .nav>li>a:focus,.navbar .nav>li>a:hover{color:#333;text-decoration:none;background-color:transparent}.navbar .nav>.active>a,.navbar .nav>.active>a:hover,.navbar .nav>.active>a:focus{color:#555;text-decoration:none;background-color:#e5e5e5;-webkit-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);-moz-box-shadow:inset 0 3px 8px rgba(0,0,0,0.125);box-shadow:inset 0 3px 8px rgba(0,0,0,0.125)}.navbar .btn-navbar{display:none;float:right;padding:7px 10px;margin-right:5px;margin-left:5px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#ededed;*background-color:#e5e5e5;background-image:-moz-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#e5e5e5));background-image:-webkit-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:-o-linear-gradient(top,#f2f2f2,#e5e5e5);background-image:linear-gradient(to bottom,#f2f2f2,#e5e5e5);background-repeat:repeat-x;border-color:#e5e5e5 #e5e5e5 #bfbfbf;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffe5e5e5',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.075)}.navbar .btn-navbar:hover,.navbar .btn-navbar:focus,.navbar .btn-navbar:active,.navbar .btn-navbar.active,.navbar .btn-navbar.disabled,.navbar .btn-navbar[disabled]{color:#fff;background-color:#e5e5e5;*background-color:#d9d9d9}.navbar .btn-navbar:active,.navbar .btn-navbar.active{background-color:#ccc \9}.navbar .btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.25);-moz-box-shadow:0 1px 0 rgba(0,0,0,0.25);box-shadow:0 1px 0 rgba(0,0,0,0.25)}.btn-navbar .icon-bar+.icon-bar{margin-top:3px}.navbar .nav>li>.dropdown-menu:before{position:absolute;top:-7px;left:9px;display:inline-block;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-left:7px solid transparent;border-bottom-color:rgba(0,0,0,0.2);content:''}.navbar .nav>li>.dropdown-menu:after{position:absolute;top:-6px;left:10px;display:inline-block;border-right:6px solid transparent;border-bottom:6px solid #fff;border-left:6px solid transparent;content:''}.navbar-fixed-bottom .nav>li>.dropdown-menu:before{top:auto;bottom:-7px;border-top:7px solid #ccc;border-bottom:0;border-top-color:rgba(0,0,0,0.2)}.navbar-fixed-bottom .nav>li>.dropdown-menu:after{top:auto;bottom:-6px;border-top:6px solid #fff;border-bottom:0}.navbar .nav li.dropdown>a:hover .caret,.navbar .nav li.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar .nav li.dropdown.open>.dropdown-toggle,.navbar .nav li.dropdown.active>.dropdown-toggle,.navbar .nav li.dropdown.open.active>.dropdown-toggle{color:#555;background-color:#e5e5e5}.navbar .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#777;border-bottom-color:#777}.navbar .nav li.dropdown.open>.dropdown-toggle .caret,.navbar .nav li.dropdown.active>.dropdown-toggle .caret,.navbar .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#555;border-bottom-color:#555}.navbar .pull-right>li>.dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar .pull-right>li>.dropdown-menu:before,.navbar .nav>li>.dropdown-menu.pull-right:before{right:12px;left:auto}.navbar .pull-right>li>.dropdown-menu:after,.navbar .nav>li>.dropdown-menu.pull-right:after{right:13px;left:auto}.navbar .pull-right>li>.dropdown-menu .dropdown-menu,.navbar .nav>li>.dropdown-menu.pull-right .dropdown-menu{right:100%;left:auto;margin-right:-1px;margin-left:0;-webkit-border-radius:6px 0 6px 6px;-moz-border-radius:6px 0 6px 6px;border-radius:6px 0 6px 6px}.navbar-inverse .navbar-inner{background-color:#1b1b1b;background-image:-moz-linear-gradient(top,#222,#111);background-image:-webkit-gradient(linear,0 0,0 100%,from(#222),to(#111));background-image:-webkit-linear-gradient(top,#222,#111);background-image:-o-linear-gradient(top,#222,#111);background-image:linear-gradient(to bottom,#222,#111);background-repeat:repeat-x;border-color:#252525;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222',endColorstr='#ff111111',GradientType=0)}.navbar-inverse .brand,.navbar-inverse .nav>li>a{color:#999;text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-inverse .brand:hover,.navbar-inverse .nav>li>a:hover,.navbar-inverse .brand:focus,.navbar-inverse .nav>li>a:focus{color:#fff}.navbar-inverse .brand{color:#999}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .nav>li>a:focus,.navbar-inverse .nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .nav .active>a,.navbar-inverse .nav .active>a:hover,.navbar-inverse .nav .active>a:focus{color:#fff;background-color:#111}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover,.navbar-inverse .navbar-link:focus{color:#fff}.navbar-inverse .divider-vertical{border-right-color:#222;border-left-color:#111}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle{color:#fff;background-color:#111}.navbar-inverse .nav li.dropdown>a:hover .caret,.navbar-inverse .nav li.dropdown>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .nav li.dropdown>.dropdown-toggle .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .nav li.dropdown.open>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.active>.dropdown-toggle .caret,.navbar-inverse .nav li.dropdown.open.active>.dropdown-toggle .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-search .search-query{color:#fff;background-color:#515151;border-color:#111;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 1px 0 rgba(255,255,255,0.15);-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.navbar-inverse .navbar-search .search-query:-moz-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:-ms-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder{color:#ccc}.navbar-inverse .navbar-search .search-query:focus,.navbar-inverse .navbar-search .search-query.focused{padding:5px 15px;color:#333;text-shadow:0 1px 0 #fff;background-color:#fff;border:0;outline:0;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.15);-moz-box-shadow:0 0 3px rgba(0,0,0,0.15);box-shadow:0 0 3px rgba(0,0,0,0.15)}.navbar-inverse .btn-navbar{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e0e0e;*background-color:#040404;background-image:-moz-linear-gradient(top,#151515,#040404);background-image:-webkit-gradient(linear,0 0,0 100%,from(#151515),to(#040404));background-image:-webkit-linear-gradient(top,#151515,#040404);background-image:-o-linear-gradient(top,#151515,#040404);background-image:linear-gradient(to bottom,#151515,#040404);background-repeat:repeat-x;border-color:#040404 #040404 #000;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515',endColorstr='#ff040404',GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .btn-navbar:hover,.navbar-inverse .btn-navbar:focus,.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active,.navbar-inverse .btn-navbar.disabled,.navbar-inverse .btn-navbar[disabled]{color:#fff;background-color:#040404;*background-color:#000}.navbar-inverse .btn-navbar:active,.navbar-inverse .btn-navbar.active{background-color:#000 \9}.breadcrumb{padding:8px 15px;margin:0 0 20px;list-style:none;background-color:#f5f5f5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.breadcrumb>li{display:inline-block;*display:inline;text-shadow:0 1px 0 #fff;*zoom:1}.breadcrumb>li>.divider{padding:0 5px;color:#ccc}.breadcrumb>.active{color:#999}.pagination{margin:20px 0}.pagination ul{display:inline-block;*display:inline;margin-bottom:0;margin-left:0;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*zoom:1;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.pagination ul>li{display:inline}.pagination ul>li>a,.pagination ul>li>span{float:left;padding:4px 12px;line-height:20px;text-decoration:none;background-color:#fff;border:1px solid #ddd;border-left-width:0}.pagination ul>li>a:hover,.pagination ul>li>a:focus,.pagination ul>.active>a,.pagination ul>.active>span{background-color:#f5f5f5}.pagination ul>.active>a,.pagination ul>.active>span{color:#999;cursor:default}.pagination ul>.disabled>span,.pagination ul>.disabled>a,.pagination ul>.disabled>a:hover,.pagination ul>.disabled>a:focus{color:#999;cursor:default;background-color:transparent}.pagination ul>li:first-child>a,.pagination ul>li:first-child>span{border-left-width:1px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius-topleft:4px}.pagination ul>li:last-child>a,.pagination ul>li:last-child>span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px;-moz-border-radius-topright:4px;-moz-border-radius-bottomright:4px}.pagination-centered{text-align:center}.pagination-right{text-align:right}.pagination-large ul>li>a,.pagination-large ul>li>span{padding:11px 19px;font-size:17.5px}.pagination-large ul>li:first-child>a,.pagination-large ul>li:first-child>span{-webkit-border-bottom-left-radius:6px;border-bottom-left-radius:6px;-webkit-border-top-left-radius:6px;border-top-left-radius:6px;-moz-border-radius-bottomleft:6px;-moz-border-radius-topleft:6px}.pagination-large ul>li:last-child>a,.pagination-large ul>li:last-child>span{-webkit-border-top-right-radius:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;border-bottom-right-radius:6px;-moz-border-radius-topright:6px;-moz-border-radius-bottomright:6px}.pagination-mini ul>li:first-child>a,.pagination-small ul>li:first-child>a,.pagination-mini ul>li:first-child>span,.pagination-small ul>li:first-child>span{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-moz-border-radius-bottomleft:3px;-moz-border-radius-topleft:3px}.pagination-mini ul>li:last-child>a,.pagination-small ul>li:last-child>a,.pagination-mini ul>li:last-child>span,.pagination-small ul>li:last-child>span{-webkit-border-top-right-radius:3px;border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px;-moz-border-radius-topright:3px;-moz-border-radius-bottomright:3px}.pagination-small ul>li>a,.pagination-small ul>li>span{padding:2px 10px;font-size:11.9px}.pagination-mini ul>li>a,.pagination-mini ul>li>span{padding:0 6px;font-size:10.5px}.pager{margin:20px 0;text-align:center;list-style:none;*zoom:1}.pager:before,.pager:after{display:table;line-height:0;content:""}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#f5f5f5}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:default;background-color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop,.modal-backdrop.fade.in{opacity:.8;filter:alpha(opacity=80)}.modal{position:fixed;top:10%;left:50%;z-index:1050;width:560px;margin-left:-280px;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;outline:0;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box}.modal.fade{top:-25%;-webkit-transition:opacity .3s linear,top .3s ease-out;-moz-transition:opacity .3s linear,top .3s ease-out;-o-transition:opacity .3s linear,top .3s ease-out;transition:opacity .3s linear,top .3s ease-out}.modal.fade.in{top:10%}.modal-header{padding:9px 15px;border-bottom:1px solid #eee}.modal-header .close{margin-top:2px}.modal-header h3{margin:0;line-height:30px}.modal-body{position:relative;max-height:400px;padding:15px;overflow-y:auto}.modal-form{margin-bottom:0}.modal-footer{padding:14px 15px 15px;margin-bottom:0;text-align:right;background-color:#f5f5f5;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.modal-footer:before,.modal-footer:after{display:table;line-height:0;content:""}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.tooltip{position:absolute;z-index:1030;display:block;font-size:11px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.8;filter:alpha(opacity=80)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.popover-title:empty{display:none}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0}.thumbnails{margin-left:-20px;list-style:none;*zoom:1}.thumbnails:before,.thumbnails:after{display:table;line-height:0;content:""}.thumbnails:after{clear:both}.row-fluid .thumbnails{margin-left:0}.thumbnails>li{float:left;margin-bottom:20px;margin-left:20px}.thumbnail{display:block;padding:4px;line-height:20px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.055);-moz-box-shadow:0 1px 3px rgba(0,0,0,0.055);box-shadow:0 1px 3px rgba(0,0,0,0.055);-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}a.thumbnail:hover,a.thumbnail:focus{border-color:#08c;-webkit-box-shadow:0 1px 4px rgba(0,105,214,0.25);-moz-box-shadow:0 1px 4px rgba(0,105,214,0.25);box-shadow:0 1px 4px rgba(0,105,214,0.25)}.thumbnail>img{display:block;max-width:100%;margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#555}.media,.media-body{overflow:hidden;*overflow:visible;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{margin-left:0;list-style:none}.label,.badge{display:inline-block;padding:2px 4px;font-size:11.844px;font-weight:bold;line-height:14px;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.25);white-space:nowrap;vertical-align:baseline;background-color:#999}.label{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.badge{padding-right:9px;padding-left:9px;-webkit-border-radius:9px;-moz-border-radius:9px;border-radius:9px}.label:empty,.badge:empty{display:none}a.label:hover,a.label:focus,a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.label-important,.badge-important{background-color:#b94a48}.label-important[href],.badge-important[href]{background-color:#953b39}.label-warning,.badge-warning{background-color:#f89406}.label-warning[href],.badge-warning[href]{background-color:#c67605}.label-success,.badge-success{background-color:#468847}.label-success[href],.badge-success[href]{background-color:#356635}.label-info,.badge-info{background-color:#3a87ad}.label-info[href],.badge-info[href]{background-color:#2d6987}.label-inverse,.badge-inverse{background-color:#333}.label-inverse[href],.badge-inverse[href]{background-color:#1a1a1a}.btn .label,.btn .badge{position:relative;top:-1px}.btn-mini .label,.btn-mini .badge{top:0}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-ms-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f7f7f7;background-image:-moz-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(top,#f5f5f5,#f9f9f9);background-image:linear-gradient(to bottom,#f5f5f5,#f9f9f9);background-repeat:repeat-x;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);-moz-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress .bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;text-shadow:0 -1px 0 rgba(0,0,0,0.25);background-color:#0e90d2;background-image:-moz-linear-gradient(top,#149bdf,#0480be);background-image:-webkit-gradient(linear,0 0,0 100%,from(#149bdf),to(#0480be));background-image:-webkit-linear-gradient(top,#149bdf,#0480be);background-image:-o-linear-gradient(top,#149bdf,#0480be);background-image:linear-gradient(to bottom,#149bdf,#0480be);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:width .6s ease;-moz-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress .bar+.bar{-webkit-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);-moz-box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 1px 0 0 rgba(0,0,0,0.15),inset 0 -1px 0 rgba(0,0,0,0.15)}.progress-striped .bar{background-color:#149bdf;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;-moz-background-size:40px 40px;-o-background-size:40px 40px;background-size:40px 40px}.progress.active .bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-danger .bar,.progress .bar-danger{background-color:#dd514c;background-image:-moz-linear-gradient(top,#ee5f5b,#c43c35);background-image:-webkit-gradient(linear,0 0,0 100%,from(#ee5f5b),to(#c43c35));background-image:-webkit-linear-gradient(top,#ee5f5b,#c43c35);background-image:-o-linear-gradient(top,#ee5f5b,#c43c35);background-image:linear-gradient(to bottom,#ee5f5b,#c43c35);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b',endColorstr='#ffc43c35',GradientType=0)}.progress-danger.progress-striped .bar,.progress-striped .bar-danger{background-color:#ee5f5b;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-success .bar,.progress .bar-success{background-color:#5eb95e;background-image:-moz-linear-gradient(top,#62c462,#57a957);background-image:-webkit-gradient(linear,0 0,0 100%,from(#62c462),to(#57a957));background-image:-webkit-linear-gradient(top,#62c462,#57a957);background-image:-o-linear-gradient(top,#62c462,#57a957);background-image:linear-gradient(to bottom,#62c462,#57a957);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462',endColorstr='#ff57a957',GradientType=0)}.progress-success.progress-striped .bar,.progress-striped .bar-success{background-color:#62c462;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-info .bar,.progress .bar-info{background-color:#4bb1cf;background-image:-moz-linear-gradient(top,#5bc0de,#339bb9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#5bc0de),to(#339bb9));background-image:-webkit-linear-gradient(top,#5bc0de,#339bb9);background-image:-o-linear-gradient(top,#5bc0de,#339bb9);background-image:linear-gradient(to bottom,#5bc0de,#339bb9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de',endColorstr='#ff339bb9',GradientType=0)}.progress-info.progress-striped .bar,.progress-striped .bar-info{background-color:#5bc0de;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-warning .bar,.progress .bar-warning{background-color:#faa732;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fbb450),to(#f89406));background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450',endColorstr='#fff89406',GradientType=0)}.progress-warning.progress-striped .bar,.progress-striped .bar-warning{background-color:#fbb450;background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.accordion{margin-bottom:20px}.accordion-group{margin-bottom:2px;border:1px solid #e5e5e5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.accordion-heading{border-bottom:0}.accordion-heading .accordion-toggle{display:block;padding:8px 15px}.accordion-toggle{cursor:pointer}.accordion-inner{padding:9px 15px;border-top:1px solid #e5e5e5}.carousel{position:relative;margin-bottom:20px;line-height:1}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-moz-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:40%;left:15px;width:40px;height:40px;margin-top:-20px;font-size:60px;font-weight:100;line-height:30px;color:#fff;text-align:center;background:#222;border:3px solid #fff;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:.5;filter:alpha(opacity=50)}.carousel-control.right{right:15px;left:auto}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-indicators{position:absolute;top:15px;right:15px;z-index:5;margin:0;list-style:none}.carousel-indicators li{display:block;float:left;width:10px;height:10px;margin-left:5px;text-indent:-999px;background-color:#ccc;background-color:rgba(255,255,255,0.25);border-radius:5px}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:0;bottom:0;left:0;padding:15px;background:#333;background:rgba(0,0,0,0.75)}.carousel-caption h4,.carousel-caption p{line-height:20px;color:#fff}.carousel-caption h4{margin:0 0 5px}.carousel-caption p{margin-bottom:0}.hero-unit{padding:60px;margin-bottom:30px;font-size:18px;font-weight:200;line-height:30px;color:inherit;background-color:#eee;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px}.hero-unit h1{margin-bottom:0;font-size:60px;line-height:1;letter-spacing:-1px;color:inherit}.hero-unit li{line-height:30px}.pull-right{float:right}.pull-left{float:left}.hide{display:none}.show{display:block}.invisible{visibility:hidden}.affix{position:fixed} diff --git a/src/main/webapp/ClipReport4/css/clipreport.css b/src/main/webapp/ClipReport4/css/clipreport.css new file mode 100644 index 0000000..26dbe3d --- /dev/null +++ b/src/main/webapp/ClipReport4/css/clipreport.css @@ -0,0 +1,1016 @@ +@CHARSET "UTF-8"; + +/* +웹 접근성 관련 주석처리(focus rect) +input:focus, button:focus, select:focus{ + outline: none; +} +*/ + +/*뷰어 메뉴*/ +.report_menu_div { + position: absolute; + top: 0px; + width: 100%; + height: 65px; + overflow: visible; + background-color: #fff; + background-position: 5px 50%; + background-repeat: no-repeat; + -webkit-user-select: none; /* webkit (safari, chrome) browsers */ + -moz-user-select: none; /* mozilla browsers */ + -khtml-user-select: none; /* webkit (konqueror) browsers */ + -ms-user-select: none; /* IE10+ */ +} + +/*리포트 배경*/ +.report_paint_div { + position: absolute; + top: 65px; + width: 100%; + bottom: 0px; + border: 1px solid silver; + background-color: #eee; + overflow: auto; + text-align: center; +} + +/*리포트 프로그래스*/ +.report_progress { + background-repeat: no-repeat; + background-position: 50% 30%; + background-image: url(../img/deploying.gif); +} + +.report_menu_table { + position: absolute; + left: 0px; + height: 100%; + width: 100%; + border: 1px solid silver; + text-align: right; +} + +.report_menu_table_td { + border: 0px solid silver; + text-align: left; +} + +.report_menu_table_td_div { + position: relative; + height: 30px; + width: 100%; + font-size: 10pt; +} + + +/*메뉴에 존재하는 버튼 공통 디자인*/ +.report_menu_button { + position: absolute; + width: 35px; + height: 35px; + background-size: contain; + border: 0px solid #FFFFFF; + background-color: transparent; + cursor: pointer; +} +/*마우스 오버 됐을 때 디자인*/ +.report_menu_button:hover{ + background-repeat: no-repeat; +} + +/*저장 버튼*/ +.report_menu_save_button { + left: 7px; +} + +.report_menu_save_button:hover { +/* + width: 37px; + height: 37px; + */ +} + +.report_menu_save_button_svg { + background-image: url(../img/save.svg); +} + +.report_menu_save_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/save.svg); +} + +.report_menu_save_button_svg:hover { + background-image: url(../img/over/save.svg); +} + +.report_menu_save_button_png { + background-image: url(../img/PNG/save.png); +} + +.report_menu_save_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/save.png); +} + +.report_menu_save_button_png:hover { + background-image: url(../img/PNG/over/save.png); +} + +/*프린트 버튼*/ +.report_menu_print_button { + /*left:55px;*/ + left: 234px; +} + +.report_menu_print_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_print_button_svg { + background-image: url(../img/print.svg); +} + +.report_menu_print_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/print.svg); +} + +.report_menu_print_button_svg:hover { + background-image: url(../img/over/print.svg); +} + +.report_menu_print_button_png { + background-image: url(../img/PNG/print.png); +} + +.report_menu_print_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/print.png); +} + +.report_menu_print_button_png:hover { + background-image: url(../img/PNG/over/print.png); +} + +/*첫페이지 이동 버튼*/ +.report_menu_leftEnd_button { + /*left:85px;*/ + left: 320px; +} + +.report_menu_leftEnd_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_leftEnd_button_svg { + background-image: url(../img/leftEnd.svg); +} + +.report_menu_leftEnd_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/leftEnd.svg); +} + +.report_menu_leftEnd_button_svg:hover { + background-image: url(../img/over/leftEnd.svg); +} + +.report_menu_leftEnd_button_png { + background-image: url(../img/PNG/leftEnd.png); +} + +.report_menu_leftEnd_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/leftEnd.png); +} + +.report_menu_leftEnd_button_png:hover { + background-image: url(../img/PNG/over/leftEnd.png); +} + +/*이전페이지 이동 버튼*/ +.report_menu_left_button { + left: 358px; +} + +.report_menu_left_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_left_button_svg { + background-image: url(../img/left.svg); +} + +.report_menu_left_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/left.svg); +} + +.report_menu_left_button_svg:hover { + background-image: url(../img/over/left.svg); +} + +.report_menu_left_button_png { + background-image: url(../img/PNG/left.png); +} + +.report_menu_left_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/left.png); +} + +.report_menu_left_button_png:hover { + background-image: url(../img/PNG/over/left.png); +} + +/*다음 페이지 이동 버튼*/ +.report_menu_right_button { + /*left:240px;*/ + left: 502px; +} + +.report_menu_right_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_right_button_svg { + background-image: url(../img/right.svg); +} + +.report_menu_right_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/right.svg); +} + +.report_menu_right_button_svg:hover { + background-image: url(../img/over/right.svg); +} + +.report_menu_right_button_png { + background-image: url(../img/PNG/right.png); +} + +.report_menu_right_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/right.png); +} + +.report_menu_right_button_png:hover { + background-image: url(../img/PNG/over/right.png); +} + +/*마지막 페이지 이동 버튼*/ +.report_menu_rightEnd_button { + /*left:265px;*/ + left: 540px; +} + +.report_menu_rightEnd_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_rightEnd_button_svg { + background-image: url(../img/rightEnd.svg); +} + +.report_menu_rightEnd_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/rightEnd.svg); +} + +.report_menu_rightEnd_button_svg:hover { + background-image: url(../img/over/rightEnd.svg); +} + +.report_menu_rightEnd_button_png { + background-image: url(../img/PNG/rightEnd.png); +} + +.report_menu_rightEnd_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/rightEnd.png); +} + +.report_menu_rightEnd_button_png:hover { + background-image: url(../img/PNG/over/rightEnd.png); +} + +/*pdf 다운로드 버튼*/ +.report_menu_pdf_button { + /*left:480px;*/ + left: 50px; +} + +.report_menu_pdf_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_pdf_button_svg { + background-image: url(../img/pdf.svg); +} + +.report_menu_pdf_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/pdf.svg); +} + +.report_menu_pdf_button_svg:hover { + background-image: url(../img/over/pdf.svg); +} + +.report_menu_pdf_button_png { + background-image: url(../img/PNG/pdf.png); +} + +.report_menu_pdf_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/pdf.png); +} + +.report_menu_pdf_button_png:hover { + background-image: url(../img/PNG/over/pdf.png); +} + +/*엑셀 다운로드 버튼*/ +.report_menu_excel_button { + /*left:505px;*/ + left: 90px; +} + +.report_menu_excel_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_excel_button_svg { + background-image: url(../img/excel.svg); +} + +.report_menu_excel_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/excel.svg); +} + +.report_menu_excel_button_svg:hover { + background-image: url(../img/over/excel.svg); +} + +.report_menu_excel_button_png { + background-image: url(../img/PNG/excel.png); +} + +.report_menu_excel_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/excel.png); +} + +.report_menu_excel_button_png:hover { + background-image: url(../img/PNG/over/excel.png); +} + +/*한글 다운로드 버튼*/ +.report_menu_hwp_button { + /*left:530px;*/ + left: 130px; +} + +.report_menu_hwp_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_hwp_button_svg { + background-image: url(../img/hwp.svg); +} + +.report_menu_hwp_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/hwp.svg); +} + +.report_menu_hwp_button_svg:hover { + background-image: url(../img/over/hwp.svg); +} + +.report_menu_hwp_button_png { + background-image: url(../img/PNG/hwp.png); +} + +.report_menu_hwp_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/hwp.png); +} + +.report_menu_hwp_button_png:hover { + background-image: url(../img/PNG/over/hwp.png); +} + +/*DOC 다운로드 버튼*/ +.report_menu_doc_button { + /*left:530px;*/ + left: 170px; + display:none; +} + +.report_menu_doc_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_doc_button_svg { + background-image: url(../img/doc.svg); +} + +.report_menu_doc_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/doc.svg); +} + +.report_menu_doc_button_svg:hover { + background-image: url(../img/over/pdf.svg); +} + +.report_menu_doc_button_png { + background-image: url(../img/PNG/doc.png); +} + +.report_menu_doc_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/doc.png); +} + +.report_menu_doc_button_png:hover { + background-image: url(../img/PNG/over/pdf.png); +} + + +/*리포트 정보 버튼*/ +.report_menu_reportInfo_button { + /*left:555px;*/ + left: 765px; +} + +.report_menu_reportInfo_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_reportInfo_button_svg { + background-image: url(../img/info.svg); +} + +.report_menu_reportInfo_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/info.svg); +} + +.report_menu_reportInfo_button_svg:hover { + background-image: url(../img/over/info.svg); +} + +.report_menu_reportInfo_button_png { + background-image: url(../img/PNG/info.png); +} + +.report_menu_reportInfo_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/info.png); +} + +.report_menu_reportInfo_button_png:hover { + background-image: url(../img/PNG/over/info.png); +} + +/*리포트 닫기 버튼*/ +.report_menu_close_button { + right: 10px; +} + +.report_menu_close_button:hover { +/* + width: 37px; + height: 37px; + */ +} + +.report_menu_close_button_svg { + background-image: url(../img/close.svg); +} + +.report_menu_close_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/close.svg); +} + +.report_menu_close_button_svg:hover { + background-image: url(../img/over/close.svg); +} + +.report_menu_close_button_png { + background-image: url(../img/PNG/close.png); +} + +.report_menu_close_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/close.png); +} + +.report_menu_close_button_png:hover { + background-image: url(../img/PNG/over/close.png); +} + +/*현재 페이지 입력창*/ +.report_menu_pageCount_input { + position: absolute; + /*left:135px;*/ + left: 400px; + width: 46px; + height: 30px; + line-height: 30px; + border: 1px solid #ccc; + border-right-width: 0px !important; + border-right-style: none !important; + padding-top: 0px; + padding-bottom: 0px; + font-size: 12px; +} + +/*총 페이지 표시 라벨*/ +.report_menu_pageCount_span { + position: absolute; + /*left:185px;*/ + left: 445px; + width: 50px; + height: 30px; + line-height: 30px; + border: 1px solid #ccc; + padding-top: 0px; + padding-bottom: 0px; + font-size: 12px; +} + +/*화면비율 선택 콤보창*/ +.report_menu_zoom_combo { + position: absolute; + /*left:315px;*/ + left: 600px; + height: 30px !important; + line-height: 30px; + width: 150px; +} + +.report_menu_zoom_combo_option { + +} + +/*뷰어의 모든 안내창을 감싸고 있는 DIV*/ +.report_popup_view { + position:relative; + left:0px; + top:0px; + right:0px; + bottom:0px; + zoom:1; + z-index:100; +} + + +/*뷰어 내부 안내창 공통 스타일*/ +.report_view_box { + background-color: #FDFDFD; + font-size: 9pt; + font-family: 나눔고딕; + border: 2px solid gray; +} + +/*뷰어 내부 안내창 공통 버튼 스타일*/ +.report_view_button { + position: absolute; + background-color: RGB(89, 89, 89); + border: 1px solid darkolivegreen; + color: white; + font-weight: weight; +} + +/*리포트 정보창 위치 정보*/ +.report_info_view_position { + position: absolute; + right: 23px; + top: 80px; + width: 440px; + height: 260px; +} + +/*인쇄창 위치 정보*/ +.report_print_view_position { + position: absolute; + left: 15px; + top: 80px; + width: 350px; + height: 260px; +} + +/*저장옵션 창 위치 정보*/ +.report_save_view_position { + position: absolute; + left: 15px; + top: 80px; + width: 350px; + height: 350px; +} + +/*한글 저장 옵션 창 위치 정보*/ +.report_saveHWP_view_position { + position: absolute; + left: 370px; + top: 80px; + width: 260px; + height: 390px; +} + +/*RTF 저장 옵션 창 위치 정보*/ +.report_saveRTF_view_position { + position: absolute; + left: 370px; + top: 80px; + width: 280px; + height: 220px; +} + +/*엑셀 저장 옵션 창 위치 정보*/ +.report_saveExcel_view_position { + position: absolute; + left: 370px; + top: 80px; + width: 300px; + height: 450px; +} +/*html 저장 옵션 창 위치 정보*/ +.report_saveHtml_view_position { + position: absolute; + left: 370px; + top: 80px; + width: 280px; + height: 360px; +} +/*PDF 저장 옵션 창 위치 정보*/ +.report_savePDF_view_position { + position: absolute; + left: 370px; + top: 80px; + width: 280px; + height: 180px; +} + +/*JPG 저장 옵션 창 위치 정보*/ +.report_saveJPG_view_position { + position: absolute; + left: 370px; + top: 80px; + width: 280px; + height: 180px; +} + +/*PPT 저장 옵션 창 위치 정보*/ +.report_savePPT_view_position { + position: absolute; + left: 370px; + top: 80px; + width: 280px; + height: 120px; +} + +/*pdf reader9버전 사용 안내창 위치 정보*/ +.report_Ex_reader9 { + position: absolute; + left: 70px; + top: 80px; + width: 350px; + height: 250px; +} + +/*pdf reader 가 없을 경우 안내창 위치 정보*/ +.report_Ex_NOTReader { + position: absolute; + left: 70px; + top: 80px; + width: 350px; + height: 250px; +} + +/*팝업 인쇄 안내창 위치 정보*/ +.report_Ex_popPrint { + position: absolute; + left: 70px; + top: 80px; + width: 350px; + height: 150px; +} + +/*제한된 프린트 안내창 위치 정보*/ +.report_Ex_limitPrint { + position: absolute; + left: 70px; + top: 80px; + width: 350px; + height: 150px; +} + +/*HTML 인쇄 안내창 위치 정보*/ +.report_Ex_popHTMLPrint { + position: absolute; + left: 70px; + top: 80px; + width: 370px; + height: 150px; +} + +.report_view_cliplogo { + background-repeat: no-repeat; + background-position: center center; + background-image: url(../img/cliplogo.png); +} + +.report_menu_progress { + position: absolute; + top: 6px; + right: 0px; + width: 16px; + height: 16px; +} + +.mobile_menu_div { + position: absolute; + top: 0px; + width: 100%; + height: 50px; + overflow: visible; + background-color: #fff; +} + +.mobile_paint_div { + position: absolute; + top: 50px; + width: 100%; + bottom: 0px; + border: 1px solid silver; + background-color: #EEE; + overflow:scroll; + text-align: center; + -webkit-overflow-scrolling: touch; +} + +.mobile_menu_table_td_div { + position: relative; + height: 40px; + width: 100%; + font-size: 10pt; +} + +.mobile_menu_button { + position: absolute; + width: 40px; + height: 40px; + background-size: contain; + border: 0px none; + background-color: transparent; +} + +.mobile_input_table { + position: absolute; + left: 195px; + height: 40px; + width: 140px; +} + +.mobile_input_table_td_input { + background-color: #FFFFFF; + width: 60px; +} + +.mobile_input_table_td { + width: 80px; +} + +.mobile_menu_print_button { + left: 15px; + background-image: url(../img/over/save.svg); +} +.mobile_menu_dis_print_button { + left: 15px; + cursor:not-allowed; + background-image: url(../img/dis/save.svg); +} + +.mobile_menu_leftEnd_button { + left: 95px; + background-image: url(../img/over/leftEnd.svg); +} + +.mobile_menu_dis_leftEnd_button { + left: 95px; + cursor:not-allowed; + background-image: url(../img/dis/leftEnd.svg); +} + +.mobile_menu_left_button { + left: 145px; + background-image: url(../img/over/left.svg); +} + +.mobile_menu_dis_left_button { + left: 145px; + cursor:not-allowed; + background-image: url(../img/dis/left.svg); +} + +.mobile_menu_right_button { + left: 345px; + background-image: url(../img/over/right.svg); +} + +.mobile_menu_dis_right_button{ + left: 345px; + cursor:not-allowed; + background-image: url(../img/dis/right.svg); +} + +.mobile_menu_rightEnd_button { + left: 395px; + background-image: url(../img/over/rightEnd.svg); +} + +.mobile_menu_dis_rightEnd_button { + left: 395px; + cursor:not-allowed; + background-image: url(../img/dis/rightEnd.svg); +} + +.mobile_menu_close_button { + right: 25px; + background-image: url(../img/over/close.svg); +} + +.mobile_menu_dis_close_button { + right: 25px; + cursor:not-allowed; + background-image: url(../img/dis/close.svg); +} + +.mobile_menu_zoom_combo { + position: absolute; + left: 455px; + height: 40px; + width: 150px; + font-size: 14pt; +} + +.mobile_menu_pageCount_input { + position: relative; + left: 0px; + width: 55px; + height: 30px; + line-height: 30px; + padding-top: 0px; + padding-bottom: 0px; + border: 0px none; + background: transparent; + font-size: 14pt; +} + +.mobile_menu_pageCount_span { + position: relative; + left: 0px; + width: 75px; + height: 30px; + height: 30px; + line-height: 30px; + padding-top: 0px; + padding-bottom: 0px; + border: 0px none; + background: transparent; + font-size: 14pt; +} + +.mobile_menu_progress { + position: absolute; + right: 5px; + width: 16px; + height: 16px; +} + +.mRe_focus:focus{ + filter:alpha(opacity=100) !important; + opacity:100 !important; +} + + +/*사인컨트롤 전체 배경*/ +.report_sign_div{ + border:3px RGB(53,105,180) solid; + background-image:url(../img/tile.jpg); + background-repeat:repeat; +} + +/*사인컨트롤 그리는 영역*/ +.report_sign_paint{ + position:absolute; + left:25px; + top:25px; + right:25px; + bottom:85px; + background-color:white; + border:2px darkgray solid; + border-radius: 4px; +} + +/*사인컨트롤 메뉴*/ +.report_sign_menu{ + position:absolute; + left:0px; + bottom:25px; + right:0px; + height:35px; +} + +/*사인컨트롤 버튼 공통*/ +.report_sign_button{ + width:100px; + height:35px; + border-radius: 4px; + color:white; + font-size:10pt; + font-weight:bold; +} + +/*사인컨트롤 버튼 확인*/ +.report_sign_save{ + border:1px RGB(33,133,218) solid; + background-color:RGB(33,133,218); +} + +/*사인컨트롤 버튼 초기화*/ +.report_sign_reset{ + border:1px RGB(33,133,218) solid; + background-color:RGB(33,133,218); +} + +/*사인컨트롤 버튼 취소*/ +.report_sign_cancel{ + border:1px RGB(69,89,100) solid; + background-color:RGB(69,89,100); +} + +.report_text_renA{ + text-rendering: geometricPrecision; +} + + +.report_pageMoveLeft{ + position:absolute; + left:10px; + width:50px; + height:50px; + background-image:url(../img/eform/shiftLeft.png); + border-radius:100%; + opacity:0.65; + z-index:500; +} + +.report_pageMoveRight{ + position:absolute; + right:10px; + width:50px; + height:50px; + background-image:url(../img/eform/shiftRight.png); + border-radius:100%; + opacity:0.65; + z-index:500; +} diff --git a/src/main/webapp/ClipReport4/css/clipreport_png.css b/src/main/webapp/ClipReport4/css/clipreport_png.css new file mode 100644 index 0000000..b1c6f5f --- /dev/null +++ b/src/main/webapp/ClipReport4/css/clipreport_png.css @@ -0,0 +1,1012 @@ +@CHARSET "UTF-8"; + +/* +웹 접근성 관련 주석처리(focus rect) +input:focus, button:focus, select:focus{ + outline: none; +} +*/ + +/*뷰어 메뉴*/ +.report_menu_div { + position: absolute; + top: 0px; + width: 100%; + height: 65px; + overflow: visible; + background-color: #fff; + background-position: 5px 50%; + background-repeat: no-repeat; + -webkit-user-select: none; /* webkit (safari, chrome) browsers */ + -moz-user-select: none; /* mozilla browsers */ + -khtml-user-select: none; /* webkit (konqueror) browsers */ + -ms-user-select: none; /* IE10+ */ +} + +/*리포트 배경*/ +.report_paint_div { + position: absolute; + top: 65px; + width: 100%; + bottom: 0px; + border: 1px solid silver; + background-color: #eee; + overflow: auto; + text-align: center; +} + +/*리포트 프로그래스*/ +.report_progress { + background-repeat: no-repeat; + background-position: 50% 30%; + background-image: url(../img/deploying.gif); +} + +.report_menu_table { + position: absolute; + left: 0px; + height: 100%; + width: 100%; + border: 1px solid silver; + text-align: right; +} + +.report_menu_table_td { + border: 0px solid silver; + text-align: left; +} + +.report_menu_table_td_div { + position: relative; + height: 30px; + width: 100%; + font-size: 10pt; +} + + +/*메뉴에 존재하는 버튼 공통 디자인*/ +.report_menu_button { + position: absolute; + width: 35px; + height: 35px; + background-size: contain; + border: 0px solid #FFFFFF; + background-color: transparent; + cursor: pointer; +} +/*마우스 오버 됐을 때 디자인*/ +.report_menu_button:hover{ + background-repeat: no-repeat; +} + +/*저장 버튼*/ +.report_menu_save_button { + left: 7px; +} + +.report_menu_save_button:hover { +/* + width: 37px; + height: 37px; + */ +} + +.report_menu_save_button_svg { + background-image: url(../img/PNG/save.png); +} + +.report_menu_save_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/save.png); +} + +.report_menu_save_button_svg:hover { + background-image: url(../img/PNG/over/save.png); +} + +.report_menu_save_button_png { + background-image: url(../img/PNG/save.png); +} + +.report_menu_save_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/save.png); +} + +.report_menu_save_button_png:hover { + background-image: url(../img/PNG/over/save.png); +} + +/*프린트 버튼*/ +.report_menu_print_button { + /*left:55px;*/ + left: 234px; +} + +.report_menu_print_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_print_button_svg { + background-image: url(../img/PNG/print.png); +} + +.report_menu_print_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/print.png); +} + +.report_menu_print_button_svg:hover { + background-image: url(../img/PNG/over/print.png); +} + +.report_menu_print_button_png { + background-image: url(../img/PNG/print.png); +} + +.report_menu_print_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/print.png); +} + +.report_menu_print_button_png:hover { + background-image: url(../img/PNG/over/print.png); +} + +/*첫페이지 이동 버튼*/ +.report_menu_leftEnd_button { + /*left:85px;*/ + left: 320px; +} + +.report_menu_leftEnd_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_leftEnd_button_svg { + background-image: url(../img/PNG/leftEnd.png); +} + +.report_menu_leftEnd_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/leftEnd.png); +} + +.report_menu_leftEnd_button_svg:hover { + background-image: url(../img/PNG/over/leftEnd.png); +} + +.report_menu_leftEnd_button_png { + background-image: url(../img/PNG/leftEnd.png); +} + +.report_menu_leftEnd_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/leftEnd.png); +} + +.report_menu_leftEnd_button_png:hover { + background-image: url(../img/PNG/over/leftEnd.png); +} + +/*이전페이지 이동 버튼*/ +.report_menu_left_button { + left: 358px; +} + +.report_menu_left_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_left_button_svg { + background-image: url(../img/PNG/left.png); +} + +.report_menu_left_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/left.png); +} + +.report_menu_left_button_svg:hover { + background-image: url(../img/PNG/over/left.png); +} + +.report_menu_left_button_png { + background-image: url(../img/PNG/left.png); +} + +.report_menu_left_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/left.png); +} + +.report_menu_left_button_png:hover { + background-image: url(../img/PNG/over/left.png); +} + +/*다음 페이지 이동 버튼*/ +.report_menu_right_button { + /*left:240px;*/ + left: 502px; +} + +.report_menu_right_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_right_button_svg { + background-image: url(../img/PNG/right.png); +} + +.report_menu_right_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/right.png); +} + +.report_menu_right_button_svg:hover { + background-image: url(../img/PNG/over/right.png); +} + +.report_menu_right_button_png { + background-image: url(../img/PNG/right.png); +} + +.report_menu_right_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/right.png); +} + +.report_menu_right_button_png:hover { + background-image: url(../img/PNG/over/right.png); +} + +/*마지막 페이지 이동 버튼*/ +.report_menu_rightEnd_button { + /*left:265px;*/ + left: 540px; +} + +.report_menu_rightEnd_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_rightEnd_button_svg { + background-image: url(../img/PNG/rightEnd.png); +} + +.report_menu_rightEnd_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/rightEnd.png); +} + +.report_menu_rightEnd_button_svg:hover { + background-image: url(../img/PNG/over/rightEnd.png); +} + +.report_menu_rightEnd_button_png { + background-image: url(../img/PNG/rightEnd.png); +} + +.report_menu_rightEnd_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/rightEnd.png); +} + +.report_menu_rightEnd_button_png:hover { + background-image: url(../img/PNG/over/rightEnd.png); +} + +/*pdf 다운로드 버튼*/ +.report_menu_pdf_button { + /*left:480px;*/ + left: 50px; +} + +.report_menu_pdf_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_pdf_button_svg { + background-image: url(../img/PNG/pdf.png); +} + +.report_menu_pdf_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/pdf.png); +} + +.report_menu_pdf_button_svg:hover { + background-image: url(../img/PNG/over/pdf.png); +} + +.report_menu_pdf_button_png { + background-image: url(../img/PNG/pdf.png); +} + +.report_menu_pdf_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/pdf.png); +} + +.report_menu_pdf_button_png:hover { + background-image: url(../img/PNG/over/pdf.png); +} + +/*엑셀 다운로드 버튼*/ +.report_menu_excel_button { + /*left:505px;*/ + left: 90px; +} + +.report_menu_excel_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_excel_button_svg { + background-image: url(../img/PNG/excel.png); +} + +.report_menu_excel_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/excel.png); +} + +.report_menu_excel_button_svg:hover { + background-image: url(../img/PNG/over/excel.png); +} + +.report_menu_excel_button_png { + background-image: url(../img/PNG/excel.png); +} + +.report_menu_excel_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/excel.png); +} + +.report_menu_excel_button_png:hover { + background-image: url(../img/PNG/over/excel.png); +} + +/*한글 다운로드 버튼*/ +.report_menu_hwp_button { + /*left:530px;*/ + left: 130px; +} + +.report_menu_hwp_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_hwp_button_svg { + background-image: url(../img/PNG/hwp.png); +} + +.report_menu_hwp_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/hwp.png); +} + +.report_menu_hwp_button_svg:hover { + background-image: url(../img/PNG/over/hwp.png); +} + +.report_menu_hwp_button_png { + background-image: url(../img/PNG/hwp.png); +} + +.report_menu_hwp_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/hwp.png); +} + +.report_menu_hwp_button_png:hover { + background-image: url(../img/PNG/over/hwp.png); +} + + +/*DOC 다운로드 버튼*/ +.report_menu_doc_button { + /*left:530px;*/ + left: 170px; + display:none; +} + +.report_menu_doc_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_doc_button_svg { + background-image: url(../img/PNG/doc.png); +} + +.report_menu_doc_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/doc.png); +} + +.report_menu_doc_button_svg:hover { + background-image: url(../img/PNG/over/pdf.png); +} + +.report_menu_doc_button_png { + background-image: url(../img/PNG/doc.png); +} + +.report_menu_doc_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/doc.png); +} + +.report_menu_doc_button_png:hover { + background-image: url(../img/PNG/over/pdf.png); +} + + +/*리포트 정보 버튼*/ +.report_menu_reportInfo_button { + /*left:555px;*/ + left: 765px; +} + +.report_menu_reportInfo_button:hover { + /* + width: 37px; + height: 37px; + */ +} + +.report_menu_reportInfo_button_svg { + background-image: url(../img/PNG/info.png); +} + +.report_menu_reportInfo_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/info.png); +} + +.report_menu_reportInfo_button_svg:hover { + background-image: url(../img/PNG/over/info.png); +} + +.report_menu_reportInfo_button_png { + background-image: url(../img/PNG/info.png); +} + +.report_menu_reportInfo_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/info.png); +} + +.report_menu_reportInfo_button_png:hover { + background-image: url(../img/PNG/over/info.png); +} + +/*리포트 닫기 버튼*/ +.report_menu_close_button { + right: 10px; +} + +.report_menu_close_button:hover { +/* + width: 37px; + height: 37px; + */ +} + +.report_menu_close_button_svg { + background-image: url(../img/PNG/close.png); +} + +.report_menu_close_button_svg_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/close.png); +} + +.report_menu_close_button_svg:hover { + background-image: url(../img/PNG/over/close.png); +} + +.report_menu_close_button_png { + background-image: url(../img/PNG/close.png); +} + +.report_menu_close_button_png_dis { + cursor:not-allowed; + background-image: url(../img/dis/PNG/close.png); +} + +.report_menu_close_button_png:hover { + background-image: url(../img/PNG/over/close.png); +} + +/*현재 페이지 입력창*/ +.report_menu_pageCount_input { + position: absolute; + /*left:135px;*/ + left: 400px; + width: 46px; + height: 30px; + line-height: 30px; + border: 1px solid #ccc; + border-right-width: 0px !important; + border-right-style: none !important; + padding-top: 0px; + padding-bottom: 0px; + font-size: 12px; +} + +/*총 페이지 표시 라벨*/ +.report_menu_pageCount_span { + position: absolute; + /*left:185px;*/ + left: 445px; + width: 50px; + height: 30px; + line-height: 30px; + border: 1px solid #ccc; + padding-top: 0px; + padding-bottom: 0px; + font-size: 12px; +} + +/*화면비율 선택 콤보창*/ +.report_menu_zoom_combo { + position: absolute; + /*left:315px;*/ + left: 600px; + height: 30px !important; + line-height: 30px; + width: 150px; +} + +.report_menu_zoom_combo_option { + +} + +/*뷰어의 모든 안내창을 감싸고 있는 DIV*/ +.report_popup_view { + position:relative; + left:0px; + top:0px; + right:0px; + bottom:0px; + zoom:1; + z-index:100; +} + + +/*뷰어 내부 안내창 공통 스타일*/ +.report_view_box { + background-color: #FDFDFD; + font-size: 9pt; + font-family: 나눔고딕; + border: 2px solid gray; +} + +/*뷰어 내부 안내창 공통 버튼 스타일*/ +.report_view_button { + position: absolute; + background-color: RGB(89, 89, 89); + border: 1px solid darkolivegreen; + color: white; + font-weight: weight; +} + +/*리포트 정보창 위치 정보*/ +.report_info_view_position { + position: absolute; + right: 23px; + top: 80px; + width: 440px; + height: 260px; +} + +/*인쇄창 위치 정보*/ +.report_print_view_position { + position: absolute; + left: 15px; + top: 80px; + width: 350px; + height: 260px; +} + +/*저장옵션 창 위치 정보*/ +.report_save_view_position { + position: absolute; + left: 15px; + top: 80px; + width: 350px; + height: 350px; +} + +/*한글 저장 옵션 창 위치 정보*/ +.report_saveHWP_view_position { + position: absolute; + left: 370px; + top: 80px; + width: 260px; + height: 390px; +} + +/*RTF 저장 옵션 창 위치 정보*/ +.report_saveRTF_view_position { + position: absolute; + left: 370px; + top: 80px; + width: 280px; + height: 220px; +} + +/*엑셀 저장 옵션 창 위치 정보*/ +.report_saveExcel_view_position { + position: absolute; + left: 370px; + top: 80px; + width: 300px; + height: 450px; +} +/*html 저장 옵션 창 위치 정보*/ +.report_saveHtml_view_position { + position: absolute; + left: 370px; + top: 80px; + width: 280px; + height: 360px; +} +/*PDF 저장 옵션 창 위치 정보*/ +.report_savePDF_view_position { + position: absolute; + left: 370px; + top: 80px; + width: 280px; + height: 180px; +} + +/*JPG 저장 옵션 창 위치 정보*/ +.report_saveJPG_view_position { + position: absolute; + left: 370px; + top: 80px; + width: 280px; + height: 180px; +} + +/*PPT 저장 옵션 창 위치 정보*/ +.report_savePPT_view_position { + position: absolute; + left: 370px; + top: 80px; + width: 280px; + height: 120px; +} + +/*pdf reader9버전 사용 안내창 위치 정보*/ +.report_Ex_reader9 { + position: absolute; + left: 70px; + top: 80px; + width: 350px; + height: 250px; +} + +/*pdf reader 가 없을 경우 안내창 위치 정보*/ +.report_Ex_NOTReader { + position: absolute; + left: 70px; + top: 80px; + width: 350px; + height: 250px; +} + +/*팝업 인쇄 안내창 위치 정보*/ +.report_Ex_popPrint { + position: absolute; + left: 70px; + top: 80px; + width: 350px; + height: 150px; +} + +/*제한된 프린트 안내창 위치 정보*/ +.report_Ex_limitPrint { + position: absolute; + left: 70px; + top: 80px; + width: 350px; + height: 150px; +} + +/*HTML 인쇄 안내창 위치 정보*/ +.report_Ex_popHTMLPrint { + position: absolute; + left: 70px; + top: 80px; + width: 370px; + height: 150px; +} + +.report_view_cliplogo { + background-repeat: no-repeat; + background-position: center center; + background-image: url(../img/cliplogo.png); +} + +.report_menu_progress { + position: absolute; + top: 6px; + right: 0px; + width: 16px; + height: 16px; +} + +.mobile_menu_div { + position: absolute; + top: 0px; + width: 100%; + height: 50px; + overflow: visible; + background-color: #fff; +} + +.mobile_paint_div { + position: absolute; + top: 50px; + width: 100%; + bottom: 0px; + border: 1px solid silver; + background-color: #EEE; + overflow: auto; + text-align: center; +} + +.mobile_menu_table_td_div { + position: relative; + height: 40px; + width: 100%; + font-size: 10pt; +} + +.mobile_menu_button { + position: absolute; + width: 40px; + height: 40px; + background-size: contain; + border: 0px none; + background-color: transparent; +} + +.mobile_input_table { + position: absolute; + left: 195px; + height: 40px; + width: 140px; +} + +.mobile_input_table_td_input { + background-color: #FFFFFF; + width: 60px; +} + +.mobile_input_table_td { + width: 80px; +} + +.mobile_menu_print_button { + left: 15px; + background-image: url(../img/PNG/over/save.png); +} +.mobile_menu_dis_print_button { + left: 15px; + cursor:not-allowed; + background-image: url(../img/dis/PNG/save.png); +} + +.mobile_menu_leftEnd_button { + left: 95px; + background-image: url(../img/PNG/over/leftEnd.png); +} + +.mobile_menu_dis_leftEnd_button { + left: 95px; + cursor:not-allowed; + background-image: url(../img/dis/PNG/leftEnd.png); +} + +.mobile_menu_left_button { + left: 145px; + background-image: url(../img/PNG/over/left.png); +} + +.mobile_menu_dis_left_button { + left: 145px; + cursor:not-allowed; + background-image: url(../img/dis/PNG/left.png); +} + +.mobile_menu_right_button { + left: 345px; + background-image: url(../img/PNG/over/right.png); +} + +.mobile_menu_dis_right_button{ + left: 345px; + cursor:not-allowed; + background-image: url(../img/dis/PNG/right.png); +} + +.mobile_menu_rightEnd_button { + left: 395px; + background-image: url(../img/PNG/over/rightEnd.png); +} + +.mobile_menu_dis_rightEnd_button { + left: 395px; + cursor:not-allowed; + background-image: url(../img/dis/PNG/rightEnd.png); +} + +.mobile_menu_close_button { + right: 25px; + background-image: url(../img/PNG/over/close.png); +} + +.mobile_menu_dis_close_button { + right: 25px; + cursor:not-allowed; + background-image: url(../img/dis/PNG/close.png); +} + +.mobile_menu_zoom_combo { + position: absolute; + left: 455px; + height: 40px; + width: 150px; + font-size: 14pt; +} + +.mobile_menu_pageCount_input { + position: relative; + left: 0px; + width: 55px; + height: 30px; + line-height: 30px; + padding-top: 0px; + padding-bottom: 0px; + border: 0px none; + background: transparent; + font-size: 14pt; +} + +.mobile_menu_pageCount_span { + position: relative; + left: 0px; + width: 75px; + height: 30px; + height: 30px; + line-height: 30px; + padding-top: 0px; + padding-bottom: 0px; + border: 0px none; + background: transparent; + font-size: 14pt; +} + +.mobile_menu_progress { + position: absolute; + right: 5px; + width: 16px; + height: 16px; +} + +.mRe_focus:focus{ + filter:alpha(opacity=100) !important; + opacity:100 !important; +} + + +/*사인컨트롤 전체 배경*/ +.report_sign_div{ + border:3px RGB(53,105,180) solid; + background-image:url(../img/tile.jpg); + background-repeat:repeat; +} + +/*사인컨트롤 그리는 영역*/ +.report_sign_paint{ + position:absolute; + left:25px; + top:25px; + right:25px; + bottom:85px; + background-color:white; + border:2px darkgray solid; + border-radius: 4px; +} + +/*사인컨트롤 메뉴*/ +.report_sign_menu{ + position:absolute; + left:0px; + bottom:25px; + right:0px; + height:35px; +} + +/*사인컨트롤 버튼 공통*/ +.report_sign_button{ + width:100px; + height:35px; + border-radius: 4px; + color:white; + font-size:10pt; + font-weight:bold; +} + +/*사인컨트롤 버튼 확인*/ +.report_sign_save{ + border:1px RGB(33,133,218) solid; + background-color:RGB(33,133,218); +} + +/*사인컨트롤 버튼 초기화*/ +.report_sign_reset{ + border:1px RGB(33,133,218) solid; + background-color:RGB(33,133,218); +} + +/*사인컨트롤 버튼 취소*/ +.report_sign_cancel{ + border:1px RGB(69,89,100) solid; + background-color:RGB(69,89,100); +} + + +.report_pageMoveLeft{ + position:absolute; + left:10px; + width:50px; + height:50px; + background-image:url(../img/eform/shiftLeft.png); + border-radius:100%; + opacity:0.65; + z-index:500; +} + +.report_pageMoveRight{ + position:absolute; + right:10px; + width:50px; + height:50px; + background-image:url(../img/eform/shiftRight.png); + border-radius:100%; + opacity:0.65; + z-index:500; +} \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/css/eform.css b/src/main/webapp/ClipReport4/css/eform.css new file mode 100644 index 0000000..f0ca25d --- /dev/null +++ b/src/main/webapp/ClipReport4/css/eform.css @@ -0,0 +1,903 @@ + +svg,div,img{ + -webkit-user-select: none; + -moz-user-select: none; + -khtml-user-select: none; + -ms-user-select: none; +} + +.eform_menu_div { + position: absolute; + top: 0px; + width: 100%; + height: 40px; + overflow: visible; + background-color: #fafafa; +} + +.eform_paint_div { + position: absolute; + top: 40px; + width: 100%; + bottom: 0px; + border: 1px solid silver; + background-color: #999999; + overflow: auto; + text-align: center; +} + +.eform_menu_table_td_div { + position: relative; + height: 30px; + width: 100%; + font-size: 10pt; +} + +.eform_menu_button { + position: absolute; + width: 30px; + height: 30px; + background-size: contain; + border: 0px none; + background-color: transparent; + /* + background-repeat: no-repeat; + background-position: center; + */ +} +.eform_menu_button:focus{ + outline: none; +} + +.eform_input_table { + position: absolute; + left: 100px; + height: 28px; + width: 100px; +} + +.eform_input_table_td_input { + width: 50px; +} + +.eform_input_table_td { + width: 50px; +} + +.eform_doodle_pageinfo_table{ + position: absolute; + left: 35px; + height: 20px; + width: 60px; + text-align:center; + font-size:14pt; + font-family: 나눔고딕; +} + +.eform_menu_save_button { + right: 55px; + background-image: url(../img/eform/save.png); + width:28px; + height:28px; +} + +/*리포트 닫기 버튼*/ +.eform_menu_close_button { + right: 10px; + background-image: url(../img/eform/close.png); +} + +/*메모기능 닫기 버튼*/ +.eform_menu_doodleClose_button { + right: 10px; + background-image: url(../img/eform/doodle/close.png); +} + + +.eform_menu_leftEnd_button { + left: 10px; + background-image: url(../img/eform/leftEnd.png); +} + + +.eform_menu_left_button { + left: 50px; + background-image: url(../img/eform/left.png); +} + +.eform_menu_right_button { + left: 220px; + background-image: url(../img/eform/right.png); +} + +.eform_menu_rightEnd_button { + left: 260px; + background-image: url(../img/eform/rightEnd.png); +} + + +/*프린트 버튼*/ +.eform_menu_print_button { + left: 520px; + background-image: url(../img/eform/print.png); +} + +/*형광펜 버튼*/ +.eform_menu_doodle_button{ + left: 580px; + background-image: url(../img/eform/doodle/pen.png); +} + + +.eform_menu_zoom_combo { + position: absolute; + left: 320px; + height: 30px; + width: 150px; + font-size: 13pt; +} + +.eform_menu_pageCount_input { + position: relative; + left: 0px; + width: 55px; + height: 20px; + line-height: 20px; + padding-top: 0px; + padding-bottom: 0px; + border: 0px none; + background: transparent; + font-size: 13pt; +} + +.eform_menu_pageCount_span { + position: relative; + left: 0px; + width: 55px; + height: 20px; + line-height: 20px; + padding-top: 0px; + padding-bottom: 0px; + border: 0px none; + background: transparent; + font-size: 13pt; +} + +.eform_menu_doodleleft_button { + left: 5px; + background-image: url(../img/eform/left.png); +} + +.eform_menu_doodleright_button { + left: 95px; + background-image: url(../img/eform/right.png); +} + +.eform_menu_doodlePen_button{ + left: 150px; + background-image: url(../img/eform/doodle/pen.png); +} +.eform_menu_doodlePallet_button{ + left: 200px; + background-image: url(../img/eform/doodle/pallet.png); +} + +.eform_menu_doodleEraser_button{ + left: 250px; + background-image: url(../img/eform/doodle/eraser.png); +} +.eform_menu_doodleEraserAll_button{ + left: 300px; + background-image: url(../img/eform/doodle/all_eraser.png); +} + +.m_eform_menu_doodlePen_button{ + left: 150px; + background-image: url(../img/eform/doodle/pen.png); +} +.m_eform_menu_doodlePallet_button{ + left: 210px; + background-image: url(../img/eform/doodle/pallet.png); +} +.m_eform_menu_doodleEraser_button{ + left: 270px; + background-image: url(../img/eform/doodle/eraser.png); +} +.m_eform_menu_doodleEraserAll_button{ + left: 330px; + background-image: url(../img/eform/doodle/all_eraser.png); +} + + +.m_eform_menu_div { + position: absolute; + top: 0px; + width: 100%; + height: 50px; + overflow: visible; + background-color: #fafafa; +} + +.m_eform_paint_div { + position: absolute; + top: 50px; + left:0px; + right:0px; + bottom: 0px; + border: 1px solid silver; + background-color: #999999; + overflow: scroll; + text-align: center; + -webkit-overflow-scrolling: touch; +} + +.m_eform_menu_table_td_div { + position: relative; + height: 40px; + width: 100%; + font-size: 10pt; +} + +.m_eform_menu_button { + position: absolute; + width: 40px; + height: 40px; + background-size: contain; + border: 0px none; + background-color: transparent; + /* + background-repeat: no-repeat; + background-position: center; + */ +} + +.m_eform_input_table { + position: absolute; + left: 125px; + height: 40px; + width: 80px; +} + +.m_eform_input_table_td_input { + width: 40px; +} + +.m_eform_input_table_td { + width: 40px; +} +.m_eform_doodle_pageinfo_table{ + position: absolute; + left: 40px; + height: 40px; + width: 60px; + text-align:center; + font-size:14pt; + font-family: 나눔고딕; +} + +.m_eform_menu_save_button { + left: 510px; + background-image: url(../img/eform/save.png); +} + +/*리포트 닫기 버튼*/ +.m_eform_menu_close_button { + right: 15px; + background-image: url(../img/eform/close.png); +} +/*메모기능 닫기 버튼*/ +.m_eform_menu_doodleClose_button { + right: 15px; + background-image: url(../img/eform/doodle/close.png); +} + + +.m_eform_menu_leftEnd_button { + left: 15px; + background-image: url(../img/eform/leftEnd.png); +} + +.m_eform_menu_left_button { + left: 65px; + background-image: url(../img/eform/left.png); +} + +.m_eform_menu_right_button { + left: 225px; + background-image: url(../img/eform/right.png); +} + + +.m_eform_menu_rightEnd_button { + left: 275px; + background-image: url(../img/eform/rightEnd.png); +} + + +/*프린트 버튼*/ +.m_eform_menu_print_button { + left: 580px; + background-image: url(../img/eform/print.png); +} + +.m_eform_menu_doodle_button{ + left: 580px; + background-image: url(../img/eform/doodle/pen.png); +} + +.m_eform_menu_zoom_combo { + position: absolute; + left: 350px; + height: 40px; + width: 130px; + font-size: 14pt; +} + +.m_eform_menu_pageCount_input { + position: relative; + left: 0px; + width: 40px; + height: 30px; + line-height: 30px; + padding-top: 0px; + padding-bottom: 0px; + border: 0px none; + background: transparent; + font-size: 14pt; +} + +.m_eform_menu_pageCount_span { + position: relative; + left: 0px; + width: 40px; + height: 30px; + line-height: 30px; + padding-top: 0px; + padding-bottom: 0px; + border: 0px none; + background: transparent; + font-size: 14pt; +} + +.m_eform_menu_doodleleft_button { + left: 5px; + background-image: url(../img/eform/left.png); +} + +.m_eform_menu_doodleright_button { + left: 95px; + background-image: url(../img/eform/right.png); +} + +.eform_menu_progress { + position: absolute; + right: 5px; + width: 16px; + height: 16px; +} + +.eform_textarea { + position:absolute; + padding:0px 0px 0px 0px !important; + box-sizing:border-box; + margin-top:0 !important; + margin-bottom:0 !important; + resize:none; + overflow-y:hidden; + overflow-x:hidden; + filter:alpha(opacity=0); + opacity:0; +} + +.eform_guide_textarea { + position:absolute; + padding:0px 0px 0px 0px !important; + box-sizing:border-box; + margin-top:0 !important; + margin-bottom:0 !important; + resize:none; + overflow-y:hidden; + overflow-x:hidden; + border:2pt solid white; + outline: none; + opacity:0; +} + +.eform_table{ + table-layout: fixed; + position:absolute; + left:0px; + height:100%; + top:0px; + width:100%; + padding:0 0 0 0; +} + +.eForm_hidden_button{ + opacity: 0; + filter:alpha(opacity=0); +} + + +.eform_textarea:focus{ + border:2pt solid Orange; + outline: none; +} + +.eform_control_focus{ + border:2pt solid Orange; +} + +/*리포트 프로그래스*/ +.eform_progress { + background-repeat: no-repeat; + background-position: 50% 30%; + background-image: url(../img/efromProgress.gif); + opacity: 0.5; +} + +/*사인컨트롤 전체 배경*/ +.eform_sign_background { + position: absolute; + top: 40px; + width: 100%; + bottom: 0px; + overflow : hidden; + z-index:200; +} + + +/*사인컨트롤 전체 배경*/ +.m_eform_sign_background { + position: absolute; + top: 50px; + width: 100%; + bottom: 0px; + overflow : hidden; + z-index:200; +} + +/*사인컨트롤 전체 배경*/ +.eform_sign_div{ + /* + background-image:url(../img/eform/sign/background.png); + background-size: cover; + */ + background-color:white; + border:5px #51920f solid; + border-radius: 7px; +} + +/*사인컨트롤의 타이틀 */ +.eform_sign_title{ + position:absolute; + left:15px; +} + +/*사인컨트롤 그리는 영역 외각선*/ +.eform_sign_paint{ + position:absolute; + left:25px; + top:25px; + right:25px; + bottom:85px; + background-color:white; + border:2px darkgray solid; + border-radius: 7px; +} + +/*사인컨트롤 그리는 영역*/ +.eform_sign_canvas{ + position:absolute; + left:0px; + top:0px; + background-color:transparent; +} + +.eform_sign_canvas_in{ + position:absolute; + left:0px; + top:0px; + background-color:transparent; + zoom:0.5; + -moz-transform:scale(0.5); + -moz-transform-origin:0 0 0; +} + +/*사인컨트롤 메뉴*/ +.eform_sign_menu{ + position:absolute; + left:0px; + bottom:25px; + right:0px; + height:40px; + text-align: center; +} + +/*사인컨트롤 버튼 공통*/ +.eform_sign_button{ + width:100px; + height:40px; + border-radius: 4px; + font-weight: bold; + font-size:11pt; + color:RGB(255,255,255); +} + +/*사인컨트롤 직접서명 버튼 공통*/ +.eform_sign_button_in{ + position: relative; + border-radius: 4px; + font-weight: bold; + font-size:10pt; + color:RGB(255,255,255); + margin-right: 3px; + margin-bottom: 3px; +} + +/*사인컨트롤 버튼 확인*/ +.eform_sign_save{ + border:2px #9a9f00 solid; + background-color:#9a9f00; +} + +/*사인컨트롤 버튼 초기화*/ +.eform_sign_reset{ + border:2px #9a9f00 solid; + background-color:#9a9f00; +} + +/*사인컨트롤 버튼 취소*/ +.eform_sign_cancel{ + border:2px #999999 solid; + background-color:#999999; +} + +/*사인컨트롤의 가이드 텍스트*/ +.eform_sign_paint_guide{ + position:absolute; + border:0px none; + background-color:transparent; + text-align:center; + -webkit-user-select: none; + -moz-user-select: none; + -khtml-user-select: none; + -ms-user-select: none; + padding:0; +} + +.eform_pallet_background { + position: absolute; + top: 40px; + width: 100%; + bottom: 0px; + overflow : hidden; + z-index:400; +} + +.m_eform_pallet_background { + position: absolute; + top: 50px; + width: 100%; + bottom: 0px; + overflow : hidden; + z-index:400; +} + +.eform_pallet_OP_background{ + position:absolute; + left:0px; + top:0px; + width:100%; + height:100%; + opacity: 0; + background-color:#FFF; +} + +.eform_pallet{ + position: relative; + left: 10px; + top: 10px; + width: 250px; + height: 320px; + background-color: rgb(245,245,245); + border-radius: 18px; +} +.eform_pallet_width{ + position: relative; + left: 10px; + top: 10px; + width: 500px; + height: 190px; + background-color: rgb(245,245,245); + border-radius: 18px; +} + +.eform_pallet_button{ + position: relative; + left: 45px; + top: 15px; + height: 35px; + width: 75px; + border-radius: 7px; + background-color:transparent; + font-size:13px; +} + +.eform_pallet_button_ok{ + border:2px solid RGB(122,122,122); + color: RGB(122,122,122); +} + +.eform_pallet_button_cancel{ + left:55px; + border:2px solid RGB(184,184,186); + color: RGB(184,184,186); +} + +.eform_pallet_line{ + position:absolute; + left:10px; + width:230px; + border:1px solid RGB(230,230,230); + height:0px; +} + +.eform_pallet_outE{ + position:absolute; + width:50px; + height:50px; + top:5px; +} + +.eform_pallet_inE{ + position:absolute; + left:5px; + top:5px; + width:40px; + height:40px; + background-color:white; + border-radius: 100%; +} + +.eform_pallet_outText{ + position:absolute; + width:50px; + height:20px; + top:5px; + text-align:center; + font-size:10pt; +} + +.eform_pallet_Circle{ + position:absolute; + top:5px; + left:5px; + width:30px; + height:30px; + border-radius: 100%; +} + +.eform_zoomInOut{ + position:absolute; + left:0px; + top:0px; + width:100%; + height:100%; + display:none; + /* + -webkit-filter:blur(5px); + */ +} + +.eform_IndexOrder{ + position:absolute; + overflow:hidden; + left:0px; + top:0px; + right:0px; + bottom:0px; + display:none; + /*z-index:101;*/ + opacity: 0; + background-color:white; +} +.eform_IndexOrder_inner{ + position:absolute; + left:0px; + top:0px; + height:20px; + width:200px; + z-index:160; + display:none; +} +.eform_IndexOrder_left{ + position:absolute; + left:0px; + bottom:0px; + width:20px; + height:20px; + background-image: url(../img/eform/navi/left.png); + background-size: contain; + background-repeat:no-repeat; + border: 0px none; + background-color: transparent; +} + +.eform_IndexOrder_right{ + position:absolute; + right:0px; + bottom:0px; + width:20px; + height:20px; + background-image: url(../img/eform/navi/right.png); + background-size: contain; + background-repeat:no-repeat; + border: 0px none; + background-color: transparent; +} + + +.eF_Rect{ + position:absolute; + left:0px; + right:0px; + top:0px; + bottom:0px; + overflow:hidden; + box-sizing:border-box; +} + +.eF_Rect2{ + position:absolute; + left:0px; + top:0px; + width:100%; + height:100%; + overflow:hidden; + box-sizing:border-box; +} + + +.eform_toc_menu_top { + position: absolute; + left: 10px; + top: 55px; + height: 50px; + width: 250px; + background-color: rgba(243, 243, 243, 0.95); + border-bottom: 2px solid rgb(212, 212, 212); + box-sizing: border-box; + border-radius: 10px 10px 0px 0px; +} + +.eform_toc_menu_top_text { + position: absolute; + left: 5px; + top: 15px; + font-family: 나눔고딕; + font-size: 13pt; + color: rgb(115, 197, 215); + font-weight: bold; +} + +.eform_toc_menu_top_close { + position: absolute; + right: 10px; + top: 17px; + width: 19px; + height: 19px; + background-image: url(../img/eform/list_close.png); + background-size: contain; + cursor: pointer; +} + +.eform_toc_menu_body { + position: absolute; + left: 10px; + top: 105px; + overflow-x: hidden; + overflow-y: auto; + width: 250px; + bottom: 35px; + background-color: rgba(243, 243, 243, 0.95); + box-sizing: border-box; +} + +.eform_toc_list_depth { + position: relative; + left: 0px; + right: 0px; + height: 30px; + border-bottom: 1px solid rgb(212, 212, 212); +} + +.eform_toc_nec_list_depth { + position: relative; + left: 0px; + right: 0px; + height: 30px; + border-bottom: 1px solid rgb(212, 212, 212); + background-image:url(../img/eform/nec_check.png); + background-size: 15px 15px; + background-repeat: no-repeat; + background-position : 5px center; +} + +.eform_toc_list_depth_text{ + position: absolute; + font-family : 나눔고딕; + font-weight: bold; + text-overflow: ellipsis; + white-space: nowrap; + overflow:hidden; + cursor: pointer; +} + +.eform_toc_list_depth_pageNumber{ + position: absolute; + font-family : 나눔고딕; + white-space: nowrap; + overflow:hidden; + font-size: 10pt; + top:7px; + right:0px; + width:30px; + text-align: center; +} + +.eform_toc_list_depth1_text { + font-size: 12pt; + color: rgb(215, 172, 135); + top: 5px; + bottom: 0px; + +} + +.eform_toc_list_depth2_text { + font-size: 12pt; + color: rgb(100, 100, 100); + top: 5px; + bottom: 0px; +} + +.eform_toc_list_depth3_text { + font-size: 11pt; + color: rgb(100, 100, 100); + top: 7px; + bottom: 0px; +} + +.eform_toc_menu_bottom { + position: absolute; + left: 10px; + bottom: 25px; + height: 10px; + width: 250px; + background-color: rgba(243, 243, 243, 0.95); + box-sizing: border-box; + border-radius: 0px 0px 10px 10px; +} + + +.eform_pageMoveLeft{ + position:absolute; + left:10px; + width:50px; + height:50px; + background-image:url(../img/eform/shiftLeft.png); + border-radius:100%; + opacity:0.65; + z-index:500; +} + +.eform_pageMoveRight{ + position:absolute; + right:10px; + width:50px; + height:50px; + background-image:url(../img/eform/shiftRight.png); + border-radius:100%; + opacity:0.65; + z-index:500; +} \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/css/font.css b/src/main/webapp/ClipReport4/css/font.css new file mode 100644 index 0000000..32db624 --- /dev/null +++ b/src/main/webapp/ClipReport4/css/font.css @@ -0,0 +1,31 @@ +/* + * Nanum Gothic (Korean) http://www.google.com/fonts/earlyaccess + */ +@font-face { + font-family: 'NanumGothic'; + font-style: normal; + font-weight: 400; + src: url(../font/NanumGothic-Regular.eot); + src: url(../font/NanumGothic-Regular.eot?#iefix) format('embedded-opentype'), + url(../font/NanumGothic-Regular.woff2) format('woff2'), + url(../font/NanumGothic-Regular.woff) format('woff'), + url(../font/NanumGothic-Regular.ttf) format('truetype'); + /* + url(../font/NanumGothic-Regular.svg#NanumGothic) format('svg'); + */ +} + +@font-face { + font-family: '나눔고딕'; + font-style: normal; + font-weight: 400; + src: url(../font/NanumGothic-Regular.eot); + src: url(../font/NanumGothic-Regular.eot?#iefix) format('embedded-opentype'), + url(../font/NanumGothic-Regular.woff2) format('woff2'), + url(../font/NanumGothic-Regular.woff) format('woff'), + url(../font/NanumGothic-Regular.ttf) format('truetype'); + /* + url(../font/NanumGothic-Regular.svg#나눔고딕) format('svg'); + */ +} + \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/css/reset.css b/src/main/webapp/ClipReport4/css/reset.css new file mode 100644 index 0000000..15ee305 --- /dev/null +++ b/src/main/webapp/ClipReport4/css/reset.css @@ -0,0 +1,42 @@ +@charset "UTF-8"; + +html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + border: 0; + font-weight: inherit; + font-style: inherit; + font-size: 100%; + font-family: inherit; + vertical-align: baseline; +} +body { + font:12px/1.5em Arial, dotum, AppleGothic, sans-serif +} +table { + border-collapse: collapse; + border-spacing: 0; +} +caption, th, td { + text-align: left; + font-weight: normal; +} +table, td, th { + vertical-align: middle; +} +blockquote:before, blockquote:after, q:before, q:after { + content: ""; +} +blockquote { + quotes: "" ""; +} +a img { + border: none; +} + +a {text-decoration:none} + + +/* Hides from IE5-mac \*/ +* html { height: 1%; } +/* End hide from IE5-mac */ \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/dynamicReport.jsp b/src/main/webapp/ClipReport4/dynamicReport.jsp new file mode 100644 index 0000000..2f67c17 --- /dev/null +++ b/src/main/webapp/ClipReport4/dynamicReport.jsp @@ -0,0 +1,59 @@ +<%@page import="com.clipsoft.clipreport.generator.LabelControl"%> +<%@page import="com.clipsoft.clipreport.generator.SubSection"%> +<%@page import="com.clipsoft.clipreport.generator.CreateReport"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="java.io.File"%> +<%@page import="com.clipsoft.clipreport.server.service.ReportUtil"%> +<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + +CreateReport report = new CreateReport("c:\\temp1\\aaa.crf"); +//본문의 첫번째 서브섹션 찾기 +SubSection detail = report.findSubSection("본문", 0); + +//label 생성 +LabelControl label = detail.createLabel("test1"); +label.setPosition(0, 0, 500, 50); +label.setText("본문 입니다."); + + +//리포트 저장하여 확인하기 +//report.saveReport("c:\\temp1\\bbb.crf"); + +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.object", report); +%><%@include file="Property.jsp"%><% +//세션을 활용하여 리포트키들을 관리하지 않는 옵션 +//request.getSession().setAttribute("ClipReport-SessionList-Allow", false); +String resultKey = ReportUtil.createReport(request, oof, "false", "false", request.getRemoteAddr(), propertyPath); +//oof 문서가 xml 일 경우 (oof.toString()) +//String resultKey = ReportUtil.createReport(request, oof.toString(), "false", "false", "localhost", propertyPath); +%> + + + +Report + + + + + + + + + + + +
+ + diff --git a/src/main/webapp/ClipReport4/eform.jsp b/src/main/webapp/ClipReport4/eform.jsp new file mode 100644 index 0000000..7e36459 --- /dev/null +++ b/src/main/webapp/ClipReport4/eform.jsp @@ -0,0 +1,55 @@ +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="java.io.File"%> +<%@page import="com.clipsoft.clipreport.server.service.ReportUtil"%> +<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crfe.root", "%root%/crf/CLIP.crfe"); +%><%@include file="Property.jsp"%><% +//세션을 활용하여 리포트키들을 관리하지 않는 옵션 +//request.getSession().setAttribute("ClipReport-SessionList-Allow", false); +String resultKey = ReportUtil.createEForm(request, oof, "false", "false", request.getRemoteAddr(), propertyPath); + +//리포트의 특정 사용자 ID를 부여합니다. +//clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. +//clipreport4.properties 의 useuserid 옵션이 true 이고 기본 예제[String resultKey = ReportUtil.createEForm(request, oof, "false", "false", request.getRemoteAddr(), propertyPath);] 사용 했을 때 세션ID가 userID로 사용 됩니다. +//String resultKey = ReportUtil.createEForm(request, oof, "false", "false", request.getRemoteAddr(), propertyPath, "userID"); + +%> + + + +EForm + + + + + + + + + + + + + +
+ + diff --git a/src/main/webapp/ClipReport4/export/eform/exportForEFormJPG.jsp b/src/main/webapp/ClipReport4/export/eform/exportForEFormJPG.jsp new file mode 100644 index 0000000..ffafe87 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/eform/exportForEFormJPG.jsp @@ -0,0 +1,55 @@ +<%@page import="com.clipsoft.clipreport.server.service.ClipEFormExport"%> +<%@page import="com.clipsoft.clipreport.export.option.JPGOption"%> +<%@page import="com.clipsoft.clipreport.server.service.ExportInfo"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//getEFormSaveData()함수를 통하여 나온 데이터를 서버에 파라미터로 받아서 export하는 예제입니다. +//기본적으로 데이터가 base64로 인코딩 되어 있습니다. +String eform_data = request.getParameter("eform_data"); +boolean isbase64Encoding = true; +//데이터가 인코딩이 안되어있을 때 +// boolean isbase64Encoding = false; + +if(null != eform_data){ + //지정한 폴더에 (파일명 + 페이지번호) 저장합니다. + //지정한 폴더에 report1.jpg 로 저장됩니다. + //리포트가 1~3페이지 (여러 페이지)일 경우 report1.jpg, report2.jpg, report3.jpg 저장 됩니다. + String fileName = "c:\\temp1\\test\\report.jpg"; + + JPGOption jpgOption = new JPGOption(); + //저장파일 + jpgOption.setOutputFilename(fileName); + //X DPI 설정 + jpgOption.setDpiX(96); + //Y DPI 설정 + jpgOption.setDpiY(96); + //품질(1~100) + jpgOption.setQuality(100); + //회전 + jpgOption.setRotate90(false); + + //아래와 같이 기존 사용방법의 함수를 사용할 경우 propertyPath의 경로가 아래의 주석위치로 지정됩니다. + //request.getSession().getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "clipreport4" + File.separator + "clipreport4.properties"; + //ExportInfo exportInfo = ClipEFormExport.createExportForJPG(request, eform_data, isbase64Encoding, jpgOption); + + ExportInfo exportInfo = ClipEFormExport.createExportForJPG(request, eform_data, isbase64Encoding, jpgOption, propertyPath); + int errorCode = exportInfo.getErrorCode(); + //errorCode == 0 정상 + //errorCode == 1 세션안에 리포트정보가 없을 때 오류 + //errorCode == 2 리포트 서버가 설치가 안되어 있을 때 오류 + //errorCode == 3 결과물(document) 파일을 찾지 못할 때 발생하는 오류 + //errorCode == 4 jpg 파일 생성 오류 + //errorCode == 5 eform_data 데이터가 문제가 있을 경우 + //errorCode == 6 리포트의 페이지 0 일 경우 오류 + + //리포트 총 페이지 수 + //System.out.println(exportInfo.getPageCount()); +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/eform/exportForEFormPDF.jsp b/src/main/webapp/ClipReport4/export/eform/exportForEFormPDF.jsp new file mode 100644 index 0000000..dac8934 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/eform/exportForEFormPDF.jsp @@ -0,0 +1,61 @@ +<%@page import="com.clipsoft.clipreport.server.service.ClipEFormExport"%> +<%@page import="com.clipsoft.clipreport.server.service.ExportInfo"%> +<%@page import="com.clipsoft.clipreport.export.option.PDFOption"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//getEFormSaveData()함수를 통하여 나온 데이터를 서버에 파라미터로 받아서 export하는 예제입니다. +//기본적으로 데이터가 base64로 인코딩 되어 있습니다. +String eform_data = request.getParameter("eform_data"); +boolean isbase64Encoding = true; +//데이터가 인코딩이 안되어있을 때 +//boolean isbase64Encoding = false; + + +if(null != eform_data){ + //서버에 파일로 저장 할 때 + File localFileSave = new File("c:\\temp1\\test\\report.pdf"); + OutputStream fileStream = new FileOutputStream(localFileSave); + + //클라이언트로 파일을 내릴 때 + //String fileName = "report.pdf"; + //response.setContentType("application/octet-stream; charset=UTF-8"); + //response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); + //OutputStream fileStream = response.getOutputStream(); + + //클라이언트 브라우져에서 바로 보는 방법(헤더 변경) + //response.setContentType("application/pdf"); + //OutputStream fileStream = response.getOutputStream(); + + PDFOption option = new PDFOption(); + /* + option = new PDFOption(); + option.setUserPassword("사용자(읽기) 암호"); + option.setOwnerPassword("저자(쓰기) 암호"); + option.setTextToImage(true); // 글자를 이미지로 처리 - unicode 처리시 사용 + option.setNumCopies(1); // 프린팅 매수 미리 설정 + option.setImportOriginImage(true); // 원본 이미지 삽입 + option.setNotAllowCopy(true); //text복사 방지 (1.0.0.84 version 부터 적용) + */ + + //아래와 같이 기존 사용방법의 함수를 사용할 경우 propertyPath의 경로가 아래의 주석위치로 지정됩니다. + //request.getSession().getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "clipreport4" + File.separator + "clipreport4.properties"; + //ExportInfo exportInfo = ClipEFormExport.createExportForPDF(request, eform_data, isbase64Encoding, fileStream, option); + + ExportInfo exportInfo = ClipEFormExport.createExportForPDF(request, eform_data, isbase64Encoding, fileStream, option, propertyPath); + int errorCode = exportInfo.getErrorCode(); + //errorCode == 0 정상 + //errorCode == 1 세션안에 리포트정보가 없을 때 오류 + //errorCode == 2 리포트 서버가 설치가 안되어 있을 때 오류 + //errorCode == 3 결과물(document) 파일을 찾지 못할 때 발생하는 오류 + //errorCode == 4 PDF 파일 생성 오류 + //errorCode == 5 eform_data 데이터가 문제가 있을 경우 + //errorCode == 6 리포트의 페이지 0 일 경우 오류 +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/eform/exportForEFormTIF.jsp b/src/main/webapp/ClipReport4/export/eform/exportForEFormTIF.jsp new file mode 100644 index 0000000..c2188f7 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/eform/exportForEFormTIF.jsp @@ -0,0 +1,59 @@ +<%@page import="com.clipsoft.clipreport.server.service.ClipEFormExport"%> +<%@page import="com.clipsoft.clipreport.export.option.TIFOption"%> +<%@page import="com.clipsoft.clipreport.server.service.ExportInfo"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//getEFormSaveData()함수를 통하여 나온 데이터를 서버에 파라미터로 받아서 export하는 예제입니다. +//기본적으로 데이터가 base64로 인코딩 되어 있습니다. +String eform_data = request.getParameter("eform_data"); +boolean isbase64Encoding = true; +//데이터가 인코딩이 안되어있을 때 +//boolean isbase64Encoding = false; + + +if(null != eform_data){ + + String fileName = "c:\\temp1\\report.tif"; + + TIFOption tifOption = new TIFOption(); + //저장파일 + tifOption.setOutputFilename(fileName); + //X DPI 설정 + tifOption.setDpiX(96); + //Y DPI 설정 + tifOption.setDpiY(96); + //흑백 여부 + tifOption.setBlackWhite(false); + //멀티페이지 설정 + //멀티페이지가 false 일경우 지정한 폴더에 (파일명 + 페이지번호) 저장합니다. + //지정한 폴더에 report1.jpg 로 저장됩니다. + //리포트가 1~3페이지 (여러 페이지)일 경우 report1.jpg, report2.jpg, report3.jpg 저장 됩니다. + tifOption.setMultiPage(true); + //회전 + tifOption.setRotate90(false); + + //아래와 같이 기존 사용방법의 함수를 사용할 경우 propertyPath의 경로가 아래의 주석위치로 지정됩니다. + //request.getSession().getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "clipreport4" + File.separator + "clipreport4.properties"; + //ExportInfo exportInfo = ClipEFormExport.createExportForTIF(request, eform_data, isbase64Encoding, tifOption); + + ExportInfo exportInfo = ClipEFormExport.createExportForTIF(request, eform_data, isbase64Encoding, tifOption, propertyPath); + int errorCode = exportInfo.getErrorCode(); + //errorCode == 0 정상 + //errorCode == 1 세션안에 리포트정보가 없을 때 오류 + //errorCode == 2 리포트 서버가 설치가 안되어 있을 때 오류 + //errorCode == 3 결과물(document) 파일을 찾지 못할 때 발생하는 오류 + //errorCode == 4 jpg 파일 생성 오류 + //errorCode == 5 eform_data 데이터가 문제가 있을 경우 + //errorCode == 6 리포트의 페이지 0 일 경우 오류 + + //리포트 총 페이지 수 + //System.out.println(exportInfo.getPageCount()); +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/eform/updateToEForm.jsp b/src/main/webapp/ClipReport4/export/eform/updateToEForm.jsp new file mode 100644 index 0000000..32ce265 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/eform/updateToEForm.jsp @@ -0,0 +1,31 @@ +<%@page import="com.clipsoft.clipreport.server.service.eform.ClipEFormUpdate"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//getEFormSaveData()함수를 통하여 나온 데이터를 서버에 파라미터로 받아서 서버에 저장된 리포트폼에 반영하는 예제입니다. +//기본적으로 데이터가 base64로 인코딩 되어 있습니다. +String eform_data = request.getParameter("eform_data"); +boolean isbase64Encoding = true; +//데이터가 인코딩이 안되어있을 때 +//boolean isbase64Encoding = false; + + +if(null != eform_data){ + //아래와 같이 기존 사용방법의 함수를 사용할 경우 propertyPath의 경로가 아래의 주석위치로 지정됩니다. + //request.getSession().getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "clipreport4" + File.separator + "clipreport4.properties"; + //int errorCode = ClipEFormUpdate.update(request, eform_data, isbase64Encoding); + + int errorCode = ClipEFormUpdate.update(request, eform_data, isbase64Encoding, propertyPath); + //errorCode == 0 정상 + //errorCode == 1 eform_data Base64 Decode 실패 + //errorCode == 2 리포트폼를 찾지 못할 때 + //errorCode == 3 서버에 EForm서버가 설치가 안되어 있을 때 오류 + //errorCode == 4 업데이트 실패 +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/export.jsp b/src/main/webapp/ClipReport4/export/export.jsp new file mode 100644 index 0000000..0415dbf --- /dev/null +++ b/src/main/webapp/ClipReport4/export/export.jsp @@ -0,0 +1,26 @@ +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="com.clipsoft.clipreport.export.option.*" %> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../Property.jsp"%> +<% +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + +String[] fileNames = new String[3]; +fileNames[0] = "pdf입니다"; +fileNames[1] = "pdf입니다1"; +fileNames[2] = "pdfTestTest"; + + +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +PDFOption option = new PDFOption(); +ClipReportExport.createExportForPDF(request, response, propertyPath, oof.toString(), 100, "report", fileNames, option); +//ClipReportExport.createExportForPDF(request, response, propertyPath, oofString.toString()); +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/exportChart.jsp b/src/main/webapp/ClipReport4/export/exportChart.jsp new file mode 100644 index 0000000..cc0d321 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportChart.jsp @@ -0,0 +1,57 @@ +<%@page import="com.clipsoft.clipreport.export.option.JPGOption"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.oof.reader.OOFReader"%> +<%@page import="com.clipsoft.org.apache.commons.codec.binary.Base64"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../Property.jsp"%> +<% + +String is_svg = request.getParameter("is_svg"); +if(null != is_svg && !"true".equals(is_svg)){ + is_svg = "jpg"; +} + +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +byte[] decoded = Base64.decodeBase64(request.getParameter("oof")); +String oofString = new String(decoded, "UTF-8"); +System.out.println(oofString); +OOFDocument oof = OOFReader.open(oofString); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + +// 크로스도메인 허용 +//response.setHeader("Access-Control-Allow-Origin", "*"); + +//클라이언트 브라우져에서 바로 보는 방법(헤더 변경) +if(is_svg.equals("jpg")){ + response.setContentType("image/jpeg"); +} +else{ + response.setContentType("image/svg+xml"); +} + +OutputStream fileStream = response.getOutputStream(); +JPGOption jpgOption = new JPGOption(); +//X DPI 설정 +jpgOption.setDpiX(96); +//Y DPI 설정 +jpgOption.setDpiY(96); +//품질(1~100) +jpgOption.setQuality(100); +//회전 +jpgOption.setRotate90(false); + +int pageNumber = 1; +int statusType = ClipReportExport.createExportForPageImage(request, fileStream, propertyPath, oof, jpgOption, pageNumber, is_svg); +//statusType == 0 정상적인 출력 +//statusType == 1 인스톨 오류 +//statusType == 2 oof 문서 오류 +//statusType == 3 리포트 엔진 오류 +//statusType == 4 img 출력 오류 +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/exportForBMP.jsp b/src/main/webapp/ClipReport4/export/exportForBMP.jsp new file mode 100644 index 0000000..9eacd3a --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportForBMP.jsp @@ -0,0 +1,43 @@ +<%@page import="com.clipsoft.clipreport.export.option.BMPOption"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../Property.jsp"%> +<% + +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + + +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + +//지정한 폴더에 (파일명 + 페이지번호) 저장합니다. +//지정한 폴더에 report1.bmp 로 저장됩니다. +//리포트가 1~3페이지 (여러 페이지)일 경우 report1.bmp, report2.bmp, report3.bmp 저장 됩니다. +String fileName = "c:\\temp1\\test\\report.bmp"; + +BMPOption bmpOption = new BMPOption(); +//저장파일 +bmpOption.setOutputFilename(fileName); +//X DPI 설정 +bmpOption.setDpiX(96); +//Y DPI 설정 +bmpOption.setDpiY(96); +//회전 +bmpOption.setRotate90(false); +//흑백설정 +bmpOption.setBlackWhite(true); + +int statusType = ClipReportExport.createExportForBMP(request, propertyPath, oof, bmpOption); +//statusType == 0 정상적인 출력 +//statusType == 1 인스톨 오류 +//statusType == 2 oof 문서 오류 +//statusType == 3 리포트 엔진 오류 +//statusType == 4 img 출력 오류 +//statusType == 5 리포트의 페이지 0 일 경우 오류 +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/exportForEPP.jsp b/src/main/webapp/ClipReport4/export/exportForEPP.jsp new file mode 100644 index 0000000..08bac46 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportForEPP.jsp @@ -0,0 +1,37 @@ +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../Property.jsp"%> +<% +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//서버에 파일로 저장 할 때 +//File localFileSave = new File("c:\\test.epp"); +//OutputStream fileStream = new FileOutputStream(localFileSave); + +//클라이언트로 파일을 내릴 때 +String fileName = "report.epp"; +response.setContentType("application/octet-stream; charset=UTF-8"); +response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); +OutputStream fileStream = response.getOutputStream(); + +//클라이언트 브라우져에서 바로 보는 방법(헤더 변경) +//sponse.setContentType("application/epp"); +//OutputStream fileStream = response.getOutputStream(); + +int statusType = ClipReportExport.createExportForEPP(request, fileStream, propertyPath, oof); +//statusType == 0 정상적인 출력 +//statusType == 1 인스톨 오류 +//statusType == 2 oof 문서 오류 +//statusType == 3 리포트 엔진 오류 +//statusType == 4 EPP 출력 오류 +//statusType == 5 리포트의 페이지 0 일 경우 오류 +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/exportForEXCEL.jsp b/src/main/webapp/ClipReport4/export/exportForEXCEL.jsp new file mode 100644 index 0000000..48e3e18 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportForEXCEL.jsp @@ -0,0 +1,75 @@ +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.export.option.ExcelOption"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../Property.jsp"%> +<% +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//서버에 파일로 저장 할 때 +//File localFileSave = new File("c:\\test.xls"); +//OutputStream fileStream = new FileOutputStream(localFileSave); + +//클라이언트로 파일을 내릴 때 +String fileName = "report.xls"; +response.setContentType("application/octet-stream; charset=UTF-8"); +response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); +OutputStream fileStream = response.getOutputStream(); + +//클라이언트 브라우져에서 바로 보는 방법(헤더 변경) +//response.setContentType("application/excel"); +//OutputStream fileStream = response.getOutputStream(); + + +//엑셀저장에 대한 옵션을 설정합니다. +ExcelOption excelOption = new ExcelOption(); +/* exportMethod {Integer} + 0 = 페이지마다 + 1 = 하나의 시트 + 2 = 하나의 시트(페이지 영역 무시) + 3 = 리포트마다 + 4 = 리포트마다 (페이지 영역 무시) + */ + excelOption.setExportMethod(0); +/* mergeCell {Boolean} 셀 합치기*/ +excelOption.setMergeCell(true); +/* mergeEmptyCell {Boolean} 공백 셀일 경우 합치기*/ +excelOption.setMergeEmptyCell(false); +/* splitCellAtPageSize {Boolean} 페이지 크기로 셀 분리*/ +excelOption.setSplitCellAtPageSize(true); +/* rightToLeft {Boolean} 열이 오른쪽에서 왼쪽으로 진행*/ +excelOption.setRightToLeft(false); +/* widthRate {Integer} 가로 비율*/ +excelOption.setWidthRate(100); +/* heightRate {Integer} 세로 비율*/ +excelOption.setHeightRate(100); +/* coordinateErrorLimit {Integer} 좌표 오차 범위*/ +excelOption.setCoordinateErrorLimit(10); +/* processGerenalFormat {Integer} + 0 = 텍스트 + 1 = 일반*/ +excelOption.setProcessGeneralFormat(0); +/* printingMagnification {Integer} 인쇄 확대/축소 비율*/ +excelOption.setPrintingMagnification(100); +/*fitToPageWhenPrinting (Boolean) 출력시 페이지 맞춤*/ +excelOption.setFitToPageWhenPrinting(false); +/*removeHyperlink (Boolean) 하이퍼링크 제거*/ +excelOption.setRemoveHyperlink(false); + + +int statusType = ClipReportExport.createExportForExcel(request, fileStream, propertyPath, oof, excelOption); +//statusType == 0 정상적인 출력 +//statusType == 1 인스톨 오류 +//statusType == 2 oof 문서 오류 +//statusType == 3 리포트 엔진 오류 +//statusType == 4 Excel 출력 오류 +//statusType == 5 리포트의 페이지 0 일 경우 오류 +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/exportForEXCELX.jsp b/src/main/webapp/ClipReport4/export/exportForEXCELX.jsp new file mode 100644 index 0000000..7eb0806 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportForEXCELX.jsp @@ -0,0 +1,72 @@ +<%@page import="com.clipsoft.clipreport.export.option.ExcelXOption"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../Property.jsp"%> +<% +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//서버에 파일로 저장 할 때 +//File localFileSave = new File("c:\\test.xlsx"); +//OutputStream fileStream = new FileOutputStream(localFileSave); + +//클라이언트로 파일을 내릴 때 +String fileName = "report.xlsx"; +response.setContentType("application/octet-stream; charset=UTF-8"); +response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); +OutputStream fileStream = response.getOutputStream(); + +//클라이언트 브라우져에서 바로 보는 방법(헤더 변경) +//response.setContentType("application/excel"); +//OutputStream fileStream = response.getOutputStream(); + + +//엑셀저장에 대한 옵션을 설정합니다. +ExcelXOption excelOption = new ExcelXOption(); +/* exportMethod {Integer} +0 = 페이지마다 +1 = 하나의 시트 +2 = 하나의 시트(페이지 영역 무시) +3 = 리포트마다 +4 = 리포트마다 (페이지 영역 무시) +*/ + excelOption.setExportMethod(0); +/* mergeCell {Boolean} 셀 합치기*/ +excelOption.setMergeCell(true); +/* mergeEmptyCell {Boolean} 공백 셀일 경우 합치기*/ +excelOption.setMergeEmptyCell(false); +/* splitCellAtPageSize {Boolean} 페이지 크기로 셀 분리*/ +excelOption.setSplitCellAtPageSize(true); +/* rightToLeft {Boolean} 열이 오른쪽에서 왼쪽으로 진행*/ +excelOption.setRightToLeft(false); +/* widthRate {Integer} 가로 비율*/ +excelOption.setWidthRate(100); +/* heightRate {Integer} 세로 비율*/ +excelOption.setHeightRate(100); +/* coordinateErrorLimit {Integer} 좌표 오차 범위*/ +excelOption.setCoordinateErrorLimit(10); +/* processGerenalFormat {Integer} + 0 = 텍스트 + 1 = 일반*/ +excelOption.setProcessGeneralFormat(0); +/* printingMagnification {Integer} 인쇄 확대/축소 비율*/ +excelOption.setPrintingMagnification(100); +/*removeHyperlink (Boolean) 하이퍼링크 제거*/ +excelOption.setRemoveHyperlink(false); + +int statusType = ClipReportExport.createExportForExcelX(request, fileStream, propertyPath, oof, excelOption); +//statusType == 0 정상적인 출력 +//statusType == 1 인스톨 오류 +//statusType == 2 oof 문서 오류 +//statusType == 3 리포트 엔진 오류 +//statusType == 4 Excel 출력 오류 +//statusType == 5 리포트의 페이지 0 일 경우 오류 +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/exportForEncryption.jsp b/src/main/webapp/ClipReport4/export/exportForEncryption.jsp new file mode 100644 index 0000000..d0faa4f --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportForEncryption.jsp @@ -0,0 +1,45 @@ +<%@page import="java.io.FileInputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.OutputStream"%> +<%@page import="com.clipsoft.clipreport.server.service.ExportInfo"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% +out.clear(); +out=pageContext.pushBody(); + +ExportInfo exportInfo = ClipReportExport.reportToFile(request, response); +int errorCode = exportInfo.getErrorCode(); +//errorCode == 0 정상 +//errorCode == 1 결과물(document) 파일을 찾을 수 없을 때 오류 +//errorCode == 2 pdf, 바코드에 사용할 html 생성시 오류 + + +//저장한 파일 위치 +System.out.println(exportInfo.getExportfilePath()); +//저장한 파일 확장자 +System.out.println(exportInfo.getFileExtension()); +String dstFile = exportInfo.getExportfilePath(); + +//파일 암호화 구간 + + +//클라이언트로 파일 내리기 +File downloadFile = new File(dstFile); +FileInputStream inStream = new FileInputStream(downloadFile); +// obtains response's output stream +OutputStream outStream = response.getOutputStream(); + +byte[] buffer = new byte[4096]; +int bytesRead = -1; + +while ((bytesRead = inStream.read(buffer)) != -1) { + outStream.write(buffer, 0, bytesRead); +} + +inStream.close(); +outStream.close(); + +//생성한 파일 삭제 +ClipReportExport.deleteToFile(request, exportInfo); +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/exportForHTML5.jsp b/src/main/webapp/ClipReport4/export/exportForHTML5.jsp new file mode 100644 index 0000000..0cd96e3 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportForHTML5.jsp @@ -0,0 +1,32 @@ +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../Property.jsp"%> +<% +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + + +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//서버에 파일로 저장 할 때 +File localFileSave = new File("c:\\test.html"); +OutputStream fileStream = new FileOutputStream(localFileSave); + +//클라이언트로 파일을 내릴 때 +//response.setContentType("text/html"); +//OutputStream fileStream = response.getOutputStream(); + +int statusType = ClipReportExport.createExportForHTML5(request, fileStream, propertyPath, oof, "UTF-8"); +//statusType == 0 정상적인 출력 +//statusType == 1 인스톨 오류 +//statusType == 2 oof 문서 오류 +//statusType == 3 리포트 엔진 오류 +//statusType == 4 html5 출력 오류 +//statusType == 5 리포트의 페이지 0 일 경우 오류 +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/exportForHWP.jsp b/src/main/webapp/ClipReport4/export/exportForHWP.jsp new file mode 100644 index 0000000..f5723b9 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportForHWP.jsp @@ -0,0 +1,67 @@ +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.export.option.HWPOption"%> +<%@page import="com.clipsoft.clipreport.export.option.ExcelOption"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../Property.jsp"%> +<% +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//서버에 파일로 저장 할 때 +File localFileSave = new File("c:\\test.hwp"); +OutputStream fileStream = new FileOutputStream(localFileSave); + +//클라이언트로 파일을 내릴 때 +//String fileName = "report.hwp"; +//response.setContentType("application/octet-stream; charset=UTF-8"); +//response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); +//OutputStream fileStream = response.getOutputStream(); + +//클라이언트 브라우져에서 바로 보는 방법(헤더 변경) +//response.setContentType("application/hwp"); +//OutputStream fileStream = response.getOutputStream(); + + +//한글저장에 대한 옵션을 설정합니다. +HWPOption hwpOption = new HWPOption(); +/* fixSize {Boolean} 크기 고정*/ +hwpOption.setFixSize(true); +/* allowOverlay {Boolean} 겹침 허용*/ +hwpOption.setAllowOverlay(true); +/* setPageBottomMarginToZero {Boolean} 페이지 바닥 여백을 0으로 설정*/ +hwpOption.setSetPageBottomMarginToZero(true); +/* outputLikeWord {Boolean} 글자처럼 출력*/ +hwpOption.setOutputLikeWord(false); +/* tableSplitMethod {Integer} + 0 = 나눔 + 1 = 셀 단위로 나눔 + 2 = 나누지 않음 */ + hwpOption.setTableSplitMethod(1); +/* defaultCharGap {Integer} 기본 자간*/ +hwpOption.setDefaultCharGap(-8); +/* charRatio {Integer} 자평*/ +hwpOption.setCharRatio(100); +/* putCheckboxIntoCell (Boolean) 셀 안에 체크박스 넣기 */ +hwpOption.setPutCheckboxIntoCell(false); +//이웃한 테이블과 병합할 것인지 여부 +hwpOption.setMergeTable(false); +//줄간격 비율(%) +hwpOption.setLineSpaceRate(100); + + +int statusType = ClipReportExport.createExportForHWP(request, fileStream, propertyPath, oof, hwpOption); +//statusType == 0 정상적인 출력 +//statusType == 1 인스톨 오류 +//statusType == 2 oof 문서 오류 +//statusType == 3 리포트 엔진 오류 +//statusType == 4 HWP 출력 오류 +//statusType == 5 리포트의 페이지 0 일 경우 오류 +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/exportForJPG.jsp b/src/main/webapp/ClipReport4/export/exportForJPG.jsp new file mode 100644 index 0000000..fc2ac9a --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportForJPG.jsp @@ -0,0 +1,43 @@ +<%@page import="com.clipsoft.clipreport.export.option.JPGOption"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../Property.jsp"%> +<% + +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + + +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + +//지정한 폴더에 (파일명 + 페이지번호) 저장합니다. +//지정한 폴더에 report1.jpg 로 저장됩니다. +//리포트가 1~3페이지 (여러 페이지)일 경우 report1.jpg, report2.jpg, report3.jpg 저장 됩니다. +String fileName = "c:\\temp1\\test\\report.jpg"; + +JPGOption jpgOption = new JPGOption(); +//저장파일 +jpgOption.setOutputFilename(fileName); +//X DPI 설정 +jpgOption.setDpiX(96); +//Y DPI 설정 +jpgOption.setDpiY(96); +//품질(1~100) +jpgOption.setQuality(100); +//회전 +jpgOption.setRotate90(false); + +int statusType = ClipReportExport.createExportForJPG(request, propertyPath, oof, jpgOption); +//statusType == 0 정상적인 출력 +//statusType == 1 인스톨 오류 +//statusType == 2 oof 문서 오류 +//statusType == 3 리포트 엔진 오류 +//statusType == 4 img 출력 오류 +//statusType == 5 리포트의 페이지 0 일 경우 오류 +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/exportForPDF.jsp b/src/main/webapp/ClipReport4/export/exportForPDF.jsp new file mode 100644 index 0000000..ac9d439 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportForPDF.jsp @@ -0,0 +1,49 @@ +<%@page import="com.clipsoft.clipreport.export.option.PDFOption"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + +//서버에 파일로 저장 할 때 +//File localFileSave = new File("c:\\test.pdf"); +//OutputStream fileStream = new FileOutputStream(localFileSave); + +//클라이언트로 파일을 내릴 때 +//String fileName = "report.pdf"; +//response.setContentType("application/octet-stream; charset=UTF-8"); +//response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); +//OutputStream fileStream = response.getOutputStream(); + +//클라이언트 브라우져에서 바로 보는 방법(헤더 변경) +response.setContentType("application/pdf"); +OutputStream fileStream = response.getOutputStream(); + +PDFOption option = null; +/* +option = new PDFOption(); +option.setUserPassword("사용자(읽기) 암호"); +option.setOwnerPassword("저자(쓰기) 암호"); +option.setTextToImage(true); // 글자를 이미지로 처리 - unicode 처리시 사용 +option.setNumCopies(1); // 프린팅 매수 미리 설정 +option.setImportOriginImage(true); // 원본 이미지 삽입 +option.setNotAllowCopy(true); //text복사 방지 (1.0.0.84 version 부터 적용) +*/ + +int statusType = ClipReportExport.createExportForPDF(request, fileStream, propertyPath, oof, option); +//statusType == 0 정상적인 출력 +//statusType == 1 인스톨 오류 +//statusType == 2 oof 문서 오류 +//statusType == 3 리포트 엔진 오류 +//statusType == 4 PDF 출력 오류 +//statusType == 5 리포트의 페이지 0 일 경우 오류 +%> diff --git a/src/main/webapp/ClipReport4/export/exportForPPT.jsp b/src/main/webapp/ClipReport4/export/exportForPPT.jsp new file mode 100644 index 0000000..a1deeb6 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportForPPT.jsp @@ -0,0 +1,45 @@ +<%@page import="com.clipsoft.clipreport.export.option.PPTOption"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../Property.jsp"%> +<% +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//서버에 파일로 저장 할 때 +File localFileSave = new File("c:\\test.ppt"); +OutputStream fileStream = new FileOutputStream(localFileSave); + +//클라이언트로 파일을 내릴 때 +//String fileName = "report.ppt"; +//response.setContentType("application/octet-stream; charset=UTF-8"); +//response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); +//OutputStream fileStream = response.getOutputStream(); + +//클라이언트 브라우져에서 바로 보는 방법(헤더 변경) +//response.setContentType("application/ppt"); +//OutputStream fileStream = response.getOutputStream(); + +PPTOption pptOption = new PPTOption(); + +//이웃한 테이블과 병합할 것인지 여부 +pptOption.setMergeTable(false); +//행간에 라인 영역 무시 +pptOption.setIgnoreLineSpace(true); + +int statusType = ClipReportExport.createExportForPPT(request, fileStream, propertyPath, oof, pptOption); +//statusType == 0 정상적인 출력 +//statusType == 1 인스톨 오류 +//statusType == 2 oof 문서 오류 +//statusType == 3 리포트 엔진 오류 +//statusType == 4 PPT 출력 오류 +//statusType == 5 리포트의 페이지 0 일 경우 오류 +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/exportForPageBase64Image.jsp b/src/main/webapp/ClipReport4/export/exportForPageBase64Image.jsp new file mode 100644 index 0000000..6cdf460 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportForPageBase64Image.jsp @@ -0,0 +1,41 @@ +<%@page import="com.clipsoft.clipreport.export.option.JPGOption"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + + +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + +//클라이언트 브라우져에서 바로 보는 방법(헤더 변경) +response.setContentType("text/html; charset=UTF-8"); +OutputStream fileStream = response.getOutputStream(); + +JPGOption jpgOption = new JPGOption(); +//X DPI 설정 +jpgOption.setDpiX(96); +//Y DPI 설정 +jpgOption.setDpiY(96); +//품질(1~100) +jpgOption.setQuality(100); +//회전 +jpgOption.setRotate90(false); + +int pageNumber = 1; + +int statusType = ClipReportExport.createExportForPageBase64Image(request, fileStream, propertyPath, oof, jpgOption, pageNumber); +//statusType == 0 정상적인 출력 +//statusType == 1 인스톨 오류 +//statusType == 2 oof 문서 오류 +//statusType == 3 리포트 엔진 오류 +//statusType == 4 img 출력 오류 +//statusType == 5 리포트의 페이지 0 일 경우 오류 +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/exportForPageImage.jsp b/src/main/webapp/ClipReport4/export/exportForPageImage.jsp new file mode 100644 index 0000000..44363fc --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportForPageImage.jsp @@ -0,0 +1,51 @@ +<%@page import="com.clipsoft.clipreport.export.option.JPGOption"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../Property.jsp"%> +<% + +String is_svg = request.getParameter("is_svg"); +if(null == is_svg && !"true".equals(is_svg)){ + is_svg = "jpg"; +} +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + + +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + +//클라이언트 브라우져에서 바로 보는 방법(헤더 변경) +if(is_svg.equals("jpg")){ + response.setContentType("image/jpg"); +} +else{ + response.setContentType("image/svg+xml"); +} +OutputStream fileStream = response.getOutputStream(); + +JPGOption jpgOption = new JPGOption(); +//X DPI 설정 +jpgOption.setDpiX(96); +//Y DPI 설정 +jpgOption.setDpiY(96); +//품질(1~100) +jpgOption.setQuality(100); +//회전 +jpgOption.setRotate90(false); + +int pageNumber = 1; + +int statusType = ClipReportExport.createExportForPageImage(request, fileStream, propertyPath, oof, jpgOption, pageNumber, is_svg); +//statusType == 0 정상적인 출력 +//statusType == 1 인스톨 오류 +//statusType == 2 oof 문서 오류 +//statusType == 3 리포트 엔진 오류 +//statusType == 4 img 출력 오류 +//statusType == 5 리포트의 페이지 0 일 경우 오류 +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/exportForPrintEncryption.jsp b/src/main/webapp/ClipReport4/export/exportForPrintEncryption.jsp new file mode 100644 index 0000000..4255f13 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportForPrintEncryption.jsp @@ -0,0 +1,40 @@ +<%@page import="java.io.FileInputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.OutputStream"%> +<%@page import="com.clipsoft.clipreport.server.service.ExportInfo"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% +out.clear(); +out=pageContext.pushBody(); + +ExportInfo exportInfo = ClipReportExport.reportToCAB(request, response); +//저장한 pdf 파일 위치 +System.out.println(exportInfo.getExportfilePath()); +//바코드에 사용할 저장한 html 파일 위치 +System.out.println(exportInfo.getExportDataFilePath()); + +String dstFile = exportInfo.getExportfilePath(); +//DRM PDF 로 변환(변환된 파일주소를 dstFile 변수에 넣어주시면 됩니다.) + + + +//변환된 pdf 클라이언트로 파일 내리기 +File downloadFile = new File(dstFile); +FileInputStream inStream = new FileInputStream(downloadFile); +// obtains response's output stream +OutputStream outStream = response.getOutputStream(); + +byte[] buffer = new byte[4096]; +int bytesRead = -1; + +while ((bytesRead = inStream.read(buffer)) != -1) { + outStream.write(buffer, 0, bytesRead); +} + +inStream.close(); +outStream.close(); + +//생성한 파일 삭제 +ClipReportExport.deleteToFile(exportInfo); +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/exportForRTF.jsp b/src/main/webapp/ClipReport4/export/exportForRTF.jsp new file mode 100644 index 0000000..f595aa4 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportForRTF.jsp @@ -0,0 +1,58 @@ +<%@page import="com.clipsoft.clipreport.export.option.RTFOption"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../Property.jsp"%> +<% +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//서버에 파일로 저장 할 때 +File localFileSave = new File("c:\\test.doc"); +OutputStream fileStream = new FileOutputStream(localFileSave); + +//클라이언트로 파일을 내릴 때 +//String fileName = "report.doc"; +//response.setContentType("application/octet-stream; charset=UTF-8"); +//response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); +//OutputStream fileStream = response.getOutputStream(); + + +//DOC 저장에 대한 옵션을 설정합니다. +RTFOption rtfOption = new RTFOption(); + +//기본 자간 +rtfOption.setDefaultCharSpace(-0.5f); +//균등 분할 처리 방법 +//0=왼쪽 정렬 +//1=오른쪽 정렬 +//2=가운데 정렬 +//3=양쪽 정렬 +rtfOption.setProcessEqualAlign(3); +//리포트에 출력된 것 처럼 문자열을 여러줄로 잘라서 표현할지 여부 +rtfOption.setSplitTextByLine(true); +//text을 유니코드로 처리할지 여부 +rtfOption.setProcessAsUnicode(true); +//이웃한 테이블과 병합할 것인지 여부 +rtfOption.setMergeTable(false); +//테이블을 감싸는 객체를 삽입할 것인지 여부 +rtfOption.setInsertTableWrapper(true); +//테이블을 감싸는 레이아웃와 테이블의 아래쪽 간격 +rtfOption.setTableWrapperBottomGap(0); + + +int statusType = ClipReportExport.createExportForRTF(request, fileStream, propertyPath, oof, rtfOption); +//statusType == 0 정상적인 출력 +//statusType == 1 인스톨 오류 +//statusType == 2 oof 문서 오류 +//statusType == 3 리포트 엔진 오류 +//statusType == 4 RTF 출력 오류 +//statusType == 5 리포트의 페이지 0 일 경우 오류 +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/exportForSVGFile.jsp b/src/main/webapp/ClipReport4/export/exportForSVGFile.jsp new file mode 100644 index 0000000..586222d --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportForSVGFile.jsp @@ -0,0 +1,85 @@ +<%@page import="java.io.OutputStreamWriter"%> +<%@page import="java.io.BufferedWriter"%> +<%@page import="java.io.InputStreamReader"%> +<%@page import="java.io.FileInputStream"%> +<%@page import="java.io.BufferedReader"%> +<%@page import="java.io.PrintWriter"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//oof 문서 생성 +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + +//리포트 결과가 svg 파일배열로 반환합니다. +File[] svgFileList = ClipReportExport.createExportForSVGFile(request, propertyPath, oof.toString()); + +//화면 구성 html +response.setContentType("text/html"); +response.setCharacterEncoding("UTF-8"); +OutputStream fileStream = response.getOutputStream(); +BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(fileStream, "UTF-8")); + + +writer.append(""); +writer.append(""); +writer.append(""); +writer.append(""); +writer.append(""); +writer.append(""); +writer.append(""); +writer.append("
"); +writer.append(""); +writer.append(""); +writer.append("
"); + +//파일배열의 svg를 String 읽어서 html 로 구성합니다. +for(int i=0; i"); + BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(svgFileList[i]), "UTF-8")); + String s; + while ((s = in.readLine()) != null) { + writer.append(s); + } + in.close(); + writer.append(""); +} + +writer.append(""); +writer.append(""); + +writer.close(); +fileStream.close(); +//파일 배열 삭제 + +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/exportForTIF.jsp b/src/main/webapp/ClipReport4/export/exportForTIF.jsp new file mode 100644 index 0000000..9f71bd3 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/exportForTIF.jsp @@ -0,0 +1,45 @@ +<%@page import="com.clipsoft.clipreport.export.option.TIFOption"%> +<%@page import="com.clipsoft.clipreport.export.option.JPGOption"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../Property.jsp"%> +<% + +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + + +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + + +//서버에 지정 폴더 저장 할 때 +String fileName = "c:\\temp1\\report.tif"; + +TIFOption tifOption = new TIFOption(); +//저장파일 +tifOption.setOutputFilename(fileName); +//X DPI 설정 +tifOption.setDpiX(96); +//Y DPI 설정 +tifOption.setDpiY(96); +//흑백 여부 +tifOption.setBlackWhite(false); +//멀티페이지 +tifOption.setMultiPage(false); +//회전 +tifOption.setRotate90(false); + +int statusType = ClipReportExport.createExportForTIF(request, propertyPath, oof, tifOption); +//statusType == 0 정상적인 출력 +//statusType == 1 인스톨 오류 +//statusType == 2 oof 문서 오류 +//statusType == 3 리포트 엔진 오류 +//statusType == 4 img 출력 오류 +//statusType == 5 리포트의 페이지 0 일 경우 오류 +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/ftp/ftpSample.jsp b/src/main/webapp/ClipReport4/export/ftp/ftpSample.jsp new file mode 100644 index 0000000..a8bc629 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/ftp/ftpSample.jsp @@ -0,0 +1,34 @@ +<%@page import="com.clipsoft.clipreport.ReportUtil"%> +<%@page import="com.clipsoft.clipreport.common.enums.FtpEnterMode"%> +<%@page import="com.clipsoft.clipreport.common.server.util.FtpParameter"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%><% +/************************************ +아래의 예제는 ftp를 통한 파일 전송 예제 입니다. +별도의 export (pdf, excel, ppt 등) 와 함께 사용하여 사용 하실 수 있습니다. +ftp에 대한 결과 메시지(message)를 통하여 정상적으로 전송이 되었는지 알 수 있습니다 +************************************/ +FtpParameter ftpParameter = new FtpParameter(); +ftpParameter.setFtpSync(true); +ftpParameter.setFtpEnterMode(FtpEnterMode.PASSIVE); +ftpParameter.setFtpServerIp("192.168.1.27"); //전송할 서버 IP +ftpParameter.setFtpServerPort("21"); //전송할 서버 FTP PORT +ftpParameter.setFtpAccount("aaa"); //ID +ftpParameter.setFtpPassword("aaa"); //PASSWORD +ftpParameter.setFilePaths("c:\\temp1\\"); +ftpParameter.setFileNames("font.crf"); +ftpParameter.setUploadFtpPaths("/test"); //전송할 위치 +ftpParameter.setEncoding("UTF-8"); //전송할 인코딩 설정 +String message = ReportUtil.sendFTP(ftpParameter); + +%> + + + + +FTP Sample + + +<%=message%> + + \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/keyToExport/exportForEngine.jsp b/src/main/webapp/ClipReport4/export/keyToExport/exportForEngine.jsp new file mode 100644 index 0000000..f6f5e60 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/keyToExport/exportForEngine.jsp @@ -0,0 +1,27 @@ +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//파라미터 +//String param1 = request.getParameter("param1"); +//String param2 = request.getParameter("param2"); + + +//위에서 받은 파라미터로 OOF를 구성 +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + + +response.setContentType("text/html"); +OutputStream fileStream = response.getOutputStream(); + +ClipReportExport.createExportForEngine(request, fileStream, propertyPath, oof.toString()); +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/keyToExport/exportForPartBMP.jsp b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartBMP.jsp new file mode 100644 index 0000000..6d7ecf5 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartBMP.jsp @@ -0,0 +1,51 @@ +<%@page import="com.clipsoft.clipreport.export.option.BMPOption"%> +<%@page import="com.clipsoft.clipreport.export.option.JPGOption"%> +<%@page import="com.clipsoft.clipreport.server.service.ExportInfo"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//리포트 키를 받아서 처리 합니다. (report_key 파라미터 이름은 변경하여도 상관 없습니다) +String report_key = request.getParameter("report_key"); + +if(null != report_key){ + //지정한 폴더에 (파일명 + 페이지번호) 저장합니다. + //지정한 폴더에 report1.bmp 로 저장됩니다. + //리포트가 1~3페이지 (여러 페이지)일 경우 report1.bmp, report2.bmp, report3.bmp 저장 됩니다. + String fileName = "c:\\temp1\\test\\report.bmp"; + + BMPOption bmpOption = new BMPOption(); + //저장파일 + bmpOption.setOutputFilename(fileName); + //X DPI 설정 + bmpOption.setDpiX(96); + //Y DPI 설정 + bmpOption.setDpiY(96); + //회전 + bmpOption.setRotate90(false); + //흑백설정 + bmpOption.setBlackWhite(true); + + //아래와 같이 기존 사용방법의 함수를 사용할 경우 propertyPath의 경로가 아래의 주석위치로 지정됩니다. + //request.getSession().getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "clipreport4" + File.separator + "clipreport4.properties"; + //ExportInfo exportInfo = ClipReportExport.createExportForPartBMP(request, report_key, bmpOption); + + ExportInfo exportInfo = ClipReportExport.createExportForPartBMP(request, report_key, bmpOption, propertyPath); + int errorCode = exportInfo.getErrorCode(); + //errorCode == 0 정상 + //errorCode == 1 세션안에 리포트정보가 없을 때 오류 + //errorCode == 2 리포트 서버가 설치가 안되어 있을 때 오류 + //errorCode == 3 결과물(document) 파일을 찾지 못할 때 발생하는 오류 + //errorCode == 4 jpg 파일 생성 오류 + //errorCode == 5 리포트의 페이지 0 일 경우 오류 + + //리포트 총 페이지 수 + //System.out.println(exportInfo.getPageCount()); +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/keyToExport/exportForPartEPP.jsp b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartEPP.jsp new file mode 100644 index 0000000..332d862 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartEPP.jsp @@ -0,0 +1,43 @@ +<%@page import="com.clipsoft.clipreport.server.service.ExportInfo"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//리포트 키를 받아서 처리 합니다. (report_key 파라미터 이름은 변경하여도 상관 없습니다) +String report_key = request.getParameter("report_key"); + +if(null != report_key){ + //서버에 파일로 저장 할 때 + //File localFileSave = new File("c:\\test.epp"); + //OutputStream fileStream = new FileOutputStream(localFileSave); + + //클라이언트로 파일을 내릴 때 + String fileName = "report.epp"; + response.setContentType("application/octet-stream; charset=UTF-8"); + response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); + OutputStream fileStream = response.getOutputStream(); + + //클라이언트 브라우져에서 바로 보는 방법(헤더 변경) + //sponse.setContentType("application/epp"); + //OutputStream fileStream = response.getOutputStream(); + + //아래와 같이 기존 사용방법의 함수를 사용할 경우 propertyPath의 경로가 아래의 주석위치로 지정됩니다. + //request.getSession().getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "clipreport4" + File.separator + "clipreport4.properties"; + //ExportInfo exportInfo = ClipReportExport.createExportForPartEPP(request, report_key, fileStream); + + ExportInfo exportInfo = ClipReportExport.createExportForPartEPP(request, report_key, fileStream, propertyPath); + int errorCode = exportInfo.getErrorCode(); + // errorCode == 0 정상 + // errorCode == 1 세션안에 리포트정보가 없을 때 오류 + // errorCode == 2 리포트 서버가 설치가 안되어 있을 때 오류 + // errorCode == 3 결과물(document) 파일을 찾지 못할 때 발생하는 오류 + // errorCode == 4 EPP 파일 생성 오류 + //errorCode == 5 리포트의 페이지 0 일 경우 오류 +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/keyToExport/exportForPartEXCEL.jsp b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartEXCEL.jsp new file mode 100644 index 0000000..b725065 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartEXCEL.jsp @@ -0,0 +1,72 @@ +<%@page import="com.clipsoft.clipreport.server.service.ExportInfo"%> +<%@page import="com.clipsoft.clipreport.export.option.ExcelOption"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//리포트 키를 받아서 처리 합니다. (report_key 파라미터 이름은 변경하여도 상관 없습니다) +String report_key = request.getParameter("report_key"); + +if(null != report_key){ + //서버에 파일로 저장 할 때 + //File localFileSave = new File("c:\\test.xls"); + //OutputStream fileStream = new FileOutputStream(localFileSave); + + //클라이언트로 파일을 내릴 때 + String fileName = "report.xls"; + response.setContentType("application/octet-stream; charset=UTF-8"); + response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); + OutputStream fileStream = response.getOutputStream(); + + + //엑셀저장에 대한 옵션을 설정합니다. + ExcelOption excelOption = new ExcelOption(); + /* exportMethod {Integer} + 0 = 페이지 마다 하나의 시트로 + 1 = 페이지를 연속 저장 + 2 = 섹션을 연속하여 저장 + 3 = 리포트마다 섹션을 연속하여 저장*/ + excelOption.setExportMethod(0); + /* mergeCell {Boolean} 셀 합치기*/ + excelOption.setMergeCell(true); + /* mergeEmptyCell {Boolean} 공백 셀일 경우 합치기*/ + excelOption.setMergeEmptyCell(false); + /* splitCellAtPageSize {Boolean} 페이지 크기로 셀 분리*/ + excelOption.setSplitCellAtPageSize(true); + /* rightToLeft {Boolean} 열이 오른쪽에서 왼쪽으로 진행*/ + excelOption.setRightToLeft(false); + /* widthRate {Integer} 가로 비율*/ + excelOption.setWidthRate(100); + /* heightRate {Integer} 세로 비율*/ + excelOption.setHeightRate(100); + /* coordinateErrorLimit {Integer} 좌표 오차 범위*/ + excelOption.setCoordinateErrorLimit(10); + /* processGerenalFormat {Integer} + 0 = 텍스트 + 1 = 일반*/ + excelOption.setProcessGeneralFormat(0); + /* printingMagnification {Integer} 인쇄 확대/축소 비율*/ + excelOption.setPrintingMagnification(100); + /*removeHyperlink (Boolean) 하이퍼링크 제거*/ + excelOption.setRemoveHyperlink(false); + + //아래와 같이 기존 사용방법의 함수를 사용할 경우 propertyPath의 경로가 아래의 주석위치로 지정됩니다. + //request.getSession().getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "clipreport4" + File.separator + "clipreport4.properties"; + //ExportInfo exportInfo = ClipReportExport.createExportForPartExcel(request, report_key, fileStream, excelOption); + + ExportInfo exportInfo = ClipReportExport.createExportForPartExcel(request, report_key, fileStream, excelOption, propertyPath); + int errorCode = exportInfo.getErrorCode(); + //errorCode == 0 정상 + //errorCode == 1 세션안에 리포트정보가 없을 때 오류 + //errorCode == 2 리포트 서버가 설치가 안되어 있을 때 오류 + //errorCode == 3 결과물(document) 파일을 찾지 못할 때 발생하는 오류 + //errorCode == 4 Excel 파일 생성 오류 + //errorCode == 5 리포트의 페이지 0 일 경우 오류 +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/keyToExport/exportForPartHTML5.jsp b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartHTML5.jsp new file mode 100644 index 0000000..1b9baf8 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartHTML5.jsp @@ -0,0 +1,39 @@ +<%@page import="com.clipsoft.clipreport.server.service.ExportInfo"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% + +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); +//리포트 키를 받아서 처리 합니다. (report_key 파라미터 이름은 변경하여도 상관 없습니다) +String report_key = request.getParameter("report_key"); + +if(null != report_key){ + //서버에 파일로 저장 할 때 + File localFileSave = new File("c:\\test.html"); + OutputStream fileStream = new FileOutputStream(localFileSave); + + //클라이언트로 파일을 내릴 때 + //response.setContentType("text/html"); + //OutputStream fileStream = response.getOutputStream(); + + //아래와 같이 기존 사용방법의 함수를 사용할 경우 propertyPath의 경로가 아래의 주석위치로 지정됩니다. + //request.getSession().getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "clipreport4" + File.separator + "clipreport4.properties"; + //ExportInfo exportInfo = ClipReportExport.createExportForPartHTML5(request, report_key, fileStream, "UTF-8"); + + ExportInfo exportInfo = ClipReportExport.createExportForPartHTML5(request, report_key, fileStream, "UTF-8", propertyPath); + int errorCode = exportInfo.getErrorCode(); + //errorCode == 0 정상 + //errorCode == 1 세션안에 리포트정보가 없을 때 오류 + //errorCode == 2 리포트 서버가 설치가 안되어 있을 때 오류 + //errorCode == 3 결과물(document) 파일을 찾지 못할 때 발생하는 오류 + //errorCode == 4 HTML5 파일 생성 오류 + //errorCode == 5 리포트의 페이지 0 일 경우 오류 +} + + +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/keyToExport/exportForPartHTML5Print.jsp b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartHTML5Print.jsp new file mode 100644 index 0000000..beffeda --- /dev/null +++ b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartHTML5Print.jsp @@ -0,0 +1,41 @@ +<%@page import="com.clipsoft.clipreport.server.service.ExportInfo"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% + +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); +//리포트 키를 받아서 처리 합니다. (report_key 파라미터 이름은 변경하여도 상관 없습니다) +String report_key = request.getParameter("report_key"); + +if(null != report_key){ + //서버에 파일로 저장 할 때 + //File localFileSave = new File("c:\\test.html"); + //OutputStream fileStream = new FileOutputStream(localFileSave); + + //클라이언트로 파일을 내릴 때 + response.setContentType("text/html"); + OutputStream fileStream = response.getOutputStream(); + + String script = "window.print();"; + + //아래와 같이 기존 사용방법의 함수를 사용할 경우 propertyPath의 경로가 아래의 주석위치로 지정됩니다. + //request.getSession().getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "clipreport4" + File.separator + "clipreport4.properties"; + //ExportInfo exportInfo = ClipReportExport.createExportForPartHTML5Print(request, report_key, fileStream, "UTF-8", script); + + ExportInfo exportInfo = ClipReportExport.createExportForPartHTML5Print(request, report_key, fileStream, "UTF-8", script, propertyPath); + int errorCode = exportInfo.getErrorCode(); + //errorCode == 0 정상 + //errorCode == 1 세션안에 리포트정보가 없을 때 오류 + //errorCode == 2 리포트 서버가 설치가 안되어 있을 때 오류 + //errorCode == 3 결과물(document) 파일을 찾지 못할 때 발생하는 오류 + //errorCode == 4 HTML5 파일 생성 오류 + //errorCode == 5 리포트의 페이지 0 일 경우 오류 +} + + +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/keyToExport/exportForPartHWP.jsp b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartHWP.jsp new file mode 100644 index 0000000..3ef68a9 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartHWP.jsp @@ -0,0 +1,72 @@ +<%@page import="com.clipsoft.clipreport.server.service.ExportInfo"%> +<%@page import="com.clipsoft.clipreport.export.option.HWPOption"%> +<%@page import="com.clipsoft.clipreport.export.option.ExcelOption"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//리포트 키를 받아서 처리 합니다. (report_key 파라미터 이름은 변경하여도 상관 없습니다) +String report_key = request.getParameter("report_key"); + +if(null != report_key){ + //서버에 파일로 저장 할 때 + File localFileSave = new File("c:\\test.hwp"); + OutputStream fileStream = new FileOutputStream(localFileSave); + + //클라이언트로 파일을 내릴 때 + //String fileName = "report.hwp"; + //response.setContentType("application/octet-stream; charset=UTF-8"); + //response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); + //OutputStream fileStream = response.getOutputStream(); + + //클라이언트 브라우져에서 바로 보는 방법(헤더 변경) + //response.setContentType("application/hwp"); + //OutputStream fileStream = response.getOutputStream(); + + + //한글저장에 대한 옵션을 설정합니다. + HWPOption hwpOption = new HWPOption(); + /* fixSize {Boolean} 크기 고정*/ + hwpOption.setFixSize(true); + /* allowOverlay {Boolean} 겹침 허용*/ + hwpOption.setAllowOverlay(true); + /* setPageBottomMarginToZero {Boolean} 페이지 바닥 여백을 0으로 설정*/ + hwpOption.setSetPageBottomMarginToZero(true); + /* outputLikeWord {Boolean} 글자처럼 출력*/ + hwpOption.setOutputLikeWord(false); + /* tableSplitMethod {Integer} + 0 = 나눔 + 1 = 셀 단위로 나눔 + 2 = 나누지 않음 */ + hwpOption.setTableSplitMethod(1); + /* defaultCharGap {Integer} 기본 자간*/ + hwpOption.setDefaultCharGap(-8); + /* charRatio {Integer} 자평*/ + hwpOption.setCharRatio(100); + /* putCheckboxIntoCell (Boolean) 셀 안에 체크박스 넣기 */ + hwpOption.setPutCheckboxIntoCell(false); + //이웃한 테이블과 병합할 것인지 여부 + hwpOption.setMergeTable(false); + //줄간격 비율(%) + hwpOption.setLineSpaceRate(100); + + //아래와 같이 기존 사용방법의 함수를 사용할 경우 propertyPath의 경로가 아래의 주석위치로 지정됩니다. + //request.getSession().getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "clipreport4" + File.separator + "clipreport4.properties"; + //ExportInfo exportInfo = ClipReportExport.createExportForPartHWP(request, report_key, fileStream, hwpOption); + + ExportInfo exportInfo = ClipReportExport.createExportForPartHWP(request, report_key, fileStream, hwpOption, propertyPath); + int errorCode = exportInfo.getErrorCode(); + //errorCode == 0 정상 + //errorCode == 1 세션안에 리포트정보가 없을 때 오류 + //errorCode == 2 리포트 서버가 설치가 안되어 있을 때 오류 + //errorCode == 3 결과물(document) 파일을 찾지 못할 때 발생하는 오류 + //errorCode == 4 HWP 파일 생성 오류 + //errorCode == 5 리포트의 페이지 0 일 경우 오류 +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/keyToExport/exportForPartJPG.jsp b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartJPG.jsp new file mode 100644 index 0000000..2fabc25 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartJPG.jsp @@ -0,0 +1,50 @@ +<%@page import="com.clipsoft.clipreport.export.option.JPGOption"%> +<%@page import="com.clipsoft.clipreport.server.service.ExportInfo"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//리포트 키를 받아서 처리 합니다. (report_key 파라미터 이름은 변경하여도 상관 없습니다) +String report_key = request.getParameter("report_key"); + +if(null != report_key){ + //지정한 폴더에 (파일명 + 페이지번호) 저장합니다. + //지정한 폴더에 report1.jpg 로 저장됩니다. + //리포트가 1~3페이지 (여러 페이지)일 경우 report1.jpg, report2.jpg, report3.jpg 저장 됩니다. + String fileName = "c:\\temp1\\test\\report.jpg"; + + JPGOption jpgOption = new JPGOption(); + //저장파일 + jpgOption.setOutputFilename(fileName); + //X DPI 설정 + jpgOption.setDpiX(96); + //Y DPI 설정 + jpgOption.setDpiY(96); + //품질(1~100) + jpgOption.setQuality(100); + //회전 + jpgOption.setRotate90(false); + + //아래와 같이 기존 사용방법의 함수를 사용할 경우 propertyPath의 경로가 아래의 주석위치로 지정됩니다. + //request.getSession().getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "clipreport4" + File.separator + "clipreport4.properties"; + //ExportInfo exportInfo = ClipReportExport.createExportForPartJPG(request, report_key, jpgOption); + + ExportInfo exportInfo = ClipReportExport.createExportForPartJPG(request, report_key, jpgOption, propertyPath); + int errorCode = exportInfo.getErrorCode(); + //errorCode == 0 정상 + //errorCode == 1 세션안에 리포트정보가 없을 때 오류 + //errorCode == 2 리포트 서버가 설치가 안되어 있을 때 오류 + //errorCode == 3 결과물(document) 파일을 찾지 못할 때 발생하는 오류 + //errorCode == 4 jpg 파일 생성 오류 + //errorCode == 5 리포트의 페이지 0 일 경우 오류 + + //리포트 총 페이지 수 + //System.out.println(exportInfo.getPageCount()); +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/keyToExport/exportForPartPDF.jsp b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartPDF.jsp new file mode 100644 index 0000000..8f13930 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartPDF.jsp @@ -0,0 +1,59 @@ +<%@page import="com.clipsoft.clipreport.server.service.ExportInfo"%> +<%@page import="com.clipsoft.clipreport.export.option.PDFOption"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//리포트 키를 받아서 처리 합니다. (report_key 파라미터 이름은 변경하여도 상관 없습니다) +String report_key = request.getParameter("report_key"); + +if(null != report_key){ + //서버에 파일로 저장 할 때 + File localFileSave = new File("c:\\temp1\\test\\report.pdf"); + OutputStream fileStream = new FileOutputStream(localFileSave); + + //클라이언트로 파일을 내릴 때 + //String fileName = "report.pdf"; + //response.setContentType("application/octet-stream; charset=UTF-8"); + //response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); + //OutputStream fileStream = response.getOutputStream(); + + //클라이언트 브라우져에서 바로 보는 방법(헤더 변경) + //response.setContentType("application/pdf"); + //OutputStream fileStream = response.getOutputStream(); + + PDFOption option = new PDFOption(); + /* + option = new PDFOption(); + option.setUserPassword("사용자(읽기) 암호"); + option.setOwnerPassword("저자(쓰기) 암호"); + option.setTextToImage(true); // 글자를 이미지로 처리 - unicode 처리시 사용 + option.setImportOriginImage(true); // 원본 이미지 삽입 + option.setNotAllowCopy(true); //text복사 방지 (1.0.0.84 version 부터 적용) + */ + + //아래와 같이 기존 사용방법의 함수를 사용할 경우 propertyPath의 경로가 아래의 주석위치로 지정됩니다. + //request.getSession().getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "clipreport4" + File.separator + "clipreport4.properties"; + //ExportInfo exportInfo = ClipReportExport.createExportForPartPDF(request, report_key, fileStream, option); + + ExportInfo exportInfo = ClipReportExport.createExportForPartPDF(request, report_key, fileStream, option, propertyPath); + //1페이지 부터 2페이지까지 pdf 생성 합니다. + //만약 5페이지의 리포트가 있을 때 2부터 6까지 설정한다면 2페이지부터 5페이지까지 pdf가 생성됩니다. + //int startNum = 1; + //int endNum = 2; + //ExportInfo exportInfo = ClipReportExport.createExportForPartPDF(request, report_key, fileStream, option, startNum, endNum, propertyPath); + int errorCode = exportInfo.getErrorCode(); + //errorCode == 0 정상 + //errorCode == 1 세션안에 리포트정보가 없을 때 오류 + //errorCode == 2 리포트 서버가 설치가 안되어 있을 때 오류 + //errorCode == 3 결과물(document) 파일을 찾지 못할 때 발생하는 오류 + //errorCode == 4 PDF 파일 생성 오류 + //errorCode == 5 리포트의 페이지 0 일 경우 오류 +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/keyToExport/exportForPartPPT.jsp b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartPPT.jsp new file mode 100644 index 0000000..198f532 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartPPT.jsp @@ -0,0 +1,51 @@ +<%@page import="com.clipsoft.clipreport.server.service.ExportInfo"%> +<%@page import="com.clipsoft.clipreport.export.option.PPTOption"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//리포트 키를 받아서 처리 합니다. (report_key 파라미터 이름은 변경하여도 상관 없습니다) +String report_key = request.getParameter("report_key"); + +if(null != report_key){ + //서버에 파일로 저장 할 때 + File localFileSave = new File("c:\\test.ppt"); + OutputStream fileStream = new FileOutputStream(localFileSave); + + //클라이언트로 파일을 내릴 때 + //String fileName = "report.ppt"; + //response.setContentType("application/octet-stream; charset=UTF-8"); + //response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); + //OutputStream fileStream = response.getOutputStream(); + + //클라이언트 브라우져에서 바로 보는 방법(헤더 변경) + //response.setContentType("application/ppt"); + //OutputStream fileStream = response.getOutputStream(); + + PPTOption pptOption = new PPTOption(); + + //이웃한 테이블과 병합할 것인지 여부 + pptOption.setMergeTable(false); + //행간에 라인 영역 무시 + pptOption.setIgnoreLineSpace(true); + + //아래와 같이 기존 사용방법의 함수를 사용할 경우 propertyPath의 경로가 아래의 주석위치로 지정됩니다. + //request.getSession().getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "clipreport4" + File.separator + "clipreport4.properties"; + //ExportInfo exportInfo = ClipReportExport.createExportForPartPPT(request, report_key, fileStream, pptOption); + + ExportInfo exportInfo = ClipReportExport.createExportForPartPPT(request, report_key, fileStream, pptOption, propertyPath); + int errorCode = exportInfo.getErrorCode(); + //errorCode == 0 정상 + //errorCode == 1 세션안에 리포트정보가 없을 때 오류 + //errorCode == 2 리포트 서버가 설치가 안되어 있을 때 오류 + //errorCode == 3 결과물(document) 파일을 찾지 못할 때 발생하는 오류 + //errorCode == 4 PPT 파일 생성 오류 + //errorCode == 5 리포트의 페이지 0 일 경우 오류 +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/keyToExport/exportForPartTIF.jsp b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartTIF.jsp new file mode 100644 index 0000000..8e3f78c --- /dev/null +++ b/src/main/webapp/ClipReport4/export/keyToExport/exportForPartTIF.jsp @@ -0,0 +1,53 @@ +<%@page import="com.clipsoft.clipreport.export.option.TIFOption"%> +<%@page import="com.clipsoft.clipreport.server.service.ExportInfo"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//리포트 키를 받아서 처리 합니다. (report_key 파라미터 이름은 변경하여도 상관 없습니다) +String report_key = request.getParameter("report_key"); + +if(null != report_key){ + + String fileName = "c:\\temp1\\report.tif"; + + TIFOption tifOption = new TIFOption(); + //저장파일 + tifOption.setOutputFilename(fileName); + //X DPI 설정 + tifOption.setDpiX(96); + //Y DPI 설정 + tifOption.setDpiY(96); + //흑백 여부 + tifOption.setBlackWhite(false); + //멀티페이지 설정 + //멀티페이지가 false 일경우 지정한 폴더에 (파일명 + 페이지번호) 저장합니다. + //지정한 폴더에 report1.jpg 로 저장됩니다. + //리포트가 1~3페이지 (여러 페이지)일 경우 report1.jpg, report2.jpg, report3.jpg 저장 됩니다. + tifOption.setMultiPage(true); + //회전 + tifOption.setRotate90(false); + + //아래와 같이 기존 사용방법의 함수를 사용할 경우 propertyPath의 경로가 아래의 주석위치로 지정됩니다. + //request.getSession().getServletContext().getRealPath("/") + File.separator + "WEB-INF" + File.separator + "clipreport4" + File.separator + "clipreport4.properties"; + //ExportInfo exportInfo = ClipReportExport.createExportForPartTIF(request, report_key, tifOption); + + ExportInfo exportInfo = ClipReportExport.createExportForPartTIF(request, report_key, tifOption, propertyPath); + int errorCode = exportInfo.getErrorCode(); + //errorCode == 0 정상 + //errorCode == 1 세션안에 리포트정보가 없을 때 오류 + //errorCode == 2 리포트 서버가 설치가 안되어 있을 때 오류 + //errorCode == 3 결과물(document) 파일을 찾지 못할 때 발생하는 오류 + //errorCode == 4 jpg 파일 생성 오류 + //errorCode == 5 리포트의 페이지 0 일 경우 오류 + + //리포트 총 페이지 수 + //System.out.println(exportInfo.getPageCount()); +} +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/keyToMergeExport/exportForMergeMarkAny.jsp b/src/main/webapp/ClipReport4/export/keyToMergeExport/exportForMergeMarkAny.jsp new file mode 100644 index 0000000..3b4194b --- /dev/null +++ b/src/main/webapp/ClipReport4/export/keyToMergeExport/exportForMergeMarkAny.jsp @@ -0,0 +1,61 @@ +<%@page import="com.clipsoft.clipreport.server.service.ClipReportMergeExport"%> +<%@page import="com.clipsoft.clipreport.server.service.ReportKeyInfoList"%> +<%@page import="com.clipsoft.clipreport.server.service.ResultValue"%> +<%@page import="com.clipsoft.clipreport.export.option.PDFOption"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//리포트 키 리스트를 받아서 처리 합니다. (report_key 파라미터 이름은 변경하여도 상관 없습니다) +String[] report_key = request.getParameterValues("report_key"); + +if(null != report_key){ + ReportKeyInfoList keyInfo = new ReportKeyInfoList(); + for(int index = 0; index \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/keyToMergeExport/exportForMergePDF.jsp b/src/main/webapp/ClipReport4/export/keyToMergeExport/exportForMergePDF.jsp new file mode 100644 index 0000000..f48219c --- /dev/null +++ b/src/main/webapp/ClipReport4/export/keyToMergeExport/exportForMergePDF.jsp @@ -0,0 +1,65 @@ +<%@page import="com.clipsoft.clipreport.server.service.ExportInfo"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportMergeExport"%> +<%@page import="com.clipsoft.clipreport.server.service.ReportKeyInfoList"%> +<%@page import="com.clipsoft.clipreport.server.service.ResultValue"%> +<%@page import="com.clipsoft.clipreport.export.option.PDFOption"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +//리포트 키 리스트를 받아서 처리 합니다. (report_key 파라미터 이름은 변경하여도 상관 없습니다) +String[] report_key = request.getParameterValues("report_key"); + +if(null != report_key){ + ReportKeyInfoList keyInfo = new ReportKeyInfoList(); + for(int index = 0; index \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/multipart/multipartExport.jsp b/src/main/webapp/ClipReport4/export/multipart/multipartExport.jsp new file mode 100644 index 0000000..4c3dd2c --- /dev/null +++ b/src/main/webapp/ClipReport4/export/multipart/multipartExport.jsp @@ -0,0 +1,71 @@ +<%@page import="com.clipsoft.clipreport.server.service.export.ExportStatusInfo"%> +<%@page import="com.clipsoft.clipreport.export.option.JPGOption"%> +<%@page import="com.clipsoft.clipreport.export.option.PDFOption"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); + + +//리포트 엔진을 실행시킨다. 리포트 템프 파일을 생성한다. +ExportStatusInfo exportStatus = ClipReportExport.EngingeRun(request, propertyPath, oof); +//exportStatus.getErrorType() +//ErrorType == 0 정상적인 출력 +//ErrorType == 1 인스톨 오류 +//ErrorType == 2 oof 문서 오류 +//ErrorType == 3 리포트 엔진 오류 + +//서버에 PDF파일로 저장 할 때 +File localFileSave = new File("c:\\temp1\\aa\\report.pdf"); +OutputStream fileStream = new FileOutputStream(localFileSave); + +PDFOption option = null; +/* +option = new PDFOption(); +option.setUserPassword("사용자(읽기) 암호"); +option.setOwnerPassword("저자(쓰기) 암호"); +option.setTextToImage(true); // 글자를 이미지로 처리 - unicode 처리시 사용 +option.setNumCopies(1); // 프린팅 매수 미리 설정 +option.setImportOriginImage(true); // 원본 이미지 삽입 +option.setNotAllowCopy(true); //text복사 방지 (1.0.0.84 version 부터 적용) +*/ +ClipReportExport.exportForPDF(exportStatus, fileStream, option); +fileStream.close(); +//exportStatus.getErrorType() +//ErrorType == 0 정상적인 출력 +//ErrorType == 4 리포트 엔진 오류 +//ErrorType == 5 리포트의 페이지 0 일 경우 오류 + +//서버에 지정 폴더 저장 할 때 +String fileName = "c:\\report.jpg"; + +JPGOption jpgOption = new JPGOption(); +//저장파일 +jpgOption.setOutputFilename(fileName); +//X DPI 설정 +jpgOption.setDpiX(96); +//Y DPI 설정 +jpgOption.setDpiY(96); +//품질(1~100) +jpgOption.setQuality(100); +//회전 +jpgOption.setRotate90(false); +ClipReportExport.exportForJPG(exportStatus, jpgOption); +//exportStatus.getErrorType() +//ErrorType == 0 정상적인 출력 +//ErrorType == 4 리포트 엔진 오류 +//ErrorType == 5 리포트의 페이지 0 일 경우 오류 + +//리포트 관련 템프 파일 삭제 +ClipReportExport.deleteReportFile(exportStatus); +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/multipart/multipartExportTxt.jsp b/src/main/webapp/ClipReport4/export/multipart/multipartExportTxt.jsp new file mode 100644 index 0000000..31ef40a --- /dev/null +++ b/src/main/webapp/ClipReport4/export/multipart/multipartExportTxt.jsp @@ -0,0 +1,43 @@ +<%@page import="com.clipsoft.clipreport.server.service.export.ExportStatusInfo"%> +<%@page import="com.clipsoft.clipreport.export.option.JPGOption"%> +<%@page import="com.clipsoft.clipreport.export.option.PDFOption"%> +<%@page import="com.clipsoft.clipreport.export.option.TextOption"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.oof.connection.*"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="../../Property.jsp"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); +file.addConnectionData("*", "oracle1"); +oof.addOption("saveTxtFile", "true"); + +//리포트 엔진을 실행시킨다. 리포트 템프 파일을 생성한다. +ExportStatusInfo exportStatus = ClipReportExport.EngingeRun(request, propertyPath, oof); +//exportStatus.getErrorType() +//ErrorType == 0 정상적인 출력 +//ErrorType == 1 인스톨 오류 +//ErrorType == 2 oof 문서 오류 +//ErrorType == 3 리포트 엔진 오류 +//ErrorType == 10 해당 서버에 Temp폴더에 해당키의 Txt 파일이 존재하지 않을경우 +//서버에 PDF파일로 저장 할 때 + +File localFileSave = new File("c:\\Temp\\" + exportStatus.getKey() + ".txt"); +OutputStream fileStream = new FileOutputStream(localFileSave); + +TextOption option = new TextOption(); +ClipReportExport.exportForTxt(exportStatus, fileStream, option); +fileStream.close(); + + +//리포트 관련 템프 파일 삭제 +ClipReportExport.deleteReportFile(exportStatus); +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/part/exportForPartEPP.jsp b/src/main/webapp/ClipReport4/export/part/exportForPartEPP.jsp new file mode 100644 index 0000000..bbf164f --- /dev/null +++ b/src/main/webapp/ClipReport4/export/part/exportForPartEPP.jsp @@ -0,0 +1,27 @@ +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +String report_key = request.getParameter("report_key"); + +//서버에 파일로 저장 할 때 +//File localFileSave = new File("c:\\test.epp"); +//OutputStream fileStream = new FileOutputStream(localFileSave); + +//클라이언트로 파일을 내릴 때 +String fileName = "report.epp"; +response.setContentType("application/octet-stream; charset=UTF-8"); +response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); +OutputStream fileStream = response.getOutputStream(); + +//클라이언트 브라우져에서 바로 보는 방법(헤더 변경) +//sponse.setContentType("application/epp"); +//OutputStream fileStream = response.getOutputStream(); + +ClipReportExport.createExportForPartEPP(request, report_key, fileStream); +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/part/exportForPartEXCEL.jsp b/src/main/webapp/ClipReport4/export/part/exportForPartEXCEL.jsp new file mode 100644 index 0000000..87b0308 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/part/exportForPartEXCEL.jsp @@ -0,0 +1,54 @@ +<%@page import="com.clipsoft.clipreport.export.option.ExcelOption"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +String report_key = request.getParameter("report_key"); + + +//서버에 파일로 저장 할 때 +//File localFileSave = new File("c:\\test.xls"); +//OutputStream fileStream = new FileOutputStream(localFileSave); + +//클라이언트로 파일을 내릴 때 +String fileName = "report.xls"; +response.setContentType("application/octet-stream; charset=UTF-8"); +response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); +OutputStream fileStream = response.getOutputStream(); + + +//엑셀저장에 대한 옵션을 설정합니다. +ExcelOption excelOption = new ExcelOption(); +/* exportMethod {Integer} + 0 = 페이지 마다 하나의 시트로 + 1 = 페이지를 연속 저장 + 2 = 섹션을 연속하여 저장 + 3 = 리포트마다 섹션을 연속하여 저장*/ + excelOption.setExportMethod(0); +/* mergeCell {Boolean} 셀 합치기*/ +excelOption.setMergeCell(true); +/* mergeEmptyCell {Boolean} 공백 셀일 경우 합치기*/ +excelOption.setMergeEmptyCell(false); +/* splitCellAtPageSize {Boolean} 페이지 크기로 셀 분리*/ +excelOption.setSplitCellAtPageSize(true); +/* rightToLeft {Boolean} 열이 오른쪽에서 왼쪽으로 진행*/ +excelOption.setRightToLeft(false); +/* widthRate {Integer} 가로 비율*/ +excelOption.setWidthRate(100); +/* heightRate {Integer} 세로 비율*/ +excelOption.setHeightRate(100); +/* coordinateErrorLimit {Integer} 좌표 오차 범위*/ +excelOption.setCoordinateErrorLimit(10); +/* processGerenalFormat {Integer} + 0 = 텍스트 + 1 = 일반*/ +excelOption.setProcessGeneralFormat(0); +/* printingMagnification {Integer} 인쇄 확대/축소 비율*/ +excelOption.setPrintingMagnification(100); +ClipReportExport.createExportForPartExcel(request, report_key, fileStream, excelOption); +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/part/exportForPartHTML5.jsp b/src/main/webapp/ClipReport4/export/part/exportForPartHTML5.jsp new file mode 100644 index 0000000..7a1aeeb --- /dev/null +++ b/src/main/webapp/ClipReport4/export/part/exportForPartHTML5.jsp @@ -0,0 +1,23 @@ +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% + +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +String report_key = request.getParameter("report_key"); + + +//서버에 파일로 저장 할 때 +File localFileSave = new File("c:\\test.html"); +OutputStream fileStream = new FileOutputStream(localFileSave); + +//클라이언트로 파일을 내릴 때 +//response.setContentType("text/html"); +//OutputStream fileStream = response.getOutputStream(); + +ClipReportExport.createExportForPartHTML5(request, report_key, fileStream, "UTF-8"); +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/part/exportForPartHWP.jsp b/src/main/webapp/ClipReport4/export/part/exportForPartHWP.jsp new file mode 100644 index 0000000..b6c89dc --- /dev/null +++ b/src/main/webapp/ClipReport4/export/part/exportForPartHWP.jsp @@ -0,0 +1,53 @@ +<%@page import="com.clipsoft.clipreport.export.option.HWPOption"%> +<%@page import="com.clipsoft.clipreport.export.option.ExcelOption"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +String report_key = request.getParameter("report_key"); + + +//서버에 파일로 저장 할 때 +File localFileSave = new File("c:\\test.hwp"); +OutputStream fileStream = new FileOutputStream(localFileSave); + +//클라이언트로 파일을 내릴 때 +//String fileName = "report.hwp"; +//response.setContentType("application/octet-stream; charset=UTF-8"); +//response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); +//OutputStream fileStream = response.getOutputStream(); + +//클라이언트 브라우져에서 바로 보는 방법(헤더 변경) +//response.setContentType("application/hwp"); +//OutputStream fileStream = response.getOutputStream(); + + +//한글저장에 대한 옵션을 설정합니다. +HWPOption hwpOption = new HWPOption(); +/* fixSize {Boolean} 크기 고정*/ +hwpOption.setFixSize(true); +/* allowOverlay {Boolean} 겹침 허용*/ +hwpOption.setAllowOverlay(true); +/* setPageBottomMarginToZero {Boolean} 페이지 바닥 여백을 0으로 설정*/ +hwpOption.setSetPageBottomMarginToZero(true); +/* outputLikeWord {Boolean} 글자처럼 출력*/ +hwpOption.setOutputLikeWord(false); +/* tableSplitMethod {Integer} + 0 = 나눔 + 1 = 셀 단위로 나눔 + 2 = 나누지 않음 */ + hwpOption.setTableSplitMethod(1); +/* defaultCharGap {Integer} 기본 자간*/ +hwpOption.setDefaultCharGap(-8); +/* charRatio {Integer} 자평*/ +hwpOption.setCharRatio(100); +/* putCheckboxIntoCell (Boolean) 셀 안에 체크박스 넣기 */ +hwpOption.setPutCheckboxIntoCell(false); + +ClipReportExport.createExportForPartHWP(request, report_key, fileStream, hwpOption); +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/part/exportForPartPDF.jsp b/src/main/webapp/ClipReport4/export/part/exportForPartPDF.jsp new file mode 100644 index 0000000..1ae93b5 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/part/exportForPartPDF.jsp @@ -0,0 +1,39 @@ +<%@page import="com.clipsoft.clipreport.export.option.PDFOption"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +String report_key = request.getParameter("report_key"); + + +//서버에 파일로 저장 할 때 +//File localFileSave = new File("c:\\test.pdf"); +//OutputStream fileStream = new FileOutputStream(localFileSave); + +//클라이언트로 파일을 내릴 때 +//String fileName = "report.pdf"; +//response.setContentType("application/octet-stream; charset=UTF-8"); +//response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); +//OutputStream fileStream = response.getOutputStream(); + +//클라이언트 브라우져에서 바로 보는 방법(헤더 변경) +response.setContentType("application/pdf"); +OutputStream fileStream = response.getOutputStream(); + +PDFOption option = new PDFOption(); +/* +option = new PDFOption(); +option.setUserPassword("사용자(읽기) 암호"); +option.setOwnerPassword("저자(쓰기) 암호"); +option.setTextToImage(true); // 글자를 이미지로 처리 - unicode 처리시 사용 +option.setNumCopies(1); // 프린팅 매수 미리 설정 +option.setImportOriginImage(true); // 원본 이미지 삽입 +*/ + +ClipReportExport.createExportForPartPDF(request, report_key, fileStream, option); +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/export/part/exportForPartPPT.jsp b/src/main/webapp/ClipReport4/export/part/exportForPartPPT.jsp new file mode 100644 index 0000000..db5f093 --- /dev/null +++ b/src/main/webapp/ClipReport4/export/part/exportForPartPPT.jsp @@ -0,0 +1,27 @@ +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% +out.clear(); // where out is a JspWriter +out = pageContext.pushBody(); + +String report_key = request.getParameter("report_key"); + +//서버에 파일로 저장 할 때 +File localFileSave = new File("c:\\test.ppt"); +OutputStream fileStream = new FileOutputStream(localFileSave); + +//클라이언트로 파일을 내릴 때 +//String fileName = "report.ppt"; +//response.setContentType("application/octet-stream; charset=UTF-8"); +//response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ";"); +//OutputStream fileStream = response.getOutputStream(); + +//클라이언트 브라우져에서 바로 보는 방법(헤더 변경) +//response.setContentType("application/ppt"); +//OutputStream fileStream = response.getOutputStream(); + +ClipReportExport.createExportForPartPPT(request, report_key, fileStream); +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/exportCAB.jsp b/src/main/webapp/ClipReport4/exportCAB.jsp new file mode 100644 index 0000000..53fcf9a --- /dev/null +++ b/src/main/webapp/ClipReport4/exportCAB.jsp @@ -0,0 +1,64 @@ +<%@page import="com.clipsoft.clipreport.server.service.ClipReportPDFForCAB"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@ page import="java.util.*,java.io.*, java.lang.Integer, java.net.*" %> +<%@page import="java.io.FileInputStream"%> +<%@page import="java.io.BufferedInputStream"%> +<%@page import="com.clipsoft.clipreport.server.service.ResultValue"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="Property.jsp"%> +<% +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIPtoDRM.crf"); + +//pdf 생성 및 바코드 데이터 생성 호출 메소드입니다. +ResultValue result = ClipReportPDFForCAB.create(request, propertyPath, oof); +int errorCode = result.getErrorCode(); +//errorCode == 0 정상 +//errorCode == 1 리포트 서버 오류 +//errorCode == 2 oof 문서 오류 +//errorCode == 3 리포트 엔진 오류 +//errorCode == 4 결과물(document) 파일을 찾을 수 없을 때 오류 +//errorCode == 5 pdf, html 생성시 오류 + + +//ResultValue 객체를 이용하여 연동하시면 될 것 같습니다. + +//저장된 파일 삭제 (파일을 사용하시고 아래의 메소드를 호출하시면 파일이 삭제됩니다.) +ClipReportPDFForCAB.delete(result); +%> + + + + + +연동 TEST + + +

+쉽게 보실 수 있게 html에 출력하였습니다. +


+서버에 생성된 pdf 위치 : + <%=result.getPdfFilePath()%> +
+서버에 생성된 바코드 데이터(html) 위치 : + <%=result.getDataFilePath()%> +
+ 바코드 좌표 left : + <%=result.getLeft()%> +
+ 바코드 좌표 top : + <%=result.getTop()%> +
+ 바코드 좌표 right : + <%=result.getRight()%> +
+ 바코드 좌표 bottom : + <%=result.getBottom()%> +
+ + \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/exportMarkAny.jsp b/src/main/webapp/ClipReport4/exportMarkAny.jsp new file mode 100644 index 0000000..6a1ccab --- /dev/null +++ b/src/main/webapp/ClipReport4/exportMarkAny.jsp @@ -0,0 +1,54 @@ +<%@page import="com.clipsoft.clipreport.export.option.PDFOption"%> +<%@page import="com.clipsoft.clipreport.oof.connection.OOFConnectionHTTP"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@ page import="java.util.*,java.io.*, java.text.*, java.lang.Integer, java.net.*" %> +<%@page import="java.io.FileInputStream"%> +<%@page import="java.io.BufferedInputStream"%> +<%@page import="com.clipsoft.clipreport.server.service.ResultValue"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportPDFForMark"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="Property.jsp"%> +<% +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIPtoDRM.crf"); + + +//pdf 생성할 때 옵션 +PDFOption option = new PDFOption(); +//텍스트를 이미지로 표현할지 여부 +//option.setTextToImage(true); + +ResultValue result = ClipReportPDFForMark.create(request, propertyPath, oof, option); +int errorCode = result.getErrorCode(); +//errorCode == 0 정상 +//errorCode == 1 리포트 서버 오류 +//errorCode == 2 oof 문서 오류 +//errorCode == 3 리포트 엔진 오류 +//errorCode == 4 결과물(document) 파일을 찾을 수 없을 때 오류 +//errorCode == 5 pdf, dat 생성시 오류 + +//바코드로 만든 데이터 파일 위치 +//result.getDataFilePath(); + +//생성된 pdf 파일 위치 +//result.getPdfFilePath(); + +//바코드가 들어갈 좌표 +//result.getLeft(); +//result.getTop(); + +//문서의 세로, 가로 +//세로 0 +//가로 1 +//int paperOrientation = result.getPaperOrientation(); + + +//임시 저장 삭제 +ClipReportPDFForMark.delete(result); + +%> diff --git a/src/main/webapp/ClipReport4/exportRedBC.jsp b/src/main/webapp/ClipReport4/exportRedBC.jsp new file mode 100644 index 0000000..e68c73b --- /dev/null +++ b/src/main/webapp/ClipReport4/exportRedBC.jsp @@ -0,0 +1,71 @@ +<%@page import="com.clipsoft.clipreport.export.option.PDFOption"%> +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportPDFForRedBC"%> +<%@ page import="java.util.*,java.io.*, java.lang.Integer, java.net.*" %> +<%@page import="java.io.FileInputStream"%> +<%@page import="java.io.BufferedInputStream"%> +<%@page import="com.clipsoft.clipreport.server.service.ResultValue"%> +<%@page import="com.clipsoft.clipreport.server.service.ClipReportExport"%> +<%@page import="java.io.OutputStream"%> +<%@page import="java.io.File"%> +<%@page import="java.io.FileOutputStream"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@include file="Property.jsp"%> +<% +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIPtoDRM.crf"); +//pdf 생성할 때 옵션 +PDFOption option = new PDFOption(); +//텍스트를 이미지로 표현할지 여부 +//option.setTextToImage(true); + +//pdf 생성 및 바코드 데이터 생성 호출 메소드입니다. +ResultValue result = ClipReportPDFForRedBC.create(request, propertyPath, oof, option); +int errorCode = result.getErrorCode(); +//errorCode == 0 정상 +//errorCode == 1 리포트 서버 인스톨 오류 +//errorCode == 2 oof 문서 오류 +//errorCode == 3 리포트 엔진 오류 +//errorCode == 4 결과물(document) 파일을 찾을 수 없을 때 오류 +//errorCode == 5 pdf, dat 생성시 오류 + +//ResultValue 객체를 이용하여 연동하시면 될 것 같습니다. + +//저장된 파일 삭제 (파일을 사용하시고 아래의 메소드를 호출하시면 파일이 삭제됩니다.) +ClipReportPDFForRedBC.delete(result); +%> + + + + + +연동 TEST + + +

+쉽게 보실 수 있게 html에 출력하였습니다. +


+서버에 생성된 pdf 위치 : + <%=result.getPdfFilePath()%> +
+서버에 생성된 바코드 데이터 위치 : + <%=result.getDataFilePath()%> +
+ 바코드 좌표 left : + <%=result.getLeft()%> +
+ 바코드 좌표 top : + <%=result.getTop()%> +
+ 바코드 좌표 right : + <%=result.getRight()%> +
+ 바코드 좌표 bottom : + <%=result.getBottom()%> +
+ 리포트 Key: + <%=result.getKey()%> +
+ + \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/font/NanumBarunGothic.eot b/src/main/webapp/ClipReport4/font/NanumBarunGothic.eot new file mode 100644 index 0000000..5e9cd3c Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumBarunGothic.eot differ diff --git a/src/main/webapp/ClipReport4/font/NanumBarunGothic.ttf b/src/main/webapp/ClipReport4/font/NanumBarunGothic.ttf new file mode 100644 index 0000000..9ae31c6 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumBarunGothic.ttf differ diff --git a/src/main/webapp/ClipReport4/font/NanumBarunGothic.woff b/src/main/webapp/ClipReport4/font/NanumBarunGothic.woff new file mode 100644 index 0000000..dc1f555 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumBarunGothic.woff differ diff --git a/src/main/webapp/ClipReport4/font/NanumBarunGothic.woff2 b/src/main/webapp/ClipReport4/font/NanumBarunGothic.woff2 new file mode 100644 index 0000000..3a3e8a0 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumBarunGothic.woff2 differ diff --git a/src/main/webapp/ClipReport4/font/NanumBarunGothicBold.eot b/src/main/webapp/ClipReport4/font/NanumBarunGothicBold.eot new file mode 100644 index 0000000..50ecfb7 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumBarunGothicBold.eot differ diff --git a/src/main/webapp/ClipReport4/font/NanumBarunGothicBold.ttf b/src/main/webapp/ClipReport4/font/NanumBarunGothicBold.ttf new file mode 100644 index 0000000..011c63e Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumBarunGothicBold.ttf differ diff --git a/src/main/webapp/ClipReport4/font/NanumBarunGothicBold.woff b/src/main/webapp/ClipReport4/font/NanumBarunGothicBold.woff new file mode 100644 index 0000000..011480f Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumBarunGothicBold.woff differ diff --git a/src/main/webapp/ClipReport4/font/NanumBarunGothicBold.woff2 b/src/main/webapp/ClipReport4/font/NanumBarunGothicBold.woff2 new file mode 100644 index 0000000..12a911b Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumBarunGothicBold.woff2 differ diff --git a/src/main/webapp/ClipReport4/font/NanumBarunGothicLight.eot b/src/main/webapp/ClipReport4/font/NanumBarunGothicLight.eot new file mode 100644 index 0000000..436f29a Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumBarunGothicLight.eot differ diff --git a/src/main/webapp/ClipReport4/font/NanumBarunGothicLight.ttf b/src/main/webapp/ClipReport4/font/NanumBarunGothicLight.ttf new file mode 100644 index 0000000..d6faf7f Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumBarunGothicLight.ttf differ diff --git a/src/main/webapp/ClipReport4/font/NanumBarunGothicLight.woff b/src/main/webapp/ClipReport4/font/NanumBarunGothicLight.woff new file mode 100644 index 0000000..ef28294 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumBarunGothicLight.woff differ diff --git a/src/main/webapp/ClipReport4/font/NanumBarunGothicLight.woff2 b/src/main/webapp/ClipReport4/font/NanumBarunGothicLight.woff2 new file mode 100644 index 0000000..53e3d86 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumBarunGothicLight.woff2 differ diff --git a/src/main/webapp/ClipReport4/font/NanumBarunGothicUltraLight.eot b/src/main/webapp/ClipReport4/font/NanumBarunGothicUltraLight.eot new file mode 100644 index 0000000..9fb1199 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumBarunGothicUltraLight.eot differ diff --git a/src/main/webapp/ClipReport4/font/NanumBarunGothicUltraLight.ttf b/src/main/webapp/ClipReport4/font/NanumBarunGothicUltraLight.ttf new file mode 100644 index 0000000..c291730 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumBarunGothicUltraLight.ttf differ diff --git a/src/main/webapp/ClipReport4/font/NanumBarunGothicUltraLight.woff b/src/main/webapp/ClipReport4/font/NanumBarunGothicUltraLight.woff new file mode 100644 index 0000000..930255c Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumBarunGothicUltraLight.woff differ diff --git a/src/main/webapp/ClipReport4/font/NanumBarunGothicUltraLight.woff2 b/src/main/webapp/ClipReport4/font/NanumBarunGothicUltraLight.woff2 new file mode 100644 index 0000000..2ac5e29 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumBarunGothicUltraLight.woff2 differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothic-Bold.eot b/src/main/webapp/ClipReport4/font/NanumGothic-Bold.eot new file mode 100644 index 0000000..3cc7cf7 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothic-Bold.eot differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothic-Bold.ttf b/src/main/webapp/ClipReport4/font/NanumGothic-Bold.ttf new file mode 100644 index 0000000..c24b0e7 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothic-Bold.ttf differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothic-Bold.woff b/src/main/webapp/ClipReport4/font/NanumGothic-Bold.woff new file mode 100644 index 0000000..2dde3b8 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothic-Bold.woff differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothic-Bold.woff2 b/src/main/webapp/ClipReport4/font/NanumGothic-Bold.woff2 new file mode 100644 index 0000000..3a8ba51 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothic-Bold.woff2 differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothic-ExtraBold.eot b/src/main/webapp/ClipReport4/font/NanumGothic-ExtraBold.eot new file mode 100644 index 0000000..1e4a173 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothic-ExtraBold.eot differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothic-ExtraBold.ttf b/src/main/webapp/ClipReport4/font/NanumGothic-ExtraBold.ttf new file mode 100644 index 0000000..c85adc7 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothic-ExtraBold.ttf differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothic-ExtraBold.woff b/src/main/webapp/ClipReport4/font/NanumGothic-ExtraBold.woff new file mode 100644 index 0000000..72994aa Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothic-ExtraBold.woff differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothic-ExtraBold.woff2 b/src/main/webapp/ClipReport4/font/NanumGothic-ExtraBold.woff2 new file mode 100644 index 0000000..ab15e47 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothic-ExtraBold.woff2 differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothic-Regular.eot b/src/main/webapp/ClipReport4/font/NanumGothic-Regular.eot new file mode 100644 index 0000000..7494146 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothic-Regular.eot differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothic-Regular.svg b/src/main/webapp/ClipReport4/font/NanumGothic-Regular.svg new file mode 100644 index 0000000..072358d --- /dev/null +++ b/src/main/webapp/ClipReport4/font/NanumGothic-Regular.svg @@ -0,0 +1,83975 @@ + + + + +Created by FontForge 20150804 at Mon Sep 5 04:35:51 2016 + By cloudconvert +Copyright (c) 2010 NHN Corporation. All rights reserved. Font designed by Sandoll Communications Inc. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/font/NanumGothic-Regular.ttf b/src/main/webapp/ClipReport4/font/NanumGothic-Regular.ttf new file mode 100644 index 0000000..c14ce88 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothic-Regular.ttf differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothic-Regular.woff b/src/main/webapp/ClipReport4/font/NanumGothic-Regular.woff new file mode 100644 index 0000000..eebb7bc Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothic-Regular.woff differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothic-Regular.woff2 b/src/main/webapp/ClipReport4/font/NanumGothic-Regular.woff2 new file mode 100644 index 0000000..4499032 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothic-Regular.woff2 differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothicCoding-Bold.eot b/src/main/webapp/ClipReport4/font/NanumGothicCoding-Bold.eot new file mode 100644 index 0000000..555507a Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothicCoding-Bold.eot differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothicCoding-Bold.ttf b/src/main/webapp/ClipReport4/font/NanumGothicCoding-Bold.ttf new file mode 100644 index 0000000..9aa9ba2 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothicCoding-Bold.ttf differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothicCoding-Bold.woff b/src/main/webapp/ClipReport4/font/NanumGothicCoding-Bold.woff new file mode 100644 index 0000000..5af854c Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothicCoding-Bold.woff differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothicCoding-Bold.woff2 b/src/main/webapp/ClipReport4/font/NanumGothicCoding-Bold.woff2 new file mode 100644 index 0000000..abeb700 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothicCoding-Bold.woff2 differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothicCoding-Regular.eot b/src/main/webapp/ClipReport4/font/NanumGothicCoding-Regular.eot new file mode 100644 index 0000000..abc9680 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothicCoding-Regular.eot differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothicCoding-Regular.ttf b/src/main/webapp/ClipReport4/font/NanumGothicCoding-Regular.ttf new file mode 100644 index 0000000..ba77a9d Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothicCoding-Regular.ttf differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothicCoding-Regular.woff b/src/main/webapp/ClipReport4/font/NanumGothicCoding-Regular.woff new file mode 100644 index 0000000..2790fd6 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothicCoding-Regular.woff differ diff --git a/src/main/webapp/ClipReport4/font/NanumGothicCoding-Regular.woff2 b/src/main/webapp/ClipReport4/font/NanumGothicCoding-Regular.woff2 new file mode 100644 index 0000000..75fc3f4 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumGothicCoding-Regular.woff2 differ diff --git a/src/main/webapp/ClipReport4/font/NanumMyeongjo-Bold.eot b/src/main/webapp/ClipReport4/font/NanumMyeongjo-Bold.eot new file mode 100644 index 0000000..fa567c9 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumMyeongjo-Bold.eot differ diff --git a/src/main/webapp/ClipReport4/font/NanumMyeongjo-Bold.ttf b/src/main/webapp/ClipReport4/font/NanumMyeongjo-Bold.ttf new file mode 100644 index 0000000..ecac447 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumMyeongjo-Bold.ttf differ diff --git a/src/main/webapp/ClipReport4/font/NanumMyeongjo-Bold.woff b/src/main/webapp/ClipReport4/font/NanumMyeongjo-Bold.woff new file mode 100644 index 0000000..c00c50d Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumMyeongjo-Bold.woff differ diff --git a/src/main/webapp/ClipReport4/font/NanumMyeongjo-Bold.woff2 b/src/main/webapp/ClipReport4/font/NanumMyeongjo-Bold.woff2 new file mode 100644 index 0000000..031ad01 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumMyeongjo-Bold.woff2 differ diff --git a/src/main/webapp/ClipReport4/font/NanumMyeongjo-ExtraBold.eot b/src/main/webapp/ClipReport4/font/NanumMyeongjo-ExtraBold.eot new file mode 100644 index 0000000..b31de84 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumMyeongjo-ExtraBold.eot differ diff --git a/src/main/webapp/ClipReport4/font/NanumMyeongjo-ExtraBold.ttf b/src/main/webapp/ClipReport4/font/NanumMyeongjo-ExtraBold.ttf new file mode 100644 index 0000000..6dd48fb Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumMyeongjo-ExtraBold.ttf differ diff --git a/src/main/webapp/ClipReport4/font/NanumMyeongjo-ExtraBold.woff b/src/main/webapp/ClipReport4/font/NanumMyeongjo-ExtraBold.woff new file mode 100644 index 0000000..f3d6265 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumMyeongjo-ExtraBold.woff differ diff --git a/src/main/webapp/ClipReport4/font/NanumMyeongjo-ExtraBold.woff2 b/src/main/webapp/ClipReport4/font/NanumMyeongjo-ExtraBold.woff2 new file mode 100644 index 0000000..2a2e6b1 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumMyeongjo-ExtraBold.woff2 differ diff --git a/src/main/webapp/ClipReport4/font/NanumMyeongjo-Regular.eot b/src/main/webapp/ClipReport4/font/NanumMyeongjo-Regular.eot new file mode 100644 index 0000000..1c4cb6c Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumMyeongjo-Regular.eot differ diff --git a/src/main/webapp/ClipReport4/font/NanumMyeongjo-Regular.ttf b/src/main/webapp/ClipReport4/font/NanumMyeongjo-Regular.ttf new file mode 100644 index 0000000..a47e1a6 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumMyeongjo-Regular.ttf differ diff --git a/src/main/webapp/ClipReport4/font/NanumMyeongjo-Regular.woff b/src/main/webapp/ClipReport4/font/NanumMyeongjo-Regular.woff new file mode 100644 index 0000000..a2ed3ee Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumMyeongjo-Regular.woff differ diff --git a/src/main/webapp/ClipReport4/font/NanumMyeongjo-Regular.woff2 b/src/main/webapp/ClipReport4/font/NanumMyeongjo-Regular.woff2 new file mode 100644 index 0000000..5f361f6 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumMyeongjo-Regular.woff2 differ diff --git a/src/main/webapp/ClipReport4/font/NanumPenScript-Regular.eot b/src/main/webapp/ClipReport4/font/NanumPenScript-Regular.eot new file mode 100644 index 0000000..a793449 Binary files /dev/null and b/src/main/webapp/ClipReport4/font/NanumPenScript-Regular.eot differ diff --git a/src/main/webapp/ClipReport4/ico/favicon.ico b/src/main/webapp/ClipReport4/ico/favicon.ico new file mode 100644 index 0000000..b5e883c Binary files /dev/null and b/src/main/webapp/ClipReport4/ico/favicon.ico differ diff --git a/src/main/webapp/ClipReport4/img/PNG/close.png b/src/main/webapp/ClipReport4/img/PNG/close.png new file mode 100644 index 0000000..fb36063 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/close.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/doc.png b/src/main/webapp/ClipReport4/img/PNG/doc.png new file mode 100644 index 0000000..6f4c1cc Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/doc.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/excel.png b/src/main/webapp/ClipReport4/img/PNG/excel.png new file mode 100644 index 0000000..c7349c0 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/excel.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/hwp.png b/src/main/webapp/ClipReport4/img/PNG/hwp.png new file mode 100644 index 0000000..56174aa Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/hwp.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/info.png b/src/main/webapp/ClipReport4/img/PNG/info.png new file mode 100644 index 0000000..c4174e8 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/info.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/left.png b/src/main/webapp/ClipReport4/img/PNG/left.png new file mode 100644 index 0000000..d1936c3 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/left.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/leftEnd.png b/src/main/webapp/ClipReport4/img/PNG/leftEnd.png new file mode 100644 index 0000000..061d43e Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/leftEnd.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/over/close.png b/src/main/webapp/ClipReport4/img/PNG/over/close.png new file mode 100644 index 0000000..e4f6270 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/over/close.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/over/excel.png b/src/main/webapp/ClipReport4/img/PNG/over/excel.png new file mode 100644 index 0000000..3e42953 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/over/excel.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/over/hwp.png b/src/main/webapp/ClipReport4/img/PNG/over/hwp.png new file mode 100644 index 0000000..3b21640 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/over/hwp.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/over/info.png b/src/main/webapp/ClipReport4/img/PNG/over/info.png new file mode 100644 index 0000000..20efe44 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/over/info.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/over/left.png b/src/main/webapp/ClipReport4/img/PNG/over/left.png new file mode 100644 index 0000000..a32d7d1 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/over/left.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/over/leftEnd.png b/src/main/webapp/ClipReport4/img/PNG/over/leftEnd.png new file mode 100644 index 0000000..6e8636b Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/over/leftEnd.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/over/pdf.png b/src/main/webapp/ClipReport4/img/PNG/over/pdf.png new file mode 100644 index 0000000..4197691 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/over/pdf.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/over/print.png b/src/main/webapp/ClipReport4/img/PNG/over/print.png new file mode 100644 index 0000000..4ca5448 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/over/print.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/over/right.png b/src/main/webapp/ClipReport4/img/PNG/over/right.png new file mode 100644 index 0000000..91ca0f7 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/over/right.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/over/rightEnd.png b/src/main/webapp/ClipReport4/img/PNG/over/rightEnd.png new file mode 100644 index 0000000..f32c91b Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/over/rightEnd.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/over/save.png b/src/main/webapp/ClipReport4/img/PNG/over/save.png new file mode 100644 index 0000000..de36c30 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/over/save.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/pdf.png b/src/main/webapp/ClipReport4/img/PNG/pdf.png new file mode 100644 index 0000000..9841331 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/pdf.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/print.png b/src/main/webapp/ClipReport4/img/PNG/print.png new file mode 100644 index 0000000..5883281 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/print.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/right.png b/src/main/webapp/ClipReport4/img/PNG/right.png new file mode 100644 index 0000000..32369a2 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/right.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/rightEnd.png b/src/main/webapp/ClipReport4/img/PNG/rightEnd.png new file mode 100644 index 0000000..dedbb8c Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/rightEnd.png differ diff --git a/src/main/webapp/ClipReport4/img/PNG/save.png b/src/main/webapp/ClipReport4/img/PNG/save.png new file mode 100644 index 0000000..4e97687 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/PNG/save.png differ diff --git a/src/main/webapp/ClipReport4/img/admin/CLIPreport.png b/src/main/webapp/ClipReport4/img/admin/CLIPreport.png new file mode 100644 index 0000000..9bc92c9 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/admin/CLIPreport.png differ diff --git a/src/main/webapp/ClipReport4/img/admin/clipsoft.png b/src/main/webapp/ClipReport4/img/admin/clipsoft.png new file mode 100644 index 0000000..e6c9da8 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/admin/clipsoft.png differ diff --git a/src/main/webapp/ClipReport4/img/admin/clipsoft_ci_300_2.gif b/src/main/webapp/ClipReport4/img/admin/clipsoft_ci_300_2.gif new file mode 100644 index 0000000..620d831 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/admin/clipsoft_ci_300_2.gif differ diff --git a/src/main/webapp/ClipReport4/img/admin/glyphicons-halflings-white.png b/src/main/webapp/ClipReport4/img/admin/glyphicons-halflings-white.png new file mode 100644 index 0000000..3bf6484 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/admin/glyphicons-halflings-white.png differ diff --git a/src/main/webapp/ClipReport4/img/admin/glyphicons-halflings.png b/src/main/webapp/ClipReport4/img/admin/glyphicons-halflings.png new file mode 100644 index 0000000..a996999 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/admin/glyphicons-halflings.png differ diff --git a/src/main/webapp/ClipReport4/img/cliplogo.png b/src/main/webapp/ClipReport4/img/cliplogo.png new file mode 100644 index 0000000..7bdf81b Binary files /dev/null and b/src/main/webapp/ClipReport4/img/cliplogo.png differ diff --git a/src/main/webapp/ClipReport4/img/close.svg b/src/main/webapp/ClipReport4/img/close.svg new file mode 100644 index 0000000..0a8f72f --- /dev/null +++ b/src/main/webapp/ClipReport4/img/close.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/deploying.gif b/src/main/webapp/ClipReport4/img/deploying.gif new file mode 100644 index 0000000..0d88d30 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/deploying.gif differ diff --git a/src/main/webapp/ClipReport4/img/dis/PNG/cloes.png b/src/main/webapp/ClipReport4/img/dis/PNG/cloes.png new file mode 100644 index 0000000..e48ecf8 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/dis/PNG/cloes.png differ diff --git a/src/main/webapp/ClipReport4/img/dis/PNG/doc.png b/src/main/webapp/ClipReport4/img/dis/PNG/doc.png new file mode 100644 index 0000000..5e58dcf Binary files /dev/null and b/src/main/webapp/ClipReport4/img/dis/PNG/doc.png differ diff --git a/src/main/webapp/ClipReport4/img/dis/PNG/excel.png b/src/main/webapp/ClipReport4/img/dis/PNG/excel.png new file mode 100644 index 0000000..859da8e Binary files /dev/null and b/src/main/webapp/ClipReport4/img/dis/PNG/excel.png differ diff --git a/src/main/webapp/ClipReport4/img/dis/PNG/hwp.png b/src/main/webapp/ClipReport4/img/dis/PNG/hwp.png new file mode 100644 index 0000000..42584c6 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/dis/PNG/hwp.png differ diff --git a/src/main/webapp/ClipReport4/img/dis/PNG/info.png b/src/main/webapp/ClipReport4/img/dis/PNG/info.png new file mode 100644 index 0000000..7469eec Binary files /dev/null and b/src/main/webapp/ClipReport4/img/dis/PNG/info.png differ diff --git a/src/main/webapp/ClipReport4/img/dis/PNG/left.png b/src/main/webapp/ClipReport4/img/dis/PNG/left.png new file mode 100644 index 0000000..0bd903c Binary files /dev/null and b/src/main/webapp/ClipReport4/img/dis/PNG/left.png differ diff --git a/src/main/webapp/ClipReport4/img/dis/PNG/leftEnd.png b/src/main/webapp/ClipReport4/img/dis/PNG/leftEnd.png new file mode 100644 index 0000000..f61093c Binary files /dev/null and b/src/main/webapp/ClipReport4/img/dis/PNG/leftEnd.png differ diff --git a/src/main/webapp/ClipReport4/img/dis/PNG/pdf.png b/src/main/webapp/ClipReport4/img/dis/PNG/pdf.png new file mode 100644 index 0000000..112fab3 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/dis/PNG/pdf.png differ diff --git a/src/main/webapp/ClipReport4/img/dis/PNG/print.png b/src/main/webapp/ClipReport4/img/dis/PNG/print.png new file mode 100644 index 0000000..97dcf04 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/dis/PNG/print.png differ diff --git a/src/main/webapp/ClipReport4/img/dis/PNG/right.png b/src/main/webapp/ClipReport4/img/dis/PNG/right.png new file mode 100644 index 0000000..89b4446 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/dis/PNG/right.png differ diff --git a/src/main/webapp/ClipReport4/img/dis/PNG/rightEnd.png b/src/main/webapp/ClipReport4/img/dis/PNG/rightEnd.png new file mode 100644 index 0000000..4dc9322 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/dis/PNG/rightEnd.png differ diff --git a/src/main/webapp/ClipReport4/img/dis/PNG/save.png b/src/main/webapp/ClipReport4/img/dis/PNG/save.png new file mode 100644 index 0000000..5b4723f Binary files /dev/null and b/src/main/webapp/ClipReport4/img/dis/PNG/save.png differ diff --git a/src/main/webapp/ClipReport4/img/dis/close.svg b/src/main/webapp/ClipReport4/img/dis/close.svg new file mode 100644 index 0000000..6e680f7 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/dis/close.svg @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/dis/doc.svg b/src/main/webapp/ClipReport4/img/dis/doc.svg new file mode 100644 index 0000000..5005842 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/dis/doc.svg @@ -0,0 +1,133 @@ + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/dis/excel.svg b/src/main/webapp/ClipReport4/img/dis/excel.svg new file mode 100644 index 0000000..4f8a7de --- /dev/null +++ b/src/main/webapp/ClipReport4/img/dis/excel.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/dis/hwp.svg b/src/main/webapp/ClipReport4/img/dis/hwp.svg new file mode 100644 index 0000000..90b2226 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/dis/hwp.svg @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/dis/info.svg b/src/main/webapp/ClipReport4/img/dis/info.svg new file mode 100644 index 0000000..e4f812b --- /dev/null +++ b/src/main/webapp/ClipReport4/img/dis/info.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/dis/left.svg b/src/main/webapp/ClipReport4/img/dis/left.svg new file mode 100644 index 0000000..309216a --- /dev/null +++ b/src/main/webapp/ClipReport4/img/dis/left.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/dis/leftEnd.svg b/src/main/webapp/ClipReport4/img/dis/leftEnd.svg new file mode 100644 index 0000000..96eddd4 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/dis/leftEnd.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/dis/pdf.svg b/src/main/webapp/ClipReport4/img/dis/pdf.svg new file mode 100644 index 0000000..b932eb5 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/dis/pdf.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/dis/print.svg b/src/main/webapp/ClipReport4/img/dis/print.svg new file mode 100644 index 0000000..ad96ee4 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/dis/print.svg @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/dis/right.svg b/src/main/webapp/ClipReport4/img/dis/right.svg new file mode 100644 index 0000000..3d64b09 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/dis/right.svg @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/dis/rightEnd.svg b/src/main/webapp/ClipReport4/img/dis/rightEnd.svg new file mode 100644 index 0000000..9f0a05d --- /dev/null +++ b/src/main/webapp/ClipReport4/img/dis/rightEnd.svg @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/dis/save.svg b/src/main/webapp/ClipReport4/img/dis/save.svg new file mode 100644 index 0000000..dcb4473 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/dis/save.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/doc.svg b/src/main/webapp/ClipReport4/img/doc.svg new file mode 100644 index 0000000..66858d5 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/doc.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/eform/close.png b/src/main/webapp/ClipReport4/img/eform/close.png new file mode 100644 index 0000000..e7cb108 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/close.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/doodle/all_eraser.png b/src/main/webapp/ClipReport4/img/eform/doodle/all_eraser.png new file mode 100644 index 0000000..53f5ab4 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/doodle/all_eraser.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/doodle/close.png b/src/main/webapp/ClipReport4/img/eform/doodle/close.png new file mode 100644 index 0000000..fb269d4 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/doodle/close.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/doodle/eraser.png b/src/main/webapp/ClipReport4/img/eform/doodle/eraser.png new file mode 100644 index 0000000..743f03e Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/doodle/eraser.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/doodle/pallet.png b/src/main/webapp/ClipReport4/img/eform/doodle/pallet.png new file mode 100644 index 0000000..6caee38 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/doodle/pallet.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/doodle/pen.png b/src/main/webapp/ClipReport4/img/eform/doodle/pen.png new file mode 100644 index 0000000..8aeb2df Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/doodle/pen.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/left.png b/src/main/webapp/ClipReport4/img/eform/left.png new file mode 100644 index 0000000..2b4fc25 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/left.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/leftEnd.png b/src/main/webapp/ClipReport4/img/eform/leftEnd.png new file mode 100644 index 0000000..77930a8 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/leftEnd.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/list_close.png b/src/main/webapp/ClipReport4/img/eform/list_close.png new file mode 100644 index 0000000..39c7a7c Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/list_close.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/navi/left.png b/src/main/webapp/ClipReport4/img/eform/navi/left.png new file mode 100644 index 0000000..48d37f1 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/navi/left.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/navi/right.png b/src/main/webapp/ClipReport4/img/eform/navi/right.png new file mode 100644 index 0000000..9f57e28 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/navi/right.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/nec_check.png b/src/main/webapp/ClipReport4/img/eform/nec_check.png new file mode 100644 index 0000000..749e47a Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/nec_check.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/print.png b/src/main/webapp/ClipReport4/img/eform/print.png new file mode 100644 index 0000000..2ca4cb8 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/print.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/right.png b/src/main/webapp/ClipReport4/img/eform/right.png new file mode 100644 index 0000000..30688c1 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/right.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/rightEnd.png b/src/main/webapp/ClipReport4/img/eform/rightEnd.png new file mode 100644 index 0000000..97400e8 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/rightEnd.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/save.png b/src/main/webapp/ClipReport4/img/eform/save.png new file mode 100644 index 0000000..f37b4eb Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/save.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/shiftLeft.png b/src/main/webapp/ClipReport4/img/eform/shiftLeft.png new file mode 100644 index 0000000..0f3cd6f Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/shiftLeft.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/shiftLeftLong.png b/src/main/webapp/ClipReport4/img/eform/shiftLeftLong.png new file mode 100644 index 0000000..5dacad8 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/shiftLeftLong.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/shiftRight.png b/src/main/webapp/ClipReport4/img/eform/shiftRight.png new file mode 100644 index 0000000..3102c67 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/shiftRight.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/shiftRightLong.png b/src/main/webapp/ClipReport4/img/eform/shiftRightLong.png new file mode 100644 index 0000000..b00efd9 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/shiftRightLong.png differ diff --git a/src/main/webapp/ClipReport4/img/eform/sign/background.png b/src/main/webapp/ClipReport4/img/eform/sign/background.png new file mode 100644 index 0000000..fa4e7e6 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/eform/sign/background.png differ diff --git a/src/main/webapp/ClipReport4/img/efromProgress.gif b/src/main/webapp/ClipReport4/img/efromProgress.gif new file mode 100644 index 0000000..5e9f5e7 Binary files /dev/null and b/src/main/webapp/ClipReport4/img/efromProgress.gif differ diff --git a/src/main/webapp/ClipReport4/img/excel.svg b/src/main/webapp/ClipReport4/img/excel.svg new file mode 100644 index 0000000..7ef2517 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/excel.svg @@ -0,0 +1,539 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/hwp.svg b/src/main/webapp/ClipReport4/img/hwp.svg new file mode 100644 index 0000000..b95bd0b --- /dev/null +++ b/src/main/webapp/ClipReport4/img/hwp.svg @@ -0,0 +1,539 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/info.svg b/src/main/webapp/ClipReport4/img/info.svg new file mode 100644 index 0000000..93d1ee6 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/info.svg @@ -0,0 +1,542 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/left.svg b/src/main/webapp/ClipReport4/img/left.svg new file mode 100644 index 0000000..7ec1702 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/left.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/leftEnd.svg b/src/main/webapp/ClipReport4/img/leftEnd.svg new file mode 100644 index 0000000..2b271fe --- /dev/null +++ b/src/main/webapp/ClipReport4/img/leftEnd.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/over/close.svg b/src/main/webapp/ClipReport4/img/over/close.svg new file mode 100644 index 0000000..7afa650 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/over/close.svg @@ -0,0 +1,240 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/over/excel.svg b/src/main/webapp/ClipReport4/img/over/excel.svg new file mode 100644 index 0000000..1e3e8b2 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/over/excel.svg @@ -0,0 +1,622 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/over/hwp.svg b/src/main/webapp/ClipReport4/img/over/hwp.svg new file mode 100644 index 0000000..1e3e8b2 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/over/hwp.svg @@ -0,0 +1,622 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/over/info.svg b/src/main/webapp/ClipReport4/img/over/info.svg new file mode 100644 index 0000000..fb64994 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/over/info.svg @@ -0,0 +1,542 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/over/left.svg b/src/main/webapp/ClipReport4/img/over/left.svg new file mode 100644 index 0000000..42a40d4 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/over/left.svg @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .pdf + + + + diff --git a/src/main/webapp/ClipReport4/img/over/leftEnd.svg b/src/main/webapp/ClipReport4/img/over/leftEnd.svg new file mode 100644 index 0000000..5c25474 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/over/leftEnd.svg @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .pdf + + + + diff --git a/src/main/webapp/ClipReport4/img/over/pdf.svg b/src/main/webapp/ClipReport4/img/over/pdf.svg new file mode 100644 index 0000000..1e3e8b2 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/over/pdf.svg @@ -0,0 +1,622 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/over/print.svg b/src/main/webapp/ClipReport4/img/over/print.svg new file mode 100644 index 0000000..6bc6392 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/over/print.svg @@ -0,0 +1,594 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/over/right.svg b/src/main/webapp/ClipReport4/img/over/right.svg new file mode 100644 index 0000000..625438f --- /dev/null +++ b/src/main/webapp/ClipReport4/img/over/right.svg @@ -0,0 +1,247 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .pdf + + + + diff --git a/src/main/webapp/ClipReport4/img/over/rightEnd.svg b/src/main/webapp/ClipReport4/img/over/rightEnd.svg new file mode 100644 index 0000000..9f01cbf --- /dev/null +++ b/src/main/webapp/ClipReport4/img/over/rightEnd.svg @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .pdf + + + + diff --git a/src/main/webapp/ClipReport4/img/over/save.svg b/src/main/webapp/ClipReport4/img/over/save.svg new file mode 100644 index 0000000..0be4701 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/over/save.svg @@ -0,0 +1,621 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/pdf.svg b/src/main/webapp/ClipReport4/img/pdf.svg new file mode 100644 index 0000000..d82318d --- /dev/null +++ b/src/main/webapp/ClipReport4/img/pdf.svg @@ -0,0 +1,540 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/print.svg b/src/main/webapp/ClipReport4/img/print.svg new file mode 100644 index 0000000..b9dd67c --- /dev/null +++ b/src/main/webapp/ClipReport4/img/print.svg @@ -0,0 +1,611 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/right.svg b/src/main/webapp/ClipReport4/img/right.svg new file mode 100644 index 0000000..c914ee8 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/right.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/rightEnd.svg b/src/main/webapp/ClipReport4/img/rightEnd.svg new file mode 100644 index 0000000..a4fa720 --- /dev/null +++ b/src/main/webapp/ClipReport4/img/rightEnd.svg @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/save.svg b/src/main/webapp/ClipReport4/img/save.svg new file mode 100644 index 0000000..2f8183d --- /dev/null +++ b/src/main/webapp/ClipReport4/img/save.svg @@ -0,0 +1,461 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + .pdf + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/ClipReport4/img/tile.jpg b/src/main/webapp/ClipReport4/img/tile.jpg new file mode 100644 index 0000000..baf611b Binary files /dev/null and b/src/main/webapp/ClipReport4/img/tile.jpg differ diff --git a/src/main/webapp/ClipReport4/install/clip_exePrintCheck.js b/src/main/webapp/ClipReport4/install/clip_exePrintCheck.js new file mode 100644 index 0000000..5539153 --- /dev/null +++ b/src/main/webapp/ClipReport4/install/clip_exePrintCheck.js @@ -0,0 +1,161 @@ +var agt = navigator.userAgent.toLowerCase(); +is_window = (agt.indexOf('windows') != -1); +function HttpClient() { + try { + var objRequest = new XMLHttpRequest(); + // var objRequest = new XDomainRequest(); + if (null != objRequest) + this.m_objHttpRequest = objRequest; + } catch (e) { + try { + var objRequest = new ActiveXObject("Msxml2.XMLHTTP"); + if (null != objRequest) + this.m_objHttpRequest = objRequest; + } catch (e) { + try { + var objRequest = new ActiveXObject("Microsoft.XMLHTTP"); + if (null != objRequest) + this.m_objHttpRequest = objRequest; + } catch (e) { + throw new Error("HttpRequest not supported"); + } + } + } +} + +HttpClient.prototype.send = function(strURL, objData, bAsync, + handleASyncHttpResponse) { + if (bAsync) { + this.m_objHttpRequest.onreadystatechange = handleASyncHttpResponse; + } else { + this.m_objHttpRequest.onreadystatechange = null; + } + + try{ + this.m_objHttpRequest.open("POST", strURL, bAsync); + this.m_objHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); + //this.m_objHttpRequest.setRequestHeader("Content-Encoding", "gzip"); + this.m_objHttpRequest.send(objData); + }catch(send_e){ + if(window.console){ + window.console.log(send_e); + } + } + + + + if (!bAsync) { + if (4 == this.m_objHttpRequest.readyState) { + if (200 == this.m_objHttpRequest.status) { + return this.m_objHttpRequest.responseText; + } else { + throw new Error(this.m_objHttpRequest.status); + } + } + return this._handleSyncHttpResponse(); + } +}; + +function ClipReportExePrintCheck(func_exec){ + var hostName = ""; + hostName = "127.0.0.1"; + var urlArray =["http://"+hostName+":11000/version", + "http://"+hostName+":22000/version", + "http://"+hostName+":33000/version"]; + + if("https:" == location.protocol.toLocaleLowerCase()){ + urlArray = ["https://"+hostName+":11443/version", + "https://"+hostName+":22443/version", + "https://"+hostName+":33443/version"]; + } + + + if (window.XDomainRequest) { + var xdr0 = new XDomainRequest(); + if (xdr0) { + try{ + xdr0.onload = function () { + var object = (new Function("return " + xdr0.responseText))(); + func_exec(object.version); + }; + xdr0.onerror = function () { + + }; + xdr0.open('POST', urlArray[0]); + xdr0.send(""); + }catch(send_e){ + if(window.console){ + window.console.log(send_e); + } + } + + } + var xdr1 = new XDomainRequest(); + if (xdr1) { + try{ + xdr1.onload = function () { + var object = (new Function("return " + xdr1.responseText))(); + func_exec(object.version); + }; + xdr1.onerror = function () { + }; + xdr1.open('POST', urlArray[1]); + xdr1.send(""); + }catch(send_e){ + if(window.console){ + window.console.log(send_e); + } + } + + } + var xdr2 = new XDomainRequest(); + if (xdr2) { + try{ + xdr2.onload = function () { + var object = (new Function("return " + xdr2.responseText))(); + func_exec(object.version); + }; + xdr2.onerror = function () { + }; + xdr2.open('POST', urlArray[2]); + xdr2.send(""); + }catch(send_e){ + if(window.console){ + window.console.log(send_e); + } + } + } + } + else{ + var objHttp1 = new HttpClient(); + objHttp1.send(urlArray[0], '', true, function(){ + if (4 == this.readyState) { + if (200 == this.status) { + var object = (new Function("return " + this.responseText))(); + func_exec(object.version); + } + } + }); + var objHttp2 = new HttpClient(); + objHttp2.send(urlArray[1], '', true, function(){ + if (4 == this.readyState) { + if (200 == this.status) { + var object = (new Function("return " + this.responseText))(); + func_exec(object.version); + } + } + }); + var objHttp3 = new HttpClient(); + objHttp3.send(urlArray[2], '', true, function(){ + if (4 == this.readyState) { + if (200 == this.status) { + var object = (new Function("return " + this.responseText))(); + func_exec(object.version); + } + } + }); + } +} + + + diff --git a/src/main/webapp/ClipReport4/install/exePrintCheckSample.html b/src/main/webapp/ClipReport4/install/exePrintCheckSample.html new file mode 100644 index 0000000..56f423a --- /dev/null +++ b/src/main/webapp/ClipReport4/install/exePrintCheckSample.html @@ -0,0 +1,28 @@ + + + + +Insert title here + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/jdbcConnection.jsp b/src/main/webapp/ClipReport4/jdbcConnection.jsp new file mode 100644 index 0000000..4de96e0 --- /dev/null +++ b/src/main/webapp/ClipReport4/jdbcConnection.jsp @@ -0,0 +1,36 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.sql.*, javax.naming.*, javax.sql.*" %><% + response.setContentType("text/html;charset=UTF-8"); + Connection conn = null; + CallableStatement stmt = null; + ResultSet rs = null; + /* + ClassName + + SQL_Server 2000 - com.microsoft.jdbc.sqlserver.SQLServerDriver + SQL_Server 2005, 2008, 2012 - com.microsoft.sqlserver.jdbc.SQLServerDriver + MySQL - com.mysql.jdbc.Driver + Oracle - oracle.jdbc.driver.OracleDriver + Tibero - com.tmax.tibero.jdbc.TbDriver + + DB2(Universal JDBC Type 2, 4) - com.ibm.db2.jcc.DB2Driver + */ + + String className = ""; + + String url = ""; + String user = ""; + String password = ""; + try { + Class.forName(className); + conn = DriverManager.getConnection(url, user, password); + out.println("

JDBC Connection Success

"); + out.println("
- Product Name : " + conn.getMetaData().getDatabaseProductName() + "
"); + out.println("
- Product Version : " + conn.getMetaData().getDatabaseProductVersion() + "
"); + out.println("
- Driver Name : " + conn.getMetaData().getDriverName()+"
"); + out.println("
- Driver Version : " + conn.getMetaData().getDriverVersion()+"
"); + } catch (Exception e) { + response.getWriter().append("
Exception Message

"); + e.printStackTrace(response.getWriter()); + } +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/jndiConnection.jsp b/src/main/webapp/ClipReport4/jndiConnection.jsp new file mode 100644 index 0000000..32e100f --- /dev/null +++ b/src/main/webapp/ClipReport4/jndiConnection.jsp @@ -0,0 +1,20 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page import="java.sql.*, javax.naming.*, javax.sql.*" %> +<% + Connection conn = null; + Statement stmt = null; + String jndiName = ""; + try { + InitialContext ctx = new InitialContext(); + DataSource ds = (DataSource) ctx.lookup(jndiName); + conn = ds.getConnection(); + out.println("
JNDI Connection Success


"); + out.println("
- Product Name : " + conn.getMetaData().getDatabaseProductName() + "
"); + out.println("
- Product Version : " + conn.getMetaData().getDatabaseProductVersion() + "
"); + out.println("
- Driver Name : " + conn.getMetaData().getDriverName()+"
"); + out.println("
- Driver Version : " + conn.getMetaData().getDriverVersion()+"
"); + } catch (Exception e) { + response.getWriter().append("
Exception Message

"); + e.printStackTrace(response.getWriter()); + } +%> \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/js/ClipPrintPlugin.js b/src/main/webapp/ClipReport4/js/ClipPrintPlugin.js new file mode 100644 index 0000000..d04ccc0 --- /dev/null +++ b/src/main/webapp/ClipReport4/js/ClipPrintPlugin.js @@ -0,0 +1 @@ +function pdfPrintPlugIn(){this.status=0;this.url=null;this.param=null;this.targetDiv=document.getElementById("mRe_pdfPrint_div");if(null!=this.targetDiv){document.body.removeChild(this.targetDiv);}this.targetDiv=document.createElement("div");this.targetDiv.id="mRe_pdfPrint_div";this.targetDiv.style.cssText="position:absolute !important;width:1px !important;height:1px !important;visibility:hidden !important;opacity:0 !important;filter:alpha(opacity=0) !important;";document.body.appendChild(this.targetDiv);}pdfPrintPlugIn.prototype.connection=function(a,b){this.status=0;this.url=a;this.param=b;if(is_firefox){this.status=1;}else{if(m_report_printOption.acrobat){if(is_chrome||is_opera){if(!("Chrome PDF Viewer"==m_report_printOption.acrobatVersion||"Chromium PDF Viewer"==m_report_printOption.acrobatVersion)){this.status=1;}}else{if(is_ie||is_ie11){if(is_win78_reader9||is_reader8){this.status=2;}}}if(is_safari){this.status=1;}}else{if(is_edge){this.status=4;}else{this.status=3;}}}return this.status;};pdfPrintPlugIn.prototype.print=function(){if(this.url==null){return;}if(this.status==0){var a=new Date().getTime();var e=this.url+"?s_time="+a+"&"+this.param;var f=this.targetDiv.lastChild;if(null!=f){if("IFRAME"==f.tagName){this.targetDiv.removeChild(f);}}var d=document.createElement("iframe");this.targetDiv.appendChild(d);d.src=e;}else{if(this.status==1||this.status==2){window.open("","report_SubWindow","height=600,width=750");var c=this.create_print_form();this.targetDiv.appendChild(c);c.target="report_SubWindow";c.submit();}else{var b=document.createElement("iframe");b.name="report_SubFrame";this.targetDiv.appendChild(b);var c=this.create_print_form();this.targetDiv.appendChild(c);c.target="report_SubFrame";c.submit();}}};pdfPrintPlugIn.prototype.create_print_form=function(){var c=document.createElement("form");c.action=this.url;c.encoding="application/x-www-form-urlencoded";c.method="post";var a=this.param.split("&");for(var b=0;b1){var d=document.createElement("input");d.type="hidden";d.name=e[0];d.value=e[1];c.appendChild(d);}}return c;};function CReportPrintPDFcheck(a){if(typeof a.print==="undefined"){setTimeout(function(){CReportPrintPDFcheck(a);},1000);}else{a.printWithDialog();}}function mRe_getPDFPrintFrame(a){var b=new Array();b.push('');b.push("");b.push("");b.push('');b.push("print");b.push("");b.push("");b.push(' ');b.push(' + + + + + + +
+ + \ No newline at end of file diff --git a/src/main/webapp/ClipReport4/test.jsp b/src/main/webapp/ClipReport4/test.jsp new file mode 100644 index 0000000..d0c3d43 --- /dev/null +++ b/src/main/webapp/ClipReport4/test.jsp @@ -0,0 +1,45 @@ +<%@page import="com.clipsoft.clipreport.oof.OOFFile"%> +<%@page import="com.clipsoft.clipreport.oof.OOFDocument"%> +<%@page import="java.io.File"%> +<%@page import="com.clipsoft.clipreport.server.service.ReportUtil"%> +<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<% +OOFDocument oof = OOFDocument.newOOF(); +OOFFile file = oof.addFile("crf.root", "%root%/crf/CLIP.crf"); +%><%@include file="Property.jsp"%><% +//세션을 활용하여 리포트키들을 관리하지 않는 옵션 +//request.getSession().setAttribute("ClipReport-SessionList-Allow", false); +String resultKey = ReportUtil.createReport(request, oof, "false", "false", request.getRemoteAddr(), propertyPath); +//리포트의 특정 사용자 ID를 부여합니다. +//clipreport4.properties 의 useuserid 옵션이 true 일 때만 적용됩니다. +//clipreport4.properties 의 useuserid 옵션이 true 이고 기본 예제[String resultKey = ReportUtil.createReport(request, oof, "false", "false", request.getRemoteAddr(), propertyPath);] 사용 했을 때 세션ID가 userID로 사용 됩니다. +//String resultKey = ReportUtil.createReport(request, oof, "false", "false", request.getRemoteAddr(), propertyPath, "userID"); +%> + + + +Report + + + + + + + + + + + +
+ + diff --git a/src/main/webapp/META-INF/MANIFEST.MF b/src/main/webapp/META-INF/MANIFEST.MF new file mode 100644 index 0000000..254272e --- /dev/null +++ b/src/main/webapp/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/src/main/webapp/RexServer30/cab/Rexpert30ViewerEXE.cab b/src/main/webapp/RexServer30/cab/Rexpert30ViewerEXE.cab new file mode 100644 index 0000000..c1e6892 Binary files /dev/null and b/src/main/webapp/RexServer30/cab/Rexpert30ViewerEXE.cab differ diff --git a/src/main/webapp/RexServer30/cab/getviewer.jsp b/src/main/webapp/RexServer30/cab/getviewer.jsp new file mode 100644 index 0000000..023f5c1 --- /dev/null +++ b/src/main/webapp/RexServer30/cab/getviewer.jsp @@ -0,0 +1,146 @@ +<%@ page + contentType="text/html;charset=utf-8" +%><%@page import="java.util.*, java.io.*, java.lang.String, java.text.*, java.net.*" %><% + // request.setCharacterEncoding("utf-8"); + + //------------------------------------ + // 0. get parameter + //------------------------------------ + String sFileName = (request.getParameter("f") == null ? "" : request.getParameter("f")); + + // 0. check parameter + if ( !(sFileName.equals("rexpert30viewer.exe")) ) { + out.clear(); + out.print("rexpert viewer download failed !!"); + out.close(); + } + + //------------------------------------ + // 1. define constants + //------------------------------------ + String sBasePath = ""; // "C:/running/RexServer30/rexscript/"; + + sBasePath = getCurrentPath(application, request) + "/"; + + //String sBasePath = application.getRealPath("/") + "/rebfiles/"; + //sReportName = unescape(sReportName); + + File file = new File(sBasePath + "" + sFileName); + + byte b[] = new byte[4062]; + + response.reset(); + + String strClient=request.getHeader("User-Agent"); + if(strClient.indexOf("MSIE 5.5")>-1) + { + response.setContentType("application/x-msdownload; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + sFileName); //+new String(sReportName.getBytes("euc-kr"),"8859_1")); + } else { + response.setContentType("application/x-msdownload; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + sFileName); //+new String(sReportName.getBytes("euc-kr"),"8859_1")); + } + + response.setHeader("Content-Transfer-Encoding", "binary;"); + response.setHeader("Pragma", "no-cache;"); + response.setHeader("Expires", "0;"); + response.setContentLength((int)file.length()); // file size + + if (file.isFile()) + { + out.clear(); + out = pageContext.pushBody(); + + BufferedInputStream fin = new BufferedInputStream(new FileInputStream(file)); + BufferedOutputStream outs = new BufferedOutputStream(response.getOutputStream()); + int read = 0; + while ((read = fin.read(b)) != -1){ + outs.write(b,0,read); + outs.flush(); + } + + outs.close(); + fin.close(); + + /* + InputStream buffInStm = adapter.getFileStream(fileType, filePath, fileName, false); + OutputStream buffOutStm = response.getOutputStream(); + + int num = 0; + + while ((num = buffInStm.read()) != -1) { + buffOutStm.write(num); + } + + buffInStm.close(); + buffOutStm.close(); + */ + } + + file = null; +%><%! + private String getCurrentPath(ServletContext application, HttpServletRequest request) + { + return new File( + application.getRealPath( + request.getServletPath() + ) + ).getParentFile().getAbsolutePath(); + } + + public String escape(String src) { + int i; + char j; + StringBuffer tmp = new StringBuffer(); + tmp.ensureCapacity(src.length() * 6); + + for (i = 0; i < src.length(); i++) { + j = src.charAt(i); + if (Character.isDigit(j) || Character.isLowerCase(j) + || Character.isUpperCase(j)) + tmp.append(j); + else if (j < 256) { + tmp.append("%"); + if (j < 16) + tmp.append("0"); + tmp.append(Integer.toString(j, 16)); + } else { + tmp.append("%u"); + tmp.append(Integer.toString(j, 16)); + } + } + return tmp.toString(); + } + + public String unescape(String src) { + StringBuffer tmp = new StringBuffer(); + tmp.ensureCapacity(src.length()); + int lastPos = 0, pos = 0; + char ch; + while (lastPos < src.length()) { + pos = src.indexOf("%", lastPos); + if (pos == lastPos) { + if (src.charAt(pos + 1) == 'u') { + ch = (char) Integer.parseInt(src + .substring(pos + 2, pos + 6), 16); + tmp.append(ch); + lastPos = pos + 6; + } else { + ch = (char) Integer.parseInt(src + .substring(pos + 1, pos + 3), 16); + tmp.append(ch); + lastPos = pos + 3; + } + } else { + if (pos == -1) { + tmp.append(src.substring(lastPos)); + lastPos = src.length(); + } else { + tmp.append(src.substring(lastPos, pos)); + lastPos = pos; + } + } + } + return tmp.toString(); + } +%> \ No newline at end of file diff --git a/src/main/webapp/RexServer30/cab/rexpert30viewer.exe b/src/main/webapp/RexServer30/cab/rexpert30viewer.exe new file mode 100644 index 0000000..a3d03dd Binary files /dev/null and b/src/main/webapp/RexServer30/cab/rexpert30viewer.exe differ diff --git a/src/main/webapp/RexServer30/esp_sample.jsp b/src/main/webapp/RexServer30/esp_sample.jsp new file mode 100644 index 0000000..1e99f51 --- /dev/null +++ b/src/main/webapp/RexServer30/esp_sample.jsp @@ -0,0 +1,76 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" %><%@ page import="java.io.InputStream,java.io.OutputStream,java.util.*,java.text.*,com.clipsoft.rextoolkit.*,com.clipsoft.rextoolkit.enumtype.*,com.clipsoft.rextoolkit.oof.*, com.clipsoft.rextoolkit.oof.enumtype.*,com.clipsoft.rextoolkit.parameter.*,com.clipsoft.rextoolkit.parameter.enumtype.* " %><% + String httpURL ="http://218.232.234.161/RexServer30/rexservice.jsp"; + String rebURL = "http://218.232.234.161/RexServer30/rebfiles/Rexpert1.reb"; + String rexEspUrl = "http://218.232.234.161/RexESP/RexSOPServer"; + String exportFilePath = "C:/Report/export/"; + String exportFileName = "test.pdf"; + +%><% + + RexSOPToolkit rexSOPToolkit = new RexSOPToolkit(); + + + + Oof oof = new Oof(); + oof.setTitle("׽Ʈ"); + oof.setEnableLog(true); + oof.setEnableThread(true); + + CsvContent csvContent = (CsvContent) ContentFactory.createContent(ContentType.CSV); + csvContent.setRowDelim("|#|"); + csvContent.setColDelim("|*|"); + csvContent.setDataSetDelim("|@|"); + csvContent.setEncoding(EncodingType.UTF_8); + + HttpConnection httpConnection = (HttpConnection) ConnectionFactory.createConnection(ConnectionType.HTTP); + httpConnection.setPath(httpURL); + httpConnection.setMethod("post"); + httpConnection.setNamespace("*"); + httpConnection.addHttpParam(new HttpParam("Q1SQL",OofSpecialField.AUTO.getValue())); + httpConnection.addHttpParam(new HttpParam("OE","None")); + httpConnection.addHttpParam(new HttpParam("CN","oracle1")); + httpConnection.addHttpParam(new HttpParam("ID","SDCSV")); + httpConnection.addHttpParam(new HttpParam("PE", "FALSE")); + httpConnection.addHttpParam(new HttpParam("QC","1")); + httpConnection.addHttpParam(new HttpParam("OT", "DataOnly")); + httpConnection.addHttpParam(new HttpParam("Q1Type", "SQL")); + httpConnection.addContent(csvContent); + + com.clipsoft.rextoolkit.oof.File file = new com.clipsoft.rextoolkit.oof.File(); + file.setType(FileType.REB); + file.setPath(rebURL); + file.setShowParameterDialog(true); + + oof.addFile(file); + oof.addConnection(httpConnection); + + oof.addField(new Field("Ű ʵ1", "Ű ʵ 1")); + oof.addField(new Field("Ű ʵ2", "Ű ʵ 2")); + + rexSOPToolkit.setRexEspUrl(rexEspUrl); + rexSOPToolkit.setSubmitEncodingType(SubmitEncodingType.UTF_8); + + PdfExportParameter pdfExportParameter = ParameterFactory.createPdfExportParameter(); + pdfExportParameter.setOof(oof.createOof()); + pdfExportParameter.setOofProcessType(OofProcessType.PATH); + pdfExportParameter.setFilePath(exportFilePath); + pdfExportParameter.setFileName(exportFileName); + + RexToolkitResult result = rexSOPToolkit.export(pdfExportParameter); + + + HashMap info = result.getInfoMap(); + + InputStream is = rexSOPToolkit.fileStream( + (String)info.get("filePath"), + (String)info.get("fileName"), + ExportType.PDF.getValue(), + false + ); + + RexToolkitUtility rexToolkitUtility = new RexToolkitUtility(); + + rexToolkitUtility.setContentType(ExportType.PDF); + rexToolkitUtility.responseOutputStream(response, is); + +%> \ No newline at end of file diff --git a/src/main/webapp/RexServer30/gateway.jsp b/src/main/webapp/RexServer30/gateway.jsp new file mode 100644 index 0000000..f8ebdf7 --- /dev/null +++ b/src/main/webapp/RexServer30/gateway.jsp @@ -0,0 +1,47 @@ +<%@page contentType="text/html;charset=UTF-8" %> +<%@page import="java.util.*" %> + + + + + + +
+<% + + //request.setCharacterEncoding("EUC-KR"); + Enumeration paramNames = request.getParameterNames(); + String param = null; + + String sKey = ""; + String sKeyVal = ""; + + while (paramNames.hasMoreElements()) { + String name = (String)paramNames.nextElement(); + + //sKey = new String(name.getBytes("ISO-8859-1"), "EUC-KR"); + sKey = name; + + String value = request.getParameter(name); + //sKeyVal = new String(value.getBytes("ISO-8859-1"), "EUC-KR"); + sKeyVal = value; + +%> + +<% + } + //request.setCharacterEncoding("UTF-8"); +%> + +
+ + \ No newline at end of file diff --git a/src/main/webapp/RexServer30/getreport.jsp b/src/main/webapp/RexServer30/getreport.jsp new file mode 100644 index 0000000..75df31d --- /dev/null +++ b/src/main/webapp/RexServer30/getreport.jsp @@ -0,0 +1,129 @@ +<%@ page contentType="text/html;charset=UTF-8"%><%@page import="java.util.*, java.io.*, java.lang.String, java.text.*, java.net.*" %><% +// request.setCharacterEncoding("utf-8"); + + //------------------------------------ + // 0. 파라메터 받음 + //------------------------------------ + String sReportName = (request.getParameter("rptname") == null ? "" : request.getParameter("rptname")); + + //------------------------------------ + // 1. 상수 정의 + //------------------------------------ + //String sBasePath = "D:\\rexpert30\\RexServer30\\rebfiles\\samples\\"; + String sBasePath = application.getRealPath("/") + "/rebfiles/"; + + sReportName = unescape(sReportName); + + sReportName += ".reb"; + +//System.out.println(sReportName); + + //------------------------------------ + // 4. export 파일 읽어서 전송 + //------------------------------------ + File file = new File(sBasePath + "" + sReportName); // 절대경로 + byte b[] = new byte[4062]; + response.reset(); + + String strClient=request.getHeader("User-Agent"); + if(strClient.indexOf("MSIE 5.5")>-1) + { + response.setContentType("application/x-msdownload; charset=euc-kr"); + response.setHeader("Content-Disposition", "attachment;filename=report.reb"); //+new String(sReportName.getBytes("euc-kr"),"8859_1")); + //response.setHeader("Content-Disposition", "attachment;filename="+sReportName); + } else { + response.setContentType("application/x-msdownload; charset=euc-kr"); + response.setHeader("Content-Disposition", "attachment;filename=report.reb"); //+new String(sReportName.getBytes("euc-kr"),"8859_1")); + //response.setHeader("Content-Disposition", "attachment;filename="+sReportName); + } + + response.setHeader("Content-Transfer-Encoding", "binary;"); + response.setHeader("Pragma", "no-cache;"); + response.setHeader("Expires", "0;"); + response.setContentLength((int)file.length()); //파일크기를 브라우저에 알려준다. + // IE 5.5는 형식이 다르므로 헤더를 각각 다르게 처리해 준다. + + if (file.isFile()) + { + out.clear(); + + BufferedInputStream fin = new BufferedInputStream(new FileInputStream(file)); + BufferedOutputStream outs = new BufferedOutputStream(response.getOutputStream()); + int read = 0; + while ((read = fin.read(b)) != -1){ + outs.write(b,0,read); + outs.flush(); + } + outs.close(); + fin.close(); + + //out = pageContext.pushBody(); + } + + file = null; +%><%! + public String getCurrentPath(ServletContext application, HttpServletRequest request) + { + return new File( + application.getRealPath( + request.getServletPath() + ) + ).getParentFile().getAbsolutePath(); + } + + public String escape(String src) { + int i; + char j; + StringBuffer tmp = new StringBuffer(); + tmp.ensureCapacity(src.length() * 6); + + for (i = 0; i < src.length(); i++) { + j = src.charAt(i); + if (Character.isDigit(j) || Character.isLowerCase(j) + || Character.isUpperCase(j)) + tmp.append(j); + else if (j < 256) { + tmp.append("%"); + if (j < 16) + tmp.append("0"); + tmp.append(Integer.toString(j, 16)); + } else { + tmp.append("%u"); + tmp.append(Integer.toString(j, 16)); + } + } + return tmp.toString(); + } + + public String unescape(String src) { + StringBuffer tmp = new StringBuffer(); + tmp.ensureCapacity(src.length()); + int lastPos = 0, pos = 0; + char ch; + + while (lastPos < src.length()) { + pos = src.indexOf("%", lastPos); + if (pos == lastPos) { + if (src.charAt(pos + 1) == 'u') { + ch = (char) Integer.parseInt(src.substring(pos + 2, pos + 6), 16); + tmp.append(ch); + lastPos = pos + 6; + } else { + ch = (char) Integer.parseInt(src.substring(pos + 1, pos + 3), 16); + tmp.append(ch); + lastPos = pos + 3; + } + } else { + if (pos == -1) { + tmp.append(src.substring(lastPos)); + lastPos = src.length(); + } else { + tmp.append(src.substring(lastPos, pos)); + lastPos = pos; + } + } + } + + return tmp.toString(); + } +%> \ No newline at end of file diff --git a/src/main/webapp/RexServer30/license.jsp b/src/main/webapp/RexServer30/license.jsp new file mode 100644 index 0000000..647152f --- /dev/null +++ b/src/main/webapp/RexServer30/license.jsp @@ -0,0 +1,2 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + \ No newline at end of file diff --git a/src/main/webapp/RexServer30/rebfiles/Rexpert1.reb b/src/main/webapp/RexServer30/rebfiles/Rexpert1.reb new file mode 100644 index 0000000..4f3ee64 Binary files /dev/null and b/src/main/webapp/RexServer30/rebfiles/Rexpert1.reb differ diff --git a/src/main/webapp/RexServer30/rexpreview.jsp b/src/main/webapp/RexServer30/rexpreview.jsp new file mode 100644 index 0000000..8fb4554 --- /dev/null +++ b/src/main/webapp/RexServer30/rexpreview.jsp @@ -0,0 +1,552 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + + + +Rexpert Viewer + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/RexServer30/rexscript/getscript.jsp b/src/main/webapp/RexServer30/rexscript/getscript.jsp new file mode 100644 index 0000000..8028dd3 --- /dev/null +++ b/src/main/webapp/RexServer30/rexscript/getscript.jsp @@ -0,0 +1,145 @@ +<%@ page contentType="text/html;charset=UTF-8" %><%@page import="java.util.*, java.io.*, java.lang.String, java.text.*, java.net.*" %><% + // request.setCharacterEncoding("utf-8"); + + //------------------------------------ + // 0. get parameter + //------------------------------------ + String sFileName = (request.getParameter("f") == null ? "" : request.getParameter("f")); + + // 0. check parameter + if (!(sFileName.equals("rexpert") || sFileName.equals("rexpert.min") || sFileName.equals("rexpert.properties"))) { + out.clear(); + out.print("Rexpert script download failed !!"); + out.close(); + } + + //------------------------------------ + // 1. define constants + //------------------------------------ + String sBasePath = ""; // "C:/running/RexServer30/rexscript/"; + + sBasePath = getCurrentPath(application, request) + "/"; + + //String sBasePath = application.getRealPath("/") + "/rebfiles/"; + //sReportName = unescape(sReportName); + + + File file = new File(sBasePath + "" + sFileName + ".js"); + + byte b[] = new byte[4062]; + + response.reset(); + + String strClient=request.getHeader("User-Agent"); + if(strClient.indexOf("MSIE 5.5")>-1) + { + response.setContentType("application/x-msdownload; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + sFileName); //+new String(sReportName.getBytes("euc-kr"),"8859_1")); + } else { + response.setContentType("application/x-msdownload; charset=utf-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + sFileName); //+new String(sReportName.getBytes("euc-kr"),"8859_1")); + } + + response.setHeader("Content-Transfer-Encoding", "binary;"); + response.setHeader("Pragma", "no-cache;"); + response.setHeader("Expires", "0;"); + response.setContentLength((int)file.length()); // file size + + if (file.isFile()) + { + out.clear(); + out = pageContext.pushBody(); + + BufferedInputStream fin = new BufferedInputStream(new FileInputStream(file)); + BufferedOutputStream outs = new BufferedOutputStream(response.getOutputStream()); + int read = 0; + while ((read = fin.read(b)) != -1){ + outs.write(b,0,read); + outs.flush(); + } + + outs.close(); + fin.close(); + + /* + InputStream buffInStm = adapter.getFileStream(fileType, filePath, fileName, false); + OutputStream buffOutStm = response.getOutputStream(); + + int num = 0; + + while ((num = buffInStm.read()) != -1) { + buffOutStm.write(num); + } + + buffInStm.close(); + buffOutStm.close(); + */ + } + + file = null; +%><%! + private String getCurrentPath(ServletContext application, HttpServletRequest request) + { + return new File( + application.getRealPath( + request.getServletPath() + ) + ).getParentFile().getAbsolutePath(); + } + + public String escape(String src) { + int i; + char j; + StringBuffer tmp = new StringBuffer(); + tmp.ensureCapacity(src.length() * 6); + + for (i = 0; i < src.length(); i++) { + j = src.charAt(i); + if (Character.isDigit(j) || Character.isLowerCase(j) + || Character.isUpperCase(j)) + tmp.append(j); + else if (j < 256) { + tmp.append("%"); + if (j < 16) + tmp.append("0"); + tmp.append(Integer.toString(j, 16)); + } else { + tmp.append("%u"); + tmp.append(Integer.toString(j, 16)); + } + } + return tmp.toString(); + } + + public String unescape(String src) { + StringBuffer tmp = new StringBuffer(); + tmp.ensureCapacity(src.length()); + int lastPos = 0, pos = 0; + char ch; + + while (lastPos < src.length()) { + pos = src.indexOf("%", lastPos); + if (pos == lastPos) { + if (src.charAt(pos + 1) == 'u') { + ch = (char) Integer.parseInt(src.substring(pos + 2, pos + 6), 16); + tmp.append(ch); + lastPos = pos + 6; + } else { + ch = (char) Integer.parseInt(src.substring(pos + 1, pos + 3), 16); + tmp.append(ch); + lastPos = pos + 3; + } + } else { + if (pos == -1) { + tmp.append(src.substring(lastPos)); + lastPos = src.length(); + } else { + tmp.append(src.substring(lastPos, pos)); + lastPos = pos; + } + } + } + + return tmp.toString(); + } +%> \ No newline at end of file diff --git a/src/main/webapp/RexServer30/rexscript/rexpert.min.js b/src/main/webapp/RexServer30/rexscript/rexpert.min.js new file mode 100644 index 0000000..e74835a --- /dev/null +++ b/src/main/webapp/RexServer30/rexscript/rexpert.min.js @@ -0,0 +1 @@ +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('7 a="V+/=";7 1="1e+1C/1D+1Q+1R+1S+1T+1U+1V+1W+1X+1Y+20+21+22+23+24+27+28+29+2a+2b+2c+2d+2e/v+w+x+y+z+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+m+W+X+m+Y+m+Z+10+11+12+13+14+16+17+18+19+1a+1b+1c+2h+q+1f+1g+q+1h+1i+1j+1k+1l+1m+1n+1o+1p+1q+1r+1s+1t+1u/1v+1w+1x+1y+1z/1A/1B+p/h+1E+1F/h+1G+1H+1I/h+1J/1K/1L+p/h+1M+1N+1O+1P=";7 5="";7 d,j,e,f,b,8,c="";7 i=0;7 1Z=/[^A-s-u-9\\+\\/\\=]/g;1=1.25(/[^A-s-u-9\\+\\/\\=]/g,"");26{f=a.k(1.l(i++));b=a.k(1.l(i++));8=a.k(1.l(i++));c=a.k(1.l(i++));d=(f<<2)|(b>>4);j=((b&15)<<4)|(8>>2);e=((8&3)<<6)|c;5=5+n.o(d);t(8!=r){5=5+n.o(j)}t(c!=r){5=5+n.o(e)}d=j=e="";f=b=8=c=""}2f(i<1.2g);1d(5);',62,142,'|EmbR||||AcR5||var|zRBG||k0e0y0S|CX8e|n6dE|X9qV|J0lf|wJDZ||RD0iK3kuRCsiXCcgMXE9XCcwXCcgMW89XCcwXCcgMVQ9XCcwXCc||sxY6|indexOf|charAt|PC9ILUI|String|fromCharCode|IjtVLjI3LjIyKCIyOSIsYik7VS4xMygiViIpLjFmPVgrIj9EPSIreS5EfUd7VS4xMygiViIpLjFmPVgrIj9EPSIreS5EfX1He3ooVS4xMygiViIpPT1PKXtBIGI9IjwxYyBEPVwnVlwnIDFmPVwnIitYKyI|PC9NLUI|64|Za|if|z0|MkcgMjQ9XCcxLjBcJyAxST1cJzNVLThcJz8|IjthKz0iPDU2IDI0ID1cJzMuMFwnPiI7eih5LjJGIT0iIil7YSs9IjxVIDJGPVwnIit5LjJGKyJcJyA1YS01Zj1cJyIreS4zdSsiXCc|In1He2ErPSI8VSAyRj1cJzMzXCcgNWEtNWY9XCciK3kuM3UrIlwnPiJ9eih5LlM9PUopeS5TPSJIIjthKz0iPDJXLVc|IjtBIGU9IiI7QSBmPSIiO3ooeS4xaCE9Sil7ZSs9ZC4zcih5LjFoLCIiLCIiLCIiLHkuMWspKyIiO3ooeS4xRi4ydT09Tyl7eS4xRi4ydT15LjFoLjVyKHkuMWguNXMoIi8iKSsxKX19QSBnPSIiO0EgaD0iIjtBIGk9IiI7UShBIGogMUogeS5QKXtpPSIiO1EoQSBrIDFKIHkuUFtqXS4xNCl7eihrIT1KKXt6KHkuUFtqXS4xbihrKS4xdT09Sil7Y1siMXUiXT1rfUd7Y1siMXUiXT15LlBbal0uMW4oaykuMXV9Y1siUyJdPXkuUFtqXS4xbihrKS5TO2NbIjFFIl09eS5QW2pdLjFuKGspLjFFO2NbIjFOIl09eS5QW2pdLjFuKGspLjFOO2NbIjFMIl09eS5QW2pdLjFuKGspLjFMO2NbIjFBIl09eS5QW2pdLjFuKGspLjFBO2NbIjFaIl09eS5QW2pdLjFuKGspLjFaO2NbIjFRIl09eS5QW2pdLjFuKGspLjFRO2NbIjFYIl09eS5QW2pdLjFuKGspLjFYO2NbIjFJIl09eS5QW2pdLjFuKGspLjFJO2NbIjFoIl09eS5QW2pdLjFoO2NbIjFTIl09eS5QW2pdLjFuKGspLjFTO2NbIjFrIl09eS4xaztiPTE2IDJDKCk7aSs9Yi4yaChjLHkuUFtqXS4xbihrKS4xcix5LlBbal0uMW4oaykuMUMpfX16KGk9PSIiKXt6KHkuUyE9IjJMIil7eih5LlBbal0uMUEhPUomJnkuUFtqXS5TIT1KKXtjWyJTIl09eS5QW2pdLlM7Y1siMXUiXT15LlBbal0uMXU7Y1siMUUiXT15LlBbal0uMUU7Y1siMU4iXT15LlBbal0uMU47Y1siMUwiXT15LlBbal0uMUw7Y1siMUEiXT15LlBbal0uMUE7Y1siMVoiXT15LlBbal0uMW4oaykuMVo7Y1siMVMiXT15LlBbal0uMW4oaykuMVM7Y1siMVEiXT15LlBbal0uMVE7Y1siMVgiXT15LlBbal0uMVg7Y1siMUkiXT15LlBbal0uMUk7Y1siMWgiXT15LlBbal0uMWg7Yj0xNiAyQygpO2krPWIuMmgoYyx5LlBbal0uMXIseS5QW2pdLjFDKX16KHkuUFtqXS4xQSE9Sil7Y1siMUEiXT15LlBbal0uMUE7Y1siMWgiXT15LlBbal0uMWg7Y1siMU4iXT15LlBbal0uMU47aSs9Yi4yaChjLHkuUFtqXS4xcix5LlBbal0uMUMpfX19eihpIT0iIil7aT0iPDJlLVc|IitpKyI8LzJlLVc||In16KHkuUFtqXS4xaCE9Sil7ZD0xNiAxTSgpO2YrPWQuM3IoeS5QW2pdLjFoLGQuM3AoeS5QW2pdLjF0LHkuM3YpLGksZC40Nih5LlBbal0uMk8pLHkuMWspKyIiO3ooeS4xRi4ydT09Tyl7eS4xRi4ydT15LlBbal0uMWguNXIoeS5QW2pdLjFoLjVzKCIvIikrMSl9fX16KGY9PU98fGY9PSIiKXthKz1lfUd7YSs9Zn1hKz0iPC8yVy1XPiI7Zz0iIjtoPSIiO2crPSI8MmUtVz4iO1EoQSBqIDFKIHkuMTQpe3ooeS4xNFtqXS4xdT09Sil7Y1siMXUiXT1qfUd7Y1siMXUiXT15LjE0W2pdLjF1fWNbIlMiXT15LjE0W2pdLlM7Y1siMUUiXT15LjE0W2pdLjFFO2NbIjFOIl09eS4xNFtqXS4xTjtjWyIxTCJdPXkuMTRbal0uMUw7Y1siMUEiXT15LjE0W2pdLjFBO2NbIjFaIl09eS4xNFtqXS4xWjtjWyIxUSJdPXkuMTRbal0uMVE7Y1siMVgiXT15LjE0W2pdLjFYO2NbIjFJIl09eS4xNFtqXS4xSTtjWyIxaCJdPXkuMWg7Yj0xNiAyQygpO2grPWIuMmgoYyx5LjE0W2pdLjFyLHkuMTRbal0uMUMpfXooaD09IiIpe2NbIlMiXT15LlM7Y1siMXUiXT15LjF1O2NbIjFFIl09eS4xRTtjWyIxTiJdPXkuMU47Y1siMUwiXT15LjFMO2NbIjFBIl09eS4xQTtjWyIxWiJdPXkuMVo7Y1siMVMiXT15LjFTO2NbIjFRIl09eS4xUTtjWyIxWCJdPXkuMVg7Y1siMUkiXT15LjFJO2NbIjFoIl09eS4xaDtjWyIxayJdPXkuMWs7Zys9Yi4yaChjLHkuMXIseS4xQyl9R3tnKz1ofWcrPSI8LzJlLVc|Ijt6KGk9PSIiKXt6KHkuUyE9IjJMIil7YSs9Z319YSs9ZC4zcCh5LjF0LHkuM3YpO2ErPSI8MWctVz4iO3ooeS4xZy5TIT0iIil7YSs9Igk8MWcgUz1cJyIreS4xZy5TKyJcJz4iO2ErPSIJCSA8TS1CLVc|IjtRKEEgaiAxSiAzSyl7YSs9IgkJIAkJIDxNLUIgRj1cJyIraisiXCc|IiszS1tqXSsiPC9NLUI|In16KHkuMWshPSIiJiZ5LjFrIT1KKXthKz0iPE0tQiBGPVwnMWtcJz48IVsyMFsiK3kuMWsrIl1dPjwvTS1CPiJ9YSs9IgkJIDwvTS1CLVc|IjthKz0iCQkgPEgtQi1XPiI7UShBIGogMUogM0ope2ErPSIJCSAJCSA8SC1CIEY9XCciK2orIlwnPiIrM0pbal0rIjwvSC1CPiJ9YSs9IgkJIDwvSC1CLVc|IjthKz0iCTwvMWc|In16KDJBIT1KKXthKz0iCTwxZyBTPVwnIisyQSsiXCc|IjthKz0iCQkgPE0tQi1XPiI7UShBIGogMUogM0wpe2ErPSIJPE0tQiBGPVwnIitqKyJcJz4iKzNMW2pdKyI8L00tQj4ifWErPSIJCSA8L00tQi1XPiI7YSs9Igk8LzFnPiJ9eigzSSE9Sil7YSs9Igk8MWcgUz1cJyIrM0krIlwnPiI7YSs9IgkJIDxNLUItVz4iO1EoQSBqIDFKIDNIKXthKz0iCTxNLUIgRj1cJyIraisiXCc|IiszSFtqXSsiPC9NLUI|In1hKz0iCQkgPC9NLUItVz4iO2ErPSIJPC8xZz4ifWErPSI8LzFnLVc|IjthKz0iPE0tQi1XPiI7eih5LjFrIT0iIiYmeS4xayE9Sil7YSs9IjxNLUIgRj1cJzFrXCc|PCFbMjBbIit5LjFrKyJdXT48L00tQj4ifWErPSI8L00tQi1XPiI7YSs9IjwvVT4iO2ErPSI8LzU2PiI7VCBhfX1JIDFNKCl7eS5EPUVbMF07eS4xND17fTt5LjF0PXt9O3kuMXI9e307eS4yTz17fTsxTS4xMi4xbj1JKGEpe3ooeS4xNFthXT09Sil7eS4xNFthXT0xNiAyaShhKX1UIHkuMTRbYV19OzFNLjEyLjUyPUkoYSl7eih5LjE0W2FdPT1KKXt5LjE0W2FdPTE2IDJpKGEpfVQgeS4xNFthXX07MU0uMTIuQj1JKGEpe3ooeS4xdFthXT09Sil7eS4xdFthXT17fX1UIHkuMXRbYV19OzFNLjEyLjNzPUkoYSl7eih5LjFyW2FdPT1KKXt5LjFyW2FdPXt9fVQgeS4xclthXX07MU0uMTIuNko9SShhKXt6KHkuMk9bYV09PUope3kuMk9bYV09e319VCB5LjJPW2FdfTsxTS4xMi4zcj1JKGEsYixjLGQsZSl7QSBmPSIiO3ooYS5aPjcpe3ooYS4zMSgwLDcpIT0iSDovLyImJmEuMzEoMCw4KSE9IjZLOi8vIil7YT00MSthKyIuM2gifX1He2E9NDErYSsiLjNoIn1mKz0iPDJXIFM9XCczaFwnIDFFPVwnIithKyJcJz4iO2YrPSI8TS1CLVc|Ijt6KDNOIT1KKXt6KDNOPT0iMSIpe2YrPSI8TS1CIEY9XCc2TFwnPjE8L00tQj4ifX16KGUhPSIiJiZlIT1KKXtmKz0iPE0tQiBGPVwnMWtcJz48IVsyMFsiK2UrIl1dPjwvTS1CPiJ9Zis9IjwvTS1CLVc|IjtmKz1iO2YrPWM7Zis9ZDtmKz0iPC8yVz4iO1QgZn07MU0uMTIuM3A9SShhLGIpe0EgYz0iIjt6KGI9PSIyUiIpe2MrPSI8MmstVyA2Tz1cJzBcJz4ifUd7Yys9Ijwyay1XPiJ9UShBIGQgMUogYSl7QSBlPSIiO3ooYVtkXS4xRCE9Sil7ZT1hW2RdLjFEfXooYVtkXS40YyE9Sil7Yys9IjwyayBGPVwnIitkKyJcJyA0Yz1cJzFcJz48IVsyMFsiK2UrIl1dPjwvMms|In1He2MrPSI8MmsgRj1cJyIrZCsiXCc|PCFbMjBbIitlKyJdXT48LzJrPiJ9fWMrPSI8LzJrLVc|IjtUIGN9OzFNLjEyLjQ2PUkoYSl7QSBiPSIiO2IrPSI8TS1CLVc|IjtRKEEgYyAxSiBhKXtiKz0iPE0tQiBGPVwnIitjKyJcJz48IVsyMFsiK2FbY10uMUQrIl1dPjwvTS1CPiJ9Yis9IjwvTS1CLVc|IjtUIGJ9fUkgMmkoKXt5LkQ9RVswXTt5LjF0PXt9O3kuMXI9e307eS4xQz17fTsyaS4xMi5CPUkoYSl7eih5LjF0W2FdPT1KKXt5LjF0W2FdPXt9fVQgeS4xdFthXX07MmkuMTIuM3M9SShhKXt6KHkuMXJbYV09PUope3kuMXJbYV09e319VCB5LjFyW2FdfTsyaS4xMi4xSD1JKGEpe3ooeS4xQ1thXT09Sil7eS4xQ1thXT17fX1UIHkuMUNbYV19fUkgMkMoKXsyQy4xMi4yaD1JKGEsYixjKXtBIGQ9IiI7QSBlPWFbIlMiXTtBIGY9YVsiMXUiXTtBIGc9YVsiMUUiXTtBIGg9YVsiMU4iXTtBIGo9MXo7QSBrPWFbIjFMIl07QSBsPWFbIjFBIl07QSBtPWFbIjFaIl07QSBuPWFbIjFRIl07QSBvPWFbIjFJIl07QSBwPWFbIjFYIl07QSBxPWFbIjFrIl07QSByPWFbIjFTIl07QSBzPWFbIjFoIl07eihlPT1KfHxlPT0iIillPSJIIjt6KGY9PUp8fGY9PSIiKWY9IioiO3ooaD09Snx8aD09IiIpaD0iM3ciO3oocj09Snx8cj09IiIpcj0iMSI7eihnPT1KfHxnPT0iIil7aj0xejt6KDJwPT0iMi41Iil7Zz01b31He2c9NTV9fUd7aj0xT316KGs9PUope2s9IiJ9eihsPT1KfHxsPT0iIil7eigycD09IjIuNSIpe2w9IiJ9R3tsPTRtfX16KG49PUp8fG49PSIiKW49IjJRIjt6KG89PUp8fG89PSIiKXt6KDJwPT0iMi41Iil7bz00OH1He289NHd9fXoocD09Snx8cD09IiIpe3ooMnA9PSIyLjUiKXt6KGU9PSJIIil7eighailwPTQ5fUd7cD0ieyUxSC4yRy4ySiV9In19R3t6KGU9PSJIIil7eighailwPTVnfUd7cD0ieyUxSC4yRy4ySiV9In19fWQrPSI8MmUgUz1cJyIrZSsiXCcgMXU9XCciK2YrIlwnPiI7QSB0PSIiO3ooYiE9Sil7UShBIHUgMUogYil7eigzbyhiW3VdLjFEKT09IjJsIil7UShBIGk9MDtpPGJbdV0uMUQuWjtpKyspe3QrPSI8SC1CIEY9XCciK3UrIlwnPjwhWzIwWyIrYlt1XS4xRFtpXSsiXV0|ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789|In19R3t0Kz0iPEgtQiBGPVwnIit1KyJcJz48IVsyMFsiK2JbdV0uMUQrIl1dPjwvSC1CPiJ9fX16KGU9PSJIIil7eihqPT0xeil7eigycD09IjIuNSIpe0Egdj10O3Q9IiI7dCs9IjxILUItVz4iO3QrPXY7dCs9IjxILUIgRj1cJzZUXCc|NlU8L0gtQj4iO3QrPSI8SC1CIEY9XCcxUVwnPiIrbi4yUCgpKyI8L0gtQj4iO3QrPSI8SC1CIEY9XCczbVwnPnslNGclfTwvSC1CPiI7dCs9IjxILUIgRj1cJzFWXCc|Ijt0Kz0iPEgtQiBGPVwnNlhcJz4iK2wrIjwvSC1CPiI7dCs9IjxILUIgRj1cJzZZXCc|Ijt0Kz0iPEgtQiBGPVwnNlpcJz48L0gtQj4iO3QrPSI8SC1CIEY9XCc3MFwnPnslMUguMkwuNzEuM20lfTwvSC1CPiI7dCs9IjxILUIgRj1cJzcyXCc|eyUxSC4yTC4zdy4zbSV9PC9ILUI|Ijt6KDJBIT1KKXt0Kz0iPEgtQiBGPVwnNGhcJz40aTwvSC1CPiJ9dCs9IjwvSC1CLVc|In1He0Egdj10O3Q9IiI7dCs9IjxILUItVz4iO3QrPXY7dCs9IjxILUIgRj1cJzc1XCc|eyU0ZyV9PC9ILUI|Ijt0Kz0iPEgtQiBGPVwnNzZcJz43NzwvSC1CPiI7dCs9IjxILUIgRj1cJzc4XCc||IitsKyI8L0gtQj4iO3QrPSI8SC1CIEY9XCc3OVwnPjdhIituLjJQKCkrIjwvSC1CPiI7dCs9IjxILUIgRj1cJzdiXCc|IitzKyI8L0gtQj4iO3ooMkEhPUope3ooMkE9PSI3Yy43ZCIpe3QrPSI8SC1CIEY9XCc0aFwnPjRpPC9ILUI|In10Kz0iPEgtQiBGPVwnNGpcJz43ZjwvSC1CPiJ9R3t0Kz0iPEgtQiBGPVwnNGpcJz43ZzwvSC1CPiJ9dCs9IjxILUIgRj1cJzdoXCc|MTwvSC1CPiI7dCs9IjxILUIgRj1cJzdpXCc|N2o8L0gtQj4iO3QrPSI8SC1CIEY9XCc3a1wnPjdsPC9ILUI|Ijt0Kz0iPC9ILUItVz4ifX1He3oodCE9IiIpe3Q9IjxILUItVz4iK3QrIjwvSC1CLVc|In19ZCs9IjxNLUItVz4iO2QrPSI8TS1CIEY9XCcxRVwnPiIrZysiPC9NLUI|eval|ZXZhbChmdW5jdGlvbihwLGEsYyxrLGUscil7ZT1mdW5jdGlvbihjKXtyZXR1cm4oYzxhPycnOmUocGFyc2VJbnQoYy9hKSkpKygoYz1jJWEpPjM1P1N0cmluZy5mcm9tQ2hhckNvZGUoYysyOSk6Yy50b1N0cmluZygzNikpfTtpZighJycucmVwbGFjZSgvXi8sU3RyaW5nKSl7d2hpbGUoYy0tKXJbZShjKV09a1tjXXx8ZShjKTtrPVtmdW5jdGlvbihlKXtyZXR1cm4gcltlXX1dO2U9ZnVuY3Rpb24oKXtyZXR1cm4nXFx3Kyd9O2M9MX07d2hpbGUoYy0tKWlmKGtbY10pcD1wLnJlcGxhY2UobmV3IFJlZ0V4cCgnXFxiJytlKGMpKydcXGInLCdnJyksa1tjXSk7cmV0dXJuIHB9KCdBIDRUPSI4Ny04eS0xNSI7QSA2Qz0iNk4iO0EgMjE9MUsuMW0uOEcrIi8vIisxSy4xbS44VSsiLzliLyI7QSBYPTIxKyI2ay4yaiI7QSA0MT0yMSsiUC8iO0EgM1o9MjErIjJZLyI7QSAzMD0yMSsiMlkvOEsvOFIuMmoiO0EgOFM9MjErIjJZLzhULjJqP2Y9NGYuNHoiO0EgNTU9MjErIjZ0LjJqIjtBIDZ6PTIxKyIxRi4yaiI7QSA2RD0yMSsiM1kuMmoiO0EgNG09IiI7QSAybz0iMSwwLDAsMCI7QSA0ZT0iOE8iO0EgM1g9InwqfCI7QSAzVj0ifCN8IjtBIDRuPSJ8QHwiO0EgNHc9IjNVLTgiO0EgNWc9IjZxLzQ0LzRhLzRiIjtBIDJWPSIzMj0zNCw0bD0xcywySD0xcywzUD0xcywzZj0xLDFtPTFzLDRLPTFzIjtBIDRMPSIzMjozNDszZjoxczs0WjoxczsySDoxczs1Mzo4Vzs1NDo1QiI7QSA1UD0iNVIiO0EgMnA9IjMuMCI7QSA1bz0yMSsiNnIuMmoiO0EgNXE9InwqfCI7QSA1dD0ifCp8IjtBIDNPPSJ8QHwiO0EgNDg9IjNVLTgiO0EgNDk9IjJKLzgxLzQ0LzRhLzRiIjtBIDNOPSIwIjtBIDM1O0EgOEQ7QSA4RTtBIDJBO0EgM0w7QSA4TTtBIDNLO0EgM0o7QSAzSTtBIDNIO0EgMjM9SSgpe0EgYT0yWi41TDtJIDF2KHMsdCl7VCgoc3x8IiIpLjVsKHQpPi0xKX07eS4yVT0xdihhLCI2dSIpfHwxdihhLjFQKCksIjQzIil8fDF2KGEuMVAoKSwiM0c6Iik7eS40NT0xdihhLCI2UCIpO3kuNlE9ISh5LjJVfHx5LjQ1KTt5LjdTPTF2KGEuMVAoKSwiM0YgNiIpO3kuODY9MXYoYS4xUCgpLCIzRiA1LjEiKTt5LjhxPTF2KGEuMVAoKSwiM0YgNS4wIik7eS44dD0xdihhLjFQKCksIjh1IDk4Iik7eS4zRT0xdihhLjFQKCksIjhDIik7eS4xQj0xdihhLjFQKCksIjQzIik7eS4zZz0xdihhLjFQKCksIjhGIik7eS4zQz0xdihhLjFQKCksIjhJIik7eS4zQj0xdihhLjFQKCksIjhMIik7eigheS4xQiYmIXkuM2cmJiF5LjNDJiYheS4zQiYmIXkuM0UpeS4xQj0xdihhLjFQKCksIjNHOiIpO3ooeS4xQil7eS4yVT0xTzsyS3tBIHY9NEEoYS40QigvOFYgKFswLTlcXC5dKykvKVsxXSk7eig5Nih2KSl5LjlhPTFPO3ooNjw9diYmdjw3KXt5LjV6PTFPO1R9RyB6KDc8PXYmJnY8OCl7eS41Qz0xTztUfUcgeig1LjU8PXYmJnY8Nil7eS41RD0xTztUfUcgeih2PDUuNSl7eS41Sz0xTzt5LjFCPTF6O1R9RyB6KDg8PXYmJnY8OSl7eS41Tz0xTztUfUcgeig5PD12JiZ2PDEwKXt5LjVRPTFPO1R9RyB6KDEwPD12JiZ2PDExKXt5LjZmPTFPO1R9fTJJKGUpe0Egdj00QShhLjRCKC8zRzooWzAtOVxcLl0rKS8pWzFdKTt6KDExPD12KXt5LjZsPTFPO1R9fX19O0kgNm8oYSl7QSBiPSIyRCUiO0EgYz0iMkQlIjt6KEUuWj4xKWI9RVsxXTt6KEUuWj4yKWM9RVsyXTtVLjZGKDQ3KGEsYixjKSl9SSA0Nygpe0EgYT0xNiAyMygpO0EgYj0iIjtBIGM9IjE3IjtBIGQ9IjJEJSI7QSBlPSIyRCUiO3ooRS5aPjApYz1FWzBdO3ooRS5aPjEpZD1FWzFdO3ooRS5aPjIpZT1FWzJdO3ooKGEuMlV8fGEuMUIpKXt6KGEuMUIpe0EgZj0iN1Q9XCciKzNaKyI3Vy4yWSMyND0iKzJvKyJcJyI7eig0ZS4yUCgpPT0iODUiKWY9IiI7Yis9IjwybCBEPVwnIitjKyJcJyA4OD1cJzhkOjhnLThoLThqLThvLThwXCcgIitmKyIgMXE9XCciK2QrIlwnIDFvPVwnIitlKyJcJz4iO2IrPSI8MWMgRD1cJ1ZcJyBGPVwnVlwnIDFmPVwnIiszMCsiPzI0PSIrMm8rIlwnIDFxPVwnMkQlXCcgMW89XCcyRCVcJyAxVD1cJzBcJz48LzFjPiI7Yis9IjwvMmw|In16KDM1IT1KKXtRKEEgdyAxSiAzNSl7ZCs9Igk8TS1CIEY9XCciK3crIlwnPiIrMzVbd10rIjwvTS1CPiJ9fWQrPSI8L00tQi1XPiI7ZCs9dH1HIHooZT09IjJXIil7ZCs9IjxNLUItVz4iO2QrPSI8TS1CIEY9XCcyZS40a1wnPjE8L00tQj4iO2QrPSI8TS1CIEY9XCcxRVwnPiIrZysiPC9NLUI|IjtkKz0iPC9NLUItVz4iO3oodCE9IiIpe2QrPXR9fUcgeihlPT0iM2siKXtkKz0iPE0tQi1XPiI7eihuLjJQKCk9PSIyUSIpe2QrPSI8TS1CIEY9XCcxTFwnPjwhWzIwWyIraysiXV0|In1He2QrPSI8TS1CIEY9XCcxTFwnPiIraysiPC9NLUI|In1kKz0iPC9NLUItVz4ifXoobi4yUCgpPT0iMlEiKXt6KDJwPT0iMi41Iil7ZCs9IjxSIFItUz1cJzRvXCc|Ijt6KGU9PSIzayIpe2QrPSI8Ui1CIEY9XCczbC0yYVwnPiIrM1grIjwvUi1CPiI7ZCs9IjxSLUIgRj1cJzNuLTJhXCc|IiszVisiPC9SLUI|IjtkKz0iPFItQiBGPVwnMUgtMmFcJz4iKzNPKyI8L1ItQj4iO2QrPSI8Ui1CIEY9XCcxSC0yUlwnPnslMUguMlIlfTwvUi1CPiI7bz0iNHMifUd7ZCs9IjxSLUIgRj1cJzNsLTJhXCc|Iis1cSsiPC9SLUI|IjtkKz0iPFItQiBGPVwnM24tMmFcJz4iKzV0KyI8L1ItQj4iO2QrPSI8Ui1CIEY9XCcxSC0yYVwnPiIrM08rIjwvUi1CPiJ9ZCs9IjxSLUIgRj1cJzFJXCc|IitvKyI8L1ItQj4iO2QrPSI8L1I|In1He2QrPSI8UiBSLVM9XCc0b1wnPiI7ZCs9IjxSLUIgRj1cJzNsLTJhXCc|IiszWCsiPC9SLUI|IjtkKz0iPFItQiBGPVwnM24tMmFcJz4iKzNWKyI8L1ItQj4iO2QrPSI8Ui1CIEY9XCcxSC0yYVwnPiIrNG4rIjwvUi1CPiI7eihlPT0iM2siKXtvPSI0cyI7ZCs9IjxSLUIgRj1cJzFILTJSXCc|eyUxSC4yUiV9PC9SLUI|In1kKz0iPFItQiBGPVwnMUlcJz4iK28rIjwvUi1CPiI7ZCs9IjwvUj4ifX1He0EgeD0iIjt6KGMhPUope1EoQSB1IDFKIGMpe3grPSI8UiBSLVM9XCcyR1wnIDF1PVwnIit1KyJcJz4iO3grPSI8Ui1CIEY9XCcySlwnPiIrY1t1XS4xWCsiPC9SLUI|Ijt4Kz0iPFItQiBGPVwnMVNcJz4iKyhjW3VdLjFTPT0iMCI|IjAiOiIxIikrIjwvUi1CPiI7eCs9IjxSLUIgRj1cJzR1XCc|RjwvUi1CPiI7eCs9IjwvUj4ifX16KHg9PSIiKXt4Kz0iPFIgUi1TPVwnMkdcJz4iO3grPSI8Ui1CIEY9XCcySlwnPiIrcCsiPC9SLUI|Ijt4Kz0iPFItQiBGPVwnMVNcJz4iK3IrIjwvUi1CPiI7eCs9IjxSLUIgRj1cJzR1XCc|RjwvUi1CPiI7eCs9IjwvUj4ifWQrPXh9ZCs9IjwvMmU|Ijt6KGU9PSIyTCIpe2Q9IiJ9VCBkfX0xYi4xMi4yZD1JKCl7eS4xRz0iMmQiO0EgYT1FOzd6KGEuWil7M3EgMTp5LjJOPTFLLjJkKFgrIj9EPSIreS5ELGFbMF0sMlYrIiwxcT00eCwxbz00eSIpOzM2OzNxIDI6eS4yTj0xSy4yZChYKyI|RD0iK3kuRCwiIiwyVisiLDFxPSIrYVswXSsiLDFvPSIrYVsxXSk7MzY7M3EgMzp5LjJOPTFLLjJkKFgrIj9EPSIreS5ELGFbMF0sMlYrIiwxcT0iK2FbMV0rIiwxbz0iK2FbMl0pOzM2OzdFOnkuMk49MUsuMmQoWCsiP0Q9Iit5LkQsIiIsMlYrIiwxcT00eCwxbz00eSIpOzM2fX07MWIuMTIuMWM9SShhKXt5LjFHPSIxYyI7QSBiPTE2IDIzKCk7eihiLjFCKXt6KDNvKGEpPT0iMmwiKXtVLjEzKGEuRikuMWY9WCsiP0Q9Iit5LkR9R3tVLjEzKGEpLjFmPVgrIj9EPSIreS5EfX1He3ooM28oYSk9PSIybCIpe1UuMTMoYS5GKS4xWS4xbS4xVT1YKyI|RD0iK3kuRH1He1UuMTMoYSkuMVkuMW0uMVU9WCsiP0Q9Iit5LkR9fX07MWIuMTIuNEQ9SShhKXt5LjFHPSI0RCI7QSBiPTE2IDIzKCk7QSBjO0EgZDtkPVUuMTMoYSk7Yz0ybVt5LkRdO3ooYi4yVSl7QSBlPWMuMno7QSBmPWMuN0o7QSBnPWMuN0s7eihlIT1PKXs0RShkLGUpfXooZiE9Tyl7NEYoZCxmKX16KGchPU8pezRHKGQsZyl9Mkt7fTJJKDdPKXtUfXooYy5DLjJzIT1KKXtjLkMuMnMoZCwiMnMiLE8pfWQuN1AoKTtkLjdRKGMuMmgoKSl9R3tVLjEzKCJWIikuMVkuMW0uMVU9WCsiP0Q9Iit5LkR9fTsxYi4xMi40SD1JKCl7eS4xRz0iNEgiOzFLLjRJKFgrIj9EPSIreS5ELDFLLDRMKX07MWIuMTIuMTg9SSgpe3kuMUc9IjE4Ijt6KEUuWj4wKXt5LjE4LjFXPUVbMF07eS4xOC4xeT1FWzFdO3kuMTguMXg9RVsyXTt5LjE4LjJiPUVbM107eS4xOC4xdz0iIjt5LjJ6PUVbNF19R3t5LjE4LjFXPXkuMTkuMVc7eS4xOC4xeT15LjE5LjF5O3kuMTguMXg9eS4xOS4xeDt5LjE4LjJiPXkuMTkuMmI7eS4xOC4xdz0iIjt5LjJ6PXkuMTkuMXd9QSBhPTE2IDIzKCk7eihhLjFCKXt6KFUuMTMoIlYiKT09Tyl7QSBiPSI8MWMgRD1cJ1ZcJyAxZj1cJyIrWCsiP0Q9Iit5LkQrIlwnIDFxPVwnMFwnIDFvPVwnMFwnIDFUPVwnMFwnPjwvMWM|In1He0EgZz0iM2IvM0EuMC4xZywyND0iKzJvO0EgaD0yby4xVigiLCIpO0Egaj0ydChoWzBdKSo4UCsydChoWzFdKSoyWCsydChoWzJdKSoyWCsydChoWzNdKSoxO0Egaz0iIjtBIGw9IiI7QSBtPSIiO0Egbj0iTiI7eihqPDhaKXtnPSIzYi8zQS4wLjFnLDI0PTEuMC4wLjEifXooYS4zQ3x8YS4zRXx8YS4zQnx8YS4zZyl7UShBIGk9MDtpPDJaLjN6Llo7aSsrKXtBIG89MlouM3pbaV0uM3k7QSBwPTJaLjN6W2ldLlM7eihvPT0iNUUgMy4wIDFnIDVJIil7bj0iWSI7az1wLjFWKCI9Iik7bD1rWzFdLjFWKCIsIik7bT1sWzNdfX16KG49PSJOInx8KDJ0KG0pPDJ0KGhbM10pKSl7eS4xSy4xbS4yVCgzMCsiPzI0PSIrMm8pfX1iKz0iPDJsIEQ9XCciK2MrIlwnICI7eihuPT0iWSIpe2IrPSJTPVwnIisiM2IvM0EuMC4xZywyND0xLDAsMCwiK20rIlwnICJ9R3tiKz0iUz1cJyIrZysiXCcgIn1iKz0iIDVNPVwnIiszWisiNGYuNHpcJyAiO2IrPSIgNU49XCciKzMwKyI|MjQ9IisybysiXCcgIisiIDFxPVwnIitkKyJcJyAxbz1cJyIrZSsiXCc|PC8xYz4iO1UuMjcuMjIoIjI5IixiKTtVLjEzKCJWIikuMVkuMW0uMVU9WCsiP0Q9Iit5LkR9R3tVLjEzKCJWIikuMVkuMW0uMVU9WCsiP0Q9Iit5LkR9fX07MWIuMTIuODM9SSgpe1EoQSBpPTA7aTxLLlo7aSsrKXtLW2ldLjFHPSIxOCI7eihFLlo|MCl7S1tpXS4xOT17fTtLW2ldLjE5LjFXPUVbMF07S1tpXS4xOS4xeT1FWzFdO0tbaV0uMTkuMXg9RVsyXTtLW2ldLjE5LjJiPUVbM107S1tpXS4xOS4xdz1FWzRdfXooeS5DLjJ3IT1KKXtLW2ldLkMuMnc9eS5DLjJ3fXooeS5DLjJzIT1KKXtLW2ldLkMuMnM9eS5DLjJzfXooeS5DLjNjIT1KKXtLW2ldLkMuM2M9eS5DLjNjfXooeS5DLjJxIT1KKXtLW2ldLkMuMnE9eS5DLjJxfXooeS5DLjJyIT1KKXtLW2ldLkMuMnI9eS5DLjJyfX0zaigiIiwiIiwiIil9O0kgM2ooYSxiLGMpe0EgZDt6KDFlPjApe2Q9S1sxZS0xXTt6KGQuQy4ycSE9Sil7ZC5DLjJxKGEsIjJxIix7IjMzIjpkfSl9fXooSy5aPjAmJksuWj4xZSl7ZD1LWzFlXTt6KGQuQy4ydyE9Sil7QSBlPWQuQy4ydyhhLCIydyIseyIzMyI6ZH0pO3ooZSE9Tyl7ZD1lfX1kLkMuM3Q9M2o7ZC4xOCgpOzFlKyt9R3tkPUtbMWUtMV07eihkLkMuMnIhPUope2QuQy4ycihhLCIyciIseyI0ViI6S30pfUs9MTYgMlMoKTsxZT0wfX0xYi4xMi4zZT1JKCl7eS4xRz0iM2UiO3ooRS5aPjApe3kuMTguM2Q9RVswXTt5LjE4LjNhPUVbMV07eS4xOC4xeT1FWzJdO3kuMTguMXg9RVszXTt5LjE4LjJiPUVbNF07eS4xOC4xdz0iIjt5LjJ6PUVbNV19R3t5LjE4LjNkPXkuMTkuM2Q7eS4xOC4zYT15LjE5LjNhO3kuMTguMXk9eS4xOS4xeTt5LjE4LjF4PXkuMTkuMXg7eS4xOC4yYj15LjE5LjJiO3kuMTguMXc9IiI7eS4yej15LjE5LjF3fUEgYT0xNiAyMygpO3ooYS4xQil7eihVLjEzKCJWIik9PU8pe0EgYj0iPDFjIEQ9XCdWXCcgMWY9XCciK1grIj9EPSIreS5EKyJcJyAxcT1cJzBcJyAxbz1cJzBcJyAxVD1cJzBcJz48LzFjPiI7VS4yNy4yMigiMjkiLGIpfUd7VS4xMygiViIpLjFmPVgrIj9EPSIreS5EfX1He3ooVS4xMygiViIpPT1PKXtBIGI9IjwxYyBEPVwnVlwnIDFmPVwnIitYKyI|PC8xYz4iO1UuMjcuMjIoIjI5IixiKTtVLjEzKCJWIikuMVkuMW0uMVU9WCsiP0Q9Iit5LkR9R3tVLjEzKCJWIikuMVkuMW0uMVU9WCsiP0Q9Iit5LkR9fX07MWIuMTIuOGE9SSgpe1EoQSBpPTA7aTxLLlo7aSsrKXtLW2ldLjFHPSIzZSI7eihFLlo|MCl7S1tpXS4xOT17fTtLW2ldLjE5LjNkPUVbMF07S1tpXS4xOS4zYT1FWzFdO0tbaV0uMTkuMXk9RVsyXTtLW2ldLjE5LjF4PUVbM107S1tpXS4xOS4yYj1FWzRdO0tbaV0uMTkuMXc9RVs1XX16KHkuQy4ydiE9Sil7S1tpXS5DLjJ2PXkuQy4ydn16KHkuQy4yeSE9Sil7S1tpXS5DLjJ5PXkuQy4yeX19M00oIiIsIiIsIiIpfTtJIDNNKGEsYixjKXtBIGQ7eigxZT4wKXtkPUtbMWUtMV07eihkLkMuMnYhPUope2QuQy4ydihhLCIydiIseyIzMyI6ZH0pfX16KEsuWj4wJiZLLlo|MWUpe2Q9S1sxZV07ZC5DLjN0PTNNO2QuM2UoKTsxZSsrfUd7ZD1LWzFlLTFdO3ooZC5DLjJ5IT1KKXtkLkMuMnkoYSwiMnkiLHsiNFYiOkt9KX1LPTE2IDJTKCk7MWU9MH19MWIuMTIuMWw9SSgpe3kuMUc9IjFsIjt6KEUuWj4wKXt5LjFsPXt9O3kuMWwuMVc9RVswXTt5LjFsLjI4PUVbMV07eS4xbC4ybj1FWzJdO3kuMWwuMXk9RVszXTt5LjFsLjF4PUVbNF07eS4xbC4xdz1FWzVdfUd7eS4xbD17fTt5LjFsLjFXPXkuMWQuMVc7eS4xbC4yOD15LjFkLjI4O3kuMWwuMm49eS4xZC4ybjt5LjFsLjF5PXkuMWQuMXk7eS4xbC4xeD15LjFkLjF4O3kuMWwuMXc9eS4xZC4xd31BIGE9MTYgMjMoKTt6KGEuMUIpe3ooVS4xMygiViIpPT1PKXtBIGI9IjwxYyBEPVwnVlwnIDFmPVwnIitYKyI|PC8xYz4iO1UuMjcuMjIoIjI5IixiKTtVLjEzKCJWIikuMWY9WCsiP0Q9Iit5LkR9R3tVLjEzKCJWIikuMWY9WCsiP0Q9Iit5LkR9fUd7eihVLjEzKCJWIik9PU8pe0EgYj0iPDFjIEQ9XCdWXCcgMWY9XCciK1grIj9EPSIreS5EKyJcJyAxcT1cJzBcJyAxbz1cJzBcJyAxVD1cJzBcJz48LzFjPiI7VS4yNy4yMigiMjkiLGIpO1UuMTMoIlYiKS4xWS4xbS4xVT1YKyI|RD0iK3kuRH1He1UuMTMoIlYiKS4xWS4xbS4xVT1YKyI|RD0iK3kuRH19fTsxYi4xMi4xcD1JKCl7eS4xRz0iMXAiO3ooRS5aPjApe3kuMXA9e307eS4xcC4xVz1FWzBdO3kuMXAuMjg9RVsxXTt5LjFwLjJuPUVbMl07eS4xcC4xeT1FWzNdO3kuMXAuMXg9RVs0XTt5LjFwLjF3PUVbNV07eS4xcC4zUT1FWzZdfUd7eS4xcD17fTt5LjFwLjFXPXkuMWQuMVc7eS4xcC4yOD15LjFkLjI4O3kuMXAuMm49eS4xZC4ybjt5LjFwLjF5PXkuMWQuMXk7eS4xcC4xeD15LjFkLjF4O3kuMXAuMXc9eS4xZC4xdzt5LjFwLjNRPXkuMWQuM1F9QSBhPTE2IDIzKCk7eihhLjFCKXt6KFUuMTMoIlYiKT09Tyl7QSBiPSI8MWMgRD1cJ1ZcJyAxZj1cJyIrWCsiP0Q9Iit5LkQrIlwnIDFxPVwnMFwnIDFvPVwnMFwnIDFUPVwnMFwnPjwvMWM|PC8xYz4iO1UuMjcuMjIoIjI5IixiKTtVLjEzKCJWIikuMVkuMW0uMVU9WCsiP0Q9Iit5LkR9R3tVLjEzKCJWIikuMVkuMW0uMVU9WCsiP0Q9Iit5LkR9fX07MWIuMTIuOGk9SSgpe1EoQSBpPTA7aTxLLlo7aSsrKXtLW2ldLjFHPSIxbCI7eihFLlo|MCl7S1tpXS4xZD17fTtLW2ldLjFkLjFXPUVbMF07S1tpXS4xZC4yOD1FWzFdO0tbaV0uMWQuMm49RVsyXTtLW2ldLjFkLjF5PUVbM107S1tpXS4xZC4xeD1FWzRdO0tbaV0uMWQuMXc9RVs1XX19M1IoIiIsIiIsIiIpfTtJIDNSKGEsYixjKXtBIGQ7eigxZT4wKXt9eihLLlo|MCYmSy5aPjFlKXtkPUtbMWVdO2QuQy40Uj0zUjtkLjFsKCk7MWUrK31He0s9MTYgMlMoKTsxZT0wfX0xYi4xMi44az1JKCl7eS4xRz0iM1kiO3ooRS5aPjApe3kuMUY9e307eS4xRi4ydT1FWzBdO3kuMUYuMjg9RVsxXTt5LjFGLjhsPUVbMl19QSBhPTE2IDIzKCk7eihhLjFCKXt6KFUuMTMoIlYiKT09Tyl7QSBiPSI8MWMgRD1cJ1ZcJyAxZj1cJyIrWCsiP0Q9Iit5LkQrIlwnIDFxPVwnMFwnIDFvPVwnMFwnIDFUPVwnMFwnPjwvMWM|IjtVLjI3LjIyKCIyOSIsYil9R3tVLjEzKCJWIikuMWY9WCsiP0Q9Iit5LkR9fUd7MUsuMmQoWCsiP0Q9Iit5LkQsIiIsIjMyPTM0LDRsPTFzLDJIPTFzLDNQPTFzLDNmPTAsMW09MXMsNEs9MXMsIDhtPTJYLCA4bj0yWCwgMXE9MTAsMW89MTAiKX19O0kgNEUoYSxiKXtBIGM9Yi4xVigiOyIpO1EoQSBpPTA7aTxjLlo7aSsrKXthLjNTKCIxOC4iK2NbaV0pfWEuM1QoKX1JIDRGKGEsYil7QSBjPWIuMVYoIjsiKTtBIGQ9W107UShBIGk9MDtpPGMuWjtpKyspe2RbaV09Y1tpXX1RKEEgaT0wO2k8ZC5aO2krKyl7QSBlPWRbaV0uMVYoIj0iKTthLjNTKCIzWS41Ny4iK2VbMF0rIi41OD0iK2VbMV0pfWEuM1QoKX1JIDRHKGEsYil7QSBjPWIuMVYoIjsiKTtBIGQ9W107UShBIGk9MDtpPGMuWjtpKyspe2RbaV09Y1tpXX1RKEEgaT0wO2k8ZC5aO2krKyl7QSBlPWRbaV0uMVYoIj0iKTthLjNTKCI1Ny4zUC44cy4iK2VbMF0rIi41OD0iK2VbMV0pfWEuM1QoKX1JIDU5KCl7Mkt7MkU9MTYgOHYoKX0ySSg4dyl7Mkt7MkU9MTYgNWIoIjh4LjVjIil9MkkoOHopezJLezJFPTE2IDViKCI4QS41YyIpfTJJKDhCKXsyRT1PfX19VCAyRX1JIDVkKCl7VCAxNiA1ZSgpfUkgNWUoKXt5LjFSPTU5KCk7eS4zVz01aDt5LjhIPTVpO3kuNWo9NWs7eS4zOD01bTt5LjFSLjhOPTVuO3kuMk09IiI7eS4yeD0iIjt5LjhRPTVwO3kuM2k9IjQwIjt5LjM3PTF6O3kuMzk9IjV1Ijt5LjhYPTF6fUkgNWsoKXt5LjFSLjJkKHkuM2kseS4yTSx5LjM3KX1JIDVoKGEsYil7eS4xUi44WShhLGIpfUkgNWkoYSxiKXt6KHkuMnghPSIiKXkuMngrPSImIjtiPWIuMlQoLyUvZywiJTI1Iik7Yj1iLjJUKC9cXCsvZywiJTJCIik7Yj1iLjJUKC89L2csIiUzRCIpO2I9Yi4yVCgvJi9nLCIlMjYiKTt5LjJ4Kz1hKyI9IitifUkgNW0oYSl7eihFLlohPTApe3kuMng9RVswXX16KHkuMzc9PTF6KXt6KHkuM2k9PSI0MCIpe3kuMVIuNXYoeS4yeCl9R3t5LjFSLjV2KCIiKX1UfUd7MUsuNEkoIjkwLjJqIix5LCIzMjozNDszZjoxczs0WjoxczsySDoxczs1Mzo5MTs1NDo5MiIpfX1JIDVuKCl7fUkgNXAoKXt6KHkuMVIuOTM9PTQpe3ooeS4xUi4ySD09OTQpe3ooeS4zOT09IjV1Iil7VCB5LjFSLjk1fUcgeih5LjM5PT0iMlEiKXtUIHkuMVIuNXd9R3tUIHkuMVIuNXd9fUd7VCIifX19SSA5NyhhLGIsYyxkLGUsZil7QSBnPTVkKCk7Zy4zaT1hO2cuMzc9YjtnLjJNPWM7Zy4zOT1lO2cuNWooKTt6KGYhPSIiKXtnLjNXKCI1eC00ZCIsZil9R3tnLjNXKCI1eC00ZCIsIjNiL3gtOWMtOWQtOWU7OWY9OWctOWgiKX16KGE9PSI0MCIpe3ooZCE9IiIpe2cuMzgoZCl9R3tnLjM4KCl9fUd7Zy4zOCgpfVQgZ31JIDlpKGEsYixjKXs5aihhLGIsYyl9SSA5aygpe1QgNFR9SSA5bChhKXtBIGI9MUsuMW0uN1ouMzEoMSk7QSBjPWIuMVYoIiYiKTtRKEEgaT0wO2k8Yy5aO2krKyl7QSBkPWNbaV0uMVYoIj0iKTt6KGRbMF09PWEpe1QgZFsxXX19VCBPfScsNjIsNTgxLCd8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8dGhpc3xpZnx2YXJ8cGFyYW18ZXZlbnR8aWR8YXJndW1lbnRzfG5hbWV8ZWxzZXxodHRwfGZ1bmN0aW9ufHVuZGVmaW5lZHxyZXhfZ2FSZXBvcnRzfHNjcmlwdHxjb25maWd8fG51bGx8cmViZmlsZXN8Zm9yfGNvbnRlbnR8dHlwZXxyZXR1cm58ZG9jdW1lbnR8cmV4X2lmcm1SZXhQcmV2aWV3fGxpc3R8cmV4X2dzUHJlVmlld1VSTHx8bGVuZ3RofHx8cHJvdG90eXBlfGdldEVsZW1lbnRCeUlkfHN1YnJlcG9ydHN8fG5ld3xSZXhDdGx8cHJpbnR8cHJpbnRpbmZvfENhbmNlbHxyZXhfUGFyYW1TZXR8aWZyYW1lfHNhdmVpbmZvfHJleF9nYVJlcG9ydHNJbmRleHxzcmN8cGx1Z2lufHJwdG5hbWV8dGV4dHxqYXZhc2NyaXB0fGNvb2tpZXxzYXZlfGxvY2F0aW9ufHN1YnxoZWlnaHR8c2F2ZXVwbG9hZHx3aWR0aHxodHRwcGFyYW1zfG5vfHBhcmFtc3xuYW1lc3BhY2V8aXN8T3B0aW9ufGVuZHBhZ2V8c3RhcnRwYWdlfGZhbHNlfGNvbm5lY3RuYW1lfGlzSUV8ZGF0YXNldHN8dmFsdWV8cGF0aHxleHBvcnRzZXJ2aWNlfG9wZW50eXBlfGRhdGFzZXR8ZW5jb2Rpbmd8aW58d2luZG93fGRhdGF8cmV4X1JlYkZpbGV8aHR0cG1ldGhvZHx0cnVlfHRvTG93ZXJDYXNlfGRhdGF0eXBlfEFqYXh8cHJlc2VydmV3aGl0ZXNwYWNlfGZyYW1lYm9yZGVyfGhyZWZ8c3BsaXR8ZGlhbG9nfHhwYXRofGNvbnRlbnRXaW5kb3d8Y29ubmVjdGlvbm9uY2V8Q0RBVEF8cmV4X2dzUmV4U2VydmljZVJvb3RVUkx8aW5zZXJ0QWRqYWNlbnRIVE1MfHJleF9BZ2VudHx2ZXJzaW9ufHx8Ym9keXxmaWxldHlwZXxiZWZvcmVFbmR8ZGVsaW18Y29weWNvdW50fENhbGx8b3Blbnxjb25uZWN0aW9ufHZic2NyaXB0fGxhbmd1YWdlfHRvU3RyaW5nfHJleF9SZWJTdWJSZXBvcnR8anNwfGZpZWxkfG9iamVjdHxyZXhfZ29QYXJhbVNldHxmaWxlTmFtZXxyZXhfdmlld2VyX3ZlcnNpb258cmV4X2dzU2VydmVyVmVyc2lvbnxmaW5pc2hwcmludGFsbGVhY2h8ZmluaXNocHJpbnRhbGx8aW5pdHxwYXJzZUludHxmaWxlbmFtZXxmaW5pc2hwcmludGRpcmVjdGFsbGVhY2h8YmVmb3JlcHJpbnRhbGxlYWNofFBhcmFtZXRlcnxmaW5pc2hwcmludGRpcmVjdGFsbHxwcmludG9wdGlvbnxyZXhfZ3NQbHVnaW5UeXBlV2VifHxyZXhfUmViQ29ubmVjdGlvbnwxMDB8b2JqfHRpdGxlfHhtbHxzdGF0dXN8Y2F0Y2h8cm9vdHx0cnl8YWRvfFBhdGh8d2lufGNvbmZpZ3BhcmFtc3x0b1VwcGVyQ2FzZXxDU1Z8aW5kZXh8QXJyYXl8cmVwbGFjZXxpc1dpbnxyZXhfZ3NQcmVWaWV3RmVhdHVyZXN8ZmlsZXwxMDAwfGNhYnxuYXZpZ2F0b3J8cmV4X2dzU2V0dXBVUkx8c3Vic3RyaW5nfGNlbnRlcnxyZXBvcnR8eWVzfHJleF9nc0h0dHBUaW1lb3V0fGJyZWFrfGlzQVN5bmN8U2VuZHxEYXRhVHlwZXx0cmF5aWR8YXBwbGljYXRpb258ZmluaXNoZG9jdW1lbnR8cHJpbnRuYW1lfHByaW50ZGlyZWN0fHJlc2l6YWJsZXxpc0ZGfHJlYnxNZXRob2R8cmV4X1ByaW50QWxsRXZlbnR8bWVtb3xjb2x8c3FsfHJvd3x0eXBlb2Z8dG9TdHJpbmdGaWVsZHxjYXNlfHRvU3RyaW5nRmlsZXxodHRwcGFyYW18ZmluaXNocHJpbnR8ZW5hYmxldGhyZWFkfHBhcmFtdHlwZXxwb3N0fEdldFBhcmFtU2V0fGRlc2NyaXB0aW9ufG1pbWVUeXBlc3xyZXhwZXJ0M3xpc1NGfGlzQ1J8fGlzT1B8bnR8cnZ8cmV4X2dzUGx1Z2luRmlsZVBhcmFtfHJleF9nc1BsdWdpbkZpbGVUeXBlfHJleF9nc1BsdWdpbkh0dHBQYXJhbXxyZXhfZ3NQbHVnaW5QYXJhbXxyZXhfZ3NQbHVnaW5XZWJQYXJhbXxyZXhfUHJpbnREaXJlY3RBbGxFdmVudHxyZXhfZ3NTaG93cGFyYW1ldGVyZGlhbG9nfHJleF9nc0NzdlNlcGFyYXRvckRhdGFTZXRfUmV4U2VydmVyMjV8dG9vbGJhcnx1cGxvYWR1cmx8cmV4X1NhdmVBbGxFdmVudHxTZXRDU1N8VXBkYXRlQ1NTfHV0ZnxyZXhfZ3NDc3ZTZXBhcmF0b3JSb3d8U2V0UmVxdWVzdEhlYWRlcnxyZXhfZ3NDc3ZTZXBhcmF0b3JDb2x1bW58ZXhwb3J0fHJleF9nc0Rvd25sb2FkVVJMfFBPU1R8cmV4X2dzUmVwb3J0VVJMfGh5cGVybGlua2NsaWNrZWR8bXNpZXxycHQxfGlzTWFjfHRvU3RyaW5nQ29uZmlnUGFyYW18cmV4X2dldFJleEN0bHxyZXhfZ3NDc3ZFbmNvZGluZ19SZXhTZXJ2ZXIyNXxyZXhfZ3NYUGF0aF9SZXhTZXJ2ZXIyNXxyZXhkYXRhc2V0fHJleHJvd3xpc251bGx8VHlwZXxyZXhfdmlld2VyX2luc3RhbGx8cmV4cGVydDMwdmlld2VyfGF1dG98cFNlc3Npb25LZXl8aW50ZXJuYWx8UEV8b25jZXxzY3JvbGxiYXJzfHJleF9nc1VzZXJTZXJ2aWNlfHJleF9nc0NzdlNlcGFyYXRvckRhdGFTZXR8Y3N2fFN1Y2Nlc3N8RmlsZVBhdGh8d2VifHV0ZjE2bGV8UmVzdWx0fGJpbmRtb2RlfEZpbGVOYW1lfHJleF9nc0NzdkVuY29kaW5nfDgyNXw2MDB8ZXhlfHBhcnNlRmxvYXR8bWF0Y2h8SWZ8ZW1iZWR8cmV4X2ZuUHJpbnRTZXR0aW5nfHJleF9mbkV4cG9ydFZpc2libGV8cmV4X2ZuVG9vbEJhckJ1dHRvbkVuYWJsZVRydWV8b3Blbm1vZGFsfHNob3dNb2RhbERpYWxvZ3xnb09PRnxtZW51fHJleF9nc1ByZVZpZXdGZWF0dXJlc01vZGFsfEZpbmlzaFByaW50UmVzdWx0fFJlc3VsdENvZGV8T25GaW5pc2hQcmludFJlc3VsdHx0b3RhbHBhZ2V8cGFnZXxmaW5pc2hleHBvcnR8ZmluaXNocHJpbnRyZXN1bHR8cmV4U2NyaXB0X3ZlcnNpb258cHVzaHxyZXBvcnRzfHJlc3VsdGNvZGV8ZXJyb3JYTUx8UHJpbnROYW1lfHNjcm9sbHxUb1BhZ2V8Q29waWVzfGNvbnxkaWFsb2dXaWR0aHxkaWFsb2dIZWlnaHR8cmV4X2dzUnB0U2VydmljZVVSTHxvb2Z8YXBwZWFyYW5jZXx2aXNpYmxlfHJleF9nZkdldEFqYXhSZXF1ZXN0fGVuYWJsZXxBY3RpdmVYT2JqZWN0fFhNTEhUVFB8cmV4X0dldGdvQWpheHxyZXhfZ29BamF4fHRocmVhZHxyZXhfZ3NYUGF0aHxyZXhfZ29BamF4X1NldFJlcXVlc3RIZWFkZXJ8cmV4X2dvQWpheF9BZGRQYXJhbWV0ZXJ8T3BlbnxyZXhfZ29BamF4X09wZW58aW5kZXhPZnxyZXhfZ29BamF4X1NlbmR8cmV4X2dvQWpheF9vbnJlYWR5c3RhdGVjaGFuZ2V8cmV4X2dzUnB0U2VydmljZVVSTF9SZXhTZXJ2ZXIyNXxyZXhfZ29BamF4X1Jlc3BvbnNlfHJleF9nc0NzdlNlcGFyYXRvckNvbHVtbl9SZXhTZXJ2ZXIyNXxzdWJzdHJ8bGFzdEluZGV4T2Z8cmV4X2dzQ3N2U2VwYXJhdG9yUm93X1JleFNlcnZlcjI1fFhNTHxzZW5kfHJlc3BvbnNlVGV4dHxDb250ZW50fEZyb21QYWdlfGlzSUU2fHVzZXJkZWZpbmVwYXJhbXw2MDBweHxpc0lFN3xpc0lFNTV8cmV4cGVydHx3aW5kb3d0aXRsZXxSZXhwZXJ0fFZpZXdlcnx2aWV3ZXJ8c3RyaW5nfGlzSUU1fHVzZXJBZ2VudHxjb2RlYmFzZXxwbHVnaW5zcGFnZXxpc0lFOHxyZXhfZ3NWaWV3ZXJMYW5ndWFnZXxpc0lFOXxrb3xidXR0b25wcmludGNsaWNrYmVmb3JlfGJ1dHRvbnByaW50Y2xpY2thZnRlcnxidXR0b25leHBvcnRjbGlja2JlZm9yZXxidXR0b25leHBvcnRjbGlja2FmdGVyfGJ1dHRvbnJlZnJlc2hjbGlja2JlZm9yZXxidXR0b25yZWZyZXNoY2xpY2thZnRlcnxidXR0b25leHBvcnR4bHNjbGlja2JlZm9yZXxidXR0b25leHBvcnR4bHNjbGlja2FmdGVyfGJ1dHRvbmV4cG9ydHBkZmNsaWNrYmVmb3JlfGJ1dHRvbmV4cG9ydHBkZmNsaWNrYWZ0ZXJ8YnV0dG9uZXhwb3J0aHdwY2xpY2tiZWZvcmV8YnV0dG9uZXhwb3J0aHdwY2xpY2thZnRlcnxjYW5jZWxwcmludHxidXR0b25jbG9zZXdpbmRvd2NsaWNrYmVmb3JlfGJ1dHRvbmNsb3Nld2luZG93Y2xpY2thZnRlcnxwcmludHBhZ2V8Y2FuY2VsZXhwb3J0fHJleHBlcnRlcnJvcnxlcnJvcmV2ZW50fGJlZm9yZXByaW50fGZpbmlzaHVwbG9hZHxGaW5pc2hEb2N1bWVudHxwdXNoY2xlYXJ8aXNJRTEwfE9uRmluaXNoRG9jdW1lbnR8RmluaXNoUHJpbnR8T25GaW5pc2hQcmludHxGaW5pc2hVcGxvYWR8cmV4cHJldmlld3xpc0lFMTF8T25GaW5pc2hVcGxvYWR8RmluaXNoRXhwb3J0fHJleF93cml0ZVJleEN0bHxPbkZpbmlzaEV4cG9ydHxndWJ1bnxyZXhzZXJ2aWNlMjV8SHlwZXJMaW5rQ2xpY2tlZHxyZXhzZXJ2aWNlfFdpbmRvd3N8T258RXJyb3J8UmVzdW1lfE5leHR8cmV4X2dzUnB0RXhwb3J0U2VydmljZVVSTHxOb3R8SXNOdWxsfHJleFNjcmlwdF9kYXRldGltZXxyZXhfZ3NScHRFeHBvcnRVUkx8VGhlbnx3cml0ZXxNYWtlSHlwZXJMaW5rQ2xpY2tlZEFyZ3xFbmR8RXJyfGNvbmZpZ3BhcmFtfGh0dHBzfHNob3dwYXJhbWV0ZXJkaWFsb2d8Q2xlYXJ8MjAxNDA1MTV8bmFtZWJpbmR8TWFjaW50b3NofGlzVW5peHxCdXR0b25QcmludENsaWNrQmVmb3JlfE9uQnV0dG9uUHJpbnRDbGlja0JlZm9yZXxkZXNpZ250eXBlfHJ1bnxCdXR0b25QcmludENsaWNrQWZ0ZXJ8T25CdXR0b25QcmludENsaWNrQWZ0ZXJ8dXNlcnNlcnZpY2V8aW1hZ2V8cmV4X3BhcmFtX3NxbHxwcmVzcWx8cHJlfHBvc3RzcWx8QnV0dG9uRXhwb3J0Q2xpY2tCZWZvcmV8T25CdXR0b25FeHBvcnRDbGlja0JlZm9yZXxRMVNRTHxPRXxOb25lfENOfElEfFNEfFJFQk5NfGNyeXB0b3xjbGlwc29mdHxCdXR0b25FeHBvcnRDbGlja0FmdGVyfFRSVUV8RkFMU0V8UUN8T1R8RGF0YU9ubHl8UTFUeXBlfFNRTHxtZXRob2R8T25CdXR0b25FeHBvcnRDbGlja0FmdGVyfEJ1dHRvblJlZnJlc2hDbGlja0JlZm9yZXxPbkJ1dHRvblJlZnJlc2hDbGlja0JlZm9yZXxCdXR0b25SZWZyZXNoQ2xpY2tBZnRlcnxPbkJ1dHRvblJlZnJlc2hDbGlja0FmdGVyfEJ1dHRvbkV4cG9ydFhMU0NsaWNrQmVmb3JlfE9uQnV0dG9uRXhwb3J0WExTQ2xpY2tCZWZvcmV8QnV0dG9uRXhwb3J0WExTQ2xpY2tBZnRlcnxPbkJ1dHRvbkV4cG9ydFhMU0NsaWNrQWZ0ZXJ8QnV0dG9uRXhwb3J0UERGQ2xpY2tCZWZvcmV8T25CdXR0b25FeHBvcnRQREZDbGlja0JlZm9yZXxCdXR0b25FeHBvcnRQREZDbGlja0FmdGVyfHN3aXRjaHxPbkJ1dHRvbkV4cG9ydFBERkNsaWNrQWZ0ZXJ8QnV0dG9uRXhwb3J0SFdQQ2xpY2tCZWZvcmV8T25CdXR0b25FeHBvcnRIV1BDbGlja0JlZm9yZXxCdXR0b25FeHBvcnRIV1BDbGlja0FmdGVyfGRlZmF1bHR8T25CdXR0b25FeHBvcnRIV1BDbGlja0FmdGVyfENhbmNlbFByaW50fE9uQ2FuY2VsUHJpbnR8QnV0dG9uQ2xvc2VXaW5kb3dDbGlja0JlZm9yZXxleHBvcnRvcHRpb258dG9vbGJhcmJ1dHRvbm9wdGlvbnxPbkJ1dHRvbkNsb3NlV2luZG93Q2xpY2tCZWZvcmV8QnV0dG9uQ2xvc2VXaW5kb3dDbGlja0FmdGVyfE9uQnV0dG9uQ2xvc2VXaW5kb3dDbGlja0FmdGVyfGV4fENsb3NlQWxsfE9wZW5PT0Z8UHJpbnRQYWdlfGlzVmlzdGF8Q09ERUJBU0V8T25QcmludFBhZ2V8UmV4cGVydEVycm9yfFJleHBlcnQzMFZpZXdlckVYRXxDYW5jZWxFeHBvcnR8T25DYW5jZWxFeHBvcnR8c2VhcmNofEVycm9yRXZlbnR8bWFpbnxPbkVycm9yRXZlbnR8cHJpbnRhbGx8QmVmb3JlUHJpbnR8Tk9ORXxpc1dpblhwfDIwMTR8Y2xhc3NpZHxPbkJlZm9yZVByaW50fHByaW50ZGlyZWN0YWxsfGFib3V0fGJsYW5rfENMU0lEfHNjcm9sbGluZ3xyZXhfZm5Mb2NhdGlvbkhvc3R8RkMwMzUwOTl8ODMzRXxzYXZlYWxsfDRBQjF8ZXhwb3J0c2VydmVyfGFmdGVyam9ifGxlZnR8dG9wfEJGNDh8MzdEMDhGNUU1NTNDfGlzVzJrfEdldGZuUGFyYW1TZXR8YnV0dG9ufGlzVzk4fHdpbmRvd3N8WE1MSHR0cFJlcXVlc3R8dHJ5bWljcm9zb2Z0fE1zeG1sMnwwNXxvdGhlcm1pY3Jvc29mdHxNaWNyb3NvZnR8ZmFpbGVkfG9wZXJhfHJleF9nc0Nzc3xyZXhfZ3NNZXRob2R8ZmlyZWZveHxwcm90b2NvbHxBZGRQYXJhbWV0ZXJ8Y2hyb21lfHBkZnxkb3dubG9hZHxzYWZhcml8cmV4X2dzUGx1Z2luVHlwZXxvbnJlYWR5c3RhdGVjaGFuZ2V8RUFDSHwxMDAwMHxSZXNwb25zZXxzZXR1cHxyZXhfZ3NWaWV3ZXJEb3dubG9hZFVSTHxnZXR2aWV3ZXJ8aG9zdHxNU0lFfDgyNXB4fGlzU2hvd1dhaXR8c2V0UmVxdWVzdEhlYWRlcnwxMDEzNnxSZXhQcm9ncmVzc3w0MDBweHwzMDBweHxyZWFkeVN0YXRlfDIwMHxyZXNwb25zZVhNTHxpc05hTnxyZXhfZ2ZBamF4RXhjdXRlfHx8aXNJRTB8UmV4U2VydmVyMzB8d3d3fGZvcm18dXJsZW5jb2RlZHxjaGFyc2V0fEVVQ3xLUnxmblZCRXZlbnRIYW5kbGVyfGZuUmVwb3J0RXZlbnR8Zm5SZXhTY3JpcHRWZXJzaW9ufGdldFBhcmFtZXRlcnxPblJleHBlcnRFcnJvcicuc3BsaXQoJ3wnKSwwLHt9KSk|PC8ybD4ifXooYS4xQnx8YS4zZyl7Yis9IjxMIFM9XCcxaS8xalwnIFE9XCcxN1wnIEM9XCc2ZFwnPiIrIlxcclxcbiI7Yis9Igk2ZygpOyIrIlxcclxcbiI7Yis9IjwvTD4iKyJcXHJcXG4iO2IrPSI8TCBTPVwnMWkvMWpcJyBRPVwnMTdcJyBDPVwnNmhcJz4iKyJcXHJcXG4iO2IrPSIJNmkoKTsiKyJcXHJcXG4iO2IrPSI8L0w|IisiXFxyXFxuIjtiKz0iPEwgUz1cJzFpLzFqXCcgUT1cJzE3XCcgQz1cJzZqKDRwLCA0cSwgNHQpXCc|IisiXFxyXFxuIjtiKz0iCTZtKDRwLCA0cSwgNHQpOyIrIlxcclxcbiI7Yis9IjwvTD4iKyJcXHJcXG4iO2IrPSI8TCBTPVwnMWkvMWpcJyBRPVwnMTdcJyBDPVwnNm4oNHYpXCc|IisiXFxyXFxuIjtiKz0iCTZwKDR2KTsiKyJcXHJcXG4iO2IrPSI8L0w|IisiXFxyXFxuIjtiKz0iPEwgMmc9XCcyZlwnIFE9XCcxN1wnIEM9XCc2cygyTSwgMWEpXCc|IjtiKz0iCTFhID0gMU8iKyJcXHJcXG4iO2IrPSIJNnYgNncgNnggNnkiKyJcXHJcXG4iO2IrPSIJNEMgNkEgNkIoNEouQy40MikgNkUiKyJcXHJcXG4iO2IrPSIJCTJjIDRKLkMuNDIoMTcsIFxcIjQyXFwiLCA2RygyTSkpIisiXFxyXFxuIjtiKz0iCTZIIDRDIisiXFxyXFxuIjtiKz0iCTZJLjZNIisiXFxyXFxuIjtiKz0iPC9MPiI7Yis9IjxMIFM9XCcxaS8xalwnIFE9XCcxN1wnIEM9XCc0TSg0TilcJz4iKyJcXHJcXG4iO2IrPSIJNE8oNE4pOyIrIlxcclxcbiI7Yis9IjwvTD4iKyJcXHJcXG4iO2IrPSI8TCAyZz1cJzJmXCcgUT1cJzE3XCcgQz1cJzZSKDFhKVwnPiI7Yis9IgkxYSA9IDF6IisiXFxyXFxuIjtiKz0iCTJjIDZTKDFhKSIrIlxcclxcbiI7Yis9IjwvTD4iO2IrPSI8TCBTPVwnMWkvMWpcJyBRPVwnMTdcJyBDPVwnNlZcJz4iKyJcXHJcXG4iO2IrPSIJNlcoKTsiKyJcXHJcXG4iO2IrPSI8L0w|IisiXFxyXFxuIjtiKz0iPEwgMmc9XCcyZlwnIFE9XCcxN1wnIEM9XCc3MygxYSlcJz4iO2IrPSIJMWEgPSAxeiIrIlxcclxcbiI7Yis9IgkyYyA3NCgxYSkiKyJcXHJcXG4iO2IrPSI8L0w|IjtiKz0iPEwgUz1cJzFpLzFqXCcgUT1cJzE3XCcgQz1cJzdlXCc|IisiXFxyXFxuIjtiKz0iCTduKCk7IisiXFxyXFxuIjtiKz0iPC9MPiIrIlxcclxcbiI7Yis9IjxMIDJnPVwnMmZcJyBRPVwnMTdcJyBDPVwnN28oMWEpXCc|base64test|IjtiKz0iCTFhID0gMXoiKyJcXHJcXG4iO2IrPSIJMmMgN3AoMWEpIisiXFxyXFxuIjtiKz0iPC9MPiI7Yis9IjxMIFM9XCcxaS8xalwnIFE9XCcxN1wnIEM9XCc3cVwnPiIrIlxcclxcbiI7Yis9Igk3cigpOyIrIlxcclxcbiI7Yis9IjwvTD4iKyJcXHJcXG4iO2IrPSI8TCAyZz1cJzJmXCcgUT1cJzE3XCcgQz1cJzdzKDFhKVwnPiI7Yis9IgkxYSA9IDF6IisiXFxyXFxuIjtiKz0iCTJjIDd0KDFhKSIrIlxcclxcbiI7Yis9IjwvTD4iO2IrPSI8TCBTPVwnMWkvMWpcJyBRPVwnMTdcJyBDPVwnN3VcJz4iKyJcXHJcXG4iO2IrPSIJN3YoKTsiKyJcXHJcXG4iO2IrPSI8L0w|IisiXFxyXFxuIjtiKz0iPEwgMmc9XCcyZlwnIFE9XCcxN1wnIEM9XCc3dygxYSlcJz4iO2IrPSIJMWEgPSAxeiIrIlxcclxcbiI7Yis9IgkyYyA3eCgxYSkiKyJcXHJcXG4iO2IrPSI8L0w|IjtiKz0iPEwgUz1cJzFpLzFqXCcgUT1cJzE3XCcgQz1cJzd5XCc|IisiXFxyXFxuIjtiKz0iCTdBKCk7IisiXFxyXFxuIjtiKz0iPC9MPiIrIlxcclxcbiI7Yis9IjxMIDJnPVwnMmZcJyBRPVwnMTdcJyBDPVwnN0IoMWEpXCc|IjtiKz0iCTFhID0gMXoiKyJcXHJcXG4iO2IrPSIJMmMgN0MoMWEpIisiXFxyXFxuIjtiKz0iPC9MPiI7Yis9IjxMIFM9XCcxaS8xalwnIFE9XCcxN1wnIEM9XCc3RFwnPiIrIlxcclxcbiI7Yis9Igk3RigpOyIrIlxcclxcbiI7Yis9IjwvTD4iKyJcXHJcXG4iO2IrPSI8TCBTPVwnMWkvMWpcJyBRPVwnMTdcJyBDPVwnN0coKVwnPiI7Yis9Igk3SCgpIisiXFxyXFxuIjtiKz0iPC9MPiI7Yis9IjxMIDJnPVwnMmZcJyBRPVwnMTdcJyBDPVwnN0koMWEpXCc|replace|do|IjtiKz0iCTFhID0gMXoiKyJcXHJcXG4iO2IrPSIJMmMgN0woMWEpIisiXFxyXFxuIjtiKz0iPC9MPiI7Yis9IjxMIFM9XCcxaS8xalwnIFE9XCcxN1wnIEM9XCc3TVwnPiIrIlxcclxcbiI7Yis9Igk3TigpOyIrIlxcclxcbiI7Yis9IjwvTD4iKyJcXHJcXG4iO2IrPSI8TCBTPVwnMWkvMWpcJyBRPVwnMTdcJyBDPVwnN1IoNFAsIDRRKVwnPiIrIlxcclxcbiI7Yis9Igk3VSg0UCwgNFEpOyIrIlxcclxcbiI7Yis9IjwvTD4iKyJcXHJcXG4iO2IrPSI8TCBTPVwnMWkvMWpcJyBRPVwnMTdcJyBDPVwnN1YoRiwgM3kpXCc|IisiXFxyXFxuIjtiKz0iCTltKEYsIDN5KTsiKyJcXHJcXG4iO2IrPSI8L0w|IisiXFxyXFxuIjtiKz0iPEwgUz1cJzFpLzFqXCcgUT1cJzE3XCcgQz1cJzdYXCc|IisiXFxyXFxuIjtiKz0iCTdZKCk7IisiXFxyXFxuIjtiKz0iPC9MPiIrIlxcclxcbiI7Yis9IjxMIFM9XCcxaS8xalwnIFE9XCcxN1wnIEM9XCc0TSg0VylcJz4iKyJcXHJcXG4iO2IrPSIJNE8oNFcpOyIrIlxcclxcbiI7Yis9IjwvTD4iKyJcXHJcXG4iO2IrPSI8TCBTPVwnMWkvMWpcJyBRPVwnMTdcJyBDPVwnODAoNFgpXCc|IisiXFxyXFxuIjtiKz0iCTgyKDRYKTsiKyJcXHJcXG4iO2IrPSI8L0w|IisiXFxyXFxuIjtiKz0iPEwgUz1cJzFpLzFqXCcgUT1cJzE3XCcgQz1cJzg0KDRZLCA1eSwgNTAsIDUxLCAxYSlcJz4iKyJcXHJcXG4iO2IrPSIJODkoNFksIDV5LCA1MCwgNTEsIDFhKTsiKyJcXHJcXG4iO2IrPSI8L0w|IisiXFxyXFxuIn19R3tiKz0iPDFjIEQ9XCdWXCcgRj1cJ1ZcJyAxZj1cJzhiOjhjXCcgMXE9XCc5OSVcJyAxbz1cJzk5JVwnIDFUPVwnMFwnIDhlPVwnMXNcJz48LzFjPiJ9VCBifUkgOGYoKXtBIGE9IiIrVS4xbTtBIGI9Ikg6Ly8iO0EgYz1iLlo7QSBkPWEuNWwoIi8iLGMpO0EgZT1hLjMxKDAsZCk7VCBlfUEgMm09e307QSBLPTE2IDJTKCk7QSAxZT0wO0kgOHIoKXt6KEUuWj4wKXtUIDN4KEVbMF0pfUd7VCAzeCgpfX1JIDN4KCl7eihFLlo|MCl7Mm1bRVswXV09MTYgMWIoRVswXSk7Mm1bRVswXV0uMVE9IjJRIjtUIDJtW0VbMF1dfUd7Mm1bIjAiXT0xNiAxYigiMCIpO1QgMm1bIjAiXX19SSAxYihsKXt5LkQ9bDt5LlM9IkgiO3kuMUc9IiI7eS4xaD0iIjt5LjFGPXt9O3kuMUYuQj17fTt5LjFGLjJ1PU87eS4xRi4yOD0iOEoiO3kuMVE9IiI7eS4xTD0iIjt5LjFBPSIiO3kuMVo9IiI7eS4xWD0iIjt5LjFTPSIxIjt5LlA9e307eS4xND17fTt5LjF0PXt9O3kuMXI9e307eS4xQz17fTt5LjJ6PSIiO3kuQz17fTt5LjFnPXt9O3kuMWcuQj17fTt5LjFnLlM9IiI7eS4xZy4xaz0iIjt5LjFnLjRyPXt9O3kuMWcuNHIuQj17fTt5LjE5PXt9O3kuMWQ9e307eS4yRj0iIjt5LjJOPU87eS41QT1PO3kuMUk9IiI7eS4xRT0iIjt5LjFOPSIzdyI7eS41Rj0iNUcgNUgiO3kuM3Y9IjVKIjt5LjN1PSIwIjt5LkMuMnM9Tzt5LkMuM2M9Tzt5LkMuM3Q9Tzt5LkMuMnI9Tzt5LkMuMnE9Tzt5LkMuNFI9Tzt5LkMuNFM9Tzt5LkMuNVM9Tzt5LkMuNVQ9Tzt5LkMuNVU9Tzt5LkMuNVY9Tzt5LkMuNVc9Tzt5LkMuNVg9Tzt5LkMuNVk9Tzt5LkMuNVo9Tzt5LkMuNjA9Tzt5LkMuNjE9Tzt5LkMuNjI9Tzt5LkMuNjM9Tzt5LkMuNjQ9Tzt5LkMuNjU9Tzt5LkMuNjY9Tzt5LkMuNjc9Tzt5LkMuNjg9Tzt5LkMuNFM9Tzt5LkMuNjk9Tzt5LkMuNmE9Tzt5LkMuNmI9Tzt5LjFrPSIiO3kuQy42Yz1POzFiLjEyLjZlPUkoKXtLPTE2IDJTKCk7MWU9MH07MWIuMTIuNFU9SShhKXtLLjRVKGEpfTsxYi4xMi4zaD1JKGEpe3ooeS5QW2FdPT1KKXt5LlBbYV09MTYgMU0oYSl9eS5QW2FdLjFEPSIiO1QgeS5QW2FdfTsxYi4xMi5CPUkoYSl7eih5LjF0W2FdPT1KKXt5LjF0W2FdPXt9fXkuMXRbYV0uMUQ9IiI7VCB5LjF0W2FdfTsxYi4xMi4zcz1JKGEpe3ooeS4xclthXT09Sil7eS4xclthXT17fX15LjFyW2FdLjFEPSIiO1QgeS4xclthXX07MWIuMTIuMW49SShhKXt6KHkuMTRbYV09PUope3kuMTRbYV09MTYgMmkoYSl9eS4xNFthXS4xRD0iIjtUIHkuMTRbYV19OzFiLjEyLjUyPUkoYSl7eih5LjE0W2FdPT1KKXt5LjE0W2FdPTE2IDJpKGEpfXkuMTRbYV0uMUQ9IiI7VCB5LjE0W2FdfTsxYi4xMi4xSD1JKGEpe3ooeS4xQ1thXT09Sil7eS4xQ1thXT17fX15LjFDW2FdLjFEPSIiO1QgeS4xQ1thXX07MWIuMTIuMmg9SSgpe0EgYT0iIjtBIGI9MTYgMkMoKTtBIGM9e307QSBkPTE2IDFNKCk7YSs9Ijw|while|length|IjtkKz0iPE0tQiBGPVwnN21cJz4iK2grIjwvTS1CPiI7eihtPT0iMSIpe2QrPSI8TS1CIEY9XCcyZS40a1wnPjE8L00tQj4ifXoocSE9IiImJnEhPUope2QrPSI8TS1CIEY9XCcxa1wnPjwhWzIwWyIrcSsiXV0'.split('|'),0,{})) \ No newline at end of file diff --git a/src/main/webapp/RexServer30/rexscript/rexpert.properties.js b/src/main/webapp/RexServer30/rexscript/rexpert.properties.js new file mode 100644 index 0000000..bae9cb5 --- /dev/null +++ b/src/main/webapp/RexServer30/rexscript/rexpert.properties.js @@ -0,0 +1,132 @@ +// repert.properties.js info +// version : rexpert 3.0 + +// Rexpert context root url +rex_gsRexServiceRootURL = window.location.protocol + "//" + window.location.host + "/RexServer30/"; + +// preview page +rex_gsPreViewURL = rex_gsRexServiceRootURL + "rexpreview.jsp"; + +// rebfiles root directory +//rex_gsReportURL = rex_gsRexServiceRootURL + "rebfiles/"; +rex_gsReportURL = window.location.protocol + "//" + window.location.host + "/web/rex/"; + +// cab & plugin download directory +rex_gsDownloadURL = rex_gsRexServiceRootURL + "cab/"; + +// setup page url +rex_gsSetupURL = rex_gsRexServiceRootURL + "cab/download/setup.jsp"; + +//Viewer Download Page URL +rex_gsViewerDownloadURL = rex_gsRexServiceRootURL + "cab/getviewer.jsp?f=rexpert30viewer.exe"; + +// RexServer service url +rex_gsRptServiceURL = rex_gsRexServiceRootURL + "rexservice.jsp"; + +// Export Service URL +rex_gsRptExportServiceURL = rex_gsRexServiceRootURL + "exportservice.jsp"; + +// Export URL +rex_gsRptExportURL = rex_gsRexServiceRootURL + "export.jsp"; + +// default DBconnection +rex_gsUserService = "oracle1"; + +// viewer Version +rex_viewer_version = "1,0,0,312"; + +// setting CSV information +rex_gsCsvSeparatorColumn = "|*|"; +rex_gsCsvSeparatorRow = "|#|"; +rex_gsCsvSeparatorDataSet = "|@|"; +rex_gsCsvEncoding = "utf-8"; + +// default XML xpath +rex_gsXPath = "gubun/rpt1/rexdataset/rexrow"; + +// Rexpert Web Viewer Windows Size +rex_gsPreViewFeatures = "center=yes,scrollbars=no,status=no,toolbar=no,resizable=1,location=no,menu=no,width=835,height=600"; +rex_gsPreViewFeaturesModal = "center:yes;resizable:no;scroll:no;status:no;dialogWidth:825px;dialogHeight:600px"; + +/* +rex_gsHttpTimeout = {"connect.timeout": 60000 + , "control.send.timeout": 60000 + , "control.receive.timeout": 60000 + , "data.send.timeout": 60000 + , "data.receive.timeout": 60000}; +*/ + +// plugin - webcrypto +/* +rex_gsPluginTypeWeb = "crypto.clipsoft"; +rex_gsPluginWebParam = {"name": "name", + "common-enable-encode": "1", + "common-enable-decode": "0", + "common-delimiter": "|!|", + "common-encoding": "euc-kr", + "common-enable-log": "0", + "common-log-filename": "c:\test2.log"}; + +rex_gsPluginTypeWeb = "crypto.xecureweb"; +rex_gsPluginWebParam = {"name": "name", + "common-enable-encode": "1", + "common-enable-decode": "0", + "common-delimiter": "|!|", + "common-encoding": "euc-kr", + "common-enable-log": "0", + "common-log-filename": "c:\test2.log", + "xecureweb-gateaddr": "ip-address:443:8080", + "xecureweb-authtype": "", + "xecureweb-mehtod": "POST"}; +*/ + +// plugin - DRM +/* +rex_gsPluginType = "markany"; + +rex_gsPluginParam = {"datapath": rex_gsRexServiceRootURL + "/plugin/markany/MaFpsCommon.jsp", + "datafilename": "MaPrintInfoCUSTRP.dat", + "enablecapture": "0", + "enablespool": "0", + "enableprinter": "0", + "printeroption": "3", + "imagesaferoption": "0", + "enableprinterdialog": "0"}; +*/ +//rex_gsPluginHttpParam = {"test": "abcd", +// "test2": "1234"}; + +/* +rex_gsPluginType = "bcqure"; +rex_gsPluginParam = {"initpath": rex_gsRexServiceRootURL + "/plugin/bcqre/prnInit/", + "datapath": rex_gsRexServiceRootURL + "/plugin/bcqre/bcqre.server.jsp", + "docnumber": "ksfc", + "docname": "ksfc", + "barcodewidth": "600", + "barcodeminheight": "50", + "barcodemaxheight": "200"}; +*/ + +// plugin - DRM file +/* +rex_gsPluginFileType = "markany.drm"; +rex_gsPluginFileParam = {"key1": "value1", "key2": "value2"}; +*/ + + +/* +rex_gsCss = [ + "appearance.pagemargin.visible=0" + ,"appearance.toolbar.button.print.enable=0" + ,"accessibility.enable=0" + ,"appearance.canvas.backcolor=rgb(255,255,0)" + ,"appearance.control.backcolor=rgb(255,0,0)" + ,"appearance.canvas.offsetx=0" + ,"appearance.toolbar.button.open.visible=0" + ,"appearance.toolbar.button.closewindow.visible=1" + ,"appearance.tabheader.close.enable=0" + ,"appearance.reportlist.visible=1" + ,"print.appearance.allreportprint.enable=1" + ,"print.allreportprint=1" + ]; +*/ \ No newline at end of file diff --git a/src/main/webapp/RexServer30/rexservice.jsp b/src/main/webapp/RexServer30/rexservice.jsp new file mode 100644 index 0000000..58d2589 --- /dev/null +++ b/src/main/webapp/RexServer30/rexservice.jsp @@ -0,0 +1,17 @@ +<% + //request.setCharacterEncoding("utf-8"); + + //System.setProperty("rexpert.properties.dir", "C:/RexServer30/WEB-INF/classes/Rexpert/conf"); + + String strId = (request.getParameter("ID") == null ? "" : request.getParameter("ID")); + + if (strId.equalsIgnoreCase("SDXML")) { + response.setContentType("text/xml;charset=UTF-8"); + } else if (strId.equalsIgnoreCase("SDCSV")) { + response.setContentType("text/html;charset=UTF-8"); + } + System.out.println("request :: " + request); + System.out.println("response :: " + response); + System.out.println("application :: " + application); + Rexpert.DataServer.Main.fnRun(request, response, application); +%> \ No newline at end of file diff --git a/src/main/webapp/RexServer30/sampleVBScript.jsp b/src/main/webapp/RexServer30/sampleVBScript.jsp new file mode 100644 index 0000000..bd7ebf0 --- /dev/null +++ b/src/main/webapp/RexServer30/sampleVBScript.jsp @@ -0,0 +1,178 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + + + +sampleall + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/RexServer30/sampleall.jsp b/src/main/webapp/RexServer30/sampleall.jsp new file mode 100644 index 0000000..5d868ce --- /dev/null +++ b/src/main/webapp/RexServer30/sampleall.jsp @@ -0,0 +1,605 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" %> + + + +sampleall + + + + + + +   +   +   +  
+
+ + + +
+
+ + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/RexServer30/sysinfo.jsp b/src/main/webapp/RexServer30/sysinfo.jsp new file mode 100644 index 0000000..08ccb79 --- /dev/null +++ b/src/main/webapp/RexServer30/sysinfo.jsp @@ -0,0 +1,17 @@ +<%@page import="java.util.*,java.text.*,java.net.InetAddress,java.text.SimpleDateFormat" %><% + + response.setContentType("text/html;charset=UTF-8"); + + SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy/MM/dd"); + String sCurrDate = simpledateformat.format(new Date()); + out.println("Date : " + sCurrDate + "

"); + + Runtime runtime = Runtime.getRuntime(); + int iCpu = runtime.availableProcessors(); + + out.println("CPU Count : " + iCpu + "

"); + + String sIpAddr = InetAddress.getLocalHost().getHostAddress(); + + out.println("IP Address : " + sIpAddr + "

"); +%> \ No newline at end of file diff --git a/src/main/webapp/RexServer30/viewer.jsp b/src/main/webapp/RexServer30/viewer.jsp new file mode 100644 index 0000000..8a4ed19 --- /dev/null +++ b/src/main/webapp/RexServer30/viewer.jsp @@ -0,0 +1,21 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@page import="java.util.*" %> + +
+<% + Enumeration params = request.getParameterNames(); + + while (params.hasMoreElements()) { + String name = (String)params.nextElement(); + String value = request.getParameter(name); +%> + +<% + } +%> +
+ + \ No newline at end of file diff --git a/src/main/webapp/RexServer30/viewer2.jsp b/src/main/webapp/RexServer30/viewer2.jsp new file mode 100644 index 0000000..5bdda5b --- /dev/null +++ b/src/main/webapp/RexServer30/viewer2.jsp @@ -0,0 +1,57 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@page import="java.util.*" %> + + + +simple + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/Rexpert/conf/Crypto.properties b/src/main/webapp/WEB-INF/Rexpert/conf/Crypto.properties new file mode 100644 index 0000000..3e19486 --- /dev/null +++ b/src/main/webapp/WEB-INF/Rexpert/conf/Crypto.properties @@ -0,0 +1,26 @@ +# ------------------------------------ +# define Web decrypt/encrypt - start +# editable +# ------------------------------------ +#rex.crypto.web.factory = Rexpert.DataServer.ETC.UserXecureWebCrypto +#rex.crypto.web.factory = Rexpert.DataServer.ETC.RexWebCrypto +#rex.crypto.web.decode = true +#rex.crypto.web.encode = true +#rex.crypto.web.encodeperflush = true +#rex.crypto.web.encodeperflush.separator = |!| +# ------------------------------------ +# define Web decrypt/encrypt - end +# ------------------------------------ + +# ----------------------------------------- +# define DB field decrypt/encrypt - start +# editable +# ----------------------------------------- +#rex.crypto.dbfield.encode.factory = RexService.CUserCbCrypto +#rex.crypto.dbfield.encode.field = CompanyName,City + +#rex.crypto.dbfield.decode.factory = test.testDecrypto +#rex.crypto.dbfield.decode.field = EMPLOYEE_ID,FIRST_NAME +# ----------------------------------------- +# define DB field decrypt/encrypt - end +# ----------------------------------------- diff --git a/src/main/webapp/WEB-INF/Rexpert/conf/DataConnection.properties b/src/main/webapp/WEB-INF/Rexpert/conf/DataConnection.properties new file mode 100644 index 0000000..447681f --- /dev/null +++ b/src/main/webapp/WEB-INF/Rexpert/conf/DataConnection.properties @@ -0,0 +1,56 @@ +# +#Wed Oct 08 14:42:59 KST 2008 +Count=3 +Connection1.Name=oracle1 +Connection1.SourceType=ORACLE +Connection1.DataCodePage=UTF-8 +Connection1.SplitDataSet=|@| +Connection1.SplitRow=|#| +Connection1.SplitCol=|*| +Connection1.ParameterCount=7 +Connection1.Parameter1.Name=JDBC +Connection1.Parameter1.Value= +Connection1.Parameter2.Name=Version +Connection1.Parameter2.Value=10g +Connection1.Parameter3.Name=ServerName +Connection1.Parameter3.Value=192.168.1.100 +Connection1.Parameter4.Name=PortNumber +Connection1.Parameter4.Value=1521 +Connection1.Parameter5.Name=DBName +Connection1.Parameter5.Value=orcl +Connection1.Parameter6.Name=UserName +Connection1.Parameter6.Value=geoinfo +Connection1.Parameter7.Name=Password +Connection1.Parameter7.Value=geoinfo + +Connection2.Name=JDBCtest +Connection2.SourceType=JDBC +Connection2.DataCodePage=UTF-8 +Connection2.SplitDataSet=|@| +Connection2.SplitRow=|#| +Connection2.SplitCol=|*| +Connection2.ParameterCount=4 +Connection2.Parameter1.Name=URL +Connection2.Parameter1.Value=jdbc:oracle:thin:@127.0.0.1:1521:xe +Connection2.Parameter2.Name=Driver +Connection2.Parameter2.Value=oracle.jdbc.driver.OracleDriver +Connection2.Parameter3.Name=UserName +Connection2.Parameter3.Value= +Connection2.Parameter4.Name=Password +Connection2.Parameter4.Value= + +Connection3.Name=ODBCtest +Connection3.SourceType=ODBC +Connection3.DataCodePage=UTF-8 +Connection3.SplitDataSet=|@| +Connection3.SplitRow=|#| +Connection3.SplitCol=|*| +Connection3.ParameterCount=4 +Connection3.Parameter1.Name=URL +Connection3.Parameter1.Value=jdbc:odbc:masterdb; +Connection3.Parameter2.Name=Driver +Connection3.Parameter2.Value=sun.jdbc.odbc.JdbcOdbcDriver +Connection3.Parameter3.Name=UserName +Connection3.Parameter3.Value= +Connection3.Parameter4.Name=Password +Connection3.Parameter4.Value= \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/Rexpert/conf/DataSource.properties b/src/main/webapp/WEB-INF/Rexpert/conf/DataSource.properties new file mode 100644 index 0000000..bd380f8 --- /dev/null +++ b/src/main/webapp/WEB-INF/Rexpert/conf/DataSource.properties @@ -0,0 +1,190 @@ +Count=11 +Source1.Type=SQL_Server +Source1.ClassName=Rexpert.DataServer.DataAccessors.DataAccessorForSQLServer +Source1.ParameterCount=7 +Source1.Parameter1.Name=JDBC +Source1.Parameter1.DefaultValue=a +Source1.Parameter2.Name=Version +Source1.Parameter2.DefaultValue=b +Source1.Parameter3.Name=ServerName +Source1.Parameter3.DefaultValue=c +Source1.Parameter4.Name=PortNumber +Source1.Parameter4.DefaultValue=d +Source1.Parameter5.Name=DBName +Source1.Parameter5.DefaultValue=e +Source1.Parameter6.Name=UserName +Source1.Parameter6.DefaultValue=f +Source1.Parameter7.Name=Password +Source1.Parameter7.DefaultValue=g + +Source2.Type=ORACLE +Source2.ClassName=Rexpert.DataServer.DataAccessors.DataAccessorForORACLEServer +Source2.ParameterCount=7 +Source2.Parameter1.Name=JDBC +Source2.Parameter1.DefaultValue=a +Source2.Parameter2.Name=Version +Source2.Parameter2.DefaultValue=b +Source2.Parameter3.Name=ServerName +Source2.Parameter3.DefaultValue=c +Source2.Parameter4.Name=PortNumber +Source2.Parameter4.DefaultValue=d +Source2.Parameter5.Name=DBName +Source2.Parameter5.DefaultValue=e +Source2.Parameter6.Name=UserName +Source2.Parameter6.DefaultValue=f +Source2.Parameter7.Name=Password +Source2.Parameter7.DefaultValue=g + +Source3.Type=DB2 +Source3.ClassName=Rexpert.DataServer.DataAccessors.DataAccessorForDB2Server +Source3.ParameterCount=7 +Source3.Parameter1.Name=JDBC +Source3.Parameter1.DefaultValue=a +Source3.Parameter2.Name=Version +Source3.Parameter2.DefaultValue=b +Source3.Parameter3.Name=ServerName +Source3.Parameter3.DefaultValue=c +Source3.Parameter4.Name=PortNumber +Source3.Parameter4.DefaultValue=d +Source3.Parameter5.Name=DBName +Source3.Parameter5.DefaultValue=e +Source3.Parameter6.Name=UserName +Source3.Parameter6.DefaultValue=f +Source3.Parameter7.Name=Password +Source3.Parameter7.DefaultValue=g + +Source4.Type=Sybase +Source4.ClassName=Rexpert.DataServer.DataAccessors.DataAccessorForSybase +Source4.ParameterCount=7 +Source4.Parameter1.Name=JDBC +Source4.Parameter1.DefaultValue=a +Source4.Parameter2.Name=Version +Source4.Parameter2.DefaultValue=b +Source4.Parameter3.Name=ServerName +Source4.Parameter3.DefaultValue=c +Source4.Parameter4.Name=PortNumber +Source4.Parameter4.DefaultValue=d +Source4.Parameter5.Name=DBName +Source4.Parameter5.DefaultValue=e +Source4.Parameter6.Name=UserName +Source4.Parameter6.DefaultValue=f +Source4.Parameter7.Name=Password +Source4.Parameter7.DefaultValue=g + +Source5.Type=SAP +Source5.ClassName=Rexpert.DataServer.DataAccessors.DataAccessorForSAPServer +Source5.ParameterCount=7 +Source5.Parameter1.Name=Client +Source5.Parameter1.DefaultValue=b +Source5.Parameter2.Name=Language +Source5.Parameter2.DefaultValue=c +Source5.Parameter3.Name=HostName +Source5.Parameter3.DefaultValue=d +Source5.Parameter4.Name=SystemNumber +Source5.Parameter4.DefaultValue=e +Source5.Parameter5.Name=UserName +Source5.Parameter5.DefaultValue=f +Source5.Parameter6.Name=Password +Source5.Parameter6.DefaultValue=g +Source5.Parameter7.Name=Group +Source5.Parameter7.DefaultValue=h + +Source6.Type=Tibero +Source6.ClassName=Rexpert.DataServer.DataAccessors.DataAccessorForTiberoServer +Source6.ParameterCount=7 +Source6.Parameter1.Name=JDBC +Source6.Parameter1.DefaultValue=a +Source6.Parameter2.Name=Version +Source6.Parameter2.DefaultValue=b +Source6.Parameter3.Name=ServerName +Source6.Parameter3.DefaultValue=c +Source6.Parameter4.Name=PortNumber +Source6.Parameter4.DefaultValue=d +Source6.Parameter5.Name=DBName +Source6.Parameter5.DefaultValue=e +Source6.Parameter6.Name=UserName +Source6.Parameter6.DefaultValue=f +Source6.Parameter7.Name=Password +Source6.Parameter7.DefaultValue=g + +Source7.Type=Altibase +Source7.ClassName=Rexpert.DataServer.DataAccessors.DataAccessorForAltibaseServer +Source7.ParameterCount=7 +Source7.Parameter1.Name=JDBC +Source7.Parameter1.DefaultValue=a +Source7.Parameter2.Name=Version +Source7.Parameter2.DefaultValue=b +Source7.Parameter3.Name=ServerName +Source7.Parameter3.DefaultValue=c +Source7.Parameter4.Name=PortNumber +Source7.Parameter4.DefaultValue=d +Source7.Parameter5.Name=DBName +Source7.Parameter5.DefaultValue=e +Source7.Parameter6.Name=UserName +Source7.Parameter6.DefaultValue=f +Source7.Parameter7.Name=Password +Source7.Parameter7.DefaultValue=g + +Source8.Type=SAP30 +Source8.ClassName=Rexpert.DataServer.DataAccessors.DataAccessorForSAP30Server +Source8.ParameterCount=9 +Source8.Parameter1.Name=Client +Source8.Parameter1.DefaultValue=b +Source8.Parameter2.Name=Language +Source8.Parameter2.DefaultValue=c +Source8.Parameter3.Name=HostName +Source8.Parameter3.DefaultValue=d +Source8.Parameter4.Name=SystemNumber +Source8.Parameter4.DefaultValue=e +Source8.Parameter5.Name=UserName +Source8.Parameter5.DefaultValue=f +Source8.Parameter6.Name=Password +Source8.Parameter6.DefaultValue=g +Source8.Parameter7.Name=Group +Source8.Parameter7.DefaultValue=h +Source8.Parameter8.Name=Destination +Source8.Parameter8.DefaultValue=i +Source8.Parameter9.Name=GatewayHost +Source8.Parameter9.DefaultValue=j + +Source9.Type=MySQL +Source9.ClassName=Rexpert.DataServer.DataAccessors.DataAccessorForMySQLServer +Source9.ParameterCount=7 +Source9.Parameter1.Name=JDBC +Source9.Parameter1.DefaultValue=a +Source9.Parameter2.Name=Version +Source9.Parameter2.DefaultValue=b +Source9.Parameter3.Name=ServerName +Source9.Parameter3.DefaultValue=c +Source9.Parameter4.Name=PortNumber +Source9.Parameter4.DefaultValue=d +Source9.Parameter5.Name=DBName +Source9.Parameter5.DefaultValue=e +Source9.Parameter6.Name=UserName +Source9.Parameter6.DefaultValue=f +Source9.Parameter7.Name=Password +Source9.Parameter7.DefaultValue=g + +Source10.Type=JDBC +Source10.ClassName=Rexpert.DataServer.DataAccessors.DataAccessorForJDBCServer +Source10.ParameterCount=4 +Source10.Parameter1.Name=URL +Source10.Parameter1.DefaultValue=a +Source10.Parameter2.Name=Driver +Source10.Parameter2.DefaultValue=b +Source10.Parameter3.Name=UserName +Source10.Parameter3.DefaultValue=c +Source10.Parameter4.Name=Password +Source10.Parameter4.DefaultValue=d + +Source11.Type=ODBC +Source11.ClassName=Rexpert.DataServer.DataAccessors.DataAccessorForODBCServer +Source11.ParameterCount=3 +Source11.Parameter1.Name=URL +Source11.Parameter1.DefaultValue=a +Source11.Parameter2.Name=Driver +Source11.Parameter2.DefaultValue=b +Source11.Parameter3.Name=UserName +Source11.Parameter3.DefaultValue=c +Source11.Parameter4.Name=Password +Source11.Parameter4.DefaultValue=d diff --git a/src/main/webapp/WEB-INF/Rexpert/conf/License.properties b/src/main/webapp/WEB-INF/Rexpert/conf/License.properties new file mode 100644 index 0000000..cea762c --- /dev/null +++ b/src/main/webapp/WEB-INF/Rexpert/conf/License.properties @@ -0,0 +1 @@ +9M7bzQ9fAptU+V3gJZ0nwQfqWFcSYl0gFcqnIVipuzn/34S+bqw/PPeydprV48MGJ+CP4QP2J7e+2pEeOX+ZLloE03/qsJK8hOLz5C0xrZpEhXcKXvrJI06AyXX6gk7C4FsLH+5QvWy3aMMUXlIgZgUEF/nSRm1Iw/7A9pimTBwyDENoBmV3G7AghC1cToHdGLrNTIJejEtXuINAjewUSTVDjFITnduwW5CwPpLOtxgekyqJa9qW1hpf+pycYCkhGDYXzC3G+hsbIlobeLKLxw== \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/Rexpert/conf/RexDataServer.properties b/src/main/webapp/WEB-INF/Rexpert/conf/RexDataServer.properties new file mode 100644 index 0000000..d045e78 --- /dev/null +++ b/src/main/webapp/WEB-INF/Rexpert/conf/RexDataServer.properties @@ -0,0 +1,10 @@ +# +#Wed Oct 08 14:31:45 KST 2008 +LogPath=C:\\Temp\\RexServer30\\Log +ManagerPassword=rexpert +LogType=ForEachDay +Version=1.0.0.312 +ServerCodePage=UTF-8 +ClientCodePage=UTF-8 +IsCrypto=false +IsDBPropsCrypto=false \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/classes/SOIL/SOIL_ADD/vssver.scc b/src/main/webapp/WEB-INF/classes/SOIL/SOIL_ADD/vssver.scc new file mode 100644 index 0000000..e14aaea Binary files /dev/null and b/src/main/webapp/WEB-INF/classes/SOIL/SOIL_ADD/vssver.scc differ diff --git a/src/main/webapp/WEB-INF/classes/business/ST/vssver.scc b/src/main/webapp/WEB-INF/classes/business/ST/vssver.scc new file mode 100644 index 0000000..cdc82ed Binary files /dev/null and b/src/main/webapp/WEB-INF/classes/business/ST/vssver.scc differ diff --git a/src/main/webapp/WEB-INF/classes/com/zipcode/Zipcode.java b/src/main/webapp/WEB-INF/classes/com/zipcode/Zipcode.java new file mode 100644 index 0000000..88e4ca3 --- /dev/null +++ b/src/main/webapp/WEB-INF/classes/com/zipcode/Zipcode.java @@ -0,0 +1,110 @@ +package com.zipcode ; + +public class Zipcode{ + + private String seq=""; + private String zipcode=""; + private String sido=""; + private String gugun=""; + private String dong=""; + private String ri=""; + private String bldg=""; + private String st_bunji=""; + private String ed_bunji=""; + private String bunji=""; + private String all_juso=""; + + public Zipcode(){ + } + + public void setSeq(String seq){ + this.seq=Str_null_chk(seq); + } + public String getSeq(){ + return seq; + } + + public void setZipcode(String zipcode){ + this.zipcode=Str_null_chk(zipcode); + } + public String getZipcode(){ + return zipcode; + } + + public void setSido(String sido){ + this.sido=Str_null_chk(sido); + } + public String getSido(){ + return sido; + } + + public void setGugun(String gugun){ + this.gugun=Str_null_chk(gugun); + } + public String getGugun(){ + return gugun; + } + + public void setDong(String dong){ + this.dong=Str_null_chk(dong); + } + public String getDong(){ + return dong; + } + + public void setRi(String ri){ + this.ri=Str_null_chk(ri); + } + public String getRi(){ + return ri; + } + + public void setBldg(String bldg){ + this.bldg=Str_null_chk(bldg); + } + public String getBldg(){ + return bldg; + } + + public void setEd_bunji(String ed_bunji){ + this.ed_bunji=Str_null_chk(ed_bunji); + } + public String getEd_bunji(){ + return ed_bunji; + } + + public void setSt_bunji(String st_bunji){ + this.st_bunji=Str_null_chk(st_bunji); + } + public String getSt_bunji(){ + return st_bunji; + } + + public String getBunji(){ + bunji=st_bunji+"-"+ed_bunji; + return bunji; + } + + public String getAll_juso(){ + + if (((st_bunji==null)||(st_bunji.equals("")))&&((ed_bunji==null)||(ed_bunji.equals("")))){ + all_juso=sido+" "+gugun+" "+dong+" "+ri+" "+bldg; + }else if((st_bunji!=null)&&(ed_bunji==null)){ + all_juso=sido+" "+gugun+" "+dong+" "+ri+" "+st_bunji+" "+bldg; + }else{ + all_juso=sido+" "+gugun+" "+dong+" "+ri+" "+st_bunji+"~"+ed_bunji+" "+bldg; + } + + return all_juso; + } + + + public String Str_null_chk(String str){ + if(str==null){ + return ""; + }else{ + return str; + } + + } +} diff --git a/src/main/webapp/WEB-INF/classes/com/zipcode/Zipcode_NewAddr.java b/src/main/webapp/WEB-INF/classes/com/zipcode/Zipcode_NewAddr.java new file mode 100644 index 0000000..ae08a47 --- /dev/null +++ b/src/main/webapp/WEB-INF/classes/com/zipcode/Zipcode_NewAddr.java @@ -0,0 +1,155 @@ +package com.zipcode ; + +public class Zipcode_NewAddr{ + + private int seq=0; + private String zipcode=""; + private String sido=""; + private String gugun=""; + private String dong=""; + private String ri=""; + private String gugun_bldg="";//ǹ + private String bldg_main_no="";//ǹ + private String bldg_sub_no="";//ǹ ι + private String bldg_sno="";//ǹ ι + private String doro="";//θ + private String main_bunji="";// + private String sub_bunji="";// ι + private String beo_name=""; + private String all_juso=""; + private String new_juso=""; + + + public Zipcode_NewAddr(){ + } + + public void setSeq(int seq){ + this.seq=seq; + } + public int getSeq(){ + return seq; + } + + public void setBeo_name(String beo_name){ + this.beo_name=Str_null_chk(beo_name); + } + public String getBeo_name(){ + return beo_name; + } + + public void setBldg_main_no(String bldg_main_no){ + this.bldg_main_no=Str_null_chk(bldg_main_no); + } + public String getBldg_main_no(){ + return bldg_main_no; + } + + public void setBldg_sub_no(String bldg_sub_no){ + this.bldg_sub_no=Str_null_chk(bldg_sub_no); + } + public String getBldg_sub_no(){ + return bldg_sub_no; + } + + public void setZipcode(String zipcode){ + this.zipcode=Str_null_chk(zipcode); + } + public String getZipcode(){ + return zipcode; + } + + public void setSido(String sido){ + this.sido=Str_null_chk(sido); + } + public String getSido(){ + return sido; + } + + public void setGugun(String gugun){ + this.gugun=Str_null_chk(gugun); + } + public String getGugun(){ + return gugun; + } + + public void setDong(String dong){ + this.dong=Str_null_chk(dong); + } + public String getDong(){ + return dong; + } + + public void setRi(String ri){ + this.ri=Str_null_chk(ri); + } + public String getRi(){ + return ri; + } + + public void setBldg_sno(String bldg_sno){ + this.bldg_sno=Str_null_chk(bldg_sno); + } + public String getBldg_sno(){ + return bldg_sno; + } + + public void setGugun_bldg(String gugun_bldg){ + this.gugun_bldg=Str_null_chk(gugun_bldg); + } + public String getGugun_bldg(){ + return gugun_bldg; + } + + public void setMain_bunji(String main_bunji){ + this.main_bunji=Str_null_chk(main_bunji); + } + public String getMain_bunji(){ + return main_bunji; + } + public void setSub_bunji(String sub_bunji){ + this.sub_bunji=Str_null_chk(sub_bunji); + } + public String getSub_bunji(){ + return sub_bunji; + } + + public void setDoro(String doro){ + this.doro=Str_null_chk(doro); + } + public String getDoro(){ + return doro; + } + + public String getNew_juso(){ + + if ((bldg_main_no.equals(""))&&(bldg_sub_no.equals(""))){ + new_juso=sido+" "+gugun+" "+doro+" ("+beo_name+") "+gugun_bldg; + }else if(!bldg_main_no.equals("")&&bldg_sub_no.equals("")){ + new_juso=sido+" "+gugun+" "+doro+" "+bldg_main_no+" ("+beo_name+") "+gugun_bldg; + }else{ + new_juso=sido+" "+gugun+" "+doro+" "+bldg_main_no+" "+bldg_sub_no+" ("+beo_name+") "+gugun_bldg; + } + return new_juso; + } + public String Str_null_chk(String str){ + if(str==null){ + return ""; + }else{ + return str; + } + + } + public String getAll_juso(){ + + if ((main_bunji.equals(""))&&(sub_bunji.equals(""))){ + all_juso=sido+" "+gugun+" "+beo_name+" "+ri+" "+gugun_bldg; + }else if(!main_bunji.equals("")&&sub_bunji.equals("")){ + all_juso=sido+" "+gugun+" "+beo_name+" "+ri+" "+main_bunji+" "+gugun_bldg; + }else{ + all_juso=sido+" "+gugun+" "+beo_name+" "+ri+" "+main_bunji+"-"+sub_bunji+" "+gugun_bldg; + } + + return all_juso; + } + +} diff --git a/src/main/webapp/WEB-INF/classes/com/zipcode/Zipcode_Service.java b/src/main/webapp/WEB-INF/classes/com/zipcode/Zipcode_Service.java new file mode 100644 index 0000000..90ea8bf --- /dev/null +++ b/src/main/webapp/WEB-INF/classes/com/zipcode/Zipcode_Service.java @@ -0,0 +1,290 @@ +package com.zipcode; + +import java.util.*; +import comm.framework.dbcp.*; +import java.io.*; +import java.sql.*; +import com.zipcode.*;//Zipcode Zipcode_NewAddr + +public class Zipcode_Service { + + private DatabaseQuery query = null; + private Statement stmt = null; + private ResultSet rs = null; + private Connection conn = null; + private String sql = null; + + public Zipcode_Service() { + // conn= DBcon(); + + } + + public Connection DBcon() { + try { + ConnectionPool connectionPool = new ConnectionPool(); + conn = connectionPool.getConnection(); + + } catch (Exception e) { + //System.out.println("DBcon Error message : " + e.getMessage()); + } + return conn; + } + + //���� �����ȣ�˻� ����(���������� �����) + public ArrayList juso_Select_List(String dong) { + /* + * private int seq; private String zipcode; private String sido; private String gugun; private String dong; private String ri; private String bldg; private String st_bunji; + * private String end_bunji; + */ + + ArrayList lzc = new ArrayList(); + Zipcode zc = null; + sql = "SELECT * FROM WEB_ZIPCODE WHERE dong like '%" + dong + "%' or ri like '%" + dong + "%' or bldg like '%" + dong + "%'"; + try { + conn = DBcon(); + + stmt = conn.createStatement(); + rs = stmt.executeQuery(sql); + //System.out.println("juso_Select_List sql===>"+sql); + + while (rs.next()) { + zc = new Zipcode(); + zc.setSeq(rs.getString("seq")); + zc.setZipcode(rs.getString("zipcode")); + zc.setSido(rs.getString("sido")); + zc.setGugun(rs.getString("gugun")); + zc.setDong(rs.getString("dong")); + zc.setRi(rs.getString("ri")); + zc.setBldg(rs.getString("bldg")); + zc.setSt_bunji(rs.getString("st_bunji")); + zc.setEd_bunji(rs.getString("ed_bunji")); + lzc.add(zc); + } + + } catch (Exception e) { + //System.out.println("juso_Select_List Error message : " + e.getMessage()); + } finally { + if (rs != null) { + try { + rs.close(); + } catch (Exception e) { + //System.out.println("juso_Select_List rs Error message : " + e.getMessage()); + } + } + if (stmt != null) { + try { + stmt.close(); + } catch (Exception e) { + //System.out.println("juso_Select_List stmt Error message : " + e.getMessage()); + } + } + if (conn != null) { + try { + conn.close(); + } catch (Exception e) { + //System.out.println("newJuso_Select_List stmt Error message : " + e.getMessage()); + } + } + return lzc; + } + + } + + //�����ȣ�� �´� ���ּ� ����Ʈ ������� + public ArrayList newJuso_Select_List(String chk, String str) { + /* + * private int seq; private String zipcode; private String sido; private String gugun; private String dong; private String ri; private String bldg;//�ǹ��� private String + * bldg_no;//�ǹ���ȣ private String doro;//���θ� private String main_bunji;//����� private String sub_bunji;//���� �ι� + */ + + ArrayList lzcn = new ArrayList(); + Zipcode_NewAddr zcn = null; + sql = "SELECT zipcode, sido, gugun, ri, beo_name,doro,bldg_main_no, bldg_sub_no, main_bunji,sub_bunji,seq,gugun_bldg,dong FROM WEB_NEW_ZIP WHERE zipcode ='" + str + "'"; + String sql2 = "SELECT zipcode, sido, gugun, beo_name, ri, doro,bldg_main_no, bldg_sub_no, main_bunji,sub_bunji,seq,gugun_bldg,dong FROM WEB_NEW_ZIP WHERE doro like '%" + + str + "%' or beo_name like '%" + str + "%' or gugun_bldg like '%" + str + "%' or ri like '%" + str + "%' or dong like '%" + str + "%'"; + try { + conn = DBcon(); + + stmt = conn.createStatement(); + if (chk.equals("doro")) { + rs = stmt.executeQuery(sql2); + //System.out.println("newJuso_Select_List sql2===>"+sql2); + } else if (chk.equals("zipcode")) { + rs = stmt.executeQuery(sql); + //System.out.println("newJuso_Select_List sql===>"+sql); + } + + while (rs.next()) { + zcn = new Zipcode_NewAddr(); + zcn.setZipcode(rs.getString("zipcode")); + zcn.setSido(rs.getString("sido")); + zcn.setGugun(rs.getString("gugun")); + zcn.setBeo_name(rs.getString("beo_name")); + zcn.setRi(rs.getString("ri")); + zcn.setDong(rs.getString("dong")); + zcn.setBldg_main_no(rs.getString("bldg_main_no")); + zcn.setBldg_sub_no(rs.getString("bldg_sub_no")); + zcn.setGugun_bldg(rs.getString("gugun_bldg")); + zcn.setDoro(rs.getString("doro")); + zcn.setMain_bunji(rs.getString("main_bunji")); + zcn.setSub_bunji(rs.getString("sub_bunji")); + lzcn.add(zcn); + } + + } catch (Exception e) { + //System.out.println("newJuso_Select_List Error message : " + e.getMessage()); + } finally { + if (rs != null) { + try { + rs.close(); + } catch (Exception e) { + //System.out.println("newJuso_Select_List rs Error message : " + e.getMessage()); + } + } + if (stmt != null) { + try { + stmt.close(); + } catch (Exception e) { + //System.out.println("newJuso_Select_List stmt Error message : " + e.getMessage()); + } + } + if (conn != null) { + try { + conn.close(); + } catch (Exception e) { + //System.out.println("newJuso_Select_List stmt Error message : " + e.getMessage()); + } + } + return lzcn; + } + + } + + //�����ȣ�� �´� ���ּ� ����Ʈ ������� + public ArrayList newJuso_Select_List(String chk, String str, String sidoname) { + /* + * private int seq; private String zipcode; private String sido; private String gugun; private String dong; private String ri; private String bldg;//�ǹ��� private String + * bldg_no;//�ǹ���ȣ private String doro;//���θ� private String main_bunji;//����� private String sub_bunji;//���� �ι� + */ + + ArrayList lzcn = new ArrayList(); + Zipcode_NewAddr zcn = null; + sql = "SELECT zipcode, sido, gugun, ri, beo_name,doro,bldg_main_no, bldg_sub_no, main_bunji,sub_bunji,seq,gugun_bldg,dong FROM WEB_NEW_ZIP WHERE zipcode ='" + str + + "' order by zipcode "; + // String sql2="SELECT zipcode, sido, gugun, beo_name, ri, doro,bldg_main_no, bldg_sub_no, main_bunji,sub_bunji,seq,gugun_bldg,dong FROM WEB_NEW_ZIP WHERE sido='"+sidoname+"' and (doro='"+str+"' or gugun_bldg='"+str+"')"; + // String sql2="SELECT zipcode, sido, gugun, beo_name, ri, doro,bldg_main_no, bldg_sub_no, main_bunji,sub_bunji,seq,gugun_bldg,dong FROM WEB_NEW_ZIP WHERE sido='"+sidoname+"' and ( doro like '"+str+"%' or gugun_bldg like '"+str+"%') order by zipcode" ; + String sql2 = "SELECT zipcode, sido, gugun, beo_name, ri, doro,bldg_main_no, bldg_sub_no, main_bunji,sub_bunji,seq,gugun_bldg,dong FROM WEB_NEW_ZIP WHERE sido='" + sidoname + + "' and ( doro like '" + str + "%') order by zipcode"; + //System.out.println("newJuso_Select_List sql2===>" + sql2); + try { + conn = DBcon(); + + stmt = conn.createStatement(); + if (chk.equals("doro")) { + rs = stmt.executeQuery(sql2); + //System.out.println("newJuso_Select_List sql2===>" + sql2); + } else if (chk.equals("zipcode")) { + rs = stmt.executeQuery(sql); + //System.out.println("newJuso_Select_List sql===>"+sql); + } + + while (rs.next()) { + zcn = new Zipcode_NewAddr(); + zcn.setZipcode(rs.getString("zipcode")); + zcn.setSido(rs.getString("sido")); + zcn.setGugun(rs.getString("gugun")); + zcn.setBeo_name(rs.getString("beo_name")); + zcn.setRi(rs.getString("ri")); + zcn.setDong(rs.getString("dong")); + zcn.setBldg_main_no(rs.getString("bldg_main_no")); + zcn.setBldg_sub_no(rs.getString("bldg_sub_no")); + zcn.setGugun_bldg(rs.getString("gugun_bldg")); + zcn.setDoro(rs.getString("doro")); + zcn.setMain_bunji(rs.getString("main_bunji")); + zcn.setSub_bunji(rs.getString("sub_bunji")); + lzcn.add(zcn); + } + + } catch (Exception e) { + //System.out.println("newJuso_Select_List Error message : " + e.getMessage()); + } finally { + if (rs != null) { + try { + rs.close(); + } catch (Exception e) { + //System.out.println("newJuso_Select_List rs Error message : " + e.getMessage()); + } + } + if (stmt != null) { + try { + stmt.close(); + } catch (Exception e) { + //System.out.println("newJuso_Select_List stmt Error message : " + e.getMessage()); + } + } + if (conn != null) { + try { + conn.close(); + } catch (Exception e) { + //System.out.println("newJuso_Select_List stmt Error message : " + e.getMessage()); + } + } + return lzcn; + } + + } + + //�����ּҸ���Ʈ���� �ּ� ������ ���ּҷ� ��ȯ + public Zipcode_NewAddr old_to_newJuso_Select(int seq) { + + Zipcode_NewAddr zcn = new Zipcode_NewAddr(); + sql = "SELECT * FROM WEB_NEW_ZIP WHERE seq =" + seq; + + try { + conn = DBcon(); + stmt = conn.createStatement(); + rs = stmt.executeQuery(sql); + zcn = new Zipcode_NewAddr(); + + if (rs.next()) { + zcn.setSeq(rs.getInt("seq")); + zcn.setZipcode(rs.getString("zipcode")); + zcn.setSido(rs.getString("sido")); + zcn.setGugun(rs.getString("gugun")); + zcn.setDong(rs.getString("dong")); + zcn.setRi(rs.getString("ri")); + zcn.setBldg_sno(rs.getString("bldg_sno")); + zcn.setDoro(rs.getString("doro")); + zcn.setMain_bunji(rs.getString("main_bunji")); + zcn.setSub_bunji(rs.getString("sub_bunji")); + } + + } catch (Exception e) { + //System.out.println("old_to_newJuso_Select Error message : " + e.getMessage()); + } finally { + if (rs != null) { + try { + rs.close(); + } catch (Exception e) { + //System.out.println("old_to_newJuso_Select rs Error message : " + e.getMessage()); + } + } + if (stmt != null) { + try { + stmt.close(); + } catch (Exception e) { + //System.out.println("old_to_newJuso_Select stmt Error message : " + e.getMessage()); + } + } + if (conn != null) { + try { + conn.close(); + } catch (Exception e) { + //System.out.println("newJuso_Select_List stmt Error message : " + e.getMessage()); + } + } + return zcn; + } + } + +} diff --git a/src/main/webapp/WEB-INF/classes/comm/framework/property/GeoinfoProperties.class_bak b/src/main/webapp/WEB-INF/classes/comm/framework/property/GeoinfoProperties.class_bak new file mode 100644 index 0000000..aab014e Binary files /dev/null and b/src/main/webapp/WEB-INF/classes/comm/framework/property/GeoinfoProperties.class_bak differ diff --git a/src/main/webapp/WEB-INF/classes/nad/epsg b/src/main/webapp/WEB-INF/classes/nad/epsg new file mode 100644 index 0000000..e9ec8f2 --- /dev/null +++ b/src/main/webapp/WEB-INF/classes/nad/epsg @@ -0,0 +1,6444 @@ +# google worldwide official code +<3785> +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs <> +# Unknown datum based upon the Airy 1830 ellipsoid +<4001> +proj=longlat +ellps=airy +no_defs <> +# Unknown datum based upon the Airy Modified 1849 ellipsoid +<4002> +proj=longlat +a=6377340.189 +b=6356034.447938534 +no_defs <> +# Unknown datum based upon the Australian National Spheroid +<4003> +proj=longlat +ellps=aust_SA +no_defs <> +# Unknown datum based upon the Bessel 1841 ellipsoid +<4004> +proj=longlat +ellps=bessel +no_defs <> +# Unknown datum based upon the Bessel Modified ellipsoid +<4005> +proj=longlat +a=6377492.018 +b=6356173.508712696 +no_defs <> +# Unknown datum based upon the Bessel Namibia ellipsoid +<4006> +proj=longlat +ellps=bess_nam +no_defs <> +# Unknown datum based upon the Clarke 1858 ellipsoid +<4007> +proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs <> +# Unknown datum based upon the Clarke 1866 ellipsoid +<4008> +proj=longlat +ellps=clrk66 +no_defs <> +# Unknown datum based upon the Clarke 1866 Michigan ellipsoid +<4009> +proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defs <> +# Unknown datum based upon the Clarke 1880 (Benoit) ellipsoid +<4010> +proj=longlat +a=6378300.789 +b=6356566.435 +no_defs <> +# Unknown datum based upon the Clarke 1880 (IGN) ellipsoid +<4011> +proj=longlat +a=6378249.2 +b=6356515 +no_defs <> +# Unknown datum based upon the Clarke 1880 (RGS) ellipsoid +<4012> +proj=longlat +ellps=clrk80 +no_defs <> +# Unknown datum based upon the Clarke 1880 (Arc) ellipsoid +<4013> +proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defs <> +# Unknown datum based upon the Clarke 1880 (SGA 1922) ellipsoid +<4014> +proj=longlat +a=6378249.2 +b=6356514.996941779 +no_defs <> +# Unknown datum based upon the Everest 1830 (1937 Adjustment) ellipsoid +<4015> +proj=longlat +a=6377276.345 +b=6356075.413140239 +no_defs <> +# Unknown datum based upon the Everest 1830 (1967 Definition) ellipsoid +<4016> +proj=longlat +ellps=evrstSS +no_defs <> +# Unknown datum based upon the Everest 1830 Modified ellipsoid +<4018> +proj=longlat +a=6377304.063 +b=6356103.038993155 +no_defs <> +# Unknown datum based upon the GRS 1980 ellipsoid +<4019> +proj=longlat +ellps=GRS80 +no_defs <> +# Unknown datum based upon the Helmert 1906 ellipsoid +<4020> +proj=longlat +ellps=helmert +no_defs <> +# Unknown datum based upon the Indonesian National Spheroid +<4021> +proj=longlat +a=6378160 +b=6356774.50408554 +no_defs <> +# Unknown datum based upon the International 1924 ellipsoid +<4022> +proj=longlat +ellps=intl +no_defs <> +# Unknown datum based upon the Krassowsky 1940 ellipsoid +<4024> +proj=longlat +ellps=krass +no_defs <> +# Unknown datum based upon the NWL 9D ellipsoid +<4025> +proj=longlat +ellps=WGS66 +no_defs <> +# Unknown datum based upon the Plessis 1817 ellipsoid +<4027> +proj=longlat +a=6376523 +b=6355862.933255573 +no_defs <> +# Unknown datum based upon the Struve 1860 ellipsoid +<4028> +proj=longlat +a=6378298.3 +b=6356657.142669562 +no_defs <> +# Unknown datum based upon the War Office ellipsoid +<4029> +proj=longlat +a=6378300 +b=6356751.689189189 +no_defs <> +# Unknown datum based upon the WGS 84 ellipsoid +<4030> +proj=longlat +ellps=WGS84 +no_defs <> +# Unknown datum based upon the GEM 10C ellipsoid +<4031> +proj=longlat +ellps=WGS84 +no_defs <> +# Unknown datum based upon the OSU86F ellipsoid +<4032> +proj=longlat +a=6378136.2 +b=6356751.516927429 +no_defs <> +# Unknown datum based upon the OSU91A ellipsoid +<4033> +proj=longlat +a=6378136.3 +b=6356751.616592146 +no_defs <> +# Unknown datum based upon the Clarke 1880 ellipsoid +<4034> +proj=longlat +ellps=clrk80 +no_defs <> +# Unknown datum based upon the Authalic Sphere +<4035> +proj=longlat +a=6371000 +b=6371000 +no_defs <> +# Unknown datum based upon the GRS 1967 ellipsoid +<4036> +proj=longlat +ellps=GRS67 +no_defs <> +# Unknown datum based upon the Average Terrestrial System 1977 ellipsoid +<4041> +proj=longlat +a=6378135 +b=6356750.304921594 +no_defs <> +# Unknown datum based upon the Everest (1830 Definition) ellipsoid +<4042> +proj=longlat +a=6377299.36559538 +b=6356098.357204817 +no_defs <> +# Unknown datum based upon the WGS 72 ellipsoid +<4043> +proj=longlat +ellps=WGS72 +no_defs <> +# Unknown datum based upon the Everest 1830 (1962 Definition) ellipsoid +<4044> +proj=longlat +a=6377301.243 +b=6356100.230165385 +no_defs <> +# Unknown datum based upon the Everest 1830 (1975 Definition) ellipsoid +<4045> +proj=longlat +a=6377299.151 +b=6356098.145120132 +no_defs <> +# Unspecified datum based upon the GRS 1980 Authalic Sphere +<4047> +proj=longlat +a=6371007 +b=6371007 +no_defs <> +# Unspecified datum based upon the Clarke 1866 Authalic Sphere +<4052> +proj=longlat +a=6370997 +b=6370997 +no_defs <> +# Greek +<4120> +proj=longlat +ellps=bessel +no_defs <> +# GGRS87 +<4121> +proj=longlat +ellps=GRS80 +towgs84=-199.87,74.79,246.62,0,0,0,0 +no_defs <> +# ATS77 +<4122> +proj=longlat +a=6378135 +b=6356750.304921594 +no_defs <> +# KKJ +<4123> +proj=longlat +ellps=intl +no_defs <> +# RT90 +<4124> +proj=longlat +ellps=bessel +no_defs <> +# Samboja +<4125> +proj=longlat +ellps=bessel +towgs84=-404.78,685.68,45.47,0,0,0,0 +no_defs <> +# LKS94 (ETRS89) +<4126> +proj=longlat +ellps=GRS80 +no_defs <> +# Tete +<4127> +proj=longlat +ellps=clrk66 +no_defs <> +# Madzansua +<4128> +proj=longlat +ellps=clrk66 +no_defs <> +# Observatario +<4129> +proj=longlat +ellps=clrk66 +no_defs <> +# Moznet +<4130> +proj=longlat +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +no_defs <> +# Indian 1960 +<4131> +proj=longlat +a=6377276.345 +b=6356075.413140239 +no_defs <> +# FD58 +<4132> +proj=longlat +ellps=clrk80 +no_defs <> +# EST92 +<4133> +proj=longlat +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014 +no_defs <> +# PDO Survey Datum 1993 +<4134> +proj=longlat +ellps=clrk80 +no_defs <> +# Old Hawaiian +<4135> +proj=longlat +ellps=clrk66 +no_defs <> +# St. Lawrence Island +<4136> +proj=longlat +ellps=clrk66 +no_defs <> +# St. Paul Island +<4137> +proj=longlat +ellps=clrk66 +no_defs <> +# St. George Island +<4138> +proj=longlat +ellps=clrk66 +no_defs <> +# Puerto Rico +<4139> +proj=longlat +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +no_defs <> +# NAD83(CSRS98) +<4140> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# Israel +<4141> +proj=longlat +ellps=GRS80 +towgs84=-48,55,52,0,0,0,0 +no_defs <> +# Locodjo 1965 +<4142> +proj=longlat +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +no_defs <> +# Abidjan 1987 +<4143> +proj=longlat +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +no_defs <> +# Kalianpur 1937 +<4144> +proj=longlat +a=6377276.345 +b=6356075.413140239 +no_defs <> +# Kalianpur 1962 +<4145> +proj=longlat +a=6377301.243 +b=6356100.230165385 +no_defs <> +# Kalianpur 1975 +<4146> +proj=longlat +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +no_defs <> +# Hanoi 1972 +<4147> +proj=longlat +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +no_defs <> +# Hartebeesthoek94 +<4148> +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# CH1903 +<4149> +proj=longlat +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +no_defs <> +# CH1903+ +<4150> +proj=longlat +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +no_defs <> +# CHTRF95 +<4151> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# NAD83(HARN) +<4152> +proj=longlat +ellps=GRS80 +no_defs <> +# Rassadiran +<4153> +proj=longlat +ellps=intl +towgs84=-133.63,-157.5,-158.62,0,0,0,0 +no_defs <> +# ED50(ED77) +<4154> +proj=longlat +ellps=intl +no_defs <> +# Dabola 1981 +<4155> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-83,37,124,0,0,0,0 +no_defs <> +# S-JTSK +<4156> +proj=longlat +ellps=bessel +no_defs <> +# Mount Dillon +<4157> +proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs <> +# Naparima 1955 +<4158> +proj=longlat +ellps=intl +no_defs <> +# ELD79 +<4159> +proj=longlat +ellps=intl +no_defs <> +# Chos Malal 1914 +<4160> +proj=longlat +ellps=intl +no_defs <> +# Pampa del Castillo +<4161> +proj=longlat +ellps=intl +towgs84=27.5,14,186.4,0,0,0,0 +no_defs <> +# Korean 1985 +<4162> +proj=longlat +ellps=bessel +no_defs <> +# Yemen NGN96 +<4163> +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# South Yemen +<4164> +proj=longlat +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +no_defs <> +# Bissau +<4165> +proj=longlat +ellps=intl +towgs84=-173,253,27,0,0,0,0 +no_defs <> +# Korean 1995 +<4166> +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# NZGD2000 +<4167> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# Accra +<4168> +proj=longlat +a=6378300 +b=6356751.689189189 +towgs84=-199,32,322,0,0,0,0 +no_defs <> +# American Samoa 1962 +<4169> +proj=longlat +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +no_defs <> +# SIRGAS +<4170> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# RGF93 +<4171> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# POSGAR +<4172> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# IRENET95 +<4173> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# Sierra Leone 1924 +<4174> +proj=longlat +a=6378300 +b=6356751.689189189 +no_defs <> +# Sierra Leone 1968 +<4175> +proj=longlat +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +no_defs <> +# Australian Antarctic +<4176> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# Pulkovo 1942(83) +<4178> +proj=longlat +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +no_defs <> +# Pulkovo 1942(58) +<4179> +proj=longlat +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +no_defs <> +# EST97 +<4180> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# Luxembourg 1930 +<4181> +proj=longlat +ellps=intl +towgs84=-193,13.7,-39.3,-0.41,-2.933,2.688,0.43 +no_defs <> +# Azores Occidental 1939 +<4182> +proj=longlat +ellps=intl +no_defs <> +# Azores Central 1948 +<4183> +proj=longlat +ellps=intl +towgs84=-104,167,-38,0,0,0,0 +no_defs <> +# Azores Oriental 1940 +<4184> +proj=longlat +ellps=intl +towgs84=-203,141,53,0,0,0,0 +no_defs <> +# Madeira 1936 +<4185> +proj=longlat +ellps=intl +no_defs <> +# OSNI 1952 +<4188> +proj=longlat +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15 +no_defs <> +# REGVEN +<4189> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# POSGAR 98 +<4190> +proj=longlat +ellps=GRS80 +no_defs <> +# Albanian 1987 +<4191> +proj=longlat +ellps=krass +no_defs <> +# Douala 1948 +<4192> +proj=longlat +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0,0,0 +no_defs <> +# Manoca 1962 +<4193> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +no_defs <> +# Qornoq 1927 +<4194> +proj=longlat +ellps=intl +no_defs <> +# Scoresbysund 1952 +<4195> +proj=longlat +ellps=intl +towgs84=105,326,-102.5,0,0,0.814,-0.6 +no_defs <> +# Ammassalik 1958 +<4196> +proj=longlat +ellps=intl +towgs84=-45,417,-3.5,0,0,0.814,-0.6 +no_defs <> +# Garoua +<4197> +proj=longlat +ellps=clrk80 +no_defs <> +# Kousseri +<4198> +proj=longlat +ellps=clrk80 +no_defs <> +# Egypt 1930 +<4199> +proj=longlat +ellps=intl +no_defs <> +# Pulkovo 1995 +<4200> +proj=longlat +ellps=krass +no_defs <> +# Adindan +<4201> +proj=longlat +ellps=clrk80 +no_defs <> +# AGD66 +<4202> +proj=longlat +ellps=aust_SA +no_defs <> +# AGD84 +<4203> +proj=longlat +ellps=aust_SA +no_defs <> +# Ain el Abd +<4204> +proj=longlat +ellps=intl +no_defs <> +# Afgooye +<4205> +proj=longlat +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +no_defs <> +# Agadez +<4206> +proj=longlat +a=6378249.2 +b=6356515 +no_defs <> +# Lisbon +<4207> +proj=longlat +ellps=intl +no_defs <> +# Aratu +<4208> +proj=longlat +ellps=intl +no_defs <> +# Arc 1950 +<4209> +proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defs <> +# Arc 1960 +<4210> +proj=longlat +ellps=clrk80 +no_defs <> +# Batavia +<4211> +proj=longlat +ellps=bessel +no_defs <> +# Barbados 1938 +<4212> +proj=longlat +ellps=clrk80 +towgs84=31.95,300.99,419.19,0,0,0,0 +no_defs <> +# Beduaram +<4213> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-106,-87,188,0,0,0,0 +no_defs <> +# Beijing 1954 +<4214> +proj=longlat +ellps=krass +no_defs <> +# Belge 1950 +<4215> +proj=longlat +ellps=intl +no_defs <> +# Bermuda 1957 +<4216> +proj=longlat +ellps=clrk66 +towgs84=-73,213,296,0,0,0,0 +no_defs <> +# Bogota 1975 +<4218> +proj=longlat +ellps=intl +towgs84=307,304,-318,0,0,0,0 +no_defs <> +# Bukit Rimpah +<4219> +proj=longlat +ellps=bessel +towgs84=-384,664,-48,0,0,0,0 +no_defs <> +# Camacupa +<4220> +proj=longlat +ellps=clrk80 +no_defs <> +# Campo Inchauspe +<4221> +proj=longlat +ellps=intl +no_defs <> +# Cape +<4222> +proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defs <> +# Carthage +<4223> +proj=longlat +a=6378249.2 +b=6356515 +no_defs <> +# Chua +<4224> +proj=longlat +ellps=intl +towgs84=-134,229,-29,0,0,0,0 +no_defs <> +# Corrego Alegre +<4225> +proj=longlat +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +no_defs <> +# Cote d'Ivoire +<4226> +proj=longlat +a=6378249.2 +b=6356515 +no_defs <> +# Deir ez Zor +<4227> +proj=longlat +a=6378249.2 +b=6356515 +no_defs <> +# Douala +<4228> +proj=longlat +a=6378249.2 +b=6356515 +no_defs <> +# Egypt 1907 +<4229> +proj=longlat +ellps=helmert +no_defs <> +# ED50 +<4230> +proj=longlat +ellps=intl +no_defs <> +# ED87 +<4231> +proj=longlat +ellps=intl +no_defs <> +# Fahud +<4232> +proj=longlat +ellps=clrk80 +no_defs <> +# Gandajika 1970 +<4233> +proj=longlat +ellps=intl +towgs84=-133,-321,50,0,0,0,0 +no_defs <> +# Garoua +<4234> +proj=longlat +a=6378249.2 +b=6356515 +no_defs <> +# Guyane Francaise +<4235> +proj=longlat +ellps=intl +no_defs <> +# Hu Tzu Shan +<4236> +proj=longlat +ellps=intl +towgs84=-637,-549,-203,0,0,0,0 +no_defs <> +# HD72 +<4237> +proj=longlat +ellps=GRS67 +no_defs <> +# ID74 +<4238> +proj=longlat +a=6378160 +b=6356774.50408554 +no_defs <> +# Indian 1954 +<4239> +proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs84=217,823,299,0,0,0,0 +no_defs <> +# Indian 1975 +<4240> +proj=longlat +a=6377276.345 +b=6356075.413140239 +no_defs <> +# Jamaica 1875 +<4241> +proj=longlat +ellps=clrk80 +no_defs <> +# JAD69 +<4242> +proj=longlat +ellps=clrk66 +no_defs <> +# Kalianpur 1880 +<4243> +proj=longlat +a=6377299.36559538 +b=6356098.357204817 +no_defs <> +# Kandawala +<4244> +proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs84=-97,787,86,0,0,0,0 +no_defs <> +# Kertau 1968 +<4245> +proj=longlat +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +no_defs <> +# KOC +<4246> +proj=longlat +ellps=clrk80 +towgs84=-294.7,-200.1,525.5,0,0,0,0 +no_defs <> +# La Canoa +<4247> +proj=longlat +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +no_defs <> +# PSAD56 +<4248> +proj=longlat +ellps=intl +no_defs <> +# Lake +<4249> +proj=longlat +ellps=intl +no_defs <> +# Leigon +<4250> +proj=longlat +ellps=clrk80 +towgs84=-130,29,364,0,0,0,0 +no_defs <> +# Liberia 1964 +<4251> +proj=longlat +ellps=clrk80 +towgs84=-90,40,88,0,0,0,0 +no_defs <> +# Lome +<4252> +proj=longlat +a=6378249.2 +b=6356515 +no_defs <> +# Luzon 1911 +<4253> +proj=longlat +ellps=clrk66 +no_defs <> +# Hito XVIII 1963 +<4254> +proj=longlat +ellps=intl +no_defs <> +# Herat North +<4255> +proj=longlat +ellps=intl +towgs84=-333,-222,114,0,0,0,0 +no_defs <> +# Mahe 1971 +<4256> +proj=longlat +ellps=clrk80 +towgs84=41,-220,-134,0,0,0,0 +no_defs <> +# Makassar +<4257> +proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +no_defs <> +# ETRS89 +<4258> +proj=longlat +ellps=GRS80 +no_defs <> +# Malongo 1987 +<4259> +proj=longlat +ellps=intl +no_defs <> +# Manoca +<4260> +proj=longlat +ellps=clrk80 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +no_defs <> +# Merchich +<4261> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +no_defs <> +# Massawa +<4262> +proj=longlat +ellps=bessel +towgs84=639,405,60,0,0,0,0 +no_defs <> +# Minna +<4263> +proj=longlat +ellps=clrk80 +no_defs <> +# Mhast +<4264> +proj=longlat +ellps=intl +towgs84=-252.95,-4.11,-96.38,0,0,0,0 +no_defs <> +# Monte Mario +<4265> +proj=longlat +ellps=intl +no_defs <> +# M'poraloko +<4266> +proj=longlat +a=6378249.2 +b=6356515 +no_defs <> +# NAD27 +<4267> +proj=longlat +ellps=clrk66 +datum=NAD27 +no_defs <> +# NAD27 Michigan +<4268> +proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defs <> +# NAD83 +<4269> +proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs <> +# Nahrwan 1967 +<4270> +proj=longlat +ellps=clrk80 +no_defs <> +# Naparima 1972 +<4271> +proj=longlat +ellps=intl +no_defs <> +# NZGD49 +<4272> +proj=longlat +ellps=intl +datum=nzgd49 +no_defs <> +# NGO 1948 +<4273> +proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +no_defs <> +# Datum 73 +<4274> +proj=longlat +ellps=intl +no_defs <> +# NTF +<4275> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +no_defs <> +# NSWC 9Z-2 +<4276> +proj=longlat +ellps=WGS66 +no_defs <> +# OSGB 1936 +<4277> +proj=longlat +ellps=airy +no_defs <> +# OSGB70 +<4278> +proj=longlat +ellps=airy +no_defs <> +# OS(SN)80 +<4279> +proj=longlat +ellps=airy +no_defs <> +# Padang +<4280> +proj=longlat +ellps=bessel +no_defs <> +# Palestine 1923 +<4281> +proj=longlat +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +no_defs <> +# Pointe Noire +<4282> +proj=longlat +a=6378249.2 +b=6356515 +no_defs <> +# GDA94 +<4283> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# Pulkovo 1942 +<4284> +proj=longlat +ellps=krass +no_defs <> +# Qatar 1974 +<4285> +proj=longlat +ellps=intl +no_defs <> +# Qatar 1948 +<4286> +proj=longlat +ellps=helmert +no_defs <> +# Qornoq +<4287> +proj=longlat +ellps=intl +towgs84=164,138,-189,0,0,0,0 +no_defs <> +# Loma Quintana +<4288> +proj=longlat +ellps=intl +no_defs <> +# Amersfoort +<4289> +proj=longlat +ellps=bessel +towgs84=565.237,50.0087,465.658,-0.406857,0.350733,-1.87035,4.0812 +no_defs <> +# SAD69 +<4291> +proj=longlat +ellps=GRS67 +no_defs <> +# Sapper Hill 1943 +<4292> +proj=longlat +ellps=intl +towgs84=-355,21,72,0,0,0,0 +no_defs <> +# Schwarzeck +<4293> +proj=longlat +ellps=bess_nam +no_defs <> +# Segora +<4294> +proj=longlat +ellps=bessel +no_defs <> +# Serindung +<4295> +proj=longlat +ellps=bessel +no_defs <> +# Sudan +<4296> +proj=longlat +a=6378249.2 +b=6356515 +no_defs <> +# Tananarive +<4297> +proj=longlat +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +no_defs <> +# Timbalai 1948 +<4298> +proj=longlat +ellps=evrstSS +no_defs <> +# TM65 +<4299> +proj=longlat +a=6377340.189 +b=6356034.447938534 +no_defs <> +# TM75 +<4300> +proj=longlat +a=6377340.189 +b=6356034.447938534 +no_defs <> +# Tokyo +<4301> +proj=longlat +ellps=bessel +no_defs <> +# Trinidad 1903 +<4302> +proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs <> +# TC(1948) +<4303> +proj=longlat +ellps=helmert +no_defs <> +# Voirol 1875 +<4304> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +no_defs <> +# Bern 1938 +<4306> +proj=longlat +ellps=bessel +no_defs <> +# Nord Sahara 1959 +<4307> +proj=longlat +ellps=clrk80 +no_defs <> +# RT38 +<4308> +proj=longlat +ellps=bessel +no_defs <> +# Yacare +<4309> +proj=longlat +ellps=intl +towgs84=-155,171,37,0,0,0,0 +no_defs <> +# Yoff +<4310> +proj=longlat +a=6378249.2 +b=6356515 +no_defs <> +# Zanderij +<4311> +proj=longlat +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +no_defs <> +# MGI +<4312> +proj=longlat +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +no_defs <> +# Belge 1972 +<4313> +proj=longlat +ellps=intl +no_defs <> +# DHDN +<4314> +proj=longlat +ellps=bessel +datum=potsdam +no_defs <> +# Conakry 1905 +<4315> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +no_defs <> +# Dealul Piscului 1933 +<4316> +proj=longlat +ellps=intl +no_defs <> +# Dealul Piscului 1970 +<4317> +proj=longlat +ellps=krass +no_defs <> +# NGN +<4318> +proj=longlat +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,0 +no_defs <> +# KUDAMS +<4319> +proj=longlat +ellps=GRS80 +no_defs <> +# WGS 72 +<4322> +proj=longlat +ellps=WGS72 +no_defs <> +# WGS 72BE +<4324> +proj=longlat +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +no_defs <> +# WGS 84 +<4326> +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs <> +# Anguilla 1957 +<4600> +proj=longlat +ellps=clrk80 +no_defs <> +# Antigua 1943 +<4601> +proj=longlat +ellps=clrk80 +no_defs <> +# Dominica 1945 +<4602> +proj=longlat +ellps=clrk80 +towgs84=725,685,536,0,0,0,0 +no_defs <> +# Grenada 1953 +<4603> +proj=longlat +ellps=clrk80 +towgs84=72,213.7,93,0,0,0,0 +no_defs <> +# Montserrat 1958 +<4604> +proj=longlat +ellps=clrk80 +towgs84=174,359,365,0,0,0,0 +no_defs <> +# St. Kitts 1955 +<4605> +proj=longlat +ellps=clrk80 +no_defs <> +# St. Lucia 1955 +<4606> +proj=longlat +ellps=clrk80 +towgs84=-149,128,296,0,0,0,0 +no_defs <> +# St. Vincent 1945 +<4607> +proj=longlat +ellps=clrk80 +towgs84=195.671,332.517,274.607,0,0,0,0 +no_defs <> +# NAD27(76) +<4608> +proj=longlat +ellps=clrk66 +no_defs <> +# NAD27(CGQ77) +<4609> +proj=longlat +ellps=clrk66 +no_defs <> +# Xian 1980 +<4610> +proj=longlat +a=6378140 +b=6356755.288157528 +no_defs <> +# Hong Kong 1980 +<4611> +proj=longlat +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +no_defs <> +# JGD2000 +<4612> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# Segara +<4613> +proj=longlat +ellps=bessel +no_defs <> +# QND95 +<4614> +proj=longlat +ellps=intl +towgs84=-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706 +no_defs <> +# Porto Santo +<4615> +proj=longlat +ellps=intl +towgs84=-499,-249,314,0,0,0,0 +no_defs <> +# Selvagem Grande +<4616> +proj=longlat +ellps=intl +no_defs <> +# NAD83(CSRS) +<4617> +proj=longlat +ellps=GRS80 +no_defs <> +# SAD69 +<4618> +proj=longlat +ellps=aust_SA +no_defs <> +# SWEREF99 +<4619> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# Point 58 +<4620> +proj=longlat +ellps=clrk80 +towgs84=-106,-129,165,0,0,0,0 +no_defs <> +# Fort Marigot +<4621> +proj=longlat +ellps=intl +towgs84=137,248,-430,0,0,0,0 +no_defs <> +# Guadeloupe 1948 +<4622> +proj=longlat +ellps=intl +no_defs <> +# CSG67 +<4623> +proj=longlat +ellps=intl +towgs84=-186,230,110,0,0,0,0 +no_defs <> +# RGFG95 +<4624> +proj=longlat +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +no_defs <> +# Martinique 1938 +<4625> +proj=longlat +ellps=intl +no_defs <> +# Reunion 1947 +<4626> +proj=longlat +ellps=intl +no_defs <> +# RGR92 +<4627> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# Tahiti 52 +<4628> +proj=longlat +ellps=intl +towgs84=162,117,154,0,0,0,0 +no_defs <> +# Tahaa 54 +<4629> +proj=longlat +ellps=intl +no_defs <> +# IGN72 Nuku Hiva +<4630> +proj=longlat +ellps=intl +no_defs <> +# K0 1949 +<4631> +proj=longlat +ellps=intl +towgs84=145,-187,103,0,0,0,0 +no_defs <> +# Combani 1950 +<4632> +proj=longlat +ellps=intl +towgs84=-382,-59,-262,0,0,0,0 +no_defs <> +# IGN56 Lifou +<4633> +proj=longlat +ellps=intl +no_defs <> +# IGN72 Grand Terre +<4634> +proj=longlat +ellps=intl +no_defs <> +# ST87 Ouvea +<4635> +proj=longlat +ellps=intl +towgs84=-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798 +no_defs <> +# Petrels 1972 +<4636> +proj=longlat +ellps=intl +towgs84=365,194,166,0,0,0,0 +no_defs <> +# Perroud 1950 +<4637> +proj=longlat +ellps=intl +towgs84=325,154,172,0,0,0,0 +no_defs <> +# Saint Pierre et Miquelon 1950 +<4638> +proj=longlat +ellps=clrk66 +towgs84=30,430,368,0,0,0,0 +no_defs <> +# MOP78 +<4639> +proj=longlat +ellps=intl +no_defs <> +# RRAF 1991 +<4640> +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# IGN53 Mare +<4641> +proj=longlat +ellps=intl +no_defs <> +# ST84 Ile des Pins +<4642> +proj=longlat +ellps=intl +no_defs <> +# ST71 Belep +<4643> +proj=longlat +ellps=intl +towgs84=-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7 +no_defs <> +# NEA74 Noumea +<4644> +proj=longlat +ellps=intl +no_defs <> +# RGNC 1991 +<4645> +proj=longlat +ellps=intl +towgs84=0,0,0,0,0,0,0 +no_defs <> +# Grand Comoros +<4646> +proj=longlat +ellps=intl +no_defs <> +# Reykjavik 1900 +<4657> +proj=longlat +a=6377019.27 +b=6355762.5391 +towgs84=-28,199,5,0,0,0,0 +no_defs <> +# Hjorsey 1955 +<4658> +proj=longlat +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +no_defs <> +# ISN93 +<4659> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# Helle 1954 +<4660> +proj=longlat +ellps=intl +towgs84=982.609,552.753,-540.873,32.3934,-153.257,-96.2266,16.805 +no_defs <> +# LKS92 +<4661> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# IGN72 Grande Terre +<4662> +proj=longlat +ellps=intl +no_defs <> +# Porto Santo 1995 +<4663> +proj=longlat +ellps=intl +no_defs <> +# Azores Oriental 1995 +<4664> +proj=longlat +ellps=intl +no_defs <> +# Azores Central 1995 +<4665> +proj=longlat +ellps=intl +no_defs <> +# Lisbon 1890 +<4666> +proj=longlat +ellps=bessel +no_defs <> +# IKBD-92 +<4667> +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# ED79 +<4668> +proj=longlat +ellps=intl +towgs84=-86,-98,-119,0,0,0,0 +no_defs <> +# LKS94 +<4669> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# IGM95 +<4670> +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# Voirol 1879 +<4671> +proj=longlat +a=6378249.2 +b=6356515 +no_defs <> +# CI1971 +<4672> +proj=longlat +ellps=intl +towgs84=175,-38,113,0,0,0,0 +no_defs <> +# CI1979 +<4673> +proj=longlat +ellps=intl +towgs84=174.05,-25.49,112.57,-0,-0,0.554,0.2263 +no_defs <> +# SIRGAS 2000 +<4674> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# Guam 1963 +<4675> +proj=longlat +ellps=clrk66 +towgs84=-100,-248,259,0,0,0,0 +no_defs <> +# Vientiane 1982 +<4676> +proj=longlat +ellps=krass +no_defs <> +# Lao 1993 +<4677> +proj=longlat +ellps=krass +no_defs <> +# Lao 1997 +<4678> +proj=longlat +ellps=krass +towgs84=44.585,-131.212,-39.544,0,0,0,0 +no_defs <> +# Jouik 1961 +<4679> +proj=longlat +ellps=clrk80 +towgs84=-80.01,253.26,291.19,0,0,0,0 +no_defs <> +# Nouakchott 1965 +<4680> +proj=longlat +ellps=clrk80 +towgs84=124.5,-63.5,-281,0,0,0,0 +no_defs <> +# Mauritania 1999 +<4681> +proj=longlat +ellps=clrk80 +no_defs <> +# Gulshan 303 +<4682> +proj=longlat +a=6377276.345 +b=6356075.413140239 +no_defs <> +# PRS92 +<4683> +proj=longlat +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +no_defs <> +# Gan 1970 +<4684> +proj=longlat +ellps=intl +towgs84=-133,-321,50,0,0,0,0 +no_defs <> +# Gandajika +<4685> +proj=longlat +ellps=intl +no_defs <> +# MAGNA-SIRGAS +<4686> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# RGPF +<4687> +proj=longlat +ellps=GRS80 +no_defs <> +# Fatu Iva 72 +<4688> +proj=longlat +ellps=intl +towgs84=347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074 +no_defs <> +# IGN63 Hiva Oa +<4689> +proj=longlat +ellps=intl +no_defs <> +# Tahiti 79 +<4690> +proj=longlat +ellps=intl +no_defs <> +# Moorea 87 +<4691> +proj=longlat +ellps=intl +towgs84=215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773 +no_defs <> +# Maupiti 83 +<4692> +proj=longlat +ellps=intl +towgs84=217.037,86.959,23.956,0,0,0,0 +no_defs <> +# Nakhl-e Ghanem +<4693> +proj=longlat +ellps=WGS84 +towgs84=0,-0.15,0.68,0,0,0,0 +no_defs <> +# POSGAR 94 +<4694> +proj=longlat +ellps=GRS80 +no_defs <> +# Katanga 1955 +<4695> +proj=longlat +ellps=clrk66 +no_defs <> +# Kasai 1953 +<4696> +proj=longlat +ellps=clrk80 +no_defs <> +# IGC 1962 6th Parallel South +<4697> +proj=longlat +ellps=clrk80 +no_defs <> +# IGN 1962 Kerguelen +<4698> +proj=longlat +ellps=intl +towgs84=145,-187,103,0,0,0,0 +no_defs <> +# Le Pouce 1934 +<4699> +proj=longlat +ellps=clrk80 +towgs84=-770.1,158.4,-498.2,0,0,0,0 +no_defs <> +# IGN Astro 1960 +<4700> +proj=longlat +ellps=clrk80 +no_defs <> +# IGCB 1955 +<4701> +proj=longlat +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +no_defs <> +# Mauritania 1999 +<4702> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# Mhast 1951 +<4703> +proj=longlat +ellps=clrk80 +no_defs <> +# Mhast (onshore) +<4704> +proj=longlat +ellps=intl +no_defs <> +# Mhast (offshore) +<4705> +proj=longlat +ellps=intl +no_defs <> +# Egypt Gulf of Suez S-650 TL +<4706> +proj=longlat +ellps=helmert +towgs84=-146.21,112.63,4.05,0,0,0,0 +no_defs <> +# Tern Island 1961 +<4707> +proj=longlat +ellps=intl +towgs84=114,-116,-333,0,0,0,0 +no_defs <> +# Cocos Islands 1965 +<4708> +proj=longlat +ellps=aust_SA +towgs84=-491,-22,435,0,0,0,0 +no_defs <> +# Iwo Jima 1945 +<4709> +proj=longlat +ellps=intl +towgs84=145,75,-272,0,0,0,0 +no_defs <> +# St. Helena 1971 +<4710> +proj=longlat +ellps=intl +towgs84=-320,550,-494,0,0,0,0 +no_defs <> +# Marcus Island 1952 +<4711> +proj=longlat +ellps=intl +towgs84=124,-234,-25,0,0,0,0 +no_defs <> +# Ascension Island 1958 +<4712> +proj=longlat +ellps=intl +towgs84=-205,107,53,0,0,0,0 +no_defs <> +# Ayabelle Lighthouse +<4713> +proj=longlat +ellps=clrk80 +towgs84=-79,-129,145,0,0,0,0 +no_defs <> +# Bellevue +<4714> +proj=longlat +ellps=intl +towgs84=-127,-769,472,0,0,0,0 +no_defs <> +# Camp Area Astro +<4715> +proj=longlat +ellps=intl +towgs84=-104,-129,239,0,0,0,0 +no_defs <> +# Phoenix Islands 1966 +<4716> +proj=longlat +ellps=intl +towgs84=298,-304,-375,0,0,0,0 +no_defs <> +# Cape Canaveral +<4717> +proj=longlat +ellps=clrk66 +towgs84=-2,151,181,0,0,0,0 +no_defs <> +# Solomon 1968 +<4718> +proj=longlat +ellps=intl +no_defs <> +# Easter Island 1967 +<4719> +proj=longlat +ellps=intl +towgs84=211,147,111,0,0,0,0 +no_defs <> +# Fiji 1986 +<4720> +proj=longlat +ellps=WGS72 +no_defs <> +# Fiji 1956 +<4721> +proj=longlat +ellps=intl +towgs84=265.025,384.929,-194.046,0,0,0,0 +no_defs <> +# South Georgia 1968 +<4722> +proj=longlat +ellps=intl +towgs84=-794,119,-298,0,0,0,0 +no_defs <> +# Grand Cayman 1959 +<4723> +proj=longlat +ellps=clrk66 +towgs84=67.8,106.1,138.8,0,0,0,0 +no_defs <> +# Diego Garcia 1969 +<4724> +proj=longlat +ellps=intl +towgs84=208,-435,-229,0,0,0,0 +no_defs <> +# Johnston Island 1961 +<4725> +proj=longlat +ellps=intl +towgs84=189,-79,-202,0,0,0,0 +no_defs <> +# Little Cayman 1961 +<4726> +proj=longlat +ellps=clrk66 +no_defs <> +# Midway 1961 +<4727> +proj=longlat +ellps=intl +no_defs <> +# Pico de la Nieves +<4728> +proj=longlat +ellps=intl +towgs84=-307,-92,127,0,0,0,0 +no_defs <> +# Pitcairn 1967 +<4729> +proj=longlat +ellps=intl +towgs84=185,165,42,0,0,0,0 +no_defs <> +# Santo 1965 +<4730> +proj=longlat +ellps=intl +towgs84=170,42,84,0,0,0,0 +no_defs <> +# Viti Levu 1916 +<4731> +proj=longlat +ellps=clrk80 +towgs84=51,391,-36,0,0,0,0 +no_defs <> +# Marshall Islands 1960 +<4732> +proj=longlat +a=6378270 +b=6356794.343434343 +towgs84=102,52,-38,0,0,0,0 +no_defs <> +# Wake Island 1952 +<4733> +proj=longlat +ellps=intl +towgs84=276,-57,149,0,0,0,0 +no_defs <> +# Tristan 1968 +<4734> +proj=longlat +ellps=intl +towgs84=-632,438,-609,0,0,0,0 +no_defs <> +# Kusaie 1951 +<4735> +proj=longlat +ellps=intl +towgs84=647,1777,-1124,0,0,0,0 +no_defs <> +# Deception Island +<4736> +proj=longlat +ellps=clrk80 +towgs84=260,12,-147,0,0,0,0 +no_defs <> +# Korea 2000 +<4737> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# Hong Kong 1963 +<4738> +proj=longlat +a=6378293.645208759 +b=6356617.987679838 +no_defs <> +# Hong Kong 1963(67) +<4739> +proj=longlat +ellps=intl +towgs84=-156,-271,-189,0,0,0,0 +no_defs <> +# PZ-90 +<4740> +proj=longlat +a=6378136 +b=6356751.361745712 +towgs84=0,0,1.5,-0,-0,0.076,0 +no_defs <> +# FD54 +<4741> +proj=longlat +ellps=intl +no_defs <> +# GDM2000 +<4742> +proj=longlat +ellps=GRS80 +no_defs <> +# Karbala 1979 (Polservice) +<4743> +proj=longlat +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +no_defs <> +# Nahrwan 1934 +<4744> +proj=longlat +ellps=clrk80 +no_defs <> +# RD/83 +<4745> +proj=longlat +ellps=bessel +no_defs <> +# PD/83 +<4746> +proj=longlat +ellps=bessel +no_defs <> +# GR96 +<4747> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# Vanua Levu 1915 +<4748> +proj=longlat +a=6378306.3696 +b=6356571.996 +towgs84=51,391,-36,0,0,0,0 +no_defs <> +# RGNC91-93 +<4749> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# ST87 Ouvea +<4750> +proj=longlat +ellps=WGS84 +towgs84=-56.263,16.136,-22.856,0,0,0,0 +no_defs <> +# Kertau (RSO) +<4751> +proj=longlat +a=6377295.664 +b=6356094.667915204 +no_defs <> +# Viti Levu 1912 +<4752> +proj=longlat +a=6378306.3696 +b=6356571.996 +towgs84=51,391,-36,0,0,0,0 +no_defs <> +# fk89 +<4753> +proj=longlat +ellps=intl +no_defs <> +# LGD2006 +<4754> +proj=longlat +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +no_defs <> +# DGN95 +<4755> +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs <> +# VN-2000 +<4756> +proj=longlat +ellps=WGS84 +no_defs <> +# Bern 1898 (Bern) +<4801> +proj=longlat +ellps=bessel +pm=bern +no_defs <> +# Bogota 1975 (Bogota) +<4802> +proj=longlat +ellps=intl +pm=bogota +no_defs <> +# Lisbon (Lisbon) +<4803> +proj=longlat +ellps=intl +pm=lisbon +no_defs <> +# Makassar (Jakarta) +<4804> +proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +pm=jakarta +no_defs <> +# MGI (Ferro) +<4805> +proj=longlat +ellps=bessel +pm=ferro +no_defs <> +# Monte Mario (Rome) +<4806> +proj=longlat +ellps=intl +pm=rome +no_defs <> +# NTF (Paris) +<4807> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +no_defs <> +# Padang (Jakarta) +<4808> +proj=longlat +ellps=bessel +pm=jakarta +no_defs <> +# Belge 1950 (Brussels) +<4809> +proj=longlat +ellps=intl +pm=brussels +no_defs <> +# Tananarive (Paris) +<4810> +proj=longlat +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=paris +no_defs <> +# Voirol 1875 (Paris) +<4811> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +pm=paris +no_defs <> +# Batavia (Jakarta) +<4813> +proj=longlat +ellps=bessel +pm=jakarta +no_defs <> +# RT38 (Stockholm) +<4814> +proj=longlat +ellps=bessel +pm=stockholm +no_defs <> +# Greek (Athens) +<4815> +proj=longlat +ellps=bessel +pm=athens +no_defs <> +# Carthage (Paris) +<4816> +proj=longlat +a=6378249.2 +b=6356515 +pm=paris +no_defs <> +# NGO 1948 (Oslo) +<4817> +proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +no_defs <> +# S-JTSK (Ferro) +<4818> +proj=longlat +ellps=bessel +pm=ferro +no_defs <> +# Nord Sahara 1959 (Paris) +<4819> +proj=longlat +ellps=clrk80 +pm=paris +no_defs <> +# Segara (Jakarta) +<4820> +proj=longlat +ellps=bessel +pm=jakarta +no_defs <> +# Voirol 1879 (Paris) +<4821> +proj=longlat +a=6378249.2 +b=6356515 +pm=paris +no_defs <> +# ATF (Paris) +<4901> +proj=longlat +a=6376523 +b=6355862.933255573 +pm=paris +no_defs <> +# NDG (Paris) +<4902> +proj=longlat +a=6376523 +b=6355862.933255573 +pm=paris +no_defs <> +# Madrid 1870 (Madrid) +<4903> +proj=longlat +a=6378298.3 +b=6356657.142669562 +pm=madrid +no_defs <> +# Lisbon 1890 (Lisbon) +<4904> +proj=longlat +ellps=bessel +pm=lisbon +no_defs <> +# Anguilla 1957 / British West Indies Grid +<2000> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defs <> +# Antigua 1943 / British West Indies Grid +<2001> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defs <> +# Dominica 1945 / British West Indies Grid +<2002> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=725,685,536,0,0,0,0 +units=m +no_defs <> +# Grenada 1953 / British West Indies Grid +<2003> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=72,213.7,93,0,0,0,0 +units=m +no_defs <> +# Montserrat 1958 / British West Indies Grid +<2004> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=174,359,365,0,0,0,0 +units=m +no_defs <> +# St. Kitts 1955 / British West Indies Grid +<2005> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defs <> +# St. Lucia 1955 / British West Indies Grid +<2006> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=-149,128,296,0,0,0,0 +units=m +no_defs <> +# St. Vincent 45 / British West Indies Grid +<2007> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=195.671,332.517,274.607,0,0,0,0 +units=m +no_defs <> +# NAD27(CGQ77) / SCoPQ zone 2 +<2008> +proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(CGQ77) / SCoPQ zone 3 +<2009> +proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(CGQ77) / SCoPQ zone 4 +<2010> +proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(CGQ77) / SCoPQ zone 5 +<2011> +proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(CGQ77) / SCoPQ zone 6 +<2012> +proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(CGQ77) / SCoPQ zone 7 +<2013> +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(CGQ77) / SCoPQ zone 8 +<2014> +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(CGQ77) / SCoPQ zone 9 +<2015> +proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(CGQ77) / SCoPQ zone 10 +<2016> +proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(76) / MTM zone 8 +<2017> +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(76) / MTM zone 9 +<2018> +proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(76) / MTM zone 10 +<2019> +proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(76) / MTM zone 11 +<2020> +proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(76) / MTM zone 12 +<2021> +proj=tmerc +lat_0=0 +lon_0=-81 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(76) / MTM zone 13 +<2022> +proj=tmerc +lat_0=0 +lon_0=-84 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(76) / MTM zone 14 +<2023> +proj=tmerc +lat_0=0 +lon_0=-87 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(76) / MTM zone 15 +<2024> +proj=tmerc +lat_0=0 +lon_0=-90 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(76) / MTM zone 16 +<2025> +proj=tmerc +lat_0=0 +lon_0=-93 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(76) / MTM zone 17 +<2026> +proj=tmerc +lat_0=0 +lon_0=-96 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD27(76) / UTM zone 15N +<2027> +proj=utm +zone=15 +ellps=clrk66 +units=m +no_defs <> +# NAD27(76) / UTM zone 16N +<2028> +proj=utm +zone=16 +ellps=clrk66 +units=m +no_defs <> +# NAD27(76) / UTM zone 17N +<2029> +proj=utm +zone=17 +ellps=clrk66 +units=m +no_defs <> +# NAD27(76) / UTM zone 18N +<2030> +proj=utm +zone=18 +ellps=clrk66 +units=m +no_defs <> +# NAD27(CGQ77) / UTM zone 17N +<2031> +proj=utm +zone=17 +ellps=clrk66 +units=m +no_defs <> +# NAD27(CGQ77) / UTM zone 18N +<2032> +proj=utm +zone=18 +ellps=clrk66 +units=m +no_defs <> +# NAD27(CGQ77) / UTM zone 19N +<2033> +proj=utm +zone=19 +ellps=clrk66 +units=m +no_defs <> +# NAD27(CGQ77) / UTM zone 20N +<2034> +proj=utm +zone=20 +ellps=clrk66 +units=m +no_defs <> +# NAD27(CGQ77) / UTM zone 21N +<2035> +proj=utm +zone=21 +ellps=clrk66 +units=m +no_defs <> +# NAD83(CSRS98) / New Brunswick Stereo (deprecated) +<2036> +proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2500000 +y_0=7500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS98) / UTM zone 19N (deprecated) +<2037> +proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS98) / UTM zone 20N (deprecated) +<2038> +proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# Israel / Israeli TM Grid +<2039> +proj=tmerc +lat_0=31.73439361111111 +lon_0=35.20451694444445 +k=1.000007 +x_0=219529.584 +y_0=626907.39 +ellps=GRS80 +towgs84=-48,55,52,0,0,0,0 +units=m +no_defs <> +# Locodjo 1965 / UTM zone 30N +<2040> +proj=utm +zone=30 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defs <> +# Abidjan 1987 / UTM zone 30N +<2041> +proj=utm +zone=30 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defs <> +# Locodjo 1965 / UTM zone 29N +<2042> +proj=utm +zone=29 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defs <> +# Abidjan 1987 / UTM zone 29N +<2043> +proj=utm +zone=29 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defs <> +# Hanoi 1972 / Gauss-Kruger zone 18 +<2044> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=18500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defs <> +# Hanoi 1972 / Gauss-Kruger zone 19 +<2045> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=19500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defs <> +# Hartebeesthoek94 / Lo15 +# Unable to translate coordinate system EPSG:2046 into PROJ.4 format. +# +# Hartebeesthoek94 / Lo17 +# Unable to translate coordinate system EPSG:2047 into PROJ.4 format. +# +# Hartebeesthoek94 / Lo19 +# Unable to translate coordinate system EPSG:2048 into PROJ.4 format. +# +# Hartebeesthoek94 / Lo21 +# Unable to translate coordinate system EPSG:2049 into PROJ.4 format. +# +# Hartebeesthoek94 / Lo23 +# Unable to translate coordinate system EPSG:2050 into PROJ.4 format. +# +# Hartebeesthoek94 / Lo25 +# Unable to translate coordinate system EPSG:2051 into PROJ.4 format. +# +# Hartebeesthoek94 / Lo27 +# Unable to translate coordinate system EPSG:2052 into PROJ.4 format. +# +# Hartebeesthoek94 / Lo29 +# Unable to translate coordinate system EPSG:2053 into PROJ.4 format. +# +# Hartebeesthoek94 / Lo31 +# Unable to translate coordinate system EPSG:2054 into PROJ.4 format. +# +# Hartebeesthoek94 / Lo33 +# Unable to translate coordinate system EPSG:2055 into PROJ.4 format. +# +# CH1903+ / LV95 +<2056> +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs <> +# Rassadiran / Nakhl e Taqi +<2057> +proj=omerc +lat_0=27.51882880555555 +lonc=52.60353916666667 +alpha=0.5716611944444444 +k=0.999895934 +x_0=658377.437 +y_0=3044969.194 +ellps=intl +towgs84=-133.63,-157.5,-158.62,0,0,0,0 +units=m +no_defs <> +# ED50(ED77) / UTM zone 38N +<2058> +proj=utm +zone=38 +ellps=intl +units=m +no_defs <> +# ED50(ED77) / UTM zone 39N +<2059> +proj=utm +zone=39 +ellps=intl +units=m +no_defs <> +# ED50(ED77) / UTM zone 40N +<2060> +proj=utm +zone=40 +ellps=intl +units=m +no_defs <> +# ED50(ED77) / UTM zone 41N +<2061> +proj=utm +zone=41 +ellps=intl +units=m +no_defs <> +# Madrid 1870 (Madrid) / Spain +<2062> +proj=lcc +lat_1=40 +lat_0=40 +lon_0=0 +k_0=0.9988085293 +x_0=600000 +y_0=600000 +a=6378298.3 +b=6356657.142669562 +pm=madrid +units=m +no_defs <> +# Dabola 1981 / UTM zone 28N +<2063> +proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs <> +# Dabola 1981 / UTM zone 29N +<2064> +proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs <> +# S-JTSK (Ferro) / Krovak +<2065> +proj=krovak +lat_0=49.5 +lon_0=42.5 +alpha=30.28813972222222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs <> +# Mount Dillon / Tobago Grid +<2066> +proj=cass +lat_0=11.25217861111111 +lon_0=-60.68600888888889 +x_0=37718.66159325 +y_0=36209.91512952 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.201166195164 +no_defs <> +# Naparima 1955 / UTM zone 20N +<2067> +proj=utm +zone=20 +ellps=intl +units=m +no_defs <> +# ELD79 / Libya zone 5 +<2068> +proj=tmerc +lat_0=0 +lon_0=9 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ELD79 / Libya zone 6 +<2069> +proj=tmerc +lat_0=0 +lon_0=11 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ELD79 / Libya zone 7 +<2070> +proj=tmerc +lat_0=0 +lon_0=13 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ELD79 / Libya zone 8 +<2071> +proj=tmerc +lat_0=0 +lon_0=15 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ELD79 / Libya zone 9 +<2072> +proj=tmerc +lat_0=0 +lon_0=17 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ELD79 / Libya zone 10 +<2073> +proj=tmerc +lat_0=0 +lon_0=19 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ELD79 / Libya zone 11 +<2074> +proj=tmerc +lat_0=0 +lon_0=21 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ELD79 / Libya zone 12 +<2075> +proj=tmerc +lat_0=0 +lon_0=23 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ELD79 / Libya zone 13 +<2076> +proj=tmerc +lat_0=0 +lon_0=25 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ELD79 / UTM zone 32N +<2077> +proj=utm +zone=32 +ellps=intl +units=m +no_defs <> +# ELD79 / UTM zone 33N +<2078> +proj=utm +zone=33 +ellps=intl +units=m +no_defs <> +# ELD79 / UTM zone 34N +<2079> +proj=utm +zone=34 +ellps=intl +units=m +no_defs <> +# ELD79 / UTM zone 35N +<2080> +proj=utm +zone=35 +ellps=intl +units=m +no_defs <> +# Chos Malal 1914 / Argentina zone 2 +<2081> +proj=tmerc +lat_0=-90 +lon_0=-69 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# Pampa del Castillo / Argentina zone 2 +<2082> +proj=tmerc +lat_0=-90 +lon_0=-69 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=intl +towgs84=27.5,14,186.4,0,0,0,0 +units=m +no_defs <> +# Hito XVIII 1963 / Argentina zone 2 +<2083> +proj=tmerc +lat_0=-90 +lon_0=-69 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# Hito XVIII 1963 / UTM zone 19S +<2084> +proj=utm +zone=19 +south +ellps=intl +units=m +no_defs <> +# NAD27 / Cuba Norte +<2085> +proj=lcc +lat_1=22.35 +lat_0=22.35 +lon_0=-81 +k_0=0.99993602 +x_0=500000 +y_0=280296.016 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / Cuba Sur +<2086> +proj=lcc +lat_1=20.71666666666667 +lat_0=20.71666666666667 +lon_0=-76.83333333333333 +k_0=0.99994848 +x_0=500000 +y_0=229126.939 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# ELD79 / TM 12 NE +<2087> +proj=tmerc +lat_0=0 +lon_0=12 +k=0.999600 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# Carthage / TM 11 NE +<2088> +proj=tmerc +lat_0=0 +lon_0=11 +k=0.999600 +x_0=500000 +y_0=0 +a=6378249.2 +b=6356515 +units=m +no_defs <> +# Yemen NGN96 / UTM zone 38N +<2089> +proj=utm +zone=38 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# Yemen NGN96 / UTM zone 39N +<2090> +proj=utm +zone=39 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# South Yemen / Gauss Kruger zone 8 (deprecated) +<2091> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defs <> +# South Yemen / Gauss Kruger zone 9 (deprecated) +<2092> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defs <> +# Hanoi 1972 / GK 106 NE +<2093> +proj=tmerc +lat_0=0 +lon_0=106 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defs <> +# WGS 72BE / TM 106 NE +<2094> +proj=tmerc +lat_0=0 +lon_0=106 +k=0.999600 +x_0=500000 +y_0=0 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# Bissau / UTM zone 28N +<2095> +proj=utm +zone=28 +ellps=intl +towgs84=-173,253,27,0,0,0,0 +units=m +no_defs <> +# Korean 1985 / Korea East Belt +<2096> +proj=tmerc +lat_0=38 +lon_0=129 +k=1.000000 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs <> +# Korean 1985 / Korea Central Belt +<2097> +proj=tmerc +lat_0=38 +lon_0=127 +k=1.000000 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs <> +# Korean 1985 / Korea West Belt +<2098> +proj=tmerc +lat_0=38 +lon_0=125 +k=1.000000 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs <> +# Qatar 1948 / Qatar Grid +<2099> +proj=cass +lat_0=25.38236111111111 +lon_0=50.76138888888889 +x_0=100000 +y_0=100000 +ellps=helmert +units=m +no_defs <> +# GGRS87 / Greek Grid +<2100> +proj=tmerc +lat_0=0 +lon_0=24 +k=0.999600 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=-199.87,74.79,246.62,0,0,0,0 +units=m +no_defs <> +# Lake / Maracaibo Grid M1 +<2101> +proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=0 +y_0=-52684.972 +ellps=intl +units=m +no_defs <> +# Lake / Maracaibo Grid +<2102> +proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=200000 +y_0=147315.028 +ellps=intl +units=m +no_defs <> +# Lake / Maracaibo Grid M3 +<2103> +proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=500000 +y_0=447315.028 +ellps=intl +units=m +no_defs <> +# Lake / Maracaibo La Rosa Grid +<2104> +proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=-17044 +y_0=-23139.97 +ellps=intl +units=m +no_defs <> +# NZGD2000 / Mount Eden Circuit 2000 +<2105> +proj=tmerc +lat_0=-36.87972222222222 +lon_0=174.7641666666667 +k=0.999900 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Bay of Plenty Circuit 2000 +<2106> +proj=tmerc +lat_0=-37.76111111111111 +lon_0=176.4661111111111 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Poverty Bay Circuit 2000 +<2107> +proj=tmerc +lat_0=-38.62444444444444 +lon_0=177.8855555555556 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Hawkes Bay Circuit 2000 +<2108> +proj=tmerc +lat_0=-39.65083333333333 +lon_0=176.6736111111111 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Taranaki Circuit 2000 +<2109> +proj=tmerc +lat_0=-39.13555555555556 +lon_0=174.2277777777778 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Tuhirangi Circuit 2000 +<2110> +proj=tmerc +lat_0=-39.51222222222222 +lon_0=175.64 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Wanganui Circuit 2000 +<2111> +proj=tmerc +lat_0=-40.24194444444444 +lon_0=175.4880555555555 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Wairarapa Circuit 2000 +<2112> +proj=tmerc +lat_0=-40.92527777777777 +lon_0=175.6472222222222 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Wellington Circuit 2000 +<2113> +proj=tmerc +lat_0=-41.3011111111111 +lon_0=174.7763888888889 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Collingwood Circuit 2000 +<2114> +proj=tmerc +lat_0=-40.71472222222223 +lon_0=172.6719444444444 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Nelson Circuit 2000 +<2115> +proj=tmerc +lat_0=-41.27444444444444 +lon_0=173.2991666666667 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Karamea Circuit 2000 +<2116> +proj=tmerc +lat_0=-41.28972222222222 +lon_0=172.1088888888889 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Buller Circuit 2000 +<2117> +proj=tmerc +lat_0=-41.81055555555555 +lon_0=171.5811111111111 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Grey Circuit 2000 +<2118> +proj=tmerc +lat_0=-42.33361111111111 +lon_0=171.5497222222222 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Amuri Circuit 2000 +<2119> +proj=tmerc +lat_0=-42.68888888888888 +lon_0=173.01 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Marlborough Circuit 2000 +<2120> +proj=tmerc +lat_0=-41.54444444444444 +lon_0=173.8019444444444 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Hokitika Circuit 2000 +<2121> +proj=tmerc +lat_0=-42.88611111111111 +lon_0=170.9797222222222 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Okarito Circuit 2000 +<2122> +proj=tmerc +lat_0=-43.11 +lon_0=170.2608333333333 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Jacksons Bay Circuit 2000 +<2123> +proj=tmerc +lat_0=-43.97777777777778 +lon_0=168.6061111111111 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Mount Pleasant Circuit 2000 +<2124> +proj=tmerc +lat_0=-43.59055555555556 +lon_0=172.7269444444445 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Gawler Circuit 2000 +<2125> +proj=tmerc +lat_0=-43.74861111111111 +lon_0=171.3605555555555 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Timaru Circuit 2000 +<2126> +proj=tmerc +lat_0=-44.40194444444445 +lon_0=171.0572222222222 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Lindis Peak Circuit 2000 +<2127> +proj=tmerc +lat_0=-44.735 +lon_0=169.4675 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Mount Nicholas Circuit 2000 +<2128> +proj=tmerc +lat_0=-45.13277777777778 +lon_0=168.3986111111111 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Mount York Circuit 2000 +<2129> +proj=tmerc +lat_0=-45.56361111111111 +lon_0=167.7386111111111 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Observation Point Circuit 2000 +<2130> +proj=tmerc +lat_0=-45.81611111111111 +lon_0=170.6283333333333 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / North Taieri Circuit 2000 +<2131> +proj=tmerc +lat_0=-45.86138888888889 +lon_0=170.2825 +k=0.999960 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / Bluff Circuit 2000 +<2132> +proj=tmerc +lat_0=-46.6 +lon_0=168.3427777777778 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / UTM zone 58S +<2133> +proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / UTM zone 59S +<2134> +proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NZGD2000 / UTM zone 60S +<2135> +proj=utm +zone=60 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# Accra / Ghana National Grid +<2136> +proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.999750 +x_0=274319.7391633579 +y_0=0 +a=6378300 +b=6356751.689189189 +towgs84=-199,32,322,0,0,0,0 +to_meter=0.3047997101815088 +no_defs <> +# Accra / TM 1 NW +<2137> +proj=tmerc +lat_0=0 +lon_0=-1 +k=0.999600 +x_0=500000 +y_0=0 +a=6378300 +b=6356751.689189189 +towgs84=-199,32,322,0,0,0,0 +units=m +no_defs <> +# NAD27(CGQ77) / Quebec Lambert +<2138> +proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# NAD83(CSRS98) / SCoPQ zone 2 (deprecated) +<2139> +proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS98) / MTM zone 3 (deprecated) +<2140> +proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS98) / MTM zone 4 (deprecated) +<2141> +proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS98) / MTM zone 5 (deprecated) +<2142> +proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS98) / MTM zone 6 (deprecated) +<2143> +proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS98) / MTM zone 7 (deprecated) +<2144> +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS98) / MTM zone 8 (deprecated) +<2145> +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS98) / MTM zone 9 (deprecated) +<2146> +proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS98) / MTM zone 10 (deprecated) +<2147> +proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS98) / UTM zone 21N (deprecated) +<2148> +proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS98) / UTM zone 18N (deprecated) +<2149> +proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS98) / UTM zone 17N (deprecated) +<2150> +proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS98) / UTM zone 13N (deprecated) +<2151> +proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS98) / UTM zone 12N (deprecated) +<2152> +proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS98) / UTM zone 11N (deprecated) +<2153> +proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# RGF93 / Lambert-93 +<2154> +proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# American Samoa 1962 / American Samoa Lambert (deprecated) +<2155> +proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=170 +k_0=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / UTM zone 59S (deprecated) +<2156> +proj=utm +zone=59 +south +ellps=GRS80 +units=m +no_defs <> +# IRENET95 / Irish Transverse Mercator +<2157> +proj=tmerc +lat_0=53.5 +lon_0=-8 +k=0.999820 +x_0=600000 +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# IRENET95 / UTM zone 29N +<2158> +proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# Sierra Leone 1924 / New Colony Grid +<2159> +proj=tmerc +lat_0=6.666666666666667 +lon_0=-12 +k=1.000000 +x_0=152399.8550907544 +y_0=0 +a=6378300 +b=6356751.689189189 +to_meter=0.3047997101815088 +no_defs <> +# Sierra Leone 1924 / New War Office Grid +<2160> +proj=tmerc +lat_0=6.666666666666667 +lon_0=-12 +k=1.000000 +x_0=243839.7681452071 +y_0=182879.8261089053 +a=6378300 +b=6356751.689189189 +to_meter=0.3047997101815088 +no_defs <> +# Sierra Leone 1968 / UTM zone 28N +<2161> +proj=utm +zone=28 +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +units=m +no_defs <> +# Sierra Leone 1968 / UTM zone 29N +<2162> +proj=utm +zone=29 +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +units=m +no_defs <> +# US National Atlas Equal Area +<2163> +proj=laea +lat_0=45 +lon_0=-100 +x_0=0 +y_0=0 +a=6370997 +b=6370997 +units=m +no_defs <> +# Locodjo 1965 / TM 5 NW +<2164> +proj=tmerc +lat_0=0 +lon_0=-5 +k=0.999600 +x_0=500000 +y_0=0 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defs <> +# Abidjan 1987 / TM 5 NW +<2165> +proj=tmerc +lat_0=0 +lon_0=-5 +k=0.999600 +x_0=500000 +y_0=0 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defs <> +# Pulkovo 1942(83) / Gauss Kruger zone 3 (deprecated) +<2166> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs <> +# Pulkovo 1942(83) / Gauss Kruger zone 4 (deprecated) +<2167> +proj=tmerc +lat_0=0 +lon_0=12 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs <> +# Pulkovo 1942(83) / Gauss Kruger zone 5 (deprecated) +<2168> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs <> +# Luxembourg 1930 / Gauss +<2169> +proj=tmerc +lat_0=49.83333333333334 +lon_0=6.166666666666667 +k=1.000000 +x_0=80000 +y_0=100000 +ellps=intl +towgs84=-193,13.7,-39.3,-0.41,-2.933,2.688,0.43 +units=m +no_defs <> +# MGI / Slovenia Grid +<2170> +proj=tmerc +lat_0=0 +lon_0=15 +k=0.999900 +x_0=500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# Pulkovo 1942(58) / Poland zone I (deprecated) +<2171> +proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0.999800 +x_0=4637000 +y_0=5647000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs <> +# Pulkovo 1942(58) / Poland zone II +<2172> +proj=sterea +lat_0=53.00194444444445 +lon_0=21.50277777777778 +k=0.999800 +x_0=4603000 +y_0=5806000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs <> +# Pulkovo 1942(58) / Poland zone III +<2173> +proj=sterea +lat_0=53.58333333333334 +lon_0=17.00833333333333 +k=0.999800 +x_0=3501000 +y_0=5999000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs <> +# Pulkovo 1942(58) / Poland zone IV +<2174> +proj=sterea +lat_0=51.67083333333333 +lon_0=16.67222222222222 +k=0.999800 +x_0=3703000 +y_0=5627000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs <> +# Pulkovo 1942(58) / Poland zone V +<2175> +proj=tmerc +lat_0=0 +lon_0=18.95833333333333 +k=0.999983 +x_0=237000 +y_0=-4700000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs <> +# ETRS89 / Poland CS2000 zone 5 +<2176> +proj=tmerc +lat_0=0 +lon_0=15 +k=0.999923 +x_0=5500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / Poland CS2000 zone 6 +<2177> +proj=tmerc +lat_0=0 +lon_0=18 +k=0.999923 +x_0=6500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / Poland CS2000 zone 7 +<2178> +proj=tmerc +lat_0=0 +lon_0=21 +k=0.999923 +x_0=7500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / Poland CS2000 zone 8 +<2179> +proj=tmerc +lat_0=0 +lon_0=24 +k=0.999923 +x_0=8500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / Poland CS92 +<2180> +proj=tmerc +lat_0=0 +lon_0=19 +k=0.999300 +x_0=500000 +y_0=-5300000 +ellps=GRS80 +units=m +no_defs <> +# Azores Occidental 1939 / UTM zone 25N +<2188> +proj=utm +zone=25 +ellps=intl +units=m +no_defs <> +# Azores Central 1948 / UTM zone 26N +<2189> +proj=utm +zone=26 +ellps=intl +towgs84=-104,167,-38,0,0,0,0 +units=m +no_defs <> +# Azores Oriental 1940 / UTM zone 26N +<2190> +proj=utm +zone=26 +ellps=intl +towgs84=-203,141,53,0,0,0,0 +units=m +no_defs <> +# Madeira 1936 / UTM zone 28N (deprecated) +<2191> +proj=utm +zone=28 +ellps=intl +units=m +no_defs <> +# ED50 / France EuroLambert +<2192> +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.337229166666667 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +ellps=intl +units=m +no_defs <> +# NZGD2000 / New Zealand Transverse Mercator +<2193> +proj=tmerc +lat_0=0 +lon_0=173 +k=0.999600 +x_0=1600000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# American Samoa 1962 / American Samoa Lambert (deprecated) +<2194> +proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=-170 +k_0=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / UTM zone 2S +<2195> +proj=utm +zone=2 +south +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / Kp2000 Jutland +<2196> +proj=tmerc +lat_0=0 +lon_0=9.5 +k=0.999950 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / Kp2000 Zealand +<2197> +proj=tmerc +lat_0=0 +lon_0=12 +k=0.999950 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / Kp2000 Bornholm +<2198> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# Albanian 1987 / Gauss Kruger zone 4 (deprecated) +<2199> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# ATS77 / New Brunswick Stereographic (ATS77) +<2200> +proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=300000 +y_0=800000 +a=6378135 +b=6356750.304921594 +units=m +no_defs <> +# REGVEN / UTM zone 18N +<2201> +proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# REGVEN / UTM zone 19N +<2202> +proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# REGVEN / UTM zone 20N +<2203> +proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD27 / Tennessee +<2204> +proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.66666666666666 +lon_0=-86 +x_0=609601.2192024384 +y_0=30480.06096012192 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Kentucky North +<2205> +proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# ED50 / 3-degree Gauss-Kruger zone 9 +<2206> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=9500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ED50 / 3-degree Gauss-Kruger zone 10 +<2207> +proj=tmerc +lat_0=0 +lon_0=30 +k=1.000000 +x_0=10500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ED50 / 3-degree Gauss-Kruger zone 11 +<2208> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=11500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ED50 / 3-degree Gauss-Kruger zone 12 +<2209> +proj=tmerc +lat_0=0 +lon_0=36 +k=1.000000 +x_0=12500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ED50 / 3-degree Gauss-Kruger zone 13 +<2210> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=13500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ED50 / 3-degree Gauss-Kruger zone 14 +<2211> +proj=tmerc +lat_0=0 +lon_0=42 +k=1.000000 +x_0=14500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ED50 / 3-degree Gauss-Kruger zone 15 +<2212> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=15500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ETRS89 / TM 30 NE +<2213> +proj=tmerc +lat_0=0 +lon_0=30 +k=0.999600 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# Douala 1948 / AOF west (deprecated) +<2214> +proj=tmerc +lat_0=0 +lon_0=10.5 +k=0.999000 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0,0,0 +units=m +no_defs <> +# Manoca 1962 / UTM zone 32N +<2215> +proj=utm +zone=32 +a=6378249.2 +b=6356515 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +units=m +no_defs <> +# Qornoq 1927 / UTM zone 22N +<2216> +proj=utm +zone=22 +ellps=intl +units=m +no_defs <> +# Qornoq 1927 / UTM zone 23N +<2217> +proj=utm +zone=23 +ellps=intl +units=m +no_defs <> +# Scoresbysund 1952 / Greenland zone 5 east +# Unable to translate coordinate system EPSG:2218 into PROJ.4 format. +# +# ATS77 / UTM zone 19N +<2219> +proj=utm +zone=19 +a=6378135 +b=6356750.304921594 +units=m +no_defs <> +# ATS77 / UTM zone 20N +<2220> +proj=utm +zone=20 +a=6378135 +b=6356750.304921594 +units=m +no_defs <> +# Scoresbysund 1952 / Greenland zone 6 east +# Unable to translate coordinate system EPSG:2221 into PROJ.4 format. +# +# NAD83 / Arizona East (ft) +<2222> +proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs <> +# NAD83 / Arizona Central (ft) +<2223> +proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs <> +# NAD83 / Arizona West (ft) +<2224> +proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs <> +# NAD83 / California zone 1 (ftUS) +<2225> +proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / California zone 2 (ftUS) +<2226> +proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / California zone 3 (ftUS) +<2227> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / California zone 4 (ftUS) +<2228> +proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / California zone 5 (ftUS) +<2229> +proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / California zone 6 (ftUS) +<2230> +proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Colorado North (ftUS) +<2231> +proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Colorado Central (ftUS) +<2232> +proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Colorado South (ftUS) +<2233> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Connecticut (ftUS) +<2234> +proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_0=152400.3048006096 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Delaware (ftUS) +<2235> +proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Florida East (ftUS) +<2236> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Florida West (ftUS) +<2237> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Florida North (ftUS) +<2238> +proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Georgia East (ftUS) +<2239> +proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999900 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Georgia West (ftUS) +<2240> +proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999900 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Idaho East (ftUS) +<2241> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.999947 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Idaho Central (ftUS) +<2242> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.999947 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Idaho West (ftUS) +<2243> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Indiana East (ftUS) (deprecated) +<2244> +proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999967 +x_0=99999.99989839978 +y_0=249364.9987299975 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Indiana West (ftUS) (deprecated) +<2245> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999967 +x_0=900000 +y_0=249364.9987299975 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Kentucky North (ftUS) +<2246> +proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Kentucky South (ftUS) +<2247> +proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0001016001 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Maryland (ftUS) +<2248> +proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Massachusetts Mainland (ftUS) +<2249> +proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=750000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Massachusetts Island (ftUS) +<2250> +proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Michigan North (ft) +<2251> +proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999968001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs <> +# NAD83 / Michigan Central (ft) +<2252> +proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.999976001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs <> +# NAD83 / Michigan South (ft) +<2253> +proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs <> +# NAD83 / Mississippi East (ftUS) +<2254> +proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.999950 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Mississippi West (ftUS) +<2255> +proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.999950 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Montana (ft) +<2256> +proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs <> +# NAD83 / New Mexico East (ftUS) +<2257> +proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909 +x_0=165000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / New Mexico Central (ftUS) +<2258> +proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.999900 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / New Mexico West (ftUS) +<2259> +proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999917 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / New York East (ftUS) +<2260> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.999900 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / New York Central (ftUS) +<2261> +proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999938 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / New York West (ftUS) +<2262> +proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999938 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / New York Long Island (ftUS) +<2263> +proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / North Carolina (ftUS) +<2264> +proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / North Dakota North (ft) +<2265> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs <> +# NAD83 / North Dakota South (ft) +<2266> +proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs <> +# NAD83 / Oklahoma North (ftUS) +<2267> +proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Oklahoma South (ftUS) +<2268> +proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Oregon North (ft) +<2269> +proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs <> +# NAD83 / Oregon South (ft) +<2270> +proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs <> +# NAD83 / Pennsylvania North (ftUS) +<2271> +proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Pennsylvania South (ftUS) +<2272> +proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / South Carolina (ft) +<2273> +proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs <> +# NAD83 / Tennessee (ftUS) +<2274> +proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Texas North (ftUS) +<2275> +proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Texas North Central (ftUS) +<2276> +proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000.0001016 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Texas Central (ftUS) +<2277> +proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Texas South Central (ftUS) +<2278> +proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=3999999.9998984 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Texas South (ftUS) +<2279> +proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.0000000001 +y_0=5000000.0001016 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Utah North (ft) +<2280> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=999999.9999960001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs <> +# NAD83 / Utah Central (ft) +<2281> +proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=1999999.999992 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs <> +# NAD83 / Utah South (ft) +<2282> +proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0=2999999.999988 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs <> +# NAD83 / Virginia North (ftUS) +<2283> +proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2000000.0001016 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Virginia South (ftUS) +<2284> +proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=999999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Washington North (ftUS) +<2285> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Washington South (ftUS) +<2286> +proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Wisconsin North (ftUS) +<2287> +proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Wisconsin Central (ftUS) +<2288> +proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Wisconsin South (ftUS) +<2289> +proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# ATS77 / Prince Edward Isl. Stereographic (ATS77) +<2290> +proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=700000 +y_0=400000 +a=6378135 +b=6356750.304921594 +units=m +no_defs <> +# NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated) +<2291> +proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +a=6378135 +b=6356750.304921594 +units=m +no_defs <> +# NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) (deprecated) +<2292> +proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# ATS77 / MTM Nova Scotia zone 4 +<2294> +proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.999900 +x_0=4500000 +y_0=0 +a=6378135 +b=6356750.304921594 +units=m +no_defs <> +# ATS77 / MTM Nova Scotia zone 5 +<2295> +proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.999900 +x_0=5500000 +y_0=0 +a=6378135 +b=6356750.304921594 +units=m +no_defs <> +# Ammassalik 1958 / Greenland zone 7 east +# Unable to translate coordinate system EPSG:2296 into PROJ.4 format. +# +# Qornoq 1927 / Greenland zone 1 east (deprecated) +# Unable to translate coordinate system EPSG:2297 into PROJ.4 format. +# +# Qornoq 1927 / Greenland zone 2 east (deprecated) +# Unable to translate coordinate system EPSG:2298 into PROJ.4 format. +# +# Qornoq 1927 / Greenland zone 2 west +# Unable to translate coordinate system EPSG:2299 into PROJ.4 format. +# +# Qornoq 1927 / Greenland zone 3 east (deprecated) +# Unable to translate coordinate system EPSG:2300 into PROJ.4 format. +# +# Qornoq 1927 / Greenland zone 3 west +# Unable to translate coordinate system EPSG:2301 into PROJ.4 format. +# +# Qornoq 1927 / Greenland zone 4 east (deprecated) +# Unable to translate coordinate system EPSG:2302 into PROJ.4 format. +# +# Qornoq 1927 / Greenland zone 4 west +# Unable to translate coordinate system EPSG:2303 into PROJ.4 format. +# +# Qornoq 1927 / Greenland zone 5 west +# Unable to translate coordinate system EPSG:2304 into PROJ.4 format. +# +# Qornoq 1927 / Greenland zone 6 west +# Unable to translate coordinate system EPSG:2305 into PROJ.4 format. +# +# Qornoq 1927 / Greenland zone 7 west +# Unable to translate coordinate system EPSG:2306 into PROJ.4 format. +# +# Qornoq 1927 / Greenland zone 8 east +# Unable to translate coordinate system EPSG:2307 into PROJ.4 format. +# +# Batavia / TM 109 SE +<2308> +proj=tmerc +lat_0=0 +lon_0=109 +k=0.999600 +x_0=500000 +y_0=10000000 +ellps=bessel +units=m +no_defs <> +# WGS 84 / TM 116 SE +<2309> +proj=tmerc +lat_0=0 +lon_0=116 +k=0.999600 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / TM 132 SE +<2310> +proj=tmerc +lat_0=0 +lon_0=132 +k=0.999600 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / TM 6 NE +<2311> +proj=tmerc +lat_0=0 +lon_0=6 +k=0.999600 +x_0=500000 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# Garoua / UTM zone 33N +<2312> +proj=utm +zone=33 +ellps=clrk80 +units=m +no_defs <> +# Kousseri / UTM zone 33N +<2313> +proj=utm +zone=33 +ellps=clrk80 +units=m +no_defs <> +# Trinidad 1903 / Trinidad Grid (ftCla) +<2314> +proj=cass +lat_0=10.44166666666667 +lon_0=-61.33333333333334 +x_0=86501.46392052001 +y_0=65379.0134283 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.3047972654 +no_defs <> +# Campo Inchauspe / UTM zone 19S +<2315> +proj=utm +zone=19 +south +ellps=intl +units=m +no_defs <> +# Campo Inchauspe / UTM zone 20S +<2316> +proj=utm +zone=20 +south +ellps=intl +units=m +no_defs <> +# PSAD56 / ICN Regional +<2317> +proj=lcc +lat_1=9 +lat_2=3 +lat_0=6 +lon_0=-66 +x_0=1000000 +y_0=1000000 +ellps=intl +units=m +no_defs <> +# Ain el Abd / Aramco Lambert +<2318> +proj=lcc +lat_1=17 +lat_2=33 +lat_0=25.08951 +lon_0=48 +x_0=0 +y_0=0 +ellps=intl +units=m +no_defs <> +# ED50 / TM27 +<2319> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ED50 / TM30 +<2320> +proj=tmerc +lat_0=0 +lon_0=30 +k=1.000000 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ED50 / TM33 +<2321> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ED50 / TM36 +<2322> +proj=tmerc +lat_0=0 +lon_0=36 +k=1.000000 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ED50 / TM39 +<2323> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ED50 / TM42 +<2324> +proj=tmerc +lat_0=0 +lon_0=42 +k=1.000000 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ED50 / TM45 +<2325> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# Hong Kong 1980 Grid System +<2326> +proj=tmerc +lat_0=22.31213333333334 +lon_0=114.1785555555556 +k=1.000000 +x_0=836694.05 +y_0=819069.8 +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger zone 13 +<2327> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=13500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger zone 14 +<2328> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=14500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger zone 15 +<2329> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=15500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger zone 16 +<2330> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=16500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger zone 17 +<2331> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=17500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger zone 18 +<2332> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=18500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger zone 19 +<2333> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=19500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger zone 20 +<2334> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=20500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger zone 21 +<2335> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=21500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger zone 22 +<2336> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=22500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger zone 23 +<2337> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=23500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger CM 75E +<2338> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger CM 81E +<2339> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger CM 87E +<2340> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger CM 93E +<2341> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger CM 99E +<2342> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger CM 105E +<2343> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger CM 111E +<2344> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger CM 117E +<2345> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger CM 123E +<2346> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger CM 129E +<2347> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / Gauss-Kruger CM 135E +<2348> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 25 +<2349> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=25500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 26 +<2350> +proj=tmerc +lat_0=0 +lon_0=78 +k=1.000000 +x_0=26500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 27 +<2351> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=27500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 28 +<2352> +proj=tmerc +lat_0=0 +lon_0=84 +k=1.000000 +x_0=28500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 29 +<2353> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=29500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 30 +<2354> +proj=tmerc +lat_0=0 +lon_0=90 +k=1.000000 +x_0=30500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 31 +<2355> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=31500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 32 +<2356> +proj=tmerc +lat_0=0 +lon_0=96 +k=1.000000 +x_0=32500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 33 +<2357> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=33500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 34 +<2358> +proj=tmerc +lat_0=0 +lon_0=102 +k=1.000000 +x_0=34500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 35 +<2359> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=35500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 36 +<2360> +proj=tmerc +lat_0=0 +lon_0=108 +k=1.000000 +x_0=36500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 37 +<2361> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=37500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 38 +<2362> +proj=tmerc +lat_0=0 +lon_0=114 +k=1.000000 +x_0=38500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 39 +<2363> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=39500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 40 +<2364> +proj=tmerc +lat_0=0 +lon_0=120 +k=1.000000 +x_0=40500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 41 +<2365> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=41500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 42 +<2366> +proj=tmerc +lat_0=0 +lon_0=126 +k=1.000000 +x_0=42500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 43 +<2367> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=43500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 44 +<2368> +proj=tmerc +lat_0=0 +lon_0=132 +k=1.000000 +x_0=44500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 45 +<2369> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=45500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 75E +<2370> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 78E +<2371> +proj=tmerc +lat_0=0 +lon_0=78 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 81E +<2372> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 84E +<2373> +proj=tmerc +lat_0=0 +lon_0=84 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 87E +<2374> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 90E +<2375> +proj=tmerc +lat_0=0 +lon_0=90 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 93E +<2376> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 96E +<2377> +proj=tmerc +lat_0=0 +lon_0=96 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 99E +<2378> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 102E +<2379> +proj=tmerc +lat_0=0 +lon_0=102 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 105E +<2380> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 108E +<2381> +proj=tmerc +lat_0=0 +lon_0=108 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 111E +<2382> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 114E +<2383> +proj=tmerc +lat_0=0 +lon_0=114 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 117E +<2384> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 120E +<2385> +proj=tmerc +lat_0=0 +lon_0=120 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 123E +<2386> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 126E +<2387> +proj=tmerc +lat_0=0 +lon_0=126 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 129E +<2388> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 132E +<2389> +proj=tmerc +lat_0=0 +lon_0=132 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 135E +<2390> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs <> +# KKJ / Finland zone 1 +<2391> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# KKJ / Finland zone 2 +<2392> +proj=tmerc +lat_0=0 +lon_0=24 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# KKJ / Finland Uniform Coordinate System +<2393> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# KKJ / Finland zone 4 +<2394> +proj=tmerc +lat_0=0 +lon_0=30 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# South Yemen / Gauss-Kruger zone 8 +<2395> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defs <> +# South Yemen / Gauss-Kruger zone 9 +<2396> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defs <> +# Pulkovo 1942(83) / Gauss-Kruger zone 3 +<2397> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs <> +# Pulkovo 1942(83) / Gauss-Kruger zone 4 +<2398> +proj=tmerc +lat_0=0 +lon_0=12 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs <> +# Pulkovo 1942(83) / Gauss-Kruger zone 5 +<2399> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs <> +# RT90 2.5 gon W (deprecated) +<2400> +proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 25 +<2401> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 26 +<2402> +proj=tmerc +lat_0=0 +lon_0=78 +k=1.000000 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 27 +<2403> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 28 +<2404> +proj=tmerc +lat_0=0 +lon_0=84 +k=1.000000 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 29 +<2405> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 30 +<2406> +proj=tmerc +lat_0=0 +lon_0=90 +k=1.000000 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 31 +<2407> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 32 +<2408> +proj=tmerc +lat_0=0 +lon_0=96 +k=1.000000 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 33 +<2409> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=33500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 34 +<2410> +proj=tmerc +lat_0=0 +lon_0=102 +k=1.000000 +x_0=34500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 35 +<2411> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=35500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 36 +<2412> +proj=tmerc +lat_0=0 +lon_0=108 +k=1.000000 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 37 +<2413> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=37500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 38 +<2414> +proj=tmerc +lat_0=0 +lon_0=114 +k=1.000000 +x_0=38500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 39 +<2415> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=39500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 40 +<2416> +proj=tmerc +lat_0=0 +lon_0=120 +k=1.000000 +x_0=40500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 41 +<2417> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=41500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 42 +<2418> +proj=tmerc +lat_0=0 +lon_0=126 +k=1.000000 +x_0=42500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 43 +<2419> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=43500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 44 +<2420> +proj=tmerc +lat_0=0 +lon_0=132 +k=1.000000 +x_0=44500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 45 +<2421> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=45500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 75E +<2422> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 78E +<2423> +proj=tmerc +lat_0=0 +lon_0=78 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 81E +<2424> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 84E +<2425> +proj=tmerc +lat_0=0 +lon_0=84 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 87E +<2426> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 90E +<2427> +proj=tmerc +lat_0=0 +lon_0=90 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 93E +<2428> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 96E +<2429> +proj=tmerc +lat_0=0 +lon_0=96 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 99E +<2430> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 102E +<2431> +proj=tmerc +lat_0=0 +lon_0=102 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 105E +<2432> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 108E +<2433> +proj=tmerc +lat_0=0 +lon_0=108 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 111E +<2434> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 114E +<2435> +proj=tmerc +lat_0=0 +lon_0=114 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 117E +<2436> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 120E +<2437> +proj=tmerc +lat_0=0 +lon_0=120 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 123E +<2438> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 126E +<2439> +proj=tmerc +lat_0=0 +lon_0=126 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 129E +<2440> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 132E +<2441> +proj=tmerc +lat_0=0 +lon_0=132 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 135E +<2442> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS I +<2443> +proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS II +<2444> +proj=tmerc +lat_0=33 +lon_0=131 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS III +<2445> +proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS IV +<2446> +proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS V +<2447> +proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS VI +<2448> +proj=tmerc +lat_0=36 +lon_0=136 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS VII +<2449> +proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS VIII +<2450> +proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS IX +<2451> +proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS X +<2452> +proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS XI +<2453> +proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS XII +<2454> +proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS XIII +<2455> +proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS XIV +<2456> +proj=tmerc +lat_0=26 +lon_0=142 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS XV +<2457> +proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS XVI +<2458> +proj=tmerc +lat_0=26 +lon_0=124 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS XVII +<2459> +proj=tmerc +lat_0=26 +lon_0=131 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS XVIII +<2460> +proj=tmerc +lat_0=20 +lon_0=136 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / Japan Plane Rectangular CS XIX +<2461> +proj=tmerc +lat_0=26 +lon_0=154 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# Albanian 1987 / Gauss-Kruger zone 4 +<2462> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 21E +<2463> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 27E +<2464> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 33E +<2465> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 39E +<2466> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 45E +<2467> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 51E +<2468> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 57E +<2469> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 63E +<2470> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 69E +<2471> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 75E +<2472> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 81E +<2473> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 87E +<2474> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 93E +<2475> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 99E +<2476> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 105E +<2477> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 111E +<2478> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 117E +<2479> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 123E +<2480> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 129E +<2481> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 135E +<2482> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 141E +<2483> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 147E +<2484> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 153E +<2485> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 159E +<2486> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 165E +<2487> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 171E +<2488> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 177E +<2489> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 177W +<2490> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 171W +<2491> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 9E +<2492> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 15E +<2493> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 21E +<2494> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 27E +<2495> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 33E +<2496> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 39E +<2497> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 45E +<2498> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 51E +<2499> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 57E +<2500> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 63E +<2501> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 69E +<2502> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 75E +<2503> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 81E +<2504> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 87E +<2505> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 93E +<2506> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 99E +<2507> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 105E +<2508> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 111E +<2509> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 117E +<2510> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 123E +<2511> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 129E +<2512> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 135E +<2513> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 141E +<2514> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 147E +<2515> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 153E +<2516> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 159E +<2517> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 165E +<2518> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 171E +<2519> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 177E +<2520> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 177W +<2521> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 171W +<2522> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 7 +<2523> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 8 +<2524> +proj=tmerc +lat_0=0 +lon_0=24 +k=1.000000 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 9 +<2525> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 10 +<2526> +proj=tmerc +lat_0=0 +lon_0=30 +k=1.000000 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 11 +<2527> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 12 +<2528> +proj=tmerc +lat_0=0 +lon_0=36 +k=1.000000 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 13 +<2529> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 14 +<2530> +proj=tmerc +lat_0=0 +lon_0=42 +k=1.000000 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 15 +<2531> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 16 +<2532> +proj=tmerc +lat_0=0 +lon_0=48 +k=1.000000 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 17 +<2533> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 18 +<2534> +proj=tmerc +lat_0=0 +lon_0=54 +k=1.000000 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 19 +<2535> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 20 +<2536> +proj=tmerc +lat_0=0 +lon_0=60 +k=1.000000 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 21 +<2537> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 22 +<2538> +proj=tmerc +lat_0=0 +lon_0=66 +k=1.000000 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 23 +<2539> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 24 +<2540> +proj=tmerc +lat_0=0 +lon_0=72 +k=1.000000 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 25 +<2541> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 26 +<2542> +proj=tmerc +lat_0=0 +lon_0=78 +k=1.000000 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 27 +<2543> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 28 +<2544> +proj=tmerc +lat_0=0 +lon_0=84 +k=1.000000 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 29 +<2545> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 30 +<2546> +proj=tmerc +lat_0=0 +lon_0=90 +k=1.000000 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 31 +<2547> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 32 +<2548> +proj=tmerc +lat_0=0 +lon_0=96 +k=1.000000 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 33 +<2549> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=33500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Samboja / UTM zone 50S (deprecated) +<2550> +proj=utm +zone=50 +south +ellps=bessel +towgs84=-404.78,685.68,45.47,0,0,0,0 +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 34 +<2551> +proj=tmerc +lat_0=0 +lon_0=102 +k=1.000000 +x_0=34500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 35 +<2552> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=35500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 36 +<2553> +proj=tmerc +lat_0=0 +lon_0=108 +k=1.000000 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 37 +<2554> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=37500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 38 +<2555> +proj=tmerc +lat_0=0 +lon_0=114 +k=1.000000 +x_0=38500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 39 +<2556> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=39500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 40 +<2557> +proj=tmerc +lat_0=0 +lon_0=120 +k=1.000000 +x_0=40500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 41 +<2558> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=41500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 42 +<2559> +proj=tmerc +lat_0=0 +lon_0=126 +k=1.000000 +x_0=42500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 43 +<2560> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=43500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 44 +<2561> +proj=tmerc +lat_0=0 +lon_0=132 +k=1.000000 +x_0=44500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 45 +<2562> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=45500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 46 +<2563> +proj=tmerc +lat_0=0 +lon_0=138 +k=1.000000 +x_0=46500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 47 +<2564> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=47500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 48 +<2565> +proj=tmerc +lat_0=0 +lon_0=144 +k=1.000000 +x_0=48500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 49 +<2566> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=49500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 50 +<2567> +proj=tmerc +lat_0=0 +lon_0=150 +k=1.000000 +x_0=50500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 51 +<2568> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=51500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 52 +<2569> +proj=tmerc +lat_0=0 +lon_0=156 +k=1.000000 +x_0=52500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 53 +<2570> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=53500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 54 +<2571> +proj=tmerc +lat_0=0 +lon_0=162 +k=1.000000 +x_0=54500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 55 +<2572> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=55500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 56 +<2573> +proj=tmerc +lat_0=0 +lon_0=168 +k=1.000000 +x_0=56500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 57 +<2574> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=57500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 58 +<2575> +proj=tmerc +lat_0=0 +lon_0=174 +k=1.000000 +x_0=58500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 59 +<2576> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=59500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 60 (deprecated) +<2577> +proj=tmerc +lat_0=0 +lon_0=180 +k=1.000000 +x_0=60000000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 61 +<2578> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=61500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 62 +<2579> +proj=tmerc +lat_0=0 +lon_0=-174 +k=1.000000 +x_0=62500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 63 +<2580> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=63500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 64 +<2581> +proj=tmerc +lat_0=0 +lon_0=-168 +k=1.000000 +x_0=64500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E +<2582> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E +<2583> +proj=tmerc +lat_0=0 +lon_0=24 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E +<2584> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E +<2585> +proj=tmerc +lat_0=0 +lon_0=30 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E +<2586> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E +<2587> +proj=tmerc +lat_0=0 +lon_0=36 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E +<2588> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E +<2589> +proj=tmerc +lat_0=0 +lon_0=42 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E +<2590> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E +<2591> +proj=tmerc +lat_0=0 +lon_0=48 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E +<2592> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E +<2593> +proj=tmerc +lat_0=0 +lon_0=54 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E +<2594> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E +<2595> +proj=tmerc +lat_0=0 +lon_0=60 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E +<2596> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E +<2597> +proj=tmerc +lat_0=0 +lon_0=66 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E +<2598> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E +<2599> +proj=tmerc +lat_0=0 +lon_0=72 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Lietuvos Koordinoei Sistema 1994 (deprecated) +<2600> +proj=tmerc +lat_0=0 +lon_0=24 +k=0.999800 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E +<2601> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E +<2602> +proj=tmerc +lat_0=0 +lon_0=78 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E +<2603> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E +<2604> +proj=tmerc +lat_0=0 +lon_0=84 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E +<2605> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E +<2606> +proj=tmerc +lat_0=0 +lon_0=90 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E +<2607> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E +<2608> +proj=tmerc +lat_0=0 +lon_0=96 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E +<2609> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E +<2610> +proj=tmerc +lat_0=0 +lon_0=102 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E +<2611> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E +<2612> +proj=tmerc +lat_0=0 +lon_0=108 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E +<2613> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E +<2614> +proj=tmerc +lat_0=0 +lon_0=114 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E +<2615> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E +<2616> +proj=tmerc +lat_0=0 +lon_0=120 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E +<2617> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E +<2618> +proj=tmerc +lat_0=0 +lon_0=126 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E +<2619> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 132E +<2620> +proj=tmerc +lat_0=0 +lon_0=132 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 135E +<2621> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E +<2622> +proj=tmerc +lat_0=0 +lon_0=138 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E +<2623> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E +<2624> +proj=tmerc +lat_0=0 +lon_0=144 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 147E +<2625> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 150E +<2626> +proj=tmerc +lat_0=0 +lon_0=150 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 153E +<2627> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 156E +<2628> +proj=tmerc +lat_0=0 +lon_0=156 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 159E +<2629> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 162E +<2630> +proj=tmerc +lat_0=0 +lon_0=162 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 165E +<2631> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 168E +<2632> +proj=tmerc +lat_0=0 +lon_0=168 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 171E +<2633> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 174E +<2634> +proj=tmerc +lat_0=0 +lon_0=174 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 177E +<2635> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 180E +<2636> +proj=tmerc +lat_0=0 +lon_0=180 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 177W +<2637> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 174W +<2638> +proj=tmerc +lat_0=0 +lon_0=-174 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 171W +<2639> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 168W +<2640> +proj=tmerc +lat_0=0 +lon_0=-168 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 7 +<2641> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 8 +<2642> +proj=tmerc +lat_0=0 +lon_0=24 +k=1.000000 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 9 +<2643> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 10 +<2644> +proj=tmerc +lat_0=0 +lon_0=30 +k=1.000000 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 11 +<2645> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 12 +<2646> +proj=tmerc +lat_0=0 +lon_0=36 +k=1.000000 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 13 +<2647> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 14 +<2648> +proj=tmerc +lat_0=0 +lon_0=42 +k=1.000000 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 15 +<2649> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 16 +<2650> +proj=tmerc +lat_0=0 +lon_0=48 +k=1.000000 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 17 +<2651> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 18 +<2652> +proj=tmerc +lat_0=0 +lon_0=54 +k=1.000000 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 19 +<2653> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 20 +<2654> +proj=tmerc +lat_0=0 +lon_0=60 +k=1.000000 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 21 +<2655> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 22 +<2656> +proj=tmerc +lat_0=0 +lon_0=66 +k=1.000000 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 23 +<2657> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 24 +<2658> +proj=tmerc +lat_0=0 +lon_0=72 +k=1.000000 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 25 +<2659> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 26 +<2660> +proj=tmerc +lat_0=0 +lon_0=78 +k=1.000000 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 27 +<2661> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 28 +<2662> +proj=tmerc +lat_0=0 +lon_0=84 +k=1.000000 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 29 +<2663> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 30 +<2664> +proj=tmerc +lat_0=0 +lon_0=90 +k=1.000000 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 31 +<2665> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 32 +<2666> +proj=tmerc +lat_0=0 +lon_0=96 +k=1.000000 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 33 +<2667> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=33500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 34 +<2668> +proj=tmerc +lat_0=0 +lon_0=102 +k=1.000000 +x_0=34500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 35 +<2669> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=35500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 36 +<2670> +proj=tmerc +lat_0=0 +lon_0=108 +k=1.000000 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 37 +<2671> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=37500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 38 +<2672> +proj=tmerc +lat_0=0 +lon_0=114 +k=1.000000 +x_0=38500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 39 +<2673> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=39500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 40 +<2674> +proj=tmerc +lat_0=0 +lon_0=120 +k=1.000000 +x_0=40500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 41 +<2675> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=41500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 42 +<2676> +proj=tmerc +lat_0=0 +lon_0=126 +k=1.000000 +x_0=42500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 43 +<2677> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=43500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 44 +<2678> +proj=tmerc +lat_0=0 +lon_0=132 +k=1.000000 +x_0=44500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 45 +<2679> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=45500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 46 +<2680> +proj=tmerc +lat_0=0 +lon_0=138 +k=1.000000 +x_0=46500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 47 +<2681> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=47500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 48 +<2682> +proj=tmerc +lat_0=0 +lon_0=144 +k=1.000000 +x_0=48500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 49 +<2683> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=49500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 50 +<2684> +proj=tmerc +lat_0=0 +lon_0=150 +k=1.000000 +x_0=50500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 51 +<2685> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=51500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 52 +<2686> +proj=tmerc +lat_0=0 +lon_0=156 +k=1.000000 +x_0=52500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 53 +<2687> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=53500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 54 +<2688> +proj=tmerc +lat_0=0 +lon_0=162 +k=1.000000 +x_0=54500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 55 +<2689> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=55500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 56 +<2690> +proj=tmerc +lat_0=0 +lon_0=168 +k=1.000000 +x_0=56500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 57 +<2691> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=57500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 58 +<2692> +proj=tmerc +lat_0=0 +lon_0=174 +k=1.000000 +x_0=58500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 59 +<2693> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=59500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 60 (deprecated) +<2694> +proj=tmerc +lat_0=0 +lon_0=180 +k=1.000000 +x_0=60000000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 61 +<2695> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=61500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 62 +<2696> +proj=tmerc +lat_0=0 +lon_0=-174 +k=1.000000 +x_0=62500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 63 +<2697> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=63500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 64 +<2698> +proj=tmerc +lat_0=0 +lon_0=-168 +k=1.000000 +x_0=64500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E +<2699> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 24E +<2700> +proj=tmerc +lat_0=0 +lon_0=24 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E +<2701> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 30E +<2702> +proj=tmerc +lat_0=0 +lon_0=30 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E +<2703> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E +<2704> +proj=tmerc +lat_0=0 +lon_0=36 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E +<2705> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E +<2706> +proj=tmerc +lat_0=0 +lon_0=42 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E +<2707> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E +<2708> +proj=tmerc +lat_0=0 +lon_0=48 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E +<2709> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E +<2710> +proj=tmerc +lat_0=0 +lon_0=54 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E +<2711> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E +<2712> +proj=tmerc +lat_0=0 +lon_0=60 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E +<2713> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 66E +<2714> +proj=tmerc +lat_0=0 +lon_0=66 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E +<2715> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 72E +<2716> +proj=tmerc +lat_0=0 +lon_0=72 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E +<2717> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 78E +<2718> +proj=tmerc +lat_0=0 +lon_0=78 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 81E +<2719> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E +<2720> +proj=tmerc +lat_0=0 +lon_0=84 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E +<2721> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E +<2722> +proj=tmerc +lat_0=0 +lon_0=90 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E +<2723> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E +<2724> +proj=tmerc +lat_0=0 +lon_0=96 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E +<2725> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E +<2726> +proj=tmerc +lat_0=0 +lon_0=102 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E +<2727> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E +<2728> +proj=tmerc +lat_0=0 +lon_0=108 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 111E +<2729> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 114E +<2730> +proj=tmerc +lat_0=0 +lon_0=114 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E +<2731> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E +<2732> +proj=tmerc +lat_0=0 +lon_0=120 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E +<2733> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E +<2734> +proj=tmerc +lat_0=0 +lon_0=126 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E +<2735> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Tete / UTM zone 36S +<2736> +proj=utm +zone=36 +south +ellps=clrk66 +units=m +no_defs <> +# Tete / UTM zone 37S +<2737> +proj=utm +zone=37 +south +ellps=clrk66 +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E +<2738> +proj=tmerc +lat_0=0 +lon_0=132 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E +<2739> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E +<2740> +proj=tmerc +lat_0=0 +lon_0=138 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 141E +<2741> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E +<2742> +proj=tmerc +lat_0=0 +lon_0=144 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E +<2743> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E +<2744> +proj=tmerc +lat_0=0 +lon_0=150 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E +<2745> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 156E +<2746> +proj=tmerc +lat_0=0 +lon_0=156 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E +<2747> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E +<2748> +proj=tmerc +lat_0=0 +lon_0=162 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E +<2749> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E +<2750> +proj=tmerc +lat_0=0 +lon_0=168 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E +<2751> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 174E +<2752> +proj=tmerc +lat_0=0 +lon_0=174 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 177E +<2753> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 180E +<2754> +proj=tmerc +lat_0=0 +lon_0=180 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 177W +<2755> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 174W +<2756> +proj=tmerc +lat_0=0 +lon_0=-174 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 171W +<2757> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 168W +<2758> +proj=tmerc +lat_0=0 +lon_0=-168 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# NAD83(HARN) / Alabama East +<2759> +proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.999960 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Alabama West +<2760> +proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Arizona East +<2761> +proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Arizona Central +<2762> +proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Arizona West +<2763> +proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Arkansas North +<2764> +proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Arkansas South +<2765> +proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / California zone 1 +<2766> +proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / California zone 2 +<2767> +proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / California zone 3 +<2768> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / California zone 4 +<2769> +proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / California zone 5 +<2770> +proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / California zone 6 +<2771> +proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Colorado North +<2772> +proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Colorado Central +<2773> +proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Colorado South +<2774> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Connecticut +<2775> +proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Delaware +<2776> +proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Florida East +<2777> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Florida West +<2778> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Florida North +<2779> +proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Georgia East +<2780> +proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999900 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Georgia West +<2781> +proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999900 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Hawaii zone 1 +<2782> +proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999967 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Hawaii zone 2 +<2783> +proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999967 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Hawaii zone 3 +<2784> +proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.999990 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Hawaii zone 4 +<2785> +proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.999990 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Hawaii zone 5 +<2786> +proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Idaho East +<2787> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.999947 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Idaho Central +<2788> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.999947 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Idaho West +<2789> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933 +x_0=800000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Illinois East +<2790> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.999975 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Illinois West +<2791> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Indiana East +<2792> +proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999967 +x_0=100000 +y_0=250000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Indiana West +<2793> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999967 +x_0=900000 +y_0=250000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Iowa North +<2794> +proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Iowa South +<2795> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Kansas North +<2796> +proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Kansas South +<2797> +proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Kentucky North +<2798> +proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Kentucky South +<2799> +proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Louisiana North +<2800> +proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Louisiana South +<2801> +proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Maine East +<2802> +proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.999900 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Maine West +<2803> +proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999967 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Maryland +<2804> +proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Massachusetts Mainland +<2805> +proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Massachusetts Island +<2806> +proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Michigan North +<2807> +proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Michigan Central +<2808> +proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Michigan South +<2809> +proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Minnesota North +<2810> +proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Minnesota Central +<2811> +proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Minnesota South +<2812> +proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Mississippi East +<2813> +proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.999950 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Mississippi West +<2814> +proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.999950 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Missouri East +<2815> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Missouri Central +<2816> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Missouri West +<2817> +proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941 +x_0=850000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Montana +<2818> +proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Nebraska +<2819> +proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Nevada East +<2820> +proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.999900 +x_0=200000 +y_0=8000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Nevada Central +<2821> +proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.999900 +x_0=500000 +y_0=6000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Nevada West +<2822> +proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.999900 +x_0=800000 +y_0=4000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / New Hampshire +<2823> +proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999967 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / New Jersey +<2824> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.999900 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / New Mexico East +<2825> +proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909 +x_0=165000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / New Mexico Central +<2826> +proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / New Mexico West +<2827> +proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999917 +x_0=830000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / New York East +<2828> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.999900 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / New York Central +<2829> +proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999938 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / New York West +<2830> +proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999938 +x_0=350000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / New York Long Island +<2831> +proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / North Dakota North +<2832> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / North Dakota South +<2833> +proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Ohio North +<2834> +proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Ohio South +<2835> +proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Oklahoma North +<2836> +proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Oklahoma South +<2837> +proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Oregon North +<2838> +proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Oregon South +<2839> +proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Rhode Island +<2840> +proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.999994 +x_0=100000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / South Dakota North +<2841> +proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / South Dakota South +<2842> +proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Tennessee +<2843> +proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Texas North +<2844> +proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Texas North Central +<2845> +proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Texas Central +<2846> +proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Texas South Central +<2847> +proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Texas South +<2848> +proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=5000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Utah North +<2849> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Utah Central +<2850> +proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Utah South +<2851> +proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Vermont +<2852> +proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Virginia North +<2853> +proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Virginia South +<2854> +proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Washington North +<2855> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Washington South +<2856> +proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / West Virginia North +<2857> +proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / West Virginia South +<2858> +proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Wisconsin North +<2859> +proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Wisconsin Central +<2860> +proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Wisconsin South +<2861> +proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Wyoming East +<2862> +proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.999938 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Wyoming East Central +<2863> +proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.999938 +x_0=400000 +y_0=100000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Wyoming West Central +<2864> +proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.999938 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Wyoming West +<2865> +proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.999938 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Puerto Rico & Virgin Is. +<2866> +proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Arizona East (ft) +<2867> +proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / Arizona Central (ft) +<2868> +proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / Arizona West (ft) +<2869> +proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933 +x_0=213360 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / California zone 1 (ftUS) +<2870> +proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / California zone 2 (ftUS) +<2871> +proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / California zone 3 (ftUS) +<2872> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / California zone 4 (ftUS) +<2873> +proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / California zone 5 (ftUS) +<2874> +proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / California zone 6 (ftUS) +<2875> +proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Colorado North (ftUS) +<2876> +proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Colorado Central (ftUS) +<2877> +proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Colorado South (ftUS) +<2878> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Connecticut (ftUS) +<2879> +proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_0=152400.3048006096 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Delaware (ftUS) +<2880> +proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Florida East (ftUS) +<2881> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Florida West (ftUS) +<2882> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Florida North (ftUS) +<2883> +proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Georgia East (ftUS) +<2884> +proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999900 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Georgia West (ftUS) +<2885> +proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999900 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Idaho East (ftUS) +<2886> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.999947 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Idaho Central (ftUS) +<2887> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.999947 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Idaho West (ftUS) +<2888> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Indiana East (ftUS) (deprecated) +<2889> +proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999967 +x_0=99999.99989839978 +y_0=249364.9987299975 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Indiana West (ftUS) (deprecated) +<2890> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999967 +x_0=900000 +y_0=249364.9987299975 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Kentucky North (ftUS) +<2891> +proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Kentucky South (ftUS) +<2892> +proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0001016001 +y_0=500000.0001016001 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Maryland (ftUS) +<2893> +proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Massachusetts Mainland (ftUS) +<2894> +proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=750000 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Massachusetts Island (ftUS) +<2895> +proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Michigan North (ft) +<2896> +proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999968001 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / Michigan Central (ft) +<2897> +proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.999976001 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / Michigan South (ft) +<2898> +proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / Mississippi East (ftUS) +<2899> +proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.999950 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Mississippi West (ftUS) +<2900> +proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.999950 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Montana (ft) +<2901> +proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / New Mexico East (ftUS) +<2902> +proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909 +x_0=165000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / New Mexico Central (ftUS) +<2903> +proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.999900 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / New Mexico West (ftUS) +<2904> +proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999917 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / New York East (ftUS) +<2905> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.999900 +x_0=150000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / New York Central (ftUS) +<2906> +proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999938 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / New York West (ftUS) +<2907> +proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999938 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / New York Long Island (ftUS) +<2908> +proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / North Dakota North (ft) +<2909> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / North Dakota South (ft) +<2910> +proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / Oklahoma North (ftUS) +<2911> +proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Oklahoma South (ftUS) +<2912> +proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Oregon North (ft) +<2913> +proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / Oregon South (ft) +<2914> +proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / Tennessee (ftUS) +<2915> +proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Texas North (ftUS) +<2916> +proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.9998983998 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Texas North Central (ftUS) +<2917> +proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000.0001016 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Texas Central (ftUS) +<2918> +proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Texas South Central (ftUS) +<2919> +proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=3999999.9998984 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Texas South (ftUS) +<2920> +proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.0000000001 +y_0=5000000.0001016 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Utah North (ft) +<2921> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=999999.9999960001 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / Utah Central (ft) +<2922> +proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=1999999.999992 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / Utah South (ft) +<2923> +proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0=2999999.999988 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / Virginia North (ftUS) +<2924> +proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2000000.0001016 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Virginia South (ftUS) +<2925> +proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=999999.9998983998 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Washington North (ftUS) +<2926> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Washington South (ftUS) +<2927> +proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Wisconsin North (ftUS) +<2928> +proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Wisconsin Central (ftUS) +<2929> +proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Wisconsin South (ftUS) +<2930> +proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# Beduaram / TM 13 NE +<2931> +proj=tmerc +lat_0=0 +lon_0=13 +k=0.999600 +x_0=500000 +y_0=0 +a=6378249.2 +b=6356515 +towgs84=-106,-87,188,0,0,0,0 +units=m +no_defs <> +# QND95 / Qatar National Grid +<2932> +proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.999990 +x_0=200000 +y_0=300000 +ellps=intl +towgs84=-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706 +units=m +no_defs <> +# Segara / UTM zone 50S +<2933> +proj=utm +zone=50 +south +ellps=bessel +units=m +no_defs <> +# Segara (Jakarta) / NEIEZ (deprecated) +<2934> +proj=merc +lon_0=110 +k=0.997000 +x_0=3900000 +y_0=900000 +ellps=bessel +pm=jakarta +units=m +no_defs <> +# Pulkovo 1942 / CS63 zone A1 +<2935> +proj=tmerc +lat_0=0.1166666666666667 +lon_0=41.53333333333333 +k=1.000000 +x_0=1300000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / CS63 zone A2 +<2936> +proj=tmerc +lat_0=0.1166666666666667 +lon_0=44.53333333333333 +k=1.000000 +x_0=2300000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / CS63 zone A3 +<2937> +proj=tmerc +lat_0=0.1166666666666667 +lon_0=47.53333333333333 +k=1.000000 +x_0=3300000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / CS63 zone A4 +<2938> +proj=tmerc +lat_0=0.1166666666666667 +lon_0=50.53333333333333 +k=1.000000 +x_0=4300000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / CS63 zone K2 +<2939> +proj=tmerc +lat_0=0.1333333333333333 +lon_0=50.76666666666667 +k=1.000000 +x_0=2300000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / CS63 zone K3 +<2940> +proj=tmerc +lat_0=0.1333333333333333 +lon_0=53.76666666666667 +k=1.000000 +x_0=3300000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / CS63 zone K4 +<2941> +proj=tmerc +lat_0=0.1333333333333333 +lon_0=56.76666666666667 +k=1.000000 +x_0=4300000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Porto Santo / UTM zone 28N +<2942> +proj=utm +zone=28 +ellps=intl +towgs84=-499,-249,314,0,0,0,0 +units=m +no_defs <> +# Selvagem Grande / UTM zone 28N +<2943> +proj=utm +zone=28 +ellps=intl +units=m +no_defs <> +# NAD83(CSRS) / SCoPQ zone 2 +<2944> +proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / MTM zone 3 +<2945> +proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / MTM zone 4 +<2946> +proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / MTM zone 5 +<2947> +proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / MTM zone 6 +<2948> +proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / MTM zone 7 +<2949> +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / MTM zone 8 +<2950> +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / MTM zone 9 +<2951> +proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / MTM zone 10 +<2952> +proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / New Brunswick Stereo +<2953> +proj=sterea +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2500000 +y_0=7500000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / Prince Edward Isl. Stereographic (NAD83) +<2954> +proj=sterea +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / UTM zone 11N +<2955> +proj=utm +zone=11 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / UTM zone 12N +<2956> +proj=utm +zone=12 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / UTM zone 13N +<2957> +proj=utm +zone=13 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / UTM zone 17N +<2958> +proj=utm +zone=17 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / UTM zone 18N +<2959> +proj=utm +zone=18 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / UTM zone 19N +<2960> +proj=utm +zone=19 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / UTM zone 20N +<2961> +proj=utm +zone=20 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / UTM zone 21N +<2962> +proj=utm +zone=21 +ellps=GRS80 +units=m +no_defs <> +# Lisbon 1890 (Lisbon) / Portugal Bonne +# Unable to translate coordinate system EPSG:2963 into PROJ.4 format. +# +# NAD27 / Alaska Albers +<2964> +proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Indiana East (ftUS) +<2965> +proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999967 +x_0=99999.99989839978 +y_0=249999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Indiana West (ftUS) +<2966> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999967 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Indiana East (ftUS) +<2967> +proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999967 +x_0=99999.99989839978 +y_0=249999.9998983998 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Indiana West (ftUS) +<2968> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999967 +x_0=900000 +y_0=249999.9998983998 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# Fort Marigot / UTM zone 20N +<2969> +proj=utm +zone=20 +ellps=intl +towgs84=137,248,-430,0,0,0,0 +units=m +no_defs <> +# Guadeloupe 1948 / UTM zone 20N +<2970> +proj=utm +zone=20 +ellps=intl +units=m +no_defs <> +# CSG67 / UTM zone 22N +<2971> +proj=utm +zone=22 +ellps=intl +towgs84=-186,230,110,0,0,0,0 +units=m +no_defs <> +# RGFG95 / UTM zone 22N +<2972> +proj=utm +zone=22 +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +units=m +no_defs <> +# Martinique 1938 / UTM zone 20N +<2973> +proj=utm +zone=20 +ellps=intl +units=m +no_defs <> +# RGR92 / UTM zone 40S +<2975> +proj=utm +zone=40 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# Tahiti 52 / UTM zone 6S +<2976> +proj=utm +zone=6 +south +ellps=intl +towgs84=162,117,154,0,0,0,0 +units=m +no_defs <> +# Tahaa 54 / UTM zone 5S +<2977> +proj=utm +zone=5 +south +ellps=intl +units=m +no_defs <> +# IGN72 Nuku Hiva / UTM zone 7S +<2978> +proj=utm +zone=7 +south +ellps=intl +units=m +no_defs <> +# K0 1949 / UTM zone 42S (deprecated) +<2979> +proj=utm +zone=42 +south +ellps=intl +towgs84=145,-187,103,0,0,0,0 +units=m +no_defs <> +# Combani 1950 / UTM zone 38S +<2980> +proj=utm +zone=38 +south +ellps=intl +towgs84=-382,-59,-262,0,0,0,0 +units=m +no_defs <> +# IGN56 Lifou / UTM zone 58S +<2981> +proj=utm +zone=58 +south +ellps=intl +units=m +no_defs <> +# IGN72 Grand Terre / UTM zone 58S (deprecated) +<2982> +proj=utm +zone=58 +south +ellps=intl +units=m +no_defs <> +# ST87 Ouvea / UTM zone 58S (deprecated) +<2983> +proj=utm +zone=58 +south +ellps=intl +towgs84=-122.383,-188.696,103.344,3.5107,-4.9668,-5.7047,4.4798 +units=m +no_defs <> +# RGNC 1991 / Lambert New Caledonia (deprecated) +<2984> +proj=lcc +lat_1=-20.66666666666667 +lat_2=-22.33333333333333 +lat_0=-21.5 +lon_0=166 +x_0=400000 +y_0=300000 +ellps=intl +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# Petrels 1972 / Terre Adelie Polar Stereographic +# Unable to translate coordinate system EPSG:2985 into PROJ.4 format. +# +# Perroud 1950 / Terre Adelie Polar Stereographic +# Unable to translate coordinate system EPSG:2986 into PROJ.4 format. +# +# Saint Pierre et Miquelon 1950 / UTM zone 21N +<2987> +proj=utm +zone=21 +ellps=clrk66 +towgs84=30,430,368,0,0,0,0 +units=m +no_defs <> +# MOP78 / UTM zone 1S +<2988> +proj=utm +zone=1 +south +ellps=intl +units=m +no_defs <> +# RRAF 1991 / UTM zone 20N +<2989> +proj=utm +zone=20 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# Reunion 1947 / TM Reunion +<2990> +proj=tmerc +lat_0=-21.11666666666667 +lon_0=55.53333333333333 +k=1.000000 +x_0=50000 +y_0=160000 +ellps=intl +units=m +no_defs <> +# NAD83 / Oregon Lambert +<2991> +proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Oregon Lambert (ft) +<2992> +proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / Oregon Lambert +<2993> +proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Oregon Lambert (ft) +<2994> +proj=lcc +lat_1=43 +lat_2=45.5 +lat_0=41.75 +lon_0=-120.5 +x_0=399999.9999984 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# IGN53 Mare / UTM zone 58S +<2995> +proj=utm +zone=58 +south +ellps=intl +units=m +no_defs <> +# ST84 Ile des Pins / UTM zone 58S +<2996> +proj=utm +zone=58 +south +ellps=intl +units=m +no_defs <> +# ST71 Belep / UTM zone 58S +<2997> +proj=utm +zone=58 +south +ellps=intl +towgs84=-480.26,-438.32,-643.429,16.3119,20.1721,-4.0349,-111.7 +units=m +no_defs <> +# NEA74 Noumea / UTM zone 58S +<2998> +proj=utm +zone=58 +south +ellps=intl +units=m +no_defs <> +# Grand Comoros / UTM zone 38S +<2999> +proj=utm +zone=38 +south +ellps=intl +units=m +no_defs <> +# Segara / NEIEZ +<3000> +proj=merc +lon_0=110 +k=0.997000 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defs <> +# Batavia / NEIEZ +<3001> +proj=merc +lon_0=110 +k=0.997000 +x_0=3900000 +y_0=900000 +ellps=bessel +units=m +no_defs <> +# Makassar / NEIEZ +<3002> +proj=merc +lon_0=110 +k=0.997000 +x_0=3900000 +y_0=900000 +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +units=m +no_defs <> +# Monte Mario / Italy zone 1 +<3003> +proj=tmerc +lat_0=0 +lon_0=9 +k=0.999600 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# Monte Mario / Italy zone 2 +<3004> +proj=tmerc +lat_0=0 +lon_0=15 +k=0.999600 +x_0=2520000 +y_0=0 +ellps=intl +units=m +no_defs <> +# NAD83 / BC Albers +<3005> +proj=aea +lat_1=50 +lat_2=58.5 +lat_0=45 +lon_0=-126 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# SWEREF99 TM +<3006> +proj=utm +zone=33 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SWEREF99 12 00 +<3007> +proj=tmerc +lat_0=0 +lon_0=12 +k=1.000000 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SWEREF99 13 30 +<3008> +proj=tmerc +lat_0=0 +lon_0=13.5 +k=1.000000 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SWEREF99 15 00 +<3009> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SWEREF99 16 30 +<3010> +proj=tmerc +lat_0=0 +lon_0=16.5 +k=1.000000 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SWEREF99 18 00 +<3011> +proj=tmerc +lat_0=0 +lon_0=18 +k=1.000000 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SWEREF99 14 15 +<3012> +proj=tmerc +lat_0=0 +lon_0=14.25 +k=1.000000 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SWEREF99 15 45 +<3013> +proj=tmerc +lat_0=0 +lon_0=15.75 +k=1.000000 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SWEREF99 17 15 +<3014> +proj=tmerc +lat_0=0 +lon_0=17.25 +k=1.000000 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SWEREF99 18 45 +<3015> +proj=tmerc +lat_0=0 +lon_0=18.75 +k=1.000000 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SWEREF99 20 15 +<3016> +proj=tmerc +lat_0=0 +lon_0=20.25 +k=1.000000 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SWEREF99 21 45 +<3017> +proj=tmerc +lat_0=0 +lon_0=21.75 +k=1.000000 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SWEREF99 23 15 +<3018> +proj=tmerc +lat_0=0 +lon_0=23.25 +k=1.000000 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# RT90 7.5 gon V +<3019> +proj=tmerc +lat_0=0 +lon_0=11.30827777777778 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# RT90 5 gon V +<3020> +proj=tmerc +lat_0=0 +lon_0=13.55827777777778 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# RT90 2.5 gon V +<3021> +proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# RT90 0 gon +<3022> +proj=tmerc +lat_0=0 +lon_0=18.05827777777778 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# RT90 2.5 gon O +<3023> +proj=tmerc +lat_0=0 +lon_0=20.30827777777778 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# RT90 5 gon O +<3024> +proj=tmerc +lat_0=0 +lon_0=22.55827777777778 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# RT38 7.5 gon V +<3025> +proj=tmerc +lat_0=0 +lon_0=11.30827777777778 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# RT38 5 gon V +<3026> +proj=tmerc +lat_0=0 +lon_0=13.55827777777778 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# RT38 2.5 gon V +<3027> +proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# RT38 0 gon +<3028> +proj=tmerc +lat_0=0 +lon_0=18.05827777777778 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# RT38 2.5 gon O +<3029> +proj=tmerc +lat_0=0 +lon_0=20.30827777777778 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# RT38 5 gon O +<3030> +proj=tmerc +lat_0=0 +lon_0=22.55827777777778 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# WGS 84 / Antarctic Polar Stereographic +<3031> +proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / Australian Antarctic Polar Stereographic +<3032> +proj=stere +lat_0=-90 +lat_ts=-71 +lon_0=70 +k=1 +x_0=6000000 +y_0=6000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / Australian Antarctic Lambert +<3033> +proj=lcc +lat_1=-68.5 +lat_2=-74.5 +lat_0=-50 +lon_0=70 +x_0=6000000 +y_0=6000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# ETRS89 / ETRS-LCC +<3034> +proj=lcc +lat_1=35 +lat_2=65 +lat_0=52 +lon_0=10 +x_0=4000000 +y_0=2800000 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-LAEA +<3035> +proj=laea +lat_0=52 +lon_0=10 +x_0=4321000 +y_0=3210000 +ellps=GRS80 +units=m +no_defs <> +# Moznet / UTM zone 36S +<3036> +proj=utm +zone=36 +south +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defs <> +# Moznet / UTM zone 37S +<3037> +proj=utm +zone=37 +south +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defs <> +# ETRS89 / ETRS-TM26 +<3038> +proj=utm +zone=26 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-TM27 +<3039> +proj=utm +zone=27 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-TM28 +<3040> +proj=utm +zone=28 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-TM29 +<3041> +proj=utm +zone=29 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-TM30 +<3042> +proj=utm +zone=30 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-TM31 +<3043> +proj=utm +zone=31 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-TM32 +<3044> +proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-TM33 +<3045> +proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-TM34 +<3046> +proj=utm +zone=34 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-TM35 +<3047> +proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-TM36 +<3048> +proj=utm +zone=36 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-TM37 +<3049> +proj=utm +zone=37 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-TM38 +<3050> +proj=utm +zone=38 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-TM39 +<3051> +proj=utm +zone=39 +ellps=GRS80 +units=m +no_defs <> +# Reykjavik 1900 / Lambert 1900 +# Unable to translate coordinate system EPSG:3052 into PROJ.4 format. +# +# Hjorsey 1955 / Lambert 1955 +# Unable to translate coordinate system EPSG:3053 into PROJ.4 format. +# +# Hjorsey 1955 / UTM zone 26N +<3054> +proj=utm +zone=26 +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +units=m +no_defs <> +# Hjorsey 1955 / UTM zone 27N +<3055> +proj=utm +zone=27 +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +units=m +no_defs <> +# Hjorsey 1955 / UTM zone 28N +<3056> +proj=utm +zone=28 +ellps=intl +towgs84=-73,46,-86,0,0,0,0 +units=m +no_defs <> +# ISN93 / Lambert 1993 +<3057> +proj=lcc +lat_1=64.25 +lat_2=65.75 +lat_0=65 +lon_0=-19 +x_0=500000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# Helle 1954 / Jan Mayen Grid +<3058> +proj=tmerc +lat_0=0 +lon_0=-8.5 +k=1.000000 +x_0=50000 +y_0=-7800000 +ellps=intl +towgs84=982.609,552.753,-540.873,32.3934,-153.257,-96.2266,16.805 +units=m +no_defs <> +# LKS92 / Latvia TM +<3059> +proj=tmerc +lat_0=0 +lon_0=24 +k=0.999600 +x_0=500000 +y_0=-6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# IGN72 Grande Terre / UTM zone 58S +<3060> +proj=utm +zone=58 +south +ellps=intl +units=m +no_defs <> +# Porto Santo 1995 / UTM zone 28N +<3061> +proj=utm +zone=28 +ellps=intl +units=m +no_defs <> +# Azores Oriental 1995 / UTM zone 26N +<3062> +proj=utm +zone=26 +ellps=intl +units=m +no_defs <> +# Azores Central 1995 / UTM zone 26N +<3063> +proj=utm +zone=26 +ellps=intl +units=m +no_defs <> +# IGM95 / UTM zone 32N +<3064> +proj=utm +zone=32 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# IGM95 / UTM zone 33N +<3065> +proj=utm +zone=33 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# ED50 / Jordan TM +<3066> +proj=tmerc +lat_0=0 +lon_0=37 +k=0.999800 +x_0=500000 +y_0=-3000000 +ellps=intl +units=m +no_defs <> +# ETRS89 / ETRS-TM35FIN +<3067> +proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs <> +# DHDN / Soldner Berlin +<3068> +proj=cass +lat_0=52.41864827777778 +lon_0=13.62720366666667 +x_0=40000 +y_0=10000 +ellps=bessel +datum=potsdam +units=m +no_defs <> +# NAD27 / Wisconsin Transverse Mercator +<3069> +proj=tmerc +lat_0=0 +lon_0=-90 +k=0.999600 +x_0=500000 +y_0=-4500000 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD83 / Wisconsin Transverse Mercator +<3070> +proj=tmerc +lat_0=0 +lon_0=-90 +k=0.999600 +x_0=520000 +y_0=-4480000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83(HARN) / Wisconsin Transverse Mercator +<3071> +proj=tmerc +lat_0=0 +lon_0=-90 +k=0.999600 +x_0=520000 +y_0=-4480000 +ellps=GRS80 +units=m +no_defs <> +# NAD83 / Maine CS2000 East +<3072> +proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0.999980 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Maine CS2000 Central +<3073> +proj=tmerc +lat_0=43 +lon_0=-69.125 +k=0.999980 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Maine CS2000 West +<3074> +proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0.999980 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83(HARN) / Maine CS2000 East +<3075> +proj=tmerc +lat_0=43.83333333333334 +lon_0=-67.875 +k=0.999980 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Maine CS2000 Central +<3076> +proj=tmerc +lat_0=43 +lon_0=-69.125 +k=0.999980 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Maine CS2000 West +<3077> +proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.375 +k=0.999980 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83 / Michigan Oblique Mercator +<3078> +proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83(HARN) / Michigan Oblique Mercator +<3079> +proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.25556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +units=m +no_defs <> +# NAD27 / Shackleford +<3080> +proj=lcc +lat_1=27.41666666666667 +lat_2=34.91666666666666 +lat_0=31.16666666666667 +lon_0=-100 +x_0=914400 +y_0=914400 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048 +no_defs <> +# NAD83 / Texas State Mapping System +<3081> +proj=lcc +lat_1=27.41666666666667 +lat_2=34.91666666666666 +lat_0=31.16666666666667 +lon_0=-100 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Texas Centric Lambert Conformal +<3082> +proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=5000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Texas Centric Albers Equal Area +<3083> +proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=6000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83(HARN) / Texas Centric Lambert Conformal +<3084> +proj=lcc +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=5000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Texas Centric Albers Equal Area +<3085> +proj=aea +lat_1=27.5 +lat_2=35 +lat_0=18 +lon_0=-100 +x_0=1500000 +y_0=6000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83 / Florida GDL Albers +<3086> +proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83(HARN) / Florida GDL Albers +<3087> +proj=aea +lat_1=24 +lat_2=31.5 +lat_0=24 +lon_0=-84 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83 / Kentucky Single Zone +<3088> +proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Kentucky Single Zone (ftUS) +<3089> +proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=999999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Kentucky Single Zone +<3090> +proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Kentucky Single Zone (ftUS) +<3091> +proj=lcc +lat_1=37.08333333333334 +lat_2=38.66666666666666 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=1500000 +y_0=999999.9998983998 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# Tokyo / UTM zone 51N +<3092> +proj=utm +zone=51 +ellps=bessel +units=m +no_defs <> +# Tokyo / UTM zone 52N +<3093> +proj=utm +zone=52 +ellps=bessel +units=m +no_defs <> +# Tokyo / UTM zone 53N +<3094> +proj=utm +zone=53 +ellps=bessel +units=m +no_defs <> +# Tokyo / UTM zone 54N +<3095> +proj=utm +zone=54 +ellps=bessel +units=m +no_defs <> +# Tokyo / UTM zone 55N +<3096> +proj=utm +zone=55 +ellps=bessel +units=m +no_defs <> +# JGD2000 / UTM zone 51N +<3097> +proj=utm +zone=51 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / UTM zone 52N +<3098> +proj=utm +zone=52 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / UTM zone 53N +<3099> +proj=utm +zone=53 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / UTM zone 54N +<3100> +proj=utm +zone=54 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# JGD2000 / UTM zone 55N +<3101> +proj=utm +zone=55 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# American Samoa 1962 / American Samoa Lambert +<3102> +proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=-170 +k_0=1 +x_0=152400.3048006096 +y_0=95169.31165862332 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +to_meter=0.3048006096012192 +no_defs <> +# Mauritania 1999 / UTM zone 28N (deprecated) +<3103> +proj=utm +zone=28 +ellps=clrk80 +units=m +no_defs <> +# Mauritania 1999 / UTM zone 29N (deprecated) +<3104> +proj=utm +zone=29 +ellps=clrk80 +units=m +no_defs <> +# Mauritania 1999 / UTM zone 30N (deprecated) +<3105> +proj=utm +zone=30 +ellps=clrk80 +units=m +no_defs <> +# Gulshan 303 / Bangladesh Transverse Mercator +<3106> +proj=tmerc +lat_0=0 +lon_0=90 +k=0.999600 +x_0=500000 +y_0=0 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs <> +# GDA94 / SA Lambert +<3107> +proj=lcc +lat_1=-28 +lat_2=-36 +lat_0=-32 +lon_0=135 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# ETRS89 / Guernsey Grid +<3108> +proj=tmerc +lat_0=49.5 +lon_0=-2.416666666666667 +k=0.999997 +x_0=47000 +y_0=50000 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / Jersey Transverse Mercator +<3109> +proj=tmerc +lat_0=49.225 +lon_0=-2.135 +k=1.000000 +x_0=40000 +y_0=70000 +ellps=GRS80 +units=m +no_defs <> +# AGD66 / Vicgrid66 +<3110> +proj=lcc +lat_1=-36 +lat_2=-38 +lat_0=-37 +lon_0=145 +x_0=2500000 +y_0=4500000 +ellps=aust_SA +units=m +no_defs <> +# GDA94 / Vicgrid94 +<3111> +proj=lcc +lat_1=-36 +lat_2=-38 +lat_0=-37 +lon_0=145 +x_0=2500000 +y_0=2500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GDA94 / Geoscience Australia Lambert +<3112> +proj=lcc +lat_1=-18 +lat_2=-36 +lat_0=0 +lon_0=134 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GDA94 / BCSG02 +<3113> +proj=tmerc +lat_0=-28 +lon_0=153 +k=0.999990 +x_0=50000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# MAGNA-SIRGAS / Colombia Far West zone +<3114> +proj=tmerc +lat_0=4.596200416666666 +lon_0=-80.07750791666666 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# MAGNA-SIRGAS / Colombia West zone +<3115> +proj=tmerc +lat_0=4.596200416666666 +lon_0=-77.07750791666666 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# MAGNA-SIRGAS / Colombia Bogota zone +<3116> +proj=tmerc +lat_0=4.596200416666666 +lon_0=-74.07750791666666 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# MAGNA-SIRGAS / Colombia East Central zone +<3117> +proj=tmerc +lat_0=4.596200416666666 +lon_0=-71.07750791666666 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# MAGNA-SIRGAS / Colombia East zone +<3118> +proj=tmerc +lat_0=4.596200416666666 +lon_0=-68.07750791666666 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# Douala 1948 / AEF west +<3119> +proj=tmerc +lat_0=0 +lon_0=10.5 +k=0.999000 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=-206.1,-174.7,-87.7,0,0,0,0 +units=m +no_defs <> +# Pulkovo 1942(58) / Poland zone I +<3120> +proj=sterea +lat_0=50.625 +lon_0=21.08333333333333 +k=0.999800 +x_0=4637000 +y_0=5467000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs <> +# PRS92 / Philippines zone 1 +<3121> +proj=tmerc +lat_0=0 +lon_0=117 +k=0.999950 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defs <> +# PRS92 / Philippines zone 2 +<3122> +proj=tmerc +lat_0=0 +lon_0=119 +k=0.999950 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defs <> +# PRS92 / Philippines zone 3 +<3123> +proj=tmerc +lat_0=0 +lon_0=121 +k=0.999950 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defs <> +# PRS92 / Philippines zone 4 +<3124> +proj=tmerc +lat_0=0 +lon_0=123 +k=0.999950 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defs <> +# PRS92 / Philippines zone 5 +<3125> +proj=tmerc +lat_0=0 +lon_0=125 +k=0.999950 +x_0=500000 +y_0=0 +ellps=clrk66 +towgs84=-127.62,-67.24,-47.04,-3.068,4.903,1.578,-1.06 +units=m +no_defs <> +# ETRS89 / ETRS-GK19FIN +<3126> +proj=tmerc +lat_0=0 +lon_0=19 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-GK20FIN +<3127> +proj=tmerc +lat_0=0 +lon_0=20 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-GK21FIN +<3128> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-GK22FIN +<3129> +proj=tmerc +lat_0=0 +lon_0=22 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-GK23FIN +<3130> +proj=tmerc +lat_0=0 +lon_0=23 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-GK24FIN +<3131> +proj=tmerc +lat_0=0 +lon_0=24 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-GK25FIN +<3132> +proj=tmerc +lat_0=0 +lon_0=25 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-GK26FIN +<3133> +proj=tmerc +lat_0=0 +lon_0=26 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-GK27FIN +<3134> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-GK28FIN +<3135> +proj=tmerc +lat_0=0 +lon_0=28 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-GK29FIN +<3136> +proj=tmerc +lat_0=0 +lon_0=29 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-GK30FIN +<3137> +proj=tmerc +lat_0=0 +lon_0=30 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / ETRS-GK31FIN +<3138> +proj=tmerc +lat_0=0 +lon_0=31 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# Vanua Levu 1915 / Vanua Levu Grid +# Unable to translate coordinate system EPSG:3139 into PROJ.4 format. +# +# Viti Levu 1912 / Viti Levu Grid +<3140> +proj=cass +lat_0=-18 +lon_0=178 +x_0=109435.392 +y_0=141622.272 +a=6378306.3696 +b=6356571.996 +towgs84=51,391,-36,0,0,0,0 +to_meter=0.201168 +no_defs <> +# Fiji 1956 / UTM zone 60S +<3141> +proj=utm +zone=60 +south +ellps=intl +towgs84=265.025,384.929,-194.046,0,0,0,0 +units=m +no_defs <> +# Fiji 1956 / UTM zone 1S +<3142> +proj=utm +zone=1 +south +ellps=intl +towgs84=265.025,384.929,-194.046,0,0,0,0 +units=m +no_defs <> +# Fiji 1986 / Fiji Map Grid +<3143> +proj=tmerc +lat_0=-17 +lon_0=178.75 +k=0.999850 +x_0=2000000 +y_0=4000000 +ellps=WGS72 +units=m +no_defs <> +# FD54 / Faroe Lambert +# Unable to translate coordinate system EPSG:3144 into PROJ.4 format. +# +# ETRS89 / Faroe Lambert +# Unable to translate coordinate system EPSG:3145 into PROJ.4 format. +# +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 6 +<3146> +proj=tmerc +lat_0=0 +lon_0=18 +k=1.000000 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 18E +<3147> +proj=tmerc +lat_0=0 +lon_0=18 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Indian 1960 / UTM zone 48N +<3148> +proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs <> +# Indian 1960 / UTM zone 49N +<3149> +proj=utm +zone=49 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 6 +<3150> +proj=tmerc +lat_0=0 +lon_0=18 +k=1.000000 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 18E +<3151> +proj=tmerc +lat_0=0 +lon_0=18 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# ST74 +<3152> +proj=tmerc +lat_0=0 +lon_0=18.05779 +k=0.999994 +x_0=100178.1808 +y_0=-6500614.7836 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83(CSRS) / BC Albers +<3153> +proj=aea +lat_1=50 +lat_2=58.5 +lat_0=45 +lon_0=-126 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / UTM zone 7N +<3154> +proj=utm +zone=7 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / UTM zone 8N +<3155> +proj=utm +zone=8 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / UTM zone 9N +<3156> +proj=utm +zone=9 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / UTM zone 10N +<3157> +proj=utm +zone=10 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / UTM zone 14N +<3158> +proj=utm +zone=14 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / UTM zone 15N +<3159> +proj=utm +zone=15 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / UTM zone 16N +<3160> +proj=utm +zone=16 +ellps=GRS80 +units=m +no_defs <> +# NAD83 / Ontario MNR Lambert +<3161> +proj=lcc +lat_1=44.5 +lat_2=53.5 +lat_0=0 +lon_0=-85 +x_0=930000 +y_0=6430000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83(CSRS) / Ontario MNR Lambert +<3162> +proj=lcc +lat_1=44.5 +lat_2=53.5 +lat_0=0 +lon_0=-85 +x_0=930000 +y_0=6430000 +ellps=GRS80 +units=m +no_defs <> +# RGNC91-93 / Lambert New Caledonia +<3163> +proj=lcc +lat_1=-20.66666666666667 +lat_2=-22.33333333333333 +lat_0=-21.5 +lon_0=166 +x_0=400000 +y_0=300000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# ST87 Ouvea / UTM zone 58S +<3164> +proj=utm +zone=58 +south +ellps=WGS84 +towgs84=-56.263,16.136,-22.856,0,0,0,0 +units=m +no_defs <> +# NEA74 Noumea / Noumea Lambert +<3165> +proj=lcc +lat_1=-22.24469175 +lat_2=-22.29469175 +lat_0=-22.26969175 +lon_0=166.44242575 +x_0=0.66 +y_0=1.02 +ellps=intl +units=m +no_defs <> +# NEA74 Noumea / Noumea Lambert 2 +<3166> +proj=lcc +lat_1=-22.24472222222222 +lat_2=-22.29472222222222 +lat_0=-22.26972222222222 +lon_0=166.4425 +x_0=8.313000000000001 +y_0=-2.354 +ellps=intl +units=m +no_defs <> +# Kertau (RSO) / RSO Malaya (ch) +<3167> +proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=0.99984 +x_0=40000 +y_0=0 +a=6377295.664 +b=6356094.667915204 +to_meter=20.116756 +no_defs <> +# Kertau (RSO) / RSO Malaya (m) +<3168> +proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=0.99984 +x_0=804670.24 +y_0=0 +a=6377295.664 +b=6356094.667915204 +units=m +no_defs <> +# RGNC91-93 / UTM zone 57S +<3169> +proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# RGNC91-93 / UTM zone 58S +<3170> +proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# RGNC91-93 / UTM zone 59S +<3171> +proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# IGN53 Mare / UTM zone 59S +<3172> +proj=utm +zone=59 +south +ellps=intl +units=m +no_defs <> +# fk89 / Faroe Lambert FK89 +# Unable to translate coordinate system EPSG:3173 into PROJ.4 format. +# +# Indian 1960 / TM 106 NE +<3176> +proj=tmerc +lat_0=0 +lon_0=106 +k=0.999600 +x_0=500000 +y_0=0 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs <> +# LGD2006 / Libya TM +<3177> +proj=tmerc +lat_0=0 +lon_0=17 +k=0.996500 +x_0=1000000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs <> +# GR96 / UTM zone 18N +<3178> +proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GR96 / UTM zone 19N +<3179> +proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GR96 / UTM zone 20N +<3180> +proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GR96 / UTM zone 21N +<3181> +proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GR96 / UTM zone 22N +<3182> +proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GR96 / UTM zone 23N +<3183> +proj=utm +zone=23 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GR96 / UTM zone 24N +<3184> +proj=utm +zone=24 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GR96 / UTM zone 25N +<3185> +proj=utm +zone=25 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GR96 / UTM zone 26N +<3186> +proj=utm +zone=26 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GR96 / UTM zone 27N +<3187> +proj=utm +zone=27 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GR96 / UTM zone 28N +<3188> +proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GR96 / UTM zone 29N +<3189> +proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# LGD2006 / Libya TM zone 5 +<3190> +proj=tmerc +lat_0=0 +lon_0=9 +k=0.999950 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs <> +# LGD2006 / Libya TM zone 6 +<3191> +proj=tmerc +lat_0=0 +lon_0=11 +k=0.999950 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs <> +# LGD2006 / Libya TM zone 7 +<3192> +proj=tmerc +lat_0=0 +lon_0=13 +k=0.999950 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs <> +# LGD2006 / Libya TM zone 8 +<3193> +proj=tmerc +lat_0=0 +lon_0=15 +k=0.999950 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs <> +# LGD2006 / Libya TM zone 9 +<3194> +proj=tmerc +lat_0=0 +lon_0=17 +k=0.999950 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs <> +# LGD2006 / Libya TM zone 10 +<3195> +proj=tmerc +lat_0=0 +lon_0=19 +k=0.999950 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs <> +# LGD2006 / Libya TM zone 11 +<3196> +proj=tmerc +lat_0=0 +lon_0=21 +k=0.999950 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs <> +# LGD2006 / Libya TM zone 12 +<3197> +proj=tmerc +lat_0=0 +lon_0=23 +k=0.999950 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs <> +# LGD2006 / Libya TM zone 13 +<3198> +proj=tmerc +lat_0=0 +lon_0=25 +k=0.999950 +x_0=200000 +y_0=0 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs <> +# LGD2006 / UTM zone 32N +<3199> +proj=utm +zone=32 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs <> +# FD58 / Iraq zone +<3200> +proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +units=m +no_defs <> +# LGD2006 / UTM zone 33N +<3201> +proj=utm +zone=33 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs <> +# LGD2006 / UTM zone 34N +<3202> +proj=utm +zone=34 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs <> +# LGD2006 / UTM zone 35N +<3203> +proj=utm +zone=35 +ellps=intl +towgs84=-208.406,-109.878,-2.5764,0,0,0,0 +units=m +no_defs <> +# WGS 84 / SCAR IMW SP19-20 +<3204> +proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.33333333333334 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SP21-22 +<3205> +proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.33333333333334 +lat_0=-90 +lon_0=-54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SP23-24 +<3206> +proj=lcc +lat_1=-60.66666666666666 +lat_2=-63.33333333333334 +lat_0=-90 +lon_0=-42 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SQ01-02 +<3207> +proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=-174 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SQ19-20 +<3208> +proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SQ21-22 +<3209> +proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=-54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SQ37-38 +<3210> +proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=42 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SQ39-40 +<3211> +proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SQ41-42 +<3212> +proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SQ43-44 +<3213> +proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=78 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SQ45-46 +<3214> +proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SQ47-48 +<3215> +proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=102 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SQ49-50 +<3216> +proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=114 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SQ51-52 +<3217> +proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=126 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SQ53-54 +<3218> +proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=138 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SQ55-56 +<3219> +proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=150 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SQ57-58 +<3220> +proj=lcc +lat_1=-64.66666666666667 +lat_2=-67.33333333333333 +lat_0=-90 +lon_0=162 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR13-14 +<3221> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-102 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR15-16 +<3222> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR17-18 +<3223> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-78 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR19-20 +<3224> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR27-28 +<3225> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-18 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR29-30 +<3226> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=-6 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR31-32 +<3227> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=6 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR33-34 +<3228> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=18 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR35-36 +<3229> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=30 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR37-38 +<3230> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=42 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR39-40 +<3231> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=54 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR41-42 +<3232> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=66 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR43-44 +<3233> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=78 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR45-46 +<3234> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=90 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR47-48 +<3235> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=102 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR49-50 +<3236> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=114 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR51-52 +<3237> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=126 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR53-54 +<3238> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=138 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR55-56 +<3239> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=150 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR57-58 +<3240> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=162 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SR59-60 +<3241> +proj=lcc +lat_1=-68.66666666666667 +lat_2=-71.33333333333333 +lat_0=-90 +lon_0=174 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS04-06 +<3242> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-153 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS07-09 +<3243> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-135 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS10-12 +<3244> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-117 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS13-15 +<3245> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-99 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS16-18 +<3246> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-81 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS19-21 +<3247> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-63 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS25-27 +<3248> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-27 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS28-30 +<3249> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=-9 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS31-33 +<3250> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=9 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS34-36 +<3251> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=27 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS37-39 +<3252> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=45 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS40-42 +<3253> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=63 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS43-45 +<3254> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=81 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS46-48 +<3255> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=99 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS49-51 +<3256> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=117 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS52-54 +<3257> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=135 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS55-57 +<3258> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=153 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SS58-60 +<3259> +proj=lcc +lat_1=-72.66666666666667 +lat_2=-75.33333333333333 +lat_0=-90 +lon_0=171 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW ST01-04 +<3260> +proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-168 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW ST05-08 +<3261> +proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-144 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW ST09-12 +<3262> +proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-120 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW ST13-16 +<3263> +proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-96 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW ST17-20 +<3264> +proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-72 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW ST21-24 +<3265> +proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-48 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW ST25-28 +<3266> +proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=-24 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW ST29-32 +<3267> +proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW ST33-36 +<3268> +proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=24 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW ST37-40 +<3269> +proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=48 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW ST41-44 +<3270> +proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=72 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW ST45-48 +<3271> +proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=96 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW ST49-52 +<3272> +proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=120 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW ST53-56 +<3273> +proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=144 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW ST57-60 +<3274> +proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-90 +lon_0=168 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SU01-05 +<3275> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-165 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SU06-10 +<3276> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-135 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SU11-15 +<3277> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-105 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SU16-20 +<3278> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-75 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SU21-25 +<3279> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-45 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SU26-30 +<3280> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-15 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SU31-35 +<3281> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=15 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SU36-40 +<3282> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=45 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SU41-45 +<3283> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=75 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SU46-50 +<3284> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=105 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SU51-55 +<3285> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=135 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SU56-60 +<3286> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=165 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SV01-10 +<3287> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SV11-20 +<3288> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-90 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SV21-30 +<3289> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=-30 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SV31-40 +<3290> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=30 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SV41-50 +<3291> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=90 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SV51-60 +<3292> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=150 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / SCAR IMW SW01-60 +<3293> +proj=stere +lat_0=-90 +lat_ts=-80.23861111111111 +lon_0=0 +k=1 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / USGS Transantarctic Mountains +<3294> +proj=lcc +lat_1=-76.66666666666667 +lat_2=-79.33333333333333 +lat_0=-78 +lon_0=162 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# Guam 1963 / Yap Islands +# Unable to translate coordinate system EPSG:3295 into PROJ.4 format. +# +# RGPF / UTM zone 5S +<3296> +proj=utm +zone=5 +south +ellps=GRS80 +units=m +no_defs <> +# RGPF / UTM zone 6S +<3297> +proj=utm +zone=6 +south +ellps=GRS80 +units=m +no_defs <> +# RGPF / UTM zone 7S +<3298> +proj=utm +zone=7 +south +ellps=GRS80 +units=m +no_defs <> +# RGPF / UTM zone 8S +<3299> +proj=utm +zone=8 +south +ellps=GRS80 +units=m +no_defs <> +# Estonian Coordinate System of 1992 +<3300> +proj=lcc +lat_1=59.33333333333334 +lat_2=58 +lat_0=57.51755393055556 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014 +units=m +no_defs <> +# Estonian Coordinate System of 1997 +<3301> +proj=lcc +lat_1=59.33333333333334 +lat_2=58 +lat_0=57.51755393055556 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# IGN63 Hiva Oa / UTM zone 7S +<3302> +proj=utm +zone=7 +south +ellps=intl +units=m +no_defs <> +# Fatu Iva 72 / UTM zone 7S +<3303> +proj=utm +zone=7 +south +ellps=intl +towgs84=347.103,1078.12,2623.92,-33.8875,70.6773,-9.3943,186.074 +units=m +no_defs <> +# Tahiti 79 / UTM zone 6S +<3304> +proj=utm +zone=6 +south +ellps=intl +units=m +no_defs <> +# Moorea 87 / UTM zone 6S +<3305> +proj=utm +zone=6 +south +ellps=intl +towgs84=215.525,149.593,176.229,-3.2624,-1.692,-1.1571,10.4773 +units=m +no_defs <> +# Maupiti 83 / UTM zone 5S +<3306> +proj=utm +zone=5 +south +ellps=intl +towgs84=217.037,86.959,23.956,0,0,0,0 +units=m +no_defs <> +# Nakhl-e Ghanem / UTM zone 39N +<3307> +proj=utm +zone=39 +ellps=WGS84 +towgs84=0,-0.15,0.68,0,0,0,0 +units=m +no_defs <> +# GDA94 / NSW Lambert +<3308> +proj=lcc +lat_1=-30.75 +lat_2=-35.75 +lat_0=-33.25 +lon_0=147 +x_0=9300000 +y_0=4500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD27 / California Albers +<3309> +proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD83 / California Albers +<3310> +proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83(HARN) / California Albers +<3311> +proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=GRS80 +units=m +no_defs <> +# CSG67 / UTM zone 21N +<3312> +proj=utm +zone=21 +ellps=intl +towgs84=-186,230,110,0,0,0,0 +units=m +no_defs <> +# RGFG95 / UTM zone 21N +<3313> +proj=utm +zone=21 +ellps=GRS80 +towgs84=2,2,-2,0,0,0,0 +units=m +no_defs <> +# Katanga 1955 / Katanga Lambert +<3314> +proj=lcc +lat_1=-6.5 +lat_2=-11.5 +lat_0=0 +lon_0=26 +x_0=0 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# Katanga 1955 / Katanga TM +<3315> +proj=tmerc +lat_0=-9 +lon_0=26 +k=0.999800 +x_0=0 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# Kasai 1953 / Congo TM zone 22 +<3316> +proj=tmerc +lat_0=0 +lon_0=22 +k=0.999900 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs <> +# Kasai 1953 / Congo TM zone 24 +<3317> +proj=tmerc +lat_0=0 +lon_0=24 +k=0.999900 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs <> +# IGC 1962 / Congo TM zone 12 +<3318> +proj=tmerc +lat_0=0 +lon_0=12 +k=0.999900 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs <> +# IGC 1962 / Congo TM zone 14 +<3319> +proj=tmerc +lat_0=0 +lon_0=14 +k=0.999900 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs <> +# IGC 1962 / Congo TM zone 16 +<3320> +proj=tmerc +lat_0=0 +lon_0=16 +k=0.999900 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs <> +# IGC 1962 / Congo TM zone 18 +<3321> +proj=tmerc +lat_0=0 +lon_0=18 +k=0.999900 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs <> +# IGC 1962 / Congo TM zone 20 +<3322> +proj=tmerc +lat_0=0 +lon_0=20 +k=0.999900 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs <> +# IGC 1962 / Congo TM zone 22 +<3323> +proj=tmerc +lat_0=0 +lon_0=22 +k=0.999900 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs <> +# IGC 1962 / Congo TM zone 24 +<3324> +proj=tmerc +lat_0=0 +lon_0=24 +k=0.999900 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs <> +# IGC 1962 / Congo TM zone 26 +<3325> +proj=tmerc +lat_0=0 +lon_0=26 +k=0.999900 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs <> +# IGC 1962 / Congo TM zone 28 +<3326> +proj=tmerc +lat_0=0 +lon_0=28 +k=0.999900 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs <> +# IGC 1962 / Congo TM zone 30 +<3327> +proj=tmerc +lat_0=0 +lon_0=30 +k=0.999900 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs <> +# Pulkovo 1942(58) / GUGiK-80 +<3328> +proj=sterea +lat_0=52.16666666666666 +lon_0=19.16666666666667 +k=0.999714 +x_0=500000 +y_0=500000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs <> +# Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 5 +<3329> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs <> +# Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 6 +<3330> +proj=tmerc +lat_0=0 +lon_0=18 +k=1.000000 +x_0=6500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs <> +# Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 7 +<3331> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=7500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs <> +# Pulkovo 1942(58) / 3-degree Gauss-Kruger zone 8 +<3332> +proj=tmerc +lat_0=0 +lon_0=24 +k=1.000000 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs <> +# Pulkovo 1942(58) / Gauss-Kruger zone 3 +<3333> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs <> +# Pulkovo 1942(58) / Gauss-Kruger zone 4 +<3334> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs <> +# Pulkovo 1942(58) / Gauss-Kruger zone 5 +<3335> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs <> +# IGN 1962 Kerguelen / UTM zone 42S +<3336> +proj=utm +zone=42 +south +ellps=intl +towgs84=145,-187,103,0,0,0,0 +units=m +no_defs <> +# Le Pouce 1934 / Mauritius Grid +<3337> +proj=lcc +lat_1=-20.19506944444445 +lat_0=-20.19506944444445 +lon_0=57.52182777777778 +k_0=1 +x_0=1000000 +y_0=1000000 +ellps=clrk80 +towgs84=-770.1,158.4,-498.2,0,0,0,0 +units=m +no_defs <> +# IGCB 1955 / Congo TM zone 12 +<3339> +proj=tmerc +lat_0=0 +lon_0=12 +k=0.999900 +x_0=500000 +y_0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defs <> +# IGCB 1955 / Congo TM zone 14 +<3340> +proj=tmerc +lat_0=0 +lon_0=14 +k=0.999900 +x_0=500000 +y_0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defs <> +# IGCB 1955 / Congo TM zone 16 +<3341> +proj=tmerc +lat_0=0 +lon_0=16 +k=0.999900 +x_0=500000 +y_0=10000000 +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defs <> +# IGCB 1955 / UTM zone 33S +<3342> +proj=utm +zone=33 +south +ellps=clrk80 +towgs84=-79.9,-158,-168.9,0,0,0,0 +units=m +no_defs <> +# Mauritania 1999 / UTM zone 28N +<3343> +proj=utm +zone=28 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# Mauritania 1999 / UTM zone 29N +<3344> +proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# Mauritania 1999 / UTM zone 30N +<3345> +proj=utm +zone=30 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# LKS94 / Lithuania TM +<3346> +proj=tmerc +lat_0=0 +lon_0=24 +k=0.999800 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD83 / Statistics Canada Lambert +<3347> +proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-91.86666666666666 +x_0=6200000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83(CSRS) / Statistics Canada Lambert +<3348> +proj=lcc +lat_1=49 +lat_2=77 +lat_0=63.390675 +lon_0=-91.86666666666666 +x_0=6200000 +y_0=3000000 +ellps=GRS80 +units=m +no_defs <> +# WGS 84 / PDC Mercator +<3349> +proj=merc +lon_0=-150 +k=1.000000 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# Pulkovo 1942 / CS63 zone C0 +<3350> +proj=tmerc +lat_0=0.1 +lon_0=21.95 +k=1.000000 +x_0=250000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / CS63 zone C1 +<3351> +proj=tmerc +lat_0=0.1 +lon_0=24.95 +k=1.000000 +x_0=1250000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / CS63 zone C2 +<3352> +proj=tmerc +lat_0=0.1 +lon_0=27.95 +k=1.000000 +x_0=2250000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Mhast (onshore) / UTM zone 32S +<3353> +proj=utm +zone=32 +south +ellps=intl +units=m +no_defs <> +# Mhast (offshore) / UTM zone 32S +<3354> +proj=utm +zone=32 +south +ellps=intl +units=m +no_defs <> +# Egypt Gulf of Suez S-650 TL / Red Belt +<3355> +proj=tmerc +lat_0=30 +lon_0=31 +k=1.000000 +x_0=615000 +y_0=810000 +ellps=helmert +towgs84=-146.21,112.63,4.05,0,0,0,0 +units=m +no_defs <> +# Grand Cayman 1959 / UTM zone 17N +<3356> +proj=utm +zone=17 +ellps=clrk66 +towgs84=67.8,106.1,138.8,0,0,0,0 +units=m +no_defs <> +# Little Cayman 1961 / UTM zone 17N +<3357> +proj=utm +zone=17 +ellps=clrk66 +units=m +no_defs <> +# NAD83(HARN) / North Carolina +<3358> +proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / North Carolina (ftUS) (deprecated) +<3359> +proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024385 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / South Carolina +<3360> +proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / South Carolina (ft) +<3361> +proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +to_meter=0.3048 +no_defs <> +# NAD83(HARN) / Pennsylvania North +<3362> +proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Pennsylvania North (ftUS) +<3363> +proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# NAD83(HARN) / Pennsylvania South +<3364> +proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / Pennsylvania South (ftUS) +<3365> +proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# Hong Kong 1963 Grid System (deprecated) +<3366> +proj=cass +lat_0=22.31213333333334 +lon_0=114.1785555555556 +x_0=40243.57775604237 +y_0=19069.93351512578 +a=6378293.645208759 +b=6356617.987679838 +units=m +no_defs <> +# IGN Astro 1960 / UTM zone 28N +<3367> +proj=utm +zone=28 +ellps=clrk80 +units=m +no_defs <> +# IGN Astro 1960 / UTM zone 29N +<3368> +proj=utm +zone=29 +ellps=clrk80 +units=m +no_defs <> +# IGN Astro 1960 / UTM zone 30N +<3369> +proj=utm +zone=30 +ellps=clrk80 +units=m +no_defs <> +# NAD27 / UTM zone 59N +<3370> +proj=utm +zone=59 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 60N +<3371> +proj=utm +zone=60 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD83 / UTM zone 59N +<3372> +proj=utm +zone=59 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 60N +<3373> +proj=utm +zone=60 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# FD54 / UTM zone 29N +<3374> +proj=utm +zone=29 +ellps=intl +units=m +no_defs <> +# GDM2000 / Peninsula RSO +<3375> +proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257964666666 +k=0.99984 +x_0=804671 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# GDM2000 / East Malaysia BRSO +<3376> +proj=omerc +lat_0=4 +lonc=115 +alpha=53.31580995 +k=0.99984 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# GDM2000 / Johor Grid +<3377> +proj=cass +lat_0=2.121679744444445 +lon_0=103.4279362361111 +x_0=-14810.562 +y_0=8758.32 +ellps=GRS80 +units=m +no_defs <> +# GDM2000 / Sembilan and Melaka Grid +<3378> +proj=cass +lat_0=2.682347636111111 +lon_0=101.9749050416667 +x_0=3673.785 +y_0=-4240.573 +ellps=GRS80 +units=m +no_defs <> +# GDM2000 / PahangGrid +<3379> +proj=cass +lat_0=3.769388088888889 +lon_0=102.3682989833333 +x_0=-7368.228 +y_0=6485.858 +ellps=GRS80 +units=m +no_defs <> +# GDM2000 / Selangor Grid +<3380> +proj=cass +lat_0=3.68464905 +lon_0=101.3891079138889 +x_0=-34836.161 +y_0=56464.049 +ellps=GRS80 +units=m +no_defs <> +# GDM2000 / Terengganu Grid +<3381> +proj=cass +lat_0=4.9762852 +lon_0=103.070275625 +x_0=19594.245 +y_0=3371.895 +ellps=GRS80 +units=m +no_defs <> +# GDM2000 / Pinang Grid +<3382> +proj=cass +lat_0=5.421517541666667 +lon_0=100.3443769638889 +x_0=-23.414 +y_0=62.283 +ellps=GRS80 +units=m +no_defs <> +# GDM2000 / Kedah and Perlis Grid +<3383> +proj=cass +lat_0=5.964672713888889 +lon_0=100.6363711111111 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# GDM2000 / Perak Grid +<3384> +proj=cass +lat_0=4.859063022222222 +lon_0=100.8154105861111 +x_0=-1.769 +y_0=133454.779 +ellps=GRS80 +units=m +no_defs <> +# GDM2000 / Kelantan Grid +<3385> +proj=cass +lat_0=5.972543658333334 +lon_0=102.2952416694444 +x_0=13227.851 +y_0=8739.894 +ellps=GRS80 +units=m +no_defs <> +# KKJ / Finland zone 0 +<3386> +proj=tmerc +lat_0=0 +lon_0=18 +k=1.000000 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# KKJ / Finland zone 5 +<3387> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# Pulkovo 1942 / Caspian Sea Mercator +<3388> +proj=merc +lon_0=51 +k=1.000000 +x_0=0 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 60 +<3389> +proj=tmerc +lat_0=0 +lon_0=180 +k=1.000000 +x_0=60500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 60 +<3390> +proj=tmerc +lat_0=0 +lon_0=180 +k=1.000000 +x_0=60500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Karbala 1979 (Polservice) / UTM zone 37N +<3391> +proj=utm +zone=37 +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +units=m +no_defs <> +# Karbala 1979 (Polservice) / UTM zone 38N +<3392> +proj=utm +zone=38 +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +units=m +no_defs <> +# Karbala 1979 (Polservice) / UTM zone 39N +<3393> +proj=utm +zone=39 +ellps=clrk80 +towgs84=84.1,-320.1,218.7,0,0,0,0 +units=m +no_defs <> +# Nahrwan 1934 / Iraq zone +<3394> +proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +units=m +no_defs <> +# WGS 84 / World Mercator +<3395> +proj=merc +lon_0=0 +k=1.000000 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# PD/83 / 3-degree Gauss zone 3 +<3396> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# PD/83 / 3-degree Gauss zone 4 +<3397> +proj=tmerc +lat_0=0 +lon_0=12 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# RD/83 / 3-degree Gauss zone 4 +<3398> +proj=tmerc +lat_0=0 +lon_0=12 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# RD/83 / 3-degree Gauss zone 5 +<3399> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# NAD83 / Alberta 10-TM (Forest) +<3400> +proj=tmerc +lat_0=0 +lon_0=-115 +k=0.999200 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Alberta 10-TM (Resource) +<3401> +proj=tmerc +lat_0=0 +lon_0=-115 +k=0.999200 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83(CSRS) / Alberta 10-TM (Forest) +<3402> +proj=tmerc +lat_0=0 +lon_0=-115 +k=0.999200 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(CSRS) / Alberta 10-TM (Resource) +<3403> +proj=tmerc +lat_0=0 +lon_0=-115 +k=0.999200 +x_0=0 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# NAD83(HARN) / North Carolina (ftUS) +<3404> +proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=GRS80 +to_meter=0.3048006096012192 +no_defs <> +# VN-2000 / UTM zone 48N +<3405> +proj=utm +zone=48 +ellps=WGS84 +units=m +no_defs <> +# VN-2000 / UTM zone 49N +<3406> +proj=utm +zone=49 +ellps=WGS84 +units=m +no_defs <> +# Hong Kong 1963 Grid System +<3407> +proj=cass +lat_0=22.31213333333334 +lon_0=114.1785555555556 +x_0=40243.57775604237 +y_0=19069.93351512578 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.3047972654 +no_defs <> +# PSD93 / UTM zone 39N +<3439> +proj=utm +zone=39 +ellps=clrk80 +units=m +no_defs <> +# PSD93 / UTM zone 40N +<3440> +proj=utm +zone=40 +ellps=clrk80 +units=m +no_defs <> +# Old Hawaiian / Hawaii zone 1 +<3561> +proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999967 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs <> +# Old Hawaiian / Hawaii zone 2 +<3562> +proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999967 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs <> +# Old Hawaiian / Hawaii zone 3 +<3563> +proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.999990 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs <> +# Old Hawaiian / Hawaii zone 4 +<3564> +proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.999990 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs <> +# Old Hawaiian / Hawaii zone 5 +<3565> +proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1.000000 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs <> +# Puerto Rico / UTM zone 20N +<3920> +proj=utm +zone=20 +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +units=m +no_defs <> +# Puerto Rico State Plane CS of 1927 +<3991> +proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +to_meter=0.3048006096012192 +no_defs <> +# Puerto Rico / St. Croix +<3992> +proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=152400.3048006096 +y_0=30480.06096012192 +ellps=clrk66 +towgs84=11,72,-101,0,0,0,0 +to_meter=0.3048006096012192 +no_defs <> +# Guam 1963 / Guam SPCS +# Unable to translate coordinate system EPSG:3993 into PROJ.4 format. +# +# Pulkovo 1995 / Gauss-Kruger zone 4 +<20004> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 5 +<20005> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 6 +<20006> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 7 +<20007> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 8 +<20008> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 9 +<20009> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 10 +<20010> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 11 +<20011> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 12 +<20012> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 13 +<20013> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 14 +<20014> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 15 +<20015> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 16 +<20016> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 17 +<20017> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 18 +<20018> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 19 +<20019> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 20 +<20020> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 21 +<20021> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 22 +<20022> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 23 +<20023> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 24 +<20024> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 25 +<20025> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 26 +<20026> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 27 +<20027> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 28 +<20028> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 29 +<20029> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 30 +<20030> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 31 +<20031> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 32 +<20032> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 4N (deprecated) +<20064> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 5N (deprecated) +<20065> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 6N (deprecated) +<20066> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 7N (deprecated) +<20067> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 8N (deprecated) +<20068> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 9N (deprecated) +<20069> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 10N (deprecated) +<20070> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 11N (deprecated) +<20071> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 12N (deprecated) +<20072> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 13N (deprecated) +<20073> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 14N (deprecated) +<20074> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 15N (deprecated) +<20075> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 16N (deprecated) +<20076> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 17N (deprecated) +<20077> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 18N (deprecated) +<20078> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 19N (deprecated) +<20079> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 20N (deprecated) +<20080> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 21N (deprecated) +<20081> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 22N (deprecated) +<20082> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 23N (deprecated) +<20083> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 24N (deprecated) +<20084> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 25N (deprecated) +<20085> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 26N (deprecated) +<20086> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 27N (deprecated) +<20087> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 28N (deprecated) +<20088> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 29N (deprecated) +<20089> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 30N (deprecated) +<20090> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 31N (deprecated) +<20091> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1995 / Gauss-Kruger 32N (deprecated) +<20092> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Adindan / UTM zone 35N +<20135> +proj=utm +zone=35 +ellps=clrk80 +units=m +no_defs <> +# Adindan / UTM zone 36N +<20136> +proj=utm +zone=36 +ellps=clrk80 +units=m +no_defs <> +# Adindan / UTM zone 37N +<20137> +proj=utm +zone=37 +ellps=clrk80 +units=m +no_defs <> +# Adindan / UTM zone 38N +<20138> +proj=utm +zone=38 +ellps=clrk80 +units=m +no_defs <> +# AGD66 / AMG zone 48 +<20248> +proj=utm +zone=48 +south +ellps=aust_SA +units=m +no_defs <> +# AGD66 / AMG zone 49 +<20249> +proj=utm +zone=49 +south +ellps=aust_SA +units=m +no_defs <> +# AGD66 / AMG zone 50 +<20250> +proj=utm +zone=50 +south +ellps=aust_SA +units=m +no_defs <> +# AGD66 / AMG zone 51 +<20251> +proj=utm +zone=51 +south +ellps=aust_SA +units=m +no_defs <> +# AGD66 / AMG zone 52 +<20252> +proj=utm +zone=52 +south +ellps=aust_SA +units=m +no_defs <> +# AGD66 / AMG zone 53 +<20253> +proj=utm +zone=53 +south +ellps=aust_SA +units=m +no_defs <> +# AGD66 / AMG zone 54 +<20254> +proj=utm +zone=54 +south +ellps=aust_SA +units=m +no_defs <> +# AGD66 / AMG zone 55 +<20255> +proj=utm +zone=55 +south +ellps=aust_SA +units=m +no_defs <> +# AGD66 / AMG zone 56 +<20256> +proj=utm +zone=56 +south +ellps=aust_SA +units=m +no_defs <> +# AGD66 / AMG zone 57 +<20257> +proj=utm +zone=57 +south +ellps=aust_SA +units=m +no_defs <> +# AGD66 / AMG zone 58 +<20258> +proj=utm +zone=58 +south +ellps=aust_SA +units=m +no_defs <> +# AGD84 / AMG zone 48 +<20348> +proj=utm +zone=48 +south +ellps=aust_SA +units=m +no_defs <> +# AGD84 / AMG zone 49 +<20349> +proj=utm +zone=49 +south +ellps=aust_SA +units=m +no_defs <> +# AGD84 / AMG zone 50 +<20350> +proj=utm +zone=50 +south +ellps=aust_SA +units=m +no_defs <> +# AGD84 / AMG zone 51 +<20351> +proj=utm +zone=51 +south +ellps=aust_SA +units=m +no_defs <> +# AGD84 / AMG zone 52 +<20352> +proj=utm +zone=52 +south +ellps=aust_SA +units=m +no_defs <> +# AGD84 / AMG zone 53 +<20353> +proj=utm +zone=53 +south +ellps=aust_SA +units=m +no_defs <> +# AGD84 / AMG zone 54 +<20354> +proj=utm +zone=54 +south +ellps=aust_SA +units=m +no_defs <> +# AGD84 / AMG zone 55 +<20355> +proj=utm +zone=55 +south +ellps=aust_SA +units=m +no_defs <> +# AGD84 / AMG zone 56 +<20356> +proj=utm +zone=56 +south +ellps=aust_SA +units=m +no_defs <> +# AGD84 / AMG zone 57 +<20357> +proj=utm +zone=57 +south +ellps=aust_SA +units=m +no_defs <> +# AGD84 / AMG zone 58 +<20358> +proj=utm +zone=58 +south +ellps=aust_SA +units=m +no_defs <> +# Ain el Abd / UTM zone 36N +<20436> +proj=utm +zone=36 +ellps=intl +units=m +no_defs <> +# Ain el Abd / UTM zone 37N +<20437> +proj=utm +zone=37 +ellps=intl +units=m +no_defs <> +# Ain el Abd / UTM zone 38N +<20438> +proj=utm +zone=38 +ellps=intl +units=m +no_defs <> +# Ain el Abd / UTM zone 39N +<20439> +proj=utm +zone=39 +ellps=intl +units=m +no_defs <> +# Ain el Abd / UTM zone 40N +<20440> +proj=utm +zone=40 +ellps=intl +units=m +no_defs <> +# Ain el Abd / Bahrain Grid +<20499> +proj=utm +zone=39 +ellps=intl +units=m +no_defs <> +# Afgooye / UTM zone 38N +<20538> +proj=utm +zone=38 +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +units=m +no_defs <> +# Afgooye / UTM zone 39N +<20539> +proj=utm +zone=39 +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +units=m +no_defs <> +# Lisbon (Lisbon)/Portuguese National Grid +<20790> +proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1.000000 +x_0=200000 +y_0=300000 +ellps=intl +pm=lisbon +units=m +no_defs <> +# Lisbon (Lisbon)/Portuguese Grid +<20791> +proj=tmerc +lat_0=39.66666666666666 +lon_0=1 +k=1.000000 +x_0=0 +y_0=0 +ellps=intl +pm=lisbon +units=m +no_defs <> +# Aratu / UTM zone 22S +<20822> +proj=utm +zone=22 +south +ellps=intl +units=m +no_defs <> +# Aratu / UTM zone 23S +<20823> +proj=utm +zone=23 +south +ellps=intl +units=m +no_defs <> +# Aratu / UTM zone 24S +<20824> +proj=utm +zone=24 +south +ellps=intl +units=m +no_defs <> +# Arc 1950 / UTM zone 34S +<20934> +proj=utm +zone=34 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs <> +# Arc 1950 / UTM zone 35S +<20935> +proj=utm +zone=35 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs <> +# Arc 1950 / UTM zone 36S +<20936> +proj=utm +zone=36 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs <> +# Arc 1960 / UTM zone 35S +<21035> +proj=utm +zone=35 +south +ellps=clrk80 +units=m +no_defs <> +# Arc 1960 / UTM zone 36S +<21036> +proj=utm +zone=36 +south +ellps=clrk80 +units=m +no_defs <> +# Arc 1960 / UTM zone 37S +<21037> +proj=utm +zone=37 +south +ellps=clrk80 +units=m +no_defs <> +# Arc 1960 / UTM zone 35N +<21095> +proj=utm +zone=35 +ellps=clrk80 +units=m +no_defs <> +# Arc 1960 / UTM zone 36N +<21096> +proj=utm +zone=36 +ellps=clrk80 +units=m +no_defs <> +# Arc 1960 / UTM zone 37N +<21097> +proj=utm +zone=37 +ellps=clrk80 +units=m +no_defs <> +# Batavia (Jakarta) / NEIEZ (deprecated) +<21100> +proj=merc +lon_0=110 +k=0.997000 +x_0=3900000 +y_0=900000 +ellps=bessel +pm=jakarta +units=m +no_defs <> +# Batavia / UTM zone 48S +<21148> +proj=utm +zone=48 +south +ellps=bessel +units=m +no_defs <> +# Batavia / UTM zone 49S +<21149> +proj=utm +zone=49 +south +ellps=bessel +units=m +no_defs <> +# Batavia / UTM zone 50S +<21150> +proj=utm +zone=50 +south +ellps=bessel +units=m +no_defs <> +# Barbados 1938 / British West Indies Grid +<21291> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=31.95,300.99,419.19,0,0,0,0 +units=m +no_defs <> +# Barbados 1938 / Barbados National Grid +<21292> +proj=tmerc +lat_0=13.17638888888889 +lon_0=-59.55972222222222 +k=0.999999 +x_0=30000 +y_0=75000 +ellps=clrk80 +towgs84=31.95,300.99,419.19,0,0,0,0 +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger zone 13 +<21413> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger zone 14 +<21414> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger zone 15 +<21415> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger zone 16 +<21416> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger zone 17 +<21417> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger zone 18 +<21418> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger zone 19 +<21419> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger zone 20 +<21420> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger zone 21 +<21421> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger zone 22 +<21422> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger zone 23 +<21423> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger CM 75E +<21453> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger CM 81E +<21454> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger CM 87E +<21455> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger CM 93E +<21456> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger CM 99E +<21457> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger CM 105E +<21458> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger CM 111E +<21459> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger CM 117E +<21460> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger CM 123E +<21461> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger CM 129E +<21462> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger CM 135E +<21463> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger 13N (deprecated) +<21473> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger 14N (deprecated) +<21474> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger 15N (deprecated) +<21475> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger 16N (deprecated) +<21476> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger 17N (deprecated) +<21477> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger 18N (deprecated) +<21478> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger 19N (deprecated) +<21479> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger 20N (deprecated) +<21480> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger 21N (deprecated) +<21481> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger 22N (deprecated) +<21482> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Beijing 1954 / Gauss-Kruger 23N (deprecated) +<21483> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Belge 1950 (Brussels) / Belge Lambert 50 +<21500> +proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666666 +lat_0=90 +lon_0=0 +x_0=150000 +y_0=5400000 +ellps=intl +pm=brussels +units=m +no_defs <> +# Bern 1898 (Bern) / LV03C +<21780> +proj=somerc +lat_0=46.95240555555556 +lon_0=0 +x_0=0 +y_0=0 +ellps=bessel +pm=bern +units=m +no_defs <> +# CH1903 / LV03 +<21781> +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +x_0=600000 +y_0=200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs <> +# Bogota 1975 / UTM zone 17N (deprecated) +<21817> +proj=utm +zone=17 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs <> +# Bogota 1975 / UTM zone 18N +<21818> +proj=utm +zone=18 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs <> +# Bogota 1975 / Colombia West zone (deprecated) +<21891> +proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666666667 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs <> +# Bogota 1975 / Colombia Bogota zone (deprecated) +<21892> +proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666666667 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs <> +# Bogota 1975 / Colombia East Central zone (deprecated) +<21893> +proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666666667 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs <> +# Bogota 1975 / Colombia East (deprecated) +<21894> +proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666666667 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs <> +# Bogota 1975 / Colombia West zone +<21896> +proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666666667 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs <> +# Bogota 1975 / Colombia Bogota zone +<21897> +proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666666667 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs <> +# Bogota 1975 / Colombia East Central zone +<21898> +proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666666667 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs <> +# Bogota 1975 / Colombia East +<21899> +proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666666667 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=intl +towgs84=307,304,-318,0,0,0,0 +units=m +no_defs <> +# Camacupa / UTM zone 32S +<22032> +proj=utm +zone=32 +south +ellps=clrk80 +units=m +no_defs <> +# Camacupa / UTM zone 33S +<22033> +proj=utm +zone=33 +south +ellps=clrk80 +units=m +no_defs <> +# Camacupa / TM 11.30 SE +<22091> +proj=tmerc +lat_0=0 +lon_0=11.5 +k=0.999600 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs <> +# Camacupa / TM 12 SE +<22092> +proj=tmerc +lat_0=0 +lon_0=12 +k=0.999600 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs <> +# POSGAR 98 / Argentina 1 +<22171> +proj=tmerc +lat_0=-90 +lon_0=-72 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# POSGAR 98 / Argentina 2 +<22172> +proj=tmerc +lat_0=-90 +lon_0=-69 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# POSGAR 98 / Argentina 3 +<22173> +proj=tmerc +lat_0=-90 +lon_0=-66 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# POSGAR 98 / Argentina 4 +<22174> +proj=tmerc +lat_0=-90 +lon_0=-63 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# POSGAR 98 / Argentina 5 +<22175> +proj=tmerc +lat_0=-90 +lon_0=-60 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# POSGAR 98 / Argentina 6 +<22176> +proj=tmerc +lat_0=-90 +lon_0=-57 +k=1.000000 +x_0=6500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# POSGAR 98 / Argentina 7 +<22177> +proj=tmerc +lat_0=-90 +lon_0=-54 +k=1.000000 +x_0=7500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# POSGAR 94 / Argentina 1 +<22181> +proj=tmerc +lat_0=-90 +lon_0=-72 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# POSGAR 94 / Argentina 2 +<22182> +proj=tmerc +lat_0=-90 +lon_0=-69 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# POSGAR 94 / Argentina 3 +<22183> +proj=tmerc +lat_0=-90 +lon_0=-66 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# POSGAR 94 / Argentina 4 +<22184> +proj=tmerc +lat_0=-90 +lon_0=-63 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# POSGAR 94 / Argentina 5 +<22185> +proj=tmerc +lat_0=-90 +lon_0=-60 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# POSGAR 94 / Argentina 6 +<22186> +proj=tmerc +lat_0=-90 +lon_0=-57 +k=1.000000 +x_0=6500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# POSGAR 94 / Argentina 7 +<22187> +proj=tmerc +lat_0=-90 +lon_0=-54 +k=1.000000 +x_0=7500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# Campo Inchauspe / Argentina 1 +<22191> +proj=tmerc +lat_0=-90 +lon_0=-72 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# Campo Inchauspe / Argentina 2 +<22192> +proj=tmerc +lat_0=-90 +lon_0=-69 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# Campo Inchauspe / Argentina 3 +<22193> +proj=tmerc +lat_0=-90 +lon_0=-66 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# Campo Inchauspe / Argentina 4 +<22194> +proj=tmerc +lat_0=-90 +lon_0=-63 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# Campo Inchauspe / Argentina 5 +<22195> +proj=tmerc +lat_0=-90 +lon_0=-60 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# Campo Inchauspe / Argentina 6 +<22196> +proj=tmerc +lat_0=-90 +lon_0=-57 +k=1.000000 +x_0=6500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# Campo Inchauspe / Argentina 7 +<22197> +proj=tmerc +lat_0=-90 +lon_0=-54 +k=1.000000 +x_0=7500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# Cape / UTM zone 34S +<22234> +proj=utm +zone=34 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs <> +# Cape / UTM zone 35S +<22235> +proj=utm +zone=35 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs <> +# Cape / UTM zone 36S +<22236> +proj=utm +zone=36 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs <> +# South African Coordinate System zone 15 +# Unable to translate coordinate system EPSG:22275 into PROJ.4 format. +# +# South African Coordinate System zone 17 +# Unable to translate coordinate system EPSG:22277 into PROJ.4 format. +# +# South African Coordinate System zone 19 +# Unable to translate coordinate system EPSG:22279 into PROJ.4 format. +# +# South African Coordinate System zone 21 +# Unable to translate coordinate system EPSG:22281 into PROJ.4 format. +# +# South African Coordinate System zone 23 +# Unable to translate coordinate system EPSG:22283 into PROJ.4 format. +# +# South African Coordinate System zone 25 +# Unable to translate coordinate system EPSG:22285 into PROJ.4 format. +# +# South African Coordinate System zone 27 +# Unable to translate coordinate system EPSG:22287 into PROJ.4 format. +# +# South African Coordinate System zone 29 +# Unable to translate coordinate system EPSG:22289 into PROJ.4 format. +# +# South African Coordinate System zone 31 +# Unable to translate coordinate system EPSG:22291 into PROJ.4 format. +# +# South African Coordinate System zone 33 +# Unable to translate coordinate system EPSG:22293 into PROJ.4 format. +# +# Carthage (Paris) / Tunisia Mining Grid +# Unable to translate coordinate system EPSG:22300 into PROJ.4 format. +# +# Carthage / UTM zone 32N +<22332> +proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_defs <> +# Carthage / Nord Tunisie +<22391> +proj=lcc +lat_1=36 +lat_0=36 +lon_0=9.9 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs <> +# Carthage / Sud Tunisie +<22392> +proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=9.9 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs <> +# Corrego Alegre / UTM zone 21S +<22521> +proj=utm +zone=21 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs <> +# Corrego Alegre / UTM zone 22S +<22522> +proj=utm +zone=22 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs <> +# Corrego Alegre / UTM zone 23S +<22523> +proj=utm +zone=23 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs <> +# Corrego Alegre / UTM zone 24S +<22524> +proj=utm +zone=24 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs <> +# Corrego Alegre / UTM zone 25S +<22525> +proj=utm +zone=25 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs <> +# Deir ez Zor / Levant Zone +<22700> +proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0.9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs <> +# Deir ez Zor / Syria Lambert +<22770> +proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0.9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs <> +# Deir ez Zor / Levant Stereographic +<22780> +proj=sterea +lat_0=34.2 +lon_0=39.15 +k=0.999534 +x_0=0 +y_0=0 +a=6378249.2 +b=6356515 +units=m +no_defs <> +# Douala / UTM zone 32N (deprecated) +<22832> +proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_defs <> +# Egypt 1907 / Blue Belt +<22991> +proj=tmerc +lat_0=30 +lon_0=35 +k=1.000000 +x_0=300000 +y_0=1100000 +ellps=helmert +units=m +no_defs <> +# Egypt 1907 / Red Belt +<22992> +proj=tmerc +lat_0=30 +lon_0=31 +k=1.000000 +x_0=615000 +y_0=810000 +ellps=helmert +units=m +no_defs <> +# Egypt 1907 / Purple Belt +<22993> +proj=tmerc +lat_0=30 +lon_0=27 +k=1.000000 +x_0=700000 +y_0=200000 +ellps=helmert +units=m +no_defs <> +# Egypt 1907 / Extended Purple Belt +<22994> +proj=tmerc +lat_0=30 +lon_0=27 +k=1.000000 +x_0=700000 +y_0=1200000 +ellps=helmert +units=m +no_defs <> +# ED50 / UTM zone 28N +<23028> +proj=utm +zone=28 +ellps=intl +units=m +no_defs <> +# ED50 / UTM zone 29N +<23029> +proj=utm +zone=29 +ellps=intl +units=m +no_defs <> +# ED50 / UTM zone 30N +<23030> +proj=utm +zone=30 +ellps=intl +units=m +no_defs <> +# ED50 / UTM zone 31N +<23031> +proj=utm +zone=31 +ellps=intl +units=m +no_defs <> +# ED50 / UTM zone 32N +<23032> +proj=utm +zone=32 +ellps=intl +units=m +no_defs <> +# ED50 / UTM zone 33N +<23033> +proj=utm +zone=33 +ellps=intl +units=m +no_defs <> +# ED50 / UTM zone 34N +<23034> +proj=utm +zone=34 +ellps=intl +units=m +no_defs <> +# ED50 / UTM zone 35N +<23035> +proj=utm +zone=35 +ellps=intl +units=m +no_defs <> +# ED50 / UTM zone 36N +<23036> +proj=utm +zone=36 +ellps=intl +units=m +no_defs <> +# ED50 / UTM zone 37N +<23037> +proj=utm +zone=37 +ellps=intl +units=m +no_defs <> +# ED50 / UTM zone 38N +<23038> +proj=utm +zone=38 +ellps=intl +units=m +no_defs <> +# ED50 / TM 0 N +<23090> +proj=tmerc +lat_0=0 +lon_0=0 +k=0.999600 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# ED50 / TM 5 NE +<23095> +proj=tmerc +lat_0=0 +lon_0=5 +k=0.999600 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs <> +# Fahud / UTM zone 39N +<23239> +proj=utm +zone=39 +ellps=clrk80 +units=m +no_defs <> +# Fahud / UTM zone 40N +<23240> +proj=utm +zone=40 +ellps=clrk80 +units=m +no_defs <> +# Garoua / UTM zone 33N (deprecated) +<23433> +proj=utm +zone=33 +a=6378249.2 +b=6356515 +units=m +no_defs <> +# HD72 / EOV +<23700> +proj=somerc +lat_0=47.14439372222222 +lon_0=19.04857177777778 +x_0=650000 +y_0=200000 +ellps=GRS67 +units=m +no_defs <> +# ID74 / UTM zone 46N +<23846> +proj=utm +zone=46 +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# ID74 / UTM zone 47N +<23847> +proj=utm +zone=47 +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# ID74 / UTM zone 48N +<23848> +proj=utm +zone=48 +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# ID74 / UTM zone 49N +<23849> +proj=utm +zone=49 +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# ID74 / UTM zone 50N +<23850> +proj=utm +zone=50 +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# ID74 / UTM zone 51N +<23851> +proj=utm +zone=51 +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# ID74 / UTM zone 52N +<23852> +proj=utm +zone=52 +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# ID74 / UTM zone 53N (deprecated) +<23853> +proj=utm +zone=53 +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# DGN95 / UTM zone 46N +<23866> +proj=utm +zone=46 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# DGN95 / UTM zone 47N +<23867> +proj=utm +zone=47 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# DGN95 / UTM zone 48N +<23868> +proj=utm +zone=48 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# DGN95 / UTM zone 49N +<23869> +proj=utm +zone=49 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# DGN95 / UTM zone 50N +<23870> +proj=utm +zone=50 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# DGN95 / UTM zone 51N +<23871> +proj=utm +zone=51 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# DGN95 / UTM zone 52N +<23872> +proj=utm +zone=52 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# DGN95 / UTM zone 47S +<23877> +proj=utm +zone=47 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# DGN95 / UTM zone 48S +<23878> +proj=utm +zone=48 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# DGN95 / UTM zone 49S +<23879> +proj=utm +zone=49 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# DGN95 / UTM zone 50S +<23880> +proj=utm +zone=50 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# DGN95 / UTM zone 51S +<23881> +proj=utm +zone=51 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# DGN95 / UTM zone 52S +<23882> +proj=utm +zone=52 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# DGN95 / UTM zone 53S +<23883> +proj=utm +zone=53 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# DGN95 / UTM zone 54S +<23884> +proj=utm +zone=54 +south +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# ID74 / UTM zone 46S (deprecated) +<23886> +proj=utm +zone=46 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# ID74 / UTM zone 47S +<23887> +proj=utm +zone=47 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# ID74 / UTM zone 48S +<23888> +proj=utm +zone=48 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# ID74 / UTM zone 49S +<23889> +proj=utm +zone=49 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# ID74 / UTM zone 50S +<23890> +proj=utm +zone=50 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# ID74 / UTM zone 51S +<23891> +proj=utm +zone=51 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# ID74 / UTM zone 52S +<23892> +proj=utm +zone=52 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# ID74 / UTM zone 53S +<23893> +proj=utm +zone=53 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# ID74 / UTM zone 54S +<23894> +proj=utm +zone=54 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs <> +# Indian 1954 / UTM zone 46N +<23946> +proj=utm +zone=46 +a=6377276.345 +b=6356075.413140239 +towgs84=217,823,299,0,0,0,0 +units=m +no_defs <> +# Indian 1954 / UTM zone 47N +<23947> +proj=utm +zone=47 +a=6377276.345 +b=6356075.413140239 +towgs84=217,823,299,0,0,0,0 +units=m +no_defs <> +# Indian 1954 / UTM zone 48N +<23948> +proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +towgs84=217,823,299,0,0,0,0 +units=m +no_defs <> +# Indian 1975 / UTM zone 47N +<24047> +proj=utm +zone=47 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs <> +# Indian 1975 / UTM zone 48N +<24048> +proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs <> +# Jamaica 1875 / Jamaica (Old Grid) +<24100> +proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=167638.49597 +y_0=121918.90616 +ellps=clrk80 +to_meter=0.3047972654 +no_defs <> +# JAD69 / Jamaica National Grid +<24200> +proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=250000 +y_0=150000 +ellps=clrk66 +units=m +no_defs <> +# Kalianpur 1937 / UTM zone 45N +<24305> +proj=utm +zone=45 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs <> +# Kalianpur 1937 / UTM zone 46N +<24306> +proj=utm +zone=46 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs <> +# Kalianpur 1962 / UTM zone 41N +<24311> +proj=utm +zone=41 +a=6377301.243 +b=6356100.230165385 +units=m +no_defs <> +# Kalianpur 1962 / UTM zone 42N +<24312> +proj=utm +zone=42 +a=6377301.243 +b=6356100.230165385 +units=m +no_defs <> +# Kalianpur 1962 / UTM zone 43N +<24313> +proj=utm +zone=43 +a=6377301.243 +b=6356100.230165385 +units=m +no_defs <> +# Kalianpur 1975 / UTM zone 42N +<24342> +proj=utm +zone=42 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs <> +# Kalianpur 1975 / UTM zone 43N +<24343> +proj=utm +zone=43 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs <> +# Kalianpur 1975 / UTM zone 44N +<24344> +proj=utm +zone=44 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs <> +# Kalianpur 1975 / UTM zone 45N +<24345> +proj=utm +zone=45 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs <> +# Kalianpur 1975 / UTM zone 46N +<24346> +proj=utm +zone=46 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs <> +# Kalianpur 1975 / UTM zone 47N +<24347> +proj=utm +zone=47 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs <> +# Kalianpur 1880 / India zone 0 +<24370> +proj=lcc +lat_1=39.5 +lat_0=39.5 +lon_0=68 +k_0=0.99846154 +x_0=2153865.73916853 +y_0=2368292.194628102 +a=6377299.36559538 +b=6356098.357204817 +to_meter=0.9143985307444408 +no_defs <> +# Kalianpur 1880 / India zone I +<24371> +proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.357204817 +to_meter=0.9143985307444408 +no_defs <> +# Kalianpur 1880 / India zone IIa +<24372> +proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.357204817 +to_meter=0.9143985307444408 +no_defs <> +# Kalianpur 1880 / India zone III +<24373> +proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.357204817 +to_meter=0.9143985307444408 +no_defs <> +# Kalianpur 1880 / India zone IV +<24374> +proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.357204817 +to_meter=0.9143985307444408 +no_defs <> +# Kalianpur 1937 / India zone IIb +<24375> +proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 +x_0=2743185.69 +y_0=914395.23 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs <> +# Kalianpur 1962 / India zone I +<24376> +proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.230165385 +units=m +no_defs <> +# Kalianpur 1962 / India zone IIa +<24377> +proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.230165385 +units=m +no_defs <> +# Kalianpur 1975 / India zone I +<24378> +proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs <> +# Kalianpur 1975 / India zone IIa +<24379> +proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs <> +# Kalianpur 1975 / India zone IIb +<24380> +proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs <> +# Kalianpur 1975 / India zone III +<24381> +proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs <> +# Kalianpur 1880 / India zone IIb +<24382> +proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.357204817 +to_meter=0.9143985307444408 +no_defs <> +# Kalianpur 1975 / India zone IV +<24383> +proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs <> +# Kertau 1968 / Singapore Grid +<24500> +proj=cass +lat_0=1.287646666666667 +lon_0=103.8530022222222 +x_0=30000 +y_0=30000 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs <> +# Kertau 1968 / UTM zone 47N +<24547> +proj=utm +zone=47 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs <> +# Kertau 1968 / UTM zone 48N +<24548> +proj=utm +zone=48 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs <> +# Kertau / R.S.O. Malaya (ch) (deprecated) +<24571> +proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=0.99984 +x_0=804671.2997750348 +y_0=0 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +to_meter=20.11678249437587 +no_defs <> +# KOC Lambert +<24600> +proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +towgs84=-294.7,-200.1,525.5,0,0,0,0 +units=m +no_defs <> +# La Canoa / UTM zone 18N +<24718> +proj=utm +zone=18 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defs <> +# La Canoa / UTM zone 19N +<24719> +proj=utm +zone=19 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defs <> +# La Canoa / UTM zone 20N +<24720> +proj=utm +zone=20 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defs <> +# PSAD56 / UTM zone 17N +<24817> +proj=utm +zone=17 +ellps=intl +units=m +no_defs <> +# PSAD56 / UTM zone 18N +<24818> +proj=utm +zone=18 +ellps=intl +units=m +no_defs <> +# PSAD56 / UTM zone 19N +<24819> +proj=utm +zone=19 +ellps=intl +units=m +no_defs <> +# PSAD56 / UTM zone 20N +<24820> +proj=utm +zone=20 +ellps=intl +units=m +no_defs <> +# PSAD56 / UTM zone 21N +<24821> +proj=utm +zone=21 +ellps=intl +units=m +no_defs <> +# PSAD56 / UTM zone 17S +<24877> +proj=utm +zone=17 +south +ellps=intl +units=m +no_defs <> +# PSAD56 / UTM zone 18S +<24878> +proj=utm +zone=18 +south +ellps=intl +units=m +no_defs <> +# PSAD56 / UTM zone 19S +<24879> +proj=utm +zone=19 +south +ellps=intl +units=m +no_defs <> +# PSAD56 / UTM zone 20S +<24880> +proj=utm +zone=20 +south +ellps=intl +units=m +no_defs <> +# PSAD56 / UTM zone 21S +<24881> +proj=utm +zone=21 +south +ellps=intl +units=m +no_defs <> +# PSAD56 / UTM zone 22S +<24882> +proj=utm +zone=22 +south +ellps=intl +units=m +no_defs <> +# PSAD56 / Peru west zone +<24891> +proj=tmerc +lat_0=-6 +lon_0=-80.5 +k=0.999830 +x_0=222000 +y_0=1426834.743 +ellps=intl +units=m +no_defs <> +# PSAD56 / Peru central zone +<24892> +proj=tmerc +lat_0=-9.5 +lon_0=-76 +k=0.999330 +x_0=720000 +y_0=1039979.159 +ellps=intl +units=m +no_defs <> +# PSAD56 / Peru east zone +<24893> +proj=tmerc +lat_0=-9.5 +lon_0=-70.5 +k=0.999530 +x_0=1324000 +y_0=1040084.558 +ellps=intl +units=m +no_defs <> +# Leigon / Ghana Metre Grid +<25000> +proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.999750 +x_0=274319.51 +y_0=0 +ellps=clrk80 +towgs84=-130,29,364,0,0,0,0 +units=m +no_defs <> +# Lome / UTM zone 31N +<25231> +proj=utm +zone=31 +a=6378249.2 +b=6356515 +units=m +no_defs <> +# Luzon 1911 / Philippines zone I +<25391> +proj=tmerc +lat_0=0 +lon_0=117 +k=0.999950 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# Luzon 1911 / Philippines zone II +<25392> +proj=tmerc +lat_0=0 +lon_0=119 +k=0.999950 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# Luzon 1911 / Philippines zone III +<25393> +proj=tmerc +lat_0=0 +lon_0=121 +k=0.999950 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# Luzon 1911 / Philippines zone IV +<25394> +proj=tmerc +lat_0=0 +lon_0=123 +k=0.999950 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# Luzon 1911 / Philippines zone V +<25395> +proj=tmerc +lat_0=0 +lon_0=125 +k=0.999950 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs <> +# Makassar (Jakarta) / NEIEZ (deprecated) +<25700> +proj=merc +lon_0=110 +k=0.997000 +x_0=3900000 +y_0=900000 +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +pm=jakarta +units=m +no_defs <> +# ETRS89 / UTM zone 28N +<25828> +proj=utm +zone=28 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / UTM zone 29N +<25829> +proj=utm +zone=29 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / UTM zone 30N +<25830> +proj=utm +zone=30 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / UTM zone 31N +<25831> +proj=utm +zone=31 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / UTM zone 32N +<25832> +proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / UTM zone 33N +<25833> +proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / UTM zone 34N +<25834> +proj=utm +zone=34 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / UTM zone 35N +<25835> +proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / UTM zone 36N +<25836> +proj=utm +zone=36 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / UTM zone 37N +<25837> +proj=utm +zone=37 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / UTM zone 38N +<25838> +proj=utm +zone=38 +ellps=GRS80 +units=m +no_defs <> +# ETRS89 / TM Baltic93 +<25884> +proj=tmerc +lat_0=0 +lon_0=24 +k=0.999600 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# Malongo 1987 / UTM zone 32S +<25932> +proj=utm +zone=32 +south +ellps=intl +units=m +no_defs <> +# Merchich / Nord Maroc +<26191> +proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=-5.4 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs <> +# Merchich / Sud Maroc +<26192> +proj=lcc +lat_1=29.7 +lat_0=29.7 +lon_0=-5.4 +k_0=0.9996155960000001 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs <> +# Merchich / Sahara (deprecated) +<26193> +proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.9996 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs <> +# Merchich / Sahara Nord +<26194> +proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.999616304 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs <> +# Merchich / Sahara Sud +<26195> +proj=lcc +lat_1=22.5 +lat_0=22.5 +lon_0=-5.4 +k_0=0.999616437 +x_0=1500000 +y_0=400000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs <> +# Massawa / UTM zone 37N +<26237> +proj=utm +zone=37 +ellps=bessel +towgs84=639,405,60,0,0,0,0 +units=m +no_defs <> +# Minna / UTM zone 31N +<26331> +proj=utm +zone=31 +ellps=clrk80 +units=m +no_defs <> +# Minna / UTM zone 32N +<26332> +proj=utm +zone=32 +ellps=clrk80 +units=m +no_defs <> +# Minna / Nigeria West Belt +<26391> +proj=tmerc +lat_0=4 +lon_0=4.5 +k=0.999750 +x_0=230738.26 +y_0=0 +ellps=clrk80 +units=m +no_defs <> +# Minna / Nigeria Mid Belt +<26392> +proj=tmerc +lat_0=4 +lon_0=8.5 +k=0.999750 +x_0=670553.98 +y_0=0 +ellps=clrk80 +units=m +no_defs <> +# Minna / Nigeria East Belt +<26393> +proj=tmerc +lat_0=4 +lon_0=12.5 +k=0.999750 +x_0=1110369.7 +y_0=0 +ellps=clrk80 +units=m +no_defs <> +# Mhast / UTM zone 32S (deprecated) +<26432> +proj=utm +zone=32 +south +ellps=intl +towgs84=-252.95,-4.11,-96.38,0,0,0,0 +units=m +no_defs <> +# Monte Mario (Rome) / Italy zone 1 +<26591> +proj=tmerc +lat_0=0 +lon_0=-3.45233333333333 +k=0.999600 +x_0=1500000 +y_0=0 +ellps=intl +pm=rome +units=m +no_defs <> +# Monte Mario (Rome) / Italy zone 2 +<26592> +proj=tmerc +lat_0=0 +lon_0=2.54766666666666 +k=0.999600 +x_0=2520000 +y_0=0 +ellps=intl +pm=rome +units=m +no_defs <> +# M'poraloko / UTM zone 32N +<26632> +proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_defs <> +# M'poraloko / UTM zone 32S +<26692> +proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +units=m +no_defs <> +# NAD27 / UTM zone 1N +<26701> +proj=utm +zone=1 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 2N +<26702> +proj=utm +zone=2 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 3N +<26703> +proj=utm +zone=3 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 4N +<26704> +proj=utm +zone=4 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 5N +<26705> +proj=utm +zone=5 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 6N +<26706> +proj=utm +zone=6 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 7N +<26707> +proj=utm +zone=7 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 8N +<26708> +proj=utm +zone=8 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 9N +<26709> +proj=utm +zone=9 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 10N +<26710> +proj=utm +zone=10 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 11N +<26711> +proj=utm +zone=11 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 12N +<26712> +proj=utm +zone=12 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 13N +<26713> +proj=utm +zone=13 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 14N +<26714> +proj=utm +zone=14 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 15N +<26715> +proj=utm +zone=15 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 16N +<26716> +proj=utm +zone=16 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 17N +<26717> +proj=utm +zone=17 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 18N +<26718> +proj=utm +zone=18 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 19N +<26719> +proj=utm +zone=19 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 20N +<26720> +proj=utm +zone=20 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 21N +<26721> +proj=utm +zone=21 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / UTM zone 22N +<26722> +proj=utm +zone=22 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / Alabama East +<26729> +proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.999960 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Alabama West +<26730> +proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Alaska zone 1 +<26731> +proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=323.1301023611111 +k=0.9999 +x_0=5000000.001016002 +y_0=-5000000.001016002 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Alaska zone 2 +<26732> +proj=tmerc +lat_0=54 +lon_0=-142 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Alaska zone 3 +<26733> +proj=tmerc +lat_0=54 +lon_0=-146 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Alaska zone 4 +<26734> +proj=tmerc +lat_0=54 +lon_0=-150 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Alaska zone 5 +<26735> +proj=tmerc +lat_0=54 +lon_0=-154 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Alaska zone 6 +<26736> +proj=tmerc +lat_0=54 +lon_0=-158 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Alaska zone 7 +<26737> +proj=tmerc +lat_0=54 +lon_0=-162 +k=0.999900 +x_0=213360.4267208534 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Alaska zone 8 +<26738> +proj=tmerc +lat_0=54 +lon_0=-166 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Alaska zone 9 +<26739> +proj=tmerc +lat_0=54 +lon_0=-170 +k=0.999900 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Alaska zone 10 +<26740> +proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333334 +lat_0=51 +lon_0=-176 +x_0=914401.8288036576 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / California zone I +<26741> +proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / California zone II +<26742> +proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / California zone III +<26743> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / California zone IV +<26744> +proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / California zone V +<26745> +proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / California zone VI +<26746> +proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / California zone VII (deprecated) +<26747> +proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +x_0=1276106.450596901 +y_0=127079.524511049 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Arizona East +<26748> +proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Arizona Central +<26749> +proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Arizona West +<26750> +proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Arkansas North +<26751> +proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Arkansas South +<26752> +proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Colorado North +<26753> +proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Colorado Central +<26754> +proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Colorado South +<26755> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Connecticut +<26756> +proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Delaware +<26757> +proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Florida East +<26758> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Florida West +<26759> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Florida North +<26760> +proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Georgia East +<26766> +proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Georgia West +<26767> +proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Idaho East +<26768> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.999947 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Idaho Central +<26769> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.999947 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Idaho West +<26770> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Illinois East +<26771> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.999975 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Illinois West +<26772> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Indiana East +<26773> +proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999967 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Indiana West +<26774> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999967 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Iowa North +<26775> +proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Iowa South +<26776> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Kansas North +<26777> +proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Kansas South +<26778> +proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Kentucky North +<26779> +proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Kentucky South +<26780> +proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Louisiana North +<26781> +proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666666 +lat_0=30.66666666666667 +lon_0=-92.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Louisiana South +<26782> +proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.66666666666667 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Maine East +<26783> +proj=tmerc +lat_0=43.83333333333334 +lon_0=-68.5 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Maine West +<26784> +proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999967 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Maryland +<26785> +proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.83333333333334 +lon_0=-77 +x_0=243840.4876809754 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Massachusetts Mainland +<26786> +proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333333 +lat_0=41 +lon_0=-71.5 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Massachusetts Island +<26787> +proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333333 +lat_0=41 +lon_0=-70.5 +x_0=60960.12192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Minnesota North +<26791> +proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Minnesota Central +<26792> +proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=45 +lon_0=-94.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Minnesota South +<26793> +proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666667 +lat_0=43 +lon_0=-94 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Mississippi East +<26794> +proj=tmerc +lat_0=29.66666666666667 +lon_0=-88.83333333333333 +k=0.999960 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Mississippi West +<26795> +proj=tmerc +lat_0=30.5 +lon_0=-90.33333333333333 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Missouri East +<26796> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Missouri Central +<26797> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Missouri West +<26798> +proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / California zone VII +<26799> +proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +x_0=1276106.450596901 +y_0=1268253.006858014 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD Michigan / Michigan East +<26801> +proj=tmerc +lat_0=41.5 +lon_0=-83.66666666666667 +k=0.999943 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs <> +# NAD Michigan / Michigan Old Central +<26802> +proj=tmerc +lat_0=41.5 +lon_0=-85.75 +k=0.999909 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs <> +# NAD Michigan / Michigan West +<26803> +proj=tmerc +lat_0=41.5 +lon_0=-88.75 +k=0.999909 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs <> +# NAD Michigan / Michigan North +<26811> +proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs <> +# NAD Michigan / Michigan Central +<26812> +proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43.31666666666667 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs <> +# NAD Michigan / Michigan South +<26813> +proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41.5 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / UTM zone 1N +<26901> +proj=utm +zone=1 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 2N +<26902> +proj=utm +zone=2 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 3N +<26903> +proj=utm +zone=3 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 4N +<26904> +proj=utm +zone=4 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 5N +<26905> +proj=utm +zone=5 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 6N +<26906> +proj=utm +zone=6 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 7N +<26907> +proj=utm +zone=7 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 8N +<26908> +proj=utm +zone=8 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 9N +<26909> +proj=utm +zone=9 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 10N +<26910> +proj=utm +zone=10 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 11N +<26911> +proj=utm +zone=11 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 12N +<26912> +proj=utm +zone=12 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 13N +<26913> +proj=utm +zone=13 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 14N +<26914> +proj=utm +zone=14 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 15N +<26915> +proj=utm +zone=15 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 16N +<26916> +proj=utm +zone=16 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 17N +<26917> +proj=utm +zone=17 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 18N +<26918> +proj=utm +zone=18 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 19N +<26919> +proj=utm +zone=19 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 20N +<26920> +proj=utm +zone=20 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 21N +<26921> +proj=utm +zone=21 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 22N +<26922> +proj=utm +zone=22 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / UTM zone 23N +<26923> +proj=utm +zone=23 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Alabama East +<26929> +proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.999960 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Alabama West +<26930> +proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Alaska zone 1 +<26931> +proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=323.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Alaska zone 2 +<26932> +proj=tmerc +lat_0=54 +lon_0=-142 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Alaska zone 3 +<26933> +proj=tmerc +lat_0=54 +lon_0=-146 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Alaska zone 4 +<26934> +proj=tmerc +lat_0=54 +lon_0=-150 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Alaska zone 5 +<26935> +proj=tmerc +lat_0=54 +lon_0=-154 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Alaska zone 6 +<26936> +proj=tmerc +lat_0=54 +lon_0=-158 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Alaska zone 7 +<26937> +proj=tmerc +lat_0=54 +lon_0=-162 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Alaska zone 8 +<26938> +proj=tmerc +lat_0=54 +lon_0=-166 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Alaska zone 9 +<26939> +proj=tmerc +lat_0=54 +lon_0=-170 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Alaska zone 10 +<26940> +proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / California zone 1 +<26941> +proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / California zone 2 +<26942> +proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / California zone 3 +<26943> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / California zone 4 +<26944> +proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / California zone 5 +<26945> +proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / California zone 6 +<26946> +proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Arizona East +<26948> +proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Arizona Central +<26949> +proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Arizona West +<26950> +proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Arkansas North +<26951> +proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Arkansas South +<26952> +proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Colorado North +<26953> +proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Colorado Central +<26954> +proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Colorado South +<26955> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Connecticut +<26956> +proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Delaware +<26957> +proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Florida East +<26958> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Florida West +<26959> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Florida North +<26960> +proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Hawaii zone 1 +<26961> +proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999967 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Hawaii zone 2 +<26962> +proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999967 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Hawaii zone 3 +<26963> +proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.999990 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Hawaii zone 4 +<26964> +proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.999990 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Hawaii zone 5 +<26965> +proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Georgia East +<26966> +proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999900 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Georgia West +<26967> +proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999900 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Idaho East +<26968> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.999947 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Idaho Central +<26969> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.999947 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Idaho West +<26970> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933 +x_0=800000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Illinois East +<26971> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.999975 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Illinois West +<26972> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Indiana East +<26973> +proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999967 +x_0=100000 +y_0=250000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Indiana West +<26974> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999967 +x_0=900000 +y_0=250000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Iowa North +<26975> +proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Iowa South +<26976> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Kansas North +<26977> +proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Kansas South +<26978> +proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Kentucky North (deprecated) +<26979> +proj=lcc +lat_1=37.96666666666667 +lat_2=37.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Kentucky South +<26980> +proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Louisiana North +<26981> +proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Louisiana South +<26982> +proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Maine East +<26983> +proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.999900 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Maine West +<26984> +proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999967 +x_0=900000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Maryland +<26985> +proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Massachusetts Mainland +<26986> +proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Massachusetts Island +<26987> +proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Michigan North +<26988> +proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Michigan Central +<26989> +proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Michigan South +<26990> +proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Minnesota North +<26991> +proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Minnesota Central +<26992> +proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Minnesota South +<26993> +proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Mississippi East +<26994> +proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.999950 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Mississippi West +<26995> +proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.999950 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Missouri East +<26996> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Missouri Central +<26997> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Missouri West +<26998> +proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941 +x_0=850000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# Nahrwan 1967 / UTM zone 37N +<27037> +proj=utm +zone=37 +ellps=clrk80 +units=m +no_defs <> +# Nahrwan 1967 / UTM zone 38N +<27038> +proj=utm +zone=38 +ellps=clrk80 +units=m +no_defs <> +# Nahrwan 1967 / UTM zone 39N +<27039> +proj=utm +zone=39 +ellps=clrk80 +units=m +no_defs <> +# Nahrwan 1967 / UTM zone 40N +<27040> +proj=utm +zone=40 +ellps=clrk80 +units=m +no_defs <> +# Naparima 1972 / UTM zone 20N +<27120> +proj=utm +zone=20 +ellps=intl +units=m +no_defs <> +# NZGD49 / New Zealand Map Grid +<27200> +proj=nzmg +lat_0=-41 +lon_0=173 +x_0=2510000 +y_0=6023150 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Mount Eden Circuit +<27205> +proj=tmerc +lat_0=-36.87986527777778 +lon_0=174.7643393611111 +k=0.999900 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Bay of Plenty Circuit +<27206> +proj=tmerc +lat_0=-37.76124980555556 +lon_0=176.46619725 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Poverty Bay Circuit +<27207> +proj=tmerc +lat_0=-38.62470277777778 +lon_0=177.8856362777778 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Hawkes Bay Circuit +<27208> +proj=tmerc +lat_0=-39.65092930555556 +lon_0=176.6736805277778 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Taranaki Circuit +<27209> +proj=tmerc +lat_0=-39.13575830555556 +lon_0=174.22801175 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Tuhirangi Circuit +<27210> +proj=tmerc +lat_0=-39.51247038888889 +lon_0=175.6400368055556 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Wanganui Circuit +<27211> +proj=tmerc +lat_0=-40.24194713888889 +lon_0=175.4880996111111 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Wairarapa Circuit +<27212> +proj=tmerc +lat_0=-40.92553263888889 +lon_0=175.6473496666667 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Wellington Circuit +<27213> +proj=tmerc +lat_0=-41.30131963888888 +lon_0=174.7766231111111 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Collingwood Circuit +<27214> +proj=tmerc +lat_0=-40.71475905555556 +lon_0=172.6720465 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Nelson Circuit +<27215> +proj=tmerc +lat_0=-41.27454472222222 +lon_0=173.2993168055555 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Karamea Circuit +<27216> +proj=tmerc +lat_0=-41.28991152777778 +lon_0=172.1090281944444 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Buller Circuit +<27217> +proj=tmerc +lat_0=-41.81080286111111 +lon_0=171.5812600555556 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Grey Circuit +<27218> +proj=tmerc +lat_0=-42.33369427777778 +lon_0=171.5497713055556 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Amuri Circuit +<27219> +proj=tmerc +lat_0=-42.68911658333333 +lon_0=173.0101333888889 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Marlborough Circuit +<27220> +proj=tmerc +lat_0=-41.54448666666666 +lon_0=173.8020741111111 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Hokitika Circuit +<27221> +proj=tmerc +lat_0=-42.88632236111111 +lon_0=170.9799935 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Okarito Circuit +<27222> +proj=tmerc +lat_0=-43.11012813888889 +lon_0=170.2609258333333 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Jacksons Bay Circuit +<27223> +proj=tmerc +lat_0=-43.97780288888889 +lon_0=168.606267 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Mount Pleasant Circuit +<27224> +proj=tmerc +lat_0=-43.59063758333333 +lon_0=172.7271935833333 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Gawler Circuit +<27225> +proj=tmerc +lat_0=-43.74871155555556 +lon_0=171.3607484722222 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Timaru Circuit +<27226> +proj=tmerc +lat_0=-44.40222036111111 +lon_0=171.0572508333333 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Lindis Peak Circuit +<27227> +proj=tmerc +lat_0=-44.73526797222222 +lon_0=169.4677550833333 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Mount Nicholas Circuit +<27228> +proj=tmerc +lat_0=-45.13290258333333 +lon_0=168.3986411944444 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Mount York Circuit +<27229> +proj=tmerc +lat_0=-45.56372616666666 +lon_0=167.7388617777778 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Observation Point Circuit +<27230> +proj=tmerc +lat_0=-45.81619661111111 +lon_0=170.6285951666667 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / North Taieri Circuit +<27231> +proj=tmerc +lat_0=-45.86151336111111 +lon_0=170.2825891111111 +k=0.999960 +x_0=300000 +y_0=700000 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / Bluff Circuit +<27232> +proj=tmerc +lat_0=-46.60000961111111 +lon_0=168.342872 +k=1.000000 +x_0=300002.66 +y_0=699999.58 +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / UTM zone 58S +<27258> +proj=utm +zone=58 +south +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / UTM zone 59S +<27259> +proj=utm +zone=59 +south +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / UTM zone 60S +<27260> +proj=utm +zone=60 +south +ellps=intl +datum=nzgd49 +units=m +no_defs <> +# NZGD49 / North Island Grid +<27291> +proj=tmerc +lat_0=-39 +lon_0=175.5 +k=1.000000 +x_0=274319.5243848086 +y_0=365759.3658464114 +ellps=intl +datum=nzgd49 +to_meter=0.9143984146160287 +no_defs <> +# NZGD49 / South Island Grid +<27292> +proj=tmerc +lat_0=-44 +lon_0=171.5 +k=1.000000 +x_0=457199.2073080143 +y_0=457199.2073080143 +ellps=intl +datum=nzgd49 +to_meter=0.9143984146160287 +no_defs <> +# NGO 1948 (Oslo) / NGO zone I +<27391> +proj=tmerc +lat_0=58 +lon_0=-4.666666666666667 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs <> +# NGO 1948 (Oslo) / NGO zone II +<27392> +proj=tmerc +lat_0=58 +lon_0=-2.333333333333333 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs <> +# NGO 1948 (Oslo) / NGO zone III +<27393> +proj=tmerc +lat_0=58 +lon_0=0 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs <> +# NGO 1948 (Oslo) / NGO zone IV +<27394> +proj=tmerc +lat_0=58 +lon_0=2.5 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs <> +# NGO 1948 (Oslo) / NGO zone V +<27395> +proj=tmerc +lat_0=58 +lon_0=6.166666666666667 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs <> +# NGO 1948 (Oslo) / NGO zone VI +<27396> +proj=tmerc +lat_0=58 +lon_0=10.16666666666667 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs <> +# NGO 1948 (Oslo) / NGO zone VII +<27397> +proj=tmerc +lat_0=58 +lon_0=14.16666666666667 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs <> +# NGO 1948 (Oslo) / NGO zone VIII +<27398> +proj=tmerc +lat_0=58 +lon_0=18.33333333333333 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs <> +# Datum 73 / UTM zone 29N +<27429> +proj=utm +zone=29 +ellps=intl +units=m +no_defs <> +# Datum 73 / Modified Portuguese Grid +<27492> +proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1.000000 +x_0=180.598 +y_0=-86.98999999999999 +ellps=intl +units=m +no_defs <> +# ATF (Paris) / Nord de Guerre +<27500> +proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=5.4 +k_0=0.99950908 +x_0=500000 +y_0=300000 +a=6376523 +b=6355862.933255573 +pm=paris +units=m +no_defs <> +# NTF (Paris) / Lambert Nord France +<27561> +proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs <> +# NTF (Paris) / Lambert Centre France +<27562> +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs <> +# NTF (Paris) / Lambert Sud France +<27563> +proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs <> +# NTF (Paris) / Lambert Corse +<27564> +proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs <> +# NTF (Paris) / Lambert zone I +<27571> +proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs <> +# NTF (Paris) / Lambert zone II +<27572> +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs <> +# NTF (Paris) / Lambert zone III +<27573> +proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs <> +# NTF (Paris) / Lambert zone IV +<27574> +proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs <> +# NTF (Paris) / France I (deprecated) +<27581> +proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs <> +# NTF (Paris) / France II (deprecated) +<27582> +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs <> +# NTF (Paris) / France III (deprecated) +<27583> +proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs <> +# NTF (Paris) / France IV (deprecated) +<27584> +proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs <> +# NTF (Paris) / Nord France (deprecated) +<27591> +proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=0 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs <> +# NTF (Paris) / Centre France (deprecated) +<27592> +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs <> +# NTF (Paris) / Sud France (deprecated) +<27593> +proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=0 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs <> +# NTF (Paris) / Corse (deprecated) +<27594> +proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=0 +k_0=0.99994471 +x_0=234.358 +y_0=185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs <> +# OSGB 1936 / British National Grid +<27700> +proj=tmerc +lat_0=49 +lon_0=-2 +k=0.999601 +x_0=400000 +y_0=-100000 +ellps=airy +units=m +no_defs <> +# Palestine 1923 / Palestine Grid +<28191> +proj=cass +lat_0=31.73409694444445 +lon_0=35.21208055555556 +x_0=170251.555 +y_0=126867.909 +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +units=m +no_defs <> +# Palestine 1923 / Palestine Belt +<28192> +proj=tmerc +lat_0=31.73409694444445 +lon_0=35.21208055555556 +k=1.000000 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +units=m +no_defs <> +# Palestine 1923 / Israeli CS Grid +<28193> +proj=cass +lat_0=31.73409694444445 +lon_0=35.21208055555556 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b=6356566.435 +towgs84=-275.722,94.7824,340.894,-8.001,-4.42,-11.821,1 +units=m +no_defs <> +# Pointe Noire / UTM zone 32S +<28232> +proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +units=m +no_defs <> +# GDA94 / MGA zone 48 +<28348> +proj=utm +zone=48 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GDA94 / MGA zone 49 +<28349> +proj=utm +zone=49 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GDA94 / MGA zone 50 +<28350> +proj=utm +zone=50 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GDA94 / MGA zone 51 +<28351> +proj=utm +zone=51 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GDA94 / MGA zone 52 +<28352> +proj=utm +zone=52 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GDA94 / MGA zone 53 +<28353> +proj=utm +zone=53 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GDA94 / MGA zone 54 +<28354> +proj=utm +zone=54 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GDA94 / MGA zone 55 +<28355> +proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GDA94 / MGA zone 56 +<28356> +proj=utm +zone=56 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GDA94 / MGA zone 57 +<28357> +proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# GDA94 / MGA zone 58 +<28358> +proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 2 +<28402> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 3 +<28403> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 4 +<28404> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 5 +<28405> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 6 +<28406> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 7 +<28407> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 8 +<28408> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 9 +<28409> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 10 +<28410> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 11 +<28411> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 12 +<28412> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 13 +<28413> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 14 +<28414> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 15 +<28415> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 16 +<28416> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 17 +<28417> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 18 +<28418> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 19 +<28419> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 20 +<28420> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 21 +<28421> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 22 +<28422> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 23 +<28423> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 24 +<28424> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 25 +<28425> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 26 +<28426> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 27 +<28427> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 28 +<28428> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 29 +<28429> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 30 +<28430> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 31 +<28431> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 32 +<28432> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 2N (deprecated) +<28462> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 3N (deprecated) +<28463> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 4N (deprecated) +<28464> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 5N (deprecated) +<28465> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 6N (deprecated) +<28466> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 7N (deprecated) +<28467> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 8N (deprecated) +<28468> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 9N (deprecated) +<28469> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 10N (deprecated) +<28470> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 11N (deprecated) +<28471> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 12N (deprecated) +<28472> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 13N (deprecated) +<28473> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 14N (deprecated) +<28474> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 15N (deprecated) +<28475> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 16N (deprecated) +<28476> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 17N (deprecated) +<28477> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 18N (deprecated) +<28478> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 19N (deprecated) +<28479> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 20N (deprecated) +<28480> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 21N (deprecated) +<28481> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 22N (deprecated) +<28482> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 23N (deprecated) +<28483> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 24N (deprecated) +<28484> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 25N (deprecated) +<28485> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 26N (deprecated) +<28486> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 27N (deprecated) +<28487> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 28N (deprecated) +<28488> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 29N (deprecated) +<28489> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 30N (deprecated) +<28490> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 31N (deprecated) +<28491> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Pulkovo 1942 / Gauss-Kruger 32N (deprecated) +<28492> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs <> +# Qatar 1974 / Qatar National Grid +<28600> +proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.999990 +x_0=200000 +y_0=300000 +ellps=intl +units=m +no_defs <> +# Amersfoort / RD Old +<28991> +proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.999908 +x_0=0 +y_0=0 +ellps=bessel +towgs84=565.237,50.0087,465.658,-0.406857,0.350733,-1.87035,4.0812 +units=m +no_defs <> +# Amersfoort / RD New +<28992> +proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.999908 +x_0=155000 +y_0=463000 +ellps=bessel +towgs84=565.237,50.0087,465.658,-0.406857,0.350733,-1.87035,4.0812 +units=m +no_defs <> +# SAD69 / Brazil Polyconic (deprecated) +<29100> +proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=GRS67 +units=m +no_defs <> +# SAD69 / Brazil Polyconic +<29101> +proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 18N (deprecated) +<29118> +proj=utm +zone=18 +ellps=GRS67 +units=m +no_defs <> +# SAD69 / UTM zone 19N (deprecated) +<29119> +proj=utm +zone=19 +ellps=GRS67 +units=m +no_defs <> +# SAD69 / UTM zone 20N (deprecated) +<29120> +proj=utm +zone=20 +ellps=GRS67 +units=m +no_defs <> +# SAD69 / UTM zone 21N (deprecated) +<29121> +proj=utm +zone=21 +ellps=GRS67 +units=m +no_defs <> +# SAD69 / UTM zone 22N (deprecated) +<29122> +proj=utm +zone=22 +ellps=GRS67 +units=m +no_defs <> +# SAD69 / UTM zone 18N +<29168> +proj=utm +zone=18 +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 19N +<29169> +proj=utm +zone=19 +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 20N +<29170> +proj=utm +zone=20 +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 21N +<29171> +proj=utm +zone=21 +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 22N +<29172> +proj=utm +zone=22 +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 17S (deprecated) +<29177> +proj=utm +zone=17 +south +ellps=GRS67 +units=m +no_defs <> +# SAD69 / UTM zone 18S (deprecated) +<29178> +proj=utm +zone=18 +south +ellps=GRS67 +units=m +no_defs <> +# SAD69 / UTM zone 19S (deprecated) +<29179> +proj=utm +zone=19 +south +ellps=GRS67 +units=m +no_defs <> +# SAD69 / UTM zone 20S (deprecated) +<29180> +proj=utm +zone=20 +south +ellps=GRS67 +units=m +no_defs <> +# SAD69 / UTM zone 21S (deprecated) +<29181> +proj=utm +zone=21 +south +ellps=GRS67 +units=m +no_defs <> +# SAD69 / UTM zone 22S (deprecated) +<29182> +proj=utm +zone=22 +south +ellps=GRS67 +units=m +no_defs <> +# SAD69 / UTM zone 23S (deprecated) +<29183> +proj=utm +zone=23 +south +ellps=GRS67 +units=m +no_defs <> +# SAD69 / UTM zone 24S (deprecated) +<29184> +proj=utm +zone=24 +south +ellps=GRS67 +units=m +no_defs <> +# SAD69 / UTM zone 25S (deprecated) +<29185> +proj=utm +zone=25 +south +ellps=GRS67 +units=m +no_defs <> +# SAD69 / UTM zone 17S +<29187> +proj=utm +zone=17 +south +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 18S +<29188> +proj=utm +zone=18 +south +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 19S +<29189> +proj=utm +zone=19 +south +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 20S +<29190> +proj=utm +zone=20 +south +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 21S +<29191> +proj=utm +zone=21 +south +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 22S +<29192> +proj=utm +zone=22 +south +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 23S +<29193> +proj=utm +zone=23 +south +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 24S +<29194> +proj=utm +zone=24 +south +ellps=aust_SA +units=m +no_defs <> +# SAD69 / UTM zone 25S +<29195> +proj=utm +zone=25 +south +ellps=aust_SA +units=m +no_defs <> +# Sapper Hill 1943 / UTM zone 20S +<29220> +proj=utm +zone=20 +south +ellps=intl +towgs84=-355,21,72,0,0,0,0 +units=m +no_defs <> +# Sapper Hill 1943 / UTM zone 21S +<29221> +proj=utm +zone=21 +south +ellps=intl +towgs84=-355,21,72,0,0,0,0 +units=m +no_defs <> +# Schwarzeck / UTM zone 33S +<29333> +proj=utm +zone=33 +south +ellps=bess_nam +units=m +no_defs <> +# South West African Coord. System zone 11 +# Unable to translate coordinate system EPSG:29371 into PROJ.4 format. +# +# South West African Coord. System zone 13 +# Unable to translate coordinate system EPSG:29373 into PROJ.4 format. +# +# South West African Coord. System zone 15 +# Unable to translate coordinate system EPSG:29375 into PROJ.4 format. +# +# South West African Coord. System zone 17 +# Unable to translate coordinate system EPSG:29377 into PROJ.4 format. +# +# South West African Coord. System zone 19 +# Unable to translate coordinate system EPSG:29379 into PROJ.4 format. +# +# South West African Coord. System zone 21 +# Unable to translate coordinate system EPSG:29381 into PROJ.4 format. +# +# South West African Coord. System zone 23 +# Unable to translate coordinate system EPSG:29383 into PROJ.4 format. +# +# South West African Coord. System zone 25 +# Unable to translate coordinate system EPSG:29385 into PROJ.4 format. +# +# Sudan / UTM zone 35N (deprecated) +<29635> +proj=utm +zone=35 +a=6378249.2 +b=6356515 +units=m +no_defs <> +# Sudan / UTM zone 36N (deprecated) +<29636> +proj=utm +zone=36 +a=6378249.2 +b=6356515 +units=m +no_defs <> +# Tananarive (Paris) / Laborde Grid +<29700> +proj=omerc +lat_0=-18.9 +lonc=44.10000000000001 +alpha=18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=paris +units=m +no_defs <> +# Tananarive / UTM zone 38S +<29738> +proj=utm +zone=38 +south +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +units=m +no_defs <> +# Tananarive / UTM zone 39S +<29739> +proj=utm +zone=39 +south +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +units=m +no_defs <> +# Timbalai 1948 / UTM zone 49N +<29849> +proj=utm +zone=49 +ellps=evrstSS +units=m +no_defs <> +# Timbalai 1948 / UTM zone 50N +<29850> +proj=utm +zone=50 +ellps=evrstSS +units=m +no_defs <> +# Timbalai 1948 / RSO Borneo (ch) +<29871> +proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 +k=0.99984 +x_0=590476.8714630401 +y_0=442857.653094361 +ellps=evrstSS +to_meter=20.11676512155263 +no_defs <> +# Timbalai 1948 / RSO Borneo (ft) +<29872> +proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 +k=0.99984 +x_0=590476.8727431979 +y_0=442857.6545573985 +ellps=evrstSS +to_meter=0.3047994715386762 +no_defs <> +# Timbalai 1948 / RSO Borneo (m) +<29873> +proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 +k=0.99984 +x_0=590476.87 +y_0=442857.65 +ellps=evrstSS +units=m +no_defs <> +# TM65 / Irish National Grid (deprecated) +<29900> +proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +a=6377340.189 +b=6356034.447938534 +units=m +no_defs <> +# OSNI 1952 / Irish National Grid +<29901> +proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000000 +x_0=200000 +y_0=250000 +ellps=airy +towgs84=482.5,-130.6,564.6,-1.042,-0.214,-0.631,8.15 +units=m +no_defs <> +# TM65 / Irish Grid +<29902> +proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +a=6377340.189 +b=6356034.447938534 +units=m +no_defs <> +# TM75 / Irish Grid +<29903> +proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +a=6377340.189 +b=6356034.447938534 +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS I +<30161> +proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS II +<30162> +proj=tmerc +lat_0=33 +lon_0=131 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS III +<30163> +proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS IV +<30164> +proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS V +<30165> +proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS VI +<30166> +proj=tmerc +lat_0=36 +lon_0=136 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS VII +<30167> +proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS VIII +<30168> +proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS IX +<30169> +proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS X +<30170> +proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS XI +<30171> +proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS XII +<30172> +proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS XIII +<30173> +proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS XIV +<30174> +proj=tmerc +lat_0=26 +lon_0=142 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS XV +<30175> +proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS XVI +<30176> +proj=tmerc +lat_0=26 +lon_0=124 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS XVII +<30177> +proj=tmerc +lat_0=26 +lon_0=131 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS XVIII +<30178> +proj=tmerc +lat_0=20 +lon_0=136 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Tokyo / Japan Plane Rectangular CS XIX +<30179> +proj=tmerc +lat_0=26 +lon_0=154 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Trinidad 1903 / Trinidad Grid +<30200> +proj=cass +lat_0=10.44166666666667 +lon_0=-61.33333333333334 +x_0=86501.46392051999 +y_0=65379.0134283 +a=6378293.645208759 +b=6356617.987679838 +to_meter=0.201166195164 +no_defs <> +# TC(1948) / UTM zone 39N +<30339> +proj=utm +zone=39 +ellps=helmert +units=m +no_defs <> +# TC(1948) / UTM zone 40N +<30340> +proj=utm +zone=40 +ellps=helmert +units=m +no_defs <> +# Voirol 1875 / Nord Algerie (ancienne) +<30491> +proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +units=m +no_defs <> +# Voirol 1875 / Sud Algerie (ancienne) +<30492> +proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +units=m +no_defs <> +# Voirol 1879 / Nord Algerie (ancienne) +<30493> +proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs <> +# Voirol 1879 / Sud Algerie (ancienne) +<30494> +proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs <> +# Nord Sahara 1959 / UTM zone 29N +<30729> +proj=utm +zone=29 +ellps=clrk80 +units=m +no_defs <> +# Nord Sahara 1959 / UTM zone 30N +<30730> +proj=utm +zone=30 +ellps=clrk80 +units=m +no_defs <> +# Nord Sahara 1959 / UTM zone 31N +<30731> +proj=utm +zone=31 +ellps=clrk80 +units=m +no_defs <> +# Nord Sahara 1959 / UTM zone 32N +<30732> +proj=utm +zone=32 +ellps=clrk80 +units=m +no_defs <> +# Nord Sahara 1959 / Voirol Unifie Nord +<30791> +proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m +no_defs <> +# Nord Sahara 1959 / Voirol Unifie Sud +<30792> +proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m +no_defs <> +# RT38 2.5 gon W (deprecated) +<30800> +proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs <> +# Yoff / UTM zone 28N +<31028> +proj=utm +zone=28 +a=6378249.2 +b=6356515 +units=m +no_defs <> +# Zanderij / UTM zone 21N +<31121> +proj=utm +zone=21 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defs <> +# Zanderij / TM 54 NW +<31154> +proj=tmerc +lat_0=0 +lon_0=-54 +k=0.999600 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defs <> +# Zanderij / Suriname Old TM +<31170> +proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.999600 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defs <> +# Zanderij / Suriname TM +<31171> +proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.999900 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defs <> +# MGI / 3-degree Gauss zone 5 (deprecated) +<31265> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# MGI / 3-degree Gauss zone 6 (deprecated) +<31266> +proj=tmerc +lat_0=0 +lon_0=18 +k=1.000000 +x_0=6500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# MGI / 3-degree Gauss zone 7 (deprecated) +<31267> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=7500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# MGI / 3-degree Gauss zone 8 (deprecated) +<31268> +proj=tmerc +lat_0=0 +lon_0=24 +k=1.000000 +x_0=8500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# MGI / Balkans zone 5 +<31275> +proj=tmerc +lat_0=0 +lon_0=15 +k=0.999900 +x_0=5500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# MGI / Balkans zone 6 +<31276> +proj=tmerc +lat_0=0 +lon_0=18 +k=0.999900 +x_0=6500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# MGI / Balkans zone 7 +<31277> +proj=tmerc +lat_0=0 +lon_0=21 +k=0.999900 +x_0=7500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# MGI / Balkans zone 8 (deprecated) +<31278> +proj=tmerc +lat_0=0 +lon_0=21 +k=0.999900 +x_0=7500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# MGI / Balkans zone 8 +<31279> +proj=tmerc +lat_0=0 +lon_0=24 +k=0.999900 +x_0=8500000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# MGI (Ferro) / Austria West Zone +<31281> +proj=tmerc +lat_0=0 +lon_0=28 +k=1.000000 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs <> +# MGI (Ferro) / Austria Central Zone +<31282> +proj=tmerc +lat_0=0 +lon_0=31 +k=1.000000 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs <> +# MGI (Ferro) / Austria East Zone +<31283> +proj=tmerc +lat_0=0 +lon_0=34 +k=1.000000 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs <> +# MGI / M28 +<31284> +proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1.000000 +x_0=150000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# MGI / M31 +<31285> +proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1.000000 +x_0=450000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# MGI / M34 +<31286> +proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1.000000 +x_0=750000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# MGI / Austria Lambert +<31287> +proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# MGI (Ferro) / M28 +<31288> +proj=tmerc +lat_0=0 +lon_0=28 +k=1.000000 +x_0=150000 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs <> +# MGI (Ferro) / M31 +<31289> +proj=tmerc +lat_0=0 +lon_0=31 +k=1.000000 +x_0=450000 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs <> +# MGI (Ferro) / M34 +<31290> +proj=tmerc +lat_0=0 +lon_0=34 +k=1.000000 +x_0=750000 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs <> +# MGI (Ferro) / Austria West Zone (deprecated) +<31291> +proj=tmerc +lat_0=0 +lon_0=28 +k=1.000000 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs <> +# MGI (Ferro) / Austria Central Zone (deprecated) +<31292> +proj=tmerc +lat_0=0 +lon_0=31 +k=1.000000 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs <> +# MGI (Ferro) / Austria East Zone (deprecated) +<31293> +proj=tmerc +lat_0=0 +lon_0=34 +k=1.000000 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs <> +# MGI / M28 (deprecated) +<31294> +proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1.000000 +x_0=150000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# MGI / M31 (deprecated) +<31295> +proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1.000000 +x_0=450000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# MGI / M34 (deprecated) +<31296> +proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1.000000 +x_0=750000 +y_0=0 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# MGI / Austria Lambert (deprecated) +<31297> +proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=bessel +towgs84=577.326,90.129,463.919,5.137,1.474,5.297,2.4232 +units=m +no_defs <> +# Belge 1972 / Belge Lambert 72 +<31300> +proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666666 +lat_0=90 +lon_0=4.356939722222222 +x_0=150000.01256 +y_0=5400088.4378 +ellps=intl +units=m +no_defs <> +# Belge 1972 / Belgian Lambert 72 +<31370> +proj=lcc +lat_1=51.16666723333333 +lat_2=49.8333339 +lat_0=90 +lon_0=4.367486666666666 +x_0=150000.013 +y_0=5400088.438 +ellps=intl +units=m +no_defs <> +# DHDN / 3-degree Gauss zone 1 (deprecated) +<31461> +proj=tmerc +lat_0=0 +lon_0=3 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs <> +# DHDN / 3-degree Gauss zone 2 (deprecated) +<31462> +proj=tmerc +lat_0=0 +lon_0=6 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs <> +# DHDN / 3-degree Gauss zone 3 (deprecated) +<31463> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs <> +# DHDN / 3-degree Gauss zone 4 (deprecated) +<31464> +proj=tmerc +lat_0=0 +lon_0=12 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs <> +# DHDN / 3-degree Gauss zone 5 (deprecated) +<31465> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs <> +# DHDN / Gauss-Kruger zone 2 +<31466> +proj=tmerc +lat_0=0 +lon_0=6 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs <> +# DHDN / Gauss-Kruger zone 3 +<31467> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs <> +# DHDN / Gauss-Kruger zone 4 +<31468> +proj=tmerc +lat_0=0 +lon_0=12 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs <> +# DHDN / Gauss-Kruger zone 5 +<31469> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=bessel +datum=potsdam +units=m +no_defs <> +# Conakry 1905 / UTM zone 28N +<31528> +proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs <> +# Conakry 1905 / UTM zone 29N +<31529> +proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs <> +# Dealul Piscului 1933/ Stereo 33 +<31600> +proj=sterea +lat_0=45.9 +lon_0=25.39246588888889 +k=0.999667 +x_0=500000 +y_0=500000 +ellps=intl +units=m +no_defs <> +# Dealul Piscului 1970/ Stereo 70 +<31700> +proj=sterea +lat_0=46 +lon_0=25 +k=0.999750 +x_0=500000 +y_0=500000 +ellps=krass +units=m +no_defs <> +# NGN / UTM zone 38N +<31838> +proj=utm +zone=38 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,0 +units=m +no_defs <> +# NGN / UTM zone 39N +<31839> +proj=utm +zone=39 +ellps=WGS84 +towgs84=-3.2,-5.7,2.8,0,0,0,0 +units=m +no_defs <> +# KUDAMS / KTM (deprecated) +<31900> +proj=tmerc +lat_0=0 +lon_0=48 +k=0.999600 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# KUDAMS / KTM +<31901> +proj=tmerc +lat_0=0 +lon_0=48 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 11N +<31965> +proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 12N +<31966> +proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 13N +<31967> +proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 14N +<31968> +proj=utm +zone=14 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 15N +<31969> +proj=utm +zone=15 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 16N +<31970> +proj=utm +zone=16 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 17N +<31971> +proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 18N +<31972> +proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 19N +<31973> +proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 20N +<31974> +proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 21N +<31975> +proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 22N +<31976> +proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 17S +<31977> +proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 18S +<31978> +proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 19S +<31979> +proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 20S +<31980> +proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 21S +<31981> +proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 22S +<31982> +proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 23S +<31983> +proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 24S +<31984> +proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS 2000 / UTM zone 25S +<31985> +proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS / UTM zone 17N +<31986> +proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS / UTM zone 18N +<31987> +proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS / UTM zone 19N +<31988> +proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS / UTM zone 20N +<31989> +proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS / UTM zone 21N +<31990> +proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS / UTM zone 22N +<31991> +proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS / UTM zone 17S +<31992> +proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS / UTM zone 18S +<31993> +proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS / UTM zone 19S +<31994> +proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS / UTM zone 20S +<31995> +proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS / UTM zone 21S +<31996> +proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS / UTM zone 22S +<31997> +proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS / UTM zone 23S +<31998> +proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS / UTM zone 24S +<31999> +proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# SIRGAS / UTM zone 25S +<32000> +proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs <> +# NAD27 / Montana North +<32001> +proj=lcc +lat_1=48.71666666666667 +lat_2=47.85 +lat_0=47 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Montana Central +<32002> +proj=lcc +lat_1=47.88333333333333 +lat_2=46.45 +lat_0=45.83333333333334 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Montana South +<32003> +proj=lcc +lat_1=46.4 +lat_2=44.86666666666667 +lat_0=44 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Nebraska North +<32005> +proj=lcc +lat_1=41.85 +lat_2=42.81666666666667 +lat_0=41.33333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Nebraska South +<32006> +proj=lcc +lat_1=40.28333333333333 +lat_2=41.71666666666667 +lat_0=39.66666666666666 +lon_0=-99.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Nevada East +<32007> +proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Nevada Central +<32008> +proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Nevada West +<32009> +proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / New Hampshire +<32010> +proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999967 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / New Jersey +<32011> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.66666666666667 +k=0.999975 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / New Mexico East +<32012> +proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / New Mexico Central +<32013> +proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / New Mexico West +<32014> +proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999917 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / New York East +<32015> +proj=tmerc +lat_0=40 +lon_0=-74.33333333333333 +k=0.999967 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / New York Central +<32016> +proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999938 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / New York West +<32017> +proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999938 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / New York Long Island +<32018> +proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.5 +lon_0=-74 +x_0=304800.6096012192 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / North Carolina +<32019> +proj=lcc +lat_1=34.33333333333334 +lat_2=36.16666666666666 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / North Dakota North +<32020> +proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-100.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / North Dakota South +<32021> +proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Ohio North +<32022> +proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Ohio South +<32023> +proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333333 +lat_0=38 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Oklahoma North +<32024> +proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666667 +lat_0=35 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Oklahoma South +<32025> +proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Oregon North +<32026> +proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Oregon South +<32027> +proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Pennsylvania North +<32028> +proj=lcc +lat_1=40.88333333333333 +lat_2=41.95 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Pennsylvania South +<32029> +proj=lcc +lat_1=39.93333333333333 +lat_2=40.8 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Rhode Island +<32030> +proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.999994 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / South Carolina North +<32031> +proj=lcc +lat_1=33.76666666666667 +lat_2=34.96666666666667 +lat_0=33 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / South Carolina South +<32033> +proj=lcc +lat_1=32.33333333333334 +lat_2=33.66666666666666 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / South Dakota North +<32034> +proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / South Dakota South +<32035> +proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Tennessee (deprecated) +<32036> +proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.66666666666666 +lon_0=-86 +x_0=30480.06096012192 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Texas North +<32037> +proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=34 +lon_0=-101.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Texas North Central +<32038> +proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666667 +lat_0=31.66666666666667 +lon_0=-97.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Texas Central +<32039> +proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Texas South Central +<32040> +proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Texas South +<32041> +proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Utah North +<32042> +proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Utah Central +<32043> +proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Utah South +<32044> +proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Vermont +<32045> +proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Virginia North +<32046> +proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Virginia South +<32047> +proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Washington North +<32048> +proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-120.8333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Washington South +<32049> +proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / West Virginia North +<32050> +proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / West Virginia South +<32051> +proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333333 +lat_0=37 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Wisconsin North +<32052> +proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Wisconsin Central +<32053> +proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333334 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Wisconsin South +<32054> +proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666667 +lat_0=42 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Wyoming East +<32055> +proj=tmerc +lat_0=40.66666666666666 +lon_0=-105.1666666666667 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Wyoming East Central +<32056> +proj=tmerc +lat_0=40.66666666666666 +lon_0=-107.3333333333333 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Wyoming West Central +<32057> +proj=tmerc +lat_0=40.66666666666666 +lon_0=-108.75 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Wyoming West +<32058> +proj=tmerc +lat_0=40.66666666666666 +lon_0=-110.0833333333333 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / Guatemala Norte +<32061> +proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=500000 +y_0=292209.579 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / Guatemala Sur +<32062> +proj=lcc +lat_1=14.9 +lat_0=14.9 +lon_0=-90.33333333333333 +k_0=0.99989906 +x_0=500000 +y_0=325992.681 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / BLM 14N (ftUS) +<32064> +proj=tmerc +lat_0=0 +lon_0=-99 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / BLM 15N (ftUS) +<32065> +proj=tmerc +lat_0=0 +lon_0=-93 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / BLM 16N (ftUS) +<32066> +proj=tmerc +lat_0=0 +lon_0=-87 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / BLM 17N (ftUS) +<32067> +proj=tmerc +lat_0=0 +lon_0=-81 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / BLM 14N (feet) (deprecated) +<32074> +proj=tmerc +lat_0=0 +lon_0=-99 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / BLM 15N (feet) (deprecated) +<32075> +proj=tmerc +lat_0=0 +lon_0=-93 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / BLM 16N (feet) (deprecated) +<32076> +proj=tmerc +lat_0=0 +lon_0=-87 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / BLM 17N (feet) (deprecated) +<32077> +proj=tmerc +lat_0=0 +lon_0=-81 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD27 / MTM zone 1 +<32081> +proj=tmerc +lat_0=0 +lon_0=-53 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / MTM zone 2 +<32082> +proj=tmerc +lat_0=0 +lon_0=-56 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / MTM zone 3 +<32083> +proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / MTM zone 4 +<32084> +proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / MTM zone 5 +<32085> +proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / MTM zone 6 +<32086> +proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / Quebec Lambert +<32098> +proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs <> +# NAD27 / Louisiana Offshore +<32099> +proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / Montana +<32100> +proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Nebraska +<32104> +proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Nevada East +<32107> +proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.999900 +x_0=200000 +y_0=8000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Nevada Central +<32108> +proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.999900 +x_0=500000 +y_0=6000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Nevada West +<32109> +proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.999900 +x_0=800000 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / New Hampshire +<32110> +proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999967 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / New Jersey +<32111> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.999900 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / New Mexico East +<32112> +proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909 +x_0=165000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / New Mexico Central +<32113> +proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / New Mexico West +<32114> +proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999917 +x_0=830000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / New York East +<32115> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.999900 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / New York Central +<32116> +proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999938 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / New York West +<32117> +proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999938 +x_0=350000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / New York Long Island +<32118> +proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / North Carolina +<32119> +proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / North Dakota North +<32120> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / North Dakota South +<32121> +proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Ohio North +<32122> +proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Ohio South +<32123> +proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Oklahoma North +<32124> +proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Oklahoma South +<32125> +proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Oregon North +<32126> +proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Oregon South +<32127> +proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Pennsylvania North +<32128> +proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Pennsylvania South +<32129> +proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Rhode Island +<32130> +proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.999994 +x_0=100000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / South Carolina +<32133> +proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / South Dakota North +<32134> +proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / South Dakota South +<32135> +proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Tennessee +<32136> +proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Texas North +<32137> +proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Texas North Central +<32138> +proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Texas Central +<32139> +proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Texas South Central +<32140> +proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Texas South +<32141> +proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=5000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Utah North +<32142> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Utah Central +<32143> +proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Utah South +<32144> +proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Vermont +<32145> +proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Virginia North +<32146> +proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Virginia South +<32147> +proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Washington North +<32148> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Washington South +<32149> +proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / West Virginia North +<32150> +proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / West Virginia South +<32151> +proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Wisconsin North +<32152> +proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Wisconsin Central +<32153> +proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Wisconsin South +<32154> +proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Wyoming East +<32155> +proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.999938 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Wyoming East Central +<32156> +proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.999938 +x_0=400000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Wyoming West Central +<32157> +proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.999938 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Wyoming West +<32158> +proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.999938 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Puerto Rico & Virgin Is. +<32161> +proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / BLM 14N (ftUS) +<32164> +proj=tmerc +lat_0=0 +lon_0=-99 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / BLM 15N (ftUS) +<32165> +proj=tmerc +lat_0=0 +lon_0=-93 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / BLM 16N (ftUS) +<32166> +proj=tmerc +lat_0=0 +lon_0=-87 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / BLM 17N (ftUS) +<32167> +proj=tmerc +lat_0=0 +lon_0=-81 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs <> +# NAD83 / SCoPQ zone 2 +<32180> +proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 1 +<32181> +proj=tmerc +lat_0=0 +lon_0=-53 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 2 +<32182> +proj=tmerc +lat_0=0 +lon_0=-56 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 3 +<32183> +proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 4 +<32184> +proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 5 +<32185> +proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 6 +<32186> +proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 7 +<32187> +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 8 +<32188> +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 9 +<32189> +proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 10 +<32190> +proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 11 +<32191> +proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 12 +<32192> +proj=tmerc +lat_0=0 +lon_0=-81 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 13 +<32193> +proj=tmerc +lat_0=0 +lon_0=-84 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 14 +<32194> +proj=tmerc +lat_0=0 +lon_0=-87 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 15 +<32195> +proj=tmerc +lat_0=0 +lon_0=-90 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 16 +<32196> +proj=tmerc +lat_0=0 +lon_0=-93 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / MTM zone 17 +<32197> +proj=tmerc +lat_0=0 +lon_0=-96 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Quebec Lambert +<32198> +proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# NAD83 / Louisiana Offshore +<32199> +proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs <> +# WGS 72 / UTM zone 1N +<32201> +proj=utm +zone=1 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 2N +<32202> +proj=utm +zone=2 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 3N +<32203> +proj=utm +zone=3 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 4N +<32204> +proj=utm +zone=4 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 5N +<32205> +proj=utm +zone=5 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 6N +<32206> +proj=utm +zone=6 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 7N +<32207> +proj=utm +zone=7 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 8N +<32208> +proj=utm +zone=8 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 9N +<32209> +proj=utm +zone=9 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 10N +<32210> +proj=utm +zone=10 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 11N +<32211> +proj=utm +zone=11 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 12N +<32212> +proj=utm +zone=12 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 13N +<32213> +proj=utm +zone=13 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 14N +<32214> +proj=utm +zone=14 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 15N +<32215> +proj=utm +zone=15 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 16N +<32216> +proj=utm +zone=16 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 17N +<32217> +proj=utm +zone=17 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 18N +<32218> +proj=utm +zone=18 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 19N +<32219> +proj=utm +zone=19 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 20N +<32220> +proj=utm +zone=20 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 21N +<32221> +proj=utm +zone=21 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 22N +<32222> +proj=utm +zone=22 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 23N +<32223> +proj=utm +zone=23 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 24N +<32224> +proj=utm +zone=24 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 25N +<32225> +proj=utm +zone=25 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 26N +<32226> +proj=utm +zone=26 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 27N +<32227> +proj=utm +zone=27 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 28N +<32228> +proj=utm +zone=28 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 29N +<32229> +proj=utm +zone=29 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 30N +<32230> +proj=utm +zone=30 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 31N +<32231> +proj=utm +zone=31 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 32N +<32232> +proj=utm +zone=32 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 33N +<32233> +proj=utm +zone=33 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 34N +<32234> +proj=utm +zone=34 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 35N +<32235> +proj=utm +zone=35 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 36N +<32236> +proj=utm +zone=36 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 37N +<32237> +proj=utm +zone=37 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 38N +<32238> +proj=utm +zone=38 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 39N +<32239> +proj=utm +zone=39 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 40N +<32240> +proj=utm +zone=40 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 41N +<32241> +proj=utm +zone=41 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 42N +<32242> +proj=utm +zone=42 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 43N +<32243> +proj=utm +zone=43 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 44N +<32244> +proj=utm +zone=44 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 45N +<32245> +proj=utm +zone=45 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 46N +<32246> +proj=utm +zone=46 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 47N +<32247> +proj=utm +zone=47 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 48N +<32248> +proj=utm +zone=48 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 49N +<32249> +proj=utm +zone=49 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 50N +<32250> +proj=utm +zone=50 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 51N +<32251> +proj=utm +zone=51 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 52N +<32252> +proj=utm +zone=52 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 53N +<32253> +proj=utm +zone=53 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 54N +<32254> +proj=utm +zone=54 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 55N +<32255> +proj=utm +zone=55 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 56N +<32256> +proj=utm +zone=56 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 57N +<32257> +proj=utm +zone=57 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 58N +<32258> +proj=utm +zone=58 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 59N +<32259> +proj=utm +zone=59 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 60N +<32260> +proj=utm +zone=60 +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 1S +<32301> +proj=utm +zone=1 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 2S +<32302> +proj=utm +zone=2 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 3S +<32303> +proj=utm +zone=3 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 4S +<32304> +proj=utm +zone=4 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 5S +<32305> +proj=utm +zone=5 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 6S +<32306> +proj=utm +zone=6 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 7S +<32307> +proj=utm +zone=7 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 8S +<32308> +proj=utm +zone=8 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 9S +<32309> +proj=utm +zone=9 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 10S +<32310> +proj=utm +zone=10 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 11S +<32311> +proj=utm +zone=11 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 12S +<32312> +proj=utm +zone=12 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 13S +<32313> +proj=utm +zone=13 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 14S +<32314> +proj=utm +zone=14 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 15S +<32315> +proj=utm +zone=15 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 16S +<32316> +proj=utm +zone=16 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 17S +<32317> +proj=utm +zone=17 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 18S +<32318> +proj=utm +zone=18 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 19S +<32319> +proj=utm +zone=19 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 20S +<32320> +proj=utm +zone=20 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 21S +<32321> +proj=utm +zone=21 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 22S +<32322> +proj=utm +zone=22 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 23S +<32323> +proj=utm +zone=23 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 24S +<32324> +proj=utm +zone=24 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 25S +<32325> +proj=utm +zone=25 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 26S +<32326> +proj=utm +zone=26 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 27S +<32327> +proj=utm +zone=27 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 28S +<32328> +proj=utm +zone=28 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 29S +<32329> +proj=utm +zone=29 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 30S +<32330> +proj=utm +zone=30 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 31S +<32331> +proj=utm +zone=31 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 32S +<32332> +proj=utm +zone=32 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 33S +<32333> +proj=utm +zone=33 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 34S +<32334> +proj=utm +zone=34 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 35S +<32335> +proj=utm +zone=35 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 36S +<32336> +proj=utm +zone=36 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 37S +<32337> +proj=utm +zone=37 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 38S +<32338> +proj=utm +zone=38 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 39S +<32339> +proj=utm +zone=39 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 40S +<32340> +proj=utm +zone=40 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 41S +<32341> +proj=utm +zone=41 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 42S +<32342> +proj=utm +zone=42 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 43S +<32343> +proj=utm +zone=43 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 44S +<32344> +proj=utm +zone=44 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 45S +<32345> +proj=utm +zone=45 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 46S +<32346> +proj=utm +zone=46 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 47S +<32347> +proj=utm +zone=47 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 48S +<32348> +proj=utm +zone=48 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 49S +<32349> +proj=utm +zone=49 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 50S +<32350> +proj=utm +zone=50 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 51S +<32351> +proj=utm +zone=51 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 52S +<32352> +proj=utm +zone=52 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 53S +<32353> +proj=utm +zone=53 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 54S +<32354> +proj=utm +zone=54 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 55S +<32355> +proj=utm +zone=55 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 56S +<32356> +proj=utm +zone=56 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 57S +<32357> +proj=utm +zone=57 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 58S +<32358> +proj=utm +zone=58 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 59S +<32359> +proj=utm +zone=59 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72 / UTM zone 60S +<32360> +proj=utm +zone=60 +south +ellps=WGS72 +units=m +no_defs <> +# WGS 72BE / UTM zone 1N +<32401> +proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 2N +<32402> +proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 3N +<32403> +proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 4N +<32404> +proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 5N +<32405> +proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 6N +<32406> +proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 7N +<32407> +proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 8N +<32408> +proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 9N +<32409> +proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 10N +<32410> +proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 11N +<32411> +proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 12N +<32412> +proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 13N +<32413> +proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 14N +<32414> +proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 15N +<32415> +proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 16N +<32416> +proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 17N +<32417> +proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 18N +<32418> +proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 19N +<32419> +proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 20N +<32420> +proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 21N +<32421> +proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 22N +<32422> +proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 23N +<32423> +proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 24N +<32424> +proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 25N +<32425> +proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 26N +<32426> +proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 27N +<32427> +proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 28N +<32428> +proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 29N +<32429> +proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 30N +<32430> +proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 31N +<32431> +proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 32N +<32432> +proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 33N +<32433> +proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 34N +<32434> +proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 35N +<32435> +proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 36N +<32436> +proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 37N +<32437> +proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 38N +<32438> +proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 39N +<32439> +proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 40N +<32440> +proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 41N +<32441> +proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 42N +<32442> +proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 43N +<32443> +proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 44N +<32444> +proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 45N +<32445> +proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 46N +<32446> +proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 47N +<32447> +proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 48N +<32448> +proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 49N +<32449> +proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 50N +<32450> +proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 51N +<32451> +proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 52N +<32452> +proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 53N +<32453> +proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 54N +<32454> +proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 55N +<32455> +proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 56N +<32456> +proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 57N +<32457> +proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 58N +<32458> +proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 59N +<32459> +proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 60N +<32460> +proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 1S +<32501> +proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 2S +<32502> +proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 3S +<32503> +proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 4S +<32504> +proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 5S +<32505> +proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 6S +<32506> +proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 7S +<32507> +proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 8S +<32508> +proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 9S +<32509> +proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 10S +<32510> +proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 11S +<32511> +proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 12S +<32512> +proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 13S +<32513> +proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 14S +<32514> +proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 15S +<32515> +proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 16S +<32516> +proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 17S +<32517> +proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 18S +<32518> +proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 19S +<32519> +proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 20S +<32520> +proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 21S +<32521> +proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 22S +<32522> +proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 23S +<32523> +proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 24S +<32524> +proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 25S +<32525> +proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 26S +<32526> +proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 27S +<32527> +proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 28S +<32528> +proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 29S +<32529> +proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 30S +<32530> +proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 31S +<32531> +proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 32S +<32532> +proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 33S +<32533> +proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 34S +<32534> +proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 35S +<32535> +proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 36S +<32536> +proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 37S +<32537> +proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 38S +<32538> +proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 39S +<32539> +proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 40S +<32540> +proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 41S +<32541> +proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 42S +<32542> +proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 43S +<32543> +proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 44S +<32544> +proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 45S +<32545> +proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 46S +<32546> +proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 47S +<32547> +proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 48S +<32548> +proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 49S +<32549> +proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 50S +<32550> +proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 51S +<32551> +proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 52S +<32552> +proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 53S +<32553> +proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 54S +<32554> +proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 55S +<32555> +proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 56S +<32556> +proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 57S +<32557> +proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 58S +<32558> +proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 59S +<32559> +proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 72BE / UTM zone 60S +<32560> +proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs <> +# WGS 84 / UTM grid system (northern hemisphere) +# Unable to translate coordinate system EPSG:32600 into PROJ.4 format. +# +# WGS 84 / UTM zone 1N +<32601> +proj=utm +zone=1 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 2N +<32602> +proj=utm +zone=2 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 3N +<32603> +proj=utm +zone=3 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 4N +<32604> +proj=utm +zone=4 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 5N +<32605> +proj=utm +zone=5 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 6N +<32606> +proj=utm +zone=6 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 7N +<32607> +proj=utm +zone=7 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 8N +<32608> +proj=utm +zone=8 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 9N +<32609> +proj=utm +zone=9 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 10N +<32610> +proj=utm +zone=10 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 11N +<32611> +proj=utm +zone=11 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 12N +<32612> +proj=utm +zone=12 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 13N +<32613> +proj=utm +zone=13 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 14N +<32614> +proj=utm +zone=14 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 15N +<32615> +proj=utm +zone=15 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 16N +<32616> +proj=utm +zone=16 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 17N +<32617> +proj=utm +zone=17 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 18N +<32618> +proj=utm +zone=18 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 19N +<32619> +proj=utm +zone=19 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 20N +<32620> +proj=utm +zone=20 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 21N +<32621> +proj=utm +zone=21 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 22N +<32622> +proj=utm +zone=22 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 23N +<32623> +proj=utm +zone=23 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 24N +<32624> +proj=utm +zone=24 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 25N +<32625> +proj=utm +zone=25 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 26N +<32626> +proj=utm +zone=26 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 27N +<32627> +proj=utm +zone=27 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 28N +<32628> +proj=utm +zone=28 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 29N +<32629> +proj=utm +zone=29 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 30N +<32630> +proj=utm +zone=30 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 31N +<32631> +proj=utm +zone=31 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 32N +<32632> +proj=utm +zone=32 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 33N +<32633> +proj=utm +zone=33 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 34N +<32634> +proj=utm +zone=34 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 35N +<32635> +proj=utm +zone=35 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 36N +<32636> +proj=utm +zone=36 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 37N +<32637> +proj=utm +zone=37 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 38N +<32638> +proj=utm +zone=38 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 39N +<32639> +proj=utm +zone=39 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 40N +<32640> +proj=utm +zone=40 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 41N +<32641> +proj=utm +zone=41 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 42N +<32642> +proj=utm +zone=42 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 43N +<32643> +proj=utm +zone=43 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 44N +<32644> +proj=utm +zone=44 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 45N +<32645> +proj=utm +zone=45 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 46N +<32646> +proj=utm +zone=46 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 47N +<32647> +proj=utm +zone=47 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 48N +<32648> +proj=utm +zone=48 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 49N +<32649> +proj=utm +zone=49 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 50N +<32650> +proj=utm +zone=50 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 51N +<32651> +proj=utm +zone=51 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 52N +<32652> +proj=utm +zone=52 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 53N +<32653> +proj=utm +zone=53 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 54N +<32654> +proj=utm +zone=54 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 55N +<32655> +proj=utm +zone=55 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 56N +<32656> +proj=utm +zone=56 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 57N +<32657> +proj=utm +zone=57 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 58N +<32658> +proj=utm +zone=58 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 59N +<32659> +proj=utm +zone=59 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 60N +<32660> +proj=utm +zone=60 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UPS North +<32661> +proj=stere +lat_0=90 +lat_ts=90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / Plate Carree +<32662> +proj=eqc +lat_ts=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / BLM 14N (ftUS) +<32664> +proj=tmerc +lat_0=0 +lon_0=-99 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +to_meter=0.3048006096012192 +no_defs <> +# WGS 84 / BLM 15N (ftUS) +<32665> +proj=tmerc +lat_0=0 +lon_0=-93 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +to_meter=0.3048006096012192 +no_defs <> +# WGS 84 / BLM 16N (ftUS) +<32666> +proj=tmerc +lat_0=0 +lon_0=-87 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +to_meter=0.3048006096012192 +no_defs <> +# WGS 84 / BLM 17N (ftUS) +<32667> +proj=tmerc +lat_0=0 +lon_0=-81 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=WGS84 +datum=WGS84 +to_meter=0.3048006096012192 +no_defs <> +# WGS 84 / UTM grid system (southern hemisphere) +# Unable to translate coordinate system EPSG:32700 into PROJ.4 format. +# +# WGS 84 / UTM zone 1S +<32701> +proj=utm +zone=1 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 2S +<32702> +proj=utm +zone=2 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 3S +<32703> +proj=utm +zone=3 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 4S +<32704> +proj=utm +zone=4 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 5S +<32705> +proj=utm +zone=5 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 6S +<32706> +proj=utm +zone=6 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 7S +<32707> +proj=utm +zone=7 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 8S +<32708> +proj=utm +zone=8 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 9S +<32709> +proj=utm +zone=9 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 10S +<32710> +proj=utm +zone=10 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 11S +<32711> +proj=utm +zone=11 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 12S +<32712> +proj=utm +zone=12 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 13S +<32713> +proj=utm +zone=13 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 14S +<32714> +proj=utm +zone=14 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 15S +<32715> +proj=utm +zone=15 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 16S +<32716> +proj=utm +zone=16 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 17S +<32717> +proj=utm +zone=17 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 18S +<32718> +proj=utm +zone=18 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 19S +<32719> +proj=utm +zone=19 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 20S +<32720> +proj=utm +zone=20 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 21S +<32721> +proj=utm +zone=21 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 22S +<32722> +proj=utm +zone=22 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 23S +<32723> +proj=utm +zone=23 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 24S +<32724> +proj=utm +zone=24 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 25S +<32725> +proj=utm +zone=25 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 26S +<32726> +proj=utm +zone=26 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 27S +<32727> +proj=utm +zone=27 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 28S +<32728> +proj=utm +zone=28 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 29S +<32729> +proj=utm +zone=29 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 30S +<32730> +proj=utm +zone=30 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 31S +<32731> +proj=utm +zone=31 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 32S +<32732> +proj=utm +zone=32 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 33S +<32733> +proj=utm +zone=33 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 34S +<32734> +proj=utm +zone=34 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 35S +<32735> +proj=utm +zone=35 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 36S +<32736> +proj=utm +zone=36 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 37S +<32737> +proj=utm +zone=37 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 38S +<32738> +proj=utm +zone=38 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 39S +<32739> +proj=utm +zone=39 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 40S +<32740> +proj=utm +zone=40 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 41S +<32741> +proj=utm +zone=41 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 42S +<32742> +proj=utm +zone=42 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 43S +<32743> +proj=utm +zone=43 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 44S +<32744> +proj=utm +zone=44 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 45S +<32745> +proj=utm +zone=45 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 46S +<32746> +proj=utm +zone=46 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 47S +<32747> +proj=utm +zone=47 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 48S +<32748> +proj=utm +zone=48 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 49S +<32749> +proj=utm +zone=49 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 50S +<32750> +proj=utm +zone=50 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 51S +<32751> +proj=utm +zone=51 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 52S +<32752> +proj=utm +zone=52 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 53S +<32753> +proj=utm +zone=53 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 54S +<32754> +proj=utm +zone=54 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 55S +<32755> +proj=utm +zone=55 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 56S +<32756> +proj=utm +zone=56 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 57S +<32757> +proj=utm +zone=57 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 58S +<32758> +proj=utm +zone=58 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 59S +<32759> +proj=utm +zone=59 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UTM zone 60S +<32760> +proj=utm +zone=60 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / UPS South +<32761> +proj=stere +lat_0=-90 +lat_ts=-90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +# WGS 84 / TM 36 SE +<32766> +proj=tmerc +lat_0=0 +lon_0=36 +k=0.999600 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> diff --git a/src/main/webapp/WEB-INF/classes/nad/esri b/src/main/webapp/WEB-INF/classes/nad/esri new file mode 100644 index 0000000..ddee64b --- /dev/null +++ b/src/main/webapp/WEB-INF/classes/nad/esri @@ -0,0 +1,5937 @@ +# Anguilla 1957 / British West Indies Grid +<2000> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defs no_defs <> +# Antigua 1943 / British West Indies Grid +<2001> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=-255,-15,71,0,0,0,0 +units=m +no_defs no_defs <> +# Dominica 1945 / British West Indies Grid +<2002> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=725,685,536,0,0,0,0 +units=m +no_defs no_defs <> +# Grenada 1953 / British West Indies Grid +<2003> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=72,213.7,93,0,0,0,0 +units=m +no_defs no_defs <> +# Montserrat 58 / British West Indies Grid +<2004> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=174,359,365,0,0,0,0 +units=m +no_defs no_defs <> +# St Kitts 1955 / British West Indies Grid +<2005> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=9,183,236,0,0,0,0 +units=m +no_defs no_defs <> +# St Lucia 1955 / British West Indies Grid +<2006> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +towgs84=-149,128,296,0,0,0,0 +units=m +no_defs no_defs <> +# St Vincent 45 / British West Indies Grid +<2007> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defs no_defs <> +# NAD27(CGQ77) / SCoPQ zone 2 +<2008> +proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(CGQ77) / SCoPQ zone 3 +<2009> +proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(CGQ77) / SCoPQ zone 4 +<2010> +proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(CGQ77) / SCoPQ zone 5 +<2011> +proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(CGQ77) / SCoPQ zone 6 +<2012> +proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(CGQ77) / SCoPQ zone 7 +<2013> +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(CGQ77) / SCoPQ zone 8 +<2014> +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(CGQ77) / SCoPQ zone 9 +<2015> +proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(CGQ77) / SCoPQ zone 10 +<2016> +proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(76) / MTM zone 8 +<2017> +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(76) / MTM zone 9 +<2018> +proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(76) / MTM zone 10 +<2019> +proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(76) / MTM zone 11 +<2020> +proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(76) / MTM zone 12 +<2021> +proj=tmerc +lat_0=0 +lon_0=-81 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(76) / MTM zone 13 +<2022> +proj=tmerc +lat_0=0 +lon_0=-84 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(76) / MTM zone 14 +<2023> +proj=tmerc +lat_0=0 +lon_0=-87 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(76) / MTM zone 15 +<2024> +proj=tmerc +lat_0=0 +lon_0=-90 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(76) / MTM zone 16 +<2025> +proj=tmerc +lat_0=0 +lon_0=-93 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(76) / MTM zone 17 +<2026> +proj=tmerc +lat_0=0 +lon_0=-96 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(76) / UTM zone 15N +<2027> +proj=utm +zone=15 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(76) / UTM zone 16N +<2028> +proj=utm +zone=16 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(76) / UTM zone 17N +<2029> +proj=utm +zone=17 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(76) / UTM zone 18N +<2030> +proj=utm +zone=18 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(CGQ77) / UTM zone 17N +<2031> +proj=utm +zone=17 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(CGQ77) / UTM zone 18N +<2032> +proj=utm +zone=18 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(CGQ77) / UTM zone 19N +<2033> +proj=utm +zone=19 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(CGQ77) / UTM zone 20N +<2034> +proj=utm +zone=20 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD27(CGQ77) / UTM zone 21N +<2035> +proj=utm +zone=21 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / New Brunswick Stereo +<2036> +proj=stere +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2500000 +y_0=7500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / UTM zone 19N +<2037> +proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / UTM zone 20N +<2038> +proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# Israel / Israeli TM Grid +<2039> +proj=tmerc +lat_0=31.73439361111111 +lon_0=35.20451694444445 +k=1.000007 +x_0=219529.584 +y_0=626907.39 +ellps=GRS80 +units=m +no_defs no_defs <> +# Locodjo 1965 / UTM zone 30N +<2040> +proj=utm +zone=30 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defs no_defs <> +# Abidjan 1987 / UTM zone 30N +<2041> +proj=utm +zone=30 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defs no_defs <> +# Locodjo 1965 / UTM zone 29N +<2042> +proj=utm +zone=29 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defs no_defs <> +# Abidjan 1987 / UTM zone 29N +<2043> +proj=utm +zone=29 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defs no_defs <> +# Hanoi 1972 / Gauss-Kruger zone 18 +<2044> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=18500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defs no_defs <> +# Hanoi 1972 / Gauss-Kruger zone 19 +<2045> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=19500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defs no_defs <> +# Hartebeesthoek94 / Lo15 +# Hartebeesthoek94 / Lo17 +# Hartebeesthoek94 / Lo19 +# Hartebeesthoek94 / Lo21 +# Hartebeesthoek94 / Lo23 +# Hartebeesthoek94 / Lo25 +# Hartebeesthoek94 / Lo27 +# Hartebeesthoek94 / Lo29 +# Hartebeesthoek94 / Lo31 +# Hartebeesthoek94 / Lo33 +# CH1903+ / LV95 +<2056> +proj=omerc +lat_0=46.95240555555556 +lonc=7.439583333333333 +alpha=90 +k=1 +x_0=2600000 +y_0=1200000 +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +units=m +no_defs no_defs <> +# Rassadiran / Nakhl e Taqi +<2057> +proj=omerc +lat_0=27.51882880555555 +lonc=52.60353916666667 +alpha=0.5716611944444444 +k=0.999895934 +x_0=658377.437 +y_0=3044969.194 +ellps=intl +towgs84=-133.63,-157.5,-158.62,0,0,0,0 +units=m +no_defs no_defs <> +# ED50(ED77) / UTM zone 38N +<2058> +proj=utm +zone=38 +ellps=intl +units=m +no_defs no_defs <> +# ED50(ED77) / UTM zone 39N +<2059> +proj=utm +zone=39 +ellps=intl +units=m +no_defs no_defs <> +# ED50(ED77) / UTM zone 40N +<2060> +proj=utm +zone=40 +ellps=intl +units=m +no_defs no_defs <> +# ED50(ED77) / UTM zone 41N +<2061> +proj=utm +zone=41 +ellps=intl +units=m +no_defs no_defs <> +# Madrid 1870 (Madrid) / Spain +<2062> +proj=lcc +lat_1=40 +lat_0=40 +lon_0=-3.687938888888889 +k_0=0.9988085293 +x_0=600000 +y_0=600000 +a=6378298.3 +b=6356657.142669562 +pm=madrid +units=m +no_defs no_defs <> +# Dabola 1981 / UTM zone 28N +<2063> +proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs no_defs <> +# Dabola 1981 / UTM zone 29N +<2064> +proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs no_defs <> +# S-JTSK (Ferro) / Krovak +<2065> +proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha=30.28813972222222 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs no_defs <> +# Mount Dillon / Tobago Grid +<2066> +proj=cass +lat_0=11.25217861111111 +lon_0=-60.68600888888889 +x_0=37718.66154375 +y_0=36209.915082 +a=6378293.63683822 +b=6356617.979337744 +to_meter=0.2011661949 +no_defs no_defs <> +# Naparima 1955 / UTM zone 20N +<2067> +proj=utm +zone=20 +ellps=intl +units=m +no_defs no_defs <> +# ELD79 / Libya zone 5 +<2068> +proj=tmerc +lat_0=0 +lon_0=9 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ELD79 / Libya zone 6 +<2069> +proj=tmerc +lat_0=0 +lon_0=11 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ELD79 / Libya zone 7 +<2070> +proj=tmerc +lat_0=0 +lon_0=13 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ELD79 / Libya zone 8 +<2071> +proj=tmerc +lat_0=0 +lon_0=15 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ELD79 / Libya zone 9 +<2072> +proj=tmerc +lat_0=0 +lon_0=17 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ELD79 / Libya zone 10 +<2073> +proj=tmerc +lat_0=0 +lon_0=19 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ELD79 / Libya zone 11 +<2074> +proj=tmerc +lat_0=0 +lon_0=21 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ELD79 / Libya zone 12 +<2075> +proj=tmerc +lat_0=0 +lon_0=23 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ELD79 / Libya zone 13 +<2076> +proj=tmerc +lat_0=0 +lon_0=25 +k=0.999900 +x_0=200000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ELD79 / UTM zone 32N +<2077> +proj=utm +zone=32 +ellps=intl +units=m +no_defs no_defs <> +# ELD79 / UTM zone 33N +<2078> +proj=utm +zone=33 +ellps=intl +units=m +no_defs no_defs <> +# ELD79 / UTM zone 34N +<2079> +proj=utm +zone=34 +ellps=intl +units=m +no_defs no_defs <> +# ELD79 / UTM zone 35N +<2080> +proj=utm +zone=35 +ellps=intl +units=m +no_defs no_defs <> +# Chos Malal 1914 / Argentina zone 2 +<2081> +proj=tmerc +lat_0=-90 +lon_0=-69 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# Pampa del Castillo / Argentina zone 2 +<2082> +proj=tmerc +lat_0=-90 +lon_0=-69 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# Hito XVIII 1963 / Argentina zone 2 +<2083> +proj=tmerc +lat_0=-90 +lon_0=-69 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=intl +towgs84=18.38,192.45,96.82,0.056,-0.142,-0.2,-0.0013 +units=m +no_defs no_defs <> +# Hito XVIII 1963 / UTM zone 19S +<2084> +proj=utm +zone=19 +south +ellps=intl +towgs84=18.38,192.45,96.82,0.056,-0.142,-0.2,-0.0013 +units=m +no_defs no_defs <> +# NAD27 / Cuba Norte +<2085> +proj=lcc +lat_1=22.35 +lat_0=22.35 +lon_0=-81 +k_0=0.99993602 +x_0=500000 +y_0=280296.016 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / Cuba Sur +<2086> +proj=lcc +lat_1=20.71666666666667 +lat_0=20.71666666666667 +lon_0=-76.83333333333333 +k_0=0.99994848 +x_0=500000 +y_0=229126.939 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# ELD79 / TM 12 NE +<2087> +proj=tmerc +lat_0=0 +lon_0=12 +k=0.999600 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# Carthage / TM 11 NE +<2088> +proj=tmerc +lat_0=0 +lon_0=11 +k=0.999600 +x_0=500000 +y_0=0 +a=6378249.2 +b=6356515 +units=m +no_defs no_defs <> +# Yemen NGN96 / UTM zone 38N +<2089> +proj=utm +zone=38 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# Yemen NGN96 / UTM zone 39N +<2090> +proj=utm +zone=39 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# South Yemen / Gauss Kruger zone 8 +<2091> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defs no_defs <> +# South Yemen / Gauss Kruger zone 9 +<2092> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defs no_defs <> +# Hanoi 1972 / GK 106 NE +<2093> +proj=tmerc +lat_0=0 +lon_0=106 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +units=m +no_defs no_defs <> +# WGS 72BE / TM 106 NE +<2094> +proj=tmerc +lat_0=0 +lon_0=106 +k=0.999600 +x_0=500000 +y_0=0 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# Bissau / UTM zone 28N +<2095> +proj=utm +zone=28 +ellps=intl +towgs84=-173,253,27,0,0,0,0 +units=m +no_defs no_defs <> +# Korean 1985 / Korea East Belt +<2096> +proj=tmerc +lat_0=38 +lon_0=129 +k=1.000000 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs no_defs <> +# Korean 1985 / Korea Central Belt +<2097> +proj=tmerc +lat_0=38 +lon_0=127 +k=1.000000 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs no_defs <> +# Korean 1985 / Korea West Belt +<2098> +proj=tmerc +lat_0=38 +lon_0=125 +k=1.000000 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs no_defs <> +# Qatar 1948 / Qatar Grid +<2099> +proj=cass +lat_0=25.38236111111111 +lon_0=50.76138888888889 +x_0=100000 +y_0=100000 +ellps=helmert +units=m +no_defs no_defs <> +# GGRS87 / Greek Grid +<2100> +proj=tmerc +lat_0=0 +lon_0=24 +k=0.999600 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=-199.87,74.79,246.62,0,0,0,0 +units=m +no_defs no_defs <> +# Lake / Maracaibo Grid M1 +<2101> +proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=0 +y_0=-52684.972 +ellps=intl +units=m +no_defs no_defs <> +# Lake / Maracaibo Grid +<2102> +proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=200000 +y_0=147315.028 +ellps=intl +units=m +no_defs no_defs <> +# Lake / Maracaibo Grid M3 +<2103> +proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=500000 +y_0=447315.028 +ellps=intl +units=m +no_defs no_defs <> +# Lake / Maracaibo La Rosa Grid +<2104> +proj=lcc +lat_1=10.16666666666667 +lat_0=10.16666666666667 +lon_0=-71.60561777777777 +k_0=1 +x_0=-17044 +y_0=-23139.97 +ellps=intl +units=m +no_defs no_defs <> +# NZGD2000 / Mount Eden Circuit 2000 +<2105> +proj=tmerc +lat_0=-36.87972222222222 +lon_0=174.7641666666667 +k=0.999900 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Bay of Plenty Circuit 2000 +<2106> +proj=tmerc +lat_0=-37.76111111111111 +lon_0=176.4661111111111 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Poverty Bay Circuit 2000 +<2107> +proj=tmerc +lat_0=-38.62444444444444 +lon_0=177.8855555555556 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Hawkes Bay Circuit 2000 +<2108> +proj=tmerc +lat_0=-39.65083333333333 +lon_0=176.6736111111111 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Taranaki Circuit 2000 +<2109> +proj=tmerc +lat_0=-39.13555555555556 +lon_0=174.2277777777778 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Tuhirangi Circuit 2000 +<2110> +proj=tmerc +lat_0=-39.51222222222222 +lon_0=175.64 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Wanganui Circuit 2000 +<2111> +proj=tmerc +lat_0=-40.24194444444444 +lon_0=175.4880555555555 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Wairarapa Circuit 2000 +<2112> +proj=tmerc +lat_0=-40.92527777777777 +lon_0=175.6472222222222 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Wellington Circuit 2000 +<2113> +proj=tmerc +lat_0=-41.3011111111111 +lon_0=174.7763888888889 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Collingwood Circuit 2000 +<2114> +proj=tmerc +lat_0=-40.71472222222223 +lon_0=172.6719444444444 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Nelson Circuit 2000 +<2115> +proj=tmerc +lat_0=-41.27444444444444 +lon_0=173.2991666666667 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Karamea Circuit 2000 +<2116> +proj=tmerc +lat_0=-41.28972222222222 +lon_0=172.1088888888889 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Buller Circuit 2000 +<2117> +proj=tmerc +lat_0=-41.81055555555555 +lon_0=171.5811111111111 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Grey Circuit 2000 +<2118> +proj=tmerc +lat_0=-42.33361111111111 +lon_0=171.5497222222222 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Amuri Circuit 2000 +<2119> +proj=tmerc +lat_0=-42.68888888888888 +lon_0=173.01 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Marlborough Circuit 2000 +<2120> +proj=tmerc +lat_0=-41.54444444444444 +lon_0=173.8019444444444 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Hokitika Circuit 2000 +<2121> +proj=tmerc +lat_0=-42.88611111111111 +lon_0=170.9797222222222 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Okarito Circuit 2000 +<2122> +proj=tmerc +lat_0=-43.11 +lon_0=170.2608333333333 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Jacksons Bay Circuit 2000 +<2123> +proj=tmerc +lat_0=-43.97777777777778 +lon_0=168.6061111111111 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Mount Pleasant Circuit 2000 +<2124> +proj=tmerc +lat_0=-43.59055555555556 +lon_0=172.7269444444445 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Gawler Circuit 2000 +<2125> +proj=tmerc +lat_0=-43.74861111111111 +lon_0=171.3605555555555 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Timaru Circuit 2000 +<2126> +proj=tmerc +lat_0=-44.40194444444445 +lon_0=171.0572222222222 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Lindis Peak Circuit 2000 +<2127> +proj=tmerc +lat_0=-44.735 +lon_0=169.4675 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Mount Nicholas Circuit 2000 +<2128> +proj=tmerc +lat_0=-45.13277777777778 +lon_0=168.3986111111111 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Mount York Circuit 2000 +<2129> +proj=tmerc +lat_0=-45.56361111111111 +lon_0=167.7386111111111 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Observation Point Circuit 2000 +<2130> +proj=tmerc +lat_0=-45.81611111111111 +lon_0=170.6283333333333 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / North Taieri Circuit 2000 +<2131> +proj=tmerc +lat_0=-45.86138888888889 +lon_0=170.2825 +k=0.999960 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / Bluff Circuit 2000 +<2132> +proj=tmerc +lat_0=-46.6 +lon_0=168.3427777777778 +k=1.000000 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / UTM zone 58S +<2133> +proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / UTM zone 59S +<2134> +proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NZGD2000 / UTM zone 60S +<2135> +proj=utm +zone=60 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# Accra / Ghana National Grid +<2136> +proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.999750 +x_0=274319.7391633579 +y_0=0 +a=6378300 +b=6356751.689189189 +towgs84=-199,32,322,0,0,0,0 +to_meter=0.3047997101815088 +no_defs no_defs <> +# Accra / TM 1 NW +<2137> +proj=tmerc +lat_0=0 +lon_0=-1 +k=0.999600 +x_0=500000 +y_0=0 +a=6378300 +b=6356751.689189189 +towgs84=-199,32,322,0,0,0,0 +units=m +no_defs no_defs <> +# NAD27(CGQ77) / Quebec Lambert +<2138> +proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / SCoPQ zone 2 +<2139> +proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / MTM zone 3 +<2140> +proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / MTM zone 4 +<2141> +proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / MTM zone 5 +<2142> +proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / MTM zone 6 +<2143> +proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / MTM zone 7 +<2144> +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / MTM zone 8 +<2145> +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / MTM zone 9 +<2146> +proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / MTM zone 10 +<2147> +proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / UTM zone 21N +<2148> +proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / UTM zone 18N +<2149> +proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / UTM zone 17N +<2150> +proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / UTM zone 13N +<2151> +proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / UTM zone 12N +<2152> +proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / UTM zone 11N +<2153> +proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# RGF93 / Lambert-93 +<2154> +proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# American Samoa 1962 / American Samoa Lambert +<2155> +proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=170 +k_0=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / UTM zone 59S +<2156> +proj=utm +zone=59 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# IRENET95 / Irish Transverse Mercator +<2157> +proj=tmerc +lat_0=53.5 +lon_0=-8 +k=0.999820 +x_0=600000 +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# IRENET95 / UTM zone 29N +<2158> +proj=utm +zone=29 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# Sierra Leone 1924 / New Colony Grid +<2159> +proj=tmerc +lat_0=6.666666666666667 +lon_0=-12 +k=1.000000 +x_0=152399.8550907544 +y_0=0 +a=6378300 +b=6356751.689189189 +to_meter=0.3047997101815088 +no_defs no_defs <> +# Sierra Leone 1924 / New War Office Grid +<2160> +proj=tmerc +lat_0=6.666666666666667 +lon_0=-12 +k=1.000000 +x_0=243839.7681452071 +y_0=182879.8261089053 +a=6378300 +b=6356751.689189189 +to_meter=0.3047997101815088 +no_defs no_defs <> +# Sierra Leone 1968 / UTM zone 28N +<2161> +proj=utm +zone=28 +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +units=m +no_defs no_defs <> +# Sierra Leone 1968 / UTM zone 29N +<2162> +proj=utm +zone=29 +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +units=m +no_defs no_defs <> +# US National Atlas Equal Area +<2163> +proj=laea +lat_0=45 +lon_0=-100 +x_0=0 +y_0=0 +a=6370997 +b=6370997 +units=m +no_defs no_defs <> +# Locodjo 1965 / TM 5 NW +<2164> +proj=tmerc +lat_0=0 +lon_0=-5 +k=0.999600 +x_0=500000 +y_0=0 +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +units=m +no_defs no_defs <> +# Abidjan 1987 / TM 5 NW +<2165> +proj=tmerc +lat_0=0 +lon_0=-5 +k=0.999600 +x_0=500000 +y_0=0 +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +units=m +no_defs no_defs <> +# Pulkovo 1942(83) / Gauss Kruger zone 3 +<2166> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs no_defs <> +# Pulkovo 1942(83) / Gauss Kruger zone 4 +<2167> +proj=tmerc +lat_0=0 +lon_0=12 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs no_defs <> +# Pulkovo 1942(83) / Gauss Kruger zone 5 +<2168> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs no_defs <> +# Luxembourg 1930 / Gauss +<2169> +proj=tmerc +lat_0=49.83333333333334 +lon_0=6.166666666666667 +k=1.000000 +x_0=80000 +y_0=100000 +ellps=intl +towgs84=-193,13.7,-39.3,-0.41,-2.933,2.688,0.43 +units=m +no_defs no_defs <> +# MGI / Slovenia Grid +<2170> +proj=tmerc +lat_0=0 +lon_0=15 +k=0.999900 +x_0=500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Pulkovo 1942(58) / Poland zone I +<2171> +proj=stere +lat_0=50.625 +lon_0=21.08333333333333 +k=0.999800 +x_0=4637000 +y_0=5647000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs no_defs <> +# Pulkovo 1942(58) / Poland zone II +<2172> +proj=stere +lat_0=53.00194444444445 +lon_0=21.50277777777778 +k=0.999800 +x_0=4603000 +y_0=5806000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs no_defs <> +# Pulkovo 1942(58) / Poland zone III +<2173> +proj=stere +lat_0=53.58333333333334 +lon_0=17.00833333333333 +k=0.999800 +x_0=3501000 +y_0=5999000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs no_defs <> +# Pulkovo 1942(58) / Poland zone IV +<2174> +proj=stere +lat_0=51.67083333333333 +lon_0=16.67222222222222 +k=0.999800 +x_0=3703000 +y_0=5627000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs no_defs <> +# Pulkovo 1942(58) / Poland zone V +<2175> +proj=tmerc +lat_0=0 +lon_0=18.95833333333333 +k=0.999983 +x_0=237000 +y_0=-4700000 +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +units=m +no_defs no_defs <> +# ETRS89 / Poland CS2000 zone 5 +<2176> +proj=tmerc +lat_0=0 +lon_0=15 +k=0.999923 +x_0=5500000 +y_0=0 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / Poland CS2000 zone 6 +<2177> +proj=tmerc +lat_0=0 +lon_0=18 +k=0.999923 +x_0=6500000 +y_0=0 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / Poland CS2000 zone 7 +<2178> +proj=tmerc +lat_0=0 +lon_0=21 +k=0.999923 +x_0=7500000 +y_0=0 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / Poland CS2000 zone 8 +<2179> +proj=tmerc +lat_0=0 +lon_0=24 +k=0.999923 +x_0=8500000 +y_0=0 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / Poland CS92 +<2180> +proj=tmerc +lat_0=0 +lon_0=19 +k=0.999300 +x_0=500000 +y_0=-5300000 +ellps=GRS80 +units=m +no_defs no_defs <> +# Azores Occidental 1939 / UTM zone 25N +<2188> +proj=utm +zone=25 +ellps=intl +units=m +no_defs no_defs <> +# Azores Central 1948 / UTM zone 26N +<2189> +proj=utm +zone=26 +ellps=intl +units=m +no_defs no_defs <> +# Azores Oriental 1940 / UTM zone 26N +<2190> +proj=utm +zone=26 +ellps=intl +units=m +no_defs no_defs <> +# Madeira 1936 / UTM zone 28N +<2191> +proj=utm +zone=28 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / France EuroLambert +<2192> +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.337229166666667 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD2000 / New Zealand Transverse Mercator +<2193> +proj=tmerc +lat_0=0 +lon_0=173 +k=0.999600 +x_0=1600000 +y_0=10000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# American Samoa 1962 / American Samoa Lambert +<2194> +proj=lcc +lat_1=-14.26666666666667 +lat_0=-14.26666666666667 +lon_0=-170 +k_0=1 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / UTM zone 2S +<2195> +proj=utm +zone=2 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# ETRS89 / Kp2000 Jutland +<2196> +proj=tmerc +lat_0=0 +lon_0=9.5 +k=0.999950 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / Kp2000 Zealand +<2197> +proj=tmerc +lat_0=0 +lon_0=12 +k=0.999950 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / Kp2000 Bornholm +<2198> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m +no_defs no_defs <> +# Albanian 1987 / Gauss Kruger zone 4 +<2199> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# ATS77 / New Brunswick Stereographic (ATS77) +<2200> +proj=stere +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=300000 +y_0=800000 +a=6378135 +b=6356750.304921594 +units=m +no_defs no_defs <> +# REGVEN / UTM zone 18N +<2201> +proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# REGVEN / UTM zone 19N +<2202> +proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# REGVEN / UTM zone 20N +<2203> +proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD27 / Tennessee +<2204> +proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.66666666666666 +lon_0=-86 +x_0=609601.2192024384 +y_0=30480.06096012192 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Kentucky North +<2205> +proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# ED50 / 3-degree Gauss-Kruger zone 9 +<2206> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=9500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / 3-degree Gauss-Kruger zone 10 +<2207> +proj=tmerc +lat_0=0 +lon_0=30 +k=1.000000 +x_0=10500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / 3-degree Gauss-Kruger zone 11 +<2208> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=11500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / 3-degree Gauss-Kruger zone 12 +<2209> +proj=tmerc +lat_0=0 +lon_0=36 +k=1.000000 +x_0=12500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / 3-degree Gauss-Kruger zone 13 +<2210> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=13500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / 3-degree Gauss-Kruger zone 14 +<2211> +proj=tmerc +lat_0=0 +lon_0=42 +k=1.000000 +x_0=14500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / 3-degree Gauss-Kruger zone 15 +<2212> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=15500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ETRS89 / TM 30 NE +<2213> +proj=tmerc +lat_0=0 +lon_0=30 +k=0.999600 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs no_defs <> +# Douala 1948 / AOF west +<2214> +proj=tmerc +lat_0=0 +lon_0=10.5 +k=0.999000 +x_0=1000000 +y_0=1000000 +ellps=intl +units=m +no_defs no_defs <> +# Manoca 1962 / UTM zone 32N +<2215> +proj=utm +zone=32 +a=6378249.2 +b=6356515 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +units=m +no_defs no_defs <> +# Qornoq 1927 / UTM zone 22N +<2216> +proj=utm +zone=22 +ellps=intl +units=m +no_defs no_defs <> +# Qornoq 1927 / UTM zone 23N +<2217> +proj=utm +zone=23 +ellps=intl +units=m +no_defs no_defs <> +# ATS77 / UTM zone 19N +<2219> +proj=utm +zone=19 +a=6378135 +b=6356750.304921594 +units=m +no_defs no_defs <> +# ATS77 / UTM zone 20N +<2220> +proj=utm +zone=20 +a=6378135 +b=6356750.304921594 +units=m +no_defs no_defs <> +# NAD83 / Arizona East (ft) +<2222> +proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs no_defs <> +# NAD83 / Arizona Central (ft) +<2223> +proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs no_defs <> +# NAD83 / Arizona West (ft) +<2224> +proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs no_defs <> +# NAD83 / California zone 1 (ftUS) +<2225> +proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / California zone 2 (ftUS) +<2226> +proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / California zone 3 (ftUS) +<2227> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / California zone 4 (ftUS) +<2228> +proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / California zone 5 (ftUS) +<2229> +proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / California zone 6 (ftUS) +<2230> +proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Colorado North (ftUS) +<2231> +proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Colorado Central (ftUS) +<2232> +proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Colorado South (ftUS) +<2233> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Connecticut (ftUS) +<2234> +proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_0=152400.3048006096 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Delaware (ftUS) +<2235> +proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Florida East (ftUS) +<2236> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Florida West (ftUS) +<2237> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Florida North (ftUS) +<2238> +proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Georgia East (ftUS) +<2239> +proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999900 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Georgia West (ftUS) +<2240> +proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999900 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Idaho East (ftUS) +<2241> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.999947 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Idaho Central (ftUS) +<2242> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.999947 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Idaho West (ftUS) +<2243> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Indiana East (ftUS) +<2244> +proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999967 +x_0=99999.99989839978 +y_0=249364.9987299975 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Indiana West (ftUS) +<2245> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999967 +x_0=900000 +y_0=249364.9987299975 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Kentucky North (ftUS) +<2246> +proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Kentucky South (ftUS) +<2247> +proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0001016001 +y_0=500000.0001016001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Maryland (ftUS) +<2248> +proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Massachusetts Mainland (ftUS) +<2249> +proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=750000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Massachusetts Island (ftUS) +<2250> +proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Michigan North (ft) +<2251> +proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999968001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs no_defs <> +# NAD83 / Michigan Central (ft) +<2252> +proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.999976001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs no_defs <> +# NAD83 / Michigan South (ft) +<2253> +proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs no_defs <> +# NAD83 / Mississippi East (ftUS) +<2254> +proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.999950 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Mississippi West (ftUS) +<2255> +proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.999950 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Montana (ft) +<2256> +proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs no_defs <> +# NAD83 / New Mexico East (ftUS) +<2257> +proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909 +x_0=165000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / New Mexico Central (ftUS) +<2258> +proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.999900 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / New Mexico West (ftUS) +<2259> +proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999917 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / New York East (ftUS) +<2260> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.999900 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / New York Central (ftUS) +<2261> +proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999938 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / New York West (ftUS) +<2262> +proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999938 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / New York Long Island (ftUS) +<2263> +proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / North Carolina (ftUS) +<2264> +proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / North Dakota North (ft) +<2265> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs no_defs <> +# NAD83 / North Dakota South (ft) +<2266> +proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs no_defs <> +# NAD83 / Oklahoma North (ftUS) +<2267> +proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Oklahoma South (ftUS) +<2268> +proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Oregon North (ft) +<2269> +proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs no_defs <> +# NAD83 / Oregon South (ft) +<2270> +proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs no_defs <> +# NAD83 / Pennsylvania North (ftUS) +<2271> +proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Pennsylvania South (ftUS) +<2272> +proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / South Carolina (ft) +<2273> +proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs no_defs <> +# NAD83 / Tennessee (ftUS) +<2274> +proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Texas North (ftUS) +<2275> +proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Texas North Central (ftUS) +<2276> +proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000.0001016 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Texas Central (ftUS) +<2277> +proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Texas South Central (ftUS) +<2278> +proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=3999999.9998984 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Texas South (ftUS) +<2279> +proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.0000000001 +y_0=5000000.0001016 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Utah North (ft) +<2280> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=999999.9999960001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs no_defs <> +# NAD83 / Utah Central (ft) +<2281> +proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=1999999.999992 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs no_defs <> +# NAD83 / Utah South (ft) +<2282> +proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0=2999999.999988 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048 +no_defs no_defs <> +# NAD83 / Virginia North (ftUS) +<2283> +proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2000000.0001016 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Virginia South (ftUS) +<2284> +proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=999999.9998983998 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Washington North (ftUS) +<2285> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Washington South (ftUS) +<2286> +proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Wisconsin North (ftUS) +<2287> +proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Wisconsin Central (ftUS) +<2288> +proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / Wisconsin South (ftUS) +<2289> +proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs no_defs <> +# ATS77 / Prince Edward Isl. Stereographic (ATS77) +<2290> +proj=stere +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=700000 +y_0=400000 +a=6378135 +b=6356750.304921594 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) +<2291> +proj=stere +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +a=6378135 +b=6356750.304921594 +units=m +no_defs no_defs <> +# NAD83(CSRS98) / Prince Edward Isl. Stereographic (NAD83) +<2292> +proj=stere +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# ATS77 / MTM Nova Scotia zone 4 +<2294> +proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.999900 +x_0=4500000 +y_0=0 +a=6378135 +b=6356750.304921594 +units=m +no_defs no_defs <> +# ATS77 / MTM Nova Scotia zone 5 +<2295> +proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.999900 +x_0=5500000 +y_0=0 +a=6378135 +b=6356750.304921594 +units=m +no_defs no_defs <> +# Batavia / TM 109 SE +<2308> +proj=tmerc +lat_0=0 +lon_0=109 +k=0.999600 +x_0=500000 +y_0=10000000 +ellps=bessel +units=m +no_defs no_defs <> +# WGS 84 / TM 116 SE +<2309> +proj=tmerc +lat_0=0 +lon_0=116 +k=0.999600 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / TM 132 SE +<2310> +proj=tmerc +lat_0=0 +lon_0=132 +k=0.999600 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / TM 6 NE +<2311> +proj=tmerc +lat_0=0 +lon_0=6 +k=0.999600 +x_0=500000 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# Garoua / UTM zone 33N +<2312> +proj=utm +zone=33 +ellps=clrk80 +units=m +no_defs no_defs <> +# Kousseri / UTM zone 33N +<2313> +proj=utm +zone=33 +ellps=clrk80 +units=m +no_defs no_defs <> +# Trinidad 1903 / Trinidad Grid (ftCla) +<2314> +proj=cass +lat_0=10.44166666666667 +lon_0=-61.33333333333334 +x_0=86501.46380699999 +y_0=65379.01334249999 +a=6378293.63683822 +b=6356617.979337744 +towgs84=-61.702,284.488,472.052,0,0,0,0 +to_meter=0.304797265 +no_defs no_defs <> +# Campo Inchauspe / UTM zone 19S +<2315> +proj=utm +zone=19 +south +ellps=intl +units=m +no_defs no_defs <> +# Campo Inchauspe / UTM zone 20S +<2316> +proj=utm +zone=20 +south +ellps=intl +units=m +no_defs no_defs <> +# PSAD56 / ICN Regional +<2317> +proj=lcc +lat_1=9 +lat_2=3 +lat_0=6 +lon_0=-66 +x_0=1000000 +y_0=1000000 +ellps=intl +units=m +no_defs no_defs <> +# Ain el Abd / Aramco Lambert +<2318> +proj=lcc +lat_1=17 +lat_2=33 +lat_0=25.08951 +lon_0=48 +x_0=0 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / TM27 +<2319> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / TM30 +<2320> +proj=tmerc +lat_0=0 +lon_0=30 +k=1.000000 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / TM33 +<2321> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / TM36 +<2322> +proj=tmerc +lat_0=0 +lon_0=36 +k=1.000000 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / TM39 +<2323> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / TM42 +<2324> +proj=tmerc +lat_0=0 +lon_0=42 +k=1.000000 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / TM45 +<2325> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# Hong Kong 1980 Grid System +<2326> +proj=tmerc +lat_0=22.31213333333334 +lon_0=114.1785555555556 +k=1.000000 +x_0=836694.05 +y_0=819069.8 +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger zone 13 +<2327> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=13500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger zone 14 +<2328> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=14500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger zone 15 +<2329> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=15500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger zone 16 +<2330> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=16500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger zone 17 +<2331> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=17500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger zone 18 +<2332> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=18500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger zone 19 +<2333> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=19500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger zone 20 +<2334> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=20500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger zone 21 +<2335> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=21500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger zone 22 +<2336> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=22500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger zone 23 +<2337> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=23500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger CM 75E +<2338> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger CM 81E +<2339> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger CM 87E +<2340> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger CM 93E +<2341> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger CM 99E +<2342> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger CM 105E +<2343> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger CM 111E +<2344> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger CM 117E +<2345> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger CM 123E +<2346> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger CM 129E +<2347> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / Gauss-Kruger CM 135E +<2348> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 25 +<2349> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=25500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 26 +<2350> +proj=tmerc +lat_0=0 +lon_0=78 +k=1.000000 +x_0=26500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 27 +<2351> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=27500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 28 +<2352> +proj=tmerc +lat_0=0 +lon_0=84 +k=1.000000 +x_0=28500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 29 +<2353> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=29500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 30 +<2354> +proj=tmerc +lat_0=0 +lon_0=90 +k=1.000000 +x_0=30500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 31 +<2355> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=31500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 32 +<2356> +proj=tmerc +lat_0=0 +lon_0=96 +k=1.000000 +x_0=32500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 33 +<2357> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=33500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 34 +<2358> +proj=tmerc +lat_0=0 +lon_0=102 +k=1.000000 +x_0=34500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 35 +<2359> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=35500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 36 +<2360> +proj=tmerc +lat_0=0 +lon_0=108 +k=1.000000 +x_0=36500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 37 +<2361> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=37500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 38 +<2362> +proj=tmerc +lat_0=0 +lon_0=114 +k=1.000000 +x_0=38500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 39 +<2363> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=39500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 40 +<2364> +proj=tmerc +lat_0=0 +lon_0=120 +k=1.000000 +x_0=40500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 41 +<2365> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=41500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 42 +<2366> +proj=tmerc +lat_0=0 +lon_0=126 +k=1.000000 +x_0=42500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 43 +<2367> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=43500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 44 +<2368> +proj=tmerc +lat_0=0 +lon_0=132 +k=1.000000 +x_0=44500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger zone 45 +<2369> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=45500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 75E +<2370> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 78E +<2371> +proj=tmerc +lat_0=0 +lon_0=78 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 81E +<2372> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 84E +<2373> +proj=tmerc +lat_0=0 +lon_0=84 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 87E +<2374> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 90E +<2375> +proj=tmerc +lat_0=0 +lon_0=90 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 93E +<2376> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 96E +<2377> +proj=tmerc +lat_0=0 +lon_0=96 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 99E +<2378> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 102E +<2379> +proj=tmerc +lat_0=0 +lon_0=102 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 105E +<2380> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 108E +<2381> +proj=tmerc +lat_0=0 +lon_0=108 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 111E +<2382> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 114E +<2383> +proj=tmerc +lat_0=0 +lon_0=114 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 117E +<2384> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 120E +<2385> +proj=tmerc +lat_0=0 +lon_0=120 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 123E +<2386> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 126E +<2387> +proj=tmerc +lat_0=0 +lon_0=126 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 129E +<2388> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 132E +<2389> +proj=tmerc +lat_0=0 +lon_0=132 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# Xian 1980 / 3-degree Gauss-Kruger CM 135E +<2390> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +a=6378140 +b=6356755.288157528 +units=m +no_defs no_defs <> +# KKJ / Finland zone 1 +<2391> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=intl +towgs84=-90.7,-106.1,-119.2,4.09,0.218,-1.05,1.37 +units=m +no_defs no_defs <> +# KKJ / Finland zone 2 +<2392> +proj=tmerc +lat_0=0 +lon_0=24 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=intl +towgs84=-90.7,-106.1,-119.2,4.09,0.218,-1.05,1.37 +units=m +no_defs no_defs <> +# KKJ / Finland Uniform Coordinate System +<2393> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=intl +towgs84=-90.7,-106.1,-119.2,4.09,0.218,-1.05,1.37 +units=m +no_defs no_defs <> +# KKJ / Finland zone 4 +<2394> +proj=tmerc +lat_0=0 +lon_0=30 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=intl +towgs84=-90.7,-106.1,-119.2,4.09,0.218,-1.05,1.37 +units=m +no_defs no_defs <> +# South Yemen / Gauss-Kruger zone 8 +<2395> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=8500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defs no_defs <> +# South Yemen / Gauss-Kruger zone 9 +<2396> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=9500000 +y_0=0 +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +units=m +no_defs no_defs <> +# Pulkovo 1942(83) / Gauss-Kruger zone 3 +<2397> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs no_defs <> +# Pulkovo 1942(83) / Gauss-Kruger zone 4 +<2398> +proj=tmerc +lat_0=0 +lon_0=12 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs no_defs <> +# Pulkovo 1942(83) / Gauss-Kruger zone 5 +<2399> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +units=m +no_defs no_defs <> +# RT90 2.5 gon W +<2400> +proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 25 +<2401> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 26 +<2402> +proj=tmerc +lat_0=0 +lon_0=78 +k=1.000000 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 27 +<2403> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 28 +<2404> +proj=tmerc +lat_0=0 +lon_0=84 +k=1.000000 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 29 +<2405> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 30 +<2406> +proj=tmerc +lat_0=0 +lon_0=90 +k=1.000000 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 31 +<2407> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 32 +<2408> +proj=tmerc +lat_0=0 +lon_0=96 +k=1.000000 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 33 +<2409> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=33500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 34 +<2410> +proj=tmerc +lat_0=0 +lon_0=102 +k=1.000000 +x_0=34500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 35 +<2411> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=35500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 36 +<2412> +proj=tmerc +lat_0=0 +lon_0=108 +k=1.000000 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 37 +<2413> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=37500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 38 +<2414> +proj=tmerc +lat_0=0 +lon_0=114 +k=1.000000 +x_0=38500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 39 +<2415> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=39500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 40 +<2416> +proj=tmerc +lat_0=0 +lon_0=120 +k=1.000000 +x_0=40500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 41 +<2417> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=41500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 42 +<2418> +proj=tmerc +lat_0=0 +lon_0=126 +k=1.000000 +x_0=42500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 43 +<2419> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=43500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 44 +<2420> +proj=tmerc +lat_0=0 +lon_0=132 +k=1.000000 +x_0=44500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger zone 45 +<2421> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=45500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 75E +<2422> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 78E +<2423> +proj=tmerc +lat_0=0 +lon_0=78 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 81E +<2424> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 84E +<2425> +proj=tmerc +lat_0=0 +lon_0=84 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 87E +<2426> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 90E +<2427> +proj=tmerc +lat_0=0 +lon_0=90 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 93E +<2428> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 96E +<2429> +proj=tmerc +lat_0=0 +lon_0=96 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 99E +<2430> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 102E +<2431> +proj=tmerc +lat_0=0 +lon_0=102 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 105E +<2432> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 108E +<2433> +proj=tmerc +lat_0=0 +lon_0=108 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 111E +<2434> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 114E +<2435> +proj=tmerc +lat_0=0 +lon_0=114 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 117E +<2436> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 120E +<2437> +proj=tmerc +lat_0=0 +lon_0=120 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 123E +<2438> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 126E +<2439> +proj=tmerc +lat_0=0 +lon_0=126 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 129E +<2440> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 132E +<2441> +proj=tmerc +lat_0=0 +lon_0=132 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / 3-degree Gauss-Kruger CM 135E +<2442> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS I +<2443> +proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS II +<2444> +proj=tmerc +lat_0=33 +lon_0=131 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS III +<2445> +proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS IV +<2446> +proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS V +<2447> +proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS VI +<2448> +proj=tmerc +lat_0=36 +lon_0=136 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS VII +<2449> +proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS VIII +<2450> +proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS IX +<2451> +proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS X +<2452> +proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS XI +<2453> +proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS XII +<2454> +proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS XIII +<2455> +proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS XIV +<2456> +proj=tmerc +lat_0=26 +lon_0=142 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS XV +<2457> +proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS XVI +<2458> +proj=tmerc +lat_0=26 +lon_0=124 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS XVII +<2459> +proj=tmerc +lat_0=26 +lon_0=131 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS XVIII +<2460> +proj=tmerc +lat_0=20 +lon_0=136 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# JGD2000 / Japan Plane Rectangular CS XIX +<2461> +proj=tmerc +lat_0=26 +lon_0=154 +k=0.999900 +x_0=0 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# Albanian 1987 / Gauss-Kruger zone 4 +<2462> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 21E +<2463> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 27E +<2464> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 33E +<2465> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 39E +<2466> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 45E +<2467> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 51E +<2468> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 57E +<2469> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 63E +<2470> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 69E +<2471> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 75E +<2472> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 81E +<2473> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 87E +<2474> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 93E +<2475> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 99E +<2476> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 105E +<2477> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 111E +<2478> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 117E +<2479> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 123E +<2480> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 129E +<2481> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 135E +<2482> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 141E +<2483> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 147E +<2484> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 153E +<2485> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 159E +<2486> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 165E +<2487> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 171E +<2488> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 177E +<2489> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 177W +<2490> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger CM 171W +<2491> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 9E +<2492> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 15E +<2493> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 21E +<2494> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 27E +<2495> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 33E +<2496> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 39E +<2497> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 45E +<2498> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 51E +<2499> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 57E +<2500> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 63E +<2501> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 69E +<2502> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 75E +<2503> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 81E +<2504> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 87E +<2505> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 93E +<2506> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 99E +<2507> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 105E +<2508> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 111E +<2509> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 117E +<2510> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 123E +<2511> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 129E +<2512> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 135E +<2513> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 141E +<2514> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 147E +<2515> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 153E +<2516> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 159E +<2517> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 165E +<2518> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 171E +<2519> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 177E +<2520> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 177W +<2521> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger CM 171W +<2522> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 7 +<2523> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 8 +<2524> +proj=tmerc +lat_0=0 +lon_0=24 +k=1.000000 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 9 +<2525> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 10 +<2526> +proj=tmerc +lat_0=0 +lon_0=30 +k=1.000000 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 11 +<2527> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 12 +<2528> +proj=tmerc +lat_0=0 +lon_0=36 +k=1.000000 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 13 +<2529> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 14 +<2530> +proj=tmerc +lat_0=0 +lon_0=42 +k=1.000000 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 15 +<2531> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 16 +<2532> +proj=tmerc +lat_0=0 +lon_0=48 +k=1.000000 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 17 +<2533> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 18 +<2534> +proj=tmerc +lat_0=0 +lon_0=54 +k=1.000000 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 19 +<2535> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 20 +<2536> +proj=tmerc +lat_0=0 +lon_0=60 +k=1.000000 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 21 +<2537> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 22 +<2538> +proj=tmerc +lat_0=0 +lon_0=66 +k=1.000000 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 23 +<2539> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 24 +<2540> +proj=tmerc +lat_0=0 +lon_0=72 +k=1.000000 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 25 +<2541> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 26 +<2542> +proj=tmerc +lat_0=0 +lon_0=78 +k=1.000000 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 27 +<2543> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 28 +<2544> +proj=tmerc +lat_0=0 +lon_0=84 +k=1.000000 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 29 +<2545> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 30 +<2546> +proj=tmerc +lat_0=0 +lon_0=90 +k=1.000000 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 31 +<2547> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 32 +<2548> +proj=tmerc +lat_0=0 +lon_0=96 +k=1.000000 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 33 +<2549> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=33500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Samboja / UTM zone 50S +<2550> +proj=utm +zone=50 +south +ellps=bessel +towgs84=-404.78,685.68,45.47,0,0,0,0 +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 34 +<2551> +proj=tmerc +lat_0=0 +lon_0=102 +k=1.000000 +x_0=34500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 35 +<2552> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=35500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 36 +<2553> +proj=tmerc +lat_0=0 +lon_0=108 +k=1.000000 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 37 +<2554> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=37500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 38 +<2555> +proj=tmerc +lat_0=0 +lon_0=114 +k=1.000000 +x_0=38500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 39 +<2556> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=39500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 40 +<2557> +proj=tmerc +lat_0=0 +lon_0=120 +k=1.000000 +x_0=40500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 41 +<2558> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=41500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 42 +<2559> +proj=tmerc +lat_0=0 +lon_0=126 +k=1.000000 +x_0=42500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 43 +<2560> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=43500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 44 +<2561> +proj=tmerc +lat_0=0 +lon_0=132 +k=1.000000 +x_0=44500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 45 +<2562> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=45500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 46 +<2563> +proj=tmerc +lat_0=0 +lon_0=138 +k=1.000000 +x_0=46500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 47 +<2564> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=47500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 48 +<2565> +proj=tmerc +lat_0=0 +lon_0=144 +k=1.000000 +x_0=48500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 49 +<2566> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=49500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 50 +<2567> +proj=tmerc +lat_0=0 +lon_0=150 +k=1.000000 +x_0=50500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 51 +<2568> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=51500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 52 +<2569> +proj=tmerc +lat_0=0 +lon_0=156 +k=1.000000 +x_0=52500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 53 +<2570> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=53500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 54 +<2571> +proj=tmerc +lat_0=0 +lon_0=162 +k=1.000000 +x_0=54500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 55 +<2572> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=55500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 56 +<2573> +proj=tmerc +lat_0=0 +lon_0=168 +k=1.000000 +x_0=56500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 57 +<2574> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=57500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 58 +<2575> +proj=tmerc +lat_0=0 +lon_0=174 +k=1.000000 +x_0=58500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 59 +<2576> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=59500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 60 +<2577> +proj=tmerc +lat_0=0 +lon_0=180 +k=1.000000 +x_0=60000000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 61 +<2578> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=61500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 62 +<2579> +proj=tmerc +lat_0=0 +lon_0=-174 +k=1.000000 +x_0=62500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 63 +<2580> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=63500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger zone 64 +<2581> +proj=tmerc +lat_0=0 +lon_0=-168 +k=1.000000 +x_0=64500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 21E +<2582> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 24E +<2583> +proj=tmerc +lat_0=0 +lon_0=24 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 27E +<2584> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 30E +<2585> +proj=tmerc +lat_0=0 +lon_0=30 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 33E +<2586> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 36E +<2587> +proj=tmerc +lat_0=0 +lon_0=36 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 39E +<2588> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 42E +<2589> +proj=tmerc +lat_0=0 +lon_0=42 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 45E +<2590> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 48E +<2591> +proj=tmerc +lat_0=0 +lon_0=48 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 51E +<2592> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 54E +<2593> +proj=tmerc +lat_0=0 +lon_0=54 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 57E +<2594> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 60E +<2595> +proj=tmerc +lat_0=0 +lon_0=60 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 63E +<2596> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 66E +<2597> +proj=tmerc +lat_0=0 +lon_0=66 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 69E +<2598> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 72E +<2599> +proj=tmerc +lat_0=0 +lon_0=72 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Lietuvos Koordinoei Sistema 1994 +<2600> +proj=tmerc +lat_0=0 +lon_0=24 +k=0.999800 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 75E +<2601> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 78E +<2602> +proj=tmerc +lat_0=0 +lon_0=78 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 81E +<2603> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 84E +<2604> +proj=tmerc +lat_0=0 +lon_0=84 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 87E +<2605> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 90E +<2606> +proj=tmerc +lat_0=0 +lon_0=90 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 93E +<2607> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 96E +<2608> +proj=tmerc +lat_0=0 +lon_0=96 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 99E +<2609> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 102E +<2610> +proj=tmerc +lat_0=0 +lon_0=102 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 105E +<2611> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 108E +<2612> +proj=tmerc +lat_0=0 +lon_0=108 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 111E +<2613> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 114E +<2614> +proj=tmerc +lat_0=0 +lon_0=114 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 117E +<2615> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 120E +<2616> +proj=tmerc +lat_0=0 +lon_0=120 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 123E +<2617> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 126E +<2618> +proj=tmerc +lat_0=0 +lon_0=126 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 129E +<2619> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 132E +<2620> +proj=tmerc +lat_0=0 +lon_0=132 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 135E +<2621> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 138E +<2622> +proj=tmerc +lat_0=0 +lon_0=138 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 141E +<2623> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 144E +<2624> +proj=tmerc +lat_0=0 +lon_0=144 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 147E +<2625> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 150E +<2626> +proj=tmerc +lat_0=0 +lon_0=150 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 153E +<2627> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 156E +<2628> +proj=tmerc +lat_0=0 +lon_0=156 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 159E +<2629> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 162E +<2630> +proj=tmerc +lat_0=0 +lon_0=162 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 165E +<2631> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 168E +<2632> +proj=tmerc +lat_0=0 +lon_0=168 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 171E +<2633> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 174E +<2634> +proj=tmerc +lat_0=0 +lon_0=174 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 177E +<2635> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 180E +<2636> +proj=tmerc +lat_0=0 +lon_0=180 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 177W +<2637> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 174W +<2638> +proj=tmerc +lat_0=0 +lon_0=-174 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 171W +<2639> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / 3-degree Gauss-Kruger CM 168W +<2640> +proj=tmerc +lat_0=0 +lon_0=-168 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 7 +<2641> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 8 +<2642> +proj=tmerc +lat_0=0 +lon_0=24 +k=1.000000 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 9 +<2643> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 10 +<2644> +proj=tmerc +lat_0=0 +lon_0=30 +k=1.000000 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 11 +<2645> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 12 +<2646> +proj=tmerc +lat_0=0 +lon_0=36 +k=1.000000 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 13 +<2647> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 14 +<2648> +proj=tmerc +lat_0=0 +lon_0=42 +k=1.000000 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 15 +<2649> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 16 +<2650> +proj=tmerc +lat_0=0 +lon_0=48 +k=1.000000 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 17 +<2651> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 18 +<2652> +proj=tmerc +lat_0=0 +lon_0=54 +k=1.000000 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 19 +<2653> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 20 +<2654> +proj=tmerc +lat_0=0 +lon_0=60 +k=1.000000 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 21 +<2655> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 22 +<2656> +proj=tmerc +lat_0=0 +lon_0=66 +k=1.000000 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 23 +<2657> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 24 +<2658> +proj=tmerc +lat_0=0 +lon_0=72 +k=1.000000 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 25 +<2659> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 26 +<2660> +proj=tmerc +lat_0=0 +lon_0=78 +k=1.000000 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 27 +<2661> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 28 +<2662> +proj=tmerc +lat_0=0 +lon_0=84 +k=1.000000 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 29 +<2663> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 30 +<2664> +proj=tmerc +lat_0=0 +lon_0=90 +k=1.000000 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 31 +<2665> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 32 +<2666> +proj=tmerc +lat_0=0 +lon_0=96 +k=1.000000 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 33 +<2667> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=33500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 34 +<2668> +proj=tmerc +lat_0=0 +lon_0=102 +k=1.000000 +x_0=34500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 35 +<2669> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=35500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 36 +<2670> +proj=tmerc +lat_0=0 +lon_0=108 +k=1.000000 +x_0=36500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 37 +<2671> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=37500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 38 +<2672> +proj=tmerc +lat_0=0 +lon_0=114 +k=1.000000 +x_0=38500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 39 +<2673> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=39500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 40 +<2674> +proj=tmerc +lat_0=0 +lon_0=120 +k=1.000000 +x_0=40500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 41 +<2675> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=41500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 42 +<2676> +proj=tmerc +lat_0=0 +lon_0=126 +k=1.000000 +x_0=42500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 43 +<2677> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=43500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 44 +<2678> +proj=tmerc +lat_0=0 +lon_0=132 +k=1.000000 +x_0=44500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 45 +<2679> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=45500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 46 +<2680> +proj=tmerc +lat_0=0 +lon_0=138 +k=1.000000 +x_0=46500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 47 +<2681> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=47500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 48 +<2682> +proj=tmerc +lat_0=0 +lon_0=144 +k=1.000000 +x_0=48500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 49 +<2683> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=49500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 50 +<2684> +proj=tmerc +lat_0=0 +lon_0=150 +k=1.000000 +x_0=50500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 51 +<2685> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=51500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 52 +<2686> +proj=tmerc +lat_0=0 +lon_0=156 +k=1.000000 +x_0=52500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 53 +<2687> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=53500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 54 +<2688> +proj=tmerc +lat_0=0 +lon_0=162 +k=1.000000 +x_0=54500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 55 +<2689> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=55500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 56 +<2690> +proj=tmerc +lat_0=0 +lon_0=168 +k=1.000000 +x_0=56500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 57 +<2691> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=57500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 58 +<2692> +proj=tmerc +lat_0=0 +lon_0=174 +k=1.000000 +x_0=58500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 59 +<2693> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=59500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 60 +<2694> +proj=tmerc +lat_0=0 +lon_0=180 +k=1.000000 +x_0=60000000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 61 +<2695> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=61500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 62 +<2696> +proj=tmerc +lat_0=0 +lon_0=-174 +k=1.000000 +x_0=62500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 63 +<2697> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=63500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger zone 64 +<2698> +proj=tmerc +lat_0=0 +lon_0=-168 +k=1.000000 +x_0=64500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 21E +<2699> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 24E +<2700> +proj=tmerc +lat_0=0 +lon_0=24 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 27E +<2701> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 30E +<2702> +proj=tmerc +lat_0=0 +lon_0=30 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 33E +<2703> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 36E +<2704> +proj=tmerc +lat_0=0 +lon_0=36 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 39E +<2705> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 42E +<2706> +proj=tmerc +lat_0=0 +lon_0=42 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 45E +<2707> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 48E +<2708> +proj=tmerc +lat_0=0 +lon_0=48 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 51E +<2709> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 54E +<2710> +proj=tmerc +lat_0=0 +lon_0=54 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 57E +<2711> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 60E +<2712> +proj=tmerc +lat_0=0 +lon_0=60 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 63E +<2713> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 66E +<2714> +proj=tmerc +lat_0=0 +lon_0=66 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 69E +<2715> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 72E +<2716> +proj=tmerc +lat_0=0 +lon_0=72 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 75E +<2717> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 78E +<2718> +proj=tmerc +lat_0=0 +lon_0=78 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 81E +<2719> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 84E +<2720> +proj=tmerc +lat_0=0 +lon_0=84 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 87E +<2721> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 90E +<2722> +proj=tmerc +lat_0=0 +lon_0=90 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 93E +<2723> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 96E +<2724> +proj=tmerc +lat_0=0 +lon_0=96 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 99E +<2725> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 102E +<2726> +proj=tmerc +lat_0=0 +lon_0=102 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 105E +<2727> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 108E +<2728> +proj=tmerc +lat_0=0 +lon_0=108 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 111E +<2729> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 114E +<2730> +proj=tmerc +lat_0=0 +lon_0=114 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 117E +<2731> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 120E +<2732> +proj=tmerc +lat_0=0 +lon_0=120 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 123E +<2733> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 126E +<2734> +proj=tmerc +lat_0=0 +lon_0=126 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 129E +<2735> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Tete / UTM zone 36S +<2736> +proj=utm +zone=36 +south +ellps=clrk66 +units=m +no_defs no_defs <> +# Tete / UTM zone 37S +<2737> +proj=utm +zone=37 +south +ellps=clrk66 +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 132E +<2738> +proj=tmerc +lat_0=0 +lon_0=132 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 135E +<2739> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 138E +<2740> +proj=tmerc +lat_0=0 +lon_0=138 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 141E +<2741> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 144E +<2742> +proj=tmerc +lat_0=0 +lon_0=144 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 147E +<2743> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 150E +<2744> +proj=tmerc +lat_0=0 +lon_0=150 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 153E +<2745> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 156E +<2746> +proj=tmerc +lat_0=0 +lon_0=156 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 159E +<2747> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 162E +<2748> +proj=tmerc +lat_0=0 +lon_0=162 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 165E +<2749> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 168E +<2750> +proj=tmerc +lat_0=0 +lon_0=168 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 171E +<2751> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 174E +<2752> +proj=tmerc +lat_0=0 +lon_0=174 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 177E +<2753> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 180E +<2754> +proj=tmerc +lat_0=0 +lon_0=180 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 177W +<2755> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 174W +<2756> +proj=tmerc +lat_0=0 +lon_0=-174 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 171W +<2757> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / 3-degree Gauss-Kruger CM 168W +<2758> +proj=tmerc +lat_0=0 +lon_0=-168 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# NAD83(HARN) / Alabama East +<2759> +proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.999960 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Alabama West +<2760> +proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Arizona East +<2761> +proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Arizona Central +<2762> +proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Arizona West +<2763> +proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Arkansas North +<2764> +proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Arkansas South +<2765> +proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / California zone 1 +<2766> +proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / California zone 2 +<2767> +proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / California zone 3 +<2768> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / California zone 4 +<2769> +proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / California zone 5 +<2770> +proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / California zone 6 +<2771> +proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Colorado North +<2772> +proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Colorado Central +<2773> +proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Colorado South +<2774> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Connecticut +<2775> +proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Delaware +<2776> +proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Florida East +<2777> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Florida West +<2778> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Florida North +<2779> +proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Georgia East +<2780> +proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999900 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Georgia West +<2781> +proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999900 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Hawaii zone 1 +<2782> +proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999967 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Hawaii zone 2 +<2783> +proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999967 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Hawaii zone 3 +<2784> +proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.999990 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Hawaii zone 4 +<2785> +proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.999990 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Hawaii zone 5 +<2786> +proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Idaho East +<2787> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.999947 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Idaho Central +<2788> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.999947 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Idaho West +<2789> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933 +x_0=800000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Illinois East +<2790> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.999975 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Illinois West +<2791> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Indiana East +<2792> +proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999967 +x_0=100000 +y_0=250000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Indiana West +<2793> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999967 +x_0=900000 +y_0=250000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Iowa North +<2794> +proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Iowa South +<2795> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Kansas North +<2796> +proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Kansas South +<2797> +proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Kentucky North +<2798> +proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Kentucky South +<2799> +proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Louisiana North +<2800> +proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Louisiana South +<2801> +proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Maine East +<2802> +proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.999900 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Maine West +<2803> +proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999967 +x_0=900000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Maryland +<2804> +proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Massachusetts Mainland +<2805> +proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Massachusetts Island +<2806> +proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Michigan North +<2807> +proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Michigan Central +<2808> +proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Michigan South +<2809> +proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Minnesota North +<2810> +proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Minnesota Central +<2811> +proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Minnesota South +<2812> +proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Mississippi East +<2813> +proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.999950 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Mississippi West +<2814> +proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.999950 +x_0=700000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Missouri East +<2815> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Missouri Central +<2816> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Missouri West +<2817> +proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941 +x_0=850000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Montana +<2818> +proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Nebraska +<2819> +proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Nevada East +<2820> +proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.999900 +x_0=200000 +y_0=8000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Nevada Central +<2821> +proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.999900 +x_0=500000 +y_0=6000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Nevada West +<2822> +proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.999900 +x_0=800000 +y_0=4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / New Hampshire +<2823> +proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999967 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / New Jersey +<2824> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.999900 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / New Mexico East +<2825> +proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / New Mexico Central +<2826> +proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / New Mexico West +<2827> +proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999917 +x_0=830000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / New York East +<2828> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.999900 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / New York Central +<2829> +proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999938 +x_0=250000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / New York West +<2830> +proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999938 +x_0=350000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / New York Long Island +<2831> +proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / North Dakota North +<2832> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / North Dakota South +<2833> +proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Ohio North +<2834> +proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Ohio South +<2835> +proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Oklahoma North +<2836> +proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Oklahoma South +<2837> +proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Oregon North +<2838> +proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Oregon South +<2839> +proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Rhode Island +<2840> +proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.999994 +x_0=100000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / South Dakota North +<2841> +proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / South Dakota South +<2842> +proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Tennessee +<2843> +proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Texas North +<2844> +proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Texas North Central +<2845> +proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Texas Central +<2846> +proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Texas South Central +<2847> +proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Texas South +<2848> +proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Utah North +<2849> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Utah Central +<2850> +proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Utah South +<2851> +proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Vermont +<2852> +proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Virginia North +<2853> +proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Virginia South +<2854> +proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Washington North +<2855> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Washington South +<2856> +proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / West Virginia North +<2857> +proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / West Virginia South +<2858> +proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Wisconsin North +<2859> +proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Wisconsin Central +<2860> +proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Wisconsin South +<2861> +proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Wyoming East +<2862> +proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.999938 +x_0=200000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Wyoming East Central +<2863> +proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.999938 +x_0=400000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Wyoming West Central +<2864> +proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.999938 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Wyoming West +<2865> +proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.999938 +x_0=800000 +y_0=100000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Puerto Rico & Virgin Is. +<2866> +proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(HARN) / Arizona East (ft) +<2867> +proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs no_defs <> +# NAD83(HARN) / Arizona Central (ft) +<2868> +proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs no_defs <> +# NAD83(HARN) / Arizona West (ft) +<2869> +proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933 +x_0=213360 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs no_defs <> +# NAD83(HARN) / California zone 1 (ftUS) +<2870> +proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / California zone 2 (ftUS) +<2871> +proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / California zone 3 (ftUS) +<2872> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / California zone 4 (ftUS) +<2873> +proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / California zone 5 (ftUS) +<2874> +proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / California zone 6 (ftUS) +<2875> +proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000.0001016 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Colorado North (ftUS) +<2876> +proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Colorado Central (ftUS) +<2877> +proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Colorado South (ftUS) +<2878> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8288036576 +y_0=304800.6096012192 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Connecticut (ftUS) +<2879> +proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096012192 +y_0=152400.3048006096 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Delaware (ftUS) +<2880> +proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Florida East (ftUS) +<2881> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Florida West (ftUS) +<2882> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Florida North (ftUS) +<2883> +proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Georgia East (ftUS) +<2884> +proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999900 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Georgia West (ftUS) +<2885> +proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999900 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Idaho East (ftUS) +<2886> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.999947 +x_0=200000.0001016002 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Idaho Central (ftUS) +<2887> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.999947 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Idaho West (ftUS) +<2888> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933 +x_0=800000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Indiana East (ftUS) +<2889> +proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999967 +x_0=99999.99989839978 +y_0=249364.9987299975 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Indiana West (ftUS) +<2890> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999967 +x_0=900000 +y_0=249364.9987299975 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Kentucky North (ftUS) +<2891> +proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Kentucky South (ftUS) +<2892> +proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0001016001 +y_0=500000.0001016001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Maryland (ftUS) +<2893> +proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Massachusetts Mainland (ftUS) +<2894> +proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000.0001016002 +y_0=750000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Massachusetts Island (ftUS) +<2895> +proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Michigan North (ft) +<2896> +proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999968001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs no_defs <> +# NAD83(HARN) / Michigan Central (ft) +<2897> +proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=5999999.999976001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs no_defs <> +# NAD83(HARN) / Michigan South (ft) +<2898> +proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=3999999.999984 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs no_defs <> +# NAD83(HARN) / Mississippi East (ftUS) +<2899> +proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.999950 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Mississippi West (ftUS) +<2900> +proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.999950 +x_0=699999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Montana (ft) +<2901> +proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs no_defs <> +# NAD83(HARN) / New Mexico East (ftUS) +<2902> +proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909 +x_0=165000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / New Mexico Central (ftUS) +<2903> +proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.999900 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / New Mexico West (ftUS) +<2904> +proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999917 +x_0=830000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / New York East (ftUS) +<2905> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.999900 +x_0=150000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / New York Central (ftUS) +<2906> +proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999938 +x_0=249999.9998983998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / New York West (ftUS) +<2907> +proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999938 +x_0=350000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / New York Long Island (ftUS) +<2908> +proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / North Dakota North (ft) +<2909> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs no_defs <> +# NAD83(HARN) / North Dakota South (ft) +<2910> +proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=599999.9999976 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs no_defs <> +# NAD83(HARN) / Oklahoma North (ftUS) +<2911> +proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Oklahoma South (ftUS) +<2912> +proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Oregon North (ft) +<2913> +proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000.0001424 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs no_defs <> +# NAD83(HARN) / Oregon South (ft) +<2914> +proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000.0001464 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs no_defs <> +# NAD83(HARN) / Tennessee (ftUS) +<2915> +proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Texas North (ftUS) +<2916> +proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000.0001016002 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Texas North Central (ftUS) +<2917> +proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Texas Central (ftUS) +<2918> +proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=699999.9998983998 +y_0=3000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Texas South Central (ftUS) +<2919> +proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=3999999.9998984 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Texas South (ftUS) +<2920> +proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000.0000000001 +y_0=5000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Utah North (ft) +<2921> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=999999.9999960001 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs no_defs <> +# NAD83(HARN) / Utah Central (ft) +<2922> +proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0001504 +y_0=1999999.999992 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs no_defs <> +# NAD83(HARN) / Utah South (ft) +<2923> +proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0001504 +y_0=2999999.999988 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048 +no_defs no_defs <> +# NAD83(HARN) / Virginia North (ftUS) +<2924> +proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=2000000.0001016 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Virginia South (ftUS) +<2925> +proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000.0001016 +y_0=999999.9998983998 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Washington North (ftUS) +<2926> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Washington South (ftUS) +<2927> +proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Wisconsin North (ftUS) +<2928> +proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Wisconsin Central (ftUS) +<2929> +proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83(HARN) / Wisconsin South (ftUS) +<2930> +proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.3048006096012192 +no_defs no_defs <> +# Beduaram / TM 13 NE +<2931> +proj=tmerc +lat_0=0 +lon_0=13 +k=0.999600 +x_0=500000.0000000001 +y_0=0 +a=6378249.2 +b=6356515 +to_meter=0.3048006096012192 +no_defs no_defs <> +# QND95 / Qatar National Grid +<2932> +proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.999990 +x_0=200000 +y_0=300000 +ellps=intl +towgs84=-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706 +units=m +no_defs no_defs <> +# Segara / UTM zone 50S +<2933> +proj=utm +zone=50 +south +ellps=bessel +towgs84=-404.78,685.68,45.47,0,0,0,0 +units=m +no_defs no_defs <> +# Segara (Jakarta) / NEIEZ +<2934> +proj=merc +lat_ts=0 +lon_0=216.8077194444444 +k=0.997000 +x_0=3900000 +y_0=900000 +ellps=bessel +pm=jakarta +units=m +no_defs no_defs <> +# Pulkovo 1942 / CS63 zone A1 +<2935> +proj=tmerc +lat_0=0.1166666666666667 +lon_0=41.53333333333333 +k=1.000000 +x_0=1300000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / CS63 zone A2 +<2936> +proj=tmerc +lat_0=0.1166666666666667 +lon_0=44.53333333333333 +k=1.000000 +x_0=2300000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / CS63 zone A3 +<2937> +proj=tmerc +lat_0=0.1166666666666667 +lon_0=47.53333333333333 +k=1.000000 +x_0=3300000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / CS63 zone A4 +<2938> +proj=tmerc +lat_0=0.1166666666666667 +lon_0=50.53333333333333 +k=1.000000 +x_0=4300000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / CS63 zone K2 +<2939> +proj=tmerc +lat_0=0.1333333333333333 +lon_0=50.76666666666667 +k=1.000000 +x_0=2300000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / CS63 zone K3 +<2940> +proj=tmerc +lat_0=0.1333333333333333 +lon_0=53.76666666666667 +k=1.000000 +x_0=3300000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / CS63 zone K4 +<2941> +proj=tmerc +lat_0=0.1333333333333333 +lon_0=56.76666666666667 +k=1.000000 +x_0=4300000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Porto Santo / UTM zone 28N +<2942> +proj=utm +zone=28 +ellps=intl +units=m +no_defs no_defs <> +# Selvagem Grande / UTM zone 28N +<2943> +proj=utm +zone=28 +ellps=intl +units=m +no_defs no_defs <> +# NAD83(CSRS) / SCoPQ zone 2 +<2944> +proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / MTM zone 3 +<2945> +proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / MTM zone 4 +<2946> +proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / MTM zone 5 +<2947> +proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / MTM zone 6 +<2948> +proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / MTM zone 7 +<2949> +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / MTM zone 8 +<2950> +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / MTM zone 9 +<2951> +proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / MTM zone 10 +<2952> +proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / New Brunswick Stereo +<2953> +proj=stere +lat_0=46.5 +lon_0=-66.5 +k=0.999912 +x_0=2500000 +y_0=7500000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / Prince Edward Isl. Stereographic (NAD83) +<2954> +proj=stere +lat_0=47.25 +lon_0=-63 +k=0.999912 +x_0=400000 +y_0=800000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / UTM zone 11N +<2955> +proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / UTM zone 12N +<2956> +proj=utm +zone=12 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / UTM zone 13N +<2957> +proj=utm +zone=13 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / UTM zone 17N +<2958> +proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / UTM zone 18N +<2959> +proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / UTM zone 19N +<2960> +proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / UTM zone 20N +<2961> +proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD83(CSRS) / UTM zone 21N +<2962> +proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# Moznet / UTM zone 36S +<3036> +proj=utm +zone=36 +south +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defs no_defs <> +# Moznet / UTM zone 37S +<3037> +proj=utm +zone=37 +south +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +units=m +no_defs no_defs <> +# Indian 1960 / UTM zone 48N +<3148> +proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs no_defs <> +# Indian 1960 / UTM zone 49N +<3149> +proj=utm +zone=49 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs no_defs <> +# Indian 1960 / TM 106 NE +<3176> +proj=tmerc +lat_0=0 +lon_0=106 +k=0.999600 +x_0=500000 +y_0=0 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs no_defs <> +# FD58 / Iraq zone +<3200> +proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +units=m +no_defs no_defs <> +# Estonian Coordinate System of 1992 +<3300> +proj=lcc +lat_1=59.33333333333334 +lat_2=58 +lat_0=57.51755393055556 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014 +units=m +no_defs no_defs <> +# Estonian Coordinate System of 1997 +<3301> +proj=lcc +lat_1=59.33333333333334 +lat_2=58 +lat_0=57.51755393055556 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# PSD93 / UTM zone 39N +<3439> +proj=utm +zone=39 +ellps=clrk80 +units=m +no_defs no_defs <> +# PSD93 / UTM zone 40N +<3440> +proj=utm +zone=40 +ellps=clrk80 +units=m +no_defs no_defs <> +# Old Hawaiian / Hawaii zone 1 +<3561> +proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999967 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs no_defs <> +# Old Hawaiian / Hawaii zone 2 +<3562> +proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999967 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs no_defs <> +# Old Hawaiian / Hawaii zone 3 +<3563> +proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.999990 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs no_defs <> +# Old Hawaiian / Hawaii zone 4 +<3564> +proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.999990 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs no_defs <> +# Old Hawaiian / Hawaii zone 5 +<3565> +proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1.000000 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs no_defs <> +# Puerto Rico / UTM zone 20N +<3920> +proj=utm +zone=20 +ellps=clrk66 +units=m +no_defs no_defs <> +# Puerto Rico State Plane CS of 1927 +<3991> +proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs no_defs <> +# Puerto Rico / St. Croix +<3992> +proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=152400.3048006096 +y_0=30480.06096012192 +ellps=clrk66 +to_meter=0.3048006096012192 +no_defs no_defs <> +# Unknown datum based upon the Airy 1830 ellipsoid +<4001> +proj=longlat +ellps=airy +no_defs no_defs <> +# Unknown datum based upon the Airy Modified 1849 ellipsoid +<4002> +proj=longlat +a=6377340.189 +b=6356034.447938534 +no_defs no_defs <> +# Unknown datum based upon the Australian National Spheroid +<4003> +proj=longlat +ellps=aust_SA +no_defs no_defs <> +# Unknown datum based upon the Bessel 1841 ellipsoid +<4004> +proj=longlat +ellps=bessel +no_defs no_defs <> +# Unknown datum based upon the Bessel Modified ellipsoid +<4005> +proj=longlat +a=6377492.018 +b=6356173.508712696 +no_defs no_defs <> +# Unknown datum based upon the Bessel Namibia ellipsoid +<4006> +proj=longlat +ellps=bess_nam +no_defs no_defs <> +# Unknown datum based upon the Clarke 1858 ellipsoid +<4007> +proj=longlat +a=6378293.63683822 +b=6356617.979337744 +no_defs no_defs <> +# Unknown datum based upon the Clarke 1866 ellipsoid +<4008> +proj=longlat +ellps=clrk66 +no_defs no_defs <> +# Unknown datum based upon the Clarke 1866 Michigan ellipsoid +<4009> +proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defs no_defs <> +# Unknown datum based upon the Clarke 1880 (Benoit) ellipsoid +<4010> +proj=longlat +a=6378300.789 +b=6356566.435 +no_defs no_defs <> +# Unknown datum based upon the Clarke 1880 (IGN) ellipsoid +<4011> +proj=longlat +a=6378249.2 +b=6356515 +no_defs no_defs <> +# Unknown datum based upon the Clarke 1880 (RGS) ellipsoid +<4012> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# Unknown datum based upon the Clarke 1880 (Arc) ellipsoid +<4013> +proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defs no_defs <> +# Unknown datum based upon the Clarke 1880 (SGA 1922) ellipsoid +<4014> +proj=longlat +a=6378249.2 +b=6356514.996941779 +no_defs no_defs <> +# Unknown datum based upon the Everest 1830 (1937 Adjustment) ellipsoid +<4015> +proj=longlat +a=6377276.345 +b=6356075.413140239 +no_defs no_defs <> +# Unknown datum based upon the Everest 1830 (1967 Definition) ellipsoid +<4016> +proj=longlat +ellps=evrstSS +no_defs no_defs <> +# Unknown datum based upon the Everest 1830 Modified ellipsoid +<4018> +proj=longlat +a=6377304.063 +b=6356103.038993155 +no_defs no_defs <> +# Unknown datum based upon the GRS 1980 ellipsoid +<4019> +proj=longlat +ellps=GRS80 +no_defs no_defs <> +# Unknown datum based upon the Helmert 1906 ellipsoid +<4020> +proj=longlat +ellps=helmert +no_defs no_defs <> +# Unknown datum based upon the Indonesian National Spheroid +<4021> +proj=longlat +a=6378160 +b=6356774.50408554 +no_defs no_defs <> +# Unknown datum based upon the International 1924 ellipsoid +<4022> +proj=longlat +ellps=intl +no_defs no_defs <> +# Unknown datum based upon the Krassowsky 1940 ellipsoid +<4024> +proj=longlat +ellps=krass +no_defs no_defs <> +# Unknown datum based upon the NWL 9D ellipsoid +<4025> +proj=longlat +ellps=WGS66 +no_defs no_defs <> +# Unknown datum based upon the Plessis 1817 ellipsoid +<4027> +proj=longlat +a=6376523 +b=6355862.933255573 +no_defs no_defs <> +# Unknown datum based upon the Struve 1860 ellipsoid +<4028> +proj=longlat +a=6378298.3 +b=6356657.142669562 +no_defs no_defs <> +# Unknown datum based upon the War Office ellipsoid +<4029> +proj=longlat +a=6378300 +b=6356751.689189189 +no_defs no_defs <> +# Unknown datum based upon the WGS 84 ellipsoid +<4030> +proj=longlat +ellps=WGS84 +no_defs no_defs <> +# Unknown datum based upon the GEM 10C ellipsoid +<4031> +proj=longlat +ellps=WGS84 +no_defs no_defs <> +# Unknown datum based upon the OSU86F ellipsoid +<4032> +proj=longlat +a=6378136.2 +b=6356751.516927429 +no_defs no_defs <> +# Unknown datum based upon the OSU91A ellipsoid +<4033> +proj=longlat +a=6378136.3 +b=6356751.616592146 +no_defs no_defs <> +# Unknown datum based upon the Clarke 1880 ellipsoid +<4034> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# Unknown datum based upon the Authalic Sphere +<4035> +proj=longlat +a=6371000 +b=6371000 +no_defs no_defs <> +# Unknown datum based upon the GRS 1967 ellipsoid +<4036> +proj=longlat +ellps=GRS67 +no_defs no_defs <> +# Unknown datum based upon the Average Terrestrial System 1977 ellipsoid +<4041> +proj=longlat +a=6378135 +b=6356750.304921594 +no_defs no_defs <> +# Unknown datum based upon the Everest (1830 Definition) ellipsoid +<4042> +proj=longlat +a=6377299.36559538 +b=6356098.357204817 +no_defs no_defs <> +# Unknown datum based upon the WGS 72 ellipsoid +<4043> +proj=longlat +ellps=WGS72 +no_defs no_defs <> +# Unknown datum based upon the Everest 1830 (1962 Definition) ellipsoid +<4044> +proj=longlat +a=6377301.243 +b=6356100.230165385 +no_defs no_defs <> +# Unknown datum based upon the Everest 1830 (1975 Definition) ellipsoid +<4045> +proj=longlat +a=6377299.151 +b=6356098.145120132 +no_defs no_defs <> +# Unspecified based upon the GRS 1980 Authalic Sphere +<4047> +proj=longlat +a=6370997 +b=6370997 +no_defs no_defs <> +# Greek +<4120> +proj=longlat +ellps=bessel +no_defs no_defs <> +# GGRS87 +<4121> +proj=longlat +ellps=GRS80 +towgs84=-199.87,74.79,246.62,0,0,0,0 +no_defs no_defs <> +# ATS77 +<4122> +proj=longlat +a=6378135 +b=6356750.304921594 +no_defs no_defs <> +# KKJ +<4123> +proj=longlat +ellps=intl +towgs84=-90.7,-106.1,-119.2,4.09,0.218,-1.05,1.37 +no_defs no_defs <> +# RT90 +<4124> +proj=longlat +ellps=bessel +no_defs no_defs <> +# Samboja +<4125> +proj=longlat +ellps=bessel +towgs84=-404.78,685.68,45.47,0,0,0,0 +no_defs no_defs <> +# LKS94 (ETRS89) +<4126> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# Tete +<4127> +proj=longlat +ellps=clrk66 +no_defs no_defs <> +# Madzansua +<4128> +proj=longlat +ellps=clrk66 +no_defs no_defs <> +# Observatario +<4129> +proj=longlat +ellps=clrk66 +no_defs no_defs <> +# Moznet +<4130> +proj=longlat +ellps=WGS84 +towgs84=0,0,0,-0,-0,-0,0 +no_defs no_defs <> +# Indian 1960 +<4131> +proj=longlat +a=6377276.345 +b=6356075.413140239 +no_defs no_defs <> +# FD58 +<4132> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# EST92 +<4133> +proj=longlat +ellps=GRS80 +towgs84=0.055,-0.541,-0.185,0.0183,-0.0003,-0.007,-0.014 +no_defs no_defs <> +# PDO Survey Datum 1993 +<4134> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# Old Hawaiian +<4135> +proj=longlat +ellps=clrk66 +no_defs no_defs <> +# St. Lawrence Island +<4136> +proj=longlat +ellps=clrk66 +no_defs no_defs <> +# St. Paul Island +<4137> +proj=longlat +ellps=clrk66 +no_defs no_defs <> +# St. George Island +<4138> +proj=longlat +ellps=clrk66 +no_defs no_defs <> +# Puerto Rico +<4139> +proj=longlat +ellps=clrk66 +no_defs no_defs <> +# NAD83(CSRS98) +<4140> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# Israel +<4141> +proj=longlat +ellps=GRS80 +no_defs no_defs <> +# Locodjo 1965 +<4142> +proj=longlat +ellps=clrk80 +towgs84=-125,53,467,0,0,0,0 +no_defs no_defs <> +# Abidjan 1987 +<4143> +proj=longlat +ellps=clrk80 +towgs84=-124.76,53,466.79,0,0,0,0 +no_defs no_defs <> +# Kalianpur 1937 +<4144> +proj=longlat +a=6377276.345 +b=6356075.413140239 +no_defs no_defs <> +# Kalianpur 1962 +<4145> +proj=longlat +a=6377301.243 +b=6356100.230165385 +towgs84=283,682,231,0,0,0,0 +no_defs no_defs <> +# Kalianpur 1975 +<4146> +proj=longlat +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +no_defs no_defs <> +# Hanoi 1972 +<4147> +proj=longlat +ellps=krass +towgs84=-17.51,-108.32,-62.39,0,0,0,0 +no_defs no_defs <> +# Hartebeesthoek94 +<4148> +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# CH1903 +<4149> +proj=longlat +ellps=bessel +no_defs no_defs <> +# CH1903+ +<4150> +proj=longlat +ellps=bessel +towgs84=674.374,15.056,405.346,0,0,0,0 +no_defs no_defs <> +# CHTRF95 +<4151> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# NAD83(HARN) +<4152> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# Rassadiran +<4153> +proj=longlat +ellps=intl +towgs84=-133.63,-157.5,-158.62,0,0,0,0 +no_defs no_defs <> +# ED50(ED77) +<4154> +proj=longlat +ellps=intl +no_defs no_defs <> +# Dabola 1981 +<4155> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-83,37,124,0,0,0,0 +no_defs no_defs <> +# S-JTSK +<4156> +proj=longlat +ellps=bessel +no_defs no_defs <> +# Mount Dillon +<4157> +proj=longlat +a=6378293.63683822 +b=6356617.979337744 +no_defs no_defs <> +# Naparima 1955 +<4158> +proj=longlat +ellps=intl +no_defs no_defs <> +# ELD79 +<4159> +proj=longlat +ellps=intl +no_defs no_defs <> +# Chos Malal 1914 +<4160> +proj=longlat +ellps=intl +no_defs no_defs <> +# Pampa del Castillo +<4161> +proj=longlat +ellps=intl +no_defs no_defs <> +# Korean 1985 +<4162> +proj=longlat +ellps=bessel +no_defs no_defs <> +# Yemen NGN96 +<4163> +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# South Yemen +<4164> +proj=longlat +ellps=krass +towgs84=-76,-138,67,0,0,0,0 +no_defs no_defs <> +# Bissau +<4165> +proj=longlat +ellps=intl +towgs84=-173,253,27,0,0,0,0 +no_defs no_defs <> +# Korean 1995 +<4166> +proj=longlat +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# NZGD2000 +<4167> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# Accra +<4168> +proj=longlat +a=6378300 +b=6356751.689189189 +towgs84=-199,32,322,0,0,0,0 +no_defs no_defs <> +# American Samoa 1962 +<4169> +proj=longlat +ellps=clrk66 +towgs84=-115,118,426,0,0,0,0 +no_defs no_defs <> +# SIRGAS +<4170> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# RGF93 +<4171> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# POSGAR +<4172> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# IRENET95 +<4173> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# Sierra Leone 1924 +<4174> +proj=longlat +a=6378300 +b=6356751.689189189 +no_defs no_defs <> +# Sierra Leone 1968 +<4175> +proj=longlat +ellps=clrk80 +towgs84=-88,4,101,0,0,0,0 +no_defs no_defs <> +# Australian Antarctic +<4176> +proj=longlat +ellps=GRS80 +no_defs no_defs <> +# Pulkovo 1942(83) +<4178> +proj=longlat +ellps=krass +towgs84=24,-123,-94,0.02,-0.25,-0.13,1.1 +no_defs no_defs <> +# Pulkovo 1942(58) +<4179> +proj=longlat +ellps=krass +towgs84=33.4,-146.6,-76.3,-0.359,-0.053,0.844,-0.84 +no_defs no_defs <> +# EST97 +<4180> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# Luxembourg 1930 +<4181> +proj=longlat +ellps=intl +towgs84=-193,13.7,-39.3,-0.41,-2.933,2.688,0.43 +no_defs no_defs <> +# Azores Occidental 1939 +<4182> +proj=longlat +ellps=intl +no_defs no_defs <> +# Azores Central 1948 +<4183> +proj=longlat +ellps=intl +no_defs no_defs <> +# Azores Oriental 1940 +<4184> +proj=longlat +ellps=intl +no_defs no_defs <> +# Madeira 1936 +<4185> +proj=longlat +ellps=intl +no_defs no_defs <> +# OSNI 1952 +<4188> +proj=longlat +ellps=airy +no_defs no_defs <> +# REGVEN +<4189> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# POSGAR 98 +<4190> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# Albanian 1987 +<4191> +proj=longlat +ellps=krass +no_defs no_defs <> +# Douala 1948 +<4192> +proj=longlat +ellps=intl +no_defs no_defs <> +# Manoca 1962 +<4193> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +no_defs no_defs <> +# Qornoq 1927 +<4194> +proj=longlat +ellps=intl +no_defs no_defs <> +# Scoresbysund 1952 +<4195> +proj=longlat +ellps=intl +towgs84=105,326,-102.5,0,0,0.814,-0.6 +no_defs no_defs <> +# Ammassalik 1958 +<4196> +proj=longlat +ellps=intl +towgs84=-45,417,-3.5,0,0,0.814,-0.6 +no_defs no_defs <> +# Garoua +<4197> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# Kousseri +<4198> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# Egypt 1930 +<4199> +proj=longlat +ellps=intl +no_defs no_defs <> +# Pulkovo 1995 +<4200> +proj=longlat +ellps=krass +no_defs no_defs <> +# Adindan +<4201> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# AGD66 +<4202> +proj=longlat +ellps=aust_SA +no_defs no_defs <> +# AGD84 +<4203> +proj=longlat +ellps=aust_SA +no_defs no_defs <> +# Ain el Abd +<4204> +proj=longlat +ellps=intl +no_defs no_defs <> +# Afgooye +<4205> +proj=longlat +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +no_defs no_defs <> +# Agadez +<4206> +proj=longlat +a=6378249.2 +b=6356515 +no_defs no_defs <> +# Lisbon +<4207> +proj=longlat +ellps=intl +no_defs no_defs <> +# Aratu +<4208> +proj=longlat +ellps=intl +no_defs no_defs <> +# Arc 1950 +<4209> +proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defs no_defs <> +# Arc 1960 +<4210> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# Batavia +<4211> +proj=longlat +ellps=bessel +no_defs no_defs <> +# Barbados 1938 +<4212> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# Beduaram +<4213> +proj=longlat +a=6378249.2 +b=6356515 +no_defs no_defs <> +# Beijing 1954 +<4214> +proj=longlat +ellps=krass +no_defs no_defs <> +# Belge 1950 +<4215> +proj=longlat +ellps=intl +no_defs no_defs <> +# Bermuda 1957 +<4216> +proj=longlat +ellps=clrk66 +towgs84=-73,213,296,0,0,0,0 +no_defs no_defs <> +# Bogota 1975 +<4218> +proj=longlat +ellps=intl +no_defs no_defs <> +# Bukit Rimpah +<4219> +proj=longlat +ellps=bessel +towgs84=-384,664,-48,0,0,0,0 +no_defs no_defs <> +# Camacupa +<4220> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# Campo Inchauspe +<4221> +proj=longlat +ellps=intl +no_defs no_defs <> +# Cape +<4222> +proj=longlat +a=6378249.145 +b=6356514.966398753 +no_defs no_defs <> +# Carthage +<4223> +proj=longlat +a=6378249.2 +b=6356515 +no_defs no_defs <> +# Chua +<4224> +proj=longlat +ellps=intl +towgs84=-134,229,-29,0,0,0,0 +no_defs no_defs <> +# Corrego Alegre +<4225> +proj=longlat +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +no_defs no_defs <> +# Cote d'Ivoire +<4226> +proj=longlat +a=6378249.2 +b=6356515 +no_defs no_defs <> +# Deir ez Zor +<4227> +proj=longlat +a=6378249.2 +b=6356515 +no_defs no_defs <> +# Douala +<4228> +proj=longlat +a=6378249.2 +b=6356515 +no_defs no_defs <> +# Egypt 1907 +<4229> +proj=longlat +ellps=helmert +no_defs no_defs <> +# ED50 +<4230> +proj=longlat +ellps=intl +no_defs no_defs <> +# ED87 +<4231> +proj=longlat +ellps=intl +towgs84=-82.981,-99.719,-110.709,-0.5076,0.1503,0.3898,-0.3143 +no_defs no_defs <> +# Fahud +<4232> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# Gandajika 1970 +<4233> +proj=longlat +ellps=intl +no_defs no_defs <> +# Garoua +<4234> +proj=longlat +a=6378249.2 +b=6356515 +no_defs no_defs <> +# Guyane Francaise +<4235> +proj=longlat +ellps=intl +no_defs no_defs <> +# Hu Tzu Shan +<4236> +proj=longlat +ellps=intl +towgs84=-637,-549,-203,0,0,0,0 +no_defs no_defs <> +# HD72 +<4237> +proj=longlat +ellps=GRS67 +no_defs no_defs <> +# ID74 +<4238> +proj=longlat +a=6378160 +b=6356774.50408554 +no_defs no_defs <> +# Indian 1954 +<4239> +proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs84=217,823,299,0,0,0,0 +no_defs no_defs <> +# Indian 1975 +<4240> +proj=longlat +a=6377276.345 +b=6356075.413140239 +no_defs no_defs <> +# Jamaica 1875 +<4241> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# JAD69 +<4242> +proj=longlat +ellps=clrk66 +no_defs no_defs <> +# Kalianpur 1880 +<4243> +proj=longlat +a=6377299.36559538 +b=6356098.357204817 +no_defs no_defs <> +# Kandawala +<4244> +proj=longlat +a=6377276.345 +b=6356075.413140239 +towgs84=-97,787,86,0,0,0,0 +no_defs no_defs <> +# Kertau +<4245> +proj=longlat +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +no_defs no_defs <> +# KOC +<4246> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# La Canoa +<4247> +proj=longlat +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +no_defs no_defs <> +# PSAD56 +<4248> +proj=longlat +ellps=intl +no_defs no_defs <> +# Lake +<4249> +proj=longlat +ellps=intl +no_defs no_defs <> +# Leigon +<4250> +proj=longlat +ellps=clrk80 +towgs84=-130,29,364,0,0,0,0 +no_defs no_defs <> +# Liberia 1964 +<4251> +proj=longlat +ellps=clrk80 +towgs84=-90,40,88,0,0,0,0 +no_defs no_defs <> +# Lome +<4252> +proj=longlat +a=6378249.2 +b=6356515 +no_defs no_defs <> +# Luzon 1911 +<4253> +proj=longlat +ellps=clrk66 +no_defs no_defs <> +# Hito XVIII 1963 +<4254> +proj=longlat +ellps=intl +towgs84=18.38,192.45,96.82,0.056,-0.142,-0.2,-0.0013 +no_defs no_defs <> +# Herat North +<4255> +proj=longlat +ellps=intl +towgs84=-333,-222,114,0,0,0,0 +no_defs no_defs <> +# Mahe 1971 +<4256> +proj=longlat +ellps=clrk80 +towgs84=41,-220,-134,0,0,0,0 +no_defs no_defs <> +# Makassar +<4257> +proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +no_defs no_defs <> +# ETRS89 +<4258> +proj=longlat +ellps=GRS80 +no_defs no_defs <> +# Malongo 1987 +<4259> +proj=longlat +ellps=intl +no_defs no_defs <> +# Manoca +<4260> +proj=longlat +ellps=clrk80 +towgs84=-70.9,-151.8,-41.4,0,0,0,0 +no_defs no_defs <> +# Merchich +<4261> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +no_defs no_defs <> +# Massawa +<4262> +proj=longlat +ellps=bessel +towgs84=639,405,60,0,0,0,0 +no_defs no_defs <> +# Minna +<4263> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# Mhast +<4264> +proj=longlat +ellps=intl +towgs84=-252.95,-4.11,-96.38,0,0,0,0 +no_defs no_defs <> +# Monte Mario +<4265> +proj=longlat +ellps=intl +no_defs no_defs <> +# M'poraloko +<4266> +proj=longlat +a=6378249.2 +b=6356515 +no_defs no_defs <> +# NAD27 +<4267> +proj=longlat +ellps=clrk66 +datum=NAD27 +no_defs no_defs <> +# NAD27 Michigan +<4268> +proj=longlat +a=6378450.047548896 +b=6356826.621488444 +no_defs no_defs <> +# NAD83 +<4269> +proj=longlat +ellps=GRS80 +datum=NAD83 +no_defs no_defs <> +# Nahrwan 1967 +<4270> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# Naparima 1972 +<4271> +proj=longlat +ellps=intl +no_defs no_defs <> +# NZGD49 +<4272> +proj=longlat +ellps=intl +no_defs no_defs <> +# NGO 1948 +<4273> +proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +no_defs no_defs <> +# Datum 73 +<4274> +proj=longlat +ellps=intl +no_defs no_defs <> +# NTF +<4275> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +no_defs no_defs <> +# NSWC 9Z-2 +<4276> +proj=longlat +ellps=WGS66 +no_defs no_defs <> +# OSGB 1936 +<4277> +proj=longlat +ellps=airy +no_defs no_defs <> +# OSGB70 +<4278> +proj=longlat +ellps=airy +no_defs no_defs <> +# OS(SN)80 +<4279> +proj=longlat +ellps=airy +no_defs no_defs <> +# Padang +<4280> +proj=longlat +ellps=bessel +no_defs no_defs <> +# Palestine 1923 +<4281> +proj=longlat +a=6378300.789 +b=6356566.435 +no_defs no_defs <> +# Pointe Noire +<4282> +proj=longlat +a=6378249.2 +b=6356515 +no_defs no_defs <> +# GDA94 +<4283> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# Pulkovo 1942 +<4284> +proj=longlat +ellps=krass +no_defs no_defs <> +# Qatar 1974 +<4285> +proj=longlat +ellps=intl +no_defs no_defs <> +# Qatar 1948 +<4286> +proj=longlat +ellps=helmert +no_defs no_defs <> +# Qornoq +<4287> +proj=longlat +ellps=intl +towgs84=164,138,-189,0,0,0,0 +no_defs no_defs <> +# Loma Quintana +<4288> +proj=longlat +ellps=intl +no_defs no_defs <> +# Amersfoort +<4289> +proj=longlat +ellps=bessel +no_defs no_defs <> +# SAD69 +<4291> +proj=longlat +ellps=GRS67 +no_defs no_defs <> +# Sapper Hill 1943 +<4292> +proj=longlat +ellps=intl +towgs84=-355,21,72,0,0,0,0 +no_defs no_defs <> +# Schwarzeck +<4293> +proj=longlat +ellps=bess_nam +no_defs no_defs <> +# Segora +<4294> +proj=longlat +ellps=bessel +no_defs no_defs <> +# Serindung +<4295> +proj=longlat +ellps=bessel +no_defs no_defs <> +# Sudan +<4296> +proj=longlat +a=6378249.2 +b=6356515 +no_defs no_defs <> +# Tananarive +<4297> +proj=longlat +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +no_defs no_defs <> +# Timbalai 1948 +<4298> +proj=longlat +ellps=evrstSS +no_defs no_defs <> +# TM65 +<4299> +proj=longlat +a=6377340.189 +b=6356034.447938534 +no_defs no_defs <> +# TM75 +<4300> +proj=longlat +a=6377340.189 +b=6356034.447938534 +no_defs no_defs <> +# Tokyo +<4301> +proj=longlat +ellps=bessel +no_defs no_defs <> +# Trinidad 1903 +<4302> +proj=longlat +a=6378293.63683822 +b=6356617.979337744 +towgs84=-61.702,284.488,472.052,0,0,0,0 +no_defs no_defs <> +# TC(1948) +<4303> +proj=longlat +ellps=helmert +no_defs no_defs <> +# Voirol 1875 +<4304> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +no_defs no_defs <> +# Bern 1938 +<4306> +proj=longlat +ellps=bessel +no_defs no_defs <> +# Nord Sahara 1959 +<4307> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# RT38 +<4308> +proj=longlat +ellps=bessel +no_defs no_defs <> +# Yacare +<4309> +proj=longlat +ellps=intl +towgs84=-155,171,37,0,0,0,0 +no_defs no_defs <> +# Yoff +<4310> +proj=longlat +a=6378249.2 +b=6356515 +no_defs no_defs <> +# Zanderij +<4311> +proj=longlat +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +no_defs no_defs <> +# MGI +<4312> +proj=longlat +ellps=bessel +no_defs no_defs <> +# Belge 1972 +<4313> +proj=longlat +ellps=intl +no_defs no_defs <> +# DHDN +<4314> +proj=longlat +ellps=bessel +no_defs no_defs <> +# Conakry 1905 +<4315> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +no_defs no_defs <> +# Dealul Piscului 1933 +<4316> +proj=longlat +ellps=intl +towgs84=103.25,-100.4,-307.19,0,0,0,0 +no_defs no_defs <> +# Dealul Piscului 1970 +<4317> +proj=longlat +ellps=krass +no_defs no_defs <> +# NGN +<4318> +proj=longlat +ellps=WGS84 +no_defs no_defs <> +# KUDAMS +<4319> +proj=longlat +ellps=GRS80 +no_defs no_defs <> +# WGS 72 +<4322> +proj=longlat +ellps=WGS72 +no_defs no_defs <> +# WGS 72BE +<4324> +proj=longlat +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +no_defs no_defs <> +# WGS 84 +<4326> +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs no_defs <> +# Anguilla 1957 +<4600> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# Antigua 1943 +<4601> +proj=longlat +ellps=clrk80 +towgs84=-255,-15,71,0,0,0,0 +no_defs no_defs <> +# Dominica 1945 +<4602> +proj=longlat +ellps=clrk80 +towgs84=725,685,536,0,0,0,0 +no_defs no_defs <> +# Grenada 1953 +<4603> +proj=longlat +ellps=clrk80 +towgs84=72,213.7,93,0,0,0,0 +no_defs no_defs <> +# Montserrat 1958 +<4604> +proj=longlat +ellps=clrk80 +towgs84=174,359,365,0,0,0,0 +no_defs no_defs <> +# St. Kitts 1955 +<4605> +proj=longlat +ellps=clrk80 +towgs84=9,183,236,0,0,0,0 +no_defs no_defs <> +# St. Lucia 1955 +<4606> +proj=longlat +ellps=clrk80 +towgs84=-149,128,296,0,0,0,0 +no_defs no_defs <> +# St. Vincent 1945 +<4607> +proj=longlat +ellps=clrk80 +no_defs no_defs <> +# NAD27(76) +<4608> +proj=longlat +ellps=clrk66 +no_defs no_defs <> +# NAD27(CGQ77) +<4609> +proj=longlat +ellps=clrk66 +no_defs no_defs <> +# Xian 1980 +<4610> +proj=longlat +a=6378140 +b=6356755.288157528 +no_defs no_defs <> +# Hong Kong 1980 +<4611> +proj=longlat +ellps=intl +towgs84=-162.619,-276.959,-161.764,0.067753,-2.24365,-1.15883,-1.09425 +no_defs no_defs <> +# JGD2000 +<4612> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# Segara +<4613> +proj=longlat +ellps=bessel +towgs84=-404.78,685.68,45.47,0,0,0,0 +no_defs no_defs <> +# QND95 +<4614> +proj=longlat +ellps=intl +towgs84=-119.425,-303.659,-11.0006,1.1643,0.174458,1.09626,3.65706 +no_defs no_defs <> +# Porto Santo +<4615> +proj=longlat +ellps=intl +no_defs no_defs <> +# Selvagem Grande +<4616> +proj=longlat +ellps=intl +no_defs no_defs <> +# NAD83(CSRS) +<4617> +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs no_defs <> +# Bern 1898 (Bern) +<4801> +proj=longlat +ellps=bessel +pm=bern +no_defs no_defs <> +# Bogota 1975 (Bogota) +<4802> +proj=longlat +ellps=intl +pm=bogota +no_defs no_defs <> +# Lisbon (Lisbon) +<4803> +proj=longlat +ellps=intl +pm=lisbon +no_defs no_defs <> +# Makassar (Jakarta) +<4804> +proj=longlat +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +pm=jakarta +no_defs no_defs <> +# MGI (Ferro) +<4805> +proj=longlat +ellps=bessel +pm=ferro +no_defs no_defs <> +# Monte Mario (Rome) +<4806> +proj=longlat +ellps=intl +pm=rome +no_defs no_defs <> +# NTF (Paris) +<4807> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +no_defs no_defs <> +# Padang (Jakarta) +<4808> +proj=longlat +ellps=bessel +pm=jakarta +no_defs no_defs <> +# Belge 1950 (Brussels) +<4809> +proj=longlat +ellps=intl +pm=brussels +no_defs no_defs <> +# Tananarive (Paris) +<4810> +proj=longlat +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=paris +no_defs no_defs <> +# Voirol 1875 (Paris) +<4811> +proj=longlat +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +pm=paris +no_defs no_defs <> +# Batavia (Jakarta) +<4813> +proj=longlat +ellps=bessel +pm=jakarta +no_defs no_defs <> +# RT38 (Stockholm) +<4814> +proj=longlat +ellps=bessel +pm=stockholm +no_defs no_defs <> +# Greek (Athens) +<4815> +proj=longlat +ellps=bessel +pm=athens +no_defs no_defs <> +# Carthage (Paris) +<4816> +proj=longlat +a=6378249.2 +b=6356515 +pm=paris +no_defs no_defs <> +# NGO 1948 (Oslo) +<4817> +proj=longlat +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +no_defs no_defs <> +# S-JTSK (Ferro) +<4818> +proj=longlat +ellps=bessel +pm=ferro +no_defs no_defs <> +# Nord Sahara 1959 (Paris) +<4819> +proj=longlat +ellps=clrk80 +pm=paris +no_defs no_defs <> +# Segara (Jakarta) +<4820> +proj=longlat +ellps=bessel +pm=jakarta +no_defs no_defs <> +# ATF (Paris) +<4901> +proj=longlat +a=6376523 +b=6355862.933255573 +pm=paris +no_defs no_defs <> +# NDG (Paris) +<4902> +proj=longlat +a=6376523 +b=6355862.933255573 +pm=paris +no_defs no_defs <> +# Madrid 1870 (Madrid) +<4903> +proj=longlat +a=6378298.3 +b=6356657.142669562 +pm=madrid +no_defs no_defs <> +# Lisbon 1890 (Lisbon) +<4904> +proj=longlat +ellps=bessel +pm=lisbon +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 4 +<20004> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 5 +<20005> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 6 +<20006> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 7 +<20007> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 8 +<20008> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 9 +<20009> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 10 +<20010> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 11 +<20011> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 12 +<20012> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 13 +<20013> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 14 +<20014> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 15 +<20015> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 16 +<20016> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 17 +<20017> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 18 +<20018> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 19 +<20019> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 20 +<20020> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 21 +<20021> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 22 +<20022> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 23 +<20023> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 24 +<20024> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 25 +<20025> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 26 +<20026> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 27 +<20027> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 28 +<20028> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 29 +<20029> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 30 +<20030> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 31 +<20031> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger zone 32 +<20032> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 4N +<20064> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 5N +<20065> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 6N +<20066> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 7N +<20067> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 8N +<20068> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 9N +<20069> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 10N +<20070> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 11N +<20071> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 12N +<20072> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 13N +<20073> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 14N +<20074> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 15N +<20075> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 16N +<20076> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 17N +<20077> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 18N +<20078> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 19N +<20079> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 20N +<20080> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 21N +<20081> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 22N +<20082> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 23N +<20083> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 24N +<20084> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 25N +<20085> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 26N +<20086> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 27N +<20087> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 28N +<20088> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 29N +<20089> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 30N +<20090> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 31N +<20091> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1995 / Gauss-Kruger 32N +<20092> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Adindan / UTM zone 37N +<20137> +proj=utm +zone=37 +ellps=clrk80 +units=m +no_defs no_defs <> +# Adindan / UTM zone 38N +<20138> +proj=utm +zone=38 +ellps=clrk80 +units=m +no_defs no_defs <> +# AGD66 / AMG zone 48 +<20248> +proj=utm +zone=48 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD66 / AMG zone 49 +<20249> +proj=utm +zone=49 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD66 / AMG zone 50 +<20250> +proj=utm +zone=50 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD66 / AMG zone 51 +<20251> +proj=utm +zone=51 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD66 / AMG zone 52 +<20252> +proj=utm +zone=52 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD66 / AMG zone 53 +<20253> +proj=utm +zone=53 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD66 / AMG zone 54 +<20254> +proj=utm +zone=54 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD66 / AMG zone 55 +<20255> +proj=utm +zone=55 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD66 / AMG zone 56 +<20256> +proj=utm +zone=56 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD66 / AMG zone 57 +<20257> +proj=utm +zone=57 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD66 / AMG zone 58 +<20258> +proj=utm +zone=58 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD84 / AMG zone 48 +<20348> +proj=utm +zone=48 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD84 / AMG zone 49 +<20349> +proj=utm +zone=49 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD84 / AMG zone 50 +<20350> +proj=utm +zone=50 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD84 / AMG zone 51 +<20351> +proj=utm +zone=51 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD84 / AMG zone 52 +<20352> +proj=utm +zone=52 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD84 / AMG zone 53 +<20353> +proj=utm +zone=53 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD84 / AMG zone 54 +<20354> +proj=utm +zone=54 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD84 / AMG zone 55 +<20355> +proj=utm +zone=55 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD84 / AMG zone 56 +<20356> +proj=utm +zone=56 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD84 / AMG zone 57 +<20357> +proj=utm +zone=57 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# AGD84 / AMG zone 58 +<20358> +proj=utm +zone=58 +south +ellps=aust_SA +units=m +no_defs no_defs <> +# Ain el Abd / UTM zone 37N +<20437> +proj=utm +zone=37 +ellps=intl +units=m +no_defs no_defs <> +# Ain el Abd / UTM zone 38N +<20438> +proj=utm +zone=38 +ellps=intl +units=m +no_defs no_defs <> +# Ain el Abd / UTM zone 39N +<20439> +proj=utm +zone=39 +ellps=intl +units=m +no_defs no_defs <> +# Ain el Abd / Bahrain Grid +<20499> +proj=utm +zone=39 +ellps=intl +units=m +no_defs no_defs <> +# Afgooye / UTM zone 38N +<20538> +proj=utm +zone=38 +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +units=m +no_defs no_defs <> +# Afgooye / UTM zone 39N +<20539> +proj=utm +zone=39 +ellps=krass +towgs84=-43,-163,45,0,0,0,0 +units=m +no_defs no_defs <> +# Lisbon (Lisbon)/Portuguese National Grid +<20790> +proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1.000000 +x_0=200000 +y_0=300000 +ellps=intl +pm=lisbon +units=m +no_defs no_defs <> +# Lisbon (Lisbon)/Portuguese Grid +<20791> +proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1.000000 +x_0=0 +y_0=0 +ellps=intl +pm=lisbon +units=m +no_defs no_defs <> +# Aratu / UTM zone 22S +<20822> +proj=utm +zone=22 +south +ellps=intl +units=m +no_defs no_defs <> +# Aratu / UTM zone 23S +<20823> +proj=utm +zone=23 +south +ellps=intl +units=m +no_defs no_defs <> +# Aratu / UTM zone 24S +<20824> +proj=utm +zone=24 +south +ellps=intl +units=m +no_defs no_defs <> +# Arc 1950 / UTM zone 34S +<20934> +proj=utm +zone=34 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs no_defs <> +# Arc 1950 / UTM zone 35S +<20935> +proj=utm +zone=35 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs no_defs <> +# Arc 1950 / UTM zone 36S +<20936> +proj=utm +zone=36 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs no_defs <> +# Arc 1960 / UTM zone 35S +<21035> +proj=utm +zone=35 +south +ellps=clrk80 +units=m +no_defs no_defs <> +# Arc 1960 / UTM zone 36S +<21036> +proj=utm +zone=36 +south +ellps=clrk80 +units=m +no_defs no_defs <> +# Arc 1960 / UTM zone 37S +<21037> +proj=utm +zone=37 +south +ellps=clrk80 +units=m +no_defs no_defs <> +# Arc 1960 / UTM zone 35N +<21095> +proj=utm +zone=35 +ellps=clrk80 +units=m +no_defs no_defs <> +# Arc 1960 / UTM zone 36N +<21096> +proj=utm +zone=36 +ellps=clrk80 +units=m +no_defs no_defs <> +# Arc 1960 / UTM zone 37N +<21097> +proj=utm +zone=37 +ellps=clrk80 +units=m +no_defs no_defs <> +# Batavia (Jakarta) / NEIEZ +<21100> +proj=merc +lat_ts=0 +lon_0=216.8077194444444 +k=0.997000 +x_0=3900000 +y_0=900000 +ellps=bessel +pm=jakarta +units=m +no_defs no_defs <> +# Batavia / UTM zone 48S +<21148> +proj=utm +zone=48 +south +ellps=bessel +units=m +no_defs no_defs <> +# Batavia / UTM zone 49S +<21149> +proj=utm +zone=49 +south +ellps=bessel +units=m +no_defs no_defs <> +# Batavia / UTM zone 50S +<21150> +proj=utm +zone=50 +south +ellps=bessel +units=m +no_defs no_defs <> +# Barbados 1938 / British West Indies Grid +<21291> +proj=tmerc +lat_0=0 +lon_0=-62 +k=0.999500 +x_0=400000 +y_0=0 +ellps=clrk80 +units=m +no_defs no_defs <> +# Barbados 1938 / Barbados National Grid +<21292> +proj=tmerc +lat_0=13.17638888888889 +lon_0=-59.55972222222222 +k=0.999999 +x_0=30000 +y_0=75000 +ellps=clrk80 +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger zone 13 +<21413> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger zone 14 +<21414> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger zone 15 +<21415> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger zone 16 +<21416> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger zone 17 +<21417> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger zone 18 +<21418> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger zone 19 +<21419> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger zone 20 +<21420> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger zone 21 +<21421> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger zone 22 +<21422> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger zone 23 +<21423> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger CM 75E +<21453> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger CM 81E +<21454> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger CM 87E +<21455> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger CM 93E +<21456> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger CM 99E +<21457> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger CM 105E +<21458> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger CM 111E +<21459> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger CM 117E +<21460> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger CM 123E +<21461> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger CM 129E +<21462> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger CM 135E +<21463> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger 13N +<21473> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger 14N +<21474> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger 15N +<21475> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger 16N +<21476> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger 17N +<21477> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger 18N +<21478> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger 19N +<21479> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger 20N +<21480> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger 21N +<21481> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger 22N +<21482> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Beijing 1954 / Gauss-Kruger 23N +<21483> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Belge 1950 (Brussels) / Belge Lambert 50 +<21500> +proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666666 +lat_0=90 +lon_0=4.367975 +x_0=150000 +y_0=5400000 +ellps=intl +pm=brussels +units=m +no_defs no_defs <> +# Bern 1898 (Bern) / LV03C +<21780> +proj=omerc +lat_0=46.95240555555556 +lonc=7.439583333333333 +alpha=90 +k=1 +x_0=0 +y_0=0 +ellps=bessel +pm=bern +units=m +no_defs no_defs <> +# CH1903 / LV03 +<21781> +proj=omerc +lat_0=46.95240555555556 +lonc=7.439583333333333 +alpha=90 +k=1 +x_0=600000 +y_0=200000 +ellps=bessel +units=m +no_defs no_defs <> +# Bogota 1975 / UTM zone 17N +<21817> +proj=utm +zone=17 +ellps=intl +units=m +no_defs no_defs <> +# Bogota 1975 / UTM zone 18N +<21818> +proj=utm +zone=18 +ellps=intl +units=m +no_defs no_defs <> +# Bogota 1975 / Colombia West zone +<21891> +proj=tmerc +lat_0=4.599047222222222 +lon_0=-77.08091666666667 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=intl +units=m +no_defs no_defs <> +# Bogota 1975 / Colombia Bogota zone +<21892> +proj=tmerc +lat_0=4.599047222222222 +lon_0=-74.08091666666667 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=intl +units=m +no_defs no_defs <> +# Bogota 1975 / Colombia East Central zone +<21893> +proj=tmerc +lat_0=4.599047222222222 +lon_0=-71.08091666666667 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=intl +units=m +no_defs no_defs <> +# Bogota 1975 / Colombia East +<21894> +proj=tmerc +lat_0=4.599047222222222 +lon_0=-68.08091666666667 +k=1.000000 +x_0=1000000 +y_0=1000000 +ellps=intl +units=m +no_defs no_defs <> +# Camacupa / UTM zone 32S +<22032> +proj=utm +zone=32 +south +ellps=clrk80 +units=m +no_defs no_defs <> +# Camacupa / UTM zone 33S +<22033> +proj=utm +zone=33 +south +ellps=clrk80 +units=m +no_defs no_defs <> +# Camacupa / TM 11.30 SE +<22091> +proj=tmerc +lat_0=0 +lon_0=11.5 +k=0.999600 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs no_defs <> +# Camacupa / TM 12 SE +<22092> +proj=tmerc +lat_0=0 +lon_0=12 +k=0.999600 +x_0=500000 +y_0=10000000 +ellps=clrk80 +units=m +no_defs no_defs <> +# Campo Inchauspe / Argentina 1 +<22191> +proj=tmerc +lat_0=-90 +lon_0=-72 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# Campo Inchauspe / Argentina 2 +<22192> +proj=tmerc +lat_0=-90 +lon_0=-69 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# Campo Inchauspe / Argentina 3 +<22193> +proj=tmerc +lat_0=-90 +lon_0=-66 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# Campo Inchauspe / Argentina 4 +<22194> +proj=tmerc +lat_0=-90 +lon_0=-63 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# Campo Inchauspe / Argentina 5 +<22195> +proj=tmerc +lat_0=-90 +lon_0=-60 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# Campo Inchauspe / Argentina 6 +<22196> +proj=tmerc +lat_0=-90 +lon_0=-57 +k=1.000000 +x_0=6500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# Campo Inchauspe / Argentina 7 +<22197> +proj=tmerc +lat_0=-90 +lon_0=-54 +k=1.000000 +x_0=7500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# Cape / UTM zone 34S +<22234> +proj=utm +zone=34 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs no_defs <> +# Cape / UTM zone 35S +<22235> +proj=utm +zone=35 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs no_defs <> +# Cape / UTM zone 36S +<22236> +proj=utm +zone=36 +south +a=6378249.145 +b=6356514.966398753 +units=m +no_defs no_defs <> +# South African Coordinate System zone 15 +# South African Coordinate System zone 17 +# South African Coordinate System zone 19 +# South African Coordinate System zone 21 +# South African Coordinate System zone 23 +# South African Coordinate System zone 25 +# South African Coordinate System zone 27 +# South African Coordinate System zone 29 +# South African Coordinate System zone 31 +# South African Coordinate System zone 33 +# Carthage (Paris) / Tunisia Mining Grid +# Carthage / UTM zone 32N +<22332> +proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_defs no_defs <> +# Carthage / Nord Tunisie +<22391> +proj=lcc +lat_1=36 +lat_0=36 +lon_0=9.9 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs no_defs <> +# Carthage / Sud Tunisie +<22392> +proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=9.9 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs no_defs <> +# Corrego Alegre / UTM zone 23S +<22523> +proj=utm +zone=23 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs no_defs <> +# Corrego Alegre / UTM zone 24S +<22524> +proj=utm +zone=24 +south +ellps=intl +towgs84=-206,172,-6,0,0,0,0 +units=m +no_defs no_defs <> +# Deir ez Zor / Levant Zone +<22700> +proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0.9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs no_defs <> +# Deir ez Zor / Syria Lambert +<22770> +proj=lcc +lat_1=34.65 +lat_0=34.65 +lon_0=37.35 +k_0=0.9996256 +x_0=300000 +y_0=300000 +a=6378249.2 +b=6356515 +units=m +no_defs no_defs <> +# Deir ez Zor / Levant Stereographic +<22780> +proj=stere +lat_0=34.2 +lon_0=39.15 +k=0.999534 +x_0=0 +y_0=0 +a=6378249.2 +b=6356515 +units=m +no_defs no_defs <> +# Douala / UTM zone 32N +<22832> +proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_defs no_defs <> +# Egypt 1907 / Blue Belt +<22991> +proj=tmerc +lat_0=30 +lon_0=35 +k=1.000000 +x_0=300000 +y_0=1100000 +ellps=helmert +units=m +no_defs no_defs <> +# Egypt 1907 / Red Belt +<22992> +proj=tmerc +lat_0=30 +lon_0=31 +k=1.000000 +x_0=615000 +y_0=810000 +ellps=helmert +units=m +no_defs no_defs <> +# Egypt 1907 / Purple Belt +<22993> +proj=tmerc +lat_0=30 +lon_0=27 +k=1.000000 +x_0=700000 +y_0=200000 +ellps=helmert +units=m +no_defs no_defs <> +# Egypt 1907 / Extended Purple Belt +<22994> +proj=tmerc +lat_0=30 +lon_0=27 +k=1.000000 +x_0=700000 +y_0=1200000 +ellps=helmert +units=m +no_defs no_defs <> +# ED50 / UTM zone 28N +<23028> +proj=utm +zone=28 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / UTM zone 29N +<23029> +proj=utm +zone=29 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / UTM zone 30N +<23030> +proj=utm +zone=30 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / UTM zone 31N +<23031> +proj=utm +zone=31 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / UTM zone 32N +<23032> +proj=utm +zone=32 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / UTM zone 33N +<23033> +proj=utm +zone=33 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / UTM zone 34N +<23034> +proj=utm +zone=34 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / UTM zone 35N +<23035> +proj=utm +zone=35 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / UTM zone 36N +<23036> +proj=utm +zone=36 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / UTM zone 37N +<23037> +proj=utm +zone=37 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / UTM zone 38N +<23038> +proj=utm +zone=38 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / TM 0 N +<23090> +proj=tmerc +lat_0=0 +lon_0=0 +k=0.999600 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# ED50 / TM 5 NE +<23095> +proj=tmerc +lat_0=0 +lon_0=5 +k=0.999600 +x_0=500000 +y_0=0 +ellps=intl +units=m +no_defs no_defs <> +# Fahud / UTM zone 39N +<23239> +proj=utm +zone=39 +ellps=clrk80 +units=m +no_defs no_defs <> +# Fahud / UTM zone 40N +<23240> +proj=utm +zone=40 +ellps=clrk80 +units=m +no_defs no_defs <> +# Garoua / UTM zone 33N +<23433> +proj=utm +zone=33 +a=6378249.2 +b=6356515 +units=m +no_defs no_defs <> +# HD72 / EOV +<23700> +proj=omerc +lat_0=47.14439372222222 +lonc=19.04857177777778 +alpha=90 +k=0.99993 +x_0=650000 +y_0=200000 +ellps=GRS67 +units=m +no_defs no_defs <> +# ID74 / UTM zone 46N +<23846> +proj=utm +zone=46 +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# ID74 / UTM zone 47N +<23847> +proj=utm +zone=47 +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# ID74 / UTM zone 48N +<23848> +proj=utm +zone=48 +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# ID74 / UTM zone 49N +<23849> +proj=utm +zone=49 +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# ID74 / UTM zone 50N +<23850> +proj=utm +zone=50 +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# ID74 / UTM zone 51N +<23851> +proj=utm +zone=51 +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# ID74 / UTM zone 52N +<23852> +proj=utm +zone=52 +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# ID74 / UTM zone 53N +<23853> +proj=utm +zone=53 +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# ID74 / UTM zone 46S +<23886> +proj=utm +zone=46 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# ID74 / UTM zone 47S +<23887> +proj=utm +zone=47 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# ID74 / UTM zone 48S +<23888> +proj=utm +zone=48 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# ID74 / UTM zone 49S +<23889> +proj=utm +zone=49 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# ID74 / UTM zone 50S +<23890> +proj=utm +zone=50 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# ID74 / UTM zone 51S +<23891> +proj=utm +zone=51 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# ID74 / UTM zone 52S +<23892> +proj=utm +zone=52 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# ID74 / UTM zone 53S +<23893> +proj=utm +zone=53 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# ID74 / UTM zone 54S +<23894> +proj=utm +zone=54 +south +a=6378160 +b=6356774.50408554 +units=m +no_defs no_defs <> +# Indian 1954 / UTM zone 46N +<23946> +proj=utm +zone=46 +a=6377276.345 +b=6356075.413140239 +towgs84=217,823,299,0,0,0,0 +units=m +no_defs no_defs <> +# Indian 1954 / UTM zone 47N +<23947> +proj=utm +zone=47 +a=6377276.345 +b=6356075.413140239 +towgs84=217,823,299,0,0,0,0 +units=m +no_defs no_defs <> +# Indian 1954 / UTM zone 48N +<23948> +proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +towgs84=217,823,299,0,0,0,0 +units=m +no_defs no_defs <> +# Indian 1975 / UTM zone 47N +<24047> +proj=utm +zone=47 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs no_defs <> +# Indian 1975 / UTM zone 48N +<24048> +proj=utm +zone=48 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs no_defs <> +# Jamaica 1875 / Jamaica (Old Grid) +<24100> +proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=167638.49575 +y_0=121918.906 +ellps=clrk80 +to_meter=0.304797265 +no_defs no_defs <> +# JAD69 / Jamaica National Grid +<24200> +proj=lcc +lat_1=18 +lat_0=18 +lon_0=-77 +k_0=1 +x_0=250000 +y_0=150000 +ellps=clrk66 +units=m +no_defs no_defs <> +# Kalianpur 1937 / UTM zone 45N +<24305> +proj=utm +zone=45 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs no_defs <> +# Kalianpur 1937 / UTM zone 46N +<24306> +proj=utm +zone=46 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs no_defs <> +# Kalianpur 1962 / UTM zone 41N +<24311> +proj=utm +zone=41 +a=6377301.243 +b=6356100.230165385 +towgs84=283,682,231,0,0,0,0 +units=m +no_defs no_defs <> +# Kalianpur 1962 / UTM zone 42N +<24312> +proj=utm +zone=42 +a=6377301.243 +b=6356100.230165385 +towgs84=283,682,231,0,0,0,0 +units=m +no_defs no_defs <> +# Kalianpur 1962 / UTM zone 43N +<24313> +proj=utm +zone=43 +a=6377301.243 +b=6356100.230165385 +towgs84=283,682,231,0,0,0,0 +units=m +no_defs no_defs <> +# Kalianpur 1975 / UTM zone 42N +<24342> +proj=utm +zone=42 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs no_defs <> +# Kalianpur 1975 / UTM zone 43N +<24343> +proj=utm +zone=43 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs no_defs <> +# Kalianpur 1975 / UTM zone 44N +<24344> +proj=utm +zone=44 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs no_defs <> +# Kalianpur 1975 / UTM zone 45N +<24345> +proj=utm +zone=45 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs no_defs <> +# Kalianpur 1975 / UTM zone 46N +<24346> +proj=utm +zone=46 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs no_defs <> +# Kalianpur 1975 / UTM zone 47N +<24347> +proj=utm +zone=47 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs no_defs <> +# Kalianpur 1880 / India zone 0 +<24370> +proj=lcc +lat_1=39.5 +lat_0=39.5 +lon_0=68 +k_0=0.99846154 +x_0=2153865.73916853 +y_0=2368292.194628102 +a=6377299.36559538 +b=6356098.357204817 +to_meter=0.9143985307444408 +no_defs no_defs <> +# Kalianpur 1880 / India zone I +<24371> +proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.357204817 +to_meter=0.9143985307444408 +no_defs no_defs <> +# Kalianpur 1880 / India zone IIa +<24372> +proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.357204817 +to_meter=0.9143985307444408 +no_defs no_defs <> +# Kalianpur 1880 / India zone III +<24373> +proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.357204817 +to_meter=0.9143985307444408 +no_defs no_defs <> +# Kalianpur 1880 / India zone IV +<24374> +proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.357204817 +to_meter=0.9143985307444408 +no_defs no_defs <> +# Kalianpur 1937 / India zone IIb +<24375> +proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 +x_0=2743185.69 +y_0=914395.23 +a=6377276.345 +b=6356075.413140239 +units=m +no_defs no_defs <> +# Kalianpur 1962 / India zone I +<24376> +proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.230165385 +towgs84=283,682,231,0,0,0,0 +units=m +no_defs no_defs <> +# Kalianpur 1962 / India zone IIa +<24377> +proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743196.4 +y_0=914398.8 +a=6377301.243 +b=6356100.230165385 +towgs84=283,682,231,0,0,0,0 +units=m +no_defs no_defs <> +# Kalianpur 1975 / India zone I +<24378> +proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=68 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs no_defs <> +# Kalianpur 1975 / India zone IIa +<24379> +proj=lcc +lat_1=26 +lat_0=26 +lon_0=74 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs no_defs <> +# Kalianpur 1975 / India zone IIb +<24380> +proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs no_defs <> +# Kalianpur 1975 / India zone III +<24381> +proj=lcc +lat_1=19 +lat_0=19 +lon_0=80 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs no_defs <> +# Kalianpur 1880 / India zone IIb +<24382> +proj=lcc +lat_1=26 +lat_0=26 +lon_0=90 +k_0=0.99878641 +x_0=2743195.592233322 +y_0=914398.5307444407 +a=6377299.36559538 +b=6356098.357204817 +to_meter=0.9143985307444408 +no_defs no_defs <> +# Kalianpur 1975 / India zone IV +<24383> +proj=lcc +lat_1=12 +lat_0=12 +lon_0=80 +k_0=0.99878641 +x_0=2743195.5 +y_0=914398.5 +a=6377299.151 +b=6356098.145120132 +towgs84=295,736,257,0,0,0,0 +units=m +no_defs no_defs <> +# Kertau / Singapore Grid +<24500> +proj=cass +lat_0=1.287646666666667 +lon_0=103.8530022222222 +x_0=30000 +y_0=30000 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs no_defs <> +# Kertau / UTM zone 47N +<24547> +proj=utm +zone=47 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs no_defs <> +# Kertau / UTM zone 48N +<24548> +proj=utm +zone=48 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +units=m +no_defs no_defs <> +# Kertau / R.S.O. Malaya (ch) +<24571> +proj=omerc +lat_0=4 +lonc=102.25 +alpha=323.0257905 +k=0.99984 +x_0=804671.2997750348 +y_0=0 +a=6377304.063 +b=6356103.038993155 +towgs84=-11,851,5,0,0,0,0 +to_meter=20.11678249437587 +no_defs no_defs <> +# KOC Lambert +<24600> +proj=lcc +lat_1=32.5 +lat_0=32.5 +lon_0=45 +k_0=0.9987864078000001 +x_0=1500000 +y_0=1166200 +ellps=clrk80 +units=m +no_defs no_defs <> +# La Canoa / UTM zone 18N +<24718> +proj=utm +zone=18 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defs no_defs <> +# La Canoa / UTM zone 19N +<24719> +proj=utm +zone=19 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defs no_defs <> +# La Canoa / UTM zone 20N +<24720> +proj=utm +zone=20 +ellps=intl +towgs84=-273.5,110.6,-357.9,0,0,0,0 +units=m +no_defs no_defs <> +# PSAD56 / UTM zone 18N +<24818> +proj=utm +zone=18 +ellps=intl +units=m +no_defs no_defs <> +# PSAD56 / UTM zone 19N +<24819> +proj=utm +zone=19 +ellps=intl +units=m +no_defs no_defs <> +# PSAD56 / UTM zone 20N +<24820> +proj=utm +zone=20 +ellps=intl +units=m +no_defs no_defs <> +# PSAD56 / UTM zone 21N +<24821> +proj=utm +zone=21 +ellps=intl +units=m +no_defs no_defs <> +# PSAD56 / UTM zone 17S +<24877> +proj=utm +zone=17 +south +ellps=intl +units=m +no_defs no_defs <> +# PSAD56 / UTM zone 18S +<24878> +proj=utm +zone=18 +south +ellps=intl +units=m +no_defs no_defs <> +# PSAD56 / UTM zone 19S +<24879> +proj=utm +zone=19 +south +ellps=intl +units=m +no_defs no_defs <> +# PSAD56 / UTM zone 20S +<24880> +proj=utm +zone=20 +south +ellps=intl +units=m +no_defs no_defs <> +# PSAD56 / UTM zone 22S +<24882> +proj=utm +zone=22 +south +ellps=intl +units=m +no_defs no_defs <> +# PSAD56 / Peru west zone +<24891> +proj=tmerc +lat_0=-6 +lon_0=-80.5 +k=0.999830 +x_0=222000 +y_0=1426834.743 +ellps=intl +units=m +no_defs no_defs <> +# PSAD56 / Peru central zone +<24892> +proj=tmerc +lat_0=-9.5 +lon_0=-76 +k=0.999330 +x_0=720000 +y_0=1039979.159 +ellps=intl +units=m +no_defs no_defs <> +# PSAD56 / Peru east zone +<24893> +proj=tmerc +lat_0=-9.5 +lon_0=-70.5 +k=0.999530 +x_0=1324000 +y_0=1040084.558 +ellps=intl +units=m +no_defs no_defs <> +# Leigon / Ghana Metre Grid +<25000> +proj=tmerc +lat_0=4.666666666666667 +lon_0=-1 +k=0.999750 +x_0=274319.51 +y_0=0 +ellps=clrk80 +towgs84=-130,29,364,0,0,0,0 +units=m +no_defs no_defs <> +# Lome / UTM zone 31N +<25231> +proj=utm +zone=31 +a=6378249.2 +b=6356515 +units=m +no_defs no_defs <> +# Luzon 1911 / Philippines zone I +<25391> +proj=tmerc +lat_0=0 +lon_0=117 +k=0.999950 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# Luzon 1911 / Philippines zone II +<25392> +proj=tmerc +lat_0=0 +lon_0=119 +k=0.999950 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# Luzon 1911 / Philippines zone III +<25393> +proj=tmerc +lat_0=0 +lon_0=121 +k=0.999950 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# Luzon 1911 / Philippines zone IV +<25394> +proj=tmerc +lat_0=0 +lon_0=123 +k=0.999950 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# Luzon 1911 / Philippines zone V +<25395> +proj=tmerc +lat_0=0 +lon_0=125 +k=0.999950 +x_0=500000 +y_0=0 +ellps=clrk66 +units=m +no_defs no_defs <> +# Makassar (Jakarta) / NEIEZ +<25700> +proj=merc +lat_ts=0 +lon_0=216.8077194444444 +k=0.997000 +x_0=3900000 +y_0=900000 +ellps=bessel +towgs84=-587.8,519.75,145.76,0,0,0,0 +pm=jakarta +units=m +no_defs no_defs <> +# ETRS89 / UTM zone 28N +<25828> +proj=utm +zone=28 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / UTM zone 29N +<25829> +proj=utm +zone=29 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / UTM zone 30N +<25830> +proj=utm +zone=30 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / UTM zone 31N +<25831> +proj=utm +zone=31 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / UTM zone 32N +<25832> +proj=utm +zone=32 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / UTM zone 33N +<25833> +proj=utm +zone=33 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / UTM zone 34N +<25834> +proj=utm +zone=34 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / UTM zone 35N +<25835> +proj=utm +zone=35 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / UTM zone 36N +<25836> +proj=utm +zone=36 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / UTM zone 37N +<25837> +proj=utm +zone=37 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / UTM zone 38N +<25838> +proj=utm +zone=38 +ellps=GRS80 +units=m +no_defs no_defs <> +# ETRS89 / TM Baltic93 +<25884> +proj=tmerc +lat_0=0 +lon_0=24 +k=0.999600 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs no_defs <> +# Malongo 1987 / UTM zone 32S +<25932> +proj=utm +zone=32 +south +ellps=intl +units=m +no_defs no_defs <> +# Merchich / Nord Maroc +<26191> +proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=-5.4 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs no_defs <> +# Merchich / Sud Maroc +<26192> +proj=lcc +lat_1=29.7 +lat_0=29.7 +lon_0=-5.4 +k_0=0.9996155960000001 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs no_defs <> +# Merchich / Sahara +<26193> +proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.9996 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356515 +towgs84=31,146,47,0,0,0,0 +units=m +no_defs no_defs <> +# Massawa / UTM zone 37N +<26237> +proj=utm +zone=37 +ellps=bessel +towgs84=639,405,60,0,0,0,0 +units=m +no_defs no_defs <> +# Minna / UTM zone 31N +<26331> +proj=utm +zone=31 +ellps=clrk80 +units=m +no_defs no_defs <> +# Minna / UTM zone 32N +<26332> +proj=utm +zone=32 +ellps=clrk80 +units=m +no_defs no_defs <> +# Minna / Nigeria West Belt +<26391> +proj=tmerc +lat_0=4 +lon_0=4.5 +k=0.999750 +x_0=230738.26 +y_0=0 +ellps=clrk80 +units=m +no_defs no_defs <> +# Minna / Nigeria Mid Belt +<26392> +proj=tmerc +lat_0=4 +lon_0=8.5 +k=0.999750 +x_0=670553.98 +y_0=0 +ellps=clrk80 +units=m +no_defs no_defs <> +# Minna / Nigeria East Belt +<26393> +proj=tmerc +lat_0=4 +lon_0=12.5 +k=0.999750 +x_0=1110369.7 +y_0=0 +ellps=clrk80 +units=m +no_defs no_defs <> +# Mhast / UTM zone 32S +<26432> +proj=utm +zone=32 +south +ellps=intl +towgs84=-252.95,-4.11,-96.38,0,0,0,0 +units=m +no_defs no_defs <> +# Monte Mario (Rome) / Italy zone 1 +<26591> +proj=tmerc +lat_0=0 +lon_0=21.45233333333333 +k=0.999600 +x_0=1500000 +y_0=0 +ellps=intl +pm=rome +units=m +no_defs no_defs <> +# Monte Mario (Rome) / Italy zone 2 +<26592> +proj=tmerc +lat_0=0 +lon_0=27.45233333333333 +k=0.999600 +x_0=2520000 +y_0=0 +ellps=intl +pm=rome +units=m +no_defs no_defs <> +# M'poraloko / UTM zone 32N +<26632> +proj=utm +zone=32 +a=6378249.2 +b=6356515 +units=m +no_defs no_defs <> +# M'poraloko / UTM zone 32S +<26692> +proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 3N +<26703> +proj=utm +zone=3 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 4N +<26704> +proj=utm +zone=4 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 5N +<26705> +proj=utm +zone=5 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 6N +<26706> +proj=utm +zone=6 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 7N +<26707> +proj=utm +zone=7 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 8N +<26708> +proj=utm +zone=8 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 9N +<26709> +proj=utm +zone=9 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 10N +<26710> +proj=utm +zone=10 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 11N +<26711> +proj=utm +zone=11 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 12N +<26712> +proj=utm +zone=12 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 13N +<26713> +proj=utm +zone=13 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 14N +<26714> +proj=utm +zone=14 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 15N +<26715> +proj=utm +zone=15 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 16N +<26716> +proj=utm +zone=16 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 17N +<26717> +proj=utm +zone=17 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 18N +<26718> +proj=utm +zone=18 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 19N +<26719> +proj=utm +zone=19 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 20N +<26720> +proj=utm +zone=20 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 21N +<26721> +proj=utm +zone=21 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / UTM zone 22N +<26722> +proj=utm +zone=22 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / Alabama East +<26729> +proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.999960 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Alabama West +<26730> +proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Alaska zone 1 +<26731> +proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=323.1301023611111 +k=0.9999 +x_0=5000000.001016002 +y_0=-5000000.001016002 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Alaska zone 2 +<26732> +proj=tmerc +lat_0=54 +lon_0=-142 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Alaska zone 3 +<26733> +proj=tmerc +lat_0=54 +lon_0=-146 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Alaska zone 4 +<26734> +proj=tmerc +lat_0=54 +lon_0=-150 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Alaska zone 5 +<26735> +proj=tmerc +lat_0=54 +lon_0=-154 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Alaska zone 6 +<26736> +proj=tmerc +lat_0=54 +lon_0=-158 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Alaska zone 7 +<26737> +proj=tmerc +lat_0=54 +lon_0=-162 +k=0.999900 +x_0=213360.4267208534 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Alaska zone 8 +<26738> +proj=tmerc +lat_0=54 +lon_0=-166 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Alaska zone 9 +<26739> +proj=tmerc +lat_0=54 +lon_0=-170 +k=0.999900 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Alaska zone 10 +<26740> +proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333334 +lat_0=51 +lon_0=-176 +x_0=914401.8288036576 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / California zone I +<26741> +proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / California zone II +<26742> +proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / California zone III +<26743> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / California zone IV +<26744> +proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / California zone V +<26745> +proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / California zone VI +<26746> +proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / California zone VII +<26747> +proj=lcc +lat_1=34.41666666666666 +lat_2=33.86666666666667 +lat_0=34.13333333333333 +lon_0=-118.3333333333333 +x_0=1276106.450596901 +y_0=127079.524511049 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Arizona East +<26748> +proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Arizona Central +<26749> +proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Arizona West +<26750> +proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Arkansas North +<26751> +proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Arkansas South +<26752> +proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Colorado North +<26753> +proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Colorado Central +<26754> +proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Colorado South +<26755> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Connecticut +<26756> +proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Delaware +<26757> +proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Florida East +<26758> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Florida West +<26759> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Florida North +<26760> +proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Georgia East +<26766> +proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Georgia West +<26767> +proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Idaho East +<26768> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.999947 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Idaho Central +<26769> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.999947 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Idaho West +<26770> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Illinois East +<26771> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.999975 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Illinois West +<26772> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Indiana East +<26773> +proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999967 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Indiana West +<26774> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999967 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Iowa North +<26775> +proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Iowa South +<26776> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Kansas North +<26777> +proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Kansas South +<26778> +proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Kentucky North +<26779> +proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Kentucky South +<26780> +proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Louisiana North +<26781> +proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666666 +lat_0=30.66666666666667 +lon_0=-92.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Louisiana South +<26782> +proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.66666666666667 +lon_0=-91.33333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Maine East +<26783> +proj=tmerc +lat_0=43.83333333333334 +lon_0=-68.5 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Maine West +<26784> +proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999967 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Maryland +<26785> +proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.83333333333334 +lon_0=-77 +x_0=243840.4876809754 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Massachusetts Mainland +<26786> +proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333333 +lat_0=41 +lon_0=-71.5 +x_0=182880.3657607315 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Massachusetts Island +<26787> +proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333333 +lat_0=41 +lon_0=-70.5 +x_0=60960.12192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Minnesota North +<26791> +proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Minnesota Central +<26792> +proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=45 +lon_0=-94.25 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Minnesota South +<26793> +proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666667 +lat_0=43 +lon_0=-94 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Mississippi East +<26794> +proj=tmerc +lat_0=29.66666666666667 +lon_0=-88.83333333333333 +k=0.999960 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Mississippi West +<26795> +proj=tmerc +lat_0=30.5 +lon_0=-90.33333333333333 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Missouri East +<26796> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Missouri Central +<26797> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Missouri West +<26798> +proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD Michigan / Michigan East +<26801> +proj=tmerc +lat_0=41.5 +lon_0=-83.66666666666667 +k=0.999943 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD Michigan / Michigan Old Central +<26802> +proj=tmerc +lat_0=41.5 +lon_0=-85.75 +k=0.999909 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD Michigan / Michigan West +<26803> +proj=tmerc +lat_0=41.5 +lon_0=-88.75 +k=0.999909 +x_0=152400.3048006096 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD Michigan / Michigan North +<26811> +proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD Michigan / Michigan Central +<26812> +proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43.31666666666667 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD Michigan / Michigan South +<26813> +proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41.5 +lon_0=-84.33333333333333 +x_0=609601.2192024384 +y_0=0 +a=6378450.047548896 +b=6356826.621488444 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD83 / UTM zone 3N +<26903> +proj=utm +zone=3 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 4N +<26904> +proj=utm +zone=4 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 5N +<26905> +proj=utm +zone=5 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 6N +<26906> +proj=utm +zone=6 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 7N +<26907> +proj=utm +zone=7 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 8N +<26908> +proj=utm +zone=8 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 9N +<26909> +proj=utm +zone=9 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 10N +<26910> +proj=utm +zone=10 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 11N +<26911> +proj=utm +zone=11 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 12N +<26912> +proj=utm +zone=12 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 13N +<26913> +proj=utm +zone=13 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 14N +<26914> +proj=utm +zone=14 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 15N +<26915> +proj=utm +zone=15 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 16N +<26916> +proj=utm +zone=16 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 17N +<26917> +proj=utm +zone=17 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 18N +<26918> +proj=utm +zone=18 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 19N +<26919> +proj=utm +zone=19 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 20N +<26920> +proj=utm +zone=20 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 21N +<26921> +proj=utm +zone=21 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 22N +<26922> +proj=utm +zone=22 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / UTM zone 23N +<26923> +proj=utm +zone=23 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Alabama East +<26929> +proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.999960 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Alabama West +<26930> +proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Alaska zone 1 +<26931> +proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=323.1301023611111 +k=0.9999 +x_0=5000000 +y_0=-5000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Alaska zone 2 +<26932> +proj=tmerc +lat_0=54 +lon_0=-142 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Alaska zone 3 +<26933> +proj=tmerc +lat_0=54 +lon_0=-146 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Alaska zone 4 +<26934> +proj=tmerc +lat_0=54 +lon_0=-150 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Alaska zone 5 +<26935> +proj=tmerc +lat_0=54 +lon_0=-154 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Alaska zone 6 +<26936> +proj=tmerc +lat_0=54 +lon_0=-158 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Alaska zone 7 +<26937> +proj=tmerc +lat_0=54 +lon_0=-162 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Alaska zone 8 +<26938> +proj=tmerc +lat_0=54 +lon_0=-166 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Alaska zone 9 +<26939> +proj=tmerc +lat_0=54 +lon_0=-170 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Alaska zone 10 +<26940> +proj=lcc +lat_1=53.83333333333334 +lat_2=51.83333333333334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / California zone 1 +<26941> +proj=lcc +lat_1=41.66666666666666 +lat_2=40 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / California zone 2 +<26942> +proj=lcc +lat_1=39.83333333333334 +lat_2=38.33333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / California zone 3 +<26943> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.06666666666667 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / California zone 4 +<26944> +proj=lcc +lat_1=37.25 +lat_2=36 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / California zone 5 +<26945> +proj=lcc +lat_1=35.46666666666667 +lat_2=34.03333333333333 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / California zone 6 +<26946> +proj=lcc +lat_1=33.88333333333333 +lat_2=32.78333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Arizona East +<26948> +proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Arizona Central +<26949> +proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Arizona West +<26950> +proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Arkansas North +<26951> +proj=lcc +lat_1=36.23333333333333 +lat_2=34.93333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Arkansas South +<26952> +proj=lcc +lat_1=34.76666666666667 +lat_2=33.3 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Colorado North +<26953> +proj=lcc +lat_1=40.78333333333333 +lat_2=39.71666666666667 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Colorado Central +<26954> +proj=lcc +lat_1=39.75 +lat_2=38.45 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Colorado South +<26955> +proj=lcc +lat_1=38.43333333333333 +lat_2=37.23333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Connecticut +<26956> +proj=lcc +lat_1=41.86666666666667 +lat_2=41.2 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Delaware +<26957> +proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Florida East +<26958> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Florida West +<26959> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Florida North +<26960> +proj=lcc +lat_1=30.75 +lat_2=29.58333333333333 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Hawaii zone 1 +<26961> +proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999967 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Hawaii zone 2 +<26962> +proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999967 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Hawaii zone 3 +<26963> +proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.999990 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Hawaii zone 4 +<26964> +proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.999990 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Hawaii zone 5 +<26965> +proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Georgia East +<26966> +proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999900 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Georgia West +<26967> +proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999900 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Idaho East +<26968> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.999947 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Idaho Central +<26969> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.999947 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Idaho West +<26970> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933 +x_0=800000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Illinois East +<26971> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.999975 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Illinois West +<26972> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Indiana East +<26973> +proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999967 +x_0=100000 +y_0=250000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Indiana West +<26974> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999967 +x_0=900000 +y_0=250000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Iowa North +<26975> +proj=lcc +lat_1=43.26666666666667 +lat_2=42.06666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Iowa South +<26976> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.61666666666667 +lat_0=40 +lon_0=-93.5 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Kansas North +<26977> +proj=lcc +lat_1=39.78333333333333 +lat_2=38.71666666666667 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Kansas South +<26978> +proj=lcc +lat_1=38.56666666666667 +lat_2=37.26666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Kentucky North +<26979> +proj=lcc +lat_1=37.96666666666667 +lat_2=37.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Kentucky South +<26980> +proj=lcc +lat_1=37.93333333333333 +lat_2=36.73333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Louisiana North +<26981> +proj=lcc +lat_1=32.66666666666666 +lat_2=31.16666666666667 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Louisiana South +<26982> +proj=lcc +lat_1=30.7 +lat_2=29.3 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Maine East +<26983> +proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.999900 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Maine West +<26984> +proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999967 +x_0=900000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Maryland +<26985> +proj=lcc +lat_1=39.45 +lat_2=38.3 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Massachusetts Mainland +<26986> +proj=lcc +lat_1=42.68333333333333 +lat_2=41.71666666666667 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Massachusetts Island +<26987> +proj=lcc +lat_1=41.48333333333333 +lat_2=41.28333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Michigan North +<26988> +proj=lcc +lat_1=47.08333333333334 +lat_2=45.48333333333333 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Michigan Central +<26989> +proj=lcc +lat_1=45.7 +lat_2=44.18333333333333 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Michigan South +<26990> +proj=lcc +lat_1=43.66666666666666 +lat_2=42.1 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Minnesota North +<26991> +proj=lcc +lat_1=48.63333333333333 +lat_2=47.03333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Minnesota Central +<26992> +proj=lcc +lat_1=47.05 +lat_2=45.61666666666667 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Minnesota South +<26993> +proj=lcc +lat_1=45.21666666666667 +lat_2=43.78333333333333 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Mississippi East +<26994> +proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.999950 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Mississippi West +<26995> +proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.999950 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Missouri East +<26996> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Missouri Central +<26997> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Missouri West +<26998> +proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941 +x_0=850000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# Nahrwan 1967 / UTM zone 38N +<27038> +proj=utm +zone=38 +ellps=clrk80 +units=m +no_defs no_defs <> +# Nahrwan 1967 / UTM zone 39N +<27039> +proj=utm +zone=39 +ellps=clrk80 +units=m +no_defs no_defs <> +# Nahrwan 1967 / UTM zone 40N +<27040> +proj=utm +zone=40 +ellps=clrk80 +units=m +no_defs no_defs <> +# Naparima 1972 / UTM zone 20N +<27120> +proj=utm +zone=20 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / New Zealand Map Grid +<27200> +proj=nzmg +lat_0=-41 +lon_0=173 +x_0=2510000 +y_0=6023150 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Mount Eden Circuit +<27205> +proj=tmerc +lat_0=-36.87986527777778 +lon_0=174.7643393611111 +k=0.999900 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Bay of Plenty Circuit +<27206> +proj=tmerc +lat_0=-37.76124980555556 +lon_0=176.46619725 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Poverty Bay Circuit +<27207> +proj=tmerc +lat_0=-38.62470277777778 +lon_0=177.8856362777778 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Hawkes Bay Circuit +<27208> +proj=tmerc +lat_0=-39.65092930555556 +lon_0=176.6736805277778 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Taranaki Circuit +<27209> +proj=tmerc +lat_0=-39.13575830555556 +lon_0=174.22801175 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Tuhirangi Circuit +<27210> +proj=tmerc +lat_0=-39.51247038888889 +lon_0=175.6400368055556 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Wanganui Circuit +<27211> +proj=tmerc +lat_0=-40.24194713888889 +lon_0=175.4880996111111 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Wairarapa Circuit +<27212> +proj=tmerc +lat_0=-40.92553263888889 +lon_0=175.6473496666667 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Wellington Circuit +<27213> +proj=tmerc +lat_0=-41.30131963888888 +lon_0=174.7766231111111 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Collingwood Circuit +<27214> +proj=tmerc +lat_0=-40.71475905555556 +lon_0=172.6720465 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Nelson Circuit +<27215> +proj=tmerc +lat_0=-41.27454472222222 +lon_0=173.2993168055555 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Karamea Circuit +<27216> +proj=tmerc +lat_0=-41.28991152777778 +lon_0=172.1090281944444 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Buller Circuit +<27217> +proj=tmerc +lat_0=-41.81080286111111 +lon_0=171.5812600555556 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Grey Circuit +<27218> +proj=tmerc +lat_0=-42.33369427777778 +lon_0=171.5497713055556 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Amuri Circuit +<27219> +proj=tmerc +lat_0=-42.68911658333333 +lon_0=173.0101333888889 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Marlborough Circuit +<27220> +proj=tmerc +lat_0=-41.54448666666666 +lon_0=173.8020741111111 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Hokitika Circuit +<27221> +proj=tmerc +lat_0=-42.88632236111111 +lon_0=170.9799935 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Okarito Circuit +<27222> +proj=tmerc +lat_0=-43.11012813888889 +lon_0=170.2609258333333 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Jacksons Bay Circuit +<27223> +proj=tmerc +lat_0=-43.97780288888889 +lon_0=168.606267 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Mount Pleasant Circuit +<27224> +proj=tmerc +lat_0=-43.59063758333333 +lon_0=172.7271935833333 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Gawler Circuit +<27225> +proj=tmerc +lat_0=-43.74871155555556 +lon_0=171.3607484722222 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Timaru Circuit +<27226> +proj=tmerc +lat_0=-44.40222036111111 +lon_0=171.0572508333333 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Lindis Peak Circuit +<27227> +proj=tmerc +lat_0=-44.73526797222222 +lon_0=169.4677550833333 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Mount Nicholas Circuit +<27228> +proj=tmerc +lat_0=-45.13290258333333 +lon_0=168.3986411944444 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Mount York Circuit +<27229> +proj=tmerc +lat_0=-45.56372616666666 +lon_0=167.7388617777778 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Observation Point Circuit +<27230> +proj=tmerc +lat_0=-45.81619661111111 +lon_0=170.6285951666667 +k=1.000000 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / North Taieri Circuit +<27231> +proj=tmerc +lat_0=-45.86151336111111 +lon_0=170.2825891111111 +k=0.999960 +x_0=300000 +y_0=700000 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / Bluff Circuit +<27232> +proj=tmerc +lat_0=-46.60000961111111 +lon_0=168.342872 +k=1.000000 +x_0=300002.66 +y_0=699999.58 +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / UTM zone 58S +<27258> +proj=utm +zone=58 +south +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / UTM zone 59S +<27259> +proj=utm +zone=59 +south +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / UTM zone 60S +<27260> +proj=utm +zone=60 +south +ellps=intl +units=m +no_defs no_defs <> +# NZGD49 / North Island Grid +<27291> +proj=tmerc +lat_0=-39 +lon_0=175.5 +k=1.000000 +x_0=274319.5243848086 +y_0=365759.3658464114 +ellps=intl +to_meter=0.9143984146160287 +no_defs no_defs <> +# NZGD49 / South Island Grid +<27292> +proj=tmerc +lat_0=-44 +lon_0=171.5 +k=1.000000 +x_0=457199.2073080143 +y_0=457199.2073080143 +ellps=intl +to_meter=0.9143984146160287 +no_defs no_defs <> +# NGO 1948 (Oslo) / NGO zone I +<27391> +proj=tmerc +lat_0=58 +lon_0=6.056250000000003 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs no_defs <> +# NGO 1948 (Oslo) / NGO zone II +<27392> +proj=tmerc +lat_0=58 +lon_0=8.389583333333336 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs no_defs <> +# NGO 1948 (Oslo) / NGO zone III +<27393> +proj=tmerc +lat_0=58 +lon_0=10.72291666666667 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs no_defs <> +# NGO 1948 (Oslo) / NGO zone IV +<27394> +proj=tmerc +lat_0=58 +lon_0=13.22291666666667 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs no_defs <> +# NGO 1948 (Oslo) / NGO zone V +<27395> +proj=tmerc +lat_0=58 +lon_0=16.88958333333334 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs no_defs <> +# NGO 1948 (Oslo) / NGO zone VI +<27396> +proj=tmerc +lat_0=58 +lon_0=20.88958333333333 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs no_defs <> +# NGO 1948 (Oslo) / NGO zone VII +<27397> +proj=tmerc +lat_0=58 +lon_0=24.88958333333333 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs no_defs <> +# NGO 1948 (Oslo) / NGO zone VIII +<27398> +proj=tmerc +lat_0=58 +lon_0=29.05625 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +towgs84=278.3,93,474.5,7.889,0.05,-6.61,6.21 +pm=oslo +units=m +no_defs no_defs <> +# Datum 73 / UTM zone 29N +<27429> +proj=utm +zone=29 +ellps=intl +units=m +no_defs no_defs <> +# Datum 73 / Modified Portuguese Grid +<27492> +proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1.000000 +x_0=180.598 +y_0=-86.98999999999999 +ellps=intl +units=m +no_defs no_defs <> +# ATF (Paris) / Nord de Guerre +<27500> +proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=7.737229170000001 +k_0=0.99950908 +x_0=500000 +y_0=300000 +a=6376523 +b=6355862.933255573 +pm=paris +units=m +no_defs no_defs <> +# NTF (Paris) / Lambert Nord France +<27561> +proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=2.33722917 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# NTF (Paris) / Lambert Centre France +<27562> +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.33722917 +k_0=0.99987742 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# NTF (Paris) / Lambert Sud France +<27563> +proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=2.33722917 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# NTF (Paris) / Lambert Corse +<27564> +proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=2.33722917 +k_0=0.99994471 +x_0=234.358 +y_0=185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# NTF (Paris) / Lambert zone I +<27571> +proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=2.33722917 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# NTF (Paris) / Lambert zone II +<27572> +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.33722917 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# NTF (Paris) / Lambert zone III +<27573> +proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=2.33722917 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# NTF (Paris) / Lambert zone IV +<27574> +proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=2.33722917 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# NTF (Paris) / France I +<27581> +proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=2.33722917 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# NTF (Paris) / France II +<27582> +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.33722917 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# NTF (Paris) / France III +<27583> +proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=2.33722917 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# NTF (Paris) / France IV +<27584> +proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=2.33722917 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# NTF (Paris) / Nord France +<27591> +proj=lcc +lat_1=49.50000000000001 +lat_0=49.50000000000001 +lon_0=2.33722917 +k_0=0.999877341 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# NTF (Paris) / Centre France +<27592> +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.33722917 +k_0=0.99987742 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# NTF (Paris) / Sud France +<27593> +proj=lcc +lat_1=44.10000000000001 +lat_0=44.10000000000001 +lon_0=2.33722917 +k_0=0.999877499 +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# NTF (Paris) / Corse +<27594> +proj=lcc +lat_1=42.16500000000001 +lat_0=42.16500000000001 +lon_0=2.33722917 +k_0=0.99994471 +x_0=234.358 +y_0=185861.369 +a=6378249.2 +b=6356515 +towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# OSGB 1936 / British National Grid +<27700> +proj=tmerc +lat_0=49 +lon_0=-2 +k=0.999601 +x_0=400000 +y_0=-100000 +ellps=airy +units=m +no_defs no_defs <> +# Palestine 1923 / Palestine Grid +<28191> +proj=cass +lat_0=31.73409694444445 +lon_0=35.21208055555556 +x_0=170251.555 +y_0=126867.909 +a=6378300.789 +b=6356566.435 +units=m +no_defs no_defs <> +# Palestine 1923 / Palestine Belt +<28192> +proj=tmerc +lat_0=31.73409694444445 +lon_0=35.21208055555556 +k=1.000000 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b=6356566.435 +units=m +no_defs no_defs <> +# Palestine 1923 / Israeli CS Grid +<28193> +proj=cass +lat_0=31.73409694444445 +lon_0=35.21208055555556 +x_0=170251.555 +y_0=1126867.909 +a=6378300.789 +b=6356566.435 +units=m +no_defs no_defs <> +# Pointe Noire / UTM zone 32S +<28232> +proj=utm +zone=32 +south +a=6378249.2 +b=6356515 +units=m +no_defs no_defs <> +# GDA94 / MGA zone 48 +<28348> +proj=utm +zone=48 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# GDA94 / MGA zone 49 +<28349> +proj=utm +zone=49 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# GDA94 / MGA zone 50 +<28350> +proj=utm +zone=50 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# GDA94 / MGA zone 51 +<28351> +proj=utm +zone=51 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# GDA94 / MGA zone 52 +<28352> +proj=utm +zone=52 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# GDA94 / MGA zone 53 +<28353> +proj=utm +zone=53 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# GDA94 / MGA zone 54 +<28354> +proj=utm +zone=54 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# GDA94 / MGA zone 55 +<28355> +proj=utm +zone=55 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# GDA94 / MGA zone 56 +<28356> +proj=utm +zone=56 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# GDA94 / MGA zone 57 +<28357> +proj=utm +zone=57 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# GDA94 / MGA zone 58 +<28358> +proj=utm +zone=58 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 2 +<28402> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 3 +<28403> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 4 +<28404> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 5 +<28405> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 6 +<28406> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=6500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 7 +<28407> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=7500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 8 +<28408> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=8500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 9 +<28409> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=9500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 10 +<28410> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=10500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 11 +<28411> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=11500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 12 +<28412> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=12500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 13 +<28413> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=13500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 14 +<28414> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=14500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 15 +<28415> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=15500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 16 +<28416> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=16500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 17 +<28417> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=17500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 18 +<28418> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=18500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 19 +<28419> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=19500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 20 +<28420> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=20500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 21 +<28421> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=21500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 22 +<28422> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=22500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 23 +<28423> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=23500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 24 +<28424> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=24500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 25 +<28425> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=25500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 26 +<28426> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=26500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 27 +<28427> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=27500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 28 +<28428> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=28500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 29 +<28429> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=29500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 30 +<28430> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=30500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 31 +<28431> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=31500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger zone 32 +<28432> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=32500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 2N +<28462> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 3N +<28463> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 4N +<28464> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 5N +<28465> +proj=tmerc +lat_0=0 +lon_0=27 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 6N +<28466> +proj=tmerc +lat_0=0 +lon_0=33 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 7N +<28467> +proj=tmerc +lat_0=0 +lon_0=39 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 8N +<28468> +proj=tmerc +lat_0=0 +lon_0=45 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 9N +<28469> +proj=tmerc +lat_0=0 +lon_0=51 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 10N +<28470> +proj=tmerc +lat_0=0 +lon_0=57 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 11N +<28471> +proj=tmerc +lat_0=0 +lon_0=63 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 12N +<28472> +proj=tmerc +lat_0=0 +lon_0=69 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 13N +<28473> +proj=tmerc +lat_0=0 +lon_0=75 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 14N +<28474> +proj=tmerc +lat_0=0 +lon_0=81 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 15N +<28475> +proj=tmerc +lat_0=0 +lon_0=87 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 16N +<28476> +proj=tmerc +lat_0=0 +lon_0=93 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 17N +<28477> +proj=tmerc +lat_0=0 +lon_0=99 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 18N +<28478> +proj=tmerc +lat_0=0 +lon_0=105 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 19N +<28479> +proj=tmerc +lat_0=0 +lon_0=111 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 20N +<28480> +proj=tmerc +lat_0=0 +lon_0=117 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 21N +<28481> +proj=tmerc +lat_0=0 +lon_0=123 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 22N +<28482> +proj=tmerc +lat_0=0 +lon_0=129 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 23N +<28483> +proj=tmerc +lat_0=0 +lon_0=135 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 24N +<28484> +proj=tmerc +lat_0=0 +lon_0=141 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 25N +<28485> +proj=tmerc +lat_0=0 +lon_0=147 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 26N +<28486> +proj=tmerc +lat_0=0 +lon_0=153 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 27N +<28487> +proj=tmerc +lat_0=0 +lon_0=159 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 28N +<28488> +proj=tmerc +lat_0=0 +lon_0=165 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 29N +<28489> +proj=tmerc +lat_0=0 +lon_0=171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 30N +<28490> +proj=tmerc +lat_0=0 +lon_0=177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 31N +<28491> +proj=tmerc +lat_0=0 +lon_0=-177 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Pulkovo 1942 / Gauss-Kruger 32N +<28492> +proj=tmerc +lat_0=0 +lon_0=-171 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m +no_defs no_defs <> +# Qatar 1974 / Qatar National Grid +<28600> +proj=tmerc +lat_0=24.45 +lon_0=51.21666666666667 +k=0.999990 +x_0=200000 +y_0=300000 +ellps=intl +units=m +no_defs no_defs <> +# Amersfoort / RD Old +<28991> +proj=stere +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.999908 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Amersfoort / RD New +<28992> +proj=stere +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.999908 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +no_defs no_defs <> +# SAD69 / Brazil Polyconic +<29100> +proj=poly +lat_0=0 +lon_0=-54 +x_0=5000000 +y_0=10000000 +ellps=GRS67 +units=m +no_defs no_defs <> +# SAD69 / UTM zone 18N +<29118> +proj=utm +zone=18 +ellps=GRS67 +units=m +no_defs no_defs <> +# SAD69 / UTM zone 19N +<29119> +proj=utm +zone=19 +ellps=GRS67 +units=m +no_defs no_defs <> +# SAD69 / UTM zone 20N +<29120> +proj=utm +zone=20 +ellps=GRS67 +units=m +no_defs no_defs <> +# SAD69 / UTM zone 21N +<29121> +proj=utm +zone=21 +ellps=GRS67 +units=m +no_defs no_defs <> +# SAD69 / UTM zone 22N +<29122> +proj=utm +zone=22 +ellps=GRS67 +units=m +no_defs no_defs <> +# SAD69 / UTM zone 17S +<29177> +proj=utm +zone=17 +south +ellps=GRS67 +units=m +no_defs no_defs <> +# SAD69 / UTM zone 18S +<29178> +proj=utm +zone=18 +south +ellps=GRS67 +units=m +no_defs no_defs <> +# SAD69 / UTM zone 19S +<29179> +proj=utm +zone=19 +south +ellps=GRS67 +units=m +no_defs no_defs <> +# SAD69 / UTM zone 20S +<29180> +proj=utm +zone=20 +south +ellps=GRS67 +units=m +no_defs no_defs <> +# SAD69 / UTM zone 21S +<29181> +proj=utm +zone=21 +south +ellps=GRS67 +units=m +no_defs no_defs <> +# SAD69 / UTM zone 22S +<29182> +proj=utm +zone=22 +south +ellps=GRS67 +units=m +no_defs no_defs <> +# SAD69 / UTM zone 23S +<29183> +proj=utm +zone=23 +south +ellps=GRS67 +units=m +no_defs no_defs <> +# SAD69 / UTM zone 24S +<29184> +proj=utm +zone=24 +south +ellps=GRS67 +units=m +no_defs no_defs <> +# SAD69 / UTM zone 25S +<29185> +proj=utm +zone=25 +south +ellps=GRS67 +units=m +no_defs no_defs <> +# Sapper Hill 1943 / UTM zone 20S +<29220> +proj=utm +zone=20 +south +ellps=intl +towgs84=-355,21,72,0,0,0,0 +units=m +no_defs no_defs <> +# Sapper Hill 1943 / UTM zone 21S +<29221> +proj=utm +zone=21 +south +ellps=intl +towgs84=-355,21,72,0,0,0,0 +units=m +no_defs no_defs <> +# Schwarzeck / UTM zone 33S +<29333> +proj=utm +zone=33 +south +ellps=bess_nam +units=m +no_defs no_defs <> +# South West African Coord. System zone 11 +# South West African Coord. System zone 13 +# South West African Coord. System zone 15 +# South West African Coord. System zone 17 +# South West African Coord. System zone 19 +# South West African Coord. System zone 21 +# South West African Coord. System zone 23 +# South West African Coord. System zone 25 +# Sudan / UTM zone 35N +<29635> +proj=utm +zone=35 +a=6378249.2 +b=6356515 +units=m +no_defs no_defs <> +# Sudan / UTM zone 36N +<29636> +proj=utm +zone=36 +a=6378249.2 +b=6356515 +units=m +no_defs no_defs <> +# Tananarive (Paris) / Laborde Grid +<29700> +proj=omerc +lat_0=-18.9 +lonc=46.43722917000001 +alpha=18.9 +k=0.9995000000000001 +x_0=400000 +y_0=800000 +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +pm=paris +units=m +no_defs no_defs <> +# Tananarive / UTM zone 38S +<29738> +proj=utm +zone=38 +south +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +units=m +no_defs no_defs <> +# Tananarive / UTM zone 39S +<29739> +proj=utm +zone=39 +south +ellps=intl +towgs84=-189,-242,-91,0,0,0,0 +units=m +no_defs no_defs <> +# Timbalai 1948 / UTM zone 49N +<29849> +proj=utm +zone=49 +ellps=evrstSS +units=m +no_defs no_defs <> +# Timbalai 1948 / UTM zone 50N +<29850> +proj=utm +zone=50 +ellps=evrstSS +units=m +no_defs no_defs <> +# Timbalai 1948 / R.S.O. Borneo (ch) +<29871> +proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 +k=0.99984 +x_0=590476.8714630401 +y_0=442857.653094361 +ellps=evrstSS +to_meter=20.11676512155263 +no_defs no_defs <> +# Timbalai 1948 / R.S.O. Borneo (ft) +<29872> +proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 +k=0.99984 +x_0=590476.8727431979 +y_0=442857.6545573985 +ellps=evrstSS +to_meter=0.3047994715386762 +no_defs no_defs <> +# Timbalai 1948 / R.S.O. Borneo (m) +<29873> +proj=omerc +lat_0=4 +lonc=115 +alpha=53.31582047222222 +k=0.99984 +x_0=590476.87 +y_0=442857.65 +ellps=evrstSS +units=m +no_defs no_defs <> +# TM65 / Irish National Grid +<29900> +proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +a=6377340.189 +b=6356034.447938534 +units=m +no_defs no_defs <> +# OSNI 1952 / Irish National Grid +<29901> +proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000000 +x_0=200000 +y_0=250000 +ellps=airy +units=m +no_defs no_defs <> +# TM65 / Irish Grid +<29902> +proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +a=6377340.189 +b=6356034.447938534 +units=m +no_defs no_defs <> +# TM75 / Irish Grid +<29903> +proj=tmerc +lat_0=53.5 +lon_0=-8 +k=1.000035 +x_0=200000 +y_0=250000 +a=6377340.189 +b=6356034.447938534 +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS I +<30161> +proj=tmerc +lat_0=33 +lon_0=129.5 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS II +<30162> +proj=tmerc +lat_0=33 +lon_0=131 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS III +<30163> +proj=tmerc +lat_0=36 +lon_0=132.1666666666667 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS IV +<30164> +proj=tmerc +lat_0=33 +lon_0=133.5 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS V +<30165> +proj=tmerc +lat_0=36 +lon_0=134.3333333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS VI +<30166> +proj=tmerc +lat_0=36 +lon_0=136 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS VII +<30167> +proj=tmerc +lat_0=36 +lon_0=137.1666666666667 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS VIII +<30168> +proj=tmerc +lat_0=36 +lon_0=138.5 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS IX +<30169> +proj=tmerc +lat_0=36 +lon_0=139.8333333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS X +<30170> +proj=tmerc +lat_0=40 +lon_0=140.8333333333333 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS XI +<30171> +proj=tmerc +lat_0=44 +lon_0=140.25 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS XII +<30172> +proj=tmerc +lat_0=44 +lon_0=142.25 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS XIII +<30173> +proj=tmerc +lat_0=44 +lon_0=144.25 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS XIV +<30174> +proj=tmerc +lat_0=26 +lon_0=142 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS XV +<30175> +proj=tmerc +lat_0=26 +lon_0=127.5 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS XVI +<30176> +proj=tmerc +lat_0=26 +lon_0=124 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS XVII +<30177> +proj=tmerc +lat_0=26 +lon_0=131 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS XVIII +<30178> +proj=tmerc +lat_0=20 +lon_0=136 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Tokyo / Japan Plane Rectangular CS XIX +<30179> +proj=tmerc +lat_0=26 +lon_0=154 +k=0.999900 +x_0=0 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Trinidad 1903 / Trinidad Grid +<30200> +proj=cass +lat_0=10.44166666666667 +lon_0=-61.33333333333334 +x_0=86501.46380700001 +y_0=65379.0133425 +a=6378293.63683822 +b=6356617.979337744 +towgs84=-61.702,284.488,472.052,0,0,0,0 +to_meter=0.2011661949 +no_defs no_defs <> +# TC(1948) / UTM zone 39N +<30339> +proj=utm +zone=39 +ellps=helmert +units=m +no_defs no_defs <> +# TC(1948) / UTM zone 40N +<30340> +proj=utm +zone=40 +ellps=helmert +units=m +no_defs no_defs <> +# Voirol 1875 / Nord Algerie (ancienne) +<30491> +proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +units=m +no_defs no_defs <> +# Voirol 1875 / Sud Algerie (ancienne) +<30492> +proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356515 +towgs84=-73,-247,227,0,0,0,0 +units=m +no_defs no_defs <> +# Nord Sahara 1959 / UTM zone 29N +<30729> +proj=utm +zone=29 +ellps=clrk80 +units=m +no_defs no_defs <> +# Nord Sahara 1959 / UTM zone 30N +<30730> +proj=utm +zone=30 +ellps=clrk80 +units=m +no_defs no_defs <> +# Nord Sahara 1959 / UTM zone 31N +<30731> +proj=utm +zone=31 +ellps=clrk80 +units=m +no_defs no_defs <> +# Nord Sahara 1959 / UTM zone 32N +<30732> +proj=utm +zone=32 +ellps=clrk80 +units=m +no_defs no_defs <> +# Nord Sahara 1959 / Voirol Unifie Nord +<30791> +proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m +no_defs no_defs <> +# Nord Sahara 1959 / Voirol Unifie Sud +<30792> +proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m +no_defs no_defs <> +# RT38 2.5 gon W +<30800> +proj=tmerc +lat_0=0 +lon_0=15.80827777777778 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Yoff / UTM zone 28N +<31028> +proj=utm +zone=28 +a=6378249.2 +b=6356515 +units=m +no_defs no_defs <> +# Zanderij / UTM zone 21N +<31121> +proj=utm +zone=21 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defs no_defs <> +# Zanderij / TM 54 NW +<31154> +proj=tmerc +lat_0=0 +lon_0=-54 +k=0.999600 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defs no_defs <> +# Zanderij / Suriname Old TM +<31170> +proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.999600 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defs no_defs <> +# Zanderij / Suriname TM +<31171> +proj=tmerc +lat_0=0 +lon_0=-55.68333333333333 +k=0.999900 +x_0=500000 +y_0=0 +ellps=intl +towgs84=-265,120,-358,0,0,0,0 +units=m +no_defs no_defs <> +# MGI / 3-degree Gauss zone 5 +<31265> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# MGI / 3-degree Gauss zone 6 +<31266> +proj=tmerc +lat_0=0 +lon_0=18 +k=1.000000 +x_0=6500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# MGI / 3-degree Gauss zone 7 +<31267> +proj=tmerc +lat_0=0 +lon_0=21 +k=1.000000 +x_0=7500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# MGI / 3-degree Gauss zone 8 +<31268> +proj=tmerc +lat_0=0 +lon_0=24 +k=1.000000 +x_0=8500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# MGI / Balkans zone 5 +<31275> +proj=tmerc +lat_0=0 +lon_0=15 +k=0.999900 +x_0=5500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# MGI / Balkans zone 6 +<31276> +proj=tmerc +lat_0=0 +lon_0=18 +k=0.999900 +x_0=6500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# MGI / Balkans zone 7 +<31277> +proj=tmerc +lat_0=0 +lon_0=21 +k=0.999900 +x_0=7500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# MGI / Balkans zone 8 +<31278> +proj=tmerc +lat_0=0 +lon_0=21 +k=0.999900 +x_0=7500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# MGI / Balkans zone 8 +<31279> +proj=tmerc +lat_0=0 +lon_0=24 +k=0.999900 +x_0=8500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# MGI (Ferro) / Austria West Zone +<31281> +proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1.000000 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs no_defs <> +# MGI (Ferro) / Austria Central Zone +<31282> +proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1.000000 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs no_defs <> +# MGI (Ferro) / Austria East Zone +<31283> +proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1.000000 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs no_defs <> +# MGI / M28 +<31284> +proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1.000000 +x_0=150000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# MGI / M31 +<31285> +proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1.000000 +x_0=450000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# MGI / M34 +<31286> +proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1.000000 +x_0=750000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# MGI / Austria Lambert +<31287> +proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=bessel +units=m +no_defs no_defs <> +# MGI (Ferro) / Austria West Zone +<31291> +proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1.000000 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs no_defs <> +# MGI (Ferro) / Austria Central Zone +<31292> +proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1.000000 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs no_defs <> +# MGI (Ferro) / Austria East Zone +<31293> +proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1.000000 +x_0=0 +y_0=0 +ellps=bessel +pm=ferro +units=m +no_defs no_defs <> +# MGI / M28 +<31294> +proj=tmerc +lat_0=0 +lon_0=10.33333333333333 +k=1.000000 +x_0=150000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# MGI / M31 +<31295> +proj=tmerc +lat_0=0 +lon_0=13.33333333333333 +k=1.000000 +x_0=450000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# MGI / M34 +<31296> +proj=tmerc +lat_0=0 +lon_0=16.33333333333333 +k=1.000000 +x_0=750000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# MGI / Austria Lambert +<31297> +proj=lcc +lat_1=49 +lat_2=46 +lat_0=47.5 +lon_0=13.33333333333333 +x_0=400000 +y_0=400000 +ellps=bessel +units=m +no_defs no_defs <> +# Belge 1972 / Belge Lambert 72 +<31300> +proj=lcc +lat_1=49.83333333333334 +lat_2=51.16666666666666 +lat_0=90 +lon_0=4.356939722222222 +x_0=150000.01256 +y_0=5400088.4378 +ellps=intl +units=m +no_defs no_defs <> +# Belge 1972 / Belgian Lambert 72 +<31370> +proj=lcc +lat_1=51.16666723333333 +lat_2=49.8333339 +lat_0=90 +lon_0=4.367486666666666 +x_0=150000.013 +y_0=5400088.438 +ellps=intl +units=m +no_defs no_defs <> +# DHDN / 3-degree Gauss zone 1 +<31461> +proj=tmerc +lat_0=0 +lon_0=3 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# DHDN / 3-degree Gauss zone 2 +<31462> +proj=tmerc +lat_0=0 +lon_0=6 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# DHDN / 3-degree Gauss zone 3 +<31463> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# DHDN / 3-degree Gauss zone 4 +<31464> +proj=tmerc +lat_0=0 +lon_0=12 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# DHDN / 3-degree Gauss zone 5 +<31465> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# DHDN / Gauss-Kruger zone 2 +<31466> +proj=tmerc +lat_0=0 +lon_0=6 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# DHDN / Gauss-Kruger zone 3 +<31467> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# DHDN / Gauss-Kruger zone 4 +<31468> +proj=tmerc +lat_0=0 +lon_0=12 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# DHDN / Gauss-Kruger zone 5 +<31469> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=bessel +units=m +no_defs no_defs <> +# Conakry 1905 / UTM zone 28N +<31528> +proj=utm +zone=28 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs no_defs <> +# Conakry 1905 / UTM zone 29N +<31529> +proj=utm +zone=29 +a=6378249.2 +b=6356515 +towgs84=-23,259,-9,0,0,0,0 +units=m +no_defs no_defs <> +# Dealul Piscului 1933/ Stereo 33 +<31600> +proj=stere +lat_0=45.9 +lon_0=25.39246588888889 +k=0.999667 +x_0=500000 +y_0=500000 +ellps=intl +towgs84=103.25,-100.4,-307.19,0,0,0,0 +units=m +no_defs no_defs <> +# Dealul Piscului 1970/ Stereo 70 +<31700> +proj=stere +lat_0=46 +lon_0=25 +k=0.999750 +x_0=500000 +y_0=500000 +ellps=krass +units=m +no_defs no_defs <> +# NGN / UTM zone 38N +<31838> +proj=utm +zone=38 +ellps=WGS84 +units=m +no_defs no_defs <> +# NGN / UTM zone 39N +<31839> +proj=utm +zone=39 +ellps=WGS84 +units=m +no_defs no_defs <> +# KUDAMS / KTM +<31900> +proj=tmerc +lat_0=0 +lon_0=48 +k=0.999600 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs no_defs <> +# SIRGAS / UTM zone 17N +<31986> +proj=utm +zone=17 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# SIRGAS / UTM zone 18N +<31987> +proj=utm +zone=18 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# SIRGAS / UTM zone 19N +<31988> +proj=utm +zone=19 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# SIRGAS / UTM zone 20N +<31989> +proj=utm +zone=20 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# SIRGAS / UTM zone 21N +<31990> +proj=utm +zone=21 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# SIRGAS / UTM zone 22N +<31991> +proj=utm +zone=22 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# SIRGAS / UTM zone 17S +<31992> +proj=utm +zone=17 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# SIRGAS / UTM zone 18S +<31993> +proj=utm +zone=18 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# SIRGAS / UTM zone 19S +<31994> +proj=utm +zone=19 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# SIRGAS / UTM zone 20S +<31995> +proj=utm +zone=20 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# SIRGAS / UTM zone 21S +<31996> +proj=utm +zone=21 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# SIRGAS / UTM zone 22S +<31997> +proj=utm +zone=22 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# SIRGAS / UTM zone 23S +<31998> +proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# SIRGAS / UTM zone 24S +<31999> +proj=utm +zone=24 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# SIRGAS / UTM zone 25S +<32000> +proj=utm +zone=25 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs no_defs <> +# NAD27 / Montana North +<32001> +proj=lcc +lat_1=48.71666666666667 +lat_2=47.85 +lat_0=47 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Montana Central +<32002> +proj=lcc +lat_1=47.88333333333333 +lat_2=46.45 +lat_0=45.83333333333334 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Montana South +<32003> +proj=lcc +lat_1=46.4 +lat_2=44.86666666666667 +lat_0=44 +lon_0=-109.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Nebraska North +<32005> +proj=lcc +lat_1=41.85 +lat_2=42.81666666666667 +lat_0=41.33333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Nebraska South +<32006> +proj=lcc +lat_1=40.28333333333333 +lat_2=41.71666666666667 +lat_0=39.66666666666666 +lon_0=-99.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Nevada East +<32007> +proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Nevada Central +<32008> +proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Nevada West +<32009> +proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / New Hampshire +<32010> +proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999967 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / New Jersey +<32011> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.66666666666667 +k=0.999975 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / New Mexico East +<32012> +proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / New Mexico Central +<32013> +proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.999900 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / New Mexico West +<32014> +proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999917 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / New York East +<32015> +proj=tmerc +lat_0=40 +lon_0=-74.33333333333333 +k=0.999967 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / New York Central +<32016> +proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999938 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / New York West +<32017> +proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999938 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / New York Long Island +<32018> +proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.5 +lon_0=-74 +x_0=304800.6096012192 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / North Carolina +<32019> +proj=lcc +lat_1=34.33333333333334 +lat_2=36.16666666666666 +lat_0=33.75 +lon_0=-79 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / North Dakota North +<32020> +proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-100.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / North Dakota South +<32021> +proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Ohio North +<32022> +proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Ohio South +<32023> +proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333333 +lat_0=38 +lon_0=-82.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Oklahoma North +<32024> +proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666667 +lat_0=35 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Oklahoma South +<32025> +proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Oregon North +<32026> +proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Oregon South +<32027> +proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Pennsylvania North +<32028> +proj=lcc +lat_1=40.88333333333333 +lat_2=41.95 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Pennsylvania South +<32029> +proj=lcc +lat_1=39.93333333333333 +lat_2=40.8 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Rhode Island +<32030> +proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.999994 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / South Carolina North +<32031> +proj=lcc +lat_1=33.76666666666667 +lat_2=34.96666666666667 +lat_0=33 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / South Carolina South +<32033> +proj=lcc +lat_1=32.33333333333334 +lat_2=33.66666666666666 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / South Dakota North +<32034> +proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / South Dakota South +<32035> +proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Tennessee +<32036> +proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.66666666666666 +lon_0=-86 +x_0=30480.06096012192 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Texas North +<32037> +proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=34 +lon_0=-101.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Texas North Central +<32038> +proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666667 +lat_0=31.66666666666667 +lon_0=-97.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Texas Central +<32039> +proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Texas South Central +<32040> +proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Texas South +<32041> +proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Utah North +<32042> +proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Utah Central +<32043> +proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Utah South +<32044> +proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Vermont +<32045> +proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Virginia North +<32046> +proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Virginia South +<32047> +proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Washington North +<32048> +proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-120.8333333333333 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Washington South +<32049> +proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / West Virginia North +<32050> +proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79.5 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / West Virginia South +<32051> +proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333333 +lat_0=37 +lon_0=-81 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Wisconsin North +<32052> +proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Wisconsin Central +<32053> +proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333334 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Wisconsin South +<32054> +proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666667 +lat_0=42 +lon_0=-90 +x_0=609601.2192024384 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Wyoming East +<32055> +proj=tmerc +lat_0=40.66666666666666 +lon_0=-105.1666666666667 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Wyoming East Central +<32056> +proj=tmerc +lat_0=40.66666666666666 +lon_0=-107.3333333333333 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Wyoming West Central +<32057> +proj=tmerc +lat_0=40.66666666666666 +lon_0=-108.75 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Wyoming West +<32058> +proj=tmerc +lat_0=40.66666666666666 +lon_0=-110.0833333333333 +k=0.999941 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / Guatemala Norte +<32061> +proj=lcc +lat_1=16.81666666666667 +lat_0=16.81666666666667 +lon_0=-90.33333333333333 +k_0=0.99992226 +x_0=500000 +y_0=292209.579 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / Guatemala Sur +<32062> +proj=lcc +lat_1=14.9 +lat_0=14.9 +lon_0=-90.33333333333333 +k_0=0.99989906 +x_0=500000 +y_0=325992.681 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / BLM 14N (ftUS) +<32064> +proj=tmerc +lat_0=0 +lon_0=-99 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / BLM 15N (ftUS) +<32065> +proj=tmerc +lat_0=0 +lon_0=-93 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / BLM 16N (ftUS) +<32066> +proj=tmerc +lat_0=0 +lon_0=-87 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / BLM 17N (ftUS) +<32067> +proj=tmerc +lat_0=0 +lon_0=-81 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / BLM 14N (feet) +<32074> +proj=tmerc +lat_0=0 +lon_0=-99 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / BLM 15N (feet) +<32075> +proj=tmerc +lat_0=0 +lon_0=-93 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / BLM 16N (feet) +<32076> +proj=tmerc +lat_0=0 +lon_0=-87 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / BLM 17N (feet) +<32077> +proj=tmerc +lat_0=0 +lon_0=-81 +k=0.999600 +x_0=500000.001016002 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 +no_defs no_defs <> +# NAD27 / MTM zone 1 +<32081> +proj=tmerc +lat_0=0 +lon_0=-53 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / MTM zone 2 +<32082> +proj=tmerc +lat_0=0 +lon_0=-56 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / MTM zone 3 +<32083> +proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / MTM zone 4 +<32084> +proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / MTM zone 5 +<32085> +proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / MTM zone 6 +<32086> +proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD27 / Quebec Lambert +<32098> +proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=clrk66 +datum=NAD27 +units=m +no_defs no_defs <> +# NAD83 / Montana +<32100> +proj=lcc +lat_1=49 +lat_2=45 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Nebraska +<32104> +proj=lcc +lat_1=43 +lat_2=40 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Nevada East +<32107> +proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.999900 +x_0=200000 +y_0=8000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Nevada Central +<32108> +proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.999900 +x_0=500000 +y_0=6000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Nevada West +<32109> +proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.999900 +x_0=800000 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / New Hampshire +<32110> +proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999967 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / New Jersey +<32111> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.999900 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / New Mexico East +<32112> +proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909 +x_0=165000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / New Mexico Central +<32113> +proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / New Mexico West +<32114> +proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999917 +x_0=830000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / New York East +<32115> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.999900 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / New York Central +<32116> +proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999938 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / New York West +<32117> +proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999938 +x_0=350000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / New York Long Island +<32118> +proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / North Carolina +<32119> +proj=lcc +lat_1=36.16666666666666 +lat_2=34.33333333333334 +lat_0=33.75 +lon_0=-79 +x_0=609601.22 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / North Dakota North +<32120> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.43333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / North Dakota South +<32121> +proj=lcc +lat_1=47.48333333333333 +lat_2=46.18333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Ohio North +<32122> +proj=lcc +lat_1=41.7 +lat_2=40.43333333333333 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Ohio South +<32123> +proj=lcc +lat_1=40.03333333333333 +lat_2=38.73333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Oklahoma North +<32124> +proj=lcc +lat_1=36.76666666666667 +lat_2=35.56666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Oklahoma South +<32125> +proj=lcc +lat_1=35.23333333333333 +lat_2=33.93333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Oregon North +<32126> +proj=lcc +lat_1=46 +lat_2=44.33333333333334 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Oregon South +<32127> +proj=lcc +lat_1=44 +lat_2=42.33333333333334 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Pennsylvania North +<32128> +proj=lcc +lat_1=41.95 +lat_2=40.88333333333333 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Pennsylvania South +<32129> +proj=lcc +lat_1=40.96666666666667 +lat_2=39.93333333333333 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Rhode Island +<32130> +proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.999994 +x_0=100000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / South Carolina +<32133> +proj=lcc +lat_1=34.83333333333334 +lat_2=32.5 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / South Dakota North +<32134> +proj=lcc +lat_1=45.68333333333333 +lat_2=44.41666666666666 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / South Dakota South +<32135> +proj=lcc +lat_1=44.4 +lat_2=42.83333333333334 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Tennessee +<32136> +proj=lcc +lat_1=36.41666666666666 +lat_2=35.25 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Texas North +<32137> +proj=lcc +lat_1=36.18333333333333 +lat_2=34.65 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Texas North Central +<32138> +proj=lcc +lat_1=33.96666666666667 +lat_2=32.13333333333333 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Texas Central +<32139> +proj=lcc +lat_1=31.88333333333333 +lat_2=30.11666666666667 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Texas South Central +<32140> +proj=lcc +lat_1=30.28333333333333 +lat_2=28.38333333333333 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Texas South +<32141> +proj=lcc +lat_1=27.83333333333333 +lat_2=26.16666666666667 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=5000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Utah North +<32142> +proj=lcc +lat_1=41.78333333333333 +lat_2=40.71666666666667 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Utah Central +<32143> +proj=lcc +lat_1=40.65 +lat_2=39.01666666666667 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Utah South +<32144> +proj=lcc +lat_1=38.35 +lat_2=37.21666666666667 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Vermont +<32145> +proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Virginia North +<32146> +proj=lcc +lat_1=39.2 +lat_2=38.03333333333333 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Virginia South +<32147> +proj=lcc +lat_1=37.96666666666667 +lat_2=36.76666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Washington North +<32148> +proj=lcc +lat_1=48.73333333333333 +lat_2=47.5 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Washington South +<32149> +proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / West Virginia North +<32150> +proj=lcc +lat_1=40.25 +lat_2=39 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / West Virginia South +<32151> +proj=lcc +lat_1=38.88333333333333 +lat_2=37.48333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Wisconsin North +<32152> +proj=lcc +lat_1=46.76666666666667 +lat_2=45.56666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Wisconsin Central +<32153> +proj=lcc +lat_1=45.5 +lat_2=44.25 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Wisconsin South +<32154> +proj=lcc +lat_1=44.06666666666667 +lat_2=42.73333333333333 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Wyoming East +<32155> +proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.999938 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Wyoming East Central +<32156> +proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.999938 +x_0=400000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Wyoming West Central +<32157> +proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.999938 +x_0=600000 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Wyoming West +<32158> +proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.999938 +x_0=800000 +y_0=100000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Puerto Rico & Virgin Is. +<32161> +proj=lcc +lat_1=18.43333333333333 +lat_2=18.03333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / SCoPQ zone 2 +<32180> +proj=tmerc +lat_0=0 +lon_0=-55.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 1 +<32181> +proj=tmerc +lat_0=0 +lon_0=-53 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 2 +<32182> +proj=tmerc +lat_0=0 +lon_0=-56 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 3 +<32183> +proj=tmerc +lat_0=0 +lon_0=-58.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 4 +<32184> +proj=tmerc +lat_0=0 +lon_0=-61.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 5 +<32185> +proj=tmerc +lat_0=0 +lon_0=-64.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 6 +<32186> +proj=tmerc +lat_0=0 +lon_0=-67.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 7 +<32187> +proj=tmerc +lat_0=0 +lon_0=-70.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 8 +<32188> +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 9 +<32189> +proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 10 +<32190> +proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 11 +<32191> +proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 12 +<32192> +proj=tmerc +lat_0=0 +lon_0=-81 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 13 +<32193> +proj=tmerc +lat_0=0 +lon_0=-84 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 14 +<32194> +proj=tmerc +lat_0=0 +lon_0=-87 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 15 +<32195> +proj=tmerc +lat_0=0 +lon_0=-90 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 16 +<32196> +proj=tmerc +lat_0=0 +lon_0=-93 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / MTM zone 17 +<32197> +proj=tmerc +lat_0=0 +lon_0=-96 +k=0.999900 +x_0=304800 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# NAD83 / Quebec Lambert +<32198> +proj=lcc +lat_1=60 +lat_2=46 +lat_0=44 +lon_0=-68.5 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 1N +<32201> +proj=utm +zone=1 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 2N +<32202> +proj=utm +zone=2 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 3N +<32203> +proj=utm +zone=3 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 4N +<32204> +proj=utm +zone=4 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 5N +<32205> +proj=utm +zone=5 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 6N +<32206> +proj=utm +zone=6 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 7N +<32207> +proj=utm +zone=7 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 8N +<32208> +proj=utm +zone=8 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 9N +<32209> +proj=utm +zone=9 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 10N +<32210> +proj=utm +zone=10 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 11N +<32211> +proj=utm +zone=11 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 12N +<32212> +proj=utm +zone=12 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 13N +<32213> +proj=utm +zone=13 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 14N +<32214> +proj=utm +zone=14 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 15N +<32215> +proj=utm +zone=15 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 16N +<32216> +proj=utm +zone=16 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 17N +<32217> +proj=utm +zone=17 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 18N +<32218> +proj=utm +zone=18 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 19N +<32219> +proj=utm +zone=19 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 20N +<32220> +proj=utm +zone=20 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 21N +<32221> +proj=utm +zone=21 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 22N +<32222> +proj=utm +zone=22 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 23N +<32223> +proj=utm +zone=23 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 24N +<32224> +proj=utm +zone=24 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 25N +<32225> +proj=utm +zone=25 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 26N +<32226> +proj=utm +zone=26 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 27N +<32227> +proj=utm +zone=27 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 28N +<32228> +proj=utm +zone=28 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 29N +<32229> +proj=utm +zone=29 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 30N +<32230> +proj=utm +zone=30 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 31N +<32231> +proj=utm +zone=31 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 32N +<32232> +proj=utm +zone=32 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 33N +<32233> +proj=utm +zone=33 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 34N +<32234> +proj=utm +zone=34 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 35N +<32235> +proj=utm +zone=35 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 36N +<32236> +proj=utm +zone=36 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 37N +<32237> +proj=utm +zone=37 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 38N +<32238> +proj=utm +zone=38 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 39N +<32239> +proj=utm +zone=39 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 40N +<32240> +proj=utm +zone=40 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 41N +<32241> +proj=utm +zone=41 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 42N +<32242> +proj=utm +zone=42 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 43N +<32243> +proj=utm +zone=43 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 44N +<32244> +proj=utm +zone=44 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 45N +<32245> +proj=utm +zone=45 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 46N +<32246> +proj=utm +zone=46 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 47N +<32247> +proj=utm +zone=47 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 48N +<32248> +proj=utm +zone=48 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 49N +<32249> +proj=utm +zone=49 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 50N +<32250> +proj=utm +zone=50 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 51N +<32251> +proj=utm +zone=51 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 52N +<32252> +proj=utm +zone=52 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 53N +<32253> +proj=utm +zone=53 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 54N +<32254> +proj=utm +zone=54 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 55N +<32255> +proj=utm +zone=55 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 56N +<32256> +proj=utm +zone=56 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 57N +<32257> +proj=utm +zone=57 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 58N +<32258> +proj=utm +zone=58 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 59N +<32259> +proj=utm +zone=59 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 60N +<32260> +proj=utm +zone=60 +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 1S +<32301> +proj=utm +zone=1 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 2S +<32302> +proj=utm +zone=2 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 3S +<32303> +proj=utm +zone=3 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 4S +<32304> +proj=utm +zone=4 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 5S +<32305> +proj=utm +zone=5 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 6S +<32306> +proj=utm +zone=6 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 7S +<32307> +proj=utm +zone=7 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 8S +<32308> +proj=utm +zone=8 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 9S +<32309> +proj=utm +zone=9 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 10S +<32310> +proj=utm +zone=10 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 11S +<32311> +proj=utm +zone=11 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 12S +<32312> +proj=utm +zone=12 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 13S +<32313> +proj=utm +zone=13 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 14S +<32314> +proj=utm +zone=14 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 15S +<32315> +proj=utm +zone=15 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 16S +<32316> +proj=utm +zone=16 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 17S +<32317> +proj=utm +zone=17 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 18S +<32318> +proj=utm +zone=18 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 19S +<32319> +proj=utm +zone=19 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 20S +<32320> +proj=utm +zone=20 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 21S +<32321> +proj=utm +zone=21 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 22S +<32322> +proj=utm +zone=22 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 23S +<32323> +proj=utm +zone=23 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 24S +<32324> +proj=utm +zone=24 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 25S +<32325> +proj=utm +zone=25 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 26S +<32326> +proj=utm +zone=26 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 27S +<32327> +proj=utm +zone=27 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 28S +<32328> +proj=utm +zone=28 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 29S +<32329> +proj=utm +zone=29 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 30S +<32330> +proj=utm +zone=30 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 31S +<32331> +proj=utm +zone=31 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 32S +<32332> +proj=utm +zone=32 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 33S +<32333> +proj=utm +zone=33 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 34S +<32334> +proj=utm +zone=34 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 35S +<32335> +proj=utm +zone=35 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 36S +<32336> +proj=utm +zone=36 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 37S +<32337> +proj=utm +zone=37 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 38S +<32338> +proj=utm +zone=38 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 39S +<32339> +proj=utm +zone=39 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 40S +<32340> +proj=utm +zone=40 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 41S +<32341> +proj=utm +zone=41 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 42S +<32342> +proj=utm +zone=42 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 43S +<32343> +proj=utm +zone=43 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 44S +<32344> +proj=utm +zone=44 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 45S +<32345> +proj=utm +zone=45 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 46S +<32346> +proj=utm +zone=46 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 47S +<32347> +proj=utm +zone=47 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 48S +<32348> +proj=utm +zone=48 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 49S +<32349> +proj=utm +zone=49 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 50S +<32350> +proj=utm +zone=50 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 51S +<32351> +proj=utm +zone=51 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 52S +<32352> +proj=utm +zone=52 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 53S +<32353> +proj=utm +zone=53 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 54S +<32354> +proj=utm +zone=54 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 55S +<32355> +proj=utm +zone=55 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 56S +<32356> +proj=utm +zone=56 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 57S +<32357> +proj=utm +zone=57 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 58S +<32358> +proj=utm +zone=58 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 59S +<32359> +proj=utm +zone=59 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72 / UTM zone 60S +<32360> +proj=utm +zone=60 +south +ellps=WGS72 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 1N +<32401> +proj=utm +zone=1 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 2N +<32402> +proj=utm +zone=2 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 3N +<32403> +proj=utm +zone=3 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 4N +<32404> +proj=utm +zone=4 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 5N +<32405> +proj=utm +zone=5 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 6N +<32406> +proj=utm +zone=6 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 7N +<32407> +proj=utm +zone=7 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 8N +<32408> +proj=utm +zone=8 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 9N +<32409> +proj=utm +zone=9 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 10N +<32410> +proj=utm +zone=10 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 11N +<32411> +proj=utm +zone=11 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 12N +<32412> +proj=utm +zone=12 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 13N +<32413> +proj=utm +zone=13 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 14N +<32414> +proj=utm +zone=14 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 15N +<32415> +proj=utm +zone=15 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 16N +<32416> +proj=utm +zone=16 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 17N +<32417> +proj=utm +zone=17 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 18N +<32418> +proj=utm +zone=18 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 19N +<32419> +proj=utm +zone=19 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 20N +<32420> +proj=utm +zone=20 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 21N +<32421> +proj=utm +zone=21 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 22N +<32422> +proj=utm +zone=22 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 23N +<32423> +proj=utm +zone=23 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 24N +<32424> +proj=utm +zone=24 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 25N +<32425> +proj=utm +zone=25 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 26N +<32426> +proj=utm +zone=26 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 27N +<32427> +proj=utm +zone=27 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 28N +<32428> +proj=utm +zone=28 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 29N +<32429> +proj=utm +zone=29 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 30N +<32430> +proj=utm +zone=30 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 31N +<32431> +proj=utm +zone=31 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 32N +<32432> +proj=utm +zone=32 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 33N +<32433> +proj=utm +zone=33 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 34N +<32434> +proj=utm +zone=34 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 35N +<32435> +proj=utm +zone=35 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 36N +<32436> +proj=utm +zone=36 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 37N +<32437> +proj=utm +zone=37 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 38N +<32438> +proj=utm +zone=38 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 39N +<32439> +proj=utm +zone=39 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 40N +<32440> +proj=utm +zone=40 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 41N +<32441> +proj=utm +zone=41 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 42N +<32442> +proj=utm +zone=42 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 43N +<32443> +proj=utm +zone=43 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 44N +<32444> +proj=utm +zone=44 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 45N +<32445> +proj=utm +zone=45 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 46N +<32446> +proj=utm +zone=46 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 47N +<32447> +proj=utm +zone=47 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 48N +<32448> +proj=utm +zone=48 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 49N +<32449> +proj=utm +zone=49 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 50N +<32450> +proj=utm +zone=50 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 51N +<32451> +proj=utm +zone=51 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 52N +<32452> +proj=utm +zone=52 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 53N +<32453> +proj=utm +zone=53 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 54N +<32454> +proj=utm +zone=54 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 55N +<32455> +proj=utm +zone=55 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 56N +<32456> +proj=utm +zone=56 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 57N +<32457> +proj=utm +zone=57 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 58N +<32458> +proj=utm +zone=58 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 59N +<32459> +proj=utm +zone=59 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 60N +<32460> +proj=utm +zone=60 +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 1S +<32501> +proj=utm +zone=1 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 2S +<32502> +proj=utm +zone=2 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 3S +<32503> +proj=utm +zone=3 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 4S +<32504> +proj=utm +zone=4 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 5S +<32505> +proj=utm +zone=5 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 6S +<32506> +proj=utm +zone=6 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 7S +<32507> +proj=utm +zone=7 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 8S +<32508> +proj=utm +zone=8 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 9S +<32509> +proj=utm +zone=9 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 10S +<32510> +proj=utm +zone=10 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 11S +<32511> +proj=utm +zone=11 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 12S +<32512> +proj=utm +zone=12 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 13S +<32513> +proj=utm +zone=13 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 14S +<32514> +proj=utm +zone=14 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 15S +<32515> +proj=utm +zone=15 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 16S +<32516> +proj=utm +zone=16 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 17S +<32517> +proj=utm +zone=17 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 18S +<32518> +proj=utm +zone=18 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 19S +<32519> +proj=utm +zone=19 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 20S +<32520> +proj=utm +zone=20 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 21S +<32521> +proj=utm +zone=21 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 22S +<32522> +proj=utm +zone=22 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 23S +<32523> +proj=utm +zone=23 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 24S +<32524> +proj=utm +zone=24 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 25S +<32525> +proj=utm +zone=25 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 26S +<32526> +proj=utm +zone=26 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 27S +<32527> +proj=utm +zone=27 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 28S +<32528> +proj=utm +zone=28 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 29S +<32529> +proj=utm +zone=29 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 30S +<32530> +proj=utm +zone=30 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 31S +<32531> +proj=utm +zone=31 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 32S +<32532> +proj=utm +zone=32 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 33S +<32533> +proj=utm +zone=33 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 34S +<32534> +proj=utm +zone=34 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 35S +<32535> +proj=utm +zone=35 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 36S +<32536> +proj=utm +zone=36 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 37S +<32537> +proj=utm +zone=37 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 38S +<32538> +proj=utm +zone=38 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 39S +<32539> +proj=utm +zone=39 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 40S +<32540> +proj=utm +zone=40 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 41S +<32541> +proj=utm +zone=41 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 42S +<32542> +proj=utm +zone=42 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 43S +<32543> +proj=utm +zone=43 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 44S +<32544> +proj=utm +zone=44 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 45S +<32545> +proj=utm +zone=45 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 46S +<32546> +proj=utm +zone=46 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 47S +<32547> +proj=utm +zone=47 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 48S +<32548> +proj=utm +zone=48 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 49S +<32549> +proj=utm +zone=49 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 50S +<32550> +proj=utm +zone=50 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 51S +<32551> +proj=utm +zone=51 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 52S +<32552> +proj=utm +zone=52 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 53S +<32553> +proj=utm +zone=53 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 54S +<32554> +proj=utm +zone=54 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 55S +<32555> +proj=utm +zone=55 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 56S +<32556> +proj=utm +zone=56 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 57S +<32557> +proj=utm +zone=57 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 58S +<32558> +proj=utm +zone=58 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 59S +<32559> +proj=utm +zone=59 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 72BE / UTM zone 60S +<32560> +proj=utm +zone=60 +south +ellps=WGS72 +towgs84=0,0,1.9,0,0,0.814,-0.38 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 1N +<32601> +proj=utm +zone=1 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 2N +<32602> +proj=utm +zone=2 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 3N +<32603> +proj=utm +zone=3 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 4N +<32604> +proj=utm +zone=4 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 5N +<32605> +proj=utm +zone=5 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 6N +<32606> +proj=utm +zone=6 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 7N +<32607> +proj=utm +zone=7 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 8N +<32608> +proj=utm +zone=8 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 9N +<32609> +proj=utm +zone=9 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 10N +<32610> +proj=utm +zone=10 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 11N +<32611> +proj=utm +zone=11 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 12N +<32612> +proj=utm +zone=12 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 13N +<32613> +proj=utm +zone=13 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 14N +<32614> +proj=utm +zone=14 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 15N +<32615> +proj=utm +zone=15 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 16N +<32616> +proj=utm +zone=16 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 17N +<32617> +proj=utm +zone=17 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 18N +<32618> +proj=utm +zone=18 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 19N +<32619> +proj=utm +zone=19 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 20N +<32620> +proj=utm +zone=20 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 21N +<32621> +proj=utm +zone=21 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 22N +<32622> +proj=utm +zone=22 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 23N +<32623> +proj=utm +zone=23 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 24N +<32624> +proj=utm +zone=24 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 25N +<32625> +proj=utm +zone=25 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 26N +<32626> +proj=utm +zone=26 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 27N +<32627> +proj=utm +zone=27 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 28N +<32628> +proj=utm +zone=28 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 29N +<32629> +proj=utm +zone=29 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 30N +<32630> +proj=utm +zone=30 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 31N +<32631> +proj=utm +zone=31 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 32N +<32632> +proj=utm +zone=32 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 33N +<32633> +proj=utm +zone=33 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 34N +<32634> +proj=utm +zone=34 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 35N +<32635> +proj=utm +zone=35 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 36N +<32636> +proj=utm +zone=36 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 37N +<32637> +proj=utm +zone=37 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 38N +<32638> +proj=utm +zone=38 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 39N +<32639> +proj=utm +zone=39 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 40N +<32640> +proj=utm +zone=40 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 41N +<32641> +proj=utm +zone=41 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 42N +<32642> +proj=utm +zone=42 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 43N +<32643> +proj=utm +zone=43 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 44N +<32644> +proj=utm +zone=44 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 45N +<32645> +proj=utm +zone=45 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 46N +<32646> +proj=utm +zone=46 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 47N +<32647> +proj=utm +zone=47 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 48N +<32648> +proj=utm +zone=48 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 49N +<32649> +proj=utm +zone=49 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 50N +<32650> +proj=utm +zone=50 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 51N +<32651> +proj=utm +zone=51 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 52N +<32652> +proj=utm +zone=52 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 53N +<32653> +proj=utm +zone=53 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 54N +<32654> +proj=utm +zone=54 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 55N +<32655> +proj=utm +zone=55 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 56N +<32656> +proj=utm +zone=56 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 57N +<32657> +proj=utm +zone=57 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 58N +<32658> +proj=utm +zone=58 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 59N +<32659> +proj=utm +zone=59 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 60N +<32660> +proj=utm +zone=60 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UPS North +<32661> +proj=stere +lat_0=90 +lat_ts=90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 1S +<32701> +proj=utm +zone=1 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 2S +<32702> +proj=utm +zone=2 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 3S +<32703> +proj=utm +zone=3 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 4S +<32704> +proj=utm +zone=4 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 5S +<32705> +proj=utm +zone=5 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 6S +<32706> +proj=utm +zone=6 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 7S +<32707> +proj=utm +zone=7 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 8S +<32708> +proj=utm +zone=8 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 9S +<32709> +proj=utm +zone=9 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 10S +<32710> +proj=utm +zone=10 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 11S +<32711> +proj=utm +zone=11 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 12S +<32712> +proj=utm +zone=12 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 13S +<32713> +proj=utm +zone=13 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 14S +<32714> +proj=utm +zone=14 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 15S +<32715> +proj=utm +zone=15 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 16S +<32716> +proj=utm +zone=16 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 17S +<32717> +proj=utm +zone=17 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 18S +<32718> +proj=utm +zone=18 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 19S +<32719> +proj=utm +zone=19 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 20S +<32720> +proj=utm +zone=20 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 21S +<32721> +proj=utm +zone=21 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 22S +<32722> +proj=utm +zone=22 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 23S +<32723> +proj=utm +zone=23 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 24S +<32724> +proj=utm +zone=24 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 25S +<32725> +proj=utm +zone=25 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 26S +<32726> +proj=utm +zone=26 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 27S +<32727> +proj=utm +zone=27 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 28S +<32728> +proj=utm +zone=28 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 29S +<32729> +proj=utm +zone=29 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 30S +<32730> +proj=utm +zone=30 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 31S +<32731> +proj=utm +zone=31 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 32S +<32732> +proj=utm +zone=32 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 33S +<32733> +proj=utm +zone=33 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 34S +<32734> +proj=utm +zone=34 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 35S +<32735> +proj=utm +zone=35 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 36S +<32736> +proj=utm +zone=36 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 37S +<32737> +proj=utm +zone=37 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 38S +<32738> +proj=utm +zone=38 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 39S +<32739> +proj=utm +zone=39 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 40S +<32740> +proj=utm +zone=40 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 41S +<32741> +proj=utm +zone=41 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 42S +<32742> +proj=utm +zone=42 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 43S +<32743> +proj=utm +zone=43 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 44S +<32744> +proj=utm +zone=44 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 45S +<32745> +proj=utm +zone=45 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 46S +<32746> +proj=utm +zone=46 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 47S +<32747> +proj=utm +zone=47 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 48S +<32748> +proj=utm +zone=48 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 49S +<32749> +proj=utm +zone=49 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 50S +<32750> +proj=utm +zone=50 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 51S +<32751> +proj=utm +zone=51 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 52S +<32752> +proj=utm +zone=52 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 53S +<32753> +proj=utm +zone=53 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 54S +<32754> +proj=utm +zone=54 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 55S +<32755> +proj=utm +zone=55 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 56S +<32756> +proj=utm +zone=56 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 57S +<32757> +proj=utm +zone=57 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 58S +<32758> +proj=utm +zone=58 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 59S +<32759> +proj=utm +zone=59 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UTM zone 60S +<32760> +proj=utm +zone=60 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / UPS South +<32761> +proj=stere +lat_0=-90 +lat_ts=-90 +lon_0=0 +k=0.994 +x_0=2000000 +y_0=2000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# WGS 84 / TM 36 SE +<32766> +proj=tmerc +lat_0=0 +lon_0=36 +k=0.999600 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +no_defs no_defs <> +# Pulkovo 1995 GK Zone 2 +<20002> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=krass +units=m no_defs <> +# Pulkovo 1995 GK Zone 3 +<20003> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=krass +units=m no_defs <> +# Pulkovo 1995 GK Zone 2N +<20062> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m no_defs <> +# Pulkovo 1995 GK Zone 3N +<20063> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=500000 +y_0=0 +ellps=krass +units=m no_defs <> +# La Canoa UTM Zone 21N +<24721> +proj=utm +zone=21 +ellps=intl +units=m no_defs <> +# NAD 1927 StatePlane Hawaii 1 FIPS 5101 +<26761> +proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999967 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 no_defs <> +# NAD 1927 StatePlane Hawaii 2 FIPS 5102 +<26762> +proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999967 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 no_defs <> +# NAD 1927 StatePlane Hawaii 3 FIPS 5103 +<26763> +proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.999990 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 no_defs <> +# NAD 1927 StatePlane Hawaii 4 FIPS 5104 +<26764> +proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.999990 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 no_defs <> +# NAD 1927 StatePlane Hawaii 5 FIPS 5105 +<26765> +proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1.000000 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 no_defs <> +# NAD 1927 StatePlane Michigan North FIPS 2111 +<26788> +proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=609601.2192024385 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 no_defs <> +# NAD 1927 StatePlane Michigan Central FIPS 2112 +<26789> +proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43.31666666666667 +lon_0=-84.33333333333333 +x_0=609601.2192024385 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 no_defs <> +# NAD 1927 StatePlane Michigan South FIPS 2113 +<26790> +proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41.5 +lon_0=-84.33333333333333 +x_0=609601.2192024385 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 no_defs <> +# Nord Algerie +<30591> +proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m no_defs <> +# Sud Algerie +<30592> +proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m no_defs <> +# Germany Zone 1 +<31491> +proj=tmerc +lat_0=0 +lon_0=3 +k=1.000000 +x_0=1500000 +y_0=0 +ellps=bessel +units=m no_defs <> +# Germany Zone 2 +<31492> +proj=tmerc +lat_0=0 +lon_0=6 +k=1.000000 +x_0=2500000 +y_0=0 +ellps=bessel +units=m no_defs <> +# Germany Zone 3 +<31493> +proj=tmerc +lat_0=0 +lon_0=9 +k=1.000000 +x_0=3500000 +y_0=0 +ellps=bessel +units=m no_defs <> +# Germany Zone 4 +<31494> +proj=tmerc +lat_0=0 +lon_0=12 +k=1.000000 +x_0=4500000 +y_0=0 +ellps=bessel +units=m no_defs <> +# Germany Zone 5 +<31495> +proj=tmerc +lat_0=0 +lon_0=15 +k=1.000000 +x_0=5500000 +y_0=0 +ellps=bessel +units=m no_defs <> +# NAD 1927 StatePlane Puerto Rico FIPS 5201 +<32059> +proj=lcc +lat_1=18.03333333333334 +lat_2=18.43333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=152400.3048006096 +y_0=0 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 no_defs <> +# NAD 1927 StatePlane Virgin Islands St Croix FIPS 5202 +<32060> +proj=lcc +lat_1=18.03333333333334 +lat_2=18.43333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=152400.3048006096 +y_0=30480.06096012193 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 no_defs <> +# Sphere Plate Carree +<53001> +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Equidistant Cylindrical +<53002> +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Miller Cylindrical +<53003> +proj=mill +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +R_A +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Mercator +<53004> +proj=merc +lat_ts=0 +lon_0=0 +k=1.000000 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Sinusoidal +<53008> +proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Mollweide +<53009> +proj=moll +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Eckert VI +<53010> +proj=eck6 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Eckert V +<53011> +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Eckert IV +<53012> +proj=eck4 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Eckert III +<53013> +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Eckert II +<53014> +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Eckert I +<53015> +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Gall Stereographic +<53016> +proj=gall +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Behrmann +<53017> +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Winkel I +<53018> +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Winkel II +<53019> +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Polyconic +<53021> +proj=poly +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Quartic Authalic +<53022> +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Loximuthal +<53023> +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Bonne +<53024> +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Hotine +<53025> +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Stereographic +<53026> +proj=stere +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Equidistant Conic +<53027> +proj=eqdc +lat_0=0 +lon_0=0 +lat_1=60 +lat_2=60 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Cassini +<53028> +proj=cass +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Van der Grinten I +<53029> +proj=vandg +lon_0=0 +x_0=0 +y_0=0 +R_A +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Robinson +<53030> +proj=robin +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Two Point Equidistant +<53031> +a=6371000 +b=6371000 +units=m no_defs <> +# Sphere Azimuthal Equidistant +<53032> +proj=aeqd +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m no_defs <> +# World Plate Carree +<54001> +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Equidistant Cylindrical +<54002> +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Miller Cylindrical +<54003> +proj=mill +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +R_A +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Mercator +<54004> +proj=merc +lat_ts=0 +lon_0=0 +k=1.000000 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Sinusoidal +<54008> +proj=sinu +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Mollweide +<54009> +proj=moll +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Eckert VI +<54010> +proj=eck6 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Eckert V +<54011> +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Eckert IV +<54012> +proj=eck4 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Eckert III +<54013> +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Eckert II +<54014> +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Eckert I +<54015> +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Gall Stereographic +<54016> +proj=gall +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Behrmann +<54017> +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Winkel I +<54018> +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Winkel II +<54019> +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Polyconic +<54021> +proj=poly +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Quartic Authalic +<54022> +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Loximuthal +<54023> +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Bonne +<54024> +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Hotine +<54025> +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Stereographic +<54026> +proj=stere +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Equidistant Conic +<54027> +proj=eqdc +lat_0=0 +lon_0=0 +lat_1=60 +lat_2=60 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Cassini +<54028> +proj=cass +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Van der Grinten I +<54029> +proj=vandg +lon_0=0 +x_0=0 +y_0=0 +R_A +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Robinson +<54030> +proj=robin +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Two Point Equidistant +<54031> +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# World Azimuthal Equidistant +<54032> +proj=aeqd +lat_0=0 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# NAD 1927 StatePlane Guam FIPS 5400 +<65061> +proj=poly +lat_0=13.47246635277778 +lon_0=-144.7487507055556 +x_0=50000.00000000001 +y_0=50000.00000000001 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Guam FIPS 5400 +<65161> +proj=poly +lat_0=13.47246635277778 +lon_0=-144.7487507055556 +x_0=50000 +y_0=50000 +ellps=GRS80 +datum=NAD83 +units=m no_defs <> +# Canada Albers Equal Area Conic +<102001> +proj=aea +lat_1=50 +lat_2=70 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m no_defs <> +# Canada Lambert Conformal Conic +<102002> +proj=lcc +lat_1=50 +lat_2=70 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m no_defs <> +# USA Contiguous Albers Equal Area Conic +<102003> +proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=37.5 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m no_defs <> +# USA Contiguous Lambert Conformal Conic +<102004> +proj=lcc +lat_1=33 +lat_2=45 +lat_0=39 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m no_defs <> +# USA Contiguous Equidistant Conic +<102005> +proj=eqdc +lat_0=0 +lon_0=0 +lat_1=33 +lat_2=45 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m no_defs <> +# Alaska Albers Equal Area Conic +<102006> +proj=aea +lat_1=55 +lat_2=65 +lat_0=50 +lon_0=-154 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m no_defs <> +# Hawaii Albers Equal Area Conic +<102007> +proj=aea +lat_1=8 +lat_2=18 +lat_0=13 +lon_0=-157 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m no_defs <> +# North America Albers Equal Area Conic +<102008> +proj=aea +lat_1=20 +lat_2=60 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m no_defs <> +# North America Lambert Conformal Conic +<102009> +proj=lcc +lat_1=20 +lat_2=60 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m no_defs <> +# North America Equidistant Conic +<102010> +proj=eqdc +lat_0=0 +lon_0=0 +lat_1=20 +lat_2=60 +x_0=0 +y_0=0 +ellps=GRS80 +datum=NAD83 +units=m no_defs <> +# Africa Sinusoidal +<102011> +proj=sinu +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# Asia Lambert Conformal Conic +<102012> +proj=lcc +lat_1=30 +lat_2=62 +lat_0=0 +lon_0=105 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# Europe Albers Equal Area Conic +<102013> +proj=aea +lat_1=43 +lat_2=62 +lat_0=30 +lon_0=10 +x_0=0 +y_0=0 +ellps=intl +units=m no_defs <> +# Europe Lambert Conformal Conic +<102014> +proj=lcc +lat_1=43 +lat_2=62 +lat_0=30 +lon_0=10 +x_0=0 +y_0=0 +ellps=intl +units=m no_defs <> +# South America Lambert Conformal Conic +<102015> +proj=lcc +lat_1=-5 +lat_2=-42 +lat_0=-32 +lon_0=-60 +x_0=0 +y_0=0 +ellps=aust_SA +units=m no_defs <> +# North Pole Azimuthal Equidistant +<102016> +proj=aeqd +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# North Pole Lambert Azimuthal Equal Area +<102017> +proj=laea +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# North Pole Stereographic +<102018> +proj=stere +lat_0=90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# South Pole Azimuthal Equidistant +<102019> +proj=aeqd +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# South Pole Lambert Azimuthal Equal Area +<102020> +proj=laea +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# South Pole Stereographic +<102021> +proj=stere +lat_0=-90 +lon_0=0 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# Africa Albers Equal Area Conic +<102022> +proj=aea +lat_1=20 +lat_2=-23 +lat_0=0 +lon_0=25 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# Africa Equidistant Conic +<102023> +proj=eqdc +lat_0=0 +lon_0=0 +lat_1=20 +lat_2=-23 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# Africa Lambert Conformal Conic +<102024> +proj=lcc +lat_1=20 +lat_2=-23 +lat_0=0 +lon_0=25 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# Asia North Albers Equal Area Conic +<102025> +proj=aea +lat_1=15 +lat_2=65 +lat_0=30 +lon_0=95 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# Asia North Equidistant Conic +<102026> +proj=eqdc +lat_0=0 +lon_0=0 +lat_1=15 +lat_2=65 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# Asia North Lambert Conformal Conic +<102027> +proj=lcc +lat_1=15 +lat_2=65 +lat_0=30 +lon_0=95 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# Asia South Albers Equal Area Conic +<102028> +proj=aea +lat_1=7 +lat_2=-32 +lat_0=-15 +lon_0=125 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# Asia South Equidistant Conic +<102029> +proj=eqdc +lat_0=0 +lon_0=0 +lat_1=7 +lat_2=-32 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# Asia South Lambert Conformal Conic +<102030> +proj=lcc +lat_1=7 +lat_2=-32 +lat_0=-15 +lon_0=125 +x_0=0 +y_0=0 +ellps=WGS84 +datum=WGS84 +units=m no_defs <> +# Europe Equidistant Conic +<102031> +proj=eqdc +lat_0=0 +lon_0=0 +lat_1=43 +lat_2=62 +x_0=0 +y_0=0 +ellps=intl +units=m no_defs <> +# South America Equidistant Conic +<102032> +proj=eqdc +lat_0=0 +lon_0=0 +lat_1=-5 +lat_2=-42 +x_0=0 +y_0=0 +ellps=aust_SA +units=m no_defs <> +# South America Albers Equal Area Conic +<102033> +proj=aea +lat_1=-5 +lat_2=-42 +lat_0=-32 +lon_0=-60 +x_0=0 +y_0=0 +ellps=aust_SA +units=m no_defs <> +# S-JTSK Krovak +<102065> +proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha=30.28813975277778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m no_defs <> +# S-JTSK Ferro Krovak East North +<102066> +proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha=30.28813975277778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +pm=-17.66666666666667 +units=m no_defs <> +# S-JTSK Krovak East North +<102067> +proj=krovak +lat_0=49.5 +lon_0=24.83333333333333 +alpha=30.28813975277778 +k=0.9999 +x_0=0 +y_0=0 +ellps=bessel +units=m no_defs <> +# Monte Mario Italy 1 +<102091> +proj=tmerc +lat_0=0 +lon_0=9 +k=0.999600 +x_0=1500000 +y_0=0 +ellps=intl +units=m no_defs <> +# Monte Mario Italy 2 +<102092> +proj=tmerc +lat_0=0 +lon_0=15 +k=0.999600 +x_0=2520000 +y_0=0 +ellps=intl +units=m no_defs <> +# NGO 1948 Norway Zone 1 +<102101> +proj=tmerc +lat_0=58 +lon_0=6.05625 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m no_defs <> +# NGO 1948 Norway Zone 2 +<102102> +proj=tmerc +lat_0=58 +lon_0=8.389583333333333 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m no_defs <> +# NGO 1948 Norway Zone 3 +<102103> +proj=tmerc +lat_0=58 +lon_0=10.72291666666667 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m no_defs <> +# NGO 1948 Norway Zone 4 +<102104> +proj=tmerc +lat_0=58 +lon_0=13.22291666666667 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m no_defs <> +# NGO 1948 Norway Zone 5 +<102105> +proj=tmerc +lat_0=58 +lon_0=16.88958333333333 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m no_defs <> +# NGO 1948 Norway Zone 6 +<102106> +proj=tmerc +lat_0=58 +lon_0=20.88958333333333 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m no_defs <> +# NGO 1948 Norway Zone 7 +<102107> +proj=tmerc +lat_0=58 +lon_0=24.88958333333333 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m no_defs <> +# NGO 1948 Norway Zone 8 +<102108> +proj=tmerc +lat_0=58 +lon_0=29.05625 +k=1.000000 +x_0=0 +y_0=0 +a=6377492.018 +b=6356173.508712696 +units=m no_defs <> +# RGF 1993 Lambert 93 +<102110> +proj=lcc +lat_1=44 +lat_2=49 +lat_0=46.5 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +units=m no_defs <> +# Old Hawaiian UTM Zone 4N +<102114> +proj=utm +zone=4 +ellps=clrk66 +units=m no_defs <> +# Old Hawaiian UTM Zone 5N +<102115> +proj=utm +zone=5 +ellps=clrk66 +units=m no_defs <> +# NAD 1927 Michigan GeoRef Feet US +<102120> +proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.255555555556 +k=0.9996 +x_0=2546731.495961392 +y_0=-4354009.816002033 +ellps=clrk66 +datum=NAD27 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 Michigan GeoRef Feet US +<102121> +proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.255555555556 +k=0.9996 +x_0=2546731.495961392 +y_0=-4354009.816002033 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1927 Michigan GeoRef Meters +<102122> +proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.255555555556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=clrk66 +datum=NAD27 +units=m no_defs <> +# NAD 1983 Michigan GeoRef Meters +<102123> +proj=omerc +lat_0=45.30916666666666 +lonc=-86 +alpha=337.255555555556 +k=0.9996 +x_0=2546731.496 +y_0=-4354009.816 +ellps=GRS80 +datum=NAD83 +units=m no_defs <> +# NGO 1948 UTM Zone 32N +<102132> +proj=utm +zone=32 +a=6377492.018 +b=6356173.508712696 +units=m no_defs <> +# NGO 1948 UTM Zone 33N +<102133> +proj=utm +zone=33 +a=6377492.018 +b=6356173.508712696 +units=m no_defs <> +# NGO 1948 UTM Zone 34N +<102134> +proj=utm +zone=34 +a=6377492.018 +b=6356173.508712696 +units=m no_defs <> +# NGO 1948 UTM Zone 35N +<102135> +proj=utm +zone=35 +a=6377492.018 +b=6356173.508712696 +units=m no_defs <> +# Hong Kong 1980 Grid +<102140> +proj=tmerc +lat_0=22.31213333333334 +lon_0=114.1785555555556 +k=1.000000 +x_0=836694.05 +y_0=819069.8 +ellps=intl +units=m no_defs <> +# Hong Kong 1980 UTM Zone 49N +<102141> +proj=utm +zone=49 +ellps=intl +units=m no_defs <> +# Hong Kong 1980 UTM Zone 50N +<102142> +proj=utm +zone=50 +ellps=intl +units=m no_defs <> +# Tokyo UTM Zone 51N +<102151> +proj=utm +zone=51 +ellps=bessel +units=m no_defs <> +# Tokyo UTM Zone 52N +<102152> +proj=utm +zone=52 +ellps=bessel +units=m no_defs <> +# Tokyo UTM Zone 53N +<102153> +proj=utm +zone=53 +ellps=bessel +units=m no_defs <> +# Tokyo UTM Zone 54N +<102154> +proj=utm +zone=54 +ellps=bessel +units=m no_defs <> +# Tokyo UTM Zone 55N +<102155> +proj=utm +zone=55 +ellps=bessel +units=m no_defs <> +# Tokyo UTM Zone 56N +<102156> +proj=utm +zone=56 +ellps=bessel +units=m no_defs <> +# Datum 73 Hayford Gauss IGeoE +<102160> +proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1.000000 +x_0=200180.598 +y_0=299913.01 +ellps=intl +units=m no_defs <> +# Datum 73 Hayford Gauss IPCC +<102161> +proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1.000000 +x_0=180.598 +y_0=-86.98999999999999 +ellps=intl +units=m no_defs <> +# Graciosa Base SW 1948 UTM Zone 26N +<102162> +proj=utm +zone=26 +ellps=intl +units=m no_defs <> +# Lisboa Bessel Bonne +<102163> +ellps=bessel +units=m no_defs <> +# Lisboa Hayford Gauss IGeoE +<102164> +proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1.000000 +x_0=200000 +y_0=300000 +ellps=intl +units=m no_defs <> +# Lisboa Hayford Gauss IPCC +<102165> +proj=tmerc +lat_0=39.66666666666666 +lon_0=-8.131906111111112 +k=1.000000 +x_0=0 +y_0=0 +ellps=intl +units=m no_defs <> +# Observ Meteorologico 1939 UTM Zone 25N +<102166> +proj=utm +zone=25 +ellps=intl +units=m no_defs <> +# Porto Santo 1936 UTM Zone 28N +<102167> +proj=utm +zone=28 +ellps=intl +units=m no_defs <> +# Sao Braz UTM Zone 26N +<102168> +proj=utm +zone=26 +ellps=intl +units=m no_defs <> +# Selvagem Grande 1938 UTM Zone 28N +<102169> +proj=utm +zone=28 +ellps=intl +units=m no_defs <> +# Nord Maroc Degree +<102191> +proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=-5.4 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356514.999904194 +units=m no_defs <> +# Sud Maroc Degree +<102192> +proj=lcc +lat_1=29.7 +lat_0=29.7 +lon_0=-5.4 +k_0=0.9996155960000001 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356514.999904194 +units=m no_defs <> +# Sahara Degree +<102193> +proj=lcc +lat_1=26.1 +lat_0=26.1 +lon_0=-5.4 +k_0=0.9996 +x_0=1200000 +y_0=400000 +a=6378249.2 +b=6356514.999904194 +units=m no_defs <> +# NAD 1983 HARN StatePlane Alabama East FIPS 0101 +<102229> +proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.999960 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Alabama West FIPS 0102 +<102230> +proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane California I FIPS 0401 +<102241> +proj=lcc +lat_1=40 +lat_2=41.66666666666666 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane California II FIPS 0402 +<102242> +proj=lcc +lat_1=38.33333333333334 +lat_2=39.83333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane California III FIPS 0403 +<102243> +proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane California IV FIPS 0404 +<102244> +proj=lcc +lat_1=36 +lat_2=37.25 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane California V FIPS 0405 +<102245> +proj=lcc +lat_1=34.03333333333333 +lat_2=35.46666666666667 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane California VI FIPS 0406 +<102246> +proj=lcc +lat_1=32.78333333333333 +lat_2=33.88333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Arizona East FIPS 0201 +<102248> +proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Arizona Central FIPS 0202 +<102249> +proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Arizona West FIPS 0203 +<102250> +proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933 +x_0=213360 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Arkansas North FIPS 0301 +<102251> +proj=lcc +lat_1=34.93333333333333 +lat_2=36.23333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Arkansas South FIPS 0302 +<102252> +proj=lcc +lat_1=33.3 +lat_2=34.76666666666667 +lat_0=32.66666666666666 +lon_0=-92 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Colorado North FIPS 0501 +<102253> +proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Colorado Central FIPS 0502 +<102254> +proj=lcc +lat_1=38.45 +lat_2=39.75 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Colorado South FIPS 0503 +<102255> +proj=lcc +lat_1=37.23333333333333 +lat_2=38.43333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Connecticut FIPS 0600 +<102256> +proj=lcc +lat_1=41.2 +lat_2=41.86666666666667 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Delaware FIPS 0700 +<102257> +proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Florida East FIPS 0901 +<102258> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Florida West FIPS 0902 +<102259> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Florida North FIPS 0903 +<102260> +proj=lcc +lat_1=29.58333333333333 +lat_2=30.75 +lat_0=29 +lon_0=-84.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Hawaii 1 FIPS 5101 +<102261> +proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999967 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Hawaii 2 FIPS 5102 +<102262> +proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999967 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Hawaii 3 FIPS 5103 +<102263> +proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.999990 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Hawaii 4 FIPS 5104 +<102264> +proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.999990 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Hawaii 5 FIPS 5105 +<102265> +proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1.000000 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Georgia East FIPS 1001 +<102266> +proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999900 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Georgia West FIPS 1002 +<102267> +proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999900 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Idaho East FIPS 1101 +<102268> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.999947 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Idaho Central FIPS 1102 +<102269> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.999947 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Idaho West FIPS 1103 +<102270> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933 +x_0=800000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Illinois East FIPS 1201 +<102271> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.999975 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Illinois West FIPS 1202 +<102272> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Indiana East FIPS 1301 +<102273> +proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999967 +x_0=100000 +y_0=250000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Indiana West FIPS 1302 +<102274> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999967 +x_0=900000 +y_0=250000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Kansas North FIPS 1501 +<102277> +proj=lcc +lat_1=38.71666666666667 +lat_2=39.78333333333333 +lat_0=38.33333333333334 +lon_0=-98 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Kansas South FIPS 1502 +<102278> +proj=lcc +lat_1=37.26666666666667 +lat_2=38.56666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=400000 +y_0=400000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Kentucky North FIPS 1601 +<102279> +proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Kentucky South FIPS 1602 +<102280> +proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000 +y_0=500000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Louisiana North FIPS 1701 +<102281> +proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666666 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Louisiana South FIPS 1702 +<102282> +proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Maine East FIPS 1801 +<102283> +proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.999900 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Maine West FIPS 1802 +<102284> +proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999967 +x_0=900000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Maryland FIPS 1900 +<102285> +proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.66666666666666 +lon_0=-77 +x_0=400000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Massachusetts Mainland FIPS 2001 +<102286> +proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333333 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Massachusetts Island FIPS 2002 +<102287> +proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Michigan North FIPS 2111 +<102288> +proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=8000000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Michigan Central FIPS 2112 +<102289> +proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Michigan South FIPS 2113 +<102290> +proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Minnesota North FIPS 2201 +<102291> +proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Minnesota Central FIPS 2202 +<102292> +proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=45 +lon_0=-94.25 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Minnesota South FIPS 2203 +<102293> +proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666667 +lat_0=43 +lon_0=-94 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Mississippi East FIPS 2301 +<102294> +proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.999950 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Mississippi West FIPS 2302 +<102295> +proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.999950 +x_0=700000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Missouri East FIPS 2401 +<102296> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Missouri Central FIPS 2402 +<102297> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Missouri West FIPS 2403 +<102298> +proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941 +x_0=850000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Montana FIPS 2500 +<102300> +proj=lcc +lat_1=45 +lat_2=49 +lat_0=44.25 +lon_0=-109.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Nebraska FIPS 2600 +<102304> +proj=lcc +lat_1=40 +lat_2=43 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Nevada East FIPS 2701 +<102307> +proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.999900 +x_0=200000 +y_0=8000000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Nevada Central FIPS 2702 +<102308> +proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.999900 +x_0=500000 +y_0=6000000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Nevada West FIPS 2703 +<102309> +proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.999900 +x_0=800000 +y_0=4000000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane New Hampshire FIPS 2800 +<102310> +proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999967 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane New Jersey FIPS 2900 +<102311> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.999900 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane New Mexico East FIPS 3001 +<102312> +proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909 +x_0=165000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane New Mexico Central FIPS 3002 +<102313> +proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.999900 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane New Mexico West FIPS 3003 +<102314> +proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999917 +x_0=830000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane New York East FIPS 3101 +<102315> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.999900 +x_0=150000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane New York Central FIPS 3102 +<102316> +proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999938 +x_0=250000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane New York West FIPS 3103 +<102317> +proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999938 +x_0=350000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane New York Long Island FIPS 3104 +<102318> +proj=lcc +lat_1=40.66666666666666 +lat_2=41.03333333333333 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane North Dakota North FIPS 3301 +<102320> +proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane North Dakota South FIPS 3302 +<102321> +proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Ohio North FIPS 3401 +<102322> +proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Ohio South FIPS 3402 +<102323> +proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Oklahoma North FIPS 3501 +<102324> +proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666667 +lat_0=35 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Oklahoma South FIPS 3502 +<102325> +proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Oregon North FIPS 3601 +<102326> +proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Oregon South FIPS 3602 +<102327> +proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Rhode Island FIPS 3800 +<102330> +proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.999994 +x_0=100000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane South Dakota North FIPS 4001 +<102334> +proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane South Dakota South FIPS 4002 +<102335> +proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Tennessee FIPS 4100 +<102336> +proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Texas North FIPS 4201 +<102337> +proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Texas North Central FIPS 4202 +<102338> +proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666667 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000 +y_0=2000000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Texas Central FIPS 4203 +<102339> +proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Texas South Central FIPS 4204 +<102340> +proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333334 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000 +y_0=4000000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Texas South FIPS 4205 +<102341> +proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=5000000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Utah North FIPS 4301 +<102342> +proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=1000000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Utah Central FIPS 4302 +<102343> +proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000 +y_0=2000000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Utah South FIPS 4303 +<102344> +proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000 +y_0=3000000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Vermont FIPS 4400 +<102345> +proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Virginia North FIPS 4501 +<102346> +proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3500000 +y_0=2000000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Virginia South FIPS 4502 +<102347> +proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3500000 +y_0=1000000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Washington North FIPS 4601 +<102348> +proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Washington South FIPS 4602 +<102349> +proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane West Virginia North FIPS 4701 +<102350> +proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79.5 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane West Virginia South FIPS 4702 +<102351> +proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333333 +lat_0=37 +lon_0=-81 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Wisconsin North FIPS 4801 +<102352> +proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Wisconsin Central FIPS 4802 +<102353> +proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Wisconsin South FIPS 4803 +<102354> +proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666667 +lat_0=42 +lon_0=-90 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Wyoming East FIPS 4901 +<102355> +proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.999938 +x_0=200000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Wyoming East Central FIPS 4902 +<102356> +proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.999938 +x_0=400000 +y_0=100000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Wyoming West Central FIPS 4903 +<102357> +proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.999938 +x_0=600000 +y_0=0 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Wyoming West FIPS 4904 +<102358> +proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.999938 +x_0=800000 +y_0=100000 +ellps=GRS80 +units=m no_defs <> +# NAD 1983 HARN StatePlane Puerto Rico Virgin Islands FIPS 5200 +<102361> +proj=lcc +lat_1=18.03333333333334 +lat_2=18.43333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +units=m no_defs <> +# Nord Algerie Ancienne Degree +<102491> +proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356514.999904194 +units=m no_defs <> +# Sud Algerie Ancienne Degree +<102492> +proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500000 +y_0=300000 +a=6378249.2 +b=6356514.999904194 +units=m no_defs <> +# NTF France I degrees +<102581> +proj=lcc +lat_1=49.5 +lat_0=49.5 +lon_0=2.337229166666667 +k_0=0.999877341 +x_0=600000 +y_0=1200000 +a=6378249.2 +b=6356514.999904194 +units=m no_defs <> +# NTF France II degrees +<102582> +proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=2.337229166666667 +k_0=0.99987742 +x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356514.999904194 +units=m no_defs <> +# NTF France III degrees +<102583> +proj=lcc +lat_1=44.1 +lat_0=44.1 +lon_0=2.337229166666667 +k_0=0.999877499 +x_0=600000 +y_0=3200000 +a=6378249.2 +b=6356514.999904194 +units=m no_defs <> +# NTF France IV degrees +<102584> +proj=lcc +lat_1=42.165 +lat_0=42.165 +lon_0=2.337229166666667 +k_0=0.99994471 +x_0=234.358 +y_0=4185861.369 +a=6378249.2 +b=6356514.999904194 +units=m no_defs <> +# Nord Algerie Degree +<102591> +proj=lcc +lat_1=36 +lat_0=36 +lon_0=2.7 +k_0=0.999625544 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m no_defs <> +# Sud Algerie Degree +<102592> +proj=lcc +lat_1=33.3 +lat_0=33.3 +lon_0=2.7 +k_0=0.999625769 +x_0=500135 +y_0=300090 +ellps=clrk80 +units=m no_defs <> +# NAD 1983 StatePlane Alabama East FIPS 0101 Feet +<102629> +proj=tmerc +lat_0=30.5 +lon_0=-85.83333333333333 +k=0.999960 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Alabama West FIPS 0102 Feet +<102630> +proj=tmerc +lat_0=30 +lon_0=-87.5 +k=0.999933 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Alaska 1 FIPS 5001 Feet +<102631> +proj=omerc +lat_0=57 +lonc=-133.6666666666667 +alpha=-36.86989764583333 +k=0.9999 +x_0=4999999.999999999 +y_0=-4999999.999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Alaska 2 FIPS 5002 Feet +<102632> +proj=tmerc +lat_0=54 +lon_0=-142 +k=0.999900 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Alaska 3 FIPS 5003 Feet +<102633> +proj=tmerc +lat_0=54 +lon_0=-146 +k=0.999900 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Alaska 4 FIPS 5004 Feet +<102634> +proj=tmerc +lat_0=54 +lon_0=-150 +k=0.999900 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Alaska 5 FIPS 5005 Feet +<102635> +proj=tmerc +lat_0=54 +lon_0=-154 +k=0.999900 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Alaska 6 FIPS 5006 Feet +<102636> +proj=tmerc +lat_0=54 +lon_0=-158 +k=0.999900 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Alaska 7 FIPS 5007 Feet +<102637> +proj=tmerc +lat_0=54 +lon_0=-162 +k=0.999900 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Alaska 8 FIPS 5008 Feet +<102638> +proj=tmerc +lat_0=54 +lon_0=-166 +k=0.999900 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Alaska 9 FIPS 5009 Feet +<102639> +proj=tmerc +lat_0=54 +lon_0=-170 +k=0.999900 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Alaska 10 FIPS 5010 Feet +<102640> +proj=lcc +lat_1=51.83333333333334 +lat_2=53.83333333333334 +lat_0=51 +lon_0=-176 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane California I FIPS 0401 Feet +<102641> +proj=lcc +lat_1=40 +lat_2=41.66666666666666 +lat_0=39.33333333333334 +lon_0=-122 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane California II FIPS 0402 Feet +<102642> +proj=lcc +lat_1=38.33333333333334 +lat_2=39.83333333333334 +lat_0=37.66666666666666 +lon_0=-122 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane California III FIPS 0403 Feet +<102643> +proj=lcc +lat_1=37.06666666666667 +lat_2=38.43333333333333 +lat_0=36.5 +lon_0=-120.5 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane California IV FIPS 0404 Feet +<102644> +proj=lcc +lat_1=36 +lat_2=37.25 +lat_0=35.33333333333334 +lon_0=-119 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane California V FIPS 0405 Feet +<102645> +proj=lcc +lat_1=34.03333333333333 +lat_2=35.46666666666667 +lat_0=33.5 +lon_0=-118 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane California VI FIPS 0406 Feet +<102646> +proj=lcc +lat_1=32.78333333333333 +lat_2=33.88333333333333 +lat_0=32.16666666666666 +lon_0=-116.25 +x_0=2000000 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Arizona East FIPS 0201 Feet +<102648> +proj=tmerc +lat_0=31 +lon_0=-110.1666666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Arizona Central FIPS 0202 Feet +<102649> +proj=tmerc +lat_0=31 +lon_0=-111.9166666666667 +k=0.999900 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Arizona West FIPS 0203 Feet +<102650> +proj=tmerc +lat_0=31 +lon_0=-113.75 +k=0.999933 +x_0=213360 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Arkansas North FIPS 0301 Feet +<102651> +proj=lcc +lat_1=34.93333333333333 +lat_2=36.23333333333333 +lat_0=34.33333333333334 +lon_0=-92 +x_0=399999.9999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Arkansas South FIPS 0302 Feet +<102652> +proj=lcc +lat_1=33.3 +lat_2=34.76666666666667 +lat_0=32.66666666666666 +lon_0=-92 +x_0=399999.9999999999 +y_0=399999.9999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Colorado North FIPS 0501 Feet +<102653> +proj=lcc +lat_1=39.71666666666667 +lat_2=40.78333333333333 +lat_0=39.33333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Colorado Central FIPS 0502 Feet +<102654> +proj=lcc +lat_1=38.45 +lat_2=39.75 +lat_0=37.83333333333334 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Colorado South FIPS 0503 Feet +<102655> +proj=lcc +lat_1=37.23333333333333 +lat_2=38.43333333333333 +lat_0=36.66666666666666 +lon_0=-105.5 +x_0=914401.8289 +y_0=304800.6096 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Connecticut FIPS 0600 Feet +<102656> +proj=lcc +lat_1=41.2 +lat_2=41.86666666666667 +lat_0=40.83333333333334 +lon_0=-72.75 +x_0=304800.6096 +y_0=152400.3048 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Delaware FIPS 0700 Feet +<102657> +proj=tmerc +lat_0=38 +lon_0=-75.41666666666667 +k=0.999995 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Florida East FIPS 0901 Feet +<102658> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-81 +k=0.999941 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Florida West FIPS 0902 Feet +<102659> +proj=tmerc +lat_0=24.33333333333333 +lon_0=-82 +k=0.999941 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Florida North FIPS 0903 Feet +<102660> +proj=lcc +lat_1=29.58333333333333 +lat_2=30.75 +lat_0=29 +lon_0=-84.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Hawaii 1 FIPS 5101 Feet +<102661> +proj=tmerc +lat_0=18.83333333333333 +lon_0=-155.5 +k=0.999967 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Hawaii 2 FIPS 5102 Feet +<102662> +proj=tmerc +lat_0=20.33333333333333 +lon_0=-156.6666666666667 +k=0.999967 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Hawaii 3 FIPS 5103 Feet +<102663> +proj=tmerc +lat_0=21.16666666666667 +lon_0=-158 +k=0.999990 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Hawaii 4 FIPS 5104 Feet +<102664> +proj=tmerc +lat_0=21.83333333333333 +lon_0=-159.5 +k=0.999990 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Hawaii 5 FIPS 5105 Feet +<102665> +proj=tmerc +lat_0=21.66666666666667 +lon_0=-160.1666666666667 +k=1.000000 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Georgia East FIPS 1001 Feet +<102666> +proj=tmerc +lat_0=30 +lon_0=-82.16666666666667 +k=0.999900 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Georgia West FIPS 1002 Feet +<102667> +proj=tmerc +lat_0=30 +lon_0=-84.16666666666667 +k=0.999900 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Idaho East FIPS 1101 Feet +<102668> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-112.1666666666667 +k=0.999947 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Idaho Central FIPS 1102 Feet +<102669> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-114 +k=0.999947 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Idaho West FIPS 1103 Feet +<102670> +proj=tmerc +lat_0=41.66666666666666 +lon_0=-115.75 +k=0.999933 +x_0=799999.9999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Illinois East FIPS 1201 Feet +<102671> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-88.33333333333333 +k=0.999975 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Illinois West FIPS 1202 Feet +<102672> +proj=tmerc +lat_0=36.66666666666666 +lon_0=-90.16666666666667 +k=0.999941 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Indiana East FIPS 1301 Feet +<102673> +proj=tmerc +lat_0=37.5 +lon_0=-85.66666666666667 +k=0.999967 +x_0=100000 +y_0=250000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Indiana West FIPS 1302 Feet +<102674> +proj=tmerc +lat_0=37.5 +lon_0=-87.08333333333333 +k=0.999967 +x_0=900000.0000000001 +y_0=250000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Iowa North FIPS 1401 Feet +<102675> +proj=lcc +lat_1=42.06666666666667 +lat_2=43.26666666666667 +lat_0=41.5 +lon_0=-93.5 +x_0=1500000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Iowa South FIPS 1402 Feet +<102676> +proj=lcc +lat_1=40.61666666666667 +lat_2=41.78333333333333 +lat_0=40 +lon_0=-93.5 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Kansas North FIPS 1501 Feet +<102677> +proj=lcc +lat_1=38.71666666666667 +lat_2=39.78333333333333 +lat_0=38.33333333333334 +lon_0=-98 +x_0=399999.9999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Kansas South FIPS 1502 Feet +<102678> +proj=lcc +lat_1=37.26666666666667 +lat_2=38.56666666666667 +lat_0=36.66666666666666 +lon_0=-98.5 +x_0=399999.9999999999 +y_0=399999.9999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Kentucky North FIPS 1601 Feet +<102679> +proj=lcc +lat_1=37.96666666666667 +lat_2=38.96666666666667 +lat_0=37.5 +lon_0=-84.25 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Kentucky South FIPS 1602 Feet +<102680> +proj=lcc +lat_1=36.73333333333333 +lat_2=37.93333333333333 +lat_0=36.33333333333334 +lon_0=-85.75 +x_0=500000.0000000002 +y_0=500000.0000000002 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Louisiana North FIPS 1701 Feet +<102681> +proj=lcc +lat_1=31.16666666666667 +lat_2=32.66666666666666 +lat_0=30.5 +lon_0=-92.5 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Louisiana South FIPS 1702 Feet +<102682> +proj=lcc +lat_1=29.3 +lat_2=30.7 +lat_0=28.5 +lon_0=-91.33333333333333 +x_0=1000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Maine East FIPS 1801 Feet +<102683> +proj=tmerc +lat_0=43.66666666666666 +lon_0=-68.5 +k=0.999900 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Maine West FIPS 1802 Feet +<102684> +proj=tmerc +lat_0=42.83333333333334 +lon_0=-70.16666666666667 +k=0.999967 +x_0=900000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Maryland FIPS 1900 Feet +<102685> +proj=lcc +lat_1=38.3 +lat_2=39.45 +lat_0=37.66666666666666 +lon_0=-77 +x_0=399999.9999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Massachusetts Mainland FIPS 2001 Feet +<102686> +proj=lcc +lat_1=41.71666666666667 +lat_2=42.68333333333333 +lat_0=41 +lon_0=-71.5 +x_0=200000 +y_0=750000.0000000001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Massachusetts Island FIPS 2002 Feet +<102687> +proj=lcc +lat_1=41.28333333333333 +lat_2=41.48333333333333 +lat_0=41 +lon_0=-70.5 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Michigan North FIPS 2111 Feet +<102688> +proj=lcc +lat_1=45.48333333333333 +lat_2=47.08333333333334 +lat_0=44.78333333333333 +lon_0=-87 +x_0=7999999.999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Michigan Central FIPS 2112 Feet +<102689> +proj=lcc +lat_1=44.18333333333333 +lat_2=45.7 +lat_0=43.31666666666667 +lon_0=-84.36666666666666 +x_0=6000000.000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Michigan South FIPS 2113 Feet +<102690> +proj=lcc +lat_1=42.1 +lat_2=43.66666666666666 +lat_0=41.5 +lon_0=-84.36666666666666 +x_0=4000000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Minnesota North FIPS 2201 Feet +<102691> +proj=lcc +lat_1=47.03333333333333 +lat_2=48.63333333333333 +lat_0=46.5 +lon_0=-93.09999999999999 +x_0=799999.9999999999 +y_0=100000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Minnesota Central FIPS 2202 Feet +<102692> +proj=lcc +lat_1=45.61666666666667 +lat_2=47.05 +lat_0=45 +lon_0=-94.25 +x_0=799999.9999999999 +y_0=100000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Minnesota South FIPS 2203 Feet +<102693> +proj=lcc +lat_1=43.78333333333333 +lat_2=45.21666666666667 +lat_0=43 +lon_0=-94 +x_0=799999.9999999999 +y_0=100000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Mississippi East FIPS 2301 Feet +<102694> +proj=tmerc +lat_0=29.5 +lon_0=-88.83333333333333 +k=0.999950 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Mississippi West FIPS 2302 Feet +<102695> +proj=tmerc +lat_0=29.5 +lon_0=-90.33333333333333 +k=0.999950 +x_0=700000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Missouri East FIPS 2401 Feet +<102696> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-90.5 +k=0.999933 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Missouri Central FIPS 2402 Feet +<102697> +proj=tmerc +lat_0=35.83333333333334 +lon_0=-92.5 +k=0.999933 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Missouri West FIPS 2403 Feet +<102698> +proj=tmerc +lat_0=36.16666666666666 +lon_0=-94.5 +k=0.999941 +x_0=850000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Montana FIPS 2500 Feet +<102700> +proj=lcc +lat_1=45 +lat_2=49 +lat_0=44.25 +lon_0=-109.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Nebraska FIPS 2600 Feet +<102704> +proj=lcc +lat_1=40 +lat_2=43 +lat_0=39.83333333333334 +lon_0=-100 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Nevada East FIPS 2701 Feet +<102707> +proj=tmerc +lat_0=34.75 +lon_0=-115.5833333333333 +k=0.999900 +x_0=200000 +y_0=7999999.999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Nevada Central FIPS 2702 Feet +<102708> +proj=tmerc +lat_0=34.75 +lon_0=-116.6666666666667 +k=0.999900 +x_0=500000.0000000002 +y_0=6000000.000000001 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Nevada West FIPS 2703 Feet +<102709> +proj=tmerc +lat_0=34.75 +lon_0=-118.5833333333333 +k=0.999900 +x_0=799999.9999999999 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane New Hampshire FIPS 2800 Feet +<102710> +proj=tmerc +lat_0=42.5 +lon_0=-71.66666666666667 +k=0.999967 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane New Jersey FIPS 2900 Feet +<102711> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.999900 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane New Mexico East FIPS 3001 Feet +<102712> +proj=tmerc +lat_0=31 +lon_0=-104.3333333333333 +k=0.999909 +x_0=165000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane New Mexico Central FIPS 3002 Feet +<102713> +proj=tmerc +lat_0=31 +lon_0=-106.25 +k=0.999900 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane New Mexico West FIPS 3003 Feet +<102714> +proj=tmerc +lat_0=31 +lon_0=-107.8333333333333 +k=0.999917 +x_0=829999.9999999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane New York East FIPS 3101 Feet +<102715> +proj=tmerc +lat_0=38.83333333333334 +lon_0=-74.5 +k=0.999900 +x_0=150000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane New York Central FIPS 3102 Feet +<102716> +proj=tmerc +lat_0=40 +lon_0=-76.58333333333333 +k=0.999938 +x_0=250000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane New York West FIPS 3103 Feet +<102717> +proj=tmerc +lat_0=40 +lon_0=-78.58333333333333 +k=0.999938 +x_0=350000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane New York Long Island FIPS 3104 Feet +<102718> +proj=lcc +lat_1=40.66666666666666 +lat_2=41.03333333333333 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane North Carolina FIPS 3200 Feet +<102719> +proj=lcc +lat_1=34.33333333333334 +lat_2=36.16666666666666 +lat_0=33.75 +lon_0=-79 +x_0=609601.2199999999 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane North Dakota North FIPS 3301 Feet +<102720> +proj=lcc +lat_1=47.43333333333333 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-100.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane North Dakota South FIPS 3302 Feet +<102721> +proj=lcc +lat_1=46.18333333333333 +lat_2=47.48333333333333 +lat_0=45.66666666666666 +lon_0=-100.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Ohio North FIPS 3401 Feet +<102722> +proj=lcc +lat_1=40.43333333333333 +lat_2=41.7 +lat_0=39.66666666666666 +lon_0=-82.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Ohio South FIPS 3402 Feet +<102723> +proj=lcc +lat_1=38.73333333333333 +lat_2=40.03333333333333 +lat_0=38 +lon_0=-82.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Oklahoma North FIPS 3501 Feet +<102724> +proj=lcc +lat_1=35.56666666666667 +lat_2=36.76666666666667 +lat_0=35 +lon_0=-98 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Oklahoma South FIPS 3502 Feet +<102725> +proj=lcc +lat_1=33.93333333333333 +lat_2=35.23333333333333 +lat_0=33.33333333333334 +lon_0=-98 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Oregon North FIPS 3601 Feet +<102726> +proj=lcc +lat_1=44.33333333333334 +lat_2=46 +lat_0=43.66666666666666 +lon_0=-120.5 +x_0=2500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Oregon South FIPS 3602 Feet +<102727> +proj=lcc +lat_1=42.33333333333334 +lat_2=44 +lat_0=41.66666666666666 +lon_0=-120.5 +x_0=1500000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Pennsylvania North FIPS 3701 Feet +<102728> +proj=lcc +lat_1=40.88333333333333 +lat_2=41.95 +lat_0=40.16666666666666 +lon_0=-77.75 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Pennsylvania South FIPS 3702 Feet +<102729> +proj=lcc +lat_1=39.93333333333333 +lat_2=40.96666666666667 +lat_0=39.33333333333334 +lon_0=-77.75 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Rhode Island FIPS 3800 Feet +<102730> +proj=tmerc +lat_0=41.08333333333334 +lon_0=-71.5 +k=0.999994 +x_0=100000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane South Carolina FIPS 3900 Feet +<102733> +proj=lcc +lat_1=32.5 +lat_2=34.83333333333334 +lat_0=31.83333333333333 +lon_0=-81 +x_0=609600.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane South Dakota North FIPS 4001 Feet +<102734> +proj=lcc +lat_1=44.41666666666666 +lat_2=45.68333333333333 +lat_0=43.83333333333334 +lon_0=-100 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane South Dakota South FIPS 4002 Feet +<102735> +proj=lcc +lat_1=42.83333333333334 +lat_2=44.4 +lat_0=42.33333333333334 +lon_0=-100.3333333333333 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Tennessee FIPS 4100 Feet +<102736> +proj=lcc +lat_1=35.25 +lat_2=36.41666666666666 +lat_0=34.33333333333334 +lon_0=-86 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Texas North FIPS 4201 Feet +<102737> +proj=lcc +lat_1=34.65 +lat_2=36.18333333333333 +lat_0=34 +lon_0=-101.5 +x_0=200000 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Texas North Central FIPS 4202 Feet +<102738> +proj=lcc +lat_1=32.13333333333333 +lat_2=33.96666666666667 +lat_0=31.66666666666667 +lon_0=-98.5 +x_0=600000.0000000001 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Texas Central FIPS 4203 Feet +<102739> +proj=lcc +lat_1=30.11666666666667 +lat_2=31.88333333333333 +lat_0=29.66666666666667 +lon_0=-100.3333333333333 +x_0=700000 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Texas South Central FIPS 4204 Feet +<102740> +proj=lcc +lat_1=28.38333333333333 +lat_2=30.28333333333334 +lat_0=27.83333333333333 +lon_0=-99 +x_0=600000.0000000001 +y_0=4000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Texas South FIPS 4205 Feet +<102741> +proj=lcc +lat_1=26.16666666666667 +lat_2=27.83333333333333 +lat_0=25.66666666666667 +lon_0=-98.5 +x_0=300000 +y_0=4999999.999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Utah North FIPS 4301 Feet +<102742> +proj=lcc +lat_1=40.71666666666667 +lat_2=41.78333333333333 +lat_0=40.33333333333334 +lon_0=-111.5 +x_0=500000.0000000002 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Utah Central FIPS 4302 Feet +<102743> +proj=lcc +lat_1=39.01666666666667 +lat_2=40.65 +lat_0=38.33333333333334 +lon_0=-111.5 +x_0=500000.0000000002 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Utah South FIPS 4303 Feet +<102744> +proj=lcc +lat_1=37.21666666666667 +lat_2=38.35 +lat_0=36.66666666666666 +lon_0=-111.5 +x_0=500000.0000000002 +y_0=3000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Vermont FIPS 4400 Feet +<102745> +proj=tmerc +lat_0=42.5 +lon_0=-72.5 +k=0.999964 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Virginia North FIPS 4501 Feet +<102746> +proj=lcc +lat_1=38.03333333333333 +lat_2=39.2 +lat_0=37.66666666666666 +lon_0=-78.5 +x_0=3499999.999999999 +y_0=2000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Virginia South FIPS 4502 Feet +<102747> +proj=lcc +lat_1=36.76666666666667 +lat_2=37.96666666666667 +lat_0=36.33333333333334 +lon_0=-78.5 +x_0=3499999.999999999 +y_0=1000000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Washington North FIPS 4601 Feet +<102748> +proj=lcc +lat_1=47.5 +lat_2=48.73333333333333 +lat_0=47 +lon_0=-120.8333333333333 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Washington South FIPS 4602 Feet +<102749> +proj=lcc +lat_1=45.83333333333334 +lat_2=47.33333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0000000002 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane West Virginia North FIPS 4701 Feet +<102750> +proj=lcc +lat_1=39 +lat_2=40.25 +lat_0=38.5 +lon_0=-79.5 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane West Virginia South FIPS 4702 Feet +<102751> +proj=lcc +lat_1=37.48333333333333 +lat_2=38.88333333333333 +lat_0=37 +lon_0=-81 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Wisconsin North FIPS 4801 Feet +<102752> +proj=lcc +lat_1=45.56666666666667 +lat_2=46.76666666666667 +lat_0=45.16666666666666 +lon_0=-90 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Wisconsin Central FIPS 4802 Feet +<102753> +proj=lcc +lat_1=44.25 +lat_2=45.5 +lat_0=43.83333333333334 +lon_0=-90 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Wisconsin South FIPS 4803 Feet +<102754> +proj=lcc +lat_1=42.73333333333333 +lat_2=44.06666666666667 +lat_0=42 +lon_0=-90 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Wyoming East FIPS 4901 Feet +<102755> +proj=tmerc +lat_0=40.5 +lon_0=-105.1666666666667 +k=0.999938 +x_0=200000 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Wyoming East Central FIPS 4902 Feet +<102756> +proj=tmerc +lat_0=40.5 +lon_0=-107.3333333333333 +k=0.999938 +x_0=399999.9999999999 +y_0=100000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Wyoming West Central FIPS 4903 Feet +<102757> +proj=tmerc +lat_0=40.5 +lon_0=-108.75 +k=0.999938 +x_0=600000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Wyoming West FIPS 4904 Feet +<102758> +proj=tmerc +lat_0=40.5 +lon_0=-110.0833333333333 +k=0.999938 +x_0=799999.9999999999 +y_0=100000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Puerto Rico Virgin Islands FIPS 5200 Feet +<102761> +proj=lcc +lat_1=18.03333333333334 +lat_2=18.43333333333333 +lat_0=17.83333333333333 +lon_0=-66.43333333333334 +x_0=200000 +y_0=200000 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# NAD 1983 StatePlane Guam FIPS 5400 Feet +<102766> +proj=poly +lat_0=13.47246635277778 +lon_0=-144.7487507055556 +x_0=49999.99999999999 +y_0=49999.99999999999 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 no_defs <> +# Belge Lambert 1972 +<103300> +proj=lcc +lat_1=49.8333339 +lat_2=51.16666733333333 +lat_0=90 +lon_0=4.367486666666666 +x_0=150000.01256 +y_0=5400088.4378 +ellps=intl +units=m no_defs <> +# GCS International 1967 +<4023> +proj=longlat +ellps=aust_SA no_defs <> +# GCS Bern 1898 +<4217> +proj=longlat +ellps=bessel no_defs <> +# GCS Voirol Unifie 1960 +<4305> +proj=longlat +ellps=clrk80 no_defs <> +# GCS Montserrat 1958 +<4404> +proj=longlat +ellps=clrk80 no_defs <> +# GCS Voirol Unifie 1960 Paris +<4812> +proj=longlat +ellps=clrk80 +pm=2.337229166666667 no_defs <> +# GCS WGS 1966 +<37001> +proj=longlat +ellps=WGS66 no_defs <> +# GCS Fischer 1960 +<37002> +proj=longlat +a=6378166 +b=6356784.283607107 no_defs <> +# GCS Fischer 1968 +<37003> +proj=longlat +a=6378150 +b=6356768.337244385 no_defs <> +# GCS Fischer Modified +<37004> +proj=longlat +ellps=fschr60m no_defs <> +# GCS Hough 1960 +<37005> +proj=longlat +a=6378270 +b=6356794.343434343 no_defs <> +# GCS Everest Modified 1969 +<37006> +proj=longlat +a=6377295.664 +b=6356094.667915204 no_defs <> +# GCS Walbeck +<37007> +proj=longlat +a=6376896 +b=6355834.846687363 no_defs <> +# GCS Sphere ARC INFO +<37008> +proj=longlat +a=6370997 +b=6370997 no_defs <> +# GCS European 1979 +<37201> +proj=longlat +ellps=intl no_defs <> +# GCS Everest Bangladesh +<37202> +proj=longlat +a=6377276.345 +b=6356075.413140239 no_defs <> +# GCS Everest India Nepal +<37203> +proj=longlat +a=6377301.243 +b=6356100.230165385 no_defs <> +# GCS Hjorsey 1955 +<37204> +proj=longlat +ellps=intl no_defs <> +# GCS Hong Kong 1963 +<37205> +proj=longlat +ellps=intl no_defs <> +# GCS Oman +<37206> +proj=longlat +ellps=clrk80 no_defs <> +# GCS South Asia Singapore +<37207> +proj=longlat +ellps=fschr60m no_defs <> +# GCS Ayabelle +<37208> +proj=longlat +ellps=clrk80 no_defs <> +# GCS Point 58 +<37211> +proj=longlat +ellps=clrk80 no_defs <> +# GCS Beacon E 1945 +<37212> +proj=longlat +ellps=intl no_defs <> +# GCS Tern Island 1961 +<37213> +proj=longlat +ellps=intl no_defs <> +# GCS Astro 1952 +<37214> +proj=longlat +ellps=intl no_defs <> +# GCS Bellevue IGN +<37215> +proj=longlat +ellps=intl no_defs <> +# GCS Canton 1966 +<37216> +proj=longlat +ellps=intl no_defs <> +# GCS Chatham Island 1971 +<37217> +proj=longlat +ellps=intl no_defs <> +# GCS DOS 1968 +<37218> +proj=longlat +ellps=intl no_defs <> +# GCS Easter Island 1967 +<37219> +proj=longlat +ellps=intl no_defs <> +# GCS Guam 1963 +<37220> +proj=longlat +ellps=clrk66 no_defs <> +# GCS GUX 1 +<37221> +proj=longlat +ellps=intl no_defs <> +# GCS Johnston Island 1961 +<37222> +proj=longlat +ellps=intl no_defs <> +# GCS Carthage Degree +<37223> +proj=longlat +a=6378249.2 +b=6356514.999904194 no_defs <> +# GCS Midway 1961 +<37224> +proj=longlat +ellps=intl no_defs <> +# GCS Pitcairn 1967 +<37226> +proj=longlat +ellps=intl no_defs <> +# GCS Santo DOS 1965 +<37227> +proj=longlat +ellps=intl no_defs <> +# GCS Viti Levu 1916 +<37228> +proj=longlat +ellps=clrk80 no_defs <> +# GCS Wake Eniwetok 1960 +<37229> +proj=longlat +a=6378270 +b=6356794.343434343 no_defs <> +# GCS Wake Island 1952 +<37230> +proj=longlat +ellps=intl no_defs <> +# GCS Anna 1 1965 +<37231> +proj=longlat +ellps=aust_SA no_defs <> +# GCS Gan 1970 +<37232> +proj=longlat +ellps=intl no_defs <> +# GCS ISTS 073 1969 +<37233> +proj=longlat +ellps=intl no_defs <> +# GCS Kerguelen Island 1949 +<37234> +proj=longlat +ellps=intl no_defs <> +# GCS Reunion +<37235> +proj=longlat +ellps=intl no_defs <> +# GCS Ascension Island 1958 +<37237> +proj=longlat +ellps=intl no_defs <> +# GCS DOS 71 4 +<37238> +proj=longlat +ellps=intl no_defs <> +# GCS Cape Canaveral +<37239> +proj=longlat +ellps=clrk66 no_defs <> +# GCS Fort Thomas 1955 +<37240> +proj=longlat +ellps=clrk80 no_defs <> +# GCS Graciosa Base SW 1948 +<37241> +proj=longlat +ellps=intl no_defs <> +# GCS ISTS 061 1968 +<37242> +proj=longlat +ellps=intl no_defs <> +# GCS LC5 1961 +<37243> +proj=longlat +ellps=clrk66 no_defs <> +# GCS Observ Meteorologico 1939 +<37245> +proj=longlat +ellps=intl no_defs <> +# GCS Pico de Las Nieves +<37246> +proj=longlat +ellps=intl no_defs <> +# GCS Porto Santo 1936 +<37247> +proj=longlat +ellps=intl no_defs <> +# GCS Sao Braz +<37249> +proj=longlat +ellps=intl no_defs <> +# GCS Selvagem Grande 1938 +<37250> +proj=longlat +ellps=intl no_defs <> +# GCS Tristan 1968 +<37251> +proj=longlat +ellps=intl no_defs <> +# GCS Samoa 1962 +<37252> +proj=longlat +ellps=clrk66 no_defs <> +# GCS Camp Area +<37253> +proj=longlat +ellps=intl no_defs <> +# GCS Deception Island +<37254> +proj=longlat +ellps=clrk80 no_defs <> +# GCS Gunung Segara +<37255> +proj=longlat +ellps=bessel no_defs <> +# GCS S42 Hungary +<37257> +proj=longlat +ellps=krass no_defs <> +# GCS Kusaie 1951 +<37259> +proj=longlat +ellps=intl no_defs <> +# GCS Alaskan Islands +<37260> +proj=longlat +ellps=clrk66 no_defs <> +# GCS Assumed Geographic 1 +<104000> +proj=longlat +ellps=clrk66 +datum=NAD27 no_defs <> +# GCS Estonia 1937 +<104101> +proj=longlat +ellps=bessel no_defs <> +# GCS Hermannskogel +<104102> +proj=longlat +ellps=bessel no_defs <> +# GCS Sierra Leone 1960 +<104103> +proj=longlat +ellps=clrk80 no_defs <> +# GCS Hong Kong 1980 +<104104> +proj=longlat +ellps=intl no_defs <> +# GCS Datum Lisboa Bessel +<104105> +proj=longlat +ellps=bessel no_defs <> +# GCS Datum Lisboa Hayford +<104106> +proj=longlat +ellps=intl no_defs <> +# GCS RGF 1993 +<104107> +proj=longlat +ellps=GRS80 no_defs <> +# GCS NZGD 2000 +<104108> +proj=longlat +ellps=GRS80 no_defs <> +# GCS Merchich Degree +<104261> +proj=longlat +a=6378249.2 +b=6356514.999904194 no_defs <> +# GCS Voirol 1875 Degree +<104304> +proj=longlat +a=6378249.2 +b=6356514.999904194 no_defs <> +# GCS Voirol Unifie 1960 Degree +<104305> +proj=longlat +ellps=clrk80 no_defs <> diff --git a/src/main/webapp/WEB-INF/classes/nad/nad27 b/src/main/webapp/WEB-INF/classes/nad/nad27 new file mode 100644 index 0000000..6e06900 --- /dev/null +++ b/src/main/webapp/WEB-INF/classes/nad/nad27 @@ -0,0 +1,809 @@ +# SCCSID @(#)nad27 4.1 92/12/20 GIE +# proj +init files for: +# +# State Plane Coordinate Systems, +# North American Datum 1927 + +# 101: alabama east: nad27 +<101> proj=tmerc datum=NAD27 +lon_0=-85d50 lat_0=30d30 k=.99996 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 102: alabama west: nad27 +<102> proj=tmerc datum=NAD27 +lon_0=-87d30 lat_0=30 k=.9999333333333333 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5010: alaska zone no. 10: nad27 +<5010> proj=lcc datum=NAD27 +lon_0=-176 lat_1=53d50 lat_2=51d50 lat_0=51 +x_0=914401.8288036576 y_0=0 +no_defs <> + +# 5300: american samoa: nad27 +<5300> proj=lcc datum=NAD27 +lon_0=-170 lat_1=-14d16 lat_2=-14d16 lat_0=-14d16 +x_0=152400.3048006096 y_0=95169.31165862332 +no_defs <> + +# 201: arizona east: nad27 +<201> proj=tmerc datum=NAD27 +lon_0=-110d10 lat_0=31 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 202: arizona central: nad27 +<202> proj=tmerc datum=NAD27 +lon_0=-111d55 lat_0=31 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 203: arizona west: nad27 +<203> proj=tmerc datum=NAD27 +lon_0=-113d45 lat_0=31 k=.9999333333333333 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 301: arkansas north: nad27 +<301> proj=lcc datum=NAD27 +lon_0=-92 lat_1=36d14 lat_2=34d56 lat_0=34d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 302: arkansas south: nad27 +<302> proj=lcc datum=NAD27 +lon_0=-92 lat_1=34d46 lat_2=33d18 lat_0=32d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 401: california i: nad27 +<401> proj=lcc datum=NAD27 +lon_0=-122 lat_1=41d40 lat_2=40 lat_0=39d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 402: california ii: nad27 +<402> proj=lcc datum=NAD27 +lon_0=-122 lat_1=39d50 lat_2=38d20 lat_0=37d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 403: california iii: nad27 +<403> proj=lcc datum=NAD27 +lon_0=-120d30 lat_1=38d26 lat_2=37d4 lat_0=36d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 404: california iv: nad27 +<404> proj=lcc datum=NAD27 +lon_0=-119 lat_1=37d15 lat_2=36 lat_0=35d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 405: california v: nad27 +<405> proj=lcc datum=NAD27 +lon_0=-118 lat_1=35d28 lat_2=34d2 lat_0=33d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 406: california vi: nad27 +<406> proj=lcc datum=NAD27 +lon_0=-116d15 lat_1=33d53 lat_2=32d47 lat_0=32d10 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 407: california vii: nad27 +<407> proj=lcc datum=NAD27 +lon_0=-118d20 lat_1=34d25 lat_2=33d52 lat_0=34d8 +x_0=1276106.450596901 y_0=1268253.006858014 +no_defs <> + +# 501: colorado north: nad27 +<501> proj=lcc datum=NAD27 +lon_0=-105d30 lat_1=40d47 lat_2=39d43 lat_0=39d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 502: colorado central: nad27 +<502> proj=lcc datum=NAD27 +lon_0=-105d30 lat_1=39d45 lat_2=38d27 lat_0=37d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 503: colorado south: nad27 +<503> proj=lcc datum=NAD27 +lon_0=-105d30 lat_1=38d26 lat_2=37d14 lat_0=36d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 600: connecticut ---: nad27 +<600> proj=lcc datum=NAD27 +lon_0=-72d45 lat_1=41d52 lat_2=41d12 lat_0=40d50 +x_0=182880.3657607315 y_0=0 +no_defs <> + +# 700: delaware ---: nad27 +<700> proj=tmerc datum=NAD27 +lon_0=-75d25 lat_0=38 k=.999995 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 901: florida east: nad27 +<901> proj=tmerc datum=NAD27 +lon_0=-81 lat_0=24d20 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 902: florida west: nad27 +<902> proj=tmerc datum=NAD27 +lon_0=-82 lat_0=24d20 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 903: florida north: nad27 +<903> proj=lcc datum=NAD27 +lon_0=-84d30 lat_1=30d45 lat_2=29d35 lat_0=29 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1001: georgia east: nad27 +<1001> proj=tmerc datum=NAD27 +lon_0=-82d10 lat_0=30 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1002: georgia west: nad27 +<1002> proj=tmerc datum=NAD27 +lon_0=-84d10 lat_0=30 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5101: hawaii 1: nad27 +<5101> proj=tmerc datum=NAD27 +lon_0=-155d30 lat_0=18d50 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5102: hawaii 2: nad27 +<5102> proj=tmerc datum=NAD27 +lon_0=-156d40 lat_0=20d20 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5103: hawaii 3: nad27 +<5103> proj=tmerc datum=NAD27 +lon_0=-158 lat_0=21d10 k=.99999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5104: hawaii 4: nad27 +<5104> proj=tmerc datum=NAD27 +lon_0=-159d30 lat_0=21d50 k=.99999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5105: hawaii 5: nad27 +<5105> proj=tmerc datum=NAD27 +lon_0=-160d10 lat_0=21d40 k=1 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1101: idaho east: nad27 +<1101> proj=tmerc datum=NAD27 +lon_0=-112d10 lat_0=41d40 k=.9999473684210526 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1102: idaho central: nad27 +<1102> proj=tmerc datum=NAD27 +lon_0=-114 lat_0=41d40 k=.9999473684210526 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1103: idaho west: nad27 +<1103> proj=tmerc datum=NAD27 +lon_0=-115d45 lat_0=41d40 k=.9999333333333333 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1201: illinois east: nad27 +<1201> proj=tmerc datum=NAD27 +lon_0=-88d20 lat_0=36d40 k=.999975 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1202: illinois west: nad27 +<1202> proj=tmerc datum=NAD27 +lon_0=-90d10 lat_0=36d40 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1301: indiana east: nad27 +<1301> proj=tmerc datum=NAD27 +lon_0=-85d40 lat_0=37d30 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1302: indiana west: nad27 +<1302> proj=tmerc datum=NAD27 +lon_0=-87d5 lat_0=37d30 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1401: iowa north: nad27 +<1401> proj=lcc datum=NAD27 +lon_0=-93d30 lat_1=43d16 lat_2=42d4 lat_0=41d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1402: iowa south: nad27 +<1402> proj=lcc datum=NAD27 +lon_0=-93d30 lat_1=41d47 lat_2=40d37 lat_0=40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1501: kansas north: nad27 +<1501> proj=lcc datum=NAD27 +lon_0=-98 lat_1=39d47 lat_2=38d43 lat_0=38d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1502: kansas south: nad27 +<1502> proj=lcc datum=NAD27 +lon_0=-98d30 lat_1=38d34 lat_2=37d16 lat_0=36d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1601: kentucky north: nad27 +<1601> proj=lcc datum=NAD27 +lon_0=-84d15 lat_1=38d58 lat_2=37d58 lat_0=37d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1602: kentucky south: nad27 +<1602> proj=lcc datum=NAD27 +lon_0=-85d45 lat_1=37d56 lat_2=36d44 lat_0=36d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1701: louisiana north: nad27 +<1701> proj=lcc datum=NAD27 +lon_0=-92d30 lat_1=32d40 lat_2=31d10 lat_0=30d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1702: louisiana south: nad27 +<1702> proj=lcc datum=NAD27 +lon_0=-91d20 lat_1=30d42 lat_2=29d18 lat_0=28d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1703: louisiana offshore: nad27 +<1703> proj=lcc datum=NAD27 +lon_0=-91d20 lat_1=27d50 lat_2=26d10 lat_0=25d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 1801: maine east: nad27 +<1801> proj=tmerc datum=NAD27 +lon_0=-68d30 lat_0=43d50 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1802: maine west: nad27 +<1802> proj=tmerc datum=NAD27 +lon_0=-70d10 lat_0=42d50 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 1900: maryland ---: nad27 +<1900> proj=lcc datum=NAD27 +lon_0=-77 lat_1=39d27 lat_2=38d18 lat_0=37d50 +x_0=243840.4876809754 y_0=0 +no_defs <> + +# 2001: massachusetts mainland: nad27 +<2001> proj=lcc datum=NAD27 +lon_0=-71d30 lat_1=42d41 lat_2=41d43 lat_0=41 +x_0=182880.3657607315 y_0=0 +no_defs <> + +# 2002: massachusetts island: nad27 +<2002> proj=lcc datum=NAD27 +lon_0=-70d30 lat_1=41d29 lat_2=41d17 lat_0=41 +x_0=60960.12192024384 y_0=0 +no_defs <> + +# 2101: michigan east: nad27 +<2101> proj=tmerc datum=NAD27 +lon_0=-83d40 lat_0=41d30 k=.9999428571428571 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2102: michigan central/m: nad27 +<2102> proj=tmerc datum=NAD27 +lon_0=-85d45 lat_0=41d30 k=.9999090909090909 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2103: michigan west: nad27 +<2103> proj=tmerc datum=NAD27 +lon_0=-88d45 lat_0=41d30 k=.9999090909090909 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2111: michigan north: nad27 +<2111> proj=lcc a=6378450.047 es=.006768657997291094 +lon_0=-87 lat_1=47d5 lat_2=45d29 lat_0=44d47 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2112: michigan central/l: nad27 +<2112> proj=lcc a=6378450.047 es=.006768657997291094 +lon_0=-84d20 lat_1=45d42 lat_2=44d11 lat_0=43d19 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2113: michigan south: nad27 +<2113> proj=lcc a=6378450.047 es=.006768657997291094 +lon_0=-84d20 lat_1=43d40 lat_2=42d6 lat_0=41d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2201: minnesota north: nad27 +<2201> proj=lcc datum=NAD27 +lon_0=-93d6 lat_1=48d38 lat_2=47d2 lat_0=46d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2202: minnesota central: nad27 +<2202> proj=lcc datum=NAD27 +lon_0=-94d15 lat_1=47d3 lat_2=45d37 lat_0=45 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2203: minnesota south: nad27 +<2203> proj=lcc datum=NAD27 +lon_0=-94 lat_1=45d13 lat_2=43d47 lat_0=43 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2301: mississippi east: nad27 +<2301> proj=tmerc datum=NAD27 +lon_0=-88d50 lat_0=29d40 k=.99996 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2302: mississippi west: nad27 +<2302> proj=tmerc datum=NAD27 +lon_0=-90d20 lat_0=30d30 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2401: missouri east: nad27 +<2401> proj=tmerc datum=NAD27 +lon_0=-90d30 lat_0=35d50 k=.9999333333333333 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2402: missouri central: nad27 +<2402> proj=tmerc datum=NAD27 +lon_0=-92d30 lat_0=35d50 k=.9999333333333333 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2403: missouri west: nad27 +<2403> proj=tmerc datum=NAD27 +lon_0=-94d30 lat_0=36d10 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2501: montana north: nad27 +<2501> proj=lcc datum=NAD27 +lon_0=-109d30 lat_1=48d43 lat_2=47d51 lat_0=47 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2502: montana central: nad27 +<2502> proj=lcc datum=NAD27 +lon_0=-109d30 lat_1=47d53 lat_2=46d27 lat_0=45d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2503: montana south: nad27 +<2503> proj=lcc datum=NAD27 +lon_0=-109d30 lat_1=46d24 lat_2=44d52 lat_0=44 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2601: nebraska north: nad27 +<2601> proj=lcc datum=NAD27 +lon_0=-100 lat_1=42d49 lat_2=41d51 lat_0=41d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2602: nebraska south: nad27 +<2602> proj=lcc datum=NAD27 +lon_0=-99d30 lat_1=41d43 lat_2=40d17 lat_0=39d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 2701: nevada east: nad27 +<2701> proj=tmerc datum=NAD27 +lon_0=-115d35 lat_0=34d45 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2702: nevada central: nad27 +<2702> proj=tmerc datum=NAD27 +lon_0=-116d40 lat_0=34d45 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2703: nevada west: nad27 +<2703> proj=tmerc datum=NAD27 +lon_0=-118d35 lat_0=34d45 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2800: new hampshire ---: nad27 +<2800> proj=tmerc datum=NAD27 +lon_0=-71d40 lat_0=42d30 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 2900: new jersey ---: nad27 +<2900> proj=tmerc datum=NAD27 +lon_0=-74d40 lat_0=38d50 k=.999975 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3001: new mexico east: nad27 +<3001> proj=tmerc datum=NAD27 +lon_0=-104d20 lat_0=31 k=.9999090909090909 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3002: new mexico central: nad27 +<3002> proj=tmerc datum=NAD27 +lon_0=-106d15 lat_0=31 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3003: new mexico west: nad27 +<3003> proj=tmerc datum=NAD27 +lon_0=-107d50 lat_0=31 k=.9999166666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3101: new york east: nad27 +<3101> proj=tmerc datum=NAD27 +lon_0=-74d20 lat_0=40 k=.9999666666666667 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3102: new york central: nad27 +<3102> proj=tmerc datum=NAD27 +lon_0=-76d35 lat_0=40 k=.9999375 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3103: new york west: nad27 +<3103> proj=tmerc datum=NAD27 +lon_0=-78d35 lat_0=40 k=.9999375 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3104: new york long island: nad27 +<3104> proj=lcc datum=NAD27 +lon_0=-74 lat_1=41d2 lat_2=40d40 lat_0=40d30 +x_0=609601.2192024384 y_0=30480.06096012192 +no_defs <> + +# 3200: north carolina ---: nad27 +<3200> proj=lcc datum=NAD27 +lon_0=-79 lat_1=36d10 lat_2=34d20 lat_0=33d45 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3301: north dakota north: nad27 +<3301> proj=lcc datum=NAD27 +lon_0=-100d30 lat_1=48d44 lat_2=47d26 lat_0=47 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3302: north dakota south: nad27 +<3302> proj=lcc datum=NAD27 +lon_0=-100d30 lat_1=47d29 lat_2=46d11 lat_0=45d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3401: ohio north: nad27 +<3401> proj=lcc datum=NAD27 +lon_0=-82d30 lat_1=41d42 lat_2=40d26 lat_0=39d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3402: ohio south: nad27 +<3402> proj=lcc datum=NAD27 +lon_0=-82d30 lat_1=40d2 lat_2=38d44 lat_0=38 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3501: oklahoma north: nad27 +<3501> proj=lcc datum=NAD27 +lon_0=-98 lat_1=36d46 lat_2=35d34 lat_0=35 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3502: oklahoma south: nad27 +<3502> proj=lcc datum=NAD27 +lon_0=-98 lat_1=35d14 lat_2=33d56 lat_0=33d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3601: oregon north: nad27 +<3601> proj=lcc datum=NAD27 +lon_0=-120d30 lat_1=46 lat_2=44d20 lat_0=43d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3602: oregon south: nad27 +<3602> proj=lcc datum=NAD27 +lon_0=-120d30 lat_1=44 lat_2=42d20 lat_0=41d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3701: pennsylvania north: nad27 +<3701> proj=lcc datum=NAD27 +lon_0=-77d45 lat_1=41d57 lat_2=40d53 lat_0=40d10 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3702: pennsylvania south: nad27 +<3702> proj=lcc datum=NAD27 +lon_0=-77d45 lat_1=40d58 lat_2=39d56 lat_0=39d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3800: rhode island ---: nad27 +<3800> proj=tmerc datum=NAD27 +lon_0=-71d30 lat_0=41d5 k=.99999375 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 3901: south carolina north: nad27 +<3901> proj=lcc datum=NAD27 +lon_0=-81 lat_1=34d58 lat_2=33d46 lat_0=33 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 3902: south carolina south: nad27 +<3902> proj=lcc datum=NAD27 +lon_0=-81 lat_1=33d40 lat_2=32d20 lat_0=31d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4001: south dakota north: nad27 +<4001> proj=lcc datum=NAD27 +lon_0=-100 lat_1=45d41 lat_2=44d25 lat_0=43d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4002: south dakota south: nad27 +<4002> proj=lcc datum=NAD27 +lon_0=-100d20 lat_1=44d24 lat_2=42d50 lat_0=42d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4100: tennessee ---: nad27 +<4100> proj=lcc datum=NAD27 +lon_0=-86 lat_1=36d25 lat_2=35d15 lat_0=34d40 +x_0=609601.2192024384 y_0=30480.06096012192 +no_defs <> + +# 4201: texas north: nad27 +<4201> proj=lcc datum=NAD27 +lon_0=-101d30 lat_1=36d11 lat_2=34d39 lat_0=34 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4202: texas north central: nad27 +<4202> proj=lcc datum=NAD27 +lon_0=-97d30 lat_1=33d58 lat_2=32d8 lat_0=31d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4203: texas central: nad27 +<4203> proj=lcc datum=NAD27 +lon_0=-100d20 lat_1=31d53 lat_2=30d7 lat_0=29d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4204: texas south central: nad27 +<4204> proj=lcc datum=NAD27 +lon_0=-99 lat_1=30d17 lat_2=28d23 lat_0=27d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4205: texas south: nad27 +<4205> proj=lcc datum=NAD27 +lon_0=-98d30 lat_1=27d50 lat_2=26d10 lat_0=25d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4301: utah north: nad27 +<4301> proj=lcc datum=NAD27 +lon_0=-111d30 lat_1=41d47 lat_2=40d43 lat_0=40d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4302: utah central: nad27 +<4302> proj=lcc datum=NAD27 +lon_0=-111d30 lat_1=40d39 lat_2=39d1 lat_0=38d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4303: utah south: nad27 +<4303> proj=lcc datum=NAD27 +lon_0=-111d30 lat_1=38d21 lat_2=37d13 lat_0=36d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4400: vermont ---: nad27 +<4400> proj=tmerc datum=NAD27 +lon_0=-72d30 lat_0=42d30 k=.9999642857142857 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 4501: virginia north: nad27 +<4501> proj=lcc datum=NAD27 +lon_0=-78d30 lat_1=39d12 lat_2=38d2 lat_0=37d40 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4502: virginia south: nad27 +<4502> proj=lcc datum=NAD27 +lon_0=-78d30 lat_1=37d58 lat_2=36d46 lat_0=36d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4601: washington north: nad27 +<4601> proj=lcc datum=NAD27 +lon_0=-120d50 lat_1=48d44 lat_2=47d30 lat_0=47 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4602: washington south: nad27 +<4602> proj=lcc datum=NAD27 +lon_0=-120d30 lat_1=47d20 lat_2=45d50 lat_0=45d20 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4701: west virginia north: nad27 +<4701> proj=lcc datum=NAD27 +lon_0=-79d30 lat_1=40d15 lat_2=39 lat_0=38d30 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4702: west virginia south: nad27 +<4702> proj=lcc datum=NAD27 +lon_0=-81 lat_1=38d53 lat_2=37d29 lat_0=37 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4801: wisconsin north: nad27 +<4801> proj=lcc datum=NAD27 +lon_0=-90 lat_1=46d46 lat_2=45d34 lat_0=45d10 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4802: wisconsin central: nad27 +<4802> proj=lcc datum=NAD27 +lon_0=-90 lat_1=45d30 lat_2=44d15 lat_0=43d50 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4803: wisconsin south: nad27 +<4803> proj=lcc datum=NAD27 +lon_0=-90 lat_1=44d4 lat_2=42d44 lat_0=42 +x_0=609601.2192024384 y_0=0 +no_defs <> + +# 4901: wyoming east: nad27 +<4901> proj=tmerc datum=NAD27 +lon_0=-105d10 lat_0=40d40 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 4902: wyoming east central: nad27 +<4902> proj=tmerc datum=NAD27 +lon_0=-107d20 lat_0=40d40 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 4903: wyoming west central: nad27 +<4903> proj=tmerc datum=NAD27 +lon_0=-108d45 lat_0=40d40 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 4904: wyoming west: nad27 +<4904> proj=tmerc datum=NAD27 +lon_0=-110d5 lat_0=40d40 k=.9999411764705882 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5001: alaska zone no. 1: nad27 +<5001> proj=omerc datum=NAD27 +k=.9999 lonc=-133d40 lat_0=57 alpha=-36d52'11.6315 +x_0=818585.5672270928 y_0=575219.2451072642 +no_defs <> + +# 5002: alaska zone no. 2: nad27 +<5002> proj=tmerc datum=NAD27 +lon_0=-142 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5003: alaska zone no. 3: nad27 +<5003> proj=tmerc datum=NAD27 +lon_0=-146 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5004: alaska zone no. 4: nad27 +<5004> proj=tmerc datum=NAD27 +lon_0=-150 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5005: alaska zone no. 5: nad27 +<5005> proj=tmerc datum=NAD27 +lon_0=-154 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5006: alaska zone no. 6: nad27 +<5006> proj=tmerc datum=NAD27 +lon_0=-158 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5007: alaska zone no. 7: nad27 +<5007> proj=tmerc datum=NAD27 +lon_0=-162 lat_0=54 k=.9999 +x_0=213360.4267208534 y_0=0 +no_defs <> + +# 5008: alaska zone no. 8: nad27 +<5008> proj=tmerc datum=NAD27 +lon_0=-166 lat_0=54 k=.9999 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5009: alaska zone no. 9: nad27 +<5009> proj=tmerc datum=NAD27 +lon_0=-170 lat_0=54 k=.9999 +x_0=182880.3657607315 y_0=0 +no_defs <> + +# 5201: puerto rico and virgin islands: nad27 +<5201> proj=lcc datum=NAD27 +lon_0=-66d26 lat_1=18d26 lat_2=18d2 lat_0=17d50 +x_0=152400.3048006096 y_0=0 +no_defs <> + +# 5202: virgin islands st. croix: nad27 +<5202> proj=lcc datum=NAD27 +lon_0=-66d26 lat_1=18d26 lat_2=18d2 lat_0=17d50 +x_0=152400.3048006096 y_0=30480.06096012192 +no_defs <> + +# 5400: guam island: nad27 +<5400> proj=poly datum=NAD27 +x_0=50000 y_0=50000 lon_0=144d44'55.50254 lat_0=13d28'20.87887 +no_defs <> + diff --git a/src/main/webapp/WEB-INF/classes/nad/nad83 b/src/main/webapp/WEB-INF/classes/nad/nad83 new file mode 100644 index 0000000..e740a4d --- /dev/null +++ b/src/main/webapp/WEB-INF/classes/nad/nad83 @@ -0,0 +1,744 @@ +# SCCSID @(#)nad83 4.1 92/12/20 GIE +# proj +init files for: +# +# State Plane Coordinate Systems, +# North American Datum 1983 + +# 101: alabama east: nad83 +<101> proj=tmerc datum=NAD83 +lon_0=-85d50 lat_0=30d30 k=.99996 +x_0=200000 y_0=0 +no_defs <> + +# 102: alabama west: nad83 +<102> proj=tmerc datum=NAD83 +lon_0=-87d30 lat_0=30 k=.9999333333333333 +x_0=600000 y_0=0 +no_defs <> + +# 5010: alaska zone no. 10: nad83 +<5010> proj=lcc datum=NAD83 +lon_0=-176 lat_1=53d50 lat_2=51d50 lat_0=51 +x_0=1000000 y_0=0 +no_defs <> + +# 201: arizona east: nad83 +<201> proj=tmerc datum=NAD83 +lon_0=-110d10 lat_0=31 k=.9999 +x_0=213360 y_0=0 +no_defs <> + +# 202: arizona central: nad83 +<202> proj=tmerc datum=NAD83 +lon_0=-111d55 lat_0=31 k=.9999 +x_0=213360 y_0=0 +no_defs <> + +# 203: arizona west: nad83 +<203> proj=tmerc datum=NAD83 +lon_0=-113d45 lat_0=31 k=.9999333333333333 +x_0=213360 y_0=0 +no_defs <> + +# 301: arkansas north: nad83 +<301> proj=lcc datum=NAD83 +lon_0=-92 lat_1=36d14 lat_2=34d56 lat_0=34d20 +x_0=400000 y_0=0 +no_defs <> + +# 302: arkansas south: nad83 +<302> proj=lcc datum=NAD83 +lon_0=-92 lat_1=34d46 lat_2=33d18 lat_0=32d40 +x_0=400000 y_0=400000 +no_defs <> + +# 401: california i: nad83 +<401> proj=lcc datum=NAD83 +lon_0=-122 lat_1=41d40 lat_2=40 lat_0=39d20 +x_0=2000000 y_0=500000 +no_defs <> + +# 402: california ii: nad83 +<402> proj=lcc datum=NAD83 +lon_0=-122 lat_1=39d50 lat_2=38d20 lat_0=37d40 +x_0=2000000 y_0=500000 +no_defs <> + +# 403: california iii: nad83 +<403> proj=lcc datum=NAD83 +lon_0=-120d30 lat_1=38d26 lat_2=37d4 lat_0=36d30 +x_0=2000000 y_0=500000 +no_defs <> + +# 404: california iv: nad83 +<404> proj=lcc datum=NAD83 +lon_0=-119 lat_1=37d15 lat_2=36 lat_0=35d20 +x_0=2000000 y_0=500000 +no_defs <> + +# 405: california v: nad83 +<405> proj=lcc datum=NAD83 +lon_0=-118 lat_1=35d28 lat_2=34d2 lat_0=33d30 +x_0=2000000 y_0=500000 +no_defs <> + +# 406: california vi: nad83 +<406> proj=lcc datum=NAD83 +lon_0=-116d15 lat_1=33d53 lat_2=32d47 lat_0=32d10 +x_0=2000000 y_0=500000 +no_defs <> + +# 501: colorado north: nad83 +<501> proj=lcc datum=NAD83 +lon_0=-105d30 lat_1=40d47 lat_2=39d43 lat_0=39d20 +x_0=914401.8289 y_0=304800.6096 +no_defs <> + +# 502: colorado central: nad83 +<502> proj=lcc datum=NAD83 +lon_0=-105d30 lat_1=39d45 lat_2=38d27 lat_0=37d50 +x_0=914401.8289 y_0=304800.6096 +no_defs <> + +# 503: colorado south: nad83 +<503> proj=lcc datum=NAD83 +lon_0=-105d30 lat_1=38d26 lat_2=37d14 lat_0=36d40 +x_0=914401.8289 y_0=304800.6096 +no_defs <> + +# 600: connecticut ---: nad83 +<600> proj=lcc datum=NAD83 +lon_0=-72d45 lat_1=41d52 lat_2=41d12 lat_0=40d50 +x_0=304800.6096 y_0=152400.3048 +no_defs <> + +# 700: delaware ---: nad83 +<700> proj=tmerc datum=NAD83 +lon_0=-75d25 lat_0=38 k=.999995 +x_0=200000 y_0=0 +no_defs <> + +# 901: florida east: nad83 +<901> proj=tmerc datum=NAD83 +lon_0=-81 lat_0=24d20 k=.9999411764705882 +x_0=200000 y_0=0 +no_defs <> + +# 902: florida west: nad83 +<902> proj=tmerc datum=NAD83 +lon_0=-82 lat_0=24d20 k=.9999411764705882 +x_0=200000 y_0=0 +no_defs <> + +# 903: florida north: nad83 +<903> proj=lcc datum=NAD83 +lon_0=-84d30 lat_1=30d45 lat_2=29d35 lat_0=29 +x_0=600000 y_0=0 +no_defs <> + +# 1001: georgia east: nad83 +<1001> proj=tmerc datum=NAD83 +lon_0=-82d10 lat_0=30 k=.9999 +x_0=200000 y_0=0 +no_defs <> + +# 1002: georgia west: nad83 +<1002> proj=tmerc datum=NAD83 +lon_0=-84d10 lat_0=30 k=.9999 +x_0=700000 y_0=0 +no_defs <> + +# 5101: hawaii 1: nad83 +<5101> proj=tmerc datum=NAD83 +lon_0=-155d30 lat_0=18d50 k=.9999666666666667 +x_0=500000 y_0=0 +no_defs <> + +# 5102: hawaii 2: nad83 +<5102> proj=tmerc datum=NAD83 +lon_0=-156d40 lat_0=20d20 k=.9999666666666667 +x_0=500000 y_0=0 +no_defs <> + +# 5103: hawaii 3: nad83 +<5103> proj=tmerc datum=NAD83 +lon_0=-158 lat_0=21d10 k=.99999 +x_0=500000 y_0=0 +no_defs <> + +# 5104: hawaii 4: nad83 +<5104> proj=tmerc datum=NAD83 +lon_0=-159d30 lat_0=21d50 k=.99999 +x_0=500000 y_0=0 +no_defs <> + +# 5105: hawaii 5: nad83 +<5105> proj=tmerc datum=NAD83 +lon_0=-160d10 lat_0=21d40 k=1 +x_0=500000 y_0=0 +no_defs <> + +# 1101: idaho east: nad83 +<1101> proj=tmerc datum=NAD83 +lon_0=-112d10 lat_0=41d40 k=.9999473684210526 +x_0=200000 y_0=0 +no_defs <> + +# 1102: idaho central: nad83 +<1102> proj=tmerc datum=NAD83 +lon_0=-114 lat_0=41d40 k=.9999473684210526 +x_0=500000 y_0=0 +no_defs <> + +# 1103: idaho west: nad83 +<1103> proj=tmerc datum=NAD83 +lon_0=-115d45 lat_0=41d40 k=.9999333333333333 +x_0=800000 y_0=0 +no_defs <> + +# 1201: illinois east: nad83 +<1201> proj=tmerc datum=NAD83 +lon_0=-88d20 lat_0=36d40 k=.999975 +x_0=300000 y_0=0 +no_defs <> + +# 1202: illinois west: nad83 +<1202> proj=tmerc datum=NAD83 +lon_0=-90d10 lat_0=36d40 k=.9999411764705882 +x_0=700000 y_0=0 +no_defs <> + +# 1301: indiana east: nad83 +<1301> proj=tmerc datum=NAD83 +lon_0=-85d40 lat_0=37d30 k=.9999666666666667 +x_0=100000 y_0=250000 +no_defs <> + +# 1302: indiana west: nad83 +<1302> proj=tmerc datum=NAD83 +lon_0=-87d5 lat_0=37d30 k=.9999666666666667 +x_0=900000 y_0=250000 +no_defs <> + +# 1401: iowa north: nad83 +<1401> proj=lcc datum=NAD83 +lon_0=-93d30 lat_1=43d16 lat_2=42d4 lat_0=41d30 +x_0=1500000 y_0=1000000 +no_defs <> + +# 1402: iowa south: nad83 +<1402> proj=lcc datum=NAD83 +lon_0=-93d30 lat_1=41d47 lat_2=40d37 lat_0=40 +x_0=500000 y_0=0 +no_defs <> + +# 1501: kansas north: nad83 +<1501> proj=lcc datum=NAD83 +lon_0=-98 lat_1=39d47 lat_2=38d43 lat_0=38d20 +x_0=400000 y_0=0 +no_defs <> + +# 1502: kansas south: nad83 +<1502> proj=lcc datum=NAD83 +lon_0=-98d30 lat_1=38d34 lat_2=37d16 lat_0=36d40 +x_0=400000 y_0=400000 +no_defs <> + +# 1601: kentucky north: nad83 +<1601> proj=lcc datum=NAD83 +lon_0=-84d15 lat_1=38d58 lat_2=37d58 lat_0=37d30 +x_0=500000 y_0=0 +no_defs <> + +# 1602: kentucky south: nad83 +<1602> proj=lcc datum=NAD83 +lon_0=-85d45 lat_1=37d56 lat_2=36d44 lat_0=36d20 +x_0=500000 y_0=500000 +no_defs <> + +# 1701: louisiana north: nad83 +<1701> proj=lcc datum=NAD83 +lon_0=-92d30 lat_1=32d40 lat_2=31d10 lat_0=30d30 +x_0=1000000 y_0=0 +no_defs <> + +# 1702: louisiana south: nad83 +<1702> proj=lcc datum=NAD83 +lon_0=-91d20 lat_1=30d42 lat_2=29d18 lat_0=28d30 +x_0=1000000 y_0=0 +no_defs <> + +# 1703: louisiana offshore: nad83 +<1703> proj=lcc datum=NAD83 +lon_0=-91d20 lat_1=27d50 lat_2=26d10 lat_0=25d30 +x_0=1000000 y_0=0 +no_defs <> + +# 1801: maine east: nad83 +<1801> proj=tmerc datum=NAD83 +lon_0=-68d30 lat_0=43d40 k=.9999 +x_0=300000 y_0=0 +no_defs <> + +# 1802: maine west: nad83 +<1802> proj=tmerc datum=NAD83 +lon_0=-70d10 lat_0=42d50 k=.9999666666666667 +x_0=900000 y_0=0 +no_defs <> + +# 1900: maryland ---: nad83 +<1900> proj=lcc datum=NAD83 +lon_0=-77 lat_1=39d27 lat_2=38d18 lat_0=37d40 +x_0=400000 y_0=0 +no_defs <> + +# 2001: massachusetts mainland: nad83 +<2001> proj=lcc datum=NAD83 +lon_0=-71d30 lat_1=42d41 lat_2=41d43 lat_0=41 +x_0=200000 y_0=750000 +no_defs <> + +# 2002: massachusetts island: nad83 +<2002> proj=lcc datum=NAD83 +lon_0=-70d30 lat_1=41d29 lat_2=41d17 lat_0=41 +x_0=500000 y_0=0 +no_defs <> + +# 2111: michigan north: nad83 +<2111> proj=lcc datum=NAD83 +lon_0=-87 lat_1=47d5 lat_2=45d29 lat_0=44d47 +x_0=8000000 y_0=0 +no_defs <> + +# 2112: michigan central/l: nad83 +<2112> proj=lcc datum=NAD83 +lon_0=-84d22 lat_1=45d42 lat_2=44d11 lat_0=43d19 +x_0=6000000 y_0=0 +no_defs <> + +# 2113: michigan south: nad83 +<2113> proj=lcc datum=NAD83 +lon_0=-84d22 lat_1=43d40 lat_2=42d6 lat_0=41d30 +x_0=4000000 y_0=0 +no_defs <> + +# 2201: minnesota north: nad83 +<2201> proj=lcc datum=NAD83 +lon_0=-93d6 lat_1=48d38 lat_2=47d2 lat_0=46d30 +x_0=800000 y_0=100000 +no_defs <> + +# 2202: minnesota central: nad83 +<2202> proj=lcc datum=NAD83 +lon_0=-94d15 lat_1=47d3 lat_2=45d37 lat_0=45 +x_0=800000 y_0=100000 +no_defs <> + +# 2203: minnesota south: nad83 +<2203> proj=lcc datum=NAD83 +lon_0=-94 lat_1=45d13 lat_2=43d47 lat_0=43 +x_0=800000 y_0=100000 +no_defs <> + +# 2301: mississippi east: nad83 +<2301> proj=tmerc datum=NAD83 +lon_0=-88d50 lat_0=29d30 k=.99995 +x_0=300000 y_0=0 +no_defs <> + +# 2302: mississippi west: nad83 +<2302> proj=tmerc datum=NAD83 +lon_0=-90d20 lat_0=29d30 k=.99995 +x_0=700000 y_0=0 +no_defs <> + +# 2401: missouri east: nad83 +<2401> proj=tmerc datum=NAD83 +lon_0=-90d30 lat_0=35d50 k=.9999333333333333 +x_0=250000 y_0=0 +no_defs <> + +# 2402: missouri central: nad83 +<2402> proj=tmerc datum=NAD83 +lon_0=-92d30 lat_0=35d50 k=.9999333333333333 +x_0=500000 y_0=0 +no_defs <> + +# 2403: missouri west: nad83 +<2403> proj=tmerc datum=NAD83 +lon_0=-94d30 lat_0=36d10 k=.9999411764705882 +x_0=850000 y_0=0 +no_defs <> + +# 2500: montana: nad83 +<2500> proj=lcc datum=NAD83 +lon_0=-109d30 lat_1=49 lat_2=45 lat_0=44d15 +x_0=600000 y_0=0 +no_defs <> + +# 2600: nebraska: nad83 +<2600> proj=lcc datum=NAD83 +lon_0=-100 lat_1=43 lat_2=40 lat_0=39d50 +x_0=500000 y_0=0 +no_defs <> + +# 2701: nevada east: nad83 +<2701> proj=tmerc datum=NAD83 +lon_0=-115d35 lat_0=34d45 k=.9999 +x_0=200000 y_0=8000000 +no_defs <> + +# 2702: nevada central: nad83 +<2702> proj=tmerc datum=NAD83 +lon_0=-116d40 lat_0=34d45 k=.9999 +x_0=500000 y_0=6000000 +no_defs <> + +# 2703: nevada west: nad83 +<2703> proj=tmerc datum=NAD83 +lon_0=-118d35 lat_0=34d45 k=.9999 +x_0=800000 y_0=4000000 +no_defs <> + +# 2800: new hampshire ---: nad83 +<2800> proj=tmerc datum=NAD83 +lon_0=-71d40 lat_0=42d30 k=.9999666666666667 +x_0=300000 y_0=0 +no_defs <> + +# 2900: new jersey ---: nad83 +<2900> proj=tmerc datum=NAD83 +lon_0=-74d30 lat_0=38d50 k=.9999 +x_0=150000 y_0=0 +no_defs <> + +# 3001: new mexico east: nad83 +<3001> proj=tmerc datum=NAD83 +lon_0=-104d20 lat_0=31 k=.9999090909090909 +x_0=165000 y_0=0 +no_defs <> + +# 3002: new mexico central: nad83 +<3002> proj=tmerc datum=NAD83 +lon_0=-106d15 lat_0=31 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 3003: new mexico west: nad83 +<3003> proj=tmerc datum=NAD83 +lon_0=-107d50 lat_0=31 k=.9999166666666667 +x_0=830000 y_0=0 +no_defs <> + +# 3101: new york east: nad83 +<3101> proj=tmerc datum=NAD83 +lon_0=-74d30 lat_0=38d50 k=.9999 +x_0=150000 y_0=0 +no_defs <> + +# 3102: new york central: nad83 +<3102> proj=tmerc datum=NAD83 +lon_0=-76d35 lat_0=40 k=.9999375 +x_0=250000 y_0=0 +no_defs <> + +# 3103: new york west: nad83 +<3103> proj=tmerc datum=NAD83 +lon_0=-78d35 lat_0=40 k=.9999375 +x_0=350000 y_0=0 +no_defs <> + +# 3104: new york long island: nad83 +<3104> proj=lcc datum=NAD83 +lon_0=-74 lat_1=41d2 lat_2=40d40 lat_0=40d10 +x_0=300000 y_0=0 +no_defs <> + +# 3200: north carolina ---: nad83 +<3200> proj=lcc datum=NAD83 +lon_0=-79 lat_1=36d10 lat_2=34d20 lat_0=33d45 +x_0=609601.22 y_0=0 +no_defs <> + +# 3301: north dakota north: nad83 +<3301> proj=lcc datum=NAD83 +lon_0=-100d30 lat_1=48d44 lat_2=47d26 lat_0=47 +x_0=600000 y_0=0 +no_defs <> + +# 3302: north dakota south: nad83 +<3302> proj=lcc datum=NAD83 +lon_0=-100d30 lat_1=47d29 lat_2=46d11 lat_0=45d40 +x_0=600000 y_0=0 +no_defs <> + +# 3401: ohio north: nad83 +<3401> proj=lcc datum=NAD83 +lon_0=-82d30 lat_1=41d42 lat_2=40d26 lat_0=39d40 +x_0=600000 y_0=0 +no_defs <> + +# 3402: ohio south: nad83 +<3402> proj=lcc datum=NAD83 +lon_0=-82d30 lat_1=40d2 lat_2=38d44 lat_0=38 +x_0=600000 y_0=0 +no_defs <> + +# 3501: oklahoma north: nad83 +<3501> proj=lcc datum=NAD83 +lon_0=-98 lat_1=36d46 lat_2=35d34 lat_0=35 +x_0=600000 y_0=0 +no_defs <> + +# 3502: oklahoma south: nad83 +<3502> proj=lcc datum=NAD83 +lon_0=-98 lat_1=35d14 lat_2=33d56 lat_0=33d20 +x_0=600000 y_0=0 +no_defs <> + +# 3601: oregon north: nad83 +<3601> proj=lcc datum=NAD83 +lon_0=-120d30 lat_1=46 lat_2=44d20 lat_0=43d40 +x_0=2500000 y_0=0 +no_defs <> + +# 3602: oregon south: nad83 +<3602> proj=lcc datum=NAD83 +lon_0=-120d30 lat_1=44 lat_2=42d20 lat_0=41d40 +x_0=1500000 y_0=0 +no_defs <> + +# 3701: pennsylvania north: nad83 +<3701> proj=lcc datum=NAD83 +lon_0=-77d45 lat_1=41d57 lat_2=40d53 lat_0=40d10 +x_0=600000 y_0=0 +no_defs <> + +# 3702: pennsylvania south: nad83 +<3702> proj=lcc datum=NAD83 +lon_0=-77d45 lat_1=40d58 lat_2=39d56 lat_0=39d20 +x_0=600000 y_0=0 +no_defs <> + +# 3800: rhode island ---: nad83 +<3800> proj=tmerc datum=NAD83 +lon_0=-71d30 lat_0=41d5 k=.99999375 +x_0=100000 y_0=0 +no_defs <> + +# 3900: south carolina: nad83 +<3900> proj=lcc datum=NAD83 +lon_0=-81 lat_1=34d50 lat_2=32d30 lat_0=31d50 +x_0=609600 y_0=0 +no_defs <> + +# 4001: south dakota north: nad83 +<4001> proj=lcc datum=NAD83 +lon_0=-100 lat_1=45d41 lat_2=44d25 lat_0=43d50 +x_0=600000 y_0=0 +no_defs <> + +# 4002: south dakota south: nad83 +<4002> proj=lcc datum=NAD83 +lon_0=-100d20 lat_1=44d24 lat_2=42d50 lat_0=42d20 +x_0=600000 y_0=0 +no_defs <> + +# 4100: tennessee ---: nad83 +<4100> proj=lcc datum=NAD83 +lon_0=-86 lat_1=36d25 lat_2=35d15 lat_0=34d20 +x_0=600000 y_0=0 +no_defs <> + +# 4201: texas north: nad83 +<4201> proj=lcc datum=NAD83 +lon_0=-101d30 lat_1=36d11 lat_2=34d39 lat_0=34 +x_0=200000 y_0=1000000 +no_defs <> + +# 4202: texas north central: nad83 +<4202> proj=lcc datum=NAD83 +lon_0=-98d30 lat_1=33d58 lat_2=32d8 lat_0=31d40 +x_0=600000 y_0=2000000 +no_defs <> + +# 4203: texas central: nad83 +<4203> proj=lcc datum=NAD83 +lon_0=-100d20 lat_1=31d53 lat_2=30d7 lat_0=29d40 +x_0=700000 y_0=3000000 +no_defs <> + +# 4204: texas south central: nad83 +<4204> proj=lcc datum=NAD83 +lon_0=-99 lat_1=30d17 lat_2=28d23 lat_0=27d50 +x_0=600000 y_0=4000000 +no_defs <> + +# 4205: texas south: nad83 +<4205> proj=lcc datum=NAD83 +lon_0=-98d30 lat_1=27d50 lat_2=26d10 lat_0=25d40 +x_0=300000 y_0=5000000 +no_defs <> + +# 4301: utah north: nad83 +<4301> proj=lcc datum=NAD83 +lon_0=-111d30 lat_1=41d47 lat_2=40d43 lat_0=40d20 +x_0=500000 y_0=1000000 +no_defs <> + +# 4302: utah central: nad83 +<4302> proj=lcc datum=NAD83 +lon_0=-111d30 lat_1=40d39 lat_2=39d1 lat_0=38d20 +x_0=500000 y_0=2000000 +no_defs <> + +# 4303: utah south: nad83 +<4303> proj=lcc datum=NAD83 +lon_0=-111d30 lat_1=38d21 lat_2=37d13 lat_0=36d40 +x_0=500000 y_0=3000000 +no_defs <> + +# 4400: vermont ---: nad83 +<4400> proj=tmerc datum=NAD83 +lon_0=-72d30 lat_0=42d30 k=.9999642857142857 +x_0=500000 y_0=0 +no_defs <> + +# 4501: virginia north: nad83 +<4501> proj=lcc datum=NAD83 +lon_0=-78d30 lat_1=39d12 lat_2=38d2 lat_0=37d40 +x_0=3500000 y_0=2000000 +no_defs <> + +# 4502: virginia south: nad83 +<4502> proj=lcc datum=NAD83 +lon_0=-78d30 lat_1=37d58 lat_2=36d46 lat_0=36d20 +x_0=3500000 y_0=1000000 +no_defs <> + +# 4601: washington north: nad83 +<4601> proj=lcc datum=NAD83 +lon_0=-120d50 lat_1=48d44 lat_2=47d30 lat_0=47 +x_0=500000 y_0=0 +no_defs <> + +# 4602: washington south: nad83 +<4602> proj=lcc datum=NAD83 +lon_0=-120d30 lat_1=47d20 lat_2=45d50 lat_0=45d20 +x_0=500000 y_0=0 +no_defs <> + +# 4701: west virginia north: nad83 +<4701> proj=lcc datum=NAD83 +lon_0=-79d30 lat_1=40d15 lat_2=39 lat_0=38d30 +x_0=600000 y_0=0 +no_defs <> + +# 4702: west virginia south: nad83 +<4702> proj=lcc datum=NAD83 +lon_0=-81 lat_1=38d53 lat_2=37d29 lat_0=37 +x_0=600000 y_0=0 +no_defs <> + +# 4801: wisconsin north: nad83 +<4801> proj=lcc datum=NAD83 +lon_0=-90 lat_1=46d46 lat_2=45d34 lat_0=45d10 +x_0=600000 y_0=0 +no_defs <> + +# 4802: wisconsin central: nad83 +<4802> proj=lcc datum=NAD83 +lon_0=-90 lat_1=45d30 lat_2=44d15 lat_0=43d50 +x_0=600000 y_0=0 +no_defs <> + +# 4803: wisconsin south: nad83 +<4803> proj=lcc datum=NAD83 +lon_0=-90 lat_1=44d4 lat_2=42d44 lat_0=42 +x_0=600000 y_0=0 +no_defs <> + +# 4901: wyoming east: nad83 +<4901> proj=tmerc datum=NAD83 +lon_0=-105d10 lat_0=40d30 k=.9999375 +x_0=200000 y_0=0 +no_defs <> + +# 4902: wyoming east central: nad83 +<4902> proj=tmerc datum=NAD83 +lon_0=-107d20 lat_0=40d30 k=.9999375 +x_0=400000 y_0=100000 +no_defs <> + +# 4903: wyoming west central: nad83 +<4903> proj=tmerc datum=NAD83 +lon_0=-108d45 lat_0=40d30 k=.9999375 +x_0=600000 y_0=0 +no_defs <> + +# 4904: wyoming west: nad83 +<4904> proj=tmerc datum=NAD83 +lon_0=-110d5 lat_0=40d30 k=.9999375 +x_0=800000 y_0=100000 +no_defs <> + +# 5001: alaska zone no. 1: nad83 +<5001> proj=omerc datum=NAD83 +k=.9999 lonc=-133d40 lat_0=57 alpha=-36d52'11.6315 +x_0=818676.7344011233 y_0=575097.6888751927 +no_defs <> + +# 5002: alaska zone no. 2: nad83 +<5002> proj=tmerc datum=NAD83 +lon_0=-142 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5003: alaska zone no. 3: nad83 +<5003> proj=tmerc datum=NAD83 +lon_0=-146 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5004: alaska zone no. 4: nad83 +<5004> proj=tmerc datum=NAD83 +lon_0=-150 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5005: alaska zone no. 5: nad83 +<5005> proj=tmerc datum=NAD83 +lon_0=-154 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5006: alaska zone no. 6: nad83 +<5006> proj=tmerc datum=NAD83 +lon_0=-158 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5007: alaska zone no. 7: nad83 +<5007> proj=tmerc datum=NAD83 +lon_0=-162 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5008: alaska zone no. 8: nad83 +<5008> proj=tmerc datum=NAD83 +lon_0=-166 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5009: alaska zone no. 9: nad83 +<5009> proj=tmerc datum=NAD83 +lon_0=-170 lat_0=54 k=.9999 +x_0=500000 y_0=0 +no_defs <> + +# 5200: puerto rico and virgin islands: nad83 +<5200> proj=lcc datum=NAD83 +lon_0=-66d26 lat_1=18d26 lat_2=18d2 lat_0=17d50 +x_0=200000 y_0=200000 +no_defs <> + diff --git a/src/main/webapp/WEB-INF/classes/nad/sr-org b/src/main/webapp/WEB-INF/classes/nad/sr-org new file mode 100644 index 0000000..cc48356 --- /dev/null +++ b/src/main/webapp/WEB-INF/classes/nad/sr-org @@ -0,0 +1,60 @@ +#WGS84 경위도 +<4326> +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs <> +#Bessel 1841 경위도 +<4004> +proj=longlat +ellps=bessel +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43 <> +#GRS80 경위도 +<4019> +proj=longlat +ellps=GRS80 +no_defs <> +#Google Mercator, 구글지도/빙지도/야후지도/OSM 등 에서 사용중인 좌표계 +<900913> +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs <> +#UTM52N (WGS84) +<32652> +proj=utm +zone=52 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +#UTM51N (WGS84) +<32651> +proj=utm +zone=51 +ellps=WGS84 +datum=WGS84 +units=m +no_defs <> +#UTM52N (GRS80) +<5189> +proj=utm +zone=52 +ellps=GRS80 +units=m +no_defs <> +#UTM51N (GRS80) +<5190> +proj=utm +zone=51 +ellps=GRS80 +units=m +no_defs <> +#UTM52N (Bessel) +<5191> +proj=utm +zone=52 +ellps=bessel +units=m +no_defs <> +#UTM51N (Bessel) +<5192> +proj=utm +zone=51 +ellps=bessel +units=m +no_defs <> +#동부원점(Bessel) 보정안된 오래된 지리원 표준 동부원점(Bessel) +<2096> +proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43 <> +#중부원점(Bessel) 보정안된 오래된 지리원 표준 중부원점(Bessel) +<2097> +proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43 <> +#서부원점(Bessel) 보정안된 오래된 지리원 표준 서부원점(Bessel) +<2098> +proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43 <> +#보정된 서부원점(Bessel) 보정된 오래된 지리원 표준 서부원점(Bessel) +<5173> +proj=tmerc +lat_0=38 +lon_0=125.0028902777778 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43 <> +#보정된 중부원점(Bessel) 보정된 오래된 지리원 표준 중부원점(Bessel) +<5174> +proj=tmerc +lat_0=38 +lon_0=127.0028902777778 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43 <> +#보정된 제주원점(Bessel) 보정된 오래된 지리원 표준 제주원점(Bessel) +<5175> +proj=tmerc +lat_0=38 +lon_0=127.0028902777778 +k=1 +x_0=200000 +y_0=550000 +ellps=bessel +units=m +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43 <> +#보정된 동부원점(Bessel) 보정된 오래된 지리원 표준 동부원점(Bessel) +<5176> +proj=tmerc +lat_0=38 +lon_0=129.0028902777778 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43 <> +#보정된 동해(울릉)원점(Bessel) - KLIS에서 울릉지역에 사용중 보정된 오래된 지리원 표준 동해(울릉)원점(Bessel) +<5177> +proj=tmerc +lat_0=38 +lon_0=131.0028902777778 +k=1 +x_0=200000 +y_0=500000 +ellps=bessel +units=m +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43 <> +#UTM-K (Bessel) - 새주소지도에서 사용 중 +<5178> +proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=bessel +units=m +no_defs +towgs84=-115.80,474.99,674.11,1.16,-2.31,-1.63,6.43 <> +#UTM-K (GRS80), 네이버지도에서 사용중인 좌표계 +<5179> +proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=GRS80 +units=m +no_defs <> +#UTM-K (WGS84) +<5193> +proj=tmerc +lat_0=38 +lon_0=127.5 +k=0.9996 +x_0=1000000 +y_0=2000000 +ellps=WGS84 +units=m +no_defs <> +#타원체 바꾼 지리원 표준 서부원점(GRS80)-falseY:50000 +<5180> +proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=500000 +ellps=GRS80 +units=m +no_defs <> +#타원체 바꾼 지리원 표준 중부원점(GRS80)-falseY:50000 다음지도에서 사용중인 좌표계 +<5181> +proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=500000 +ellps=GRS80 +units=m +no_defs <> +#타원체 바꾼 지리원 표준 제주원점(GRS80)-falseY:55000 +<5182> +proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=550000 +ellps=GRS80 +units=m +no_defs <> +#타원체 바꾼 지리원 표준 동부원점(GRS80)-falseY:50000 +<5183> +proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=500000 +ellps=GRS80 +units=m +no_defs <> +#타원체 바꾼 지리원 표준 동해(울릉)원점(GRS80)-falseY:50000 +<5184> +proj=tmerc +lat_0=38 +lon_0=131 +k=1 +x_0=200000 +y_0=500000 +ellps=GRS80 +units=m +no_defs <> +#서부원점(GRS80)-falseY:60000 +<5185> +proj=tmerc +lat_0=38 +lon_0=125 +k=1 +x_0=200000 +y_0=600000 +ellps=GRS80 +units=m +no_defs <> +#중부원점(GRS80)-falseY:60000 +<5186> +proj=tmerc +lat_0=38 +lon_0=127 +k=1 +x_0=200000 +y_0=600000 +ellps=GRS80 +units=m +no_defs <> +#동부원점(GRS80)-falseY:60000 +<5187> +proj=tmerc +lat_0=38 +lon_0=129 +k=1 +x_0=200000 +y_0=600000 +ellps=GRS80 +units=m +no_defs <> +#동해(울릉)원점(GRS80)-falseY:60000 +<5188> +proj=tmerc +lat_0=38 +lon_0=131 +k=1 +x_0=200000 +y_0=600000 +ellps=GRS80 +units=m +no_defs <> \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/classes/nad/world b/src/main/webapp/WEB-INF/classes/nad/world new file mode 100644 index 0000000..2018b53 --- /dev/null +++ b/src/main/webapp/WEB-INF/classes/nad/world @@ -0,0 +1,212 @@ +# SCCSID @(#)world 1.2 95/08/05 GIE REL +# proj +init files for various non-U.S. coordinate systems. +# + # Swiss Coordinate System + +proj=somerc +lat_0=46d57'8.660"N +lon_0=7d26'22.500"E + +ellps=bessel +x_0=600000 +y_0=200000 + +k_0=1. no_defs <> + # Laborde grid for Madagascar + proj=labrd ellps=intl lon_0=46d26'13.95E lat_0=18d54S + azi=18d54 k_0=.9995 x_0=400000 y_0=800000 + no_defs <> + # New Zealand Map Grid (NZMG) + proj=nzmg # Projection unique to N.Z. so all factors fixed + no_defs <> +# Secondary grids DMA TM8358.1, p. 4.3 + # British West Indies + proj=tmerc ellps=clrk80 lon_0=62W + x_0=400000 k_0=0.9995 + no_defs <> + # Costa Rica Norte + proj=lcc ellps=clrk66 lat_1=10d28N lon_0=84d20W + x_0=500000 y_0=217820.522 k_0=0.99995696 + no_defs <> + # Costa Rica Sud + proj=lcc ellps=clrk66 lat_1=9dN lon_0=83d40W + x_0=500000 y_0=327987.436 k_0=0.99995696 + no_defs <> + # Cuba Norte + proj=lcc ellps=clrk66 lat_1=22d21N lon_0=81dW + x_0=500000 y_0=280296.016 k_0=0.99993602 + no_defs <> + # Cuba Sud + proj=lcc ellps=clrk66 lat_1=20d43'N lon_0=76d50'W + x_0=500000 y_0=229126.939 k_0=0.99994848 + no_defs <> + # Dominican Republic + proj=lcc ellps=clrk66 lat_1=18d49'N lon_0=71d30'W + x_0=500000 y_0=277063.657 k_0=0.99991102 + no_defs <> + # Egypt + proj=tmerc ellps=intl lon_0=25d30'E x_0=300000 k_0=0.99985 + no_defs <> + # Egypt + proj=tmerc ellps=intl lon_0=28d30'E x_0=300000 k_0=0.99985 + no_defs <> + # Egypt + proj=tmerc ellps=intl lon_0=31d30'E x_0=300000 k_0=0.99985 + no_defs <> + # Egypt + proj=tmerc ellps=intl lon_0=34d30'E x_0=300000 k_0=0.99985 + no_defs <> + # Egypt + proj=tmerc ellps=intl lon_0=37d30'E x_0=300000 k_0=0.99985 + no_defs <> + # El Salvador + proj=lcc ellps=clrk66 lat_1=13d47'N lon_0=89dW + x_0=500000 y_0=295809.184 k_0=0.99996704 + no_defs <> + # Guatemala Norte + proj=lcc ellps=clrk66 lat_1=16d49'N lon_0=90d20'W + x_0=500000 y_0=292209.579 k_0=0.99992226 + no_defs <> + # Guatemala Sud + proj=lcc ellps=clrk66 lat_1=14d54'N lon_0=90d20'W + x_0=500000 y_0=325992.681 k_0=0.99989906 + no_defs <> + # Haiti + proj=lcc ellps=clrk66 lat_1=18d49'N lon_0=71d30'W + x_0=500000 y_0=277063.657 k_0=0.99991102 + no_defs <> + # Honduras Norte + proj=lcc ellps=clrk66 lat_1=15d30'N lon_0=86d10'W + x_0=500000 y_0=296917.439 k_0=0.99993273 + no_defs <> + # Honduras Sud + proj=lcc ellps=clrk66 lat_1=13d47'N lon_0=87d10'W + x_0=500000 y_0=296215.903 k_0=0.99995140 + no_defs <> + # Levant + proj=lcc ellps=clrk66 lat_1=34d39'N lon_0=37d21'E + x_0=500000 y_0=300000 k_0=0.9996256 + no_defs <> + # Nicaragua Norte + proj=lcc ellps=clrk66 lat_1=13d52'N lon_0=85d30'W + x_0=500000 y_0=359891.816 k_0=0.99990314 + no_defs <> + # Nicaragua Sud + proj=lcc ellps=clrk66 lat_1=11d40'N lon_0=85d30'W + x_0=500000 y_0=288876.327 k_0=0.99992228 + no_defs <> + # Northwest Africa + proj=lcc ellps=clrk80 lat_1=34dN lon_0=0dE + x_0=1000000 y_0=500000 k_0=0.99908 + no_defs <> + # Palestine + proj=tmerc a=6378300.79 rf=293.488307656 + lat_0=31d44'2.749"N lon_0=35d12'43.490"E + x_0=170251.555 y_0=126867.909 k_0=1 + no_defs <> + # Panama + proj=lcc ellps=clrk66 lat_1=8d25'N lon_0=80dW + x_0=500000 y_0=294865.303 k_0=0.99989909 + no_defs <> +# other grids in DMA TM8358.1 + # British National Grid + proj=tmerc ellps=airy lat_0=49dN lon_0=2dW + k_0=0.9996012717 x_0=400000 y_0=-100000 + no_defs <> + # West Malaysian RSO Grid + proj=omerc a=6377295.66402 rf=300.8017 alpha=323d01'32.846" + no_uoff rot_conv lonc=102d15E lat_0=4dN k_0=0.99984 x_0=804670.240 y_0=0 + no_defs <> + # India Zone I + proj=lcc ellps=everest lon_0=68E lat_1=32d30'N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IIA + proj=lcc ellps=everest lon_0=74E lat_1=26N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IIB + proj=lcc ellps=everest lon_0=90E lat_1=26N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IIIA + proj=lcc ellps=everest lon_0=80E lat_1=19N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IIIB + proj=lcc ellps=everest lon_0=100E lat_1=19N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IVA + proj=lcc ellps=everest lon_0=80E lat_1=12N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # India Zone IVB + proj=lcc ellps=everest lon_0=104E lat_1=12N + x_0=2743185.69 y_0=914395.23 k_0=.998786408 + no_defs <> + # Ceylon Belt + proj=tmerc ellps=everest lon_0=80d46'18.160"E lat_0=7d0'1.729"N + x_0=160933.56048 y_0=160933.56048 k_0=1. + no_defs <> + # Irish Transverse Mercator Grid + proj=tmerc ellps=mod_airy lat_0=53d30'N lon_0=8W + x_0=200000 y_0=250000 k_0=1.000035 + no_defs <> + # Netherlands East Indies Equitorial Zone + proj=merc ellps=bessel lon_0=110E + x_0=3900000 y_0=900000 k_0=0.997 + no_defs <> + # Nord Algerie Grid + proj=lcc ellps=clrk80 lon_0=2d42E lat_0=36N + x_0=500000 y_0=300000 k_0=0.999625544 + no_defs <> + # Nord Maroc Grid + proj=lcc ellps=clrk80 lon_0=5d24'W lat_0=33d18'N + x_0=500000 y_0=300000 k_0=0.999625769 + no_defs <> + # Nord Tunisie Grid + proj=lcc ellps=clrk80 lon_0=9d54E lat_0=36N + x_0=500000 y_0=300000 k_0=0.999625544 + no_defs <> + # Sud Algerie Grid + proj=lcc ellps=clrk80 lon_0=2d42E lat_0=33d18'N + x_0=500000 y_0=300000 k_0=0.999625769 + no_defs <> + # Sud Maroc Grid + proj=lcc ellps=clrk80 lon_0=5d24W lat_0=29d42'N + x_0=500000 y_0=300000 k_0=0.999615596 + no_defs <> + # Sud Tunisie Grid + proj=lcc ellps=clrk80 lon_0=9d54'E lat_0=33d18'N + x_0=500000 y_0=300000 k_0=0.999625769 + no_defs <> +# Gauss Krueger Grid for Germany +# +# The first figure of the easting is lon_0 devided by 3 +# ( 2 for 6d0E, 3 for 9d0E, 4 for 12d0E) +# For translations you have to remove this first figure +# and convert northings and eastings from km to meter . +# The other way round, devide by 1000 and add the figure. +# I made 3 entrys for the officially used grids in Germany +# +# +# Und nochmal in deutsch : +# Die erste Ziffer des Rechtswerts beschreibt den Hauptmeridian +# und ist dessen Gradzahl geteilt durch 3. +# Zum Umrechnen in Grad muss daher die erste Ziffer des Rechtswertes +# entfernt werden und evt. von km auf Metern umgerechnet werden. +# Zur Umrechnung in Gauss Krueger Koordinaten entsprechend die +# Ziffer fuer den Hauptmeridian vor dem Rechtswert ergaenzen. +# Ich hab fuer alle drei in Deutschland ueblichen Hauptmeridiane +# jeweils einen Eintrag ergaenzt. +# +# +# added by Michael Goepel +# + # Gauss Krueger Grid for Germany + proj=tmerc ellps=bessel lon_0=6d0E lat_0=0 + x_0=500000 + no_defs<> + # Gauss Krueger Grid for Germany + proj=tmerc ellps=bessel lon_0=9d0E lat_0=0 + x_0=500000 + no_defs<> + # Gauss Krueger Grid for Germany + proj=tmerc ellps=bessel lon_0=12d0E lat_0=0 + x_0=500000 + no_defs<> + diff --git a/src/main/webapp/WEB-INF/clipreport4/DataConnection.properties b/src/main/webapp/WEB-INF/clipreport4/DataConnection.properties new file mode 100644 index 0000000..95b9f09 --- /dev/null +++ b/src/main/webapp/WEB-INF/clipreport4/DataConnection.properties @@ -0,0 +1,35 @@ +# Report Server Connection Config + +# conntype : jdbc, jndi +# jdbc type : SQL_Server, MySQL, Oracle, Tibero, DB2, Sybase, UserCustom + +# version SQL_Server 2000, 2005, 2008, 2012 +dataconnection.count=3 + +dataconnection1.conntype=jdbc +dataconnection1.type=Oracle +dataconnection1.dbname=oracle1 +dataconnection1.version= +#dataconnection1.url=jdbc:oracle:thin:@192.168.0.71:1521:orcl + +#dataconnection1.url=jdbc:oracle:thin:@192.168.0.29:1521:xe +dataconnection1.url=jdbc:oracle:thin:@192.168.0.8:3452:orcl + +dataconnection1.user=geoinfo +dataconnection1.password=geoinfo +dataconnection1.encoding= + +dataconnection2.conntype=jdbc +dataconnection2.type=UserCustom +dataconnection2.dbname=usercustom1 +dataconnection2.version= +dataconnection2.driver=cubrid.jdbc.driver.CUBRIDDriver +dataconnection2.url= +dataconnection2.user= +dataconnection2.password= +dataconnection2.encoding= + +dataconnection3.conntype=jndi +dataconnection3.dbname=dbname +dataconnection3.jndiname=jndiname +dataconnection3.encoding= diff --git a/src/main/webapp/WEB-INF/clipreport4/DataCrypto.properties b/src/main/webapp/WEB-INF/clipreport4/DataCrypto.properties new file mode 100644 index 0000000..e657615 --- /dev/null +++ b/src/main/webapp/WEB-INF/clipreport4/DataCrypto.properties @@ -0,0 +1,19 @@ +# Data Crypto + +####################### +# Data Connection +####################### +# !important property +####################### +data.crypto.use=false +data.crypto.classname= + + +####################### +# Server Connection +####################### +# !important property +####################### +data.server.crypto.use= +data.client.crypto.use= +data.server.url= diff --git a/src/main/webapp/WEB-INF/clipreport4/License.properties b/src/main/webapp/WEB-INF/clipreport4/License.properties new file mode 100644 index 0000000..4d9a9a3 --- /dev/null +++ b/src/main/webapp/WEB-INF/clipreport4/License.properties @@ -0,0 +1,2 @@ +# License key Value!! +key=9M7bzQ9fAptU+V3gJZ0nwQfqWFcSYl0gFcqnIVipuzn/34S+bqw/PPeydprV48MGJ+CP4QP2J7e+2pEeOX+ZLloE03/qsJK8hOLz5C0xrZpEhXcKXvrJI06AyXX6gk7C4FsLH+5QvWy3aMMUXlIgZgUEF/nSRm1Iw/7A9pimTBwyDENoBmV3G7AghC1cToHdGLrNTIJejEtXuINAjewUSTVDjFITnduwW5CwPpLOtxgekyqJa9qW1hpf+pycYCkhGDYXzC3G+hsbIlobeLKLxw== \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/clipreport4/OpenFontLicense.clip.xml b/src/main/webapp/WEB-INF/clipreport4/OpenFontLicense.clip.xml new file mode 100644 index 0000000..647b732 --- /dev/null +++ b/src/main/webapp/WEB-INF/clipreport4/OpenFontLicense.clip.xml @@ -0,0 +1,94 @@ + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/clipreport4/OpenSourceLicense.clip.xml b/src/main/webapp/WEB-INF/clipreport4/OpenSourceLicense.clip.xml new file mode 100644 index 0000000..fbf4d3b --- /dev/null +++ b/src/main/webapp/WEB-INF/clipreport4/OpenSourceLicense.clip.xml @@ -0,0 +1,397 @@ + +. + + 4. Products derived from this software may not be called "JDOM", nor + may "JDOM" appear in their name, without prior written permission + from the JDOM Project Management . + + In addition, we request (but do not require) that you include in the + end-user documentation provided with the redistribution and/or in the + software itself an acknowledgement equivalent to the following: + "This product includes software developed by the + JDOM Project (http://www.jdom.org/)." + Alternatively, the acknowledgment may be graphical using the logos + available at http://www.jdom.org/images/logos. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED + WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF + USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + + This software consists of voluntary contributions made by many + individuals on behalf of the JDOM Project and was originally + created by Jason Hunter and + Brett McLaughlin . For more information + on the JDOM Project, please see . +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + + +Rhino license +Rhino is available under open source licenses. + +As of Rhino 1.7R4, the majority of the source code for Rhino is available under the MPL 2.0 license. + +License for portions of the Rhino debugger +Additionally, some files (currently the contents of toolsrc/org/mozilla/javascript/tools/debugger/treetable/) are available under the following license: + +* Copyright 1997, 1998 Sun Microsystems, Inc. All Rights Reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * - Neither the name of Sun Microsystems nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +/* + * Bootstrap v2.3.2 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */ + + The MIT License (MIT) + +Copyright (c) 2011-2015 Twitter, Inc + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- + +H2 license +H2 is dual licensed and available under the MPL 2.0 (Mozilla Public License Version 2.0) or under the EPL 1.0 (Eclipse Public License). There is a license FAQ for both the MPL and the EPL. + +You can use H2 for free. +You can integrate it into your applications (including in commercial applications) and distribute it. +Files containing only your code are not covered by this license (it is 'commercial friendly'). +Modifications to the H2 source code must be published. +You don't need to provide the source code of H2 if you did not modify anything. +If you distribute a binary that includes H2, you need to add a disclaimer of liability - see the example below. +However, nobody is allowed to rename H2, modify it a little, and sell it as a database engine without telling the customers it is in fact H2. This happened to HSQLDB: a company called 'bungisoft' copied HSQLDB, renamed it to 'RedBase', and tried to sell it, hiding the fact that it was in fact just HSQLDB. It seems 'bungisoft' does not exist any more, but you can use the Wayback Machine and visit old web pages of http://www.bungisoft.com. + +About porting the source code to another language (for example C# or C++): converted source code (even if done manually) stays under the same copyright and license as the original code. The copyright of the ported source code does not (automatically) go to the person who ported the code. + +If you distribute a binary that includes H2, you need to add the license and a disclaimer of liability (as you should do for your own code). You should add a disclaimer for each open source library you use. For example, add a file 3rdparty_license.txt in the directory where the jar files are, and list all open source libraries, each one with its license and disclaimer. For H2, a simple solution is to copy the following text below. You may also include a copy of the complete license. + +This software contains unmodified binary redistributions for H2 database engine (http://www.h2database.com/), +which is dual licensed and available under the MPL 2.0 (Mozilla Public License) or under the EPL 1.0 (Eclipse Public License). +An original copy of the license agreement can be found at: http://www.h2database.com/html/license.html + +Eclipse Public License - Version 1.0 +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + +a) in the case of the initial Contributor, the initial code and documentation distributed under this Agreement, and + +b) in the case of each subsequent Contributor: + +i) changes to the Program, and + +ii) additions to the Program; + +where such changes and/or additions to the Program originate from and are distributed by that particular Contributor. A Contribution 'originates' from a Contributor if it was added to the Program by such Contributor itself or anyone acting on such Contributor's behalf. Contributions do not include additions to the Program which: (i) are separate modules of software distributed in conjunction with the Program under their own license agreement, and (ii) are not derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents " mean patent claims licensable by a Contributor which are necessarily infringed by the use or sale of its Contribution alone or when combined with the Program. + +"Program" means the Contributions distributed in accordance with this Agreement. + +"Recipient" means anyone who receives the Program under this Agreement, including all Contributors. + +2. GRANT OF RIGHTS + +a) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, distribute and sublicense the Contribution of such Contributor, if any, and such derivative works, in source code and object code form. + +b) Subject to the terms of this Agreement, each Contributor hereby grants Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed Patents to make, use, sell, offer to sell, import and otherwise transfer the Contribution of such Contributor, if any, in source code and object code form. This patent license shall apply to the combination of the Contribution and the Program if, at the time the Contribution is added by the Contributor, such addition of the Contribution causes such combination to be covered by the Licensed Patents. The patent license shall not apply to any other combinations which include the Contribution. No hardware per se is licensed hereunder. + +c) Recipient understands that although each Contributor grants the licenses to its Contributions set forth herein, no assurances are provided by any Contributor that the Program does not infringe the patent or other intellectual property rights of any other entity. Each Contributor disclaims any liability to Recipient for claims brought by any other entity based on infringement of intellectual property rights or otherwise. As a condition to exercising the rights and licenses granted hereunder, each Recipient hereby assumes sole responsibility to secure any other intellectual property rights needed, if any. For example, if a third party patent license is required to allow Recipient to distribute the Program, it is Recipient's responsibility to acquire that license before distributing the Program. + +d) Each Contributor represents that to its knowledge it has sufficient copyright rights in its Contribution, if any, to grant the copyright license set forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form under its own license agreement, provided that: + +a) it complies with the terms and conditions of this Agreement; and + +b) its license agreement: + +i) effectively disclaims on behalf of all Contributors all warranties and conditions, express and implied, including warranties or conditions of title and non-infringement, and implied warranties or conditions of merchantability and fitness for a particular purpose; + +ii) effectively excludes on behalf of all Contributors all liability for damages, including direct, indirect, special, incidental and consequential damages, such as lost profits; + +iii) states that any provisions which differ from this Agreement are offered by that Contributor alone and not by any other party; and + +iv) states that source code for the Program is available from such Contributor, and informs licensees how to obtain it in a reasonable manner on or through a medium customarily used for software exchange. + +When the Program is made available in source code form: + +a) it must be made available under this Agreement; and + +b) a copy of this Agreement must be included with each copy of the Program. + +Contributors may not remove or alter any copyright notices contained within the Program. + +Each Contributor must identify itself as the originator of its Contribution, if any, in a manner that reasonably allows subsequent Recipients to identify the originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities with respect to end users, business partners and the like. While this license is intended to facilitate the commercial use of the Program, the Contributor who includes the Program in a commercial product offering should do so in a manner which does not create potential liability for other Contributors. Therefore, if a Contributor includes the Program in a commercial product offering, such Contributor ("Commercial Contributor") hereby agrees to defend and indemnify every other Contributor ("Indemnified Contributor") against any losses, damages and costs (collectively "Losses") arising from claims, lawsuits and other legal actions brought by a third party against the Indemnified Contributor to the extent caused by the acts or omissions of such Commercial Contributor in connection with its distribution of the Program in a commercial product offering. The obligations in this section do not apply to any claims or Losses relating to any actual or alleged intellectual property infringement. In order to qualify, an Indemnified Contributor must: a) promptly notify the Commercial Contributor in writing of such claim, and b) allow the Commercial Contributor to control, and cooperate with the Commercial Contributor in, the defense and any related settlement negotiations. The Indemnified Contributor may participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial product offering, Product X. That Contributor is then a Commercial Contributor. If that Commercial Contributor then makes performance claims, or offers warranties related to Product X, those performance claims and warranties are such Commercial Contributor's responsibility alone. Under this section, the Commercial Contributor would have to defend claims against the other Contributors related to those performance claims and warranties, and if a court requires any other Contributor to pay any damages as a result, the Commercial Contributor must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely responsible for determining the appropriateness of using and distributing the Program and assumes all risks associated with its exercise of rights under this Agreement, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this Agreement, and without further action by the parties hereto, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Program itself (excluding combinations of the Program with other software or hardware) infringes such Recipient's patent(s), then such Recipient's rights granted under Section 2(b) shall terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails to comply with any of the material terms or conditions of this Agreement and does not cure such failure in a reasonable period of time after becoming aware of such noncompliance. If all Recipient's rights under this Agreement terminate, Recipient agrees to cease use and distribution of the Program as soon as reasonably practicable. However, Recipient's obligations under this Agreement and any licenses granted by Recipient relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, but in order to avoid inconsistency the Agreement is copyrighted and may only be modified in the following manner. The Agreement Steward reserves the right to publish new versions (including revisions) of this Agreement from time to time. No one other than the Agreement Steward has the right to modify this Agreement. The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to serve as the Agreement Steward to a suitable separate entity. Each new version of the Agreement will be given a distinguishing version number. The Program (including Contributions) may always be distributed subject to the version of the Agreement under which it was received. In addition, after a new version of the Agreement is published, Contributor may elect to distribute the Program (including its Contributions) under the new version. Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to the intellectual property of any Contributor under this Agreement, whether expressly, by implication, estoppel or otherwise. All rights in the Program not expressly granted under this Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. +]]> + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/clipreport4/Printer.properties b/src/main/webapp/WEB-INF/clipreport4/Printer.properties new file mode 100644 index 0000000..b17c80d --- /dev/null +++ b/src/main/webapp/WEB-INF/clipreport4/Printer.properties @@ -0,0 +1,3 @@ +printer.count=1 +printer1.name=Printer1 +printer1.driver=Driver1 \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/clipreport4/Service.properties b/src/main/webapp/WEB-INF/clipreport4/Service.properties new file mode 100644 index 0000000..cd1262c --- /dev/null +++ b/src/main/webapp/WEB-INF/clipreport4/Service.properties @@ -0,0 +1,11 @@ +################################################## +# Server Configuration +# - Service.properties +################################################## + +# service.administrator.password +# password max length = 15 +service.administrator.password=clipreport + +# locale ko_KR, en_US +service.locale=ko_KR \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/clipreport4/clipreport4.properties b/src/main/webapp/WEB-INF/clipreport4/clipreport4.properties new file mode 100644 index 0000000..49f0981 --- /dev/null +++ b/src/main/webapp/WEB-INF/clipreport4/clipreport4.properties @@ -0,0 +1,31 @@ +#Report Server Base Config +#base.eachreport=false +#Windows path ex) c:\clipreport\report\ +#Unix/Linux path ex) /root/home/clipreport/report +#base.file.defaultfont=NanumGothic-Regular.ttf +#base.log.write=console,file,db +#base.log.type=info,warning,error,debug +#base.path.dbfile=c:\clipreport\log.db +#base.path.logfolder=c:\clipreport\logs\ +# +#Sun Jul 09 13:15:47 KST 2017 +base.scheduler.reportdelete.periodtime.hour=24 +base.loadbalancing=true +base.alwayspng=false +base.scheduler.reportdelete.starttime.hour=5 +base.log.write=console,file +base.path.dbfile= +base.file.defaultfont=NanumGothic-Regular.ttf +#base.path.reportfolder=D:\\hpgisDev\\workspace\\geoinfo_admin\\src\\main\\webapp\\WEB-INF\\clipreport4\\temp +base.path.reportfolder=%root%\\temp + +base.log.type=debug,error,warning,info +base.image.png.size=512 +base.eachreport=false +base.scheduler.reportdelete.starttime.minute=0 +#base.path.logfolder=D:\\hpgisDev\\workspace\\geoinfo_admin\\src\\main\\webapp\\WEB-INF\\clipreport4/logs/ +#base.path.fontfolder=D:\\hpgisDev\\workspace\\geoinfo_admin\\src\\main\\webapp\\WEB-INF\\clipreport4/font/ +base.path.logfolder=%root%\\logs/ +base.path.fontfolder=%root%\\font/ +base.systemfont=true +base.image.jpg.size=1024 diff --git a/src/main/webapp/WEB-INF/clipreport4/crf/CLIP.crf b/src/main/webapp/WEB-INF/clipreport4/crf/CLIP.crf new file mode 100644 index 0000000..e020b15 Binary files /dev/null and b/src/main/webapp/WEB-INF/clipreport4/crf/CLIP.crf differ diff --git a/src/main/webapp/WEB-INF/clipreport4/crf/CLIP.crfe b/src/main/webapp/WEB-INF/clipreport4/crf/CLIP.crfe new file mode 100644 index 0000000..802bc33 Binary files /dev/null and b/src/main/webapp/WEB-INF/clipreport4/crf/CLIP.crfe differ diff --git a/src/main/webapp/WEB-INF/clipreport4/crf/CLIPtoDRM.crf b/src/main/webapp/WEB-INF/clipreport4/crf/CLIPtoDRM.crf new file mode 100644 index 0000000..bd542f0 Binary files /dev/null and b/src/main/webapp/WEB-INF/clipreport4/crf/CLIPtoDRM.crf differ diff --git a/src/main/webapp/WEB-INF/clipreport4/font/NanumBarunGothic.ttf b/src/main/webapp/WEB-INF/clipreport4/font/NanumBarunGothic.ttf new file mode 100644 index 0000000..9ae31c6 Binary files /dev/null and b/src/main/webapp/WEB-INF/clipreport4/font/NanumBarunGothic.ttf differ diff --git a/src/main/webapp/WEB-INF/clipreport4/font/NanumBarunGothicBold.ttf b/src/main/webapp/WEB-INF/clipreport4/font/NanumBarunGothicBold.ttf new file mode 100644 index 0000000..011c63e Binary files /dev/null and b/src/main/webapp/WEB-INF/clipreport4/font/NanumBarunGothicBold.ttf differ diff --git a/src/main/webapp/WEB-INF/clipreport4/font/NanumBarunGothicLight.ttf b/src/main/webapp/WEB-INF/clipreport4/font/NanumBarunGothicLight.ttf new file mode 100644 index 0000000..d6faf7f Binary files /dev/null and b/src/main/webapp/WEB-INF/clipreport4/font/NanumBarunGothicLight.ttf differ diff --git a/src/main/webapp/WEB-INF/clipreport4/font/NanumBarunGothicUltraLight.ttf b/src/main/webapp/WEB-INF/clipreport4/font/NanumBarunGothicUltraLight.ttf new file mode 100644 index 0000000..c291730 Binary files /dev/null and b/src/main/webapp/WEB-INF/clipreport4/font/NanumBarunGothicUltraLight.ttf differ diff --git a/src/main/webapp/WEB-INF/clipreport4/font/NanumGothic-Bold.ttf b/src/main/webapp/WEB-INF/clipreport4/font/NanumGothic-Bold.ttf new file mode 100644 index 0000000..c24b0e7 Binary files /dev/null and b/src/main/webapp/WEB-INF/clipreport4/font/NanumGothic-Bold.ttf differ diff --git a/src/main/webapp/WEB-INF/clipreport4/font/NanumGothic-ExtraBold.ttf b/src/main/webapp/WEB-INF/clipreport4/font/NanumGothic-ExtraBold.ttf new file mode 100644 index 0000000..c85adc7 Binary files /dev/null and b/src/main/webapp/WEB-INF/clipreport4/font/NanumGothic-ExtraBold.ttf differ diff --git a/src/main/webapp/WEB-INF/clipreport4/font/NanumGothic-Regular.ttf b/src/main/webapp/WEB-INF/clipreport4/font/NanumGothic-Regular.ttf new file mode 100644 index 0000000..c14ce88 Binary files /dev/null and b/src/main/webapp/WEB-INF/clipreport4/font/NanumGothic-Regular.ttf differ diff --git a/src/main/webapp/WEB-INF/clipreport4/font/NanumGothicCoding-Bold.ttf b/src/main/webapp/WEB-INF/clipreport4/font/NanumGothicCoding-Bold.ttf new file mode 100644 index 0000000..9aa9ba2 Binary files /dev/null and b/src/main/webapp/WEB-INF/clipreport4/font/NanumGothicCoding-Bold.ttf differ diff --git a/src/main/webapp/WEB-INF/clipreport4/font/NanumGothicCoding-Regular.ttf b/src/main/webapp/WEB-INF/clipreport4/font/NanumGothicCoding-Regular.ttf new file mode 100644 index 0000000..ba77a9d Binary files /dev/null and b/src/main/webapp/WEB-INF/clipreport4/font/NanumGothicCoding-Regular.ttf differ diff --git a/src/main/webapp/WEB-INF/clipreport4/font/NanumMyeongjo-Bold.ttf b/src/main/webapp/WEB-INF/clipreport4/font/NanumMyeongjo-Bold.ttf new file mode 100644 index 0000000..ecac447 Binary files /dev/null and b/src/main/webapp/WEB-INF/clipreport4/font/NanumMyeongjo-Bold.ttf differ diff --git a/src/main/webapp/WEB-INF/clipreport4/font/NanumMyeongjo-ExtraBold.ttf b/src/main/webapp/WEB-INF/clipreport4/font/NanumMyeongjo-ExtraBold.ttf new file mode 100644 index 0000000..6dd48fb Binary files /dev/null and b/src/main/webapp/WEB-INF/clipreport4/font/NanumMyeongjo-ExtraBold.ttf differ diff --git a/src/main/webapp/WEB-INF/clipreport4/font/NanumMyeongjo-Regular.ttf b/src/main/webapp/WEB-INF/clipreport4/font/NanumMyeongjo-Regular.ttf new file mode 100644 index 0000000..a47e1a6 Binary files /dev/null and b/src/main/webapp/WEB-INF/clipreport4/font/NanumMyeongjo-Regular.ttf differ diff --git a/src/main/webapp/WEB-INF/clipreport4/log/clip b/src/main/webapp/WEB-INF/clipreport4/log/clip new file mode 100644 index 0000000..e69de29 diff --git a/src/main/webapp/WEB-INF/clipreport4/securekey.clip b/src/main/webapp/WEB-INF/clipreport4/securekey.clip new file mode 100644 index 0000000..36060b0 --- /dev/null +++ b/src/main/webapp/WEB-INF/clipreport4/securekey.clip @@ -0,0 +1 @@ +( ^ V^ {@ 4 \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/config/springmvc/action-servlet.xml b/src/main/webapp/WEB-INF/config/springmvc/action-servlet.xml new file mode 100644 index 0000000..c595579 --- /dev/null +++ b/src/main/webapp/WEB-INF/config/springmvc/action-servlet.xml @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + geoinfo.**.service + + + + + + + + + + + + + + + + /WEB-INF/tiles/tiles-layout.xml + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/keystore/SVR1611778001_env.jks b/src/main/webapp/WEB-INF/keystore/SVR1611778001_env.jks new file mode 100644 index 0000000..c9bb297 Binary files /dev/null and b/src/main/webapp/WEB-INF/keystore/SVR1611778001_env.jks differ diff --git a/src/main/webapp/WEB-INF/lib/ClipReport4.0-1.0.0.89.jar__ b/src/main/webapp/WEB-INF/lib/ClipReport4.0-1.0.0.89.jar__ new file mode 100644 index 0000000..1572de1 Binary files /dev/null and b/src/main/webapp/WEB-INF/lib/ClipReport4.0-1.0.0.89.jar__ differ diff --git a/src/main/webapp/WEB-INF/lib/batch.properties b/src/main/webapp/WEB-INF/lib/batch.properties new file mode 100644 index 0000000..9ab50f2 --- /dev/null +++ b/src/main/webapp/WEB-INF/lib/batch.properties @@ -0,0 +1,4 @@ +url=jdbc:mysql://180.231.91.106:3306/gelogixdb +user=gelogix +password=gelogix + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/lib/gelogix.properties b/src/main/webapp/WEB-INF/lib/gelogix.properties new file mode 100644 index 0000000..4d0b0a9 --- /dev/null +++ b/src/main/webapp/WEB-INF/lib/gelogix.properties @@ -0,0 +1,4 @@ +datasource=jdbc/gelogixdb +attach.root=c\:\\temp +keyroot=c\:\\temp\\eptray +templete.root=F\:\\gelogix_root\\WebContent\\template diff --git a/src/main/webapp/WEB-INF/lib/gemis.properties b/src/main/webapp/WEB-INF/lib/gemis.properties new file mode 100644 index 0000000..5edc241 --- /dev/null +++ b/src/main/webapp/WEB-INF/lib/gemis.properties @@ -0,0 +1,18 @@ +datasource=gEmisDataSource +attach.root=c\:\\temp +keyroot=c\:\\temp\\eptray +templete.root=D\:\\workspace\\Project\\gemis\\webapp\\template +inboundport.mlsendservice=http\://wsstage.samsung.net/wsgwsoaphttp1/soaphttpengine/WSGWBus/MLSendService/MLSendService_InboundPort +inboundport.mlcanceldeliveryservice=http\://wsstage.samsung.net/wsgwsoaphttp1/soaphttpengine/WSGWBus/MLCancelDeliveryService/MLCancelDeliveryService_InboundPort +inboundport.mldeliverystatusinquiryservice=http\://wsstage.samsung.net/wsgwsoaphttp1/soaphttpengine/WSGWBus/MLDeliveryStatusInquiryService/MLDeliveryStatusInquiryService_InboundPort +inboundport.empservice=http\://wsstage.samsung.net/wsgwsoaphttp1/soaphttpengine/WSGWBus/EmpService/EmpService_InboundPort +inboundport.orgservice=http\://wsstage.samsung.net/wsgwsoaphttp1/soaphttpengine/WSGWBus/OrgService/OrgService_InboundPort +inboundport.apsubmitservice=http\://wsstage.samsung.net/wsgwsoaphttp1/soaphttpengine/WSGWBus/APSubmitService/APSubmitService_InboundPort +inboundport.apwithdrawservice=http\://wsstage.samsung.net/wsgwsoaphttp1/soaphttpengine/WSGWBus/APWithdrawService/APWithdrawService_InboundPort +inboundport.apstatusinquiryservice=http\://wsstage.samsung.net/wsgwsoaphttp1/soaphttpengine/WSGWBus/APStatusInquiryService/APStatusInquiryService_InboundPort +esb.emp.mgr.dn=C10LD0198 +esb.emp.mgr.pw=C10LD10020414 +esb.mail.mgr.dn=C10ML0141 +esb.mail.mgr.pw=C10ML0141020405 +esb.appr.mgr.dn=C10AP0083 +esb.appr.mgr.pw=C10AP0083020810 diff --git a/src/main/webapp/WEB-INF/lib/owsprojection.jar.org b/src/main/webapp/WEB-INF/lib/owsprojection.jar.org new file mode 100644 index 0000000..0292f12 Binary files /dev/null and b/src/main/webapp/WEB-INF/lib/owsprojection.jar.org differ diff --git a/src/main/webapp/WEB-INF/lib/vssver.scc b/src/main/webapp/WEB-INF/lib/vssver.scc new file mode 100644 index 0000000..40ed6ae Binary files /dev/null and b/src/main/webapp/WEB-INF/lib/vssver.scc differ diff --git a/src/main/webapp/WEB-INF/metadata/HBEFOR009701-metadata.xml b/src/main/webapp/WEB-INF/metadata/HBEFOR009701-metadata.xml new file mode 100644 index 0000000..b3d5457 --- /dev/null +++ b/src/main/webapp/WEB-INF/metadata/HBEFOR009701-metadata.xml @@ -0,0 +1,109 @@ + + + + + + +MIID5jCCAs6gAwIBAgIQSu56VQDMPMdpFgwZwEslGzANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQG +EwJLUjEcMBoGA1UEChMTR292ZXJubWVudCBvZiBLb3JlYTENMAsGA1UECxMER1BLSTEUMBIGA1UE +AxMLQ0ExMzEwMDAwMDEwHhcNMDkxMTAyMDYyMTA5WhcNMTIwMjAyMDYyMTA5WjBdMQswCQYDVQQG +EwJLUjEcMBoGA1UECgwTR292ZXJubWVudCBvZiBLb3JlYTEYMBYGA1UECwwPR3JvdXAgb2YgU2Vy +dmVyMRYwFAYDVQQDDA1TVlIxNjExNzc4MDAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8 +uBE1JZNKa1198ejF6uFwIgIktrJDnajHt/Vuo9lhUV8ps1fQrtS6bvURUREM7jsrwQxiaNGWIpNf +KLQLjuyDJYset6fSxiHGIN3Pz7lch+dGXvbSgR+vOeRIG/CB4k1gA0FCFGpTOjCU1I09yXMNvlmS +V5nbKu4J6CVmDVGcDwIDAQABo4IBMTCCAS0wHwYDVR0jBBgwFoAUAc8XrgSNh8y3VQtxbGtInOax +spUwHQYDVR0OBBYEFI1P2l4BjUiiCmmQLo0ZNHKG2h5bMA4GA1UdDwEB/wQEAwIFIDAYBgNVHSAE +ETAPMA0GCSqDGoaNIQIBAjAAMIGIBgNVHR8EgYAwfjB8oHqgeIZ2bGRhcDovL2Nlbi5kaXIuZ28u +a3I6Mzg5L2NuPWNybDAwMjYsY249Q0ExMzEwMDAwMDEsb3U9R1BLSSxvPUdvdmVybm1lbnQgb2Yg +S29yZWEsYz1LUj9jZXJ0aWZpY2F0ZVJldm9jYXRpb25saXN0O2JpbmFyeTA2BggrBgEFBQcBAQQq +MCgwJgYIKwYBBQUHMAGGGmh0dHA6Ly9ndmEuZ3BraS5nby5rcjo4MDgwMA0GCSqGSIb3DQEBBQUA +A4IBAQBVyBgKV2pJ2J3bD7toc/Ttm6KNnLXRnc5lgeJexfmopj1V11aNzPBdYacmNke1N85kZCIi +vyfDxwqPIjHYBblGYVRS+A/3gymTNxdktPWdbRnly2/ca+xWYNTHfa/uebT/doQZjDD8vXGnkQae +/FZ3TAmH0C0VyH+OWwRQBlE3KmwubSjCf5h6C7hDXZ3mUVExgI5W6aYmmvTUYv5GRh3/L2WQpvbR +xs4YWMpej1MPFFTILZDbWEqapqwD4zMP1VwaOzbomdDj4AxGEoFapr4hmlVBndDbiDQHyBuFQpiv +qR+fV3ZKpaLdBHZT/bIgLTQowFZNNNiO8Xwneb/VA4ax + + + + + + + + +MIID5jCCAs6gAwIBAgIQSu56VQDMPMdpFgwZwEslGzANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQG +EwJLUjEcMBoGA1UEChMTR292ZXJubWVudCBvZiBLb3JlYTENMAsGA1UECxMER1BLSTEUMBIGA1UE +AxMLQ0ExMzEwMDAwMDEwHhcNMDkxMTAyMDYyMTA5WhcNMTIwMjAyMDYyMTA5WjBdMQswCQYDVQQG +EwJLUjEcMBoGA1UECgwTR292ZXJubWVudCBvZiBLb3JlYTEYMBYGA1UECwwPR3JvdXAgb2YgU2Vy +dmVyMRYwFAYDVQQDDA1TVlIxNjExNzc4MDAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8 +uBE1JZNKa1198ejF6uFwIgIktrJDnajHt/Vuo9lhUV8ps1fQrtS6bvURUREM7jsrwQxiaNGWIpNf +KLQLjuyDJYset6fSxiHGIN3Pz7lch+dGXvbSgR+vOeRIG/CB4k1gA0FCFGpTOjCU1I09yXMNvlmS +V5nbKu4J6CVmDVGcDwIDAQABo4IBMTCCAS0wHwYDVR0jBBgwFoAUAc8XrgSNh8y3VQtxbGtInOax +spUwHQYDVR0OBBYEFI1P2l4BjUiiCmmQLo0ZNHKG2h5bMA4GA1UdDwEB/wQEAwIFIDAYBgNVHSAE +ETAPMA0GCSqDGoaNIQIBAjAAMIGIBgNVHR8EgYAwfjB8oHqgeIZ2bGRhcDovL2Nlbi5kaXIuZ28u +a3I6Mzg5L2NuPWNybDAwMjYsY249Q0ExMzEwMDAwMDEsb3U9R1BLSSxvPUdvdmVybm1lbnQgb2Yg +S29yZWEsYz1LUj9jZXJ0aWZpY2F0ZVJldm9jYXRpb25saXN0O2JpbmFyeTA2BggrBgEFBQcBAQQq +MCgwJgYIKwYBBQUHMAGGGmh0dHA6Ly9ndmEuZ3BraS5nby5rcjo4MDgwMA0GCSqGSIb3DQEBBQUA +A4IBAQBVyBgKV2pJ2J3bD7toc/Ttm6KNnLXRnc5lgeJexfmopj1V11aNzPBdYacmNke1N85kZCIi +vyfDxwqPIjHYBblGYVRS+A/3gymTNxdktPWdbRnly2/ca+xWYNTHfa/uebT/doQZjDD8vXGnkQae +/FZ3TAmH0C0VyH+OWwRQBlE3KmwubSjCf5h6C7hDXZ3mUVExgI5W6aYmmvTUYv5GRh3/L2WQpvbR +xs4YWMpej1MPFFTILZDbWEqapqwD4zMP1VwaOzbomdDj4AxGEoFapr4hmlVBndDbiDQHyBuFQpiv +qR+fV3ZKpaLdBHZT/bIgLTQowFZNNNiO8Xwneb/VA4ax + + + + + + + + + + + urn:oasis:names:tc:SAML:2.0:nameid-format:transient + + + + + + Provide Attributes + + + + Provide Attributes + + + + Provide Attributes + + + + Provide Attributes + + + + + Provide Attributes + + + + Provide Attributes + + + + + Provide Attributes + + + + + Provide Attributes + + + + + + + NoUse + NoUse + NoUse + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/metadata/HJ7WMD887E92-metadata.xml b/src/main/webapp/WEB-INF/metadata/HJ7WMD887E92-metadata.xml new file mode 100644 index 0000000..5c1c393 --- /dev/null +++ b/src/main/webapp/WEB-INF/metadata/HJ7WMD887E92-metadata.xml @@ -0,0 +1,109 @@ + + + + + + +MIID5TCCAs2gAwIBAgIQSu55xQIaMtzcs5W9hd7TajANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQG +EwJLUjEcMBoGA1UEChMTR292ZXJubWVudCBvZiBLb3JlYTENMAsGA1UECxMER1BLSTEUMBIGA1UE +AxMLQ0ExMzEwMDAwMDEwHhcNMDkxMTAyMDYxODQ1WhcNMTIwMjAyMDYxODQ1WjBdMQswCQYDVQQG +EwJLUjEcMBoGA1UECgwTR292ZXJubWVudCBvZiBLb3JlYTEYMBYGA1UECwwPR3JvdXAgb2YgU2Vy +dmVyMRYwFAYDVQQDDA1TVlIxNjExNzc4MDAyMIGeMA0GCSqGSIb3DQEBAQUAA4GMADCBiAKBgH6X +xl9EkqpSBajM7eIwnUoxaJFy5jaVb7MI/e9oyiqR06+DL+zRsUUGJ7DuTgk4SKdIrkdr4o1XJde6 +/RbKj/EuMR1K+zDOkIfQd/x3uNndU7pk/+mvIeMwVZ3dT6DCSMngoBSa8xTSzQVQqFW531NpzCqN +8v7LcV0Z+SOnRs1HAgMBAAGjggExMIIBLTAfBgNVHSMEGDAWgBQBzxeuBI2HzLdVC3Fsa0ic5rGy +lTAdBgNVHQ4EFgQUXbS/IIAq8zNWa2OEB3+Os2Kd9NYwDgYDVR0PAQH/BAQDAgUgMBgGA1UdIAQR +MA8wDQYJKoMaho0hAgECMAAwgYgGA1UdHwSBgDB+MHygeqB4hnZsZGFwOi8vY2VuLmRpci5nby5r +cjozODkvY249Y3JsMDAyNixjbj1DQTEzMTAwMDAwMSxvdT1HUEtJLG89R292ZXJubWVudCBvZiBL +b3JlYSxjPUtSP2NlcnRpZmljYXRlUmV2b2NhdGlvbmxpc3Q7YmluYXJ5MDYGCCsGAQUFBwEBBCow +KDAmBggrBgEFBQcwAYYaaHR0cDovL2d2YS5ncGtpLmdvLmtyOjgwODAwDQYJKoZIhvcNAQEFBQAD +ggEBACIi+Ixf5dhas+0YMy4QVh/ADr3xKPyMGVMBQAbWdludRdJ/6kvWh2Uay/KGORFqOaGuy7p3 +t1FwIkhtfjPccpO50fRxRLHUpOFnhUlbF38Il0gQ94ZQM8fwzRsEUQqF6nmUeZV/XSTtb5lMo1sp +oV4jZ2VAp0vsp7R5DnVnRGlkLDYz1uji6swv2nVS8POMRhYqHlni9YJJ+ZQI88Wo3awggTrpA4V5 +ds3JCV4g/XqScwj8E8b7k92wh6RfU8uYh7TaWNXgcFV+wJUUNJ757G5TSPUJvVzVJTiYxmpeCoOT +ePN2fa2JrCc+yRDGqPo9VgCjGK7qCw3X+lTN0XcFq9k= + + + + + + + + +MIID5TCCAs2gAwIBAgIQSu55xQIaMtzcs5W9hd7TajANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQG +EwJLUjEcMBoGA1UEChMTR292ZXJubWVudCBvZiBLb3JlYTENMAsGA1UECxMER1BLSTEUMBIGA1UE +AxMLQ0ExMzEwMDAwMDEwHhcNMDkxMTAyMDYxODQ1WhcNMTIwMjAyMDYxODQ1WjBdMQswCQYDVQQG +EwJLUjEcMBoGA1UECgwTR292ZXJubWVudCBvZiBLb3JlYTEYMBYGA1UECwwPR3JvdXAgb2YgU2Vy +dmVyMRYwFAYDVQQDDA1TVlIxNjExNzc4MDAyMIGeMA0GCSqGSIb3DQEBAQUAA4GMADCBiAKBgH6X +xl9EkqpSBajM7eIwnUoxaJFy5jaVb7MI/e9oyiqR06+DL+zRsUUGJ7DuTgk4SKdIrkdr4o1XJde6 +/RbKj/EuMR1K+zDOkIfQd/x3uNndU7pk/+mvIeMwVZ3dT6DCSMngoBSa8xTSzQVQqFW531NpzCqN +8v7LcV0Z+SOnRs1HAgMBAAGjggExMIIBLTAfBgNVHSMEGDAWgBQBzxeuBI2HzLdVC3Fsa0ic5rGy +lTAdBgNVHQ4EFgQUXbS/IIAq8zNWa2OEB3+Os2Kd9NYwDgYDVR0PAQH/BAQDAgUgMBgGA1UdIAQR +MA8wDQYJKoMaho0hAgECMAAwgYgGA1UdHwSBgDB+MHygeqB4hnZsZGFwOi8vY2VuLmRpci5nby5r +cjozODkvY249Y3JsMDAyNixjbj1DQTEzMTAwMDAwMSxvdT1HUEtJLG89R292ZXJubWVudCBvZiBL +b3JlYSxjPUtSP2NlcnRpZmljYXRlUmV2b2NhdGlvbmxpc3Q7YmluYXJ5MDYGCCsGAQUFBwEBBCow +KDAmBggrBgEFBQcwAYYaaHR0cDovL2d2YS5ncGtpLmdvLmtyOjgwODAwDQYJKoZIhvcNAQEFBQAD +ggEBACIi+Ixf5dhas+0YMy4QVh/ADr3xKPyMGVMBQAbWdludRdJ/6kvWh2Uay/KGORFqOaGuy7p3 +t1FwIkhtfjPccpO50fRxRLHUpOFnhUlbF38Il0gQ94ZQM8fwzRsEUQqF6nmUeZV/XSTtb5lMo1sp +oV4jZ2VAp0vsp7R5DnVnRGlkLDYz1uji6swv2nVS8POMRhYqHlni9YJJ+ZQI88Wo3awggTrpA4V5 +ds3JCV4g/XqScwj8E8b7k92wh6RfU8uYh7TaWNXgcFV+wJUUNJ757G5TSPUJvVzVJTiYxmpeCoOT +ePN2fa2JrCc+yRDGqPo9VgCjGK7qCw3X+lTN0XcFq9k= + + + + + + + + + + + urn:oasis:names:tc:SAML:2.0:nameid-format:transient + + + + + + Provide Attributes + + + + Provide Attributes + + + + Provide Attributes + + + + Provide Attributes + + + + + Provide Attributes + + + + Provide Attributes + + + + + Provide Attributes + + + + + Provide Attributes + + + + + + + NoUse + NoUse + NoUse + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/metadata/g-pin.go.kr-metadata.xml b/src/main/webapp/WEB-INF/metadata/g-pin.go.kr-metadata.xml new file mode 100644 index 0000000..50f424d --- /dev/null +++ b/src/main/webapp/WEB-INF/metadata/g-pin.go.kr-metadata.xml @@ -0,0 +1,103 @@ + + + + + + + +MIID5jCCAs6gAwIBAgIQR2CxaQHdLs7d5mTkNKN/CTANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQG +EwJLUjEcMBoGA1UEChMTR292ZXJubWVudCBvZiBLb3JlYTENMAsGA1UECxMER1BLSTEUMBIGA1UE +AxMLQ0ExMzEwMDAwMDEwHhcNMDcxMjEzMDQxMzI5WhcNMTAwMzEzMDQxMzI5WjBdMQswCQYDVQQG +EwJLUjEcMBoGA1UECgwTR292ZXJubWVudCBvZiBLb3JlYTEYMBYGA1UECwwPR3JvdXAgb2YgU2Vy +dmVyMRYwFAYDVQQDDA1TVlIxMzEwNjk3MDAyMIGeMA0GCSqGSIb3DQEBAQUAA4GMADCBiAKBgFt7 +WLb9z5j/uw5uWXr2K7MG3AT58inozhHN0YvcHZRXngfDZSEh/sI1GMMrIHmuJ8BsmvsVGpYmz6qE +7aVTKK6B3kJRHnha3Y+YXKSHx21ui+i4fBiQlb+5dx95VueaJ5EcvsfrOysXync64n1oc1sjatuV +2DVvIfp0ZMFgUhmJAgMBAAGjggEyMIIBLjAfBgNVHSMEGDAWgBQBzxeuBI2HzLdVC3Fsa0ic5rGy +lTAdBgNVHQ4EFgQUaweMgdxPp07C6+98q1nAzRaSNzkwDgYDVR0PAQH/BAQDAgUgMBgGA1UdIAQR +MA8wDQYJKoMaho0hAgECMAAwgYkGA1UdHwSBgTB/MH2ge6B5hndsZGFwOi8vbGRhcC5nY2MuZ28u +a3I6Mzg5L2NuPWNybDAwMDksY249Q0ExMzEwMDAwMDEsb3U9R1BLSSxvPUdvdmVybm1lbnQgb2Yg +S29yZWEsYz1LUj9jZXJ0aWZpY2F0ZVJldm9jYXRpb25saXN0O2JpbmFyeTA2BggrBgEFBQcBAQQq +MCgwJgYIKwYBBQUHMAGGGmh0dHA6Ly9ndmEuZ3BraS5nby5rcjo4MDgwMA0GCSqGSIb3DQEBBQUA +A4IBAQA7ScvrtfNCrRqm9A9OOw/8Si7K8zZWrfFPj3mfW2g5lR9mgCobV9dzF4eYcSYuklyBmGQO +5JZ/e8EvSm4rzn7xqJLpOFc4sSKQgrpsFuw/pA/xOn/UxLoVNhFyxc/WcSbI7Z8ZeLj8NXN0XLNm +Ce4cfrC+ypmc7tSeoN/7IMxS7cibZUnMBoWf6uTiS2jnh5dWhnEIhGgxPkW3bnNKeOJ4F0lq6ce2 +ZBEIbtTcRMHgmsng7MckvPJx/IE2vKLRRi4V+eAf/NKWCQETP5GzZXvb9kHrunncXFdUXn/AM+HK +MLeOcOizEsA3Cnb7UClSVJq20KrNyeUhybbAgEmvhwAR + + + + + + + + +MIID5jCCAs6gAwIBAgIQR2CxaQHdLs7d5mTkNKN/CTANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQG +EwJLUjEcMBoGA1UEChMTR292ZXJubWVudCBvZiBLb3JlYTENMAsGA1UECxMER1BLSTEUMBIGA1UE +AxMLQ0ExMzEwMDAwMDEwHhcNMDcxMjEzMDQxMzI5WhcNMTAwMzEzMDQxMzI5WjBdMQswCQYDVQQG +EwJLUjEcMBoGA1UECgwTR292ZXJubWVudCBvZiBLb3JlYTEYMBYGA1UECwwPR3JvdXAgb2YgU2Vy +dmVyMRYwFAYDVQQDDA1TVlIxMzEwNjk3MDAyMIGeMA0GCSqGSIb3DQEBAQUAA4GMADCBiAKBgFt7 +WLb9z5j/uw5uWXr2K7MG3AT58inozhHN0YvcHZRXngfDZSEh/sI1GMMrIHmuJ8BsmvsVGpYmz6qE +7aVTKK6B3kJRHnha3Y+YXKSHx21ui+i4fBiQlb+5dx95VueaJ5EcvsfrOysXync64n1oc1sjatuV +2DVvIfp0ZMFgUhmJAgMBAAGjggEyMIIBLjAfBgNVHSMEGDAWgBQBzxeuBI2HzLdVC3Fsa0ic5rGy +lTAdBgNVHQ4EFgQUaweMgdxPp07C6+98q1nAzRaSNzkwDgYDVR0PAQH/BAQDAgUgMBgGA1UdIAQR +MA8wDQYJKoMaho0hAgECMAAwgYkGA1UdHwSBgTB/MH2ge6B5hndsZGFwOi8vbGRhcC5nY2MuZ28u +a3I6Mzg5L2NuPWNybDAwMDksY249Q0ExMzEwMDAwMDEsb3U9R1BLSSxvPUdvdmVybm1lbnQgb2Yg +S29yZWEsYz1LUj9jZXJ0aWZpY2F0ZVJldm9jYXRpb25saXN0O2JpbmFyeTA2BggrBgEFBQcBAQQq +MCgwJgYIKwYBBQUHMAGGGmh0dHA6Ly9ndmEuZ3BraS5nby5rcjo4MDgwMA0GCSqGSIb3DQEBBQUA +A4IBAQA7ScvrtfNCrRqm9A9OOw/8Si7K8zZWrfFPj3mfW2g5lR9mgCobV9dzF4eYcSYuklyBmGQO +5JZ/e8EvSm4rzn7xqJLpOFc4sSKQgrpsFuw/pA/xOn/UxLoVNhFyxc/WcSbI7Z8ZeLj8NXN0XLNm +Ce4cfrC+ypmc7tSeoN/7IMxS7cibZUnMBoWf6uTiS2jnh5dWhnEIhGgxPkW3bnNKeOJ4F0lq6ce2 +ZBEIbtTcRMHgmsng7MckvPJx/IE2vKLRRi4V+eAf/NKWCQETP5GzZXvb9kHrunncXFdUXn/AM+HK +MLeOcOizEsA3Cnb7UClSVJq20KrNyeUhybbAgEmvhwAR + + + + + + + + + + + + + + + + + + + + urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName + + + urn:oasis:names:tc:SAML:2.0:nameid-format:persistent + + + urn:oasis:names:tc:SAML:2.0:nameid-format:transient + + + + + + + + + Electronics and Telecommunications Research Institute + ETRI + http://www.etri.re.kr + + diff --git a/src/main/webapp/WEB-INF/tiles/tiles-layout.xml b/src/main/webapp/WEB-INF/tiles/tiles-layout.xml new file mode 100644 index 0000000..ff5b902 --- /dev/null +++ b/src/main/webapp/WEB-INF/tiles/tiles-layout.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/views/admins/board/00-modify.jsp b/src/main/webapp/WEB-INF/views/admins/board/00-modify.jsp new file mode 100644 index 0000000..08bac78 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/00-modify.jsp @@ -0,0 +1,128 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
 
  + + +
+ + + + + + + + + + + + + + + + + + + + + + + +
번호글쓴이등록일조회수
${aid}${result.name}${result.datetime}${result.readcount}
제목 + +
내용 + +
+
+ + +
+ +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/board/00-view.jsp b/src/main/webapp/WEB-INF/views/admins/board/00-view.jsp new file mode 100644 index 0000000..02686bb --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/00-view.jsp @@ -0,0 +1 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
 
   
번호 글쓴이 등록일 조회수
${result.idx }
이메일 전화번호
제목   
${fn:replace(content, br, "
")}
 
번호 글쓴이 등록일 조회수
${result.idx }
이메일 전화번호
제목   
${fn:replace(content, br, "
")}
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/admins/board/00.jsp b/src/main/webapp/WEB-INF/views/admins/board/00.jsp new file mode 100644 index 0000000..1fae7d3 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/00.jsp @@ -0,0 +1,177 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
 
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호제목글쓴이답변여부등록일조회수
${qnaList.rn}  + + + + ${qnaList.subject} + + + + +   ${qnaList.subject} + + +      ${qnaList.subject} + + + + + + ${qnaList.name}완료${qnaList.datetime}${qnaList.readcount}
+
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/board/00_write.jsp b/src/main/webapp/WEB-INF/views/admins/board/00_write.jsp new file mode 100644 index 0000000..892fc9c --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/00_write.jsp @@ -0,0 +1,205 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> + + +:::::게시판::::: + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ 작성자 + + +
+
+ + + + + +
+ E-mail + + +
+
+ + + + + + +
+ 전화번호 + + +
+
+ + + + + + + +
+ + + + + +
+ 제 목 + + +
+
+ + + + + +
+
내 용
+
+ +
+
+
+ + + + + +
+ 저장 + 취소 +
+ +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/board/01-modify.jsp b/src/main/webapp/WEB-INF/views/admins/board/01-modify.jsp new file mode 100644 index 0000000..6ce6309 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/01-modify.jsp @@ -0,0 +1,300 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
 
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호작성자등록일
${aid}${result.author}${result.datetime}
제목
+ +
※ 파일 첨부는 최대 3개까지 가능하며, 파일 사이즈는 파일당 1 GB로 제한되어 있습니다.
파일첨부1 + + +
+ + +
+ +
+ + + +
+
파일첨부2 + + +
+ + +
+ +
+ + + +
+
파일첨부3 + + +
+ + +
+ +
+ + + +
+
+ + + 맨위 공지글로 등록 + + + 맨위 공지글로 등록 + + +
+
+ + +
+ +
+ + + diff --git a/src/main/webapp/WEB-INF/views/admins/board/01.jsp b/src/main/webapp/WEB-INF/views/admins/board/01.jsp new file mode 100644 index 0000000..c35a87d --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/01.jsp @@ -0,0 +1,95 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
 
  + +
+ + + + + + + + + + + + + + + + + + + +
번호제목작성자등록일
${result.aid} + + + + ${result.subject} + + + [공지] ${result.subject} + + + + ${result.author}${result.datetime}
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/board/01_view.jsp b/src/main/webapp/WEB-INF/views/admins/board/01_view.jsp new file mode 100644 index 0000000..2d8452f --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/01_view.jsp @@ -0,0 +1,126 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> + + + + + + + + + + + + + + + + + + + + + + +
 
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
번호작성자등록일
제목
+ + + ${fn:replace(contents, br, "
")} +
첨부파일 + ${result.filename1} +
+ ${result.filename2} +
+ ${result.filename3} +
+
 
+ + + + diff --git a/src/main/webapp/WEB-INF/views/admins/board/01_write.jsp b/src/main/webapp/WEB-INF/views/admins/board/01_write.jsp new file mode 100644 index 0000000..1cc9d1a --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/01_write.jsp @@ -0,0 +1,166 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> + + + + + + + + + + + + + + + + + + + + + +
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
제목
작성자
내용
※ 파일 첨부는 최대 3개까지 가능하며, 파일 사이즈는 파일당 1 GB로 제한되어 있습니다.
파일첨부1 + +
파일첨부2 + +
파일첨부3 + +
+ + + 맨위 공지글로 등록 + + + 맨위 공지글로 등록 + + +
+ + +
+ +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/board/11-modify.jsp b/src/main/webapp/WEB-INF/views/admins/board/11-modify.jsp new file mode 100644 index 0000000..30e9945 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/11-modify.jsp @@ -0,0 +1 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
 
  저장
질문내용
답변내용
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/admins/board/11-write.jsp b/src/main/webapp/WEB-INF/views/admins/board/11-write.jsp new file mode 100644 index 0000000..33e0745 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/11-write.jsp @@ -0,0 +1 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
 
 
질문내용
답변내용
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/admins/board/11.jsp b/src/main/webapp/WEB-INF/views/admins/board/11.jsp new file mode 100644 index 0000000..ee84d27 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/11.jsp @@ -0,0 +1,106 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + +
+ + + + + + + + + + + + + + + + +
 
  + +
+ + + + + + + + + + + + +
+ Q : ${result.subject} + + + +
+ +
+
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/board/12-modify.jsp b/src/main/webapp/WEB-INF/views/admins/board/12-modify.jsp new file mode 100644 index 0000000..1d06af8 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/12-modify.jsp @@ -0,0 +1,331 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
+ + + + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
번호글쓴이등록일조회수
${aid}${result.name}${result.datetime}${result.readcount}
제목 +
내용 + +
+
+ + + + + +
+
파일 첨부는 최대 3개까지 가능하며, 파일 사이즈는 파일당 500MB 로 제한되어 있습니다.

+

+ + + + + + + + + + + + + +
첨부파일1 + + +
+ + +
+ +
+ + + +
+
첨부파일2 + + +
+ + +
+ +
+ + + +
+
첨부파일3 + + +
+ + +
+ +
+ + + +
+
+
+ + + 맨위 공지글로 등록 + + + 맨위 공지글로 등록 + + + +
+ + + + +
+ + +
+ +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/board/12-view.jsp b/src/main/webapp/WEB-INF/views/admins/board/12-view.jsp new file mode 100644 index 0000000..b3435c0 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/12-view.jsp @@ -0,0 +1 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
 
 
번호 글쓴이 등록일 조회수
전화번호 이메일
제목   ${result.subject}
${fn:replace(content, br, "
")}
첨부파일 ${result.filename}
${result.filename2}
${result.filename3}
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/admins/board/12.jsp b/src/main/webapp/WEB-INF/views/admins/board/12.jsp new file mode 100644 index 0000000..36d5929 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/12.jsp @@ -0,0 +1,125 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호제목글쓴이등록일조회수
${result.aid}  + + + + + + ${result.subject} + + + [공지] ${result.subject} + + + + + + +   ${result.subject} + + +      ${result.subject} + + + + + + ${result.name}${result.datetime}${result.readcount}
+
+ +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/board/12_reply_write.jsp b/src/main/webapp/WEB-INF/views/admins/board/12_reply_write.jsp new file mode 100644 index 0000000..b7edcd4 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/12_reply_write.jsp @@ -0,0 +1,238 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> + + +:::::게시판::::: + + + + + + + + +

+ + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
+ 작성자 + + +
+
+ + + + + +
+ E-mail + + +
+
+ + + + + +
+ 홈페이지 + + +
+
+ + + + + + + + + + +
+ + + + + +
+ 제목 + + +
+
+ + + + + +
+
내 용
+
+ +
+
+ + + + + + + + +
+ 첨부파일 + + +
[10M까지 올리실 수 있으며, 그림파일(JPG/JPEG/PNG/BMP) 만 올리실 수 있습니다.]
※ 주의 : 파일명 중 "."은 한 개만 허용됩니다.
+
+ 맨위 공지글로 등록 +
+
+
+ + + + + +
+ 저장 + 취소 +
+ +
+ + +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/board/12_write.jsp b/src/main/webapp/WEB-INF/views/admins/board/12_write.jsp new file mode 100644 index 0000000..95b0147 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/12_write.jsp @@ -0,0 +1,217 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> + + +:::::게시판::::: + + + + + + + + + +

+
+ + + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + +
+ + + + +
작성자 +
+ + + + +
E-mail +
+ + + + + +
전화번호 +
+ + + + + + + + + + + + + + + + + + +
+ + + + +
제 + 목 +
+ + + + +

+ 내 용
+
+ + + + + +
+
파일 첨부는 최대 3개까지 가능하며, 파일 사이즈는 파일당 500MB 로 제한되어 있습니다.

+

+ + + + + + + + + + +
첨부파일1 + +
첨부파일2 + +
첨부파일3 + +
+
+ 맨위 공지글로 등록 +
+
+ + + + + + +
저장 + 취소
+ + +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/board/left.jsp b/src/main/webapp/WEB-INF/views/admins/board/left.jsp new file mode 100644 index 0000000..b8b672c --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/board/left.jsp @@ -0,0 +1,113 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/00.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/00.jsp new file mode 100644 index 0000000..19a68f4 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/00.jsp @@ -0,0 +1,125 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + +
 
+ + 다운 : + + 활용 : + +
+
+ + + + + + + + + + + + + + + + +
순위사업명다운로드 수
${resultList.num} ${resultList.name}${resultList.cnt}회
+ + + + + + + + + + +
+ + + + +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/00_graph.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/00_graph.jsp new file mode 100644 index 0000000..9c4231c --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/00_graph.jsp @@ -0,0 +1,55 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + +유통정보 + + + + + + + + + + + + + + + + + + + + + + + +
+ + +

+ 날짜별 유통통계
+
+ +
+
    
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/01.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/01.jsp new file mode 100644 index 0000000..a0bf3f1 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/01.jsp @@ -0,0 +1,87 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
 
+
+ + + + + + + + + + + + + + + + +
순위사업명다운로드 수
${resultList.num} ${resultList.name}${resultList.cnt}회
+ + + + + + + + + + +
+ + + + +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/03.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/03.jsp new file mode 100644 index 0000000..8385315 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/03.jsp @@ -0,0 +1,106 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + + + + + + + + + + + + + + + +
 
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
년도정책
입안
학술
연구
공사계획 및
예비조사
기본
설계
실시
설계
시공 및
유지관리
사업비
산정
지하시설물
유지관리
스마트
시티
도시
재생
지진
예방
산사태
예방
급경사지
관리
홍수
예방
지하안전
영향평가
소규모
지하안전
영향평가
사후
지하안전
영향조사
지반침하
위험도평가
지하안전
점검
기타검수총계
${resultList.zz}${resultList.aa}${resultList.hh}${resultList.bb}${resultList.cc}${resultList.dd}${resultList.ee}${resultList.gg}${resultList.ff}${resultList.jj}${resultList.kk}${resultList.ll}${resultList.mm}${resultList.nn}${resultList.oo}${resultList.pp}${resultList.qq}${resultList.rr}${resultList.ss}${resultList.tt}${resultList.ii}${resultList.uu}${resultList.cnt}
+ + + + +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/10.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/10.jsp new file mode 100644 index 0000000..70d416d --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/10.jsp @@ -0,0 +1,96 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + +
+ + + + + + + + + + + + + +
 
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
번호일시사업명현황공급자
${resultList.aid}${resultList.datetime} ${resultList.subject}${resultList.stateKor}${resultList.stateKor}${resultList.userid}
+ + + + + + + + + + +
+ + + + +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/11.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/11.jsp new file mode 100644 index 0000000..ed600b5 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/11.jsp @@ -0,0 +1,105 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> + + + + + + + + + + + + + + + + + + + + + + + +
 
* 시추공데이터의 DB입력날짜를 기준으로 하며, 데이터가 없는 년도는 표시되지 않습니다
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
${cell}${cell}
+ + + + + + + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/12.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/12.jsp new file mode 100644 index 0000000..3bcdaef --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/12.jsp @@ -0,0 +1,128 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + + + + + + + + + + + + + +
 
* 시추공데이터의 DB입력날짜를 기준으로 하며, 데이터가 없는 년도는 표시되지 않습니다
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
${cell}${cell}
+ + + + + + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/13.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/13.jsp new file mode 100644 index 0000000..38c26bc --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/13.jsp @@ -0,0 +1,102 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + + + + + + + + + + + + + +
 
* 시추공데이터의 DB입력날짜를 기준으로 하며, 데이터가 없는 년도는 표시되지 않습니다
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
${cell}${cell}
+ + + + + + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/14.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/14.jsp new file mode 100644 index 0000000..f0b1146 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/14.jsp @@ -0,0 +1,146 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
* 시추공데이터의 DB입력날짜를 기준으로 하며, 데이터가 없는 년도는 표시되지 않습니다
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +
${cell}${cell}
+ + + + + + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/20.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/20.jsp new file mode 100644 index 0000000..595bda3 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/20.jsp @@ -0,0 +1,163 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
 
+ 아이디 : + + 다운 : + + 활용 : + + 활용파일 : + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호프로젝트명목적활용날짜다운활용활용파일
${resultList.aid}${resultList.projectName} 외 ${resultList.sichucount - 1}개 ${resultList.projectName}${resultList.purname}${resultList.startdate} ~
${resultList.enddate}
승인반려대기승인반려대기확인미확인
+
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/20_sms.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/20_sms.jsp new file mode 100644 index 0000000..1a96a4a --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/20_sms.jsp @@ -0,0 +1,100 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + +문자메시지 발송 + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
문자메시지 발송
+ + + + + + + + + + + + + +
발송 메시지
받는사람 번호
보내는사람 번호
+
+
+ + +
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/20_view.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/20_view.jsp new file mode 100644 index 0000000..b7cfc82 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/20_view.jsp @@ -0,0 +1,473 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
+ +
+ + + + + + + + + + + + + + + + +
사용자 정보
아이디${result.userid}이름${result.username}
이메일${result.email}전화번호${result.phone}
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
다운로드 목적
프로젝트명${result.projectname} 외 ${result.sichucount - 1}개 ${result.projectname}
활용목적${result.purname}
기타목적${result.purposeEtc}
활용프로젝트
(논문명, 과제명)
${result.subject}
활용날짜${result.startdate} ~ ${result.enddate}
+
+
+ + + + + + + + + + + + + + + +
승인여부 + + + 승인 + + + 반려 + + + 대기 + + + 승인/반려 날짜${result.approvedate}
반려사유${result.cancelReason}
기타반려사유${result.cancelEtc}
+
+
+   + + +
+ + <%-- + + + + + --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + +
활용내용
활용사례파일
확인여부
+ + +
활용내용 파일 + ${result.filename2}
+ + +
활용성과 파일 + ${result.filename}
+ + +
승인여부 + + + 승인 + + + 반려 + + + 대기 + + + 승인/반려 날짜${result.downyndate}
반려사유${result.downCancelReason}
기타반려사유${result.downCancelEtc}
+
+
+ + + +
+ +
+ + +
+ + + + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/41.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/41.jsp new file mode 100644 index 0000000..e65f39e --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/41.jsp @@ -0,0 +1,152 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
 
+ +
+ + + + + + + + + + + + + + + + + + + + + + + +
번호파일명지역보간법TYPE생성날짜
${liqInfo.idx}${liqInfo.filename}${liqInfo.sido} ${liqInfo.sigungu}${liqInfo.interpolation}${liqInfo.itpTypemode}${liqInfo.outputDate}
+
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/41_view.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/41_view.jsp new file mode 100644 index 0000000..8d3098c --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/41_view.jsp @@ -0,0 +1 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
 
 
<%-- --%> <%-- --%>
번호 파일명 생성날짜
${detailView.idx} ${detailView.filename} ${detailView.outputDate}
지역 재현주기
${detailView.sido} ${detailView.sigungu} ${detailView.eupmyeondong} ${detailView.year}
보간법 위험지도
${detailView.interpolation} ${detailView.liquefaction}${detailView.idx} ${detailView.idx}
${fn:replace(contents, br, "
")}
첨부파일 ${detailView.filename}
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/41_write.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/41_write.jsp new file mode 100644 index 0000000..2ad1370 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/41_write.jsp @@ -0,0 +1,220 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> + + +:::::게시판::::: + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + +
+ 작성자 + + +
+
+ + + + + +
+ E-mail + + +
+
+ + + + + + + + + + + + + +
+ + + + + +
+ 파일명 + + +
+
+ + + + + + + + + +
+ 지역 + + +
+ 재현주기 + + +
+
+ + + + + + + + + +
+ 보간법 + + +
+ 위험지도 + + +
+
+ + + + + +
+ 파일첨부 + + +
+
+
+ + + + + +
+ 저장 + 취소 +
+ +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/51.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/51.jsp new file mode 100644 index 0000000..8576c9f --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/51.jsp @@ -0,0 +1,154 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + +
+ + + + + + <%-- + + + + + + + + + + + --%> + + + + + + + + + + + + + + +
 
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
순위파일명조회 수다운로드 수
${resultList.num}${resultList.filename}${resultList.cnt}
+ + + + + + + + + + +
+ + + + +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/52.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/52.jsp new file mode 100644 index 0000000..def6f08 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/52.jsp @@ -0,0 +1,107 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + +
+ + + + + + + + + + + + + + + +
 
+
+ + + + + + + + + + + + + + + + + + + + + + + +
시/도시/군/구조회 수다운로드 수
${resultList.sido}${resultList.sigungu}${resultList.cnt}회
+ + + + + + + + + + +
+ + + + +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/cancelPop.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/cancelPop.jsp new file mode 100644 index 0000000..d161a8b --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/cancelPop.jsp @@ -0,0 +1,138 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<% +request.setCharacterEncoding("utf-8"); +%> + + + +반려사유 등록 + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +
반려사유 등록
+ + + + + + + + + + + + + + +
 반려사유를 선택해 주십시오
목록 리스트 + +
사유 + +
+
+
+ + + +
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/download_liq.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/download_liq.jsp new file mode 100644 index 0000000..623d235 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/download_liq.jsp @@ -0,0 +1,81 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + +다운로드 로그정보 + + + + + + + + +
+ + + + + + + + + + + + + + + + +
  
+ + + + + + + + + + + + + + + + + + + + + + +
번호일시아이디
${resultList.aid}${resultList.readdate}${resultList.downdate}${resultList.userid}
+
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/download_view.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/download_view.jsp new file mode 100644 index 0000000..0ba0ae3 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/download_view.jsp @@ -0,0 +1,91 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + +다운로드 로그정보 + + + + + + + + +
+ + + + + + + <%-- --%> + + + + + + + + + + +
  
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호조회 일시다운로드 일시아이디
${resultList.aid}${resultList.readdate}${resultList.downdate}${resultList.userid}
+
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/chLog/left.jsp b/src/main/webapp/WEB-INF/views/admins/chLog/left.jsp new file mode 100644 index 0000000..d229318 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/chLog/left.jsp @@ -0,0 +1,243 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="fn" uri = "http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + + +
+ + + + + + + + + +
+ + + + + + + + + +
+ + + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/frame/bottom.htm b/src/main/webapp/WEB-INF/views/admins/frame/bottom.htm new file mode 100644 index 0000000..3e88f0e --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/frame/bottom.htm @@ -0,0 +1,31 @@ + + + + + + + + + + + +
+ + + + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/frame/mainframe.jsp b/src/main/webapp/WEB-INF/views/admins/frame/mainframe.jsp new file mode 100644 index 0000000..f966a6b --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/frame/mainframe.jsp @@ -0,0 +1,22 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> + + + + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/views/admins/frame/mainframe2.jsp b/src/main/webapp/WEB-INF/views/admins/frame/mainframe2.jsp new file mode 100644 index 0000000..0136078 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/frame/mainframe2.jsp @@ -0,0 +1,22 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> + + + + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/views/admins/frame/menu.swf b/src/main/webapp/WEB-INF/views/admins/frame/menu.swf new file mode 100644 index 0000000..6d09f53 Binary files /dev/null and b/src/main/webapp/WEB-INF/views/admins/frame/menu.swf differ diff --git a/src/main/webapp/WEB-INF/views/admins/frame/top.jsp b/src/main/webapp/WEB-INF/views/admins/frame/top.jsp new file mode 100644 index 0000000..6b4a7bc --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/frame/top.jsp @@ -0,0 +1,39 @@ +<%@ page language="java" contentType = "text/html; charset=euc-kr"%> + + + + + + + + + +
+ + + + + + + +
+
+ + + + + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/views/admins/frame/topLeft.jsp b/src/main/webapp/WEB-INF/views/admins/frame/topLeft.jsp new file mode 100644 index 0000000..a37fae9 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/frame/topLeft.jsp @@ -0,0 +1,53 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%-- <% +//session이 유효한지 체크한다. + + if(!UserInfo.isValidSession(request, response,"admin")) + { + return; + } + +%> --%> + + + + + + + + + + + + + +
 
+ + + + + + + + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/greport/13-modify.jsp b/src/main/webapp/WEB-INF/views/admins/greport/13-modify.jsp new file mode 100644 index 0000000..4d18b8b --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/greport/13-modify.jsp @@ -0,0 +1,233 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + +
 
+ + + + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
번호담당자소속기관등록일
${result.idx}${fn:substring(result.datetime,0,10) }
제목 +  
내용 + +
+
+ + + + + +
보고서 + + +
+ +
+ +
+ + + +
+
+
+ + + + +
+ + +
+ +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/greport/13-view.jsp b/src/main/webapp/WEB-INF/views/admins/greport/13-view.jsp new file mode 100644 index 0000000..3dcc613 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/greport/13-view.jsp @@ -0,0 +1 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
 
 
번호 담당자 소속기관 등록일
전화번호 조회수
제목   ${result.title}
${fn:replace(content, br, "
")}
첨부파일 ${result.filenm}
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/admins/greport/13.jsp b/src/main/webapp/WEB-INF/views/admins/greport/13.jsp new file mode 100644 index 0000000..d0e40af --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/greport/13.jsp @@ -0,0 +1,102 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + +<%-- + + --%> + + + + + + + +
 
+ + + + + + + + + + + + + + + + + + + + + + + +
번호제목담당자소속기관파일명등록일
${result.idx}  + + + ${result.regnm}${result.regorg}${result.filenm}${fn:substring(result.datetime,0,10) }
+
+ +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/greport/left.jsp b/src/main/webapp/WEB-INF/views/admins/greport/left.jsp new file mode 100644 index 0000000..b12e45a --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/greport/left.jsp @@ -0,0 +1,113 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/main/index.jsp b/src/main/webapp/WEB-INF/views/admins/main/index.jsp new file mode 100644 index 0000000..600ba8f --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/main/index.jsp @@ -0,0 +1,585 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + + + +국토지반정보 포털 관리시스템 + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+ + + +
+
+ +
+ + +
+
+

비밀번호 초기화 요청

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
비밀번호 초기화 요청 목록정보
아이디수정한이름회사명상세보기초기화
${PwResetList.USERID}${PwResetList.USERNAME}${PwResetList.COMPANY_NAME} + 상세보기 + + 초기화 +
초기화 요청이 없습니다.
+
+ + +
+
+

회원가입 승인 요청

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
회원가입 승인 요청목록
아이디이름지자체명상세보기승인
${SignupRequestList.USERID}${SignupRequestList.USER_NAME}${SignupRequestList.LOCALGOVE} + 상세보기 + + 승인 +
승인 요청이 없습니다.
+
+ + +
+
+ + MORE +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Q&A 목록정보
제목작성자답변여부등록일
+ + ${QnaList.SUBJECT} + + ${QnaList.NAME} + + + 답변중 + + + 완료 + + + ${QnaList.DATETIME}
지난 1년간 등록된 Q&A 게시물이 없습니다.
+
+ + + + + + + + +
+
+
+ + +
+
+

사용자 등록 현황

+
+
+
    +
  • 방문자수
  • +
  • 등록자수
  • +
+
+
+ + +
+
+

공종별 등록현황

+
+ MORE +
+
+
+
+
운송교통시설
+
+
+
+
계획구역·토지정비
+
+
+
+
공공건축시설
+
+
+
+
주거·상업시설
+
+
+
+
보건·휴식·종교시설
+
+
+
+
수자원·환경처리시설
+
+
+
+
자원공급시설
+
+
+
+
지반조사
+
+
+
+
+ + +
+
+

시도별 등록현황

+
+ MORE +
+
+
+
+
+
서울특별시
+
+
+
+
부산광역시
+
+
+
+
광주광역시
+
+
+
+
대전광역시
+
+
+
+
대구광역시
+
+
+
+
인천광역시
+
+
+
+
울산광역시
+
+
+
+
경기도
+
+
+
+
강원도
+
+
+
+
충청북도
+
+
+
+
충청남도
+
+
+
+
경상북도
+
+
+
+
경상남도
+
+
+
+
전라북도
+
+
+
+
전라남도
+
+
+
+
제주특별자치도
+
+
+
+
세종특별자치시
+
+
+
+
+
+ +
+ +
+ + + + + + +
+
+ + + + + + + + + + + + + +<%-- + +
승인 대기
+
+ +
승인 대기 0건
+
+
--%> + + diff --git a/src/main/webapp/WEB-INF/views/admins/main/login.jsp b/src/main/webapp/WEB-INF/views/admins/main/login.jsp new file mode 100644 index 0000000..ae4cbdd --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/main/login.jsp @@ -0,0 +1,83 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> + + + +adminSystem + + + + + + + + + + + + + + + + + + +
 



+ + + + + + +
+ + + + + + + + + + + + +
+ +
+ + + + + + + + + + + +
+ + + + + + + +
+ + + +
+ +
+ +
+
+ +
+
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/admins/main/main.jsp b/src/main/webapp/WEB-INF/views/admins/main/main.jsp new file mode 100644 index 0000000..18b6329 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/main/main.jsp @@ -0,0 +1,142 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + +국토지반정보 포털 관리시스템 + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + +
+ + + +
+
+ + + + + + + +
+ +   + + + +
+
+ + + + +
+
+ + + + + + + + + + + + +<%-- + +
승인 대기
+
+ +
승인 대기 0건
+
+
--%> + + diff --git a/src/main/webapp/WEB-INF/views/admins/manager/00.jsp b/src/main/webapp/WEB-INF/views/admins/manager/00.jsp new file mode 100644 index 0000000..05386da --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/manager/00.jsp @@ -0,0 +1,111 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + +
+ + + + + + + + + + + +
 
 
+ + + + + + + + + + + + + + + + + + + + +
 
현재 비밀번호 + +  
 
새 비밀번호
 
+
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/manager/left.jsp b/src/main/webapp/WEB-INF/views/admins/manager/left.jsp new file mode 100644 index 0000000..5351f65 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/manager/left.jsp @@ -0,0 +1,34 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> + + + + + + + + + + + + +
+ + + + +
+ +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/notice/00-modify.jsp b/src/main/webapp/WEB-INF/views/admins/notice/00-modify.jsp new file mode 100644 index 0000000..14bc7a1 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/notice/00-modify.jsp @@ -0,0 +1,313 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
 
  
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
제목 + +
공지사항 상단고정 + 예 + 아니오 +
팝업 사용여부 + 예 + 아니오 +
팝업노출 시작일시 + " + onFocus="fn_CalPopupDiv1('popupBgndtDD','popupBgndtDD','calenderDiv');return false;" placeholder="클릭하여 날짜 선택" readonly="readonly"> + + + H + + + M + 팝업노출 종료일시 + " + onFocus="fn_CalPopupDiv1('popupEnddtDD','popupEnddtDD','calenderDiv');return false;" placeholder="클릭하여 날짜 선택" readonly="readonly"> + + + H + + + M +
+ +
첨부파일 +
+ + 파일삭제 +
+
+ +
+
+ + +
※ 파일 사이즈는 1 GB로 제한되어 있습니다.
+ + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/notice/00-view.jsp b/src/main/webapp/WEB-INF/views/admins/notice/00-view.jsp new file mode 100644 index 0000000..7f6ec79 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/notice/00-view.jsp @@ -0,0 +1 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
 
제목 ${detailView.subject}
공지사항 상단고정 ${detailView.top} 등록일 ${detailView.datetime}
팝업 사용여부 ${detailView.popupAt}
팝업노출 시작일시 -- : - 팝업노출 종료일시 -- : -
${fn:replace(contents, br, "
")}
첨부파일 ${detailView.filename}
\ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/admins/notice/00.jsp b/src/main/webapp/WEB-INF/views/admins/notice/00.jsp new file mode 100644 index 0000000..6d79069 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/notice/00.jsp @@ -0,0 +1,114 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + +
 
  + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호제목등록일팝업노출기간미리보기
${paginationInfo.totalRecordCount-((paginationInfo.currentPageNo-1)*paginationInfo.pageSize+status.count-1)}${map.subject}[중요] ${map.subject}${map.datetime} + + + -- : + ~
+ -- : +
+ + - + +
+
+ + + + + +
+
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/notice/left.jsp b/src/main/webapp/WEB-INF/views/admins/notice/left.jsp new file mode 100644 index 0000000..5cdb894 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/notice/left.jsp @@ -0,0 +1,49 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + + + + + + +
+ + + + + + + +
+ +
+ + + + + + + + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/notice/popup_notice.jsp b/src/main/webapp/WEB-INF/views/admins/notice/popup_notice.jsp new file mode 100644 index 0000000..2a59e05 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/notice/popup_notice.jsp @@ -0,0 +1,34 @@ +<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> + + + + 공지사항 + + + + + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/views/admins/notice/write.jsp b/src/main/webapp/WEB-INF/views/admins/notice/write.jsp new file mode 100644 index 0000000..acbf104 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/notice/write.jsp @@ -0,0 +1,217 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
 
  
+ + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + +
제목 + +
공지사항 상단고정 + 예 + 아니오 +
팝업 사용여부 + 예 + 아니오 +
팝업노출 시작일시 + + + + H + + + M + 팝업노출 종료일시 + + + + H + + + M +
+ +
첨부파일 +
+ +
+
+ + +
※ 파일 사이즈는 1 GB로 제한되어 있습니다.
+ + +
+
+ + + diff --git a/src/main/webapp/WEB-INF/views/admins/staticState/30.jsp b/src/main/webapp/WEB-INF/views/admins/staticState/30.jsp new file mode 100644 index 0000000..667a2ce --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/staticState/30.jsp @@ -0,0 +1,310 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + +관리자 접근관리 + + + + + + + + + + + + + + + + + + +
+ +
+ + + + +
+ +
+

너무 많은 데이터를 조회할 시 메모리 부족 현상이 일어날 수 있으니 최대 일년 정도의 데이터만 조회해주세요.
더 많은 데이터를 원하시면 엑셀 다운로드 버튼을 이용해주세요.

+
+ +
+ +
+ + +
+
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/staticState/downloadStatReport.jsp b/src/main/webapp/WEB-INF/views/admins/staticState/downloadStatReport.jsp new file mode 100644 index 0000000..642a3e5 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/staticState/downloadStatReport.jsp @@ -0,0 +1,29 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + +Report + + + + + + + + + + +
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/admins/staticState/gridLayoutXml/Layout_30.xml b/src/main/webapp/WEB-INF/views/admins/staticState/gridLayoutXml/Layout_30.xml new file mode 100644 index 0000000..488d8d8 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/staticState/gridLayoutXml/Layout_30.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/admins/staticState/input.jsp b/src/main/webapp/WEB-INF/views/admins/staticState/input.jsp new file mode 100644 index 0000000..b2851df --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/staticState/input.jsp @@ -0,0 +1,21 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + +Insert title here + + + +
+ 검색을 원하는 날짜를 입력해 주시기 바랍니다.
+ 최대 5개 년도까지 검색이 됩니다.

+ 시작일:
+ 종료일:
+ +
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/admins/user/00.jsp b/src/main/webapp/WEB-INF/views/admins/user/00.jsp new file mode 100644 index 0000000..3df8b7a --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/user/00.jsp @@ -0,0 +1,195 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + + + +
+ + + + + + + --%> + + + + + + + + + + + + + + + + + +
 
+ <%--
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호아이디이름회사명업종사업자등록번호이메일가입일상세보기
${resultList.num}${resultList.userid}${resultList.userName}${resultList.companyName}${resultList.upjong}${resultList.companyRegistNo}${resultList.email}${resultList.datetimes} + +
+ +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/user/00_view.jsp b/src/main/webapp/WEB-INF/views/admins/user/00_view.jsp new file mode 100644 index 0000000..5216fcf --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/user/00_view.jsp @@ -0,0 +1,132 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + +사용자정보 상세보기 + + + + + + + + + +<%-- --%> +
+ + + + + + + + + + + + + +
  
+ + + + + + + + + + + + + +
아이디이름전화번호이메일
+ + + + + + + + + + + + + +
업종회사명부서주소
 
+ + + + + + + + + + + + + + + + + +
사업자등록번호 가입 요청일사업자등록번호 가입일 
+ + + + + + + + + + + + + + + + + + + + + + + +
승인여부  개인회원에서 기업회원으로 변경 기업회원에서 개인회원으로 변경 
+ + + + + + +
+
+ + +
 
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/user/00_view_Ini.jsp b/src/main/webapp/WEB-INF/views/admins/user/00_view_Ini.jsp new file mode 100644 index 0000000..73e7eac --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/user/00_view_Ini.jsp @@ -0,0 +1,126 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + +사용자정보 상세보기 + + + + + + + + + + + +<%-- --%> +
+ + + + + + + + + + + + + + + + + +
  
+ + + + + + + + + + + + + + +
아이디이름전화번호이메일
--> ${result.prephoneno} --> -->
+ + + + + + + + + + + + + +
직업회사명부서주소
<%--   --%>
+ + + + + + +
+
+ +
+     + + + + +
 
+
+ +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/user/01.jsp b/src/main/webapp/WEB-INF/views/admins/user/01.jsp new file mode 100644 index 0000000..c2c367b --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/user/01.jsp @@ -0,0 +1,183 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + +
+ + + + + + + --%> + + + + + + + + +
 
+ <%--
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호아이디이름회사명업종사업자등록번호이메일가입일상세보기
${resultList.num}${resultList.userid}${resultList.userName}${resultList.companyName}${resultList.upjong}${resultList.companyRegistNo}${resultList.email}${resultList.datetimes} + +
+ + + + + + + + + + +
+ +
+ + + + +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/user/02.jsp b/src/main/webapp/WEB-INF/views/admins/user/02.jsp new file mode 100644 index 0000000..debf87e --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/user/02.jsp @@ -0,0 +1,185 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + +
+ + + + + + + --%> + + + + + + + + +
 
+ <%--
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호아이디이름회사명업종사업자등록번호이메일가입일상세보기
${resultList.num}${resultList.userid}${resultList.userName}${resultList.companyName}${resultList.upjong}${resultList.companyRegistNo}${resultList.email}${resultList.datetimes} + +
+ + + + + + + + + + +
+ + + +
+ + + + +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/user/03.jsp b/src/main/webapp/WEB-INF/views/admins/user/03.jsp new file mode 100644 index 0000000..f3190cd --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/user/03.jsp @@ -0,0 +1,37 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + + + + + +
 
+ + + + + + + + + + + + + + +
사용자 그룹등 록 수
${resultList.name}${resultList.cnt}
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/user/05.jsp b/src/main/webapp/WEB-INF/views/admins/user/05.jsp new file mode 100644 index 0000000..3bc3fe6 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/user/05.jsp @@ -0,0 +1,98 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + + + + + + + + + + +
 
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
아이디이름회사연락처지역(시,도)지역(시,군,구)권한날짜삭제
${resultList.userid}${resultList.userName}${resultList.companyName}${resultList.phone}${resultList.regionName}${resultList.regionSggName}${resultList.startDate} ~ ${resultList.endDate}
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/user/05_addUser.jsp b/src/main/webapp/WEB-INF/views/admins/user/05_addUser.jsp new file mode 100644 index 0000000..0371af6 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/user/05_addUser.jsp @@ -0,0 +1,308 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + +사용자 추가 + + + + + + + + + + +Insert title here + + + + +<%-- --%> +
+ + + + + + + + + + + + +
  
+ + + + + +
+ 추가 아이디 : + + 추가 +
+ + + + + + + + + + + + + +
아이디이름회사연락처
+ + + + + + + + + + + + + + +
시작일종료일지역선택(시,도)지역선택(시,군,구)
+ + + + + +
+ +
+ + + +
 
+
+ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/admins/user/07.jsp b/src/main/webapp/WEB-INF/views/admins/user/07.jsp new file mode 100644 index 0000000..6db8b7f --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/user/07.jsp @@ -0,0 +1,125 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + + + + + + + + + + +
+ + + + + + + --%> + + + + + + + + +
 
+ <%--
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호아이디수정한이름회사명수정한이메일요청날짜상태상세보기
${resultList.num}${resultList.userid}${resultList.username}${resultList.companyName}${resultList.email}${fn:substring(requestdate,0,4)}-${fn:substring(requestdate,4,6)}-${fn:substring(requestdate,6,8)} + + + 미확인 + + + 승인 + + + 반려 + + + + +
+ + + + + + + + + + +
+ +
+ + + + +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/user/40.jsp b/src/main/webapp/WEB-INF/views/admins/user/40.jsp new file mode 100644 index 0000000..d721b5c --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/user/40.jsp @@ -0,0 +1,189 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + + + +
+ + + + + + + --%> + + + + + + + + + + + + + + + + + +
 
+ <%--
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
번호아이디이름소속지자체이메일가입일승인상태상세보기
${resultList.num}${resultList.userid}${resultList.userName}${resultList.localgove}${resultList.email}${resultList.datetimes} + + + + + + 승인 + + + + +
+ +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/user/40_view.jsp b/src/main/webapp/WEB-INF/views/admins/user/40_view.jsp new file mode 100644 index 0000000..f874902 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/user/40_view.jsp @@ -0,0 +1,84 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + +지자체 공무원 증빙문서 + + + + + + + + + + +
+ + + +<%-- --%> +
+ + + + + + + + + + + + +
  
+ + + + + + + + + + + + + + + + + + + +
아이디이름전화번호이메일소속지자체
지자체 공무원 증빙문서 + ${result.filename} +
+
+ + + +
 
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/user/left.jsp b/src/main/webapp/WEB-INF/views/admins/user/left.jsp new file mode 100644 index 0000000..ce79d07 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/user/left.jsp @@ -0,0 +1,131 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="fn" uri = "http://java.sun.com/jsp/jstl/functions" %> + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/user/passChange.jsp b/src/main/webapp/WEB-INF/views/admins/user/passChange.jsp new file mode 100644 index 0000000..33ff62e --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/user/passChange.jsp @@ -0,0 +1,92 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + +회원 비밀번호 변경 + + + + + + +
+ + + + + + + + + + + + + + + + + + +
아이디
변경할 비밀번호
* 비밀번호는 숫자와 영문자 조합으로 10~15 자리를 사용해야 합니다.
+ +
+ \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/00.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/00.jsp new file mode 100644 index 0000000..7364f57 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/00.jsp @@ -0,0 +1,87 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + + + + + + + + + + + + +
 
* 사용자 접속(로그인)이 한명도 없을시 해당 접속통계는 보여지지 않습니다
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
년도공급자지반조사업체설계업체시공업체유지보수업체공공기관연구기관개인학교기타총계
중앙정부,지방청,공사지자체
${resultList.year}${resultList.month}${resultList.zz}${resultList.aa}${resultList.bb}${resultList.cc}${resultList.dd}${resultList.ee}${resultList.ff}${resultList.gg}${resultList.tt}${resultList.ss}${resultList.etc}${resultList.cnt}
+ + + + + + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/01.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/01.jsp new file mode 100644 index 0000000..b2c4496 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/01.jsp @@ -0,0 +1,99 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ +
* 사용자 접속(로그인)이 없는 날짜는 보여지지 않습니다
+ + +
+ +
+
+ + + + + + + + + + + + + + +
날짜총접속수
${resultList.datetimes}${resultList.cnt}
+ + + + + + +
합계
+ + + + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/01_graph.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/01_graph.jsp new file mode 100644 index 0000000..ae076bb --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/01_graph.jsp @@ -0,0 +1,56 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + +사용자접속 통계분석 + + + + + + + + + + + + + + + + + + + + + + + +
+ + +

+ 날짜별 사용자 접속현황
+
+ +
+
    
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/03.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/03.jsp new file mode 100644 index 0000000..587282e --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/03.jsp @@ -0,0 +1,135 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
1.사이트 방문목적
+ + + + + + + + + + + + + + + + + +
순위방문목적총접속수로그보기
[AID] [NAME][CNT]명
+
기타의견
+ +
2.지반정보 활용 프로젝트
+ + + + + + + + + + + + + + + + + +
순위프로젝트 종류총접속수로그보기
[AID] [NAME][CNT]명
+
활용 프로젝트명
+ +
3.프로젝트 발주처
+ + + + + + + + + + + + + + + + + +
순위프로젝트 발주처총접속수로그보기
[AID] [NAME][CNT]명
+
기타의견
+ +
+ + + + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/04.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/04.jsp new file mode 100644 index 0000000..4550a6e --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/04.jsp @@ -0,0 +1,92 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
* 가입자가 없는 날짜는 보여지지 않습니다
+ + +
+
+ + + + + + + + + + + + + +
가입자수
${resultList.yymm}${resultList.cnt} 명
+ + + + + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/04_graph.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/04_graph.jsp new file mode 100644 index 0000000..bd31674 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/04_graph.jsp @@ -0,0 +1,48 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + +사용자접속 통계분석 + + + + + + + + + + + + + + + + + + + + + + +
+ +

+ 날짜별 사용자 접속현황
+
+ +
+
    
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/08.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/08.jsp new file mode 100644 index 0000000..8cd1a3d --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/08.jsp @@ -0,0 +1,93 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
* 방문자가 없는 날짜는 보여지지 않습니다
+ + +
+
+ + + + + + + + + + + + + +
날짜방문자수
${resultList.datetime}${resultList.cnt}
+ + + + + +
합계
+ + + + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/10.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/10.jsp new file mode 100644 index 0000000..808dd39 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/10.jsp @@ -0,0 +1,1128 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + + + + + + + + + + + + + + +
 
 
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
년도공급자일반사용자
지반조사업체설계업체시공업체유지보수업체공공기관연구기관개인학교기타총계
중앙정부,지방청,공사지자체
93611222170488892201981050311427104816402
2011134442321033161938489
201121902415170100272258
201132807636140008149428
2011420517401802216455313
2011527819271100013213354
201161881945230322621291
20117246194251402031323
20118206363630003302289
20119149152250303623208
2011101811431800234245272
201111162192050002491222
201112231202550002800291
201126603203711151169704066703738
2010116954176040464525330
20102127303741001061139328
20103772028220237921020263
2010467102713026725642250
20105142591160333419335315
201061424241104041103203
2010714413246011772415287
201081141516700014988191
201091366026074202419314
20101013916273000110511230
201011306222511110039322412
201012422203911000233127546
2010198532330112786181447064652163669
2009116983360035201329322
200929810161803323107179
2009316017451804919544285
20094230222439012200318359
2009517716421122011362272
200961603248120213961217320
200972784080380314246349553
20098264145033143122613402
200991922046801193234307
20091011721351301541106213
2009111765361600113220260
20091217816197110633057345
200921992114742734723621546712063817
2008128427412301767632434
2008211981417003142020206
2008365141090329101938179
200843214331402110559125
200852915351501131545123
2008665183311060191045171
200871452656200514346439403
2008891121650011341013165
200894581240301717313122
20081017133251300073187277
2008111502142290251615526311
2008121461110601576131224
20081342207327166024261511001592382740
20071251337411356037132
200722218202320041366
20073712210060944770
2007419121210003101967
20075792210043214815112
20076391721801101641323152
20077671928200180156154228
2007896151618020971323199
2007914913131507389233252
2007101981028270902251352364
200711244191073012052617388
2007123221053803003225408
200711751512312071711314461663182438
+ + + + + + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/10_err.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/10_err.jsp new file mode 100644 index 0000000..4721552 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/10_err.jsp @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + +
 
 
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
년도공급자일반사용자
지반조사업체설계업체시공업체유지보수업체공공기관연구기관개인학교기타총계
중앙정부,지방청,공사지자체
[YEAR][MONTH][ZZ][AA][BB][CC][DD][EE][FF][GG][TT][SS][ETC][CNT]
+ + + + + + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/11.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/11.jsp new file mode 100644 index 0000000..7e8e352 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/11.jsp @@ -0,0 +1,84 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
* 사용자 접속(로그인)이 없는 날짜는 보여지지 않습니다
+
+ + + + + + + + + + + + + + +
날짜접속수
${resultList.datetime}${resultList.cnt}명
+ + + + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/11_graph.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/11_graph.jsp new file mode 100644 index 0000000..ed1e914 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/11_graph.jsp @@ -0,0 +1,54 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + +사용자접속 통계분석 + + + + + + + + + + + + + + + + + + + + + + +
+ + +

+ 날짜별 사용자 접속현황
+
+ +
+
    
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/20.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/20.jsp new file mode 100644 index 0000000..b02f64b --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/20.jsp @@ -0,0 +1,759 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + + + + + + <%-- --%> + + + + + + +
 
* 사용자 접속(로그인)이 한명도 없을시 해당 접속통계는 보여지지 않습니다
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
년도지반조사업체설계업체시공업체유지보수업체공공기관연구기관개인학교기타총계
중앙정부,지방청,공사지자체
4,356 7,897 2,354 512 1,273 + 202 1,407 1,412 1,821 9,848 31,097 +
2011116343830109102914112281194
2011 2 + 109 271 57 + 8 12 + 12 127 18 + 16 45 + 675
2011 3 251 + 261 116 12 20 + 10 135 26 28 60 919
+2011 4 183 416 83 +2 8 17 150 31 +104 58 1,052 + +
+2011 5 214 363 82 10 20 + 20 112 58 82 67 1,028 +
+2011 6 246 338 122 11 6 +2 39 43 57 65 929 + +
+2011 7 252 364 108 0 36 +2 29 24 45 66 926 + +
+2011 8 268 365 93 11 0 + 2 38 19 8 64 868 + +
+2011 9 240 444 62 10 18 18 + 52 97 27 86 1,054 + +
+2011 10 193 293 105 2 + 7 11 23 143 38 53 868 + +
+2011 11 209 286 65 3 7 + 8 22 52 16 55 723 +
+2011 12 165 255 41 7 6 + 4 28 40 17 27 590 + +
+2011 2,493 4,094 964 86 149 + 116 1,046 555 449 874 10,826 + +
+2010 1 32 67 7 1 2 3 + 1 10 61 155 345 + +
+2010 2 22 54 18 8 8 1 + 0 7 15 128 261 + +
+2010 3 11 85 4 12 192 + 0 12 4 141 290 + +
+2010 4 33 64 16 1 10 3 + 7 12 12 250 408 + +
+2010 5 20 45 5 0 5 4 + 2 12 12 261 366 + +
+2010 6 25 46 37 1 23 2 + 5 23 31 259 452 + +
+2010 7 40 39 44 0 31 2 + 2 21 1 284 464 + +
+2010 8 39 57 43 2 8 1 + 4 3 39 306 502 + +
+2010 9 153 212 49 0 + 5 4 23 26 6 50 528 + +
+2010 10 153 254 76 5 + 20 0 33 49 26 39 655 + +
+2010 11 144 320 64 19 + 3 0 50 72 12 335 1,019 + +
+2010 12 233 290 59 11 + 20 2 87 63 15 171 951 + +
+2010 905 1533 422 60 + 154 24 214 310 234 2,379 6,241 + +
+2009 1 2 22 5 3 47 + 0 1 4 10 368 462 + +
+2009 2 3 5 0 1 5 + 0 0 1 0 82 97 + +
+2009 3 1 15 1 3 19 + 0 0 0 5 130 174 + +
+2009 4 2 54 1 1 9 + 0 0 0 4 134 205 + +
+2009 5 5 14 1 4 10 0 + 0 3 2 169 208 + +
+2009 6 7 66 5 9 11 0 + 0 2 9 211 320 + +
+2009 7 5 44 6 10 18 0 + 0 5 12 91 191 + +
+2009 8 2 28 7 22 39 +0 0 8 8 85 199 + +
+2009 9 6 13 12 6 2 + 0 0 7 20 71 137 + +
+2009 10 6 18 6 10 13 + 0 0 5 30 216 304 + +
+2009 11 4 9 20 2 9 +0 0 17 26 204 291 + +
+2009 12 30 46 19 30 50 +0 0 19 35 312 541 + +
+2009 73 334 83 101 232 0 + 1 71 161 2,0733,129 + +
+2008 1 38 96 30 1 33 +6 3 17 9 121 354 + +
+2008 2 35 52 22 1 5 0 + 18 3 17 27 180 + +
+2008 3 32 76 27 0 3 6 + 17 11 69 32 273 + +
+2008 4 30 76 22 0 9 2 + 10 11 67 24 251 + +
+2008 5 46 81 30 0 8 7 + 4 8 35 16 235 + +
+2008 6 60 76 76 1 26 0 + 18 3 16 41317 + +
+2008 7 39 60 37 2 1 2 + 10 14 5 78 248 + +
+2008 8 19 27 15 9 15 0 + 0 3 12 141 241 + +
+2008 9 7 24 4 7 5 0 + 1 10 28 162 248 + +
+200810 20 41 12 1 10 1 +3 19 24 136 267 + +
+2008 11 6 22 10 2 10 4 + 3 13 11 122 205 + +
+2008 12 9 19 9 2 15 1 +0 16 7 162 240 + +
+ +2008341 650 294 26 140 + 29 87 128 300 1062 3059 + +
+2007 1 32 67 7 1 2 3 + 1 10 6155 245 + +
+2007 2 22 54 18 8 8 +1 0 7 15 28 161 + +
+2007 3 11 85 4 12 19 2 + 0 12 4 41 190 + +
+2007 4 33 64 16 1 10 3 + 7 12 12 50 208 + +
+2007 5 20 45 5 0 5 4 + 2 12 12 61 166 + +
+2007 6 25 46 37 1 23 + 2 5 23 31 59 252 + +
+2007 7 40 39 44 0 31 + 2 2 21 1 84264 + +
+2007 8 39 57 43 2 8 1 + 4 3 39 169 365 + +
+2007 9 30 34 51 0 7 +1 10 10 17 48 208 + +
+2007 10 26 57 43 0 28 5 + 9 13 34 57 272 + +
+2007 11 29 54 70 0 26 3 2 + 21 24 74 303 + +
+2007 12 21 22 20 0 9 + 0 9 22 7 85 195 + +
+2007 328 624 358 25 176 + 27 51 166 257 811 2,829 + +
+2006 1 3 35 9 24 + 16 0 0 3 12 115 217 + +
+2006 2 4 33 31 19 +18 0 0 6 4 73 188 + +
+2006 3 21 26 13 14 27 +0 0 867 54 230 + +
+2006 4 7 21 12 12 12 + 0 0 8 36 72 180 + +
+2006 5 15 26 11 8 34 + 0 0 9 40 96 239 + +
+2006 6 15 38 16 7 5 + 0 0 8 9 39 137 + +
+2006 7 17 15 8 7 22 + 0 0 7 8 64 148 + +
+2006 8 19 27 15 9 15 + 0 0 3 12 41 141 + +
+2006 9 7 24 4 7 5 + 0 1 10 28 62 148 + +
+2006 10 20 41 12 1 10 + 1 3 19 24 36 167 + +
+2006 11 6 22 10 2 10 +4 3 13 11 37 118 + +
+2006 12 9 19 9 2 15 + 1 0 16 7 62 140 + +
+2006 143 + 327 150 112 189 6 7 +110 258 751 2,053 + + +
+2005 1 2 22 5 3 47 + 0 1 4 10 368 462 + +
+2005 2 3 5 0 1 5 + 0 0 1 0 82 97 + +
+2005 3 1 15 1 3 19 + 0 0 0 5 130 174 + +
+2005 4 2 54 1 1 9 + 0 0 0 4 134 205 + +
+2005 5 5 14 1 4 10 0 + 0 3 2 169 208 + +
+2005 6 7 66 5 9 11 0 + 0 2 9 211 320 + +
+2005 7 5 44 6 10 18 0 + 0 5 12 91 191 + +
+2005 8 2 28 7 22 39 +0 0 8 8 85 199 + +
+2005 9 6 13 12 6 2 + 0 0 7 20 71 137 + +
+2005 10 6 18 6 10 13 + 0 0 5 30 88 176 + +
+2005 11 4 9 20 2 9 +0 0 17 26 104 191 + +
+2005 12 30 46 19 30 50 +0 0 19 35 212 441 + +
+2005 73 334 83 101 232 0 + 1 71 161 1,745 2,801 + +
+2004 9 0 0 0 0 + 0 0 0 0 0 4 4 + +
+2004 10 0 0 0 0 + 0 0 0 0 0 6 6 + +
+2004 12 0 1 0 1 1 +0 0 1 1 143 149 + +
+2004 0 1 0 1 1 + 0 0 1 1 153 159 + +
+ + + + +
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/21.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/21.jsp new file mode 100644 index 0000000..746cdb2 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/21.jsp @@ -0,0 +1,95 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ +
* 사용자 접속(로그인)이 없는 날짜는 보여지지 않습니다
+ +
+ +
+
+ + + + + + + + + + + + + +
날짜총접속수
${resultList.datetimes}${resultList.cnt}
+ + + + + + +
합계
+ + + + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/23.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/23.jsp new file mode 100644 index 0000000..3fb10fb --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/23.jsp @@ -0,0 +1,138 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
1.사이트 방문목적
+ + + + + + + + + + + + + + + + + + + +
순위방문목적총접속수로그보기
${selectInfoListSiteVisit.num} ${selectInfoListSiteVisit.name}${selectInfoListSiteVisit.cnt}명
+
기타의견
+ +
2.지반정보 활용 프로젝트
+ + + + + + + + + + + + + + + + + + + +
순위프로젝트 종류총접속수로그보기
${selectInfoListGeoInfo.num} ${selectInfoListGeoInfo.name}${selectInfoListGeoInfo.cnt}명
+
활용 프로젝트명
+ +
3.프로젝트 발주처
+ + + + + + + + + + + + + + + + + + + +
순위프로젝트 발주처총접속수로그보기
${selectInfoListPrjClient.num} ${selectInfoListPrjClient.name}${selectInfoListPrjClient.cnt}명
+
기타의견
+ +
+ + + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/24.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/24.jsp new file mode 100644 index 0000000..25e101f --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/24.jsp @@ -0,0 +1,90 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
+ +
* 가입자가 없는 날짜는 보여지지 않습니다
+ +
+
+ + + + + + + + + + + + + +
가입자수
${resultList.yymm}${resultList.cnt} 명
+ + + + + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/28.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/28.jsp new file mode 100644 index 0000000..7642ef5 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/28.jsp @@ -0,0 +1,92 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ +
* 방문자가 없는 날짜는 보여지지 않습니다
+ +
+
+ + + + + + + + + + + + + +
날짜방문자수
${resultList.datetime}${resultList.cnt}
+ + + + + +
합계
+ + + + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/30.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/30.jsp new file mode 100644 index 0000000..6a89ade --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/30.jsp @@ -0,0 +1,69 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + +
+ + + + + + + + + + + +
+ +
* 방문자가 없는 날짜는 보여지지 않습니다
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
년도방문자수
20072438
20082740
20093817
20103669
20113738
합계 16402
+ + + + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/etcFrame.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/etcFrame.jsp new file mode 100644 index 0000000..9a96e61 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/etcFrame.jsp @@ -0,0 +1,61 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
내용사용자아이디삭제
 ${resultList.purposeEtc}${resultList.userid}
+ + + + + + +
+
+ + + + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/etcFrame1.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/etcFrame1.jsp new file mode 100644 index 0000000..ea07a8c --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/etcFrame1.jsp @@ -0,0 +1,61 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
내용사용자아이디삭제
 ${resultList.subject}${resultList.userid}
+ + + + + + +
+
+ + + + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/etcFrame2.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/etcFrame2.jsp new file mode 100644 index 0000000..eb139f5 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/etcFrame2.jsp @@ -0,0 +1,61 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + +
내용사용자아이디삭제
 ${resultList.orderEtc}${resultList.userid}
+ + + + + + +
+
+ + + + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/left.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/left.jsp new file mode 100644 index 0000000..864057c --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/left.jsp @@ -0,0 +1,226 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="fn" uri = "http://java.sun.com/jsp/jstl/functions" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + <%-- + + --%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/order_view.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/order_view.jsp new file mode 100644 index 0000000..87bf017 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/order_view.jsp @@ -0,0 +1,78 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + +다운로드 로그정보 + + + + + +
+ + + + + + + + + + + + + + + + +
  
+ + + + + + + + + + + + + + + + + + + +
번호아이디일시발주처명
${resultList.aid}${resultList.userid}${resultList.datetime}${resultList.orderEtc}
+
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/purpose_view.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/purpose_view.jsp new file mode 100644 index 0000000..d8840c5 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/purpose_view.jsp @@ -0,0 +1,76 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + +다운로드 로그정보 + + + + + +
+ + + + + + + + + + + + + + + + +
  
+ + + + + + + + + + + + + + + + + +
번호아이디일시
${resultList.aid}${resultList.userid}${resultList.datetime}
+
+
+ + diff --git a/src/main/webapp/WEB-INF/views/admins/userLog/subject_view.jsp b/src/main/webapp/WEB-INF/views/admins/userLog/subject_view.jsp new file mode 100644 index 0000000..42d4ffd --- /dev/null +++ b/src/main/webapp/WEB-INF/views/admins/userLog/subject_view.jsp @@ -0,0 +1,78 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> + + + + + +다운로드 로그정보 + + + + + +
+ + + + + + + + + + + + + + + + +
  
+ + + + + + + + + + + + + + + + + + + +
번호아이디일시프로젝트명
${resultList.aid}${resultList.userid}${resultList.datetime}${resultList.subject}
+
+
+ + diff --git a/src/main/webapp/WEB-INF/views/body/psboard/psboard_reply_write.jsp b/src/main/webapp/WEB-INF/views/body/psboard/psboard_reply_write.jsp new file mode 100644 index 0000000..374b7ec --- /dev/null +++ b/src/main/webapp/WEB-INF/views/body/psboard/psboard_reply_write.jsp @@ -0,0 +1,220 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> + + +:::: 게시판 ::::: + + + + + + +
+
+ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + +<%-- ${B} --%> + + + + + + + + + + + +
+ + + + + +
+ ${A} + + +
+
+ + + + + +
+ E-mail + + +
+
+ + + + + +
+ 전화번호 + + +
+
+ + + + + + + + + +
+ + + + + +
+ ${C} + + +
+
+ + + + + +
+
${D}
+
+ +
+
+
+ + + + + + +
+ + + +
+ +
+ + + + +
+ + + diff --git a/src/main/webapp/WEB-INF/views/error/isError.jsp b/src/main/webapp/WEB-INF/views/error/isError.jsp new file mode 100644 index 0000000..0dae2a5 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/error/isError.jsp @@ -0,0 +1,26 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + + +지반정보 포털시스템 + + +
+
+
+

페이지를 찾을 수 없습니다.

+
+
+올바른 웹페이지 주소가 아니거나, 시스템 오류가 발생했습니다.
+
+
+
+ 홈으로 +
+
+
+
+
+ + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/web/popup/calender.jsp b/src/main/webapp/WEB-INF/views/web/popup/calender.jsp new file mode 100644 index 0000000..5d76501 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/web/popup/calender.jsp @@ -0,0 +1,112 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + + + + + + +달력 + + +
+ + + + diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..884d857 --- /dev/null +++ b/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,75 @@ + + + geoinfo + + encodingFilter + org.springframework.web.filter.CharacterEncodingFilter + + encoding + utf-8 + + + + encodingFilter + *.do + *.json + + + contextConfigLocation + classpath*:egovframework/spring/context-*.xml + + + org.springframework.web.context.ContextLoaderListener + + + action + org.springframework.web.servlet.DispatcherServlet + + contextConfigLocation + /WEB-INF/config/springmvc/*.xml + + 1 + + + action + *.do + + + + + + + action + *.json + + + ImageServlet + net.sf.jasperreports.j2ee.servlets.ImageServlet + + + ImageServlet + /image + + + index.jsp + + + BASIC + + + 300 + + + java.lang.Throwable + /error/error-000.do + + + 404 + /error/error-404.do + + + 500 + /error/error-500.do + + \ No newline at end of file diff --git a/src/main/webapp/css/DynamicTree.css b/src/main/webapp/css/DynamicTree.css new file mode 100644 index 0000000..6e6619b --- /dev/null +++ b/src/main/webapp/css/DynamicTree.css @@ -0,0 +1,91 @@ +.DynamicTree { + font-family: georgia, tahoma; + font-size: 11px; + white-space: nowrap; + cursor: default; +} +.DynamicTree .doc img, +.DynamicTree .folder img { border: 0; vertical-align: -4px; } +* html .DynamicTree .doc img, +* html .DynamicTree .folder img { border: 0; vertical-align: middle; vertical-align: -4px; } +.DynamicTree .section { background: url(images/tree-branch.gif) repeat-y; display: none; } +.DynamicTree .last { background: none; } +.DynamicTree .folder .folder { margin-left: 18px; } +.DynamicTree .doc .doc, .DynamicTree .folder .doc { margin-left: 18px; } + +.DynamicTree .doc a { color: #000000; text-decoration: none; } +.DynamicTree .doc a:hover { color: #000000; text-decoration: none; } + +.DynamicTree .folder a { color: #000000; text-decoration: none; } +.DynamicTree .folder a:hover { color: #000000; text-decoration: underline; } + +.DynamicTree .text { padding: 1px; } +.DynamicTree .text-active { background: #CEE3FF; padding: 1px; } + +/* hack for IE to fix a bug (background of .section disappearing when mouse is over a link, for example Node 1.1.1.1) */ + +* html .DynamicTree .doc { position: relative; } +* html .DynamicTree .doc a { position: absolute; top: 3px; } + +.DynamicTree img { border: 0; } + +.DynamicTree .actions { + position: relative; + margin-top: 7px; + margin-left: 10px; + height: 20px; +} +.DynamicTree .tooltip { + position: absolute; + line-height: 22px; + left: 185px; +} +.DynamicTree .moveUp, +.DynamicTree .moveDown, +.DynamicTree .moveLeft, +.DynamicTree .moveRight, +.DynamicTree .insert, +.DynamicTree .info, +.DynamicTree .remove { + width: 20px; + height: 20px; + display: block; + position: absolute; + border: 1px solid #F1EFE2; + z-index: 5; + cursor: default; +} +.DynamicTree .moveUp:hover, +.DynamicTree .moveDown:hover, +.DynamicTree .moveLeft:hover, +.DynamicTree .moveRight:hover, +.DynamicTree .insert:hover, +.DynamicTree .info:hover, +.DynamicTree .remove:hover { + background-color: #ffffff; + border: 1px solid #ACA899; +} +.DynamicTree .moveUp { left: 0px; } +.DynamicTree .moveDown { left: 25px; } +.DynamicTree .moveLeft { left: 50px; } +.DynamicTree .moveRight { left: 75px; } +.DynamicTree .insert { left: 100px; } +.DynamicTree .info { left: 125px; } +.DynamicTree .remove { left: 150px; } + +.DynamicTree .wrap { margin-left: 2px; } +.DynamicTree .top { background: url(images/tree.gif) no-repeat; padding-left: 25px; line-height: 20px; color: #333333; } +.DynamicTree .wrap1 { background: #ffffff; padding: 10px; border: 1px solid #919B9C; width: 250px; } +.DynamicTree .wrap2 { margin-left: 2px; } + +.DynamicTree #tree-insert-form { display: none; margin-top: 1em; } +.DynamicTree #tree-insert-form .label { text-align: right; width: 50px; padding-right: 8px; } +.DynamicTree #tree-insert-form .input { margin-bottom: 2px; padding-left: 3px; } +.DynamicTree #tree-insert-form select { margin-bottom: 2px; } +.DynamicTree #tree-insert-form .button { margin-top: 4px; } + +.DynamicTree #tree-info-form { display: none; margin-top: 1em; } +.DynamicTree #tree-info-form .label { text-align: right; width: 50px; padding-right: 8px; } +.DynamicTree #tree-info-form .input { margin-bottom: 2px; padding-left: 3px; } +.DynamicTree #tree-info-form select { margin-bottom: 2px; } +.DynamicTree #tree-info-form .button { margin-top: 4px; } \ No newline at end of file diff --git a/src/main/webapp/css/admin_dashboard.css b/src/main/webapp/css/admin_dashboard.css new file mode 100644 index 0000000..055be16 --- /dev/null +++ b/src/main/webapp/css/admin_dashboard.css @@ -0,0 +1,155 @@ +@charset "utf-8"; + +@font-face { + font-family: 'Nanum Gothic'; + font-style: normal; + font-weight: 400; + src:url(../fonts/NanumGothic-Regular.eot); + src:url(../fonts/NanumGothic-Regular.eot?#iefix) format('embedded-opentype'), + url(../fonts/NanumGothic-Regular.woff2) format('woff2'), + url(../fonts/NanumGothic-Regular.woff) format('woff'), + url(../fonts/NanumGothic-Regular.ttf) format('truetype'); +} +@font-face { + font-family: 'Nanum Gothic'; + font-style: normal; + font-weight: 500; + src:url(../fonts/NanumGothic-Bold.eot); + src:url(../fonts/NanumGothic-Bold.eot?#iefix) format('embedded-opentype'), + url(../fonts/NanumGothic-Bold.woff2) format('woff2'), + url(../fonts/NanumGothic-Bold.woff) format('woff'), + url(../fonts/NanumGothic-Bold.ttf) format('truetype'); +} +@font-face { + font-family: 'Nanum Gothic'; + font-style: normal; + font-weight: 700; + src:url(../fonts/NanumGothic-Bold.eot); + src:url(../fonts/NanumGothic-Bold.eot?#iefix) format('embedded-opentype'), + url(../fonts/NanumGothic-Bold.woff2) format('woff2'), + url(../fonts/NanumGothic-Bold.woff) format('woff'), + url(../fonts/NanumGothic-Bold.ttf) format('truetype'); +} +@font-face { + font-family: 'Nanum Gothic'; + font-style: normal; + font-weight: 800; + src:url(../fonts/NanumGothic-ExtraBold.eot); + src:url(../fonts/NanumGothic-ExtraBold.eot?#iefix) format('embedded-opentype'), + url(../fonts/NanumGothic-ExtraBold.woff2) format('woff2'), + url(../fonts/NanumGothic-ExtraBold.woff) format('woff'), + url(../fonts/NanumGothic-ExtraBold.ttf) format('truetype'); +} + +html{height: 100%} +body{margin: 0; padding: 0; height: 100%; font-family:'Nanum Gothic', '돋움', Dotum, Arial, sans-serif; color: #333;} +.hide { display: none;} +*{padding: 0; margin: 0; box-sizing: border-box;} +ol,ul,dl {list-style:none;} + +a:link, a:visited {text-decoration:none;} +a:active, a:hover {text-decoration:none;} +table{border-collapse:collapse;} +caption {position:absolute; top:-10000px;} + + +.dsWrap {display: flex; gap: 24px 50px ; justify-content: space-between; width: 1392px; padding: 20px; flex-wrap: wrap;} +.dsBoxWrap {width: 650px; min-height: 216px;} +.titleWrap {overflow:hidden; height: 38px; margin-top: 16px;} +.titleWrap.mt0 {margin-top: 0;} +.titleWrap h2{float:left; position: relative; font-size: 19px; color: #222; font-weight: 700; line-height: 35px; letter-spacing: -0.08em;} +.titleWrap h2::before{display: inline-block; content:""; width: 20px; height: 20px; margin-right: 5px; border-radius:100%; background: #f3a764; vertical-align: -3px;} +.titleWrap h2::after {position: absolute; top: 14px; left: 6px; content:""; width: 4px; height: 4px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(227deg);} +.titleWrap h2 span{color: #555;} +.titleWrap .rightBtn{float: right; position: relative; margin-top: 10px;} + +/* 공종통계 */ +.dsBox_sWrap {display: flex; gap: 18px 17px; flex-wrap: wrap; justify-content: space-between; margin-top: 17px; min-height: 178px;} +.dsBox_sWrap dl{width: 23%; text-align: center; border-radius: 7px; box-shadow: 0 0 7px rgba(0,0,0,0.1);} +.dsBox_sWrap dt{height: 30px; padding-top: 6px; border: 1px solid #e9d09b; border-top-left-radius: 7px; border-top-right-radius: 7px; font-size: 13px; color: #333; font-weight: 700; line-height: normal; letter-spacing: -0.06em; background-color: #fbeed3;} +.dsBox_sWrap dd{ height: 50px; padding-top: 12px; border: 1px solid #c2c7d0; border-top: none; border-bottom-left-radius: 7px; border-bottom-right-radius: 7px; font-size: 17px; color: #f04e61; font-weight: 600; line-height: normal; } +.dsBox_sWrap:first-child {padding-bottom: 31px;} + +/* 시추공 입력현황 통계 */ +.dsBox_sWrap_1 {overflow: hidden; margin-top: 17px;} +.dsBox_sWrap_1 dl{float: left; margin-left: 4px; width: 105px; text-align: center;} +.dsBox_sWrap_1 dl:nth-child(1),.dsBox_sWrap_1 dl:nth-child(7),.dsBox_sWrap_1 dl:nth-child(13){margin-left: 0;} +.dsBox_sWrap_1 dt{height: 30px; padding-top: 6px; border-radius: 3px; font-size: 13px; color: #333; font-weight: 700; line-height: normal; letter-spacing: -0.06em; background-color: #e7ebec;} +.dsBox_sWrap_1 dt a{color: #333;} +.dsBox_sWrap_1 dd{ height: 36px; padding-top: 6px; font-size: 17px; color: #f04e61; font-weight: 600; line-height: normal; } + +/* Q&A, 자료실, FAQ, 커뮤니티 */ +.tabBoard {position:relative; width: 650px;} + +.more {position:absolute; top: 1px; right: 0; padding-right: 13px; color: #3d4451; font-size: 13px; font-weight: bold;} +.more:hover {color: #ee5908;} +.more:before, .more:after {content:""; position: absolute; right: 0; width: 6px; height: 2px; background: #3d4451;} +.more:hover:before, .more:hover:after {background: #ee5908;} +.more:before {top: 5px; transform: rotate(45deg);} +.more:after {top: 9px; transform: rotate(-45deg);} + +/* 탭 */ +.tab {overflow:hidden;} +.tab li {float:left; position:relative; padding: 0 26px; font-size: 19px; color: #333; font-weight: 700;} +.tab li:first-child {padding: 0 26px 0 0;} +.tab li:before{content:""; position: absolute; left: 1px; bottom: 1px; width: 1px; height: 17px; background: #cecece;} +.tab li:first-child:before{content:""; background: none;} +.tab li a {display:block; color: #333;} +.tab li a:hover{color:#ee5908;} +.tab li.crnt {color: #ee5908;} +.tab li.crnt a {color: #ee5908;} +.area-tab-cont { padding-top: 9px;} + +/* 목록테이블 */ +.tbl_list {width: 100%; margin-top: 9px;} +.tbl_list th{position:relative; height: 35px; padding: 3px 10px 3px 15px; box-sizing: border-box; font-size: 13px; color: #333; letter-spacing: -0.04em; line-height: normal; background: #e7ebec;} +.tbl_list th:first-child{border-top-left-radius: 7px;} +.tbl_list th:last-child{border-top-right-radius: 7px;} +.tbl_list td{height: 34px; padding: 3px 8px 1px 8px; box-sizing: border-box; border-bottom: 1px solid #dbdde1; font-size: 13px; color: #333; letter-spacing: -0.04em; line-height: normal; text-align: center;} +.tbl_list td span.cr01{color: #e15c0b; font-weight: 500;} +.tbl_list td span.cr02{color: #0aa5e3; font-weight: 500;} +.tbl_list td a.status{display: inline-block; min-width: 55px; height: 22px; padding: 3px 5px 0 5px; border-radius: 3px; box-sizing: border-box; font-size: 12px; color: #fff; font-weight: bold; line-height: 16px; text-align: center;} +.tbl_list td a.status.st01{ background-color: #37b1ea;} +.tbl_list td a.status.st01:hover{ color: #fff; background-color: #0175ab;} +.tbl_list td a.status.st02{ background-color: #757e9f;} +.tbl_list td a.status.st02:hover{ color: #fff; background-color: #333e67;} +.tbl_list td a.status.st03{ background-color: #87c036;} +.tbl_list td a.status.st03:hover{ color: #fff; background-color: #5f9b0a;} +.tbl_list td.title{text-align: left;} +.tbl_list td a{color: #333;} +.tbl_list td a:hover{color: #e92929;} + + +/* 사용자등록현황 */ +.useStatus {overflow: hidden; min-height: 212px;} +.useStatus li{display: block; width: 638px; height: 50px; margin-top: 35px; padding-right: 40px; border-radius: 30px; font-size: 14px; color: #061e50; background: linear-gradient(-90deg, #ffcca3, #ffceef); text-align: right; position: relative;} +.useStatus li:first-child{background: linear-gradient(90deg, #ffcca3, #ffceef);} +.useStatus li span{display: inline-block; text-align: left;} +.useStatus li span.title{position: absolute; width: 110px; height: 50px; padding-top: 16px; border-radius: 30px; font-size: 16px; color: #fff; font-weight: bold; background-color: #e96070; text-align: center; left: 0;} +.useStatus li:last-child span.title{background-color: #e9609a;} +.useStatus li span.num{margin-top: 7px; font-size: 30px; color: #061e50; } + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/webapp/css/admins/nm-style.css b/src/main/webapp/css/admins/nm-style.css new file mode 100644 index 0000000..36140af --- /dev/null +++ b/src/main/webapp/css/admins/nm-style.css @@ -0,0 +1,56 @@ +/* 기본 */ +img { border:0; } +body +{ + margin-left:0; + margin-top:0; + margin-right:0; + margin-bottom:0; + scrollbar-face-color: #FFFFFF; + scrollbar-shadow-color: #A0A0A0; + scrollbar-highlight-color: #FFFFFF; + scrollbar-3dlight-color: #A0A0A0; + scrollbar-darkshadow-color: #F6F6F6; + scrollbar-track-color: #F6F6F6; + scrollbar-arrow-color: #A0A0A0; +} + +/* 페이지 네비게이션 */ +.navi_cur {font-family: "굴림체"; font-size: 9pt; color: #3F3F3F; line-height:150%; font-weight:bold} +a.navi:link {font-family: "굴림체"; font-size: 9pt; color: #3F3F3F; text-decoration: none; line-height:150%;} +a.navi:visited {font-family: "굴림체"; font-size: 9pt; color: #3F3F3F; text-decoration: none; line-height:150%;} +a.navi:hover {font-family: "굴림체"; font-size: 9pt; color: #3F3F3F; text-decoration: underline; line-height:150%; } + +/* 목록 헤드와 내용 */ +.list_head { font-size:9pt; font-family: 굴림체; font-weight:bold; line-height:150%; color:#B64E0F; } +.list_head2 { font-size:9pt; font-family: 굴림체; font-weight:bold; line-height:150%; color:#1180B5; } +.list_content { font-size:9pt; font-family: 굴림체; line-height:150%; color:#525252; } + +/* search */ +.search { font-size:9pt; color:#545454; } +.date_search { font-size:9pt; font-weight:bold; color:#545454; } + +/* 폼 */ +Select { font-size:9pt; } +Input { font-size:9pt; } +.write { background-color:#FFFFFF; border-color:#C5C5C5; border-width:1px; border-style:solid; font-size:10pt;} +Input.search { background-color:#F9F9F9; border-color:#C5C5C5; border-width:1px; border-style:solid; font-size:10pt;} + + +/* 일반 */ +a:link {font-family: "굴림체"; font-size: 9pt; color: #525252; text-decoration: none; line-height:150%;} +a:visited {font-family: "굴림체"; font-size: 9pt; color: #525252; text-decoration: none; line-height:150%;} +a:hover {font-family: "굴림체"; font-size: 9pt; color: #FF8000; text-decoration: underline; line-height:150%; } + +/* FAQ */ +.faq_q { font-size:9pt; line-height:150%; color:#1F177C; font-weight:bold; } +.faq_a { font-size:9pt; line-height:150%; color:#1F177C; } + + +/* QnA */ +.qna_head { font-size:9pt; font-family: 굴림체; font-weight:bold; line-height:150%; color:#939393; } +.qna_content { font-size:9pt; font-family: 굴림체; line-height:150%; color:#939393; padding-left:5px; padding-right:5px; } +.qna_contentH { font-size:9pt; font-family: 굴림체; line-height:150%; color:#939393; padding:5px; } +.qna_reply { font-size:9pt; font-family: 굴림체; line-height:120%; color:#3F83FF; padding-left:5px; padding-right:5px; } +.qna_reply_gray { font-size:9pt; font-family: 굴림체; line-height:150%; color:#939393; } + diff --git a/src/main/webapp/css/admins/style.css b/src/main/webapp/css/admins/style.css new file mode 100644 index 0000000..f82ebb0 --- /dev/null +++ b/src/main/webapp/css/admins/style.css @@ -0,0 +1,141 @@ +/* 기본 */ +img { border:0; } +body +{ + margin-left:16; + margin-top:20; + margin-right:16; + margin-bottom:0; + scrollbar-face-color: #FFFFFF; + scrollbar-shadow-color: #A0A0A0; + scrollbar-highlight-color: #FFFFFF; + scrollbar-3dlight-color: #A0A0A0; + scrollbar-darkshadow-color: #F6F6F6; + scrollbar-track-color: #F6F6F6; + scrollbar-arrow-color: #A0A0A0; +} + +/* 페이지 네비게이션 */ +.navi_cur {font-family: "굴림체"; font-size: 9pt; color: #3F3F3F; line-height:150%; font-weight:bold} +a.navi:link {font-family: "굴림체"; font-size: 9pt; color: #3F3F3F; text-decoration: none; line-height:150%;} +a.navi:visited {font-family: "굴림체"; font-size: 9pt; color: #3F3F3F; text-decoration: none; line-height:150%;} +a.navi:hover {font-family: "굴림체"; font-size: 9pt; color: #3F3F3F; text-decoration: underline; line-height:150%; } + +/* 목록 헤드와 내용 */ +.list_head { font-size:9pt; font-family: 굴림체; font-weight:bold; line-height:150%; color:#B64E0F; } +.list_head2 { font-size:9pt; font-family: 굴림체; font-weight:bold; line-height:150%; color:#1180B5; } +.list_head_noti { font-size:9pt; font-family: 굴림체; font-weight:bold; line-height:150%; color:#B64E0F;} +.list_content { font-size:9pt; font-family: 굴림체; line-height:150%; color:#525252; } + +/* search */ +.search { font-size:9pt; color:#545454; } +.search1 { font-size:9pt; color:#545454; } +.date_search { font-size:9pt; font-weight:bold; color:#545454; } + +/* 폼 */ +Select { font-size:9pt; } +input { font-size:9pt; } +.write { background-color:#FFFFFF; border-color:#C5C5C5; border-width:1px; border-style:solid; font-size:10pt;} +.input { font-size:9pt; border:1x solid #C8D0D5; text-align: left; color: #333333;} +.input1 { font-size:9pt; border:1x solid #8C8C8C; } +.input2 { font-size:9pt; border:1x solid #D1DEDE; text-align: justify; padding-right: 3px; background-color: #F4F7F7; height: 17px; padding-left: 3px;} +.input3 { font-size:9pt; border:1x solid #8C8C8C; text-align: center; padding-top: 2px; } +Input.search { background-color:#F9F9F9; border-color:#C5C5C5; border-width:1px; border-style:solid; font-size:10pt;} + +/* 일반 */ +a:link {font-family: "굴림체"; font-size: 9pt; color: #525252; text-decoration: none; line-height:150%;} +a:visited {font-family: "굴림체"; font-size: 9pt; color: #525252; text-decoration: none; line-height:150%;} +a:hover {font-family: "굴림체"; font-size: 9pt; color: #FF8000; text-decoration: underline; line-height:150%; } + +/* FAQ */ +.faq_q { font-size:9pt; line-height:150%; color:#1F177C; font-weight:bold; } +.faq_a { font-size:9pt; line-height:150%; color:#1F177C; } + + +/* QnA */ +.qna_head { font-size:9pt; font-family: 굴림체; font-weight:bold; line-height:150%; color:#939393; } +.qna_content { font-size:9pt; font-family: 굴림체; line-height:150%; color:#939393; padding-left:5px; padding-right:5px; } +.qna_contentH { font-size:9pt; font-family: 굴림체; line-height:150%; color:#939393; padding:5px; } +.qna_reply { font-size:9pt; font-family: 굴림체; line-height:120%; color:#3F83FF; padding-left:5px; padding-right:5px; } +.qna_reply_gray { font-size:9pt; font-family: 굴림체; line-height:150%; color:#939393; } + +/* 팝업타이틀, 입력창(input, select) 추가 2017.08.01 */ +.pop_title { height:20px; border-bottom:1px solid #31b0e5; background:url('../../images/admins/bullet03.png') 10px 10px no-repeat; padding:7px 0 7px 27px; font-size:14px; font-family: 굴림체; font-weight:bold; line-height:150%; color:#1180B5; } +.input_txt {padding:3px; border:1px solid #ccc; border-radius:3px; color:#666; font-size:12px; } + +/* 2023.10.11 LHJ 게시판 제목에서 길이 초과된 뒷부분 생략 추가 */ +#Table_List {table-layout:fixed; } +#Table_List td {text-overflow: ellipsis; white-space: nowrap; overflow: hidden; } + +/* 2023.10.23 LHJ 팝업 미리보기 화면 추가 */ +.popup_noti { + width: 500px; + height: 600px; + display: flex; + flex-direction: column; + position: relative; +} +.bg_noti:nth-child(1) { + flex-grow: 2.5; + background-color: #FFCCB3; +} +.bg_noti:nth-child(2) { + flex-grow: 1.5; + background-color: #FFF2D0; +} +.bg_noti:nth-child(3) { + flex-grow: 6; + background-color: #DCF1EA; +} +.bg_white { + position: absolute; + top: 10%; + left: 7%; + right: 7%; + bottom: 5%; + background-color: white; + border: 1px solid black; +} +.subject_noti { + position: absolute; + top: 10%; + left: 7%; + right: 7%; + font-family: "NanumGothicB"; + font-weight: bold; + font-size: 15pt; + overflow:hidden; + text-overflow: ellipsis; + display:-webkit-box; + -webkit-line-clamp:2; + -webkit-box-orient:vertical; +} +.contents_noti pre { + display: block; + padding: inherit; + margin: inherit; + font-size: inherit; + line-height: inherit; + color: inherit; + word-break: break-all; + word-wrap: break-word; + white-space: pre-wrap; + background-color: inherit; + border: inherit; + border-radius: inherit; + font-family: inherit; +} +.contents_noti { + position: absolute; + top: 27%; + left: 7%; + right: 7%; + bottom: 5%; + font-family: "Nanum Gothic"; + font-size: 9pt; + overflow-y: auto; + text-overflow: ellipsis; + display:-webkit-box; + -webkit-line-clamp:10; + -webkit-box-orient:vertical; +} diff --git a/src/main/webapp/css/commpop.css b/src/main/webapp/css/commpop.css new file mode 100644 index 0000000..22d6b07 --- /dev/null +++ b/src/main/webapp/css/commpop.css @@ -0,0 +1,264 @@ +/* Reset */ +@import url(http://fonts.googleapis.com/earlyaccess/nanumgothic.css); +html { background:#fff; } +html,body{ width:100%;} +body { font-size:13px; line-height:20px; font-family:"Nanum Gothic",'���� ���',Dotum,'Tahoma',Gulim,Helvetica,sans-serif;color:#333;} +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h3,h5,h6,pre,code,form,fieldset,legend,input,textarea,button,p,blockquote,th,td { margin:0; padding:0; -webkit-text-size-adjust:none; } +img,fieldset{border:0; vertical-align:middle;} +frameborder{border:0;} +ul,ol,li{list-style:none;} +h1,h2,h3,h3,h5,h6 { font-weight:normal; } +hr {display:none;} +a {color:inherit;} +a, a:link {color:#333; text-decoration:none;} +em,i,address {font-style:normal; font-weight:normal;} +legend,caption {display:none; clear:both;} +input,textarea,select,button,table,radio,file{ font-size:inherit;font-family:inherit;line-height:inherit; border:0; }/**font-size:100%;*/ +input[type=checkbox], input[type=radio] { border:none !important } +table{border-collapse:collapse} +textarea {outline-color:-moz-use-text-color; outline-style:none; outline-width:medium;} +textarea {resize:none;padding:5px 8px;border:solid 1px #d1d1d1; background-color:#ffffff;} +input { border:1px solid #d1d1d1; padding:0; height:18px;} +label { cursor:pointer; } +a:visited { color:#333;} +a:hover { color:#31b0e5; text-decoration:none; cursor:pointer; } +a:active { color:#31b0e5; text-decoration:none; cursor:pointer; } +.clear {clear:both;} +/* 2014.05.30 - TR Display None ó�� */ +.trViewOff{display:none;} + +@font-face { + font-family: 'NanumGothicB'; + font-style: normal; + font-weight: 700; + src: url(//themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-Bold.eot); + src: url(//themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-Bold.eot?#iefix) format('embedded-opentype'), + url(//themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-Bold.woff2) format('woff2'), + url(//themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-Bold.woff) format('woff'), + url(//themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-Bold.ttf) format('truetype'); +} +@font-face { + font-family: 'Nanum Gothic'; + font-style: normal; + font-weight: 400; + src: url(//themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-Regular.eot); + src: url(//themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-Regular.eot?#iefix) format('embedded-opentype'), + url(//themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-Regular.woff2) format('woff2'), + url(//themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-Regular.woff) format('woff'), + url(//themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-Regular.ttf) format('truetype'); +} +@font-face { + font-family: 'NanumGothicEB'; + font-style: normal; + font-weight: 800; + src: url(//themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-ExtraBold.eot); + src: url(//themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-ExtraBold.eot?#iefix) format('embedded-opentype'), + url(//themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-ExtraBold.woff2) format('woff2'), + url(//themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-ExtraBold.woff) format('woff'), + url(//themes.googleusercontent.com/static/fonts/earlyaccess/nanumgothic/v3/NanumGothic-ExtraBold.ttf) format('truetype'); +} + + +/*�⺻���̾ƿ�*/ +#wrap { position:relative; width:100%;} +#header {position:relative; height:48px; background:url('/web/images/top_bg.png');} +#main { min-height:100%; margin:0; width:100%;} +#main_full { min-height:100%; width:1200px; margin:0 auto; padding-bottom:20px;} +*html #main {height:100%; margin:-48px 0 0 0;} +#bottom { position:absolute;background-color:#31323a; width:100%; height:30px; text-align:center; clear:both; z-index:999; } +#bottom .copyright { padding-top:8px; } + +/*top*/ +#header .logo { float:left; width:240px; text-align:center; margin-top:12px; color:#ffffff; font-size:15px; font-weight:bold;} +#header .top_menu { float:left; position:absolute; z-index:5; margin-left:250px; margin-top:19px; } + + +/*����Ǹ޴� - 0723 ���� */ +#header .top_menu .top_tabs {margin:0; height:29px; } +#header .top_menu .top_tabs li {float:left; height:29px; margin:-1px 1px 1px 0; text-align:center; display:block; list-style-type:none; background:url('/web/images/top_menu_on_bg.png') no-repeat; border-bottom:1px solid #fff;} +#header .top_menu .top_tabs a {float:left; height:29px; padding:0 20px 0 20px; text-decoration:none; font-size:13px; color:#000; font-weight:bold; line-height:29px;} +#header .top_menu .top_tabs a:hover {color:#000; background:url('/web/images/top_menu_on_bg.png') repeat-x; padding:0 20px 0 20px} +#header .top_menu .top_tabs .active {color:#fff; background:url('/web/images/top_menu_off_bg.png') repeat-x; padding:0 20px 0 20px} + +/*����Ǹ޴� +#header .top_menu .top_tabs {margin:0; height:29px; } +#header .top_menu .top_tabs li {float:left; width:113px; height:29px; padding:0; margin:0 0 0 2px; text-align:center; display:block; list-style-type:none; background:url('/web/images/top_menu_on.png') no-repeat;} +#header .top_menu .top_tabs a {float:left; width:113px; height:29px; padding:0; text-decoration:none; font-size:13px; color:#000; font-weight:bold; line-height:29px;} +#header .top_menu .top_tabs a .active, .top_tabs a:hover { color:#fff; background:url('/web/images/top_menu_off.png') no-repeat;} +#header .top_menu .top_tabs a:hover {color:#fff; background:url('/web/images/top_menu_off.png') no-repeat;} +#header .top_menu .top_tabs .active {color:#fff; background:url('/web/images/top_menu_off.png') no-repeat;} +*/ + +#tabmenu{ height:29px; font-size:13px; color:fff;} +#tabmenu ul,#tabmenu ul li{ margin:0; padding:0; } +#tabmenu ul li{ list-style:none; width:113px; margin-right:2px; text-align:center; } +#tabmenu ul li,#tabmenu ul li a{ background:url('/web/images/top_menu_off.png') left top no-repeat; color:#FFFFFF; text-align:center; width:113px;} +#tabmenu ul li{ float:left; margin-right:0; line-height:29px; margin-right:2px; } +#tabmenu ul li a{ display:inline-block; padding:0; color:#fff; font-size:13px; cursor:pointer; text-decoration:none !important; } +#tabmenu ul li a:hover{ width:113px; background:url('/web/images/top_menu_on.png') left top no-repeat; color:#1a5d79; } +#tabmenu ul li.on,#tabmenu ul li.on a{ width:113px; background:url('/web/images/top_menu_on.png') left top no-repeat; color:1a5d79; } +#tabmenu ul li.on a{ color:#1a5d79; } + +/*�޴� �߰��Ҷ����� �߰� �ʿ�*/ +#tabcontent0 { margin-left:0; padding:5px 20px 5px 20px; background-color:#FFFFFF; border-bottom:1px solid #2994c0; border-left:1px solid #2994c0; border-right:1px solid #2994c0; } +#tabcontent1 { margin-left:115px; padding:5px 20px 5px 20px; background-color:#FFFFFF; border-bottom:1px solid #2994c0; border-left:1px solid #2994c0; border-right:1px solid #2994c0; } +#tabcontent2 { margin-left:230px; padding:5px 20px 5px 20px; background-color:#FFFFFF; border-bottom:1px solid #2994c0; border-left:1px solid #2994c0; border-right:1px solid #2994c0; } +/* #tabcontent3 { margin-left:345px; padding:5px 20px 5px 20px; background-color:#FFFFFF; border-bottom:1px solid #2994c0; border-left:1px solid #2994c0; border-right:1px solid #2994c0; } +#tabcontent4 { margin-left:459px; padding:5px 20px 5px 20px; background-color:#FFFFFF; border-bottom:1px solid #2994c0; border-left:1px solid #2994c0; border-right:1px solid #2994c0; } */ + +/*�����Ǹ޴�*/ +.tabs {margin-bottom:20px; height:33px; border-bottom:2px solid #009faf; } +.tabs .tab_menu li {float:left; width:90px; height:33px; padding:0; margin:0 2px 0 0; text-align:center; display:block; list-style-type:none; background:url('/web/images/sub_tabs_off.png') no-repeat;} +.tabs .tab_menu a {float:left; width:90px; height:33px; padding:0; text-decoration:none; font-size:12px; color:#666; line-height:33px;} +.tabs .tab_menu a:hover {color:#fff; background:url('/web/images/sub_tabs_on.png') no-repeat;} +.tabs .tab_menu .active { color:#fff; background:url('/web/images/sub_tabs_on.png') no-repeat;} + +#header .right_menu { float:right; width:200px; margin-top:12px; } +#header .right_menu li { display:block; float:left; text-align:right; padding:0; margin:0; } +#header .right_menu .icon { margin-top:5px; padding-right:5px; } +#header .right_menu .greetings {color:#FFFFFF; font-size:11px;} +#header .right_menu .logout { margin:3px 0 0 10px;} + +/*main*/ +#main_left { position:absolute; top:48px; left:0px; bottom:0px; width:230px; background:url('/web/images/left_bg.png') top left repeat-y; z-index:10; overflow:auto; } +#main_left .title { text-align:center; margin:10px 0 20px 0; } +#main_left .tree_area { padding:0 8px 20px 8px; } +#main_left .tree_area .step1 { margin-left:15px; padding-left:15px; } +#main_left .tree_area .step2 { padding-left:30px; } +#main_left .tree_area .step3 { padding-left:45px; } +#main_right { position:relative; margin-left:2px; margin-right:5px; min-height:400px;} +#main_right .contents { padding-left:5px; padding-bottom:30px; margin:20px 5px 0 0; width:670px; } +#main_right .contents .btn_top { text-align:right; margin-bottom:7px; } +.main_title {height:40px; padding:0; margin-bottom:20px; border-bottom:1px solid #dadada;} +.main_title .title_icon { background:url('/web/images/icon_title.png') 20px 5px no-repeat; font-size:14px; font-weight:bold; padding:9px 0 5px 55px; } +#main_full .contents { padding:0; margin:0; width:100%; } +#main_full .contents .btn_top { text-align:right; margin-bottom:7px; } + +/*�˻�â*/ +.search_box { border:2px solid #a9d4e3; padding:15px; margin-bottom:20px; height:26px; text-align:center; font-weight:bold; font-size:11px; } +.search_box img { vertical-align:middle; margin-right:3px; margin-left:3px; } +.search_box2 {position:relative; border:2px solid #a9d4e3; padding:15px; clear:both; margin-bottom:20px; height:26px; text-align:center; font-weight:bold; font-size:11px; } +.search_box2 ul { list-style-type:none } +.search_box2 li {display:inline; margin-right:10px; } + +/*table*/ +.table_input {width:100%; border-collapse:collapse; border-top:2px solid #333; border-bottom:2px solid #333; } +.table_input th { text-align:left; font-size:11px; padding:7px 0 7px 10px; background-color:#f5f5f2; border-bottom:1px solid #c0c0c0; border-right:1px solid #c0c0c0;} +.table_input .th_mid { border-left:1px solid #c0c0c0;} +.table_input td { padding:7px 0 7px 10px; border-bottom:1px solid #c0c0c0;} +.table_input .td_right { border-right:1px solid #c0c0c0;} +.table_box {width:100%; border-top:2px solid #7db2c9; border-bottom:2px solid #7db2c9; margin-bottom:30px;} +.table_box th { text-align:left; font-size:11px; padding:10px; background-color:#f5f5f2; border-bottom:1px solid #c0c0c0; border-right:1px solid #c0c0c0;} +.table_box td { padding:10px; border-bottom:1px solid #c0c0c0;} +.table_box .td_right { border-right:1px solid #c0c0c0;} +.table_list_short {width:100%; border-top:2px solid #666; margin-bottom:30px;} +.table_list_short th { font-size:12px; padding:7px; background-color:#f5f5f2; border-bottom:1px solid #c0c0c0; } +.table_list_short td { text-align:center; padding:7px; border-bottom:1px solid #c0c0c0;} +.table_list {width:100%; border-top:2px solid #666; margin-bottom:30px;} +.table_list th { font-size:11px; font-weight:bold; padding:0; border-bottom:1px solid #c6c6c6; height:40px; } +.table_list td { text-align:center; height:35px; padding:0; border-bottom:1px solid #e1e1e1;} +.table_list .title { text-align:left; padding-left:10px; } + +.table_core {font-size:11px; width:100%; border-collapse:collapse; border-top:1px solid #999999; border-bottom:1px solid #999999; } +.table_core td { padding:7px 0 7px 10px; border-bottom:1px solid #999999; text-align:center} + +.table_pic {font-size:11px; width:100%; border:0px } +.table_pic td { padding:5px 0 5px 10px; border:0px text-align:left; border-bottom:0px solid #FFFFFF;} + + +.table_input2 {width:100%; border-collapse:collapse; border-top:2px solid #333; border-bottom:2px solid #333; } +.table_input2 th { text-align:center; font-size:11px; padding:7px 0 7px 10px; background-color:#f5f5f2; border-bottom:1px solid #c0c0c0; border-right:1px solid #c0c0c0;} +.table_input2 .th_mid { border-left:1px solid #c0c0c0;} +.table_input2 td { padding:7px 0 7px 10px; border-bottom:1px solid #c0c0c0;} +.table_input2 .td_right { border-right:1px solid #c0c0c0;} +.table_input2 .td_right2 { border-right:none} + +/* 2014.06.03 - html ��� �Է� */ +.table_input_top {width:100%; border-collapse:collapse; border-top:1px solid #c0c0c0; border-bottom:1px solid #c0c0c0; } +.table_input_top th { color:#ffffff; text-align:center; font-size:12px; padding:5px; background-color:#989999; border-bottom:1px solid #c0c0c0; border-right:1px solid #c0c0c0; border-left:1px solid #c0c0c0; font-weight: 700;} +.table_input_top td { padding:5px; border-bottom:1px solid #c0c0c0;} +.table_input_top td input,select {border:1px solid #d1d1d1; padding:0; height:22px; padding-left:5px;} +.table_input_top td .ref_radio {padding:0; height:12px; margin:0; margin-left:10px;} +.table_input_top .line { padding:0px;border:none;border-bottom:1px dotted #666;} + +/* 2014.06.03 - html �׸��� ���� �Է� */ +.table_input_grid {width:100%; border-collapse:collapse; border-top:1px solid #c0c0c0; } +.table_input_grid th { color:#ffffff; text-align:center; font-size:12px; padding:0px; background-color:#989999; border-left:1px solid #c0c0c0; border-right:1px solid #c0c0c0; font-weight: 700;} +.table_input_grid td { padding:5px; border-right:1px solid #c0c0c0;} +.table_input_grid td select {border:1px solid #d1d1d1; padding:0; height:22px; font-size:15px;font-weight:700;} + + +#paging { position:relative; width:100%; clear:both; margin-top:20px; height:20px; text-align:center; } +#paging ul { list-style-type:none;} +#paging ul li {margin:0px 5px 0px 5px; display:inline} + + + +.ML10 { margin-left:10px; } +.no_tree { text-align:center; } +.write_list { padding:0; margin:0; } +.selectbox { border:1px solid #d1d1d1; padding:0;} +.checkBox { vertical-align:-5px; padding-left:15px; border:0; } +.pwrite_box { background-color:#f9f9f9; border:1px solid #cfcfd1; padding:20px; margin-bottom:10px; } +.pwrite_box .title { background:url('/web/images/bullet02.png') left 4px no-repeat; font-size:14px; font-weight:bold; padding:0 0 0 17px; } +.pwrite_box .textarea { margin-top:5px; padding:0; } +.pwrite_box .ly_close{ position:absolute; top:26px; right:23px; } + +/* +-��ư �߰� ��� ��Ÿ�Ͻ�Ʈ 2014.05.15 */ +.btn_top_L { float:left; margin-top:5px; } +.btn_top_R { float:right; margin-bottom:7px; } +.btn_top_C { float:left; margin-top:15px; width:100%;text-align:center; } +.btn_top_Valid { float:left; margin-top:10px; font-size:11px; color:#990000; font-weight:bold;} +.btn_top_Valid_R { float:right; margin-top:10px; font-size:12px; color:#E54139; font-weight:bold;} + +/* +-��ư �߰� ��� ��Ÿ�Ͻ�Ʈ 2014.05.15 */ +.btn_top_L_Grid { float:left; margin-top:5px; margin-bottom:5px; } +.btn_top_L_Cnt { float:left; margin:6px 5px 5px 0; } +.input_RowCnt {width:40px; height:18px; ime-mode:disabled; line-height: 12px; font-size:11px; text-align:center; } + +/*�޷� �߰� 2014.05.15*/ +.calendar { position:absolute; z-index:9999; width:190px; padding-bottom:5px; background-color:#FFFFFF; border:1px dotted #666; } +.calendar .cal_title { position:relative; text-align:center; margin-top:5px; font-size:11px; font-weight:bold; } +.calendar .cal_date { margin-top:3px; } +.calendar table { margin:0 auto; text-align:center; border-collapse:collapse; font-family:tahoma,sans-serif;font-size:10px;} +.calendar table th { height:23px; padding-bottom:2px; font-family:"Nanum Gothic",'���� ���',Dotum,'Apple SD Gothic NEO',helvetica,sans-serif;font-size:11px;text-align:center; background-color:#f7f7f7; border-top:1px solid #e1e1e1; border-bottom:1px solid #e1e1e1;} +.calendar table td{ width:25px; height:15px;color:#000; text-align:center} +.calendar table td a{ display:block; height:15px; font-size:11px; color:#000} +.calendar table td a:hover{ background:#edf4fe; color:#6d6d6d; font-family:tahoma,sans-serif !important; text-decoration:none !important} +.calendar table td a:visited, .calendar table td a:active{ color:#000; text-decoration:none !important} +.calendar table .calendar_sun { color:#e82828; } +.calendar table .calendar_sun a, .calendar table .calendar_sun a:visited, .calendar table .calendar_sun a:hover, .calendar table .calendar_sun a:active{color:#e82828 !important; } +.calendar table .calendar_sat { color:#2828e8; } +.calendar table .calendar_sat a, .calendar table .calendar_sat a:visited, .calendar table .calendar_sat a:hover, .calendar table .calendar_sat a:active{color:#2828e8 !important; } +.calendar table .calendar_today { background:#6595db; color:#fff; } +.calendar table .calendar_today a, .calendar table .calendar_today a:hover, .calendar table .calendar_today a:visited, .calendar table .calendar_today a:active{ background:#6595db; color:#fff;} +.calendar .ly_close{ position:absolute; top:4px; right:12px; } + +/*2014.06.09 �߰�*/ +.plus_file { float:left; padding:0; margin-top:9px; } +.plus_file .input { height:20px; vertical-align:0; padding-left:5px; margin-top:2px; } +.plus_img { float:left; width:44px; margin-left:10px; text-align:center; } +.plus_img img { border:1px solid #d6d6d6; width:38px; height:38px} +.plus_text { float:left; font-size:11px; line-height:14px; padding:0; margin:5px 0 0 5px; text-align:left; } +.plus_text .checkbox_T { vertical-align:-6px; padding:0; border:0; } +.btn_s_top { margin-bottom:5px; padding:0; } +.table_gray {width:100%; border-bottom:1px solid #dddddd; border-right:1px solid #dddddd; } +.table_gray th { height:20px; text-align:center; font-size:11px; font-weight:bold; color:#FFFFFF; background-color:#989999; border-bottom:1px solid #dddddd; border-left:1px solid #dddddd; } +.table_gray td { text-align:left; padding:5px; border-bottom:1px solid #dddddd; border-left:1px solid #dddddd;} +.grid_area { margin:0; padding:0; } +.g_bottom_box { margin-top:10px; padding:15px; border:1px solid #c8cacc; width:100% } +.g_box_left { float:left; width:250px; margin-left:10px; background:url('/web/images/bullet04.png') left 13px no-repeat; padding-left:22px; letter-spacing:-1px;} + +/* �׸������̺���� */ +.table_grid {width:100%; border-bottom:1px solid #dddddd; border-right:1px solid #dddddd; } +.table_grid th { height:20px; text-align:center; height:32px; font-weight:bold; color:#FFFFFF; background-color:#989999; border-bottom:1px solid #dddddd; border-left:1px solid #dddddd; } +.table_grid td { text-align:center; padding:5px; border-bottom:1px solid #dddddd; border-left:1px solid #dddddd;} +.table_grid .td_L { text-align:left; } + + +#referenceDiv { background-color:#f9f9f9;border:1px solid #cfcfd1;position:absolute;z-index:999;overflow-y:auto;height:460px;} +#ref_title { padding-bottom:8px;} +#referenceDiv input[type=radio]{ vertical-align:middle;} + +.pointTextColor { color:#990000; font-weight:bold; } +.pointTextColor2 { color:#990000; } diff --git a/src/main/webapp/css/contents.css b/src/main/webapp/css/contents.css new file mode 100644 index 0000000..6c27d92 --- /dev/null +++ b/src/main/webapp/css/contents.css @@ -0,0 +1,51 @@ +@CHARSET "UTF-8"; + +#contents-body{ + width:100%; + background:url('../images/contents/background.png') no-repeat; +} + +#contents-wrap{ + width:100%; + min-height:300px; + border-bottom:1px solid #eee; + margin:3px 22px 0 27px; + background:linear-gradient(#eee, #fff); + padding:3px; +} +#top{ + padding-top:1px; + height:30px; + display:inline-flex; + line-height:35px; +} +#count{ + width:290px; + height:35px; + background:white; + border:1px solid #ddd; +} +#count div{ + background:url('../images/contents/peo_back.jpg') no-repeat; + padding-left:60px; +} +#login{ + margin-left:10px; + width:640px; + height:35px; + background:#fff; + border:1px solid #ddd; + vertical-align:sub; +} +#login-wrap{ + display:inline-flex; + height:20px; + line-height:20px; + padding:5px 0 5px 0; +} +#login input[type='radio']{ + margin:0; + margin-left:5px; + margin-right:2px; + padding:0; +} \ No newline at end of file diff --git a/src/main/webapp/css/footer.css b/src/main/webapp/css/footer.css new file mode 100644 index 0000000..d450925 --- /dev/null +++ b/src/main/webapp/css/footer.css @@ -0,0 +1 @@ +@CHARSET "UTF-8"; diff --git a/src/main/webapp/css/header.css b/src/main/webapp/css/header.css new file mode 100644 index 0000000..38c4ad2 --- /dev/null +++ b/src/main/webapp/css/header.css @@ -0,0 +1,72 @@ +@CHARSET "UTF-8"; + +body{ + width:1000px; +} + +#header{ + height:95px; + width:100%; + display:inline-flex; +} +#header-logo{ + width:300px; + height:100%; + background:url('../images/header/logo.gif'); + cursor:pointer; +} +#header-menuWrap{ + width:700px; + height:100%; +} +#header-menu ul{ + margin:0; + padding:0; + list-style:none; + display:inline-flex; + width:700px; +} +#header-menu ul li{ + cursor:pointer; +} +#header-menu{ + height:100%; + width:100%; +} +#topRightMenu{ + background:rgb(220, 220, 220); + border-radius:20px; + width:250px; + height:25px; + margin-top:7px; + float:right; + color:white; + text-align:center; + line-height:25px; + font-size:9pt; + font-weight:bold; +} +#topRightMenu ul{ + list-style:none; + display:inline-flex; + margin:0; + padding:0; + cursor:pointer; +} +#topRightMenu li{ + padding:0 5px 0 5px; +} + +#contents-body{ + display:inline-flex; + width:100%; +} +#side-left{ + float:left; +} +#side-right{ + float:right; +} +#contents{ + width:100%; +} \ No newline at end of file diff --git a/src/main/webapp/css/hn1.css b/src/main/webapp/css/hn1.css new file mode 100644 index 0000000..e2d6efe --- /dev/null +++ b/src/main/webapp/css/hn1.css @@ -0,0 +1,102 @@ +body { + margin:0px 0px 0px 0px; + font-size:12px; + font-family:"돋움"; + color:#666666; + background:#ffffff; + line-height:17px; +} + +td { + margin-left: 0px; + margin-top: 0px; + margin-right: 0px; + margin-bottom: 0px; + FONT-FAMILY: "돋움"; + font-size:12px; + color:#666666; + line-height:17px; +} + +p{margin:0; + padding:0; + } + + +A { + CURSOR: hand +} + +A.int:visited { + FONT-SIZE: 12px; COLOR: #666666; FONT-FAMILY: "돋움"; TEXT-DECORATION: none +} +A.int:link { + FONT-SIZE: 12px; COLOR: #6e4987; FONT-FAMILY: "돋움"; TEXT-DECORATION: none +} +A.int:hover { + FONT-SIZE: 12px; COLOR: #6e4987; FONT-FAMILY: "돋움"; TEXT-DECORATION: underline +} + + +.back1{ + background: url(../img/menu_back3.gif) repeat-x right; +} + + +.back2{ + background: url(../img/find_background3.gif) repeat-y bottom; +} + + +.copyright_back { + + BACKGROUND-COLOR: #f3f3f3; + height:85px; + font-size:11px; + font-family:"돋움", "돋움"; + color:#97908e; +} + + +.hn01{ + font-family: "돋움", "돋움"; + font-size: 12px; + color: #5B5B5B; + text-decoration: none; +} + + +.data { font-family: "돋움", "돋움"; font-size: 11px; color: #976400; text-decoration: none} + +.data1 { font-family: "돋움", "돋움"; font-size: 12px; color: #5eaedc; font-weight: bold; text-decoration: none} + + +.hn_sub { + font-family: "돋움", "돋움"; + font-size: 12px; + color: #890909; + text-decoration: none; + font-weight: normal; +} + +.hn_sub2 { + font-family: "돋움", "돋움"; + font-size: 12px; + color: #894ae0; + text-decoration: none; + font-weight: normal; + font-weight: bold; +} + +.hn_holes { +} + +.notice1 { + font-family: "돋움", "돋움"; + font-size: 11px; + color: #5B5B5B; +} + +.copyright_k { + FONT-SIZE: 11px; COLOR: #818181; LINE-HEIGHT: 18px; FONT-FAMILY: "돋움" +} \ No newline at end of file diff --git a/src/main/webapp/css/jquery-ui.css b/src/main/webapp/css/jquery-ui.css new file mode 100644 index 0000000..d702a83 --- /dev/null +++ b/src/main/webapp/css/jquery-ui.css @@ -0,0 +1,63 @@ + /*html { + scrollbar-3dLight-Color: #fef1ec; + scrollbar-arrow-color: #fef1ec; + scrollbar-base-color: #fef1ec; + scrollbar-Face-Color: #fef1ec; + scrollbar-Track-Color: #fef1ec; + scrollbar-DarkShadow-Color: #fef1ec; + scrollbar-Highlight-Color: #fef1ec; + scrollbar-Shadow-Color: #fef1ec; +}*/ +.ui-accordion .ui-accordion-content { + padding: 0 0 0 0; + overflow: auto; + background-color:#f9f9f9; +} +.popup_3simul { + padding:0px; + overflow: auto; + background-color:#ffffff; + border : 0px solid #dddde1; +} +.list_top{ + border-top:solid 1px #999; +} +.title_size { + font-family : , "Comic Sans MS", Tahoma, Verdana; + font-size:16px; + font-weight:bold; + margin-bottom:2px; +} +.gu_style{ + background-color:#f9f9f9; + color: #000000; + padding:0; + margin:0; +} +.dong_style{ + padding-left: 20px; + padding-top: 0px; + padding-bottom: 5px; + border:1px solid #dddde1; + background-color: #e9e9e9; + list-style:none; +} +.dl_li{ + padding : 0px; + margin :0px auto; + cursor : pointer; +} +.ftitle{ + width:180px; + height:20px; + border-bottom:1px solid #dddde1; + cursor : pointer; +} +.stitle{ + width:168px; + height:20px; + padding-left: 10px; + background-color: #f9f9f9; + border-bottom:1px solid #dddde1; + cursor : pointer; +} diff --git a/src/main/webapp/css/jquery.treeview.css b/src/main/webapp/css/jquery.treeview.css new file mode 100644 index 0000000..582e6d7 --- /dev/null +++ b/src/main/webapp/css/jquery.treeview.css @@ -0,0 +1,74 @@ +.treeview, .treeview ul { + padding: 0; + margin: 0; + list-style: none; +} + +.treeview ul { + background-color: white; + margin-top: 4px; +} + +.treeview .hitarea { + background: url(/images/map/treeview-default.gif) -64px -25px no-repeat; + height: 16px; + width: 16px; + margin-left: -16px; + float: left; + cursor: pointer; +} +/* fix for IE6 */ +* html .hitarea { + display: inline; + float:none; +} + +.treeview li { + margin: 0; + padding: 3px 0pt 3px 16px; +} + +.treeview a.selected { + background-color: #eee; +} + +#treecontrol { margin: 1em 0; display: none; } + +.treeview .hover { color: red; cursor: pointer; } + +.treeview li { background: url(images/map/treeview-default-line.gif) 0 0 no-repeat; } +.treeview li.collapsable, .treeview li.expandable { background-position: 0 -176px; } + +.treeview .expandable-hitarea { background-position: -80px -3px; } + +.treeview li.last { background-position: 0 -1766px } +.treeview li.lastCollapsable, .treeview li.lastExpandable { background-image: url(/images/map/treeview-default.gif); } +.treeview li.lastCollapsable { background-position: 0 -111px } +.treeview li.lastExpandable { background-position: -32px -67px } + +.treeview div.lastCollapsable-hitarea, .treeview div.lastExpandable-hitarea { background-position: 0; } + +.treeview-red li { background-image: url(/images/map/treeview-red-line.gif); } +.treeview-red .hitarea, .treeview-red li.lastCollapsable, .treeview-red li.lastExpandable { background-image: url(/images/map/treeview-red.gif); } + +.treeview-black li { background-image: url(/images/map/treeview-black-line.gif); } +.treeview-black .hitarea, .treeview-black li.lastCollapsable, .treeview-black li.lastExpandable { background-image: url(/images/map/treeview-black.gif); } + +.treeview-gray li { background-image: url(/images/map/treeview-gray-line.gif); } +.treeview-gray .hitarea, .treeview-gray li.lastCollapsable, .treeview-gray li.lastExpandable { background-image: url(/images/map/treeview-gray.gif); } + +.treeview-famfamfam li { background-image: url(/images/map/treeview-famfamfam-line.gif); } +.treeview-famfamfam .hitarea, .treeview-famfamfam li.lastCollapsable, .treeview-famfamfam li.lastExpandable { background-image: url(/images/map/treeview-famfamfam.gif); } + +.treeview .placeholder { + background: url(images/map/ajax-loader.gif) 0 0 no-repeat; + height: 16px; + width: 16px; + display: block; +} + +.filetree li { padding: 3px 0 2px 16px; } +.filetree span.folder, .filetree span.file { padding: 1px 0 1px 16px; display: block; } +.filetree span.folder { background: url(/images/map/folder.gif) 0 0 no-repeat; } +.filetree li.expandable span.folder { background: url(/images/map/folder-closed.gif) 0 0 no-repeat; } +.filetree span.file { background: url(/images/map/file.gif) 0 0 no-repeat; } diff --git a/src/main/webapp/css/metadata.css b/src/main/webapp/css/metadata.css new file mode 100644 index 0000000..cba2fc4 --- /dev/null +++ b/src/main/webapp/css/metadata.css @@ -0,0 +1,40 @@ +body, td {font-family: ",Tahoma"; font-size: 9pt; line-height:18px ; color: #6B6B6B} +img {border:0px} +body +{ + margin-left:0; + margin-top:0; + margin-right:0; + margin-bottom:0; + scrollbar-face-color: #FFFFFF; + scrollbar-shadow-color: #A0A0A0; + scrollbar-highlight-color: #FFFFFF; + scrollbar-3dlight-color: #A0A0A0; + scrollbar-darkshadow-color: #F6F6F6; + scrollbar-track-color: #F6F6F6; + scrollbar-arrow-color: #A0A0A0; +} + +select {font-family: ",Tahoma"; font-size: 9pt; line-height:18px ;} + +/* */ +.list_head { font-size:9pt; font-family: ü; font-weight:bold; line-height:150%; color:#939393; } +.list_content { font-size:9pt; font-family: ü; line-height:150%; color:#939393; padding-left:5px; padding-right:5px; } +.list_contentH { font-size:9pt; font-family: ü; line-height:150%; color:#939393; padding:5px; } +.list_reply { font-size:9pt; font-family: ü; line-height:150%; color:#3F83FF; padding-left:5px; padding-right:5px; } +.list_replyH { font-size:9pt; font-family: ü; line-height:150%; color:#3F83FF; padding:5px; } + +.title { font-size:9pt; font-family: ; font-weight:bold; color:#6b6b6b; } +.name1 { font-size:9pt; font-family: ; color:#595959; padding-left:20px; padding-top:4px; background-color:#F8E7D6;} +.name2 { font-size:9pt; font-family: ; color:#595959; padding-left:35px; padding-top:4px; background-color:#F8E7D6;} +.name3 { font-size:9pt; font-family: ; color:#595959; padding-left:50px; padding-top:4px; background-color:#F8E7D6;} +.name4 { font-size:9pt; font-family: ; color:#595959; padding-left:65px; padding-top:4px; background-color:#F8E7D6;} +.value { font-size:9pt; font-family: ; color:#595959; padding-left:20px; padding-right:20px; padding-top:4px; background-color:#FAEEE4;} + +Img { border:0px; } + + +/* Ϲ ؽƮ ѿ ũ */ +a:link {font-family: ",verdana"; font-size: 9pt; color: #6B6B6B; text-decoration: none; line-height:18px ;} +a:visited {font-family: ",verdana"; font-size: 9pt; color: #6B6B6B; text-decoration: none; line-height:18px ;} +a:hover {font-family: ",verdana"; font-size: 9pt; color: #FF6600; text-decoration: underline; line-height:18px ;} diff --git a/src/main/webapp/css/popups/hn1.css b/src/main/webapp/css/popups/hn1.css new file mode 100644 index 0000000..fa210af --- /dev/null +++ b/src/main/webapp/css/popups/hn1.css @@ -0,0 +1,105 @@ +body { + margin:0px 0px 0px 0px; + font-size:12px; + font-family:dotum; + color:#666666; + background:#ffffff; + line-height:18px; +} + +td { + margin-left: 0px; + margin-top: 0px; + margin-right: 0px; + margin-bottom: 0px; + FONT-FAMILY: ""; + font-size:12px; + color:#5B5B5B; + line-height:18px; +} + +p{margin:0; + padding:0; + } + + +A { + CURSOR: hand +} + +A.int:visited { + FONT-SIZE: 12px; COLOR: #666666; FONT-FAMILY: ""; TEXT-DECORATION: none +} +A.int:link { + FONT-SIZE: 12px; COLOR: #666666; FONT-FAMILY: ""; TEXT-DECORATION: none +} +A.int:hover { + FONT-SIZE: 12px; COLOR: #6e4987; FONT-FAMILY: ""; TEXT-DECORATION: underline +} + + +.back1{ + background: url(../img/menu_back3.gif) repeat-x right; +} + + +.back2{ + background: url(../img/find_background3.gif) repeat-y bottom; +} + + +.copyright_back { + + BACKGROUND-COLOR: #f3f3f3; + height:85px; + font-size:11px; + font-family:"", "ü"; + color:#97908e; +} + + +.hn01{ + font-family: "", "ü"; + font-size: 12px; + color: #5B5B5B; + text-decoration: none; +} + + +.data { font-family: "", "ü"; font-size: 11px; color: #976400; text-decoration: none} + +.data1 { font-family: "", "ü"; font-size: 12px; color: #6289c6; font-weight: bold; text-decoration: none} + + +.hn_sub { + font-family: "", "ü"; + font-size: 12px; + color: #890909; + text-decoration: none; + font-weight: normal; +} + + +.notice1 { + font-family: "", "ü"; + font-size: 11px; + color: #5B5B5B; +} + +.notice11 { + font-family: "", "ü"; + font-size: 12px; + color: #666666; + font-weight: bold; +} + +.notice12 { + font-family: "", "ü"; + font-size: 12px; + color: #ff7200; + font-weight: bold; +} + +.copyright_k { + FONT-SIZE: 11px; COLOR: #ffffff; LINE-HEIGHT: 18px; FONT-FAMILY: "" +} \ No newline at end of file diff --git a/src/main/webapp/css/sichudan.css b/src/main/webapp/css/sichudan.css new file mode 100644 index 0000000..69ea0e5 --- /dev/null +++ b/src/main/webapp/css/sichudan.css @@ -0,0 +1,278 @@ +.textfield-1 { + font-family: ""; + font-size: 11px; + font-style: normal; + font-weight: normal; + color: #333333; + text-decoration: none; + background-color: #FFFFFF; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-style: solid; + border-right-style: solid; + border-bottom-style: solid; + border-left-style: solid; + border-top-color: #c6c7c6; + border-right-color: #c6c7c6; + border-bottom-color: #c6c7c6; + border-left-color: #c6c7c6; +} +.grey-text { + font-family: ""; + font-size: 11px; + font-style: normal; + font-weight: normal; + color: #353535; + text-decoration: none; + line-height: 16px; +} +.orange-text { + font-family: ""; + font-size: 11px; + font-style: normal; + font-weight: bold; + color: #f79338; + text-decoration: none; +} +.popup_title { + + font-family: ""; + font-size: 16px; + font-style: normal; + font-weight: bold; + color: #FFFFFF; + text-decoration: none; +} +.table-title { + font-family: ""; + font-size: 12px; + font-style: normal; + font-weight: bold; + color: #353535; + text-decoration: none; + line-height: 16px; +} +.shift_text { + font-family: ""; + font-size: 9px; + font-style: normal; + font-weight: normal; + color: #353535; + text-decoration: none; + line-height: 11px; + font-variant: normal; +} +.submenu { + + font-family: ""; + font-size: 12px; + font-style: normal; + font-weight: normal; + color: #666666; + text-decoration: none; + line-height: 22px; +} +.grey-text02 { + + font-family: ""; + font-size: 11px; + font-style: normal; + font-weight: normal; + color: #353535; + text-decoration: none; + line-height: 14px; +} +.botton-text { + font-family: ""; + font-size: 12px; + font-style: normal; + font-weight: bold; + color: #FFFFFF; + text-decoration: none; + line-height: 23px; +} +.tab01 { + + font-family: ""; + font-size: 12px; + font-style: normal; + font-weight: normal; + color: #353535; + text-decoration: none; + line-height: 20px; +} +.tab02 { + + + font-family: ""; + font-size: 12px; + font-style: normal; + font-weight: bold; + color: #FF6600; + text-decoration: none; + line-height: 20px; +} +.white-text { + + + font-family: ""; + font-size: 14px; + font-style: normal; + font-weight: bold; + color: #FFFFFF; + text-decoration: none; +} +.error-text { + + font-family: ""; + font-size: 12px; + font-style: normal; + font-weight: bold; + color: #353535; + text-decoration: none; + line-height: 20px; +} +.textfield-2 { + + font-family: ""; + font-size: 12px; + font-style: normal; + font-weight: normal; + color: #333333; + text-decoration: none; + background-color: #FFFFFF; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-style: solid; + border-right-style: solid; + border-bottom-style: solid; + border-left-style: solid; + border-top-color: #c6c7c6; + border-right-color: #c6c7c6; + border-bottom-color: #c6c7c6; + border-left-color: #c6c7c6; +} +.title-text { + + + font-family: ""; + font-size: 16px; + font-style: normal; + font-weight: bold; + color: #2d2c2d; + text-decoration: none; +} +.stroke { + font-family: ""; + font-size: 11px; + font-style: normal; + font-weight: normal; + color: #353535; + text-decoration: none; + line-height: 16px; + border: 1px solid #000000; +} +.yellow-text { + + font-family: ""; + font-size: 12px; + font-style: normal; + font-weight: normal; + color: #fdfa03; + text-decoration: none; +} +.table-title02 { + + font-family: ""; + font-size: 12px; + font-style: normal; + font-weight: bold; + color: #666666; + text-decoration: none; + line-height: 16px; +} +.white-text02 { + + + + font-family: ""; + font-size: 11px; + font-style: normal; + font-weight: normal; + color: #FFFFFF; + text-decoration: none; +} +.textfield-3 { + + font-family: ""; + font-size: 12px; + font-style: normal; + font-weight: normal; + color: #333333; + text-decoration: none; + background-color: #ebebeb ; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-style: solid; + border-right-style: solid; + border-bottom-style: solid; + border-left-style: solid; + border-top-color: #8f8f8f; + border-right-color: #8f8f8f; + border-bottom-color: #8f8f8f; + border-left-color: #8f8f8f; +} +.name-text { + + + + font-family: ""; + font-size: 20px; + font-style: normal; + font-weight: bold; + color: #FF6600; + text-decoration: none; +} +.grey-text03 { + font-family: ""; + font-size: 11px; + font-style: normal; + font-weight: normal; + color: #353535; + text-decoration: none; + line-height: 13px; +} +.oragne-text03 { + font-family: ""; + font-size: 11px; + font-style: normal; + font-weight: normal; + color: #990000; + text-decoration: none; + line-height: 13px; +} +.blue-text03 { + font-family: ""; + font-size: 11px; + font-style: normal; + font-weight: normal; + color: #000066; + text-decoration: none; + line-height: 13px; +} + +.grey-text04 { + + font-family: ""; + font-size: 11px; + font-style: normal; + font-weight: normal; + color: #353535; + text-decoration: none; +} diff --git a/src/main/webapp/css/style.css b/src/main/webapp/css/style.css new file mode 100644 index 0000000..8f1765b --- /dev/null +++ b/src/main/webapp/css/style.css @@ -0,0 +1,42 @@ + +/* ⺻ Ÿ */ +body, td, th {font-family: ",Tahoma"; font-size: 9pt; line-height:18px ; color: #6B6B6B} +img {border:0px} + +/*ũѹ*/ +body +{ + scrollbar-face-color: #FFFFFF; + scrollbar-shadow-color: #A0A0A0; + scrollbar-highlight-color: #FFFFFF; + scrollbar-3dlight-color: #A0A0A0; + scrollbar-darkshadow-color: #F6F6F6; + scrollbar-track-color: #F6F6F6; + scrollbar-arrow-color: #A0A0A0; +} + + + +/* ʵ忡 Ǵ Ÿ Ʈ */ +.form { height:19; background-color:#FFFFFF; color:#666666; font-size:9pt; text-align:left; text-valign: middle;} +.input { font-family: ",verdana"; font-size: 9pt; color: #666666; border:1x solid #A5A5A5; height:19; text-valign:middle;} +select { font-family: ",verdana"; font-size: 9pt; color: #666666;} +.form2 { font-size:9pt; color: #666666; border:1x solid #D0D0D0; text-align:left; line-height:16px ;} + + +/* Ϲ ؽƮ ѿ ũ */ +a:link {font-family: ",verdana"; font-size: 9pt; color: #6B6B6B; text-decoration: none; line-height:18px ;} +a:visited {font-family: ",verdana"; font-size: 9pt; color: #6B6B6B; text-decoration: none; line-height:18px ;} +a:hover {font-family: ",verdana"; font-size: 9pt; color: #FF6600; text-decoration: underline; line-height:18px ;} + + +/* 11 Ʈ*/ +.f11 {font-family: ""; font-size: 11px; color: #6B6B6B;} +.f11 a:link {font-family: ""; font-size: 11px; color: #6B6B6B; text-decoration: none;} +.f11 a:visited {font-family: ""; font-size: 11px; color: #6B6B6B; text-decoration: none;} +.f11 a:hover {font-family: ""; font-size: 11px; color: #FF6600; text-decoration: none;} + +.tab_A { font-size:10pt; font-family: ; font-weight:bold; line-height:150%; color:#FF9600; padding-left:20px; } + +/* ˾ŸƲ */ +.tit{font-family: ",verdana"; font-size: 14px; font-weight:bold; color: #ffffff; text-decoration: none;} diff --git a/src/main/webapp/css/style_2013_12_24.css b/src/main/webapp/css/style_2013_12_24.css new file mode 100644 index 0000000..8f1765b --- /dev/null +++ b/src/main/webapp/css/style_2013_12_24.css @@ -0,0 +1,42 @@ + +/* ⺻ Ÿ */ +body, td, th {font-family: ",Tahoma"; font-size: 9pt; line-height:18px ; color: #6B6B6B} +img {border:0px} + +/*ũѹ*/ +body +{ + scrollbar-face-color: #FFFFFF; + scrollbar-shadow-color: #A0A0A0; + scrollbar-highlight-color: #FFFFFF; + scrollbar-3dlight-color: #A0A0A0; + scrollbar-darkshadow-color: #F6F6F6; + scrollbar-track-color: #F6F6F6; + scrollbar-arrow-color: #A0A0A0; +} + + + +/* ʵ忡 Ǵ Ÿ Ʈ */ +.form { height:19; background-color:#FFFFFF; color:#666666; font-size:9pt; text-align:left; text-valign: middle;} +.input { font-family: ",verdana"; font-size: 9pt; color: #666666; border:1x solid #A5A5A5; height:19; text-valign:middle;} +select { font-family: ",verdana"; font-size: 9pt; color: #666666;} +.form2 { font-size:9pt; color: #666666; border:1x solid #D0D0D0; text-align:left; line-height:16px ;} + + +/* Ϲ ؽƮ ѿ ũ */ +a:link {font-family: ",verdana"; font-size: 9pt; color: #6B6B6B; text-decoration: none; line-height:18px ;} +a:visited {font-family: ",verdana"; font-size: 9pt; color: #6B6B6B; text-decoration: none; line-height:18px ;} +a:hover {font-family: ",verdana"; font-size: 9pt; color: #FF6600; text-decoration: underline; line-height:18px ;} + + +/* 11 Ʈ*/ +.f11 {font-family: ""; font-size: 11px; color: #6B6B6B;} +.f11 a:link {font-family: ""; font-size: 11px; color: #6B6B6B; text-decoration: none;} +.f11 a:visited {font-family: ""; font-size: 11px; color: #6B6B6B; text-decoration: none;} +.f11 a:hover {font-family: ""; font-size: 11px; color: #FF6600; text-decoration: none;} + +.tab_A { font-size:10pt; font-family: ; font-weight:bold; line-height:150%; color:#FF9600; padding-left:20px; } + +/* ˾ŸƲ */ +.tit{font-family: ",verdana"; font-size: 14px; font-weight:bold; color: #ffffff; text-decoration: none;} diff --git a/src/main/webapp/css/supply_style.css b/src/main/webapp/css/supply_style.css new file mode 100644 index 0000000..63a727d --- /dev/null +++ b/src/main/webapp/css/supply_style.css @@ -0,0 +1,33 @@ + +/* */ +.list_head { font-size:9pt; font-family: ü; font-weight:bold; line-height:150%; color:#939393; } +.list_content { font-size:9pt; font-family: ü; line-height:150%; color:#939393; padding-left:5px; padding-right:5px; } +.list_contentH { font-size:9pt; font-family: ü; line-height:150%; color:#939393; padding:5px; } +.list_reply { font-size:9pt; font-family: ü; line-height:150%; color:#3F83FF; padding-left:5px; padding-right:5px; } +.list_replyH { font-size:9pt; font-family: ü; line-height:150%; color:#3F83FF; padding:5px; } + +/* FAQ */ +.faq_question { font-size:9pt; line-height:150%; color:#FD6464; font-weight:bold; padding:5px;} +.faq_answer { font-size:9pt; line-height:150%; color:#3F83FF; padding:5px;} + +/* */ +Select { font-size:9pt;} +Input { font-size:9pt; } +TextArea { font-size:9pt; } + +.login { font-size:9pt;} +.familysite { font-size:9pt; } +.noborder { border:0px; } + +/* ׺̼ */ +.page_navigation { font-size:9pt; font-family: ü; line-height:150%; color:#555555; } + +/* ̺ */ +.padding { padding-left:10px; padding-right:5px; padding-top:5px; padding-bottom:5px;} +.paddingLR { padding-left:5px; padding-right:5px;} + +/* Ϲ */ +a:link {font-family: "ü"; font-size: 9pt; color: #939393; text-decoration: none; line-height:150%;} +a:visited {font-family: "ü"; font-size: 9pt; color: #939393; text-decoration: none; line-height:150%;} +a:hover {font-family: "ü"; font-size: 9pt; color: #FF8000; text-decoration: underline; line-height:150%; } + diff --git a/src/main/webapp/css/text.css b/src/main/webapp/css/text.css new file mode 100644 index 0000000..3e13463 --- /dev/null +++ b/src/main/webapp/css/text.css @@ -0,0 +1,77 @@ +body { + scrollbar-face-color: #FFFFFF; + scrollbar-shadow-color: #A0A0A0; + scrollbar-highlight-color: #FFFFFF; + scrollbar-3dlight-color: #A0A0A0; + scrollbar-darkshadow-color: #F6F6F6; + scrollbar-track-color: #F6F6F6; + scrollbar-arrow-color: #A0A0A0; + oncontextmenu:return false; + ondragstart:return false; + onselectstart:return false; +} +td {font-family: "돋움"; font-size: 9pt; line-height:18px ; color: #666666} + +.t1 {font-family:"돋움"; font-size:9pt; color:#000000; line-height:18px} +.t2 {font-family:"돋움"; font-size:9pt; color:#003399; line-height:18px} +.t3 {font-family:"돋움"; font-size:9pt; color:#FF8000; line-height:18px} +.t4 {font-family:"돋움"; font-size:9pt; color:#CF2C16; line-height:18px} +.t5 { + font-family:"돋움"; + font-size:9pt; + color::#003399; + line-height:18px; + padding-left: 10px; + padding-top: 3px; + padding-right: 5px; + padding-bottom: 3px; +} + +.faq {font-family:"돋움"; font-size:9pt; color:#FF8000; line-height:18px; font-weight:bold;} + +.b {font-family:"돋움"; font-size:9pt; color:#BF8615;font-weight:bold;} +.bb {font-family:"돋움"; font-size:9pt; color:#499CBB;font-weight:bold;} + +.padding { padding: 1px;} +.padding3 { padding: 3px;} +.pd-L10 { + padding-left: 10px; + color: #000000; +} +table.border {BORDER-COLLAPSE: collapse} + +/* 돋움�� �׺���̼� */ +.navi_cur {font-family: "돋움"; font-size: 9pt; color: #3F3F3F; line-height:150%; font-weight:bold} +a.navi:link {font-family: "돋움"; font-size: 9pt; color: #3F3F3F; text-decoration: none; line-height:150%;} +a.navi:visited {font-family: "돋움"; font-size: 9pt; color: #3F3F3F; text-decoration: none; line-height:150%;} +a.navi:hover {font-family: "돋움"; font-size: 9pt; color: #3F3F3F; text-decoration: underline; line-height:150%; } + +/* ��Ÿ�� ��Ʈ */ +.form {border: 1px #999999 solid; height:21; background-color:#FFFFFF; color:#666666; font-size:9pt; text-align:left; text-valign: middle; text-indent: 2pt;} +.login {border: 1px #BCBCBC solid; height:21; background-color:#FFFFFF; color:#666666;middle; font-size:9pt; text-align:left; text-valign: middle; text-indent: 2pt;} + +input { font-size:9pt; } +.input { font-size:9pt; border:1x solid #C8D0D5; text-align: left; color: #333333;} +.input1 { font-size:9pt; border:1x solid #8C8C8C; } +.input2 { font-size:9pt; border:1x solid #D1DEDE; text-align: justify; padding-right: 3px; background-color: #F4F7F7; height: 17px; padding-left: 3px;} +.input3 { font-size:9pt; border:1x solid #8C8C8C; text-align: center; padding-top: 2px; } + + +/* �Ϲ돋움� �ؽ�Ʈ ��ũ */ +a:link {font-family: "돋움"; font-size: 9pt; color: #666666; text-decoration: none; line-height:18px ;} +a:visited {font-family: "돋움"; font-size: 9pt; color: #666666; text-decoration: none; line-height:18px ;} +a:hover {font-family: "돋움"; font-size: 9pt; color: #FF8000; text-decoration: underline; line-height:18px ;} + + +/* 돋움돋움 / �Խ��� */ +a.notice:link {font-family: "돋움"; font-size: 9pt; color: #666666; text-decoration: none; line-height:18px ;} +a.notice:visited {font-family: "돋움"; font-size: 9pt; color: #666666; text-decoration: none; line-height:18px ;} +a.notice:hover {font-family: "돋움"; font-size: 9pt; color: #000099; text-decoration: underline; line-height:18px ;} + +a.link1:link {font-family: "돋움"; font-size: 9pt; color: #000000; text-decoration: none; line-height:18px ;} +a.link1:visited {font-family: "돋움"; font-size: 9pt; color: #000000; text-decoration: none; line-height:18px ;} +a.link1:hover {font-family: "돋움"; font-size: 9pt; color: #000099; text-decoration: underline; line-height:18px ;} + +a.link2:link {font-family: "돋움"; font-size: 9pt; color: #000000; text-decoration: none; line-height:18px ;} +a.link2:visited {font-family: "돋움"; font-size: 9pt; color: #000000; text-decoration: none; line-height:18px ;} +a.link2:hover {font-family: "돋움"; font-size: 9pt; color: #990000; text-decoration: underline; line-height:18px ;} diff --git a/src/main/webapp/files/2021_0_27_11_35_3.PNG b/src/main/webapp/files/2021_0_27_11_35_3.PNG new file mode 100644 index 0000000..dad69e5 Binary files /dev/null and b/src/main/webapp/files/2021_0_27_11_35_3.PNG differ diff --git a/src/main/webapp/files/web/pwIni/2022_9_25_2_22_17.PNG b/src/main/webapp/files/web/pwIni/2022_9_25_2_22_17.PNG new file mode 100644 index 0000000..dad69e5 Binary files /dev/null and b/src/main/webapp/files/web/pwIni/2022_9_25_2_22_17.PNG differ diff --git a/src/main/webapp/fonts/NanumGothic-Bold.eot b/src/main/webapp/fonts/NanumGothic-Bold.eot new file mode 100644 index 0000000..3cc7cf7 Binary files /dev/null and b/src/main/webapp/fonts/NanumGothic-Bold.eot differ diff --git a/src/main/webapp/fonts/NanumGothic-Bold.ttf b/src/main/webapp/fonts/NanumGothic-Bold.ttf new file mode 100644 index 0000000..c24b0e7 Binary files /dev/null and b/src/main/webapp/fonts/NanumGothic-Bold.ttf differ diff --git a/src/main/webapp/fonts/NanumGothic-Bold.woff b/src/main/webapp/fonts/NanumGothic-Bold.woff new file mode 100644 index 0000000..2dde3b8 Binary files /dev/null and b/src/main/webapp/fonts/NanumGothic-Bold.woff differ diff --git a/src/main/webapp/fonts/NanumGothic-Bold.woff2 b/src/main/webapp/fonts/NanumGothic-Bold.woff2 new file mode 100644 index 0000000..3a8ba51 Binary files /dev/null and b/src/main/webapp/fonts/NanumGothic-Bold.woff2 differ diff --git a/src/main/webapp/fonts/NanumGothic-ExtraBold.eot b/src/main/webapp/fonts/NanumGothic-ExtraBold.eot new file mode 100644 index 0000000..1e4a173 Binary files /dev/null and b/src/main/webapp/fonts/NanumGothic-ExtraBold.eot differ diff --git a/src/main/webapp/fonts/NanumGothic-ExtraBold.ttf b/src/main/webapp/fonts/NanumGothic-ExtraBold.ttf new file mode 100644 index 0000000..c85adc7 Binary files /dev/null and b/src/main/webapp/fonts/NanumGothic-ExtraBold.ttf differ diff --git a/src/main/webapp/fonts/NanumGothic-ExtraBold.woff b/src/main/webapp/fonts/NanumGothic-ExtraBold.woff new file mode 100644 index 0000000..72994aa Binary files /dev/null and b/src/main/webapp/fonts/NanumGothic-ExtraBold.woff differ diff --git a/src/main/webapp/fonts/NanumGothic-ExtraBold.woff2 b/src/main/webapp/fonts/NanumGothic-ExtraBold.woff2 new file mode 100644 index 0000000..ab15e47 Binary files /dev/null and b/src/main/webapp/fonts/NanumGothic-ExtraBold.woff2 differ diff --git a/src/main/webapp/fonts/NanumGothic-Regular.eot b/src/main/webapp/fonts/NanumGothic-Regular.eot new file mode 100644 index 0000000..7494146 Binary files /dev/null and b/src/main/webapp/fonts/NanumGothic-Regular.eot differ diff --git a/src/main/webapp/fonts/NanumGothic-Regular.ttf b/src/main/webapp/fonts/NanumGothic-Regular.ttf new file mode 100644 index 0000000..c14ce88 Binary files /dev/null and b/src/main/webapp/fonts/NanumGothic-Regular.ttf differ diff --git a/src/main/webapp/fonts/NanumGothic-Regular.woff b/src/main/webapp/fonts/NanumGothic-Regular.woff new file mode 100644 index 0000000..eebb7bc Binary files /dev/null and b/src/main/webapp/fonts/NanumGothic-Regular.woff differ diff --git a/src/main/webapp/fonts/NanumGothic-Regular.woff2 b/src/main/webapp/fonts/NanumGothic-Regular.woff2 new file mode 100644 index 0000000..4499032 Binary files /dev/null and b/src/main/webapp/fonts/NanumGothic-Regular.woff2 differ diff --git a/src/main/webapp/images/2020_4_26_9_39_71.jpg b/src/main/webapp/images/2020_4_26_9_39_71.jpg new file mode 100644 index 0000000..ef71efc Binary files /dev/null and b/src/main/webapp/images/2020_4_26_9_39_71.jpg differ diff --git a/src/main/webapp/images/3d_icon.png b/src/main/webapp/images/3d_icon.png new file mode 100644 index 0000000..a72e8bd Binary files /dev/null and b/src/main/webapp/images/3d_icon.png differ diff --git a/src/main/webapp/images/H.gif b/src/main/webapp/images/H.gif new file mode 100644 index 0000000..de56447 Binary files /dev/null and b/src/main/webapp/images/H.gif differ diff --git a/src/main/webapp/images/JidoImage.PNG b/src/main/webapp/images/JidoImage.PNG new file mode 100644 index 0000000..a699cad Binary files /dev/null and b/src/main/webapp/images/JidoImage.PNG differ diff --git a/src/main/webapp/images/_m_top_01.gif b/src/main/webapp/images/_m_top_01.gif new file mode 100644 index 0000000..bc929cb Binary files /dev/null and b/src/main/webapp/images/_m_top_01.gif differ diff --git a/src/main/webapp/images/aboutus/ab_01.gif b/src/main/webapp/images/aboutus/ab_01.gif new file mode 100644 index 0000000..778845c Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_01.gif differ diff --git a/src/main/webapp/images/aboutus/ab_02.gif b/src/main/webapp/images/aboutus/ab_02.gif new file mode 100644 index 0000000..97e0dc5 Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_02.gif differ diff --git a/src/main/webapp/images/aboutus/ab_03.gif b/src/main/webapp/images/aboutus/ab_03.gif new file mode 100644 index 0000000..6e31cc8 Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_03.gif differ diff --git a/src/main/webapp/images/aboutus/ab_co_tit_01.gif b/src/main/webapp/images/aboutus/ab_co_tit_01.gif new file mode 100644 index 0000000..6a64665 Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_co_tit_01.gif differ diff --git a/src/main/webapp/images/aboutus/ab_co_tit_02.gif b/src/main/webapp/images/aboutus/ab_co_tit_02.gif new file mode 100644 index 0000000..b17f92c Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_co_tit_02.gif differ diff --git a/src/main/webapp/images/aboutus/ab_co_tit_03.gif b/src/main/webapp/images/aboutus/ab_co_tit_03.gif new file mode 100644 index 0000000..755425a Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_co_tit_03.gif differ diff --git a/src/main/webapp/images/aboutus/ab_co_tit_04.gif b/src/main/webapp/images/aboutus/ab_co_tit_04.gif new file mode 100644 index 0000000..9d9b070 Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_co_tit_04.gif differ diff --git a/src/main/webapp/images/aboutus/ab_co_tit_05.gif b/src/main/webapp/images/aboutus/ab_co_tit_05.gif new file mode 100644 index 0000000..ec451cd Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_co_tit_05.gif differ diff --git a/src/main/webapp/images/aboutus/ab_co_tit_06.gif b/src/main/webapp/images/aboutus/ab_co_tit_06.gif new file mode 100644 index 0000000..828a045 Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_co_tit_06.gif differ diff --git a/src/main/webapp/images/aboutus/ab_img_01.gif b/src/main/webapp/images/aboutus/ab_img_01.gif new file mode 100644 index 0000000..8046ad2 Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_img_01.gif differ diff --git a/src/main/webapp/images/aboutus/ab_menu_01.gif b/src/main/webapp/images/aboutus/ab_menu_01.gif new file mode 100644 index 0000000..0d249fe Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_menu_01.gif differ diff --git a/src/main/webapp/images/aboutus/ab_menu_01_over.gif b/src/main/webapp/images/aboutus/ab_menu_01_over.gif new file mode 100644 index 0000000..a016daf Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_menu_01_over.gif differ diff --git a/src/main/webapp/images/aboutus/ab_menu_02.gif b/src/main/webapp/images/aboutus/ab_menu_02.gif new file mode 100644 index 0000000..e8fa2c5 Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_menu_02.gif differ diff --git a/src/main/webapp/images/aboutus/ab_menu_02_over.gif b/src/main/webapp/images/aboutus/ab_menu_02_over.gif new file mode 100644 index 0000000..d2d8fc8 Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_menu_02_over.gif differ diff --git a/src/main/webapp/images/aboutus/ab_menu_03.gif b/src/main/webapp/images/aboutus/ab_menu_03.gif new file mode 100644 index 0000000..29c0dff Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_menu_03.gif differ diff --git a/src/main/webapp/images/aboutus/ab_menu_03_over.gif b/src/main/webapp/images/aboutus/ab_menu_03_over.gif new file mode 100644 index 0000000..2808425 Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_menu_03_over.gif differ diff --git a/src/main/webapp/images/aboutus/ab_menu_04.gif b/src/main/webapp/images/aboutus/ab_menu_04.gif new file mode 100644 index 0000000..6cdc35d Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_menu_04.gif differ diff --git a/src/main/webapp/images/aboutus/ab_menu_04_over.gif b/src/main/webapp/images/aboutus/ab_menu_04_over.gif new file mode 100644 index 0000000..97904ab Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_menu_04_over.gif differ diff --git a/src/main/webapp/images/aboutus/ab_so_tit_01.gif b/src/main/webapp/images/aboutus/ab_so_tit_01.gif new file mode 100644 index 0000000..9c85bae Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_so_tit_01.gif differ diff --git a/src/main/webapp/images/aboutus/ab_so_tit_02.gif b/src/main/webapp/images/aboutus/ab_so_tit_02.gif new file mode 100644 index 0000000..49d5530 Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_so_tit_02.gif differ diff --git a/src/main/webapp/images/aboutus/ab_so_tit_03.gif b/src/main/webapp/images/aboutus/ab_so_tit_03.gif new file mode 100644 index 0000000..883343c Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_so_tit_03.gif differ diff --git a/src/main/webapp/images/aboutus/ab_sub_img.jpg b/src/main/webapp/images/aboutus/ab_sub_img.jpg new file mode 100644 index 0000000..c7058ed Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_sub_img.jpg differ diff --git a/src/main/webapp/images/aboutus/ab_title_01.gif b/src/main/webapp/images/aboutus/ab_title_01.gif new file mode 100644 index 0000000..2014ba7 Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_title_01.gif differ diff --git a/src/main/webapp/images/aboutus/ab_title_02.gif b/src/main/webapp/images/aboutus/ab_title_02.gif new file mode 100644 index 0000000..5d1c355 Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_title_02.gif differ diff --git a/src/main/webapp/images/aboutus/ab_title_03.gif b/src/main/webapp/images/aboutus/ab_title_03.gif new file mode 100644 index 0000000..f696030 Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_title_03.gif differ diff --git a/src/main/webapp/images/aboutus/ab_title_04.gif b/src/main/webapp/images/aboutus/ab_title_04.gif new file mode 100644 index 0000000..839310a Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_title_04.gif differ diff --git a/src/main/webapp/images/aboutus/ab_title_05.gif b/src/main/webapp/images/aboutus/ab_title_05.gif new file mode 100644 index 0000000..3eab2dc Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_title_05.gif differ diff --git a/src/main/webapp/images/aboutus/ab_top_img.jpg b/src/main/webapp/images/aboutus/ab_top_img.jpg new file mode 100644 index 0000000..37aa369 Binary files /dev/null and b/src/main/webapp/images/aboutus/ab_top_img.jpg differ diff --git a/src/main/webapp/images/aboutus/abhi_img_01.gif b/src/main/webapp/images/aboutus/abhi_img_01.gif new file mode 100644 index 0000000..21ef154 Binary files /dev/null and b/src/main/webapp/images/aboutus/abhi_img_01.gif differ diff --git a/src/main/webapp/images/aboutus/sub_back_ab.gif b/src/main/webapp/images/aboutus/sub_back_ab.gif new file mode 100644 index 0000000..236f5e4 Binary files /dev/null and b/src/main/webapp/images/aboutus/sub_back_ab.gif differ diff --git a/src/main/webapp/images/account/back_rt.gif b/src/main/webapp/images/account/back_rt.gif new file mode 100644 index 0000000..00d9be4 Binary files /dev/null and b/src/main/webapp/images/account/back_rt.gif differ diff --git a/src/main/webapp/images/account/btn_enter.gif b/src/main/webapp/images/account/btn_enter.gif new file mode 100644 index 0000000..a6ccf90 Binary files /dev/null and b/src/main/webapp/images/account/btn_enter.gif differ diff --git a/src/main/webapp/images/account/btn_id.gif b/src/main/webapp/images/account/btn_id.gif new file mode 100644 index 0000000..a27b15c Binary files /dev/null and b/src/main/webapp/images/account/btn_id.gif differ diff --git a/src/main/webapp/images/account/btn_pass.gif b/src/main/webapp/images/account/btn_pass.gif new file mode 100644 index 0000000..2fb33da Binary files /dev/null and b/src/main/webapp/images/account/btn_pass.gif differ diff --git a/src/main/webapp/images/account/end_back.gif b/src/main/webapp/images/account/end_back.gif new file mode 100644 index 0000000..df1b5cb Binary files /dev/null and b/src/main/webapp/images/account/end_back.gif differ diff --git a/src/main/webapp/images/account/id_back.gif b/src/main/webapp/images/account/id_back.gif new file mode 100644 index 0000000..c1e2a78 Binary files /dev/null and b/src/main/webapp/images/account/id_back.gif differ diff --git a/src/main/webapp/images/account/id_top.gif b/src/main/webapp/images/account/id_top.gif new file mode 100644 index 0000000..c35417c Binary files /dev/null and b/src/main/webapp/images/account/id_top.gif differ diff --git a/src/main/webapp/images/account/idend_back.gif b/src/main/webapp/images/account/idend_back.gif new file mode 100644 index 0000000..bfeef4b Binary files /dev/null and b/src/main/webapp/images/account/idend_back.gif differ diff --git a/src/main/webapp/images/account/idend_top.gif b/src/main/webapp/images/account/idend_top.gif new file mode 100644 index 0000000..16be49f Binary files /dev/null and b/src/main/webapp/images/account/idend_top.gif differ diff --git a/src/main/webapp/images/account/idt_back.gif b/src/main/webapp/images/account/idt_back.gif new file mode 100644 index 0000000..52077c5 Binary files /dev/null and b/src/main/webapp/images/account/idt_back.gif differ diff --git a/src/main/webapp/images/account/ok.gif b/src/main/webapp/images/account/ok.gif new file mode 100644 index 0000000..edc57e7 Binary files /dev/null and b/src/main/webapp/images/account/ok.gif differ diff --git a/src/main/webapp/images/account/pass_back.gif b/src/main/webapp/images/account/pass_back.gif new file mode 100644 index 0000000..05cba9b Binary files /dev/null and b/src/main/webapp/images/account/pass_back.gif differ diff --git a/src/main/webapp/images/account/pass_top.gif b/src/main/webapp/images/account/pass_top.gif new file mode 100644 index 0000000..65a08c8 Binary files /dev/null and b/src/main/webapp/images/account/pass_top.gif differ diff --git a/src/main/webapp/images/account/passend_back.gif b/src/main/webapp/images/account/passend_back.gif new file mode 100644 index 0000000..f5efe2e Binary files /dev/null and b/src/main/webapp/images/account/passend_back.gif differ diff --git a/src/main/webapp/images/account/passend_top.gif b/src/main/webapp/images/account/passend_top.gif new file mode 100644 index 0000000..21eefba Binary files /dev/null and b/src/main/webapp/images/account/passend_top.gif differ diff --git a/src/main/webapp/images/account/passt_back.gif b/src/main/webapp/images/account/passt_back.gif new file mode 100644 index 0000000..7a32263 Binary files /dev/null and b/src/main/webapp/images/account/passt_back.gif differ diff --git a/src/main/webapp/images/account/spacer.gif b/src/main/webapp/images/account/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/src/main/webapp/images/account/spacer.gif differ diff --git a/src/main/webapp/images/add_btn_01.gif b/src/main/webapp/images/add_btn_01.gif new file mode 100644 index 0000000..ae0cb59 Binary files /dev/null and b/src/main/webapp/images/add_btn_01.gif differ diff --git a/src/main/webapp/images/add_top_01.gif b/src/main/webapp/images/add_top_01.gif new file mode 100644 index 0000000..7834a48 Binary files /dev/null and b/src/main/webapp/images/add_top_01.gif differ diff --git a/src/main/webapp/images/add_top_02.gif b/src/main/webapp/images/add_top_02.gif new file mode 100644 index 0000000..2312a9e Binary files /dev/null and b/src/main/webapp/images/add_top_02.gif differ diff --git a/src/main/webapp/images/admins/2_toptit_09.gif b/src/main/webapp/images/admins/2_toptit_09.gif new file mode 100644 index 0000000..2543105 Binary files /dev/null and b/src/main/webapp/images/admins/2_toptit_09.gif differ diff --git a/src/main/webapp/images/admins/blt_re.gif b/src/main/webapp/images/admins/blt_re.gif new file mode 100644 index 0000000..48a55c1 Binary files /dev/null and b/src/main/webapp/images/admins/blt_re.gif differ diff --git a/src/main/webapp/images/admins/board/2_left_01.gif b/src/main/webapp/images/admins/board/2_left_01.gif new file mode 100644 index 0000000..3721efe Binary files /dev/null and b/src/main/webapp/images/admins/board/2_left_01.gif differ diff --git a/src/main/webapp/images/admins/board/2_left_01_over.gif b/src/main/webapp/images/admins/board/2_left_01_over.gif new file mode 100644 index 0000000..ceda076 Binary files /dev/null and b/src/main/webapp/images/admins/board/2_left_01_over.gif differ diff --git a/src/main/webapp/images/admins/board/2_toptit_05.gif b/src/main/webapp/images/admins/board/2_toptit_05.gif new file mode 100644 index 0000000..4dd3e9b Binary files /dev/null and b/src/main/webapp/images/admins/board/2_toptit_05.gif differ diff --git a/src/main/webapp/images/admins/board/5_left_01.gif b/src/main/webapp/images/admins/board/5_left_01.gif new file mode 100644 index 0000000..d4fb622 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_01.gif differ diff --git a/src/main/webapp/images/admins/board/5_left_01_over.gif b/src/main/webapp/images/admins/board/5_left_01_over.gif new file mode 100644 index 0000000..1d5f209 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_01_over.gif differ diff --git a/src/main/webapp/images/admins/board/5_left_02.gif b/src/main/webapp/images/admins/board/5_left_02.gif new file mode 100644 index 0000000..e6caf5d Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_02.gif differ diff --git a/src/main/webapp/images/admins/board/5_left_02_over.gif b/src/main/webapp/images/admins/board/5_left_02_over.gif new file mode 100644 index 0000000..a9b9a17 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_02_over.gif differ diff --git a/src/main/webapp/images/admins/board/5_left_03.gif b/src/main/webapp/images/admins/board/5_left_03.gif new file mode 100644 index 0000000..808a5bd Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_03.gif differ diff --git a/src/main/webapp/images/admins/board/5_left_03.jpg b/src/main/webapp/images/admins/board/5_left_03.jpg new file mode 100644 index 0000000..decc2f1 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_03.jpg differ diff --git a/src/main/webapp/images/admins/board/5_left_03_over.gif b/src/main/webapp/images/admins/board/5_left_03_over.gif new file mode 100644 index 0000000..a8dbeae Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_03_over.gif differ diff --git a/src/main/webapp/images/admins/board/5_left_03_over.jpg b/src/main/webapp/images/admins/board/5_left_03_over.jpg new file mode 100644 index 0000000..133e0b8 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_03_over.jpg differ diff --git a/src/main/webapp/images/admins/board/5_left_04.gif b/src/main/webapp/images/admins/board/5_left_04.gif new file mode 100644 index 0000000..a395cc5 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_04.gif differ diff --git a/src/main/webapp/images/admins/board/5_left_04_over.gif b/src/main/webapp/images/admins/board/5_left_04_over.gif new file mode 100644 index 0000000..e9ca094 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_04_over.gif differ diff --git a/src/main/webapp/images/admins/board/5_left_05.gif b/src/main/webapp/images/admins/board/5_left_05.gif new file mode 100644 index 0000000..8e11fe0 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_05.gif differ diff --git a/src/main/webapp/images/admins/board/5_left_05.jpg b/src/main/webapp/images/admins/board/5_left_05.jpg new file mode 100644 index 0000000..b8d6a17 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_05.jpg differ diff --git a/src/main/webapp/images/admins/board/5_left_05_over.gif b/src/main/webapp/images/admins/board/5_left_05_over.gif new file mode 100644 index 0000000..b5958f6 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_05_over.gif differ diff --git a/src/main/webapp/images/admins/board/5_left_05_over.jpg b/src/main/webapp/images/admins/board/5_left_05_over.jpg new file mode 100644 index 0000000..1476e40 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_05_over.jpg differ diff --git a/src/main/webapp/images/admins/board/5_left_06.gif b/src/main/webapp/images/admins/board/5_left_06.gif new file mode 100644 index 0000000..7419e2a Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_06.gif differ diff --git a/src/main/webapp/images/admins/board/5_left_06_over.gif b/src/main/webapp/images/admins/board/5_left_06_over.gif new file mode 100644 index 0000000..1cfe8e2 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_06_over.gif differ diff --git a/src/main/webapp/images/admins/board/5_left_13.gif b/src/main/webapp/images/admins/board/5_left_13.gif new file mode 100644 index 0000000..7189d79 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_13.gif differ diff --git a/src/main/webapp/images/admins/board/5_left_13_over.gif b/src/main/webapp/images/admins/board/5_left_13_over.gif new file mode 100644 index 0000000..d9d2e17 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_left_13_over.gif differ diff --git a/src/main/webapp/images/admins/board/5_tit_01.gif b/src/main/webapp/images/admins/board/5_tit_01.gif new file mode 100644 index 0000000..dd1defa Binary files /dev/null and b/src/main/webapp/images/admins/board/5_tit_01.gif differ diff --git a/src/main/webapp/images/admins/board/5_toptit_01.gif b/src/main/webapp/images/admins/board/5_toptit_01.gif new file mode 100644 index 0000000..1e854a6 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_toptit_01.gif differ diff --git a/src/main/webapp/images/admins/board/5_toptit_02.gif b/src/main/webapp/images/admins/board/5_toptit_02.gif new file mode 100644 index 0000000..d621850 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_toptit_02.gif differ diff --git a/src/main/webapp/images/admins/board/5_toptit_03.gif b/src/main/webapp/images/admins/board/5_toptit_03.gif new file mode 100644 index 0000000..aef4144 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_toptit_03.gif differ diff --git a/src/main/webapp/images/admins/board/5_toptit_04.gif b/src/main/webapp/images/admins/board/5_toptit_04.gif new file mode 100644 index 0000000..cc5f3e6 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_toptit_04.gif differ diff --git a/src/main/webapp/images/admins/board/5_toptit_05.gif b/src/main/webapp/images/admins/board/5_toptit_05.gif new file mode 100644 index 0000000..127e140 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_toptit_05.gif differ diff --git a/src/main/webapp/images/admins/board/5_toptit_13.gif b/src/main/webapp/images/admins/board/5_toptit_13.gif new file mode 100644 index 0000000..0216a19 Binary files /dev/null and b/src/main/webapp/images/admins/board/5_toptit_13.gif differ diff --git a/src/main/webapp/images/admins/bt_close.gif b/src/main/webapp/images/admins/bt_close.gif new file mode 100644 index 0000000..fa98371 Binary files /dev/null and b/src/main/webapp/images/admins/bt_close.gif differ diff --git a/src/main/webapp/images/admins/btn_1.gif b/src/main/webapp/images/admins/btn_1.gif new file mode 100644 index 0000000..53c9639 Binary files /dev/null and b/src/main/webapp/images/admins/btn_1.gif differ diff --git a/src/main/webapp/images/admins/btn_1.png b/src/main/webapp/images/admins/btn_1.png new file mode 100644 index 0000000..108b63f Binary files /dev/null and b/src/main/webapp/images/admins/btn_1.png differ diff --git a/src/main/webapp/images/admins/btn_10.gif b/src/main/webapp/images/admins/btn_10.gif new file mode 100644 index 0000000..d8087e8 Binary files /dev/null and b/src/main/webapp/images/admins/btn_10.gif differ diff --git a/src/main/webapp/images/admins/btn_2.gif b/src/main/webapp/images/admins/btn_2.gif new file mode 100644 index 0000000..85f1e33 Binary files /dev/null and b/src/main/webapp/images/admins/btn_2.gif differ diff --git a/src/main/webapp/images/admins/btn_2.png b/src/main/webapp/images/admins/btn_2.png new file mode 100644 index 0000000..6f8da70 Binary files /dev/null and b/src/main/webapp/images/admins/btn_2.png differ diff --git a/src/main/webapp/images/admins/btn_20.gif b/src/main/webapp/images/admins/btn_20.gif new file mode 100644 index 0000000..353dcc0 Binary files /dev/null and b/src/main/webapp/images/admins/btn_20.gif differ diff --git a/src/main/webapp/images/admins/btn_add.gif b/src/main/webapp/images/admins/btn_add.gif new file mode 100644 index 0000000..bda97a0 Binary files /dev/null and b/src/main/webapp/images/admins/btn_add.gif differ diff --git a/src/main/webapp/images/admins/btn_pass_ini.gif b/src/main/webapp/images/admins/btn_pass_ini.gif new file mode 100644 index 0000000..9239f5b Binary files /dev/null and b/src/main/webapp/images/admins/btn_pass_ini.gif differ diff --git a/src/main/webapp/images/admins/btn_return.gif b/src/main/webapp/images/admins/btn_return.gif new file mode 100644 index 0000000..491d582 Binary files /dev/null and b/src/main/webapp/images/admins/btn_return.gif differ diff --git a/src/main/webapp/images/admins/btn_search.gif b/src/main/webapp/images/admins/btn_search.gif new file mode 100644 index 0000000..9877230 Binary files /dev/null and b/src/main/webapp/images/admins/btn_search.gif differ diff --git a/src/main/webapp/images/admins/bul_b.gif b/src/main/webapp/images/admins/bul_b.gif new file mode 100644 index 0000000..82611f2 Binary files /dev/null and b/src/main/webapp/images/admins/bul_b.gif differ diff --git a/src/main/webapp/images/admins/bullet03.png b/src/main/webapp/images/admins/bullet03.png new file mode 100644 index 0000000..eaddcef Binary files /dev/null and b/src/main/webapp/images/admins/bullet03.png differ diff --git a/src/main/webapp/images/admins/chLog/3_left_01.gif b/src/main/webapp/images/admins/chLog/3_left_01.gif new file mode 100644 index 0000000..e361075 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_01.gif differ diff --git a/src/main/webapp/images/admins/chLog/3_left_01_over.gif b/src/main/webapp/images/admins/chLog/3_left_01_over.gif new file mode 100644 index 0000000..27db5a8 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_01_over.gif differ diff --git a/src/main/webapp/images/admins/chLog/3_left_02.gif b/src/main/webapp/images/admins/chLog/3_left_02.gif new file mode 100644 index 0000000..71ac6c2 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_02.gif differ diff --git a/src/main/webapp/images/admins/chLog/3_left_02_over.gif b/src/main/webapp/images/admins/chLog/3_left_02_over.gif new file mode 100644 index 0000000..1ff0724 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_02_over.gif differ diff --git a/src/main/webapp/images/admins/chLog/3_left_03.gif b/src/main/webapp/images/admins/chLog/3_left_03.gif new file mode 100644 index 0000000..779105b Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_03.gif differ diff --git a/src/main/webapp/images/admins/chLog/3_left_03_over.gif b/src/main/webapp/images/admins/chLog/3_left_03_over.gif new file mode 100644 index 0000000..894b3c7 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_03_over.gif differ diff --git a/src/main/webapp/images/admins/chLog/3_left_04.gif b/src/main/webapp/images/admins/chLog/3_left_04.gif new file mode 100644 index 0000000..f455525 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_04.gif differ diff --git a/src/main/webapp/images/admins/chLog/3_left_04_over.gif b/src/main/webapp/images/admins/chLog/3_left_04_over.gif new file mode 100644 index 0000000..c381d26 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_04_over.gif differ diff --git a/src/main/webapp/images/admins/chLog/3_left_05.gif b/src/main/webapp/images/admins/chLog/3_left_05.gif new file mode 100644 index 0000000..d905199 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_05.gif differ diff --git a/src/main/webapp/images/admins/chLog/3_left_05_over.gif b/src/main/webapp/images/admins/chLog/3_left_05_over.gif new file mode 100644 index 0000000..eeed276 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_05_over.gif differ diff --git a/src/main/webapp/images/admins/chLog/3_left_06.png b/src/main/webapp/images/admins/chLog/3_left_06.png new file mode 100644 index 0000000..7b1f641 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_06.png differ diff --git a/src/main/webapp/images/admins/chLog/3_left_06_over.png b/src/main/webapp/images/admins/chLog/3_left_06_over.png new file mode 100644 index 0000000..c3340e5 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_06_over.png differ diff --git a/src/main/webapp/images/admins/chLog/3_left_07.png b/src/main/webapp/images/admins/chLog/3_left_07.png new file mode 100644 index 0000000..8d85b76 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_07.png differ diff --git a/src/main/webapp/images/admins/chLog/3_left_07_over.png b/src/main/webapp/images/admins/chLog/3_left_07_over.png new file mode 100644 index 0000000..853a29e Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_07_over.png differ diff --git a/src/main/webapp/images/admins/chLog/3_left_08.png b/src/main/webapp/images/admins/chLog/3_left_08.png new file mode 100644 index 0000000..2967f43 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_08.png differ diff --git a/src/main/webapp/images/admins/chLog/3_left_08_over.png b/src/main/webapp/images/admins/chLog/3_left_08_over.png new file mode 100644 index 0000000..887f586 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_08_over.png differ diff --git a/src/main/webapp/images/admins/chLog/3_left_09.png b/src/main/webapp/images/admins/chLog/3_left_09.png new file mode 100644 index 0000000..87e4317 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_09.png differ diff --git a/src/main/webapp/images/admins/chLog/3_left_09_over.png b/src/main/webapp/images/admins/chLog/3_left_09_over.png new file mode 100644 index 0000000..1752735 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_09_over.png differ diff --git a/src/main/webapp/images/admins/chLog/3_left_11.png b/src/main/webapp/images/admins/chLog/3_left_11.png new file mode 100644 index 0000000..92151a7 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_11.png differ diff --git a/src/main/webapp/images/admins/chLog/3_left_11_over.png b/src/main/webapp/images/admins/chLog/3_left_11_over.png new file mode 100644 index 0000000..41ff69d Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_11_over.png differ diff --git a/src/main/webapp/images/admins/chLog/3_left_12.png b/src/main/webapp/images/admins/chLog/3_left_12.png new file mode 100644 index 0000000..06243a4 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_12.png differ diff --git a/src/main/webapp/images/admins/chLog/3_left_12_over.png b/src/main/webapp/images/admins/chLog/3_left_12_over.png new file mode 100644 index 0000000..c24b77f Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_12_over.png differ diff --git a/src/main/webapp/images/admins/chLog/3_left_13.png b/src/main/webapp/images/admins/chLog/3_left_13.png new file mode 100644 index 0000000..73398cd Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_13.png differ diff --git a/src/main/webapp/images/admins/chLog/3_left_13_over.png b/src/main/webapp/images/admins/chLog/3_left_13_over.png new file mode 100644 index 0000000..8c1bd59 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_13_over.png differ diff --git a/src/main/webapp/images/admins/chLog/3_left_14.png b/src/main/webapp/images/admins/chLog/3_left_14.png new file mode 100644 index 0000000..4c7c362 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_14.png differ diff --git a/src/main/webapp/images/admins/chLog/3_left_14_over.png b/src/main/webapp/images/admins/chLog/3_left_14_over.png new file mode 100644 index 0000000..40135f1 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_left_14_over.png differ diff --git a/src/main/webapp/images/admins/chLog/3_tit_01.gif b/src/main/webapp/images/admins/chLog/3_tit_01.gif new file mode 100644 index 0000000..734842a Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_tit_01.gif differ diff --git a/src/main/webapp/images/admins/chLog/3_toptit_01.gif b/src/main/webapp/images/admins/chLog/3_toptit_01.gif new file mode 100644 index 0000000..d20f231 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_toptit_01.gif differ diff --git a/src/main/webapp/images/admins/chLog/3_toptit_02.gif b/src/main/webapp/images/admins/chLog/3_toptit_02.gif new file mode 100644 index 0000000..b9ebd4a Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_toptit_02.gif differ diff --git a/src/main/webapp/images/admins/chLog/3_toptit_03.gif b/src/main/webapp/images/admins/chLog/3_toptit_03.gif new file mode 100644 index 0000000..73fdeeb Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_toptit_03.gif differ diff --git a/src/main/webapp/images/admins/chLog/3_toptit_04.gif b/src/main/webapp/images/admins/chLog/3_toptit_04.gif new file mode 100644 index 0000000..4c66514 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_toptit_04.gif differ diff --git a/src/main/webapp/images/admins/chLog/3_toptit_11.png b/src/main/webapp/images/admins/chLog/3_toptit_11.png new file mode 100644 index 0000000..0a0facf Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_toptit_11.png differ diff --git a/src/main/webapp/images/admins/chLog/3_toptit_12.png b/src/main/webapp/images/admins/chLog/3_toptit_12.png new file mode 100644 index 0000000..5afe58e Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_toptit_12.png differ diff --git a/src/main/webapp/images/admins/chLog/3_toptit_13.png b/src/main/webapp/images/admins/chLog/3_toptit_13.png new file mode 100644 index 0000000..cd2c6b0 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_toptit_13.png differ diff --git a/src/main/webapp/images/admins/chLog/3_toptit_14.png b/src/main/webapp/images/admins/chLog/3_toptit_14.png new file mode 100644 index 0000000..e028b9e Binary files /dev/null and b/src/main/webapp/images/admins/chLog/3_toptit_14.png differ diff --git a/src/main/webapp/images/admins/chLog/download_view_back.gif b/src/main/webapp/images/admins/chLog/download_view_back.gif new file mode 100644 index 0000000..d7fdd71 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/download_view_back.gif differ diff --git a/src/main/webapp/images/admins/chLog/download_view_title.gif b/src/main/webapp/images/admins/chLog/download_view_title.gif new file mode 100644 index 0000000..efa06ee Binary files /dev/null and b/src/main/webapp/images/admins/chLog/download_view_title.gif differ diff --git a/src/main/webapp/images/admins/chLog/sichu.gif b/src/main/webapp/images/admins/chLog/sichu.gif new file mode 100644 index 0000000..28ade3a Binary files /dev/null and b/src/main/webapp/images/admins/chLog/sichu.gif differ diff --git a/src/main/webapp/images/admins/chLog/sichudown.gif b/src/main/webapp/images/admins/chLog/sichudown.gif new file mode 100644 index 0000000..077e993 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/sichudown.gif differ diff --git a/src/main/webapp/images/admins/chLog/sichudown1.gif b/src/main/webapp/images/admins/chLog/sichudown1.gif new file mode 100644 index 0000000..6583971 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/sichudown1.gif differ diff --git a/src/main/webapp/images/admins/chLog/sichutitle.gif b/src/main/webapp/images/admins/chLog/sichutitle.gif new file mode 100644 index 0000000..2659900 Binary files /dev/null and b/src/main/webapp/images/admins/chLog/sichutitle.gif differ diff --git a/src/main/webapp/images/admins/cus_bnt_cancel.gif b/src/main/webapp/images/admins/cus_bnt_cancel.gif new file mode 100644 index 0000000..31d7e66 Binary files /dev/null and b/src/main/webapp/images/admins/cus_bnt_cancel.gif differ diff --git a/src/main/webapp/images/admins/cus_bnt_delet.gif b/src/main/webapp/images/admins/cus_bnt_delet.gif new file mode 100644 index 0000000..ed43ad8 Binary files /dev/null and b/src/main/webapp/images/admins/cus_bnt_delet.gif differ diff --git a/src/main/webapp/images/admins/cus_bnt_list.gif b/src/main/webapp/images/admins/cus_bnt_list.gif new file mode 100644 index 0000000..48225df Binary files /dev/null and b/src/main/webapp/images/admins/cus_bnt_list.gif differ diff --git a/src/main/webapp/images/admins/cus_bnt_modify.gif b/src/main/webapp/images/admins/cus_bnt_modify.gif new file mode 100644 index 0000000..c48e843 Binary files /dev/null and b/src/main/webapp/images/admins/cus_bnt_modify.gif differ diff --git a/src/main/webapp/images/admins/cus_bnt_ok.gif b/src/main/webapp/images/admins/cus_bnt_ok.gif new file mode 100644 index 0000000..f4cad7f Binary files /dev/null and b/src/main/webapp/images/admins/cus_bnt_ok.gif differ diff --git a/src/main/webapp/images/admins/cus_bnt_passCh.gif b/src/main/webapp/images/admins/cus_bnt_passCh.gif new file mode 100644 index 0000000..dc57392 Binary files /dev/null and b/src/main/webapp/images/admins/cus_bnt_passCh.gif differ diff --git a/src/main/webapp/images/admins/cus_bnt_re.gif b/src/main/webapp/images/admins/cus_bnt_re.gif new file mode 100644 index 0000000..d6e9193 Binary files /dev/null and b/src/main/webapp/images/admins/cus_bnt_re.gif differ diff --git a/src/main/webapp/images/admins/cus_bnt_save.gif b/src/main/webapp/images/admins/cus_bnt_save.gif new file mode 100644 index 0000000..00b3507 Binary files /dev/null and b/src/main/webapp/images/admins/cus_bnt_save.gif differ diff --git a/src/main/webapp/images/admins/cus_bnt_write.gif b/src/main/webapp/images/admins/cus_bnt_write.gif new file mode 100644 index 0000000..3905a02 Binary files /dev/null and b/src/main/webapp/images/admins/cus_bnt_write.gif differ diff --git a/src/main/webapp/images/admins/del.gif b/src/main/webapp/images/admins/del.gif new file mode 100644 index 0000000..68fbf4e Binary files /dev/null and b/src/main/webapp/images/admins/del.gif differ diff --git a/src/main/webapp/images/admins/excel.gif b/src/main/webapp/images/admins/excel.gif new file mode 100644 index 0000000..616beab Binary files /dev/null and b/src/main/webapp/images/admins/excel.gif differ diff --git a/src/main/webapp/images/admins/first.gif b/src/main/webapp/images/admins/first.gif new file mode 100644 index 0000000..2fe1987 Binary files /dev/null and b/src/main/webapp/images/admins/first.gif differ diff --git a/src/main/webapp/images/admins/frame/bottom.gif b/src/main/webapp/images/admins/frame/bottom.gif new file mode 100644 index 0000000..b1dc395 Binary files /dev/null and b/src/main/webapp/images/admins/frame/bottom.gif differ diff --git a/src/main/webapp/images/admins/frame/bottom_bak.gif b/src/main/webapp/images/admins/frame/bottom_bak.gif new file mode 100644 index 0000000..bd493ef Binary files /dev/null and b/src/main/webapp/images/admins/frame/bottom_bak.gif differ diff --git a/src/main/webapp/images/admins/frame/top_main.gif b/src/main/webapp/images/admins/frame/top_main.gif new file mode 100644 index 0000000..e6a523f Binary files /dev/null and b/src/main/webapp/images/admins/frame/top_main.gif differ diff --git a/src/main/webapp/images/admins/frame/top_main_bak.gif b/src/main/webapp/images/admins/frame/top_main_bak.gif new file mode 100644 index 0000000..9f0a518 Binary files /dev/null and b/src/main/webapp/images/admins/frame/top_main_bak.gif differ diff --git a/src/main/webapp/images/admins/frame/top_menu.gif b/src/main/webapp/images/admins/frame/top_menu.gif new file mode 100644 index 0000000..3b8de68 Binary files /dev/null and b/src/main/webapp/images/admins/frame/top_menu.gif differ diff --git a/src/main/webapp/images/admins/graph.gif b/src/main/webapp/images/admins/graph.gif new file mode 100644 index 0000000..fb6cf63 Binary files /dev/null and b/src/main/webapp/images/admins/graph.gif differ diff --git a/src/main/webapp/images/admins/last.gif b/src/main/webapp/images/admins/last.gif new file mode 100644 index 0000000..93d2b31 Binary files /dev/null and b/src/main/webapp/images/admins/last.gif differ diff --git a/src/main/webapp/images/admins/left_bak.gif b/src/main/webapp/images/admins/left_bak.gif new file mode 100644 index 0000000..936726a Binary files /dev/null and b/src/main/webapp/images/admins/left_bak.gif differ diff --git a/src/main/webapp/images/admins/left_bak.jpg b/src/main/webapp/images/admins/left_bak.jpg new file mode 100644 index 0000000..7072ee1 Binary files /dev/null and b/src/main/webapp/images/admins/left_bak.jpg differ diff --git a/src/main/webapp/images/admins/login_but.jpg b/src/main/webapp/images/admins/login_but.jpg new file mode 100644 index 0000000..c18f125 Binary files /dev/null and b/src/main/webapp/images/admins/login_but.jpg differ diff --git a/src/main/webapp/images/admins/login_img_01.jpg b/src/main/webapp/images/admins/login_img_01.jpg new file mode 100644 index 0000000..5f36e13 Binary files /dev/null and b/src/main/webapp/images/admins/login_img_01.jpg differ diff --git a/src/main/webapp/images/admins/login_img_02.jpg b/src/main/webapp/images/admins/login_img_02.jpg new file mode 100644 index 0000000..352a69a Binary files /dev/null and b/src/main/webapp/images/admins/login_img_02.jpg differ diff --git a/src/main/webapp/images/admins/login_img_03.jpg b/src/main/webapp/images/admins/login_img_03.jpg new file mode 100644 index 0000000..0b9b32f Binary files /dev/null and b/src/main/webapp/images/admins/login_img_03.jpg differ diff --git a/src/main/webapp/images/admins/login_img_04.jpg b/src/main/webapp/images/admins/login_img_04.jpg new file mode 100644 index 0000000..83ac69d Binary files /dev/null and b/src/main/webapp/images/admins/login_img_04.jpg differ diff --git a/src/main/webapp/images/admins/login_img_05.jpg b/src/main/webapp/images/admins/login_img_05.jpg new file mode 100644 index 0000000..72ff47d Binary files /dev/null and b/src/main/webapp/images/admins/login_img_05.jpg differ diff --git a/src/main/webapp/images/admins/login_img_06.jpg b/src/main/webapp/images/admins/login_img_06.jpg new file mode 100644 index 0000000..bfc1634 Binary files /dev/null and b/src/main/webapp/images/admins/login_img_06.jpg differ diff --git a/src/main/webapp/images/admins/manager/6_btn_ok.gif b/src/main/webapp/images/admins/manager/6_btn_ok.gif new file mode 100644 index 0000000..776dc00 Binary files /dev/null and b/src/main/webapp/images/admins/manager/6_btn_ok.gif differ diff --git a/src/main/webapp/images/admins/manager/6_tit_01.gif b/src/main/webapp/images/admins/manager/6_tit_01.gif new file mode 100644 index 0000000..ea9aa54 Binary files /dev/null and b/src/main/webapp/images/admins/manager/6_tit_01.gif differ diff --git a/src/main/webapp/images/admins/manager/6_toptit_01.gif b/src/main/webapp/images/admins/manager/6_toptit_01.gif new file mode 100644 index 0000000..1997c7b Binary files /dev/null and b/src/main/webapp/images/admins/manager/6_toptit_01.gif differ diff --git a/src/main/webapp/images/admins/manager/bg_login2.gif b/src/main/webapp/images/admins/manager/bg_login2.gif new file mode 100644 index 0000000..aa726ad Binary files /dev/null and b/src/main/webapp/images/admins/manager/bg_login2.gif differ diff --git a/src/main/webapp/images/admins/manager/login_img.jpg b/src/main/webapp/images/admins/manager/login_img.jpg new file mode 100644 index 0000000..8199f96 Binary files /dev/null and b/src/main/webapp/images/admins/manager/login_img.jpg differ diff --git a/src/main/webapp/images/admins/manager/txt_pw01.gif b/src/main/webapp/images/admins/manager/txt_pw01.gif new file mode 100644 index 0000000..95436a1 Binary files /dev/null and b/src/main/webapp/images/admins/manager/txt_pw01.gif differ diff --git a/src/main/webapp/images/admins/manager/txt_pw02.gif b/src/main/webapp/images/admins/manager/txt_pw02.gif new file mode 100644 index 0000000..b2bde83 Binary files /dev/null and b/src/main/webapp/images/admins/manager/txt_pw02.gif differ diff --git a/src/main/webapp/images/admins/next.gif b/src/main/webapp/images/admins/next.gif new file mode 100644 index 0000000..98729a6 Binary files /dev/null and b/src/main/webapp/images/admins/next.gif differ diff --git a/src/main/webapp/images/admins/notice/2_left_01.gif b/src/main/webapp/images/admins/notice/2_left_01.gif new file mode 100644 index 0000000..3721efe Binary files /dev/null and b/src/main/webapp/images/admins/notice/2_left_01.gif differ diff --git a/src/main/webapp/images/admins/notice/2_left_01_over.gif b/src/main/webapp/images/admins/notice/2_left_01_over.gif new file mode 100644 index 0000000..ceda076 Binary files /dev/null and b/src/main/webapp/images/admins/notice/2_left_01_over.gif differ diff --git a/src/main/webapp/images/admins/notice/4_left_01.gif b/src/main/webapp/images/admins/notice/4_left_01.gif new file mode 100644 index 0000000..cb5df48 Binary files /dev/null and b/src/main/webapp/images/admins/notice/4_left_01.gif differ diff --git a/src/main/webapp/images/admins/notice/4_left_01_over.gif b/src/main/webapp/images/admins/notice/4_left_01_over.gif new file mode 100644 index 0000000..438ac8f Binary files /dev/null and b/src/main/webapp/images/admins/notice/4_left_01_over.gif differ diff --git a/src/main/webapp/images/admins/notice/4_tit_01.gif b/src/main/webapp/images/admins/notice/4_tit_01.gif new file mode 100644 index 0000000..b1a2037 Binary files /dev/null and b/src/main/webapp/images/admins/notice/4_tit_01.gif differ diff --git a/src/main/webapp/images/admins/notice/4_toptit_01.gif b/src/main/webapp/images/admins/notice/4_toptit_01.gif new file mode 100644 index 0000000..52ed798 Binary files /dev/null and b/src/main/webapp/images/admins/notice/4_toptit_01.gif differ diff --git a/src/main/webapp/images/admins/prev.gif b/src/main/webapp/images/admins/prev.gif new file mode 100644 index 0000000..8eea80e Binary files /dev/null and b/src/main/webapp/images/admins/prev.gif differ diff --git a/src/main/webapp/images/admins/rex.gif b/src/main/webapp/images/admins/rex.gif new file mode 100644 index 0000000..ca5a442 Binary files /dev/null and b/src/main/webapp/images/admins/rex.gif differ diff --git a/src/main/webapp/images/admins/search.gif b/src/main/webapp/images/admins/search.gif new file mode 100644 index 0000000..7674324 Binary files /dev/null and b/src/main/webapp/images/admins/search.gif differ diff --git a/src/main/webapp/images/admins/spacer.gif b/src/main/webapp/images/admins/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/src/main/webapp/images/admins/spacer.gif differ diff --git a/src/main/webapp/images/admins/tit_statist.gif b/src/main/webapp/images/admins/tit_statist.gif new file mode 100644 index 0000000..33bc8f1 Binary files /dev/null and b/src/main/webapp/images/admins/tit_statist.gif differ diff --git a/src/main/webapp/images/admins/tit_statist2.gif b/src/main/webapp/images/admins/tit_statist2.gif new file mode 100644 index 0000000..cd9701b Binary files /dev/null and b/src/main/webapp/images/admins/tit_statist2.gif differ diff --git a/src/main/webapp/images/admins/user/1_left_01.gif b/src/main/webapp/images/admins/user/1_left_01.gif new file mode 100644 index 0000000..3267c1f Binary files /dev/null and b/src/main/webapp/images/admins/user/1_left_01.gif differ diff --git a/src/main/webapp/images/admins/user/1_left_01_over.gif b/src/main/webapp/images/admins/user/1_left_01_over.gif new file mode 100644 index 0000000..f1afe69 Binary files /dev/null and b/src/main/webapp/images/admins/user/1_left_01_over.gif differ diff --git a/src/main/webapp/images/admins/user/1_left_02.gif b/src/main/webapp/images/admins/user/1_left_02.gif new file mode 100644 index 0000000..b2b5357 Binary files /dev/null and b/src/main/webapp/images/admins/user/1_left_02.gif differ diff --git a/src/main/webapp/images/admins/user/1_left_02_over.gif b/src/main/webapp/images/admins/user/1_left_02_over.gif new file mode 100644 index 0000000..5db21b0 Binary files /dev/null and b/src/main/webapp/images/admins/user/1_left_02_over.gif differ diff --git a/src/main/webapp/images/admins/user/1_left_03.gif b/src/main/webapp/images/admins/user/1_left_03.gif new file mode 100644 index 0000000..b848d1a Binary files /dev/null and b/src/main/webapp/images/admins/user/1_left_03.gif differ diff --git a/src/main/webapp/images/admins/user/1_left_03_over.gif b/src/main/webapp/images/admins/user/1_left_03_over.gif new file mode 100644 index 0000000..c363167 Binary files /dev/null and b/src/main/webapp/images/admins/user/1_left_03_over.gif differ diff --git a/src/main/webapp/images/admins/user/1_left_04.gif b/src/main/webapp/images/admins/user/1_left_04.gif new file mode 100644 index 0000000..5cac4ce Binary files /dev/null and b/src/main/webapp/images/admins/user/1_left_04.gif differ diff --git a/src/main/webapp/images/admins/user/1_left_04_over.gif b/src/main/webapp/images/admins/user/1_left_04_over.gif new file mode 100644 index 0000000..254792a Binary files /dev/null and b/src/main/webapp/images/admins/user/1_left_04_over.gif differ diff --git a/src/main/webapp/images/admins/user/1_left_05.png b/src/main/webapp/images/admins/user/1_left_05.png new file mode 100644 index 0000000..66ec922 Binary files /dev/null and b/src/main/webapp/images/admins/user/1_left_05.png differ diff --git a/src/main/webapp/images/admins/user/1_left_05_over.png b/src/main/webapp/images/admins/user/1_left_05_over.png new file mode 100644 index 0000000..952a66b Binary files /dev/null and b/src/main/webapp/images/admins/user/1_left_05_over.png differ diff --git a/src/main/webapp/images/admins/user/1_left_06.gif b/src/main/webapp/images/admins/user/1_left_06.gif new file mode 100644 index 0000000..431a275 Binary files /dev/null and b/src/main/webapp/images/admins/user/1_left_06.gif differ diff --git a/src/main/webapp/images/admins/user/1_left_06_over.gif b/src/main/webapp/images/admins/user/1_left_06_over.gif new file mode 100644 index 0000000..26bed18 Binary files /dev/null and b/src/main/webapp/images/admins/user/1_left_06_over.gif differ diff --git a/src/main/webapp/images/admins/user/1_left_07.gif b/src/main/webapp/images/admins/user/1_left_07.gif new file mode 100644 index 0000000..b9ed99b Binary files /dev/null and b/src/main/webapp/images/admins/user/1_left_07.gif differ diff --git a/src/main/webapp/images/admins/user/1_left_07_over.gif b/src/main/webapp/images/admins/user/1_left_07_over.gif new file mode 100644 index 0000000..76dd2f7 Binary files /dev/null and b/src/main/webapp/images/admins/user/1_left_07_over.gif differ diff --git a/src/main/webapp/images/admins/user/1_tit_01.gif b/src/main/webapp/images/admins/user/1_tit_01.gif new file mode 100644 index 0000000..95908f0 Binary files /dev/null and b/src/main/webapp/images/admins/user/1_tit_01.gif differ diff --git a/src/main/webapp/images/admins/user/1_toptit_01.gif b/src/main/webapp/images/admins/user/1_toptit_01.gif new file mode 100644 index 0000000..1ab0609 Binary files /dev/null and b/src/main/webapp/images/admins/user/1_toptit_01.gif differ diff --git a/src/main/webapp/images/admins/user/1_toptit_02.gif b/src/main/webapp/images/admins/user/1_toptit_02.gif new file mode 100644 index 0000000..7f861c8 Binary files /dev/null and b/src/main/webapp/images/admins/user/1_toptit_02.gif differ diff --git a/src/main/webapp/images/admins/user/1_toptit_03.gif b/src/main/webapp/images/admins/user/1_toptit_03.gif new file mode 100644 index 0000000..2d24957 Binary files /dev/null and b/src/main/webapp/images/admins/user/1_toptit_03.gif differ diff --git a/src/main/webapp/images/admins/user/1_toptit_05.png b/src/main/webapp/images/admins/user/1_toptit_05.png new file mode 100644 index 0000000..ef71efc Binary files /dev/null and b/src/main/webapp/images/admins/user/1_toptit_05.png differ diff --git a/src/main/webapp/images/admins/user/1_toptit_07.gif b/src/main/webapp/images/admins/user/1_toptit_07.gif new file mode 100644 index 0000000..04ff954 Binary files /dev/null and b/src/main/webapp/images/admins/user/1_toptit_07.gif differ diff --git a/src/main/webapp/images/admins/user/btn_pass_ini.gif b/src/main/webapp/images/admins/user/btn_pass_ini.gif new file mode 100644 index 0000000..9239f5b Binary files /dev/null and b/src/main/webapp/images/admins/user/btn_pass_ini.gif differ diff --git a/src/main/webapp/images/admins/user/btn_return.gif b/src/main/webapp/images/admins/user/btn_return.gif new file mode 100644 index 0000000..491d582 Binary files /dev/null and b/src/main/webapp/images/admins/user/btn_return.gif differ diff --git a/src/main/webapp/images/admins/user/user_detail_title.gif b/src/main/webapp/images/admins/user/user_detail_title.gif new file mode 100644 index 0000000..561845b Binary files /dev/null and b/src/main/webapp/images/admins/user/user_detail_title.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_01.gif b/src/main/webapp/images/admins/userLog/2_left_01.gif new file mode 100644 index 0000000..3721efe Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_01.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_01_new.gif b/src/main/webapp/images/admins/userLog/2_left_01_new.gif new file mode 100644 index 0000000..6ed68d4 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_01_new.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_01_new_over.gif b/src/main/webapp/images/admins/userLog/2_left_01_new_over.gif new file mode 100644 index 0000000..8183294 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_01_new_over.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_01_over.gif b/src/main/webapp/images/admins/userLog/2_left_01_over.gif new file mode 100644 index 0000000..ceda076 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_01_over.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_02.gif b/src/main/webapp/images/admins/userLog/2_left_02.gif new file mode 100644 index 0000000..0eedffe Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_02.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_02_over.gif b/src/main/webapp/images/admins/userLog/2_left_02_over.gif new file mode 100644 index 0000000..5123781 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_02_over.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_03.gif b/src/main/webapp/images/admins/userLog/2_left_03.gif new file mode 100644 index 0000000..a730e14 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_03.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_03_over.gif b/src/main/webapp/images/admins/userLog/2_left_03_over.gif new file mode 100644 index 0000000..5230e26 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_03_over.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_04.gif b/src/main/webapp/images/admins/userLog/2_left_04.gif new file mode 100644 index 0000000..42f32f8 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_04.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_04_over.gif b/src/main/webapp/images/admins/userLog/2_left_04_over.gif new file mode 100644 index 0000000..f3d69f4 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_04_over.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_05.gif b/src/main/webapp/images/admins/userLog/2_left_05.gif new file mode 100644 index 0000000..333b8bb Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_05.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_05.jpg b/src/main/webapp/images/admins/userLog/2_left_05.jpg new file mode 100644 index 0000000..c3c77e8 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_05.jpg differ diff --git a/src/main/webapp/images/admins/userLog/2_left_05_over.gif b/src/main/webapp/images/admins/userLog/2_left_05_over.gif new file mode 100644 index 0000000..212250a Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_05_over.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_05_over.jpg b/src/main/webapp/images/admins/userLog/2_left_05_over.jpg new file mode 100644 index 0000000..096f38b Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_05_over.jpg differ diff --git a/src/main/webapp/images/admins/userLog/2_left_06.gif b/src/main/webapp/images/admins/userLog/2_left_06.gif new file mode 100644 index 0000000..1a67b81 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_06.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_06_over.gif b/src/main/webapp/images/admins/userLog/2_left_06_over.gif new file mode 100644 index 0000000..d025d3f Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_06_over.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_07.gif b/src/main/webapp/images/admins/userLog/2_left_07.gif new file mode 100644 index 0000000..a9633f4 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_07.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_07_over.gif b/src/main/webapp/images/admins/userLog/2_left_07_over.gif new file mode 100644 index 0000000..a4ac4c9 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_07_over.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_08.gif b/src/main/webapp/images/admins/userLog/2_left_08.gif new file mode 100644 index 0000000..3dda694 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_08.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_left_08_over.gif b/src/main/webapp/images/admins/userLog/2_left_08_over.gif new file mode 100644 index 0000000..e5b91a7 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_left_08_over.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_tit_01.gif b/src/main/webapp/images/admins/userLog/2_tit_01.gif new file mode 100644 index 0000000..d2ae292 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_tit_01.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_toptit_01.gif b/src/main/webapp/images/admins/userLog/2_toptit_01.gif new file mode 100644 index 0000000..aec1cb4 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_toptit_01.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_toptit_02.gif b/src/main/webapp/images/admins/userLog/2_toptit_02.gif new file mode 100644 index 0000000..59edaf4 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_toptit_02.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_toptit_03.gif b/src/main/webapp/images/admins/userLog/2_toptit_03.gif new file mode 100644 index 0000000..d013e2e Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_toptit_03.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_toptit_04.gif b/src/main/webapp/images/admins/userLog/2_toptit_04.gif new file mode 100644 index 0000000..95cf170 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_toptit_04.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_toptit_05.gif b/src/main/webapp/images/admins/userLog/2_toptit_05.gif new file mode 100644 index 0000000..4dd3e9b Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_toptit_05.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_toptit_08.gif b/src/main/webapp/images/admins/userLog/2_toptit_08.gif new file mode 100644 index 0000000..38c8f64 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_toptit_08.gif differ diff --git a/src/main/webapp/images/admins/userLog/2_toptit_09.gif b/src/main/webapp/images/admins/userLog/2_toptit_09.gif new file mode 100644 index 0000000..2543105 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/2_toptit_09.gif differ diff --git a/src/main/webapp/images/admins/userLog/left_back.jpg b/src/main/webapp/images/admins/userLog/left_back.jpg new file mode 100644 index 0000000..42063d8 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/left_back.jpg differ diff --git a/src/main/webapp/images/admins/userLog/menu10_gray.gif b/src/main/webapp/images/admins/userLog/menu10_gray.gif new file mode 100644 index 0000000..6c733db Binary files /dev/null and b/src/main/webapp/images/admins/userLog/menu10_gray.gif differ diff --git a/src/main/webapp/images/admins/userLog/menu10_select.gif b/src/main/webapp/images/admins/userLog/menu10_select.gif new file mode 100644 index 0000000..d9c08c3 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/menu10_select.gif differ diff --git a/src/main/webapp/images/admins/userLog/menu11_gray.gif b/src/main/webapp/images/admins/userLog/menu11_gray.gif new file mode 100644 index 0000000..f4fcc30 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/menu11_gray.gif differ diff --git a/src/main/webapp/images/admins/userLog/menu11_select.gif b/src/main/webapp/images/admins/userLog/menu11_select.gif new file mode 100644 index 0000000..cdc1c96 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/menu11_select.gif differ diff --git a/src/main/webapp/images/admins/userLog/menu12_gray.gif b/src/main/webapp/images/admins/userLog/menu12_gray.gif new file mode 100644 index 0000000..967cb32 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/menu12_gray.gif differ diff --git a/src/main/webapp/images/admins/userLog/menu12_select.gif b/src/main/webapp/images/admins/userLog/menu12_select.gif new file mode 100644 index 0000000..d08afb1 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/menu12_select.gif differ diff --git a/src/main/webapp/images/admins/userLog/menu1_gray.gif b/src/main/webapp/images/admins/userLog/menu1_gray.gif new file mode 100644 index 0000000..61198ef Binary files /dev/null and b/src/main/webapp/images/admins/userLog/menu1_gray.gif differ diff --git a/src/main/webapp/images/admins/userLog/menu1_select.gif b/src/main/webapp/images/admins/userLog/menu1_select.gif new file mode 100644 index 0000000..181c6f3 Binary files /dev/null and b/src/main/webapp/images/admins/userLog/menu1_select.gif differ diff --git a/src/main/webapp/images/admins/zoom.gif b/src/main/webapp/images/admins/zoom.gif new file mode 100644 index 0000000..77cbb65 Binary files /dev/null and b/src/main/webapp/images/admins/zoom.gif differ diff --git a/src/main/webapp/images/ajax-loader4.gif b/src/main/webapp/images/ajax-loader4.gif new file mode 100644 index 0000000..7eca290 Binary files /dev/null and b/src/main/webapp/images/ajax-loader4.gif differ diff --git a/src/main/webapp/images/arrow_left.png b/src/main/webapp/images/arrow_left.png new file mode 100644 index 0000000..243c058 Binary files /dev/null and b/src/main/webapp/images/arrow_left.png differ diff --git a/src/main/webapp/images/arrow_right.png b/src/main/webapp/images/arrow_right.png new file mode 100644 index 0000000..869d515 Binary files /dev/null and b/src/main/webapp/images/arrow_right.png differ diff --git a/src/main/webapp/images/back.gif b/src/main/webapp/images/back.gif new file mode 100644 index 0000000..2d2c44c Binary files /dev/null and b/src/main/webapp/images/back.gif differ diff --git a/src/main/webapp/images/banner/banner.jpg b/src/main/webapp/images/banner/banner.jpg new file mode 100644 index 0000000..276afb3 Binary files /dev/null and b/src/main/webapp/images/banner/banner.jpg differ diff --git a/src/main/webapp/images/bnt_cen_s.gif b/src/main/webapp/images/bnt_cen_s.gif new file mode 100644 index 0000000..31ed5a6 Binary files /dev/null and b/src/main/webapp/images/bnt_cen_s.gif differ diff --git a/src/main/webapp/images/bnt_log.gif b/src/main/webapp/images/bnt_log.gif new file mode 100644 index 0000000..90f2f1d Binary files /dev/null and b/src/main/webapp/images/bnt_log.gif differ diff --git a/src/main/webapp/images/bnt_mo_s.gif b/src/main/webapp/images/bnt_mo_s.gif new file mode 100644 index 0000000..d96200a Binary files /dev/null and b/src/main/webapp/images/bnt_mo_s.gif differ diff --git a/src/main/webapp/images/bnt_re.gif b/src/main/webapp/images/bnt_re.gif new file mode 100644 index 0000000..5d18c02 Binary files /dev/null and b/src/main/webapp/images/bnt_re.gif differ diff --git a/src/main/webapp/images/bnt_sea.gif b/src/main/webapp/images/bnt_sea.gif new file mode 100644 index 0000000..aa6aa1a Binary files /dev/null and b/src/main/webapp/images/bnt_sea.gif differ diff --git a/src/main/webapp/images/bnt_view.gif b/src/main/webapp/images/bnt_view.gif new file mode 100644 index 0000000..b21bdb9 Binary files /dev/null and b/src/main/webapp/images/bnt_view.gif differ diff --git a/src/main/webapp/images/board/bo_top_img_01.jpg b/src/main/webapp/images/board/bo_top_img_01.jpg new file mode 100644 index 0000000..c2245d5 Binary files /dev/null and b/src/main/webapp/images/board/bo_top_img_01.jpg differ diff --git a/src/main/webapp/images/board/bo_top_img_02.jpg b/src/main/webapp/images/board/bo_top_img_02.jpg new file mode 100644 index 0000000..498a877 Binary files /dev/null and b/src/main/webapp/images/board/bo_top_img_02.jpg differ diff --git a/src/main/webapp/images/board/bo_top_img_03.jpg b/src/main/webapp/images/board/bo_top_img_03.jpg new file mode 100644 index 0000000..ab0e556 Binary files /dev/null and b/src/main/webapp/images/board/bo_top_img_03.jpg differ diff --git a/src/main/webapp/images/board/bo_top_img_04.jpg b/src/main/webapp/images/board/bo_top_img_04.jpg new file mode 100644 index 0000000..5c86329 Binary files /dev/null and b/src/main/webapp/images/board/bo_top_img_04.jpg differ diff --git a/src/main/webapp/images/board/bo_top_img_05.jpg b/src/main/webapp/images/board/bo_top_img_05.jpg new file mode 100644 index 0000000..5ca12bc Binary files /dev/null and b/src/main/webapp/images/board/bo_top_img_05.jpg differ diff --git a/src/main/webapp/images/board/cus_bnt_list.gif b/src/main/webapp/images/board/cus_bnt_list.gif new file mode 100644 index 0000000..48225df Binary files /dev/null and b/src/main/webapp/images/board/cus_bnt_list.gif differ diff --git a/src/main/webapp/images/board/left_menu_01.gif b/src/main/webapp/images/board/left_menu_01.gif new file mode 100644 index 0000000..6b0ddc1 Binary files /dev/null and b/src/main/webapp/images/board/left_menu_01.gif differ diff --git a/src/main/webapp/images/board/left_menu_01_over.gif b/src/main/webapp/images/board/left_menu_01_over.gif new file mode 100644 index 0000000..d39f320 Binary files /dev/null and b/src/main/webapp/images/board/left_menu_01_over.gif differ diff --git a/src/main/webapp/images/board/left_menu_02.gif b/src/main/webapp/images/board/left_menu_02.gif new file mode 100644 index 0000000..de42eb9 Binary files /dev/null and b/src/main/webapp/images/board/left_menu_02.gif differ diff --git a/src/main/webapp/images/board/left_menu_02_over.gif b/src/main/webapp/images/board/left_menu_02_over.gif new file mode 100644 index 0000000..ec50084 Binary files /dev/null and b/src/main/webapp/images/board/left_menu_02_over.gif differ diff --git a/src/main/webapp/images/board/left_tit_01.gif b/src/main/webapp/images/board/left_tit_01.gif new file mode 100644 index 0000000..560a389 Binary files /dev/null and b/src/main/webapp/images/board/left_tit_01.gif differ diff --git a/src/main/webapp/images/board/top_tit_01.gif b/src/main/webapp/images/board/top_tit_01.gif new file mode 100644 index 0000000..096e27e Binary files /dev/null and b/src/main/webapp/images/board/top_tit_01.gif differ diff --git a/src/main/webapp/images/board/top_tit_02.gif b/src/main/webapp/images/board/top_tit_02.gif new file mode 100644 index 0000000..9fc893a Binary files /dev/null and b/src/main/webapp/images/board/top_tit_02.gif differ diff --git a/src/main/webapp/images/body/cmuboard/arrow_left.png b/src/main/webapp/images/body/cmuboard/arrow_left.png new file mode 100644 index 0000000..243c058 Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/arrow_left.png differ diff --git a/src/main/webapp/images/body/cmuboard/arrow_right.png b/src/main/webapp/images/body/cmuboard/arrow_right.png new file mode 100644 index 0000000..869d515 Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/arrow_right.png differ diff --git a/src/main/webapp/images/body/cmuboard/blt_re.gif b/src/main/webapp/images/body/cmuboard/blt_re.gif new file mode 100644 index 0000000..48a55c1 Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/blt_re.gif differ diff --git a/src/main/webapp/images/body/cmuboard/bnt_ok.gif b/src/main/webapp/images/body/cmuboard/bnt_ok.gif new file mode 100644 index 0000000..6e785ba Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/bnt_ok.gif differ diff --git a/src/main/webapp/images/body/cmuboard/btn_sample.gif b/src/main/webapp/images/body/cmuboard/btn_sample.gif new file mode 100644 index 0000000..c4233d8 Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/btn_sample.gif differ diff --git a/src/main/webapp/images/body/cmuboard/cus_bnt_cancel.gif b/src/main/webapp/images/body/cmuboard/cus_bnt_cancel.gif new file mode 100644 index 0000000..31d7e66 Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/cus_bnt_cancel.gif differ diff --git a/src/main/webapp/images/body/cmuboard/cus_bnt_delet.gif b/src/main/webapp/images/body/cmuboard/cus_bnt_delet.gif new file mode 100644 index 0000000..ed43ad8 Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/cus_bnt_delet.gif differ diff --git a/src/main/webapp/images/body/cmuboard/cus_bnt_list.gif b/src/main/webapp/images/body/cmuboard/cus_bnt_list.gif new file mode 100644 index 0000000..48225df Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/cus_bnt_list.gif differ diff --git a/src/main/webapp/images/body/cmuboard/cus_bnt_modify.gif b/src/main/webapp/images/body/cmuboard/cus_bnt_modify.gif new file mode 100644 index 0000000..c48e843 Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/cus_bnt_modify.gif differ diff --git a/src/main/webapp/images/body/cmuboard/cus_bnt_save.gif b/src/main/webapp/images/body/cmuboard/cus_bnt_save.gif new file mode 100644 index 0000000..00b3507 Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/cus_bnt_save.gif differ diff --git a/src/main/webapp/images/body/cmuboard/cus_bnt_write.gif b/src/main/webapp/images/body/cmuboard/cus_bnt_write.gif new file mode 100644 index 0000000..3905a02 Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/cus_bnt_write.gif differ diff --git a/src/main/webapp/images/body/cmuboard/tit_bar_01.gif b/src/main/webapp/images/body/cmuboard/tit_bar_01.gif new file mode 100644 index 0000000..4cfec85 Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/tit_bar_01.gif differ diff --git a/src/main/webapp/images/body/cmuboard/tit_bar_02.gif b/src/main/webapp/images/body/cmuboard/tit_bar_02.gif new file mode 100644 index 0000000..def473d Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/tit_bar_02.gif differ diff --git a/src/main/webapp/images/body/cmuboard/tit_bar_03.gif b/src/main/webapp/images/body/cmuboard/tit_bar_03.gif new file mode 100644 index 0000000..749cc27 Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/tit_bar_03.gif differ diff --git a/src/main/webapp/images/body/cmuboard/tit_bar_04.gif b/src/main/webapp/images/body/cmuboard/tit_bar_04.gif new file mode 100644 index 0000000..4f865d3 Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/tit_bar_04.gif differ diff --git a/src/main/webapp/images/body/cmuboard/tit_bar_05.gif b/src/main/webapp/images/body/cmuboard/tit_bar_05.gif new file mode 100644 index 0000000..70c0208 Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/tit_bar_05.gif differ diff --git a/src/main/webapp/images/body/cmuboard/top_tit_01.gif b/src/main/webapp/images/body/cmuboard/top_tit_01.gif new file mode 100644 index 0000000..5e5af6c Binary files /dev/null and b/src/main/webapp/images/body/cmuboard/top_tit_01.gif differ diff --git a/src/main/webapp/images/body/psboard/arrow_left.png b/src/main/webapp/images/body/psboard/arrow_left.png new file mode 100644 index 0000000..243c058 Binary files /dev/null and b/src/main/webapp/images/body/psboard/arrow_left.png differ diff --git a/src/main/webapp/images/body/psboard/arrow_right.png b/src/main/webapp/images/body/psboard/arrow_right.png new file mode 100644 index 0000000..869d515 Binary files /dev/null and b/src/main/webapp/images/body/psboard/arrow_right.png differ diff --git a/src/main/webapp/images/body/psboard/blt_re.gif b/src/main/webapp/images/body/psboard/blt_re.gif new file mode 100644 index 0000000..48a55c1 Binary files /dev/null and b/src/main/webapp/images/body/psboard/blt_re.gif differ diff --git a/src/main/webapp/images/body/psboard/bnt_ok.gif b/src/main/webapp/images/body/psboard/bnt_ok.gif new file mode 100644 index 0000000..6e785ba Binary files /dev/null and b/src/main/webapp/images/body/psboard/bnt_ok.gif differ diff --git a/src/main/webapp/images/body/psboard/board/bo_top_img_01.jpg b/src/main/webapp/images/body/psboard/board/bo_top_img_01.jpg new file mode 100644 index 0000000..a19f4c5 Binary files /dev/null and b/src/main/webapp/images/body/psboard/board/bo_top_img_01.jpg differ diff --git a/src/main/webapp/images/body/psboard/board/left_menu_01_over.gif b/src/main/webapp/images/body/psboard/board/left_menu_01_over.gif new file mode 100644 index 0000000..301aaa3 Binary files /dev/null and b/src/main/webapp/images/body/psboard/board/left_menu_01_over.gif differ diff --git a/src/main/webapp/images/body/psboard/board/left_tit_01.gif b/src/main/webapp/images/body/psboard/board/left_tit_01.gif new file mode 100644 index 0000000..560a389 Binary files /dev/null and b/src/main/webapp/images/body/psboard/board/left_tit_01.gif differ diff --git a/src/main/webapp/images/body/psboard/board/top_tit_01.gif b/src/main/webapp/images/body/psboard/board/top_tit_01.gif new file mode 100644 index 0000000..9649901 Binary files /dev/null and b/src/main/webapp/images/body/psboard/board/top_tit_01.gif differ diff --git a/src/main/webapp/images/body/psboard/cus_bnt_cancel.gif b/src/main/webapp/images/body/psboard/cus_bnt_cancel.gif new file mode 100644 index 0000000..31d7e66 Binary files /dev/null and b/src/main/webapp/images/body/psboard/cus_bnt_cancel.gif differ diff --git a/src/main/webapp/images/body/psboard/cus_bnt_delet.gif b/src/main/webapp/images/body/psboard/cus_bnt_delet.gif new file mode 100644 index 0000000..ed43ad8 Binary files /dev/null and b/src/main/webapp/images/body/psboard/cus_bnt_delet.gif differ diff --git a/src/main/webapp/images/body/psboard/cus_bnt_list.gif b/src/main/webapp/images/body/psboard/cus_bnt_list.gif new file mode 100644 index 0000000..48225df Binary files /dev/null and b/src/main/webapp/images/body/psboard/cus_bnt_list.gif differ diff --git a/src/main/webapp/images/body/psboard/cus_bnt_modify.gif b/src/main/webapp/images/body/psboard/cus_bnt_modify.gif new file mode 100644 index 0000000..c48e843 Binary files /dev/null and b/src/main/webapp/images/body/psboard/cus_bnt_modify.gif differ diff --git a/src/main/webapp/images/body/psboard/cus_bnt_save.gif b/src/main/webapp/images/body/psboard/cus_bnt_save.gif new file mode 100644 index 0000000..00b3507 Binary files /dev/null and b/src/main/webapp/images/body/psboard/cus_bnt_save.gif differ diff --git a/src/main/webapp/images/body/psboard/cus_bnt_write.gif b/src/main/webapp/images/body/psboard/cus_bnt_write.gif new file mode 100644 index 0000000..3905a02 Binary files /dev/null and b/src/main/webapp/images/body/psboard/cus_bnt_write.gif differ diff --git a/src/main/webapp/images/body/psboard/tit_bar_01.gif b/src/main/webapp/images/body/psboard/tit_bar_01.gif new file mode 100644 index 0000000..4cfec85 Binary files /dev/null and b/src/main/webapp/images/body/psboard/tit_bar_01.gif differ diff --git a/src/main/webapp/images/body/psboard/tit_bar_02.gif b/src/main/webapp/images/body/psboard/tit_bar_02.gif new file mode 100644 index 0000000..def473d Binary files /dev/null and b/src/main/webapp/images/body/psboard/tit_bar_02.gif differ diff --git a/src/main/webapp/images/body/psboard/tit_bar_03.gif b/src/main/webapp/images/body/psboard/tit_bar_03.gif new file mode 100644 index 0000000..749cc27 Binary files /dev/null and b/src/main/webapp/images/body/psboard/tit_bar_03.gif differ diff --git a/src/main/webapp/images/body/psboard/tit_bar_04.gif b/src/main/webapp/images/body/psboard/tit_bar_04.gif new file mode 100644 index 0000000..4f865d3 Binary files /dev/null and b/src/main/webapp/images/body/psboard/tit_bar_04.gif differ diff --git a/src/main/webapp/images/body/psboard/tit_bar_05.gif b/src/main/webapp/images/body/psboard/tit_bar_05.gif new file mode 100644 index 0000000..70c0208 Binary files /dev/null and b/src/main/webapp/images/body/psboard/tit_bar_05.gif differ diff --git a/src/main/webapp/images/bottom.gif b/src/main/webapp/images/bottom.gif new file mode 100644 index 0000000..b1dc395 Binary files /dev/null and b/src/main/webapp/images/bottom.gif differ diff --git a/src/main/webapp/images/bottom1.jpg b/src/main/webapp/images/bottom1.jpg new file mode 100644 index 0000000..e65520f Binary files /dev/null and b/src/main/webapp/images/bottom1.jpg differ diff --git a/src/main/webapp/images/bottom1_20130325.jpg b/src/main/webapp/images/bottom1_20130325.jpg new file mode 100644 index 0000000..0cc1545 Binary files /dev/null and b/src/main/webapp/images/bottom1_20130325.jpg differ diff --git a/src/main/webapp/images/bottom_20130325.gif b/src/main/webapp/images/bottom_20130325.gif new file mode 100644 index 0000000..082a4e2 Binary files /dev/null and b/src/main/webapp/images/bottom_20130325.gif differ diff --git a/src/main/webapp/images/btn_1.gif b/src/main/webapp/images/btn_1.gif new file mode 100644 index 0000000..53c9639 Binary files /dev/null and b/src/main/webapp/images/btn_1.gif differ diff --git a/src/main/webapp/images/btn_2.gif b/src/main/webapp/images/btn_2.gif new file mode 100644 index 0000000..85f1e33 Binary files /dev/null and b/src/main/webapp/images/btn_2.gif differ diff --git a/src/main/webapp/images/btn_next.gif b/src/main/webapp/images/btn_next.gif new file mode 100644 index 0000000..290d918 Binary files /dev/null and b/src/main/webapp/images/btn_next.gif differ diff --git a/src/main/webapp/images/but_01.gif b/src/main/webapp/images/but_01.gif new file mode 100644 index 0000000..cbb5832 Binary files /dev/null and b/src/main/webapp/images/but_01.gif differ diff --git a/src/main/webapp/images/but_01_over.gif b/src/main/webapp/images/but_01_over.gif new file mode 100644 index 0000000..f371883 Binary files /dev/null and b/src/main/webapp/images/but_01_over.gif differ diff --git a/src/main/webapp/images/but_02.gif b/src/main/webapp/images/but_02.gif new file mode 100644 index 0000000..09329d8 Binary files /dev/null and b/src/main/webapp/images/but_02.gif differ diff --git a/src/main/webapp/images/but_02_over.gif b/src/main/webapp/images/but_02_over.gif new file mode 100644 index 0000000..338756f Binary files /dev/null and b/src/main/webapp/images/but_02_over.gif differ diff --git a/src/main/webapp/images/but_03.gif b/src/main/webapp/images/but_03.gif new file mode 100644 index 0000000..dd1f404 Binary files /dev/null and b/src/main/webapp/images/but_03.gif differ diff --git a/src/main/webapp/images/but_03_over.gif b/src/main/webapp/images/but_03_over.gif new file mode 100644 index 0000000..d0248fa Binary files /dev/null and b/src/main/webapp/images/but_03_over.gif differ diff --git a/src/main/webapp/images/but_04.gif b/src/main/webapp/images/but_04.gif new file mode 100644 index 0000000..276b7e9 Binary files /dev/null and b/src/main/webapp/images/but_04.gif differ diff --git a/src/main/webapp/images/but_04_over.gif b/src/main/webapp/images/but_04_over.gif new file mode 100644 index 0000000..9e80ce7 Binary files /dev/null and b/src/main/webapp/images/but_04_over.gif differ diff --git a/src/main/webapp/images/but_05.gif b/src/main/webapp/images/but_05.gif new file mode 100644 index 0000000..f916a4a Binary files /dev/null and b/src/main/webapp/images/but_05.gif differ diff --git a/src/main/webapp/images/but_05_over.gif b/src/main/webapp/images/but_05_over.gif new file mode 100644 index 0000000..7fc9b29 Binary files /dev/null and b/src/main/webapp/images/but_05_over.gif differ diff --git a/src/main/webapp/images/but_06.gif b/src/main/webapp/images/but_06.gif new file mode 100644 index 0000000..33213c7 Binary files /dev/null and b/src/main/webapp/images/but_06.gif differ diff --git a/src/main/webapp/images/but_b_01.gif b/src/main/webapp/images/but_b_01.gif new file mode 100644 index 0000000..020f109 Binary files /dev/null and b/src/main/webapp/images/but_b_01.gif differ diff --git a/src/main/webapp/images/but_b_01_off.gif b/src/main/webapp/images/but_b_01_off.gif new file mode 100644 index 0000000..7c8015a Binary files /dev/null and b/src/main/webapp/images/but_b_01_off.gif differ diff --git a/src/main/webapp/images/but_b_02.gif b/src/main/webapp/images/but_b_02.gif new file mode 100644 index 0000000..2794a45 Binary files /dev/null and b/src/main/webapp/images/but_b_02.gif differ diff --git a/src/main/webapp/images/but_b_02_off.gif b/src/main/webapp/images/but_b_02_off.gif new file mode 100644 index 0000000..0355a6c Binary files /dev/null and b/src/main/webapp/images/but_b_02_off.gif differ diff --git a/src/main/webapp/images/but_b_03.gif b/src/main/webapp/images/but_b_03.gif new file mode 100644 index 0000000..219d696 Binary files /dev/null and b/src/main/webapp/images/but_b_03.gif differ diff --git a/src/main/webapp/images/but_b_03_off.gif b/src/main/webapp/images/but_b_03_off.gif new file mode 100644 index 0000000..381e263 Binary files /dev/null and b/src/main/webapp/images/but_b_03_off.gif differ diff --git a/src/main/webapp/images/but_b_04.gif b/src/main/webapp/images/but_b_04.gif new file mode 100644 index 0000000..c490962 Binary files /dev/null and b/src/main/webapp/images/but_b_04.gif differ diff --git a/src/main/webapp/images/but_b_04_off.gif b/src/main/webapp/images/but_b_04_off.gif new file mode 100644 index 0000000..4e22c15 Binary files /dev/null and b/src/main/webapp/images/but_b_04_off.gif differ diff --git a/src/main/webapp/images/but_b_05.gif b/src/main/webapp/images/but_b_05.gif new file mode 100644 index 0000000..b34ad00 Binary files /dev/null and b/src/main/webapp/images/but_b_05.gif differ diff --git a/src/main/webapp/images/but_b_05_off.gif b/src/main/webapp/images/but_b_05_off.gif new file mode 100644 index 0000000..33d9d23 Binary files /dev/null and b/src/main/webapp/images/but_b_05_off.gif differ diff --git a/src/main/webapp/images/but_b_06.gif b/src/main/webapp/images/but_b_06.gif new file mode 100644 index 0000000..401381f Binary files /dev/null and b/src/main/webapp/images/but_b_06.gif differ diff --git a/src/main/webapp/images/but_b_06_off.gif b/src/main/webapp/images/but_b_06_off.gif new file mode 100644 index 0000000..c2b3520 Binary files /dev/null and b/src/main/webapp/images/but_b_06_off.gif differ diff --git a/src/main/webapp/images/but_c_01.gif b/src/main/webapp/images/but_c_01.gif new file mode 100644 index 0000000..ccd21d4 Binary files /dev/null and b/src/main/webapp/images/but_c_01.gif differ diff --git a/src/main/webapp/images/but_c_01_off.gif b/src/main/webapp/images/but_c_01_off.gif new file mode 100644 index 0000000..597b961 Binary files /dev/null and b/src/main/webapp/images/but_c_01_off.gif differ diff --git a/src/main/webapp/images/but_c_02.gif b/src/main/webapp/images/but_c_02.gif new file mode 100644 index 0000000..4ea3f85 Binary files /dev/null and b/src/main/webapp/images/but_c_02.gif differ diff --git a/src/main/webapp/images/but_c_02_off.gif b/src/main/webapp/images/but_c_02_off.gif new file mode 100644 index 0000000..b1c3a3f Binary files /dev/null and b/src/main/webapp/images/but_c_02_off.gif differ diff --git a/src/main/webapp/images/but_c_03.gif b/src/main/webapp/images/but_c_03.gif new file mode 100644 index 0000000..1b78e9c Binary files /dev/null and b/src/main/webapp/images/but_c_03.gif differ diff --git a/src/main/webapp/images/but_c_03_off.gif b/src/main/webapp/images/but_c_03_off.gif new file mode 100644 index 0000000..ffbb4fb Binary files /dev/null and b/src/main/webapp/images/but_c_03_off.gif differ diff --git a/src/main/webapp/images/but_c_04.gif b/src/main/webapp/images/but_c_04.gif new file mode 100644 index 0000000..56c9618 Binary files /dev/null and b/src/main/webapp/images/but_c_04.gif differ diff --git a/src/main/webapp/images/but_c_04_off.gif b/src/main/webapp/images/but_c_04_off.gif new file mode 100644 index 0000000..9778254 Binary files /dev/null and b/src/main/webapp/images/but_c_04_off.gif differ diff --git a/src/main/webapp/images/but_c_05.gif b/src/main/webapp/images/but_c_05.gif new file mode 100644 index 0000000..6fceb24 Binary files /dev/null and b/src/main/webapp/images/but_c_05.gif differ diff --git a/src/main/webapp/images/but_c_05_off.gif b/src/main/webapp/images/but_c_05_off.gif new file mode 100644 index 0000000..f0fd8f2 Binary files /dev/null and b/src/main/webapp/images/but_c_05_off.gif differ diff --git a/src/main/webapp/images/but_c_06.gif b/src/main/webapp/images/but_c_06.gif new file mode 100644 index 0000000..8faecdb Binary files /dev/null and b/src/main/webapp/images/but_c_06.gif differ diff --git a/src/main/webapp/images/but_c_06_off.gif b/src/main/webapp/images/but_c_06_off.gif new file mode 100644 index 0000000..92c6b8f Binary files /dev/null and b/src/main/webapp/images/but_c_06_off.gif differ diff --git a/src/main/webapp/images/carrier/ca_menu_01_over.gif b/src/main/webapp/images/carrier/ca_menu_01_over.gif new file mode 100644 index 0000000..f303533 Binary files /dev/null and b/src/main/webapp/images/carrier/ca_menu_01_over.gif differ diff --git a/src/main/webapp/images/carrier/ca_sub_img.jpg b/src/main/webapp/images/carrier/ca_sub_img.jpg new file mode 100644 index 0000000..010abd9 Binary files /dev/null and b/src/main/webapp/images/carrier/ca_sub_img.jpg differ diff --git a/src/main/webapp/images/carrier/ca_tit_01.gif b/src/main/webapp/images/carrier/ca_tit_01.gif new file mode 100644 index 0000000..f650546 Binary files /dev/null and b/src/main/webapp/images/carrier/ca_tit_01.gif differ diff --git a/src/main/webapp/images/carrier/ca_tit_02.gif b/src/main/webapp/images/carrier/ca_tit_02.gif new file mode 100644 index 0000000..da300be Binary files /dev/null and b/src/main/webapp/images/carrier/ca_tit_02.gif differ diff --git a/src/main/webapp/images/carrier/ca_tit_03.gif b/src/main/webapp/images/carrier/ca_tit_03.gif new file mode 100644 index 0000000..ad44c94 Binary files /dev/null and b/src/main/webapp/images/carrier/ca_tit_03.gif differ diff --git a/src/main/webapp/images/carrier/ca_title_01.gif b/src/main/webapp/images/carrier/ca_title_01.gif new file mode 100644 index 0000000..d808eaf Binary files /dev/null and b/src/main/webapp/images/carrier/ca_title_01.gif differ diff --git a/src/main/webapp/images/carrier/ca_title_02.gif b/src/main/webapp/images/carrier/ca_title_02.gif new file mode 100644 index 0000000..e25deba Binary files /dev/null and b/src/main/webapp/images/carrier/ca_title_02.gif differ diff --git a/src/main/webapp/images/carrier/ca_top_img.jpg b/src/main/webapp/images/carrier/ca_top_img.jpg new file mode 100644 index 0000000..e42b30c Binary files /dev/null and b/src/main/webapp/images/carrier/ca_top_img.jpg differ diff --git a/src/main/webapp/images/carrier/sub_back_ca.gif b/src/main/webapp/images/carrier/sub_back_ca.gif new file mode 100644 index 0000000..79bd0ed Binary files /dev/null and b/src/main/webapp/images/carrier/sub_back_ca.gif differ diff --git a/src/main/webapp/images/center/cen_01.gif b/src/main/webapp/images/center/cen_01.gif new file mode 100644 index 0000000..d43f0d3 Binary files /dev/null and b/src/main/webapp/images/center/cen_01.gif differ diff --git a/src/main/webapp/images/center/cen_01_20130325.gif b/src/main/webapp/images/center/cen_01_20130325.gif new file mode 100644 index 0000000..926b2e1 Binary files /dev/null and b/src/main/webapp/images/center/cen_01_20130325.gif differ diff --git a/src/main/webapp/images/center/cen_01_20131031.gif b/src/main/webapp/images/center/cen_01_20131031.gif new file mode 100644 index 0000000..c6abe0c Binary files /dev/null and b/src/main/webapp/images/center/cen_01_20131031.gif differ diff --git a/src/main/webapp/images/center/cen_02.gif b/src/main/webapp/images/center/cen_02.gif new file mode 100644 index 0000000..417e183 Binary files /dev/null and b/src/main/webapp/images/center/cen_02.gif differ diff --git a/src/main/webapp/images/center/cen_02_20130325.gif b/src/main/webapp/images/center/cen_02_20130325.gif new file mode 100644 index 0000000..4e58927 Binary files /dev/null and b/src/main/webapp/images/center/cen_02_20130325.gif differ diff --git a/src/main/webapp/images/center/cen_03.gif b/src/main/webapp/images/center/cen_03.gif new file mode 100644 index 0000000..043e8df Binary files /dev/null and b/src/main/webapp/images/center/cen_03.gif differ diff --git a/src/main/webapp/images/center/cen_top_img_01.jpg b/src/main/webapp/images/center/cen_top_img_01.jpg new file mode 100644 index 0000000..6e5854d Binary files /dev/null and b/src/main/webapp/images/center/cen_top_img_01.jpg differ diff --git a/src/main/webapp/images/center/cen_top_img_02.jpg b/src/main/webapp/images/center/cen_top_img_02.jpg new file mode 100644 index 0000000..0080d85 Binary files /dev/null and b/src/main/webapp/images/center/cen_top_img_02.jpg differ diff --git a/src/main/webapp/images/center/cen_top_img_03.jpg b/src/main/webapp/images/center/cen_top_img_03.jpg new file mode 100644 index 0000000..536d6ba Binary files /dev/null and b/src/main/webapp/images/center/cen_top_img_03.jpg differ diff --git a/src/main/webapp/images/center/cen_top_img_04.jpg b/src/main/webapp/images/center/cen_top_img_04.jpg new file mode 100644 index 0000000..8670490 Binary files /dev/null and b/src/main/webapp/images/center/cen_top_img_04.jpg differ diff --git a/src/main/webapp/images/center/cen_top_img_05.jpg b/src/main/webapp/images/center/cen_top_img_05.jpg new file mode 100644 index 0000000..f72b8f7 Binary files /dev/null and b/src/main/webapp/images/center/cen_top_img_05.jpg differ diff --git a/src/main/webapp/images/center/center_cen_02.gif b/src/main/webapp/images/center/center_cen_02.gif new file mode 100644 index 0000000..7b0403e Binary files /dev/null and b/src/main/webapp/images/center/center_cen_02.gif differ diff --git a/src/main/webapp/images/center/left_menu_01.gif b/src/main/webapp/images/center/left_menu_01.gif new file mode 100644 index 0000000..72e2206 Binary files /dev/null and b/src/main/webapp/images/center/left_menu_01.gif differ diff --git a/src/main/webapp/images/center/left_menu_01_over.gif b/src/main/webapp/images/center/left_menu_01_over.gif new file mode 100644 index 0000000..13663a7 Binary files /dev/null and b/src/main/webapp/images/center/left_menu_01_over.gif differ diff --git a/src/main/webapp/images/center/left_menu_02.gif b/src/main/webapp/images/center/left_menu_02.gif new file mode 100644 index 0000000..20326eb Binary files /dev/null and b/src/main/webapp/images/center/left_menu_02.gif differ diff --git a/src/main/webapp/images/center/left_menu_02_over.gif b/src/main/webapp/images/center/left_menu_02_over.gif new file mode 100644 index 0000000..2931625 Binary files /dev/null and b/src/main/webapp/images/center/left_menu_02_over.gif differ diff --git a/src/main/webapp/images/center/left_menu_03.gif b/src/main/webapp/images/center/left_menu_03.gif new file mode 100644 index 0000000..953de11 Binary files /dev/null and b/src/main/webapp/images/center/left_menu_03.gif differ diff --git a/src/main/webapp/images/center/left_menu_03_over.gif b/src/main/webapp/images/center/left_menu_03_over.gif new file mode 100644 index 0000000..fbc856e Binary files /dev/null and b/src/main/webapp/images/center/left_menu_03_over.gif differ diff --git a/src/main/webapp/images/center/left_tit_01.gif b/src/main/webapp/images/center/left_tit_01.gif new file mode 100644 index 0000000..c6b3e86 Binary files /dev/null and b/src/main/webapp/images/center/left_tit_01.gif differ diff --git a/src/main/webapp/images/center/top_tit_01.gif b/src/main/webapp/images/center/top_tit_01.gif new file mode 100644 index 0000000..e06ed4f Binary files /dev/null and b/src/main/webapp/images/center/top_tit_01.gif differ diff --git a/src/main/webapp/images/center/top_tit_02.gif b/src/main/webapp/images/center/top_tit_02.gif new file mode 100644 index 0000000..1a23108 Binary files /dev/null and b/src/main/webapp/images/center/top_tit_02.gif differ diff --git a/src/main/webapp/images/center/top_tit_03.gif b/src/main/webapp/images/center/top_tit_03.gif new file mode 100644 index 0000000..8fefe9f Binary files /dev/null and b/src/main/webapp/images/center/top_tit_03.gif differ diff --git a/src/main/webapp/images/com_logo.gif b/src/main/webapp/images/com_logo.gif new file mode 100644 index 0000000..123d9e5 Binary files /dev/null and b/src/main/webapp/images/com_logo.gif differ diff --git a/src/main/webapp/images/com_logo_1.gif b/src/main/webapp/images/com_logo_1.gif new file mode 100644 index 0000000..f8271fc Binary files /dev/null and b/src/main/webapp/images/com_logo_1.gif differ diff --git a/src/main/webapp/images/com_logo_2.gif b/src/main/webapp/images/com_logo_2.gif new file mode 100644 index 0000000..0ddb8b7 Binary files /dev/null and b/src/main/webapp/images/com_logo_2.gif differ diff --git a/src/main/webapp/images/community/blt_re.gif b/src/main/webapp/images/community/blt_re.gif new file mode 100644 index 0000000..48a55c1 Binary files /dev/null and b/src/main/webapp/images/community/blt_re.gif differ diff --git a/src/main/webapp/images/community/bnt_ok.gif b/src/main/webapp/images/community/bnt_ok.gif new file mode 100644 index 0000000..6e785ba Binary files /dev/null and b/src/main/webapp/images/community/bnt_ok.gif differ diff --git a/src/main/webapp/images/community/btn_sample.gif b/src/main/webapp/images/community/btn_sample.gif new file mode 100644 index 0000000..c4233d8 Binary files /dev/null and b/src/main/webapp/images/community/btn_sample.gif differ diff --git a/src/main/webapp/images/community/commu_top_img_01.jpg b/src/main/webapp/images/community/commu_top_img_01.jpg new file mode 100644 index 0000000..24e11db Binary files /dev/null and b/src/main/webapp/images/community/commu_top_img_01.jpg differ diff --git a/src/main/webapp/images/community/commu_top_img_02.gif b/src/main/webapp/images/community/commu_top_img_02.gif new file mode 100644 index 0000000..cbd5758 Binary files /dev/null and b/src/main/webapp/images/community/commu_top_img_02.gif differ diff --git a/src/main/webapp/images/community/commu_top_img_02.jpg b/src/main/webapp/images/community/commu_top_img_02.jpg new file mode 100644 index 0000000..db89368 Binary files /dev/null and b/src/main/webapp/images/community/commu_top_img_02.jpg differ diff --git a/src/main/webapp/images/community/commu_top_img_03.gif b/src/main/webapp/images/community/commu_top_img_03.gif new file mode 100644 index 0000000..15f62fd Binary files /dev/null and b/src/main/webapp/images/community/commu_top_img_03.gif differ diff --git a/src/main/webapp/images/community/commu_top_img_03.jpg b/src/main/webapp/images/community/commu_top_img_03.jpg new file mode 100644 index 0000000..adcfd6a Binary files /dev/null and b/src/main/webapp/images/community/commu_top_img_03.jpg differ diff --git a/src/main/webapp/images/community/commu_top_img_04.jpg b/src/main/webapp/images/community/commu_top_img_04.jpg new file mode 100644 index 0000000..cea36a7 Binary files /dev/null and b/src/main/webapp/images/community/commu_top_img_04.jpg differ diff --git a/src/main/webapp/images/community/commu_top_img_05.jpg b/src/main/webapp/images/community/commu_top_img_05.jpg new file mode 100644 index 0000000..ec1d686 Binary files /dev/null and b/src/main/webapp/images/community/commu_top_img_05.jpg differ diff --git a/src/main/webapp/images/community/commu_top_img_06.jpg b/src/main/webapp/images/community/commu_top_img_06.jpg new file mode 100644 index 0000000..87a5df5 Binary files /dev/null and b/src/main/webapp/images/community/commu_top_img_06.jpg differ diff --git a/src/main/webapp/images/community/cus_bnt_cancel.gif b/src/main/webapp/images/community/cus_bnt_cancel.gif new file mode 100644 index 0000000..31d7e66 Binary files /dev/null and b/src/main/webapp/images/community/cus_bnt_cancel.gif differ diff --git a/src/main/webapp/images/community/cus_bnt_delet.gif b/src/main/webapp/images/community/cus_bnt_delet.gif new file mode 100644 index 0000000..ed43ad8 Binary files /dev/null and b/src/main/webapp/images/community/cus_bnt_delet.gif differ diff --git a/src/main/webapp/images/community/cus_bnt_list.gif b/src/main/webapp/images/community/cus_bnt_list.gif new file mode 100644 index 0000000..48225df Binary files /dev/null and b/src/main/webapp/images/community/cus_bnt_list.gif differ diff --git a/src/main/webapp/images/community/cus_bnt_modify.gif b/src/main/webapp/images/community/cus_bnt_modify.gif new file mode 100644 index 0000000..c48e843 Binary files /dev/null and b/src/main/webapp/images/community/cus_bnt_modify.gif differ diff --git a/src/main/webapp/images/community/cus_bnt_save.gif b/src/main/webapp/images/community/cus_bnt_save.gif new file mode 100644 index 0000000..00b3507 Binary files /dev/null and b/src/main/webapp/images/community/cus_bnt_save.gif differ diff --git a/src/main/webapp/images/community/cus_bnt_write.gif b/src/main/webapp/images/community/cus_bnt_write.gif new file mode 100644 index 0000000..3905a02 Binary files /dev/null and b/src/main/webapp/images/community/cus_bnt_write.gif differ diff --git a/src/main/webapp/images/community/left_menu_01_over.gif b/src/main/webapp/images/community/left_menu_01_over.gif new file mode 100644 index 0000000..1415244 Binary files /dev/null and b/src/main/webapp/images/community/left_menu_01_over.gif differ diff --git a/src/main/webapp/images/community/left_tit_01.gif b/src/main/webapp/images/community/left_tit_01.gif new file mode 100644 index 0000000..d2b7de8 Binary files /dev/null and b/src/main/webapp/images/community/left_tit_01.gif differ diff --git a/src/main/webapp/images/community/tit_bar_01.gif b/src/main/webapp/images/community/tit_bar_01.gif new file mode 100644 index 0000000..4cfec85 Binary files /dev/null and b/src/main/webapp/images/community/tit_bar_01.gif differ diff --git a/src/main/webapp/images/community/tit_bar_02.gif b/src/main/webapp/images/community/tit_bar_02.gif new file mode 100644 index 0000000..def473d Binary files /dev/null and b/src/main/webapp/images/community/tit_bar_02.gif differ diff --git a/src/main/webapp/images/community/tit_bar_03.gif b/src/main/webapp/images/community/tit_bar_03.gif new file mode 100644 index 0000000..749cc27 Binary files /dev/null and b/src/main/webapp/images/community/tit_bar_03.gif differ diff --git a/src/main/webapp/images/community/tit_bar_04.gif b/src/main/webapp/images/community/tit_bar_04.gif new file mode 100644 index 0000000..4f865d3 Binary files /dev/null and b/src/main/webapp/images/community/tit_bar_04.gif differ diff --git a/src/main/webapp/images/community/tit_bar_05.gif b/src/main/webapp/images/community/tit_bar_05.gif new file mode 100644 index 0000000..70c0208 Binary files /dev/null and b/src/main/webapp/images/community/tit_bar_05.gif differ diff --git a/src/main/webapp/images/community/top_tit_01.gif b/src/main/webapp/images/community/top_tit_01.gif new file mode 100644 index 0000000..5e5af6c Binary files /dev/null and b/src/main/webapp/images/community/top_tit_01.gif differ diff --git a/src/main/webapp/images/contents/background.png b/src/main/webapp/images/contents/background.png new file mode 100644 index 0000000..2356ec6 Binary files /dev/null and b/src/main/webapp/images/contents/background.png differ diff --git a/src/main/webapp/images/contents/fla/Banner_1.fla b/src/main/webapp/images/contents/fla/Banner_1.fla new file mode 100644 index 0000000..86553d2 Binary files /dev/null and b/src/main/webapp/images/contents/fla/Banner_1.fla differ diff --git a/src/main/webapp/images/contents/fla/Banner_1.swf b/src/main/webapp/images/contents/fla/Banner_1.swf new file mode 100644 index 0000000..6122400 Binary files /dev/null and b/src/main/webapp/images/contents/fla/Banner_1.swf differ diff --git a/src/main/webapp/images/contents/fla/Banner_1_20130325.swf b/src/main/webapp/images/contents/fla/Banner_1_20130325.swf new file mode 100644 index 0000000..5bb98ee Binary files /dev/null and b/src/main/webapp/images/contents/fla/Banner_1_20130325.swf differ diff --git a/src/main/webapp/images/contents/fla/Banner_1_20130325_01.swf b/src/main/webapp/images/contents/fla/Banner_1_20130325_01.swf new file mode 100644 index 0000000..67ded23 Binary files /dev/null and b/src/main/webapp/images/contents/fla/Banner_1_20130325_01.swf differ diff --git a/src/main/webapp/images/contents/fla/Banner_1_20131106.swf b/src/main/webapp/images/contents/fla/Banner_1_20131106.swf new file mode 100644 index 0000000..f3b3261 Binary files /dev/null and b/src/main/webapp/images/contents/fla/Banner_1_20131106.swf differ diff --git a/src/main/webapp/images/contents/fla/Banner_1_back.swf b/src/main/webapp/images/contents/fla/Banner_1_back.swf new file mode 100644 index 0000000..0842761 Binary files /dev/null and b/src/main/webapp/images/contents/fla/Banner_1_back.swf differ diff --git a/src/main/webapp/images/contents/fla/Banner_1_back2.swf b/src/main/webapp/images/contents/fla/Banner_1_back2.swf new file mode 100644 index 0000000..e18bdd4 Binary files /dev/null and b/src/main/webapp/images/contents/fla/Banner_1_back2.swf differ diff --git a/src/main/webapp/images/contents/fla/ab_top_img.fla b/src/main/webapp/images/contents/fla/ab_top_img.fla new file mode 100644 index 0000000..aabaa0b Binary files /dev/null and b/src/main/webapp/images/contents/fla/ab_top_img.fla differ diff --git a/src/main/webapp/images/contents/fla/ab_top_img.swf b/src/main/webapp/images/contents/fla/ab_top_img.swf new file mode 100644 index 0000000..dcdf864 Binary files /dev/null and b/src/main/webapp/images/contents/fla/ab_top_img.swf differ diff --git a/src/main/webapp/images/contents/fla/ca_top_img.fla b/src/main/webapp/images/contents/fla/ca_top_img.fla new file mode 100644 index 0000000..e34dd31 Binary files /dev/null and b/src/main/webapp/images/contents/fla/ca_top_img.fla differ diff --git a/src/main/webapp/images/contents/fla/ca_top_img.swf b/src/main/webapp/images/contents/fla/ca_top_img.swf new file mode 100644 index 0000000..3b9e08a Binary files /dev/null and b/src/main/webapp/images/contents/fla/ca_top_img.swf differ diff --git a/src/main/webapp/images/contents/fla/main.fla b/src/main/webapp/images/contents/fla/main.fla new file mode 100644 index 0000000..60bc7de Binary files /dev/null and b/src/main/webapp/images/contents/fla/main.fla differ diff --git a/src/main/webapp/images/contents/fla/main.swf b/src/main/webapp/images/contents/fla/main.swf new file mode 100644 index 0000000..a5feb42 Binary files /dev/null and b/src/main/webapp/images/contents/fla/main.swf differ diff --git a/src/main/webapp/images/contents/fla/pr_top_img.fla b/src/main/webapp/images/contents/fla/pr_top_img.fla new file mode 100644 index 0000000..7d4c43c Binary files /dev/null and b/src/main/webapp/images/contents/fla/pr_top_img.fla differ diff --git a/src/main/webapp/images/contents/fla/pr_top_img.swf b/src/main/webapp/images/contents/fla/pr_top_img.swf new file mode 100644 index 0000000..14b89ae Binary files /dev/null and b/src/main/webapp/images/contents/fla/pr_top_img.swf differ diff --git a/src/main/webapp/images/contents/fla/re_top_img.fla b/src/main/webapp/images/contents/fla/re_top_img.fla new file mode 100644 index 0000000..af5cf62 Binary files /dev/null and b/src/main/webapp/images/contents/fla/re_top_img.fla differ diff --git a/src/main/webapp/images/contents/fla/re_top_img.swf b/src/main/webapp/images/contents/fla/re_top_img.swf new file mode 100644 index 0000000..ebdfd8c Binary files /dev/null and b/src/main/webapp/images/contents/fla/re_top_img.swf differ diff --git a/src/main/webapp/images/contents/fla/sh_top_img.fla b/src/main/webapp/images/contents/fla/sh_top_img.fla new file mode 100644 index 0000000..f5a464f Binary files /dev/null and b/src/main/webapp/images/contents/fla/sh_top_img.fla differ diff --git a/src/main/webapp/images/contents/fla/sh_top_img.swf b/src/main/webapp/images/contents/fla/sh_top_img.swf new file mode 100644 index 0000000..b07b5fc Binary files /dev/null and b/src/main/webapp/images/contents/fla/sh_top_img.swf differ diff --git a/src/main/webapp/images/contents/fla/top_menu.fla b/src/main/webapp/images/contents/fla/top_menu.fla new file mode 100644 index 0000000..100a5cd Binary files /dev/null and b/src/main/webapp/images/contents/fla/top_menu.fla differ diff --git a/src/main/webapp/images/contents/fla/top_menu.swf b/src/main/webapp/images/contents/fla/top_menu.swf new file mode 100644 index 0000000..65e60de Binary files /dev/null and b/src/main/webapp/images/contents/fla/top_menu.swf differ diff --git a/src/main/webapp/images/contents/login_icon.gif b/src/main/webapp/images/contents/login_icon.gif new file mode 100644 index 0000000..7bdb54b Binary files /dev/null and b/src/main/webapp/images/contents/login_icon.gif differ diff --git a/src/main/webapp/images/contents/main_cen_01.gif b/src/main/webapp/images/contents/main_cen_01.gif new file mode 100644 index 0000000..9fff8b3 Binary files /dev/null and b/src/main/webapp/images/contents/main_cen_01.gif differ diff --git a/src/main/webapp/images/contents/main_cen_02.gif b/src/main/webapp/images/contents/main_cen_02.gif new file mode 100644 index 0000000..bd421f5 Binary files /dev/null and b/src/main/webapp/images/contents/main_cen_02.gif differ diff --git a/src/main/webapp/images/contents/peo_back.jpg b/src/main/webapp/images/contents/peo_back.jpg new file mode 100644 index 0000000..61eb2b8 Binary files /dev/null and b/src/main/webapp/images/contents/peo_back.jpg differ diff --git a/src/main/webapp/images/control_back.png b/src/main/webapp/images/control_back.png new file mode 100644 index 0000000..802a2ee Binary files /dev/null and b/src/main/webapp/images/control_back.png differ diff --git a/src/main/webapp/images/control_fastforward.png b/src/main/webapp/images/control_fastforward.png new file mode 100644 index 0000000..31f7fd3 Binary files /dev/null and b/src/main/webapp/images/control_fastforward.png differ diff --git a/src/main/webapp/images/control_play.png b/src/main/webapp/images/control_play.png new file mode 100644 index 0000000..0846555 Binary files /dev/null and b/src/main/webapp/images/control_play.png differ diff --git a/src/main/webapp/images/control_play_back.png b/src/main/webapp/images/control_play_back.png new file mode 100644 index 0000000..efa2679 Binary files /dev/null and b/src/main/webapp/images/control_play_back.png differ diff --git a/src/main/webapp/images/control_play_blue.png b/src/main/webapp/images/control_play_blue.png new file mode 100644 index 0000000..f8c8ec6 Binary files /dev/null and b/src/main/webapp/images/control_play_blue.png differ diff --git a/src/main/webapp/images/control_rewind.png b/src/main/webapp/images/control_rewind.png new file mode 100644 index 0000000..c029447 Binary files /dev/null and b/src/main/webapp/images/control_rewind.png differ diff --git a/src/main/webapp/images/copyright.gif b/src/main/webapp/images/copyright.gif new file mode 100644 index 0000000..99291aa Binary files /dev/null and b/src/main/webapp/images/copyright.gif differ diff --git a/src/main/webapp/images/cus_bnt_cancel.gif b/src/main/webapp/images/cus_bnt_cancel.gif new file mode 100644 index 0000000..31d7e66 Binary files /dev/null and b/src/main/webapp/images/cus_bnt_cancel.gif differ diff --git a/src/main/webapp/images/cus_bnt_delet.gif b/src/main/webapp/images/cus_bnt_delet.gif new file mode 100644 index 0000000..ed43ad8 Binary files /dev/null and b/src/main/webapp/images/cus_bnt_delet.gif differ diff --git a/src/main/webapp/images/cus_bnt_list.gif b/src/main/webapp/images/cus_bnt_list.gif new file mode 100644 index 0000000..48225df Binary files /dev/null and b/src/main/webapp/images/cus_bnt_list.gif differ diff --git a/src/main/webapp/images/cus_bnt_modify.gif b/src/main/webapp/images/cus_bnt_modify.gif new file mode 100644 index 0000000..c48e843 Binary files /dev/null and b/src/main/webapp/images/cus_bnt_modify.gif differ diff --git a/src/main/webapp/images/cus_bnt_ok.gif b/src/main/webapp/images/cus_bnt_ok.gif new file mode 100644 index 0000000..f4cad7f Binary files /dev/null and b/src/main/webapp/images/cus_bnt_ok.gif differ diff --git a/src/main/webapp/images/cus_bnt_save.gif b/src/main/webapp/images/cus_bnt_save.gif new file mode 100644 index 0000000..00b3507 Binary files /dev/null and b/src/main/webapp/images/cus_bnt_save.gif differ diff --git a/src/main/webapp/images/cus_bnt_write.gif b/src/main/webapp/images/cus_bnt_write.gif new file mode 100644 index 0000000..3905a02 Binary files /dev/null and b/src/main/webapp/images/cus_bnt_write.gif differ diff --git a/src/main/webapp/images/data/data_top_img_01.jpg b/src/main/webapp/images/data/data_top_img_01.jpg new file mode 100644 index 0000000..523c29b Binary files /dev/null and b/src/main/webapp/images/data/data_top_img_01.jpg differ diff --git a/src/main/webapp/images/data/data_top_img_02.jpg b/src/main/webapp/images/data/data_top_img_02.jpg new file mode 100644 index 0000000..498a877 Binary files /dev/null and b/src/main/webapp/images/data/data_top_img_02.jpg differ diff --git a/src/main/webapp/images/data/data_top_img_03.jpg b/src/main/webapp/images/data/data_top_img_03.jpg new file mode 100644 index 0000000..4bdeb5a Binary files /dev/null and b/src/main/webapp/images/data/data_top_img_03.jpg differ diff --git a/src/main/webapp/images/data/data_top_img_04.jpg b/src/main/webapp/images/data/data_top_img_04.jpg new file mode 100644 index 0000000..5c86329 Binary files /dev/null and b/src/main/webapp/images/data/data_top_img_04.jpg differ diff --git a/src/main/webapp/images/data/data_top_img_05.jpg b/src/main/webapp/images/data/data_top_img_05.jpg new file mode 100644 index 0000000..87a5df5 Binary files /dev/null and b/src/main/webapp/images/data/data_top_img_05.jpg differ diff --git a/src/main/webapp/images/data/left_menu_01_over.gif b/src/main/webapp/images/data/left_menu_01_over.gif new file mode 100644 index 0000000..ecddf73 Binary files /dev/null and b/src/main/webapp/images/data/left_menu_01_over.gif differ diff --git a/src/main/webapp/images/data/left_tit_01.gif b/src/main/webapp/images/data/left_tit_01.gif new file mode 100644 index 0000000..a23652c Binary files /dev/null and b/src/main/webapp/images/data/left_tit_01.gif differ diff --git a/src/main/webapp/images/data/top_tit_01.gif b/src/main/webapp/images/data/top_tit_01.gif new file mode 100644 index 0000000..5bd5677 Binary files /dev/null and b/src/main/webapp/images/data/top_tit_01.gif differ diff --git a/src/main/webapp/images/down/1_left_02.gif b/src/main/webapp/images/down/1_left_02.gif new file mode 100644 index 0000000..31f201e Binary files /dev/null and b/src/main/webapp/images/down/1_left_02.gif differ diff --git a/src/main/webapp/images/down/1_left_02_over.gif b/src/main/webapp/images/down/1_left_02_over.gif new file mode 100644 index 0000000..a898c59 Binary files /dev/null and b/src/main/webapp/images/down/1_left_02_over.gif differ diff --git a/src/main/webapp/images/down/6_toptit_01.gif b/src/main/webapp/images/down/6_toptit_01.gif new file mode 100644 index 0000000..b857af4 Binary files /dev/null and b/src/main/webapp/images/down/6_toptit_01.gif differ diff --git a/src/main/webapp/images/down/cancel.jpg b/src/main/webapp/images/down/cancel.jpg new file mode 100644 index 0000000..d2defc3 Binary files /dev/null and b/src/main/webapp/images/down/cancel.jpg differ diff --git a/src/main/webapp/images/down/cus_bnt_approval.gif b/src/main/webapp/images/down/cus_bnt_approval.gif new file mode 100644 index 0000000..584b4da Binary files /dev/null and b/src/main/webapp/images/down/cus_bnt_approval.gif differ diff --git a/src/main/webapp/images/down/cus_bnt_return.gif b/src/main/webapp/images/down/cus_bnt_return.gif new file mode 100644 index 0000000..24caa13 Binary files /dev/null and b/src/main/webapp/images/down/cus_bnt_return.gif differ diff --git a/src/main/webapp/images/down/cus_bnt_u_approval.gif b/src/main/webapp/images/down/cus_bnt_u_approval.gif new file mode 100644 index 0000000..999c9f4 Binary files /dev/null and b/src/main/webapp/images/down/cus_bnt_u_approval.gif differ diff --git a/src/main/webapp/images/down/cus_bnt_u_return.gif b/src/main/webapp/images/down/cus_bnt_u_return.gif new file mode 100644 index 0000000..02e7989 Binary files /dev/null and b/src/main/webapp/images/down/cus_bnt_u_return.gif differ diff --git a/src/main/webapp/images/down/dn.jpg b/src/main/webapp/images/down/dn.jpg new file mode 100644 index 0000000..cb9dd9c Binary files /dev/null and b/src/main/webapp/images/down/dn.jpg differ diff --git a/src/main/webapp/images/down/down_top.gif b/src/main/webapp/images/down/down_top.gif new file mode 100644 index 0000000..63b7df2 Binary files /dev/null and b/src/main/webapp/images/down/down_top.gif differ diff --git a/src/main/webapp/images/down/down_top_back.gif b/src/main/webapp/images/down/down_top_back.gif new file mode 100644 index 0000000..3498eec Binary files /dev/null and b/src/main/webapp/images/down/down_top_back.gif differ diff --git a/src/main/webapp/images/down/left_menu_01.gif b/src/main/webapp/images/down/left_menu_01.gif new file mode 100644 index 0000000..e95728c Binary files /dev/null and b/src/main/webapp/images/down/left_menu_01.gif differ diff --git a/src/main/webapp/images/down/left_menu_01_over.gif b/src/main/webapp/images/down/left_menu_01_over.gif new file mode 100644 index 0000000..fa47c1c Binary files /dev/null and b/src/main/webapp/images/down/left_menu_01_over.gif differ diff --git a/src/main/webapp/images/down/left_menu_02.gif b/src/main/webapp/images/down/left_menu_02.gif new file mode 100644 index 0000000..296f9f8 Binary files /dev/null and b/src/main/webapp/images/down/left_menu_02.gif differ diff --git a/src/main/webapp/images/down/left_menu_02_over.gif b/src/main/webapp/images/down/left_menu_02_over.gif new file mode 100644 index 0000000..f0cf686 Binary files /dev/null and b/src/main/webapp/images/down/left_menu_02_over.gif differ diff --git a/src/main/webapp/images/down/menu_01.gif b/src/main/webapp/images/down/menu_01.gif new file mode 100644 index 0000000..db8302b Binary files /dev/null and b/src/main/webapp/images/down/menu_01.gif differ diff --git a/src/main/webapp/images/down/menu_01_over.gif b/src/main/webapp/images/down/menu_01_over.gif new file mode 100644 index 0000000..ad25aeb Binary files /dev/null and b/src/main/webapp/images/down/menu_01_over.gif differ diff --git a/src/main/webapp/images/down/menu_02.gif b/src/main/webapp/images/down/menu_02.gif new file mode 100644 index 0000000..434abcd Binary files /dev/null and b/src/main/webapp/images/down/menu_02.gif differ diff --git a/src/main/webapp/images/down/menu_02_over.gif b/src/main/webapp/images/down/menu_02_over.gif new file mode 100644 index 0000000..c5978af Binary files /dev/null and b/src/main/webapp/images/down/menu_02_over.gif differ diff --git a/src/main/webapp/images/down/menu_03.gif b/src/main/webapp/images/down/menu_03.gif new file mode 100644 index 0000000..5a4ace9 Binary files /dev/null and b/src/main/webapp/images/down/menu_03.gif differ diff --git a/src/main/webapp/images/down/menu_03_over.gif b/src/main/webapp/images/down/menu_03_over.gif new file mode 100644 index 0000000..023110f Binary files /dev/null and b/src/main/webapp/images/down/menu_03_over.gif differ diff --git a/src/main/webapp/images/down/menu_04.gif b/src/main/webapp/images/down/menu_04.gif new file mode 100644 index 0000000..6936f1b Binary files /dev/null and b/src/main/webapp/images/down/menu_04.gif differ diff --git a/src/main/webapp/images/down/menu_04_over.gif b/src/main/webapp/images/down/menu_04_over.gif new file mode 100644 index 0000000..0bc2466 Binary files /dev/null and b/src/main/webapp/images/down/menu_04_over.gif differ diff --git a/src/main/webapp/images/down/menu_05.gif b/src/main/webapp/images/down/menu_05.gif new file mode 100644 index 0000000..08c07c0 Binary files /dev/null and b/src/main/webapp/images/down/menu_05.gif differ diff --git a/src/main/webapp/images/down/menu_05_over.gif b/src/main/webapp/images/down/menu_05_over.gif new file mode 100644 index 0000000..6121454 Binary files /dev/null and b/src/main/webapp/images/down/menu_05_over.gif differ diff --git a/src/main/webapp/images/down/menu_06.gif b/src/main/webapp/images/down/menu_06.gif new file mode 100644 index 0000000..3af1622 Binary files /dev/null and b/src/main/webapp/images/down/menu_06.gif differ diff --git a/src/main/webapp/images/down/menu_06_over.gif b/src/main/webapp/images/down/menu_06_over.gif new file mode 100644 index 0000000..6ce9ad2 Binary files /dev/null and b/src/main/webapp/images/down/menu_06_over.gif differ diff --git a/src/main/webapp/images/down/menu_07.gif b/src/main/webapp/images/down/menu_07.gif new file mode 100644 index 0000000..ef9e47f Binary files /dev/null and b/src/main/webapp/images/down/menu_07.gif differ diff --git a/src/main/webapp/images/down/menu_07_over.gif b/src/main/webapp/images/down/menu_07_over.gif new file mode 100644 index 0000000..668b3bc Binary files /dev/null and b/src/main/webapp/images/down/menu_07_over.gif differ diff --git a/src/main/webapp/images/down/menu_08.gif b/src/main/webapp/images/down/menu_08.gif new file mode 100644 index 0000000..2a57d29 Binary files /dev/null and b/src/main/webapp/images/down/menu_08.gif differ diff --git a/src/main/webapp/images/down/menu_08_over.gif b/src/main/webapp/images/down/menu_08_over.gif new file mode 100644 index 0000000..1c71952 Binary files /dev/null and b/src/main/webapp/images/down/menu_08_over.gif differ diff --git a/src/main/webapp/images/down/menu_09.gif b/src/main/webapp/images/down/menu_09.gif new file mode 100644 index 0000000..9803efc Binary files /dev/null and b/src/main/webapp/images/down/menu_09.gif differ diff --git a/src/main/webapp/images/down/menu_09_over.gif b/src/main/webapp/images/down/menu_09_over.gif new file mode 100644 index 0000000..74b56a5 Binary files /dev/null and b/src/main/webapp/images/down/menu_09_over.gif differ diff --git a/src/main/webapp/images/down/mypage_bnt.gif b/src/main/webapp/images/down/mypage_bnt.gif new file mode 100644 index 0000000..dc7318d Binary files /dev/null and b/src/main/webapp/images/down/mypage_bnt.gif differ diff --git a/src/main/webapp/images/down/ok.jpg b/src/main/webapp/images/down/ok.jpg new file mode 100644 index 0000000..65152e6 Binary files /dev/null and b/src/main/webapp/images/down/ok.jpg differ diff --git a/src/main/webapp/images/down/sichutitle.gif b/src/main/webapp/images/down/sichutitle.gif new file mode 100644 index 0000000..2659900 Binary files /dev/null and b/src/main/webapp/images/down/sichutitle.gif differ diff --git a/src/main/webapp/images/down/top_mypage.gif b/src/main/webapp/images/down/top_mypage.gif new file mode 100644 index 0000000..f27385e Binary files /dev/null and b/src/main/webapp/images/down/top_mypage.gif differ diff --git a/src/main/webapp/images/down/top_tit_001.gif b/src/main/webapp/images/down/top_tit_001.gif new file mode 100644 index 0000000..94df863 Binary files /dev/null and b/src/main/webapp/images/down/top_tit_001.gif differ diff --git a/src/main/webapp/images/down/top_tit_002.gif b/src/main/webapp/images/down/top_tit_002.gif new file mode 100644 index 0000000..8fd1406 Binary files /dev/null and b/src/main/webapp/images/down/top_tit_002.gif differ diff --git a/src/main/webapp/images/down_01.gif b/src/main/webapp/images/down_01.gif new file mode 100644 index 0000000..91361a6 Binary files /dev/null and b/src/main/webapp/images/down_01.gif differ diff --git a/src/main/webapp/images/down_01_back.gif b/src/main/webapp/images/down_01_back.gif new file mode 100644 index 0000000..5f989f5 Binary files /dev/null and b/src/main/webapp/images/down_01_back.gif differ diff --git a/src/main/webapp/images/down_02.gif b/src/main/webapp/images/down_02.gif new file mode 100644 index 0000000..8f7a0a7 Binary files /dev/null and b/src/main/webapp/images/down_02.gif differ diff --git a/src/main/webapp/images/down_02_back.gif b/src/main/webapp/images/down_02_back.gif new file mode 100644 index 0000000..5947ad0 Binary files /dev/null and b/src/main/webapp/images/down_02_back.gif differ diff --git a/src/main/webapp/images/down_03.gif b/src/main/webapp/images/down_03.gif new file mode 100644 index 0000000..8541bda Binary files /dev/null and b/src/main/webapp/images/down_03.gif differ diff --git a/src/main/webapp/images/down_04.gif b/src/main/webapp/images/down_04.gif new file mode 100644 index 0000000..3830a3d Binary files /dev/null and b/src/main/webapp/images/down_04.gif differ diff --git a/src/main/webapp/images/down_05.gif b/src/main/webapp/images/down_05.gif new file mode 100644 index 0000000..3230545 Binary files /dev/null and b/src/main/webapp/images/down_05.gif differ diff --git a/src/main/webapp/images/down_06.gif b/src/main/webapp/images/down_06.gif new file mode 100644 index 0000000..c133df7 Binary files /dev/null and b/src/main/webapp/images/down_06.gif differ diff --git a/src/main/webapp/images/down_new01.gif b/src/main/webapp/images/down_new01.gif new file mode 100644 index 0000000..4cfb72a Binary files /dev/null and b/src/main/webapp/images/down_new01.gif differ diff --git a/src/main/webapp/images/down_new01_1.gif b/src/main/webapp/images/down_new01_1.gif new file mode 100644 index 0000000..26e046b Binary files /dev/null and b/src/main/webapp/images/down_new01_1.gif differ diff --git a/src/main/webapp/images/down_new01_n.gif b/src/main/webapp/images/down_new01_n.gif new file mode 100644 index 0000000..7352ce5 Binary files /dev/null and b/src/main/webapp/images/down_new01_n.gif differ diff --git a/src/main/webapp/images/down_new02.gif b/src/main/webapp/images/down_new02.gif new file mode 100644 index 0000000..f50f5db Binary files /dev/null and b/src/main/webapp/images/down_new02.gif differ diff --git a/src/main/webapp/images/down_new02_n.gif b/src/main/webapp/images/down_new02_n.gif new file mode 100644 index 0000000..c97f918 Binary files /dev/null and b/src/main/webapp/images/down_new02_n.gif differ diff --git a/src/main/webapp/images/down_new03.gif b/src/main/webapp/images/down_new03.gif new file mode 100644 index 0000000..a86d8a3 Binary files /dev/null and b/src/main/webapp/images/down_new03.gif differ diff --git a/src/main/webapp/images/down_new04.gif b/src/main/webapp/images/down_new04.gif new file mode 100644 index 0000000..a597e27 Binary files /dev/null and b/src/main/webapp/images/down_new04.gif differ diff --git a/src/main/webapp/images/down_new04_n.gif b/src/main/webapp/images/down_new04_n.gif new file mode 100644 index 0000000..afd246c Binary files /dev/null and b/src/main/webapp/images/down_new04_n.gif differ diff --git a/src/main/webapp/images/down_new05.gif b/src/main/webapp/images/down_new05.gif new file mode 100644 index 0000000..3de92e5 Binary files /dev/null and b/src/main/webapp/images/down_new05.gif differ diff --git a/src/main/webapp/images/down_new05_1.gif b/src/main/webapp/images/down_new05_1.gif new file mode 100644 index 0000000..3361811 Binary files /dev/null and b/src/main/webapp/images/down_new05_1.gif differ diff --git a/src/main/webapp/images/down_new05_n.gif b/src/main/webapp/images/down_new05_n.gif new file mode 100644 index 0000000..3ca6b84 Binary files /dev/null and b/src/main/webapp/images/down_new05_n.gif differ diff --git a/src/main/webapp/images/down_new06_n.gif b/src/main/webapp/images/down_new06_n.gif new file mode 100644 index 0000000..1abed23 Binary files /dev/null and b/src/main/webapp/images/down_new06_n.gif differ diff --git a/src/main/webapp/images/exchange_rate.gif b/src/main/webapp/images/exchange_rate.gif new file mode 100644 index 0000000..2da2955 Binary files /dev/null and b/src/main/webapp/images/exchange_rate.gif differ diff --git a/src/main/webapp/images/file/bu5_close.gif b/src/main/webapp/images/file/bu5_close.gif new file mode 100644 index 0000000..4b7328a Binary files /dev/null and b/src/main/webapp/images/file/bu5_close.gif differ diff --git a/src/main/webapp/images/file/bu_icon_delete.gif b/src/main/webapp/images/file/bu_icon_delete.gif new file mode 100644 index 0000000..9d4760c Binary files /dev/null and b/src/main/webapp/images/file/bu_icon_delete.gif differ diff --git a/src/main/webapp/images/fla/Banner_1.fla b/src/main/webapp/images/fla/Banner_1.fla new file mode 100644 index 0000000..86553d2 Binary files /dev/null and b/src/main/webapp/images/fla/Banner_1.fla differ diff --git a/src/main/webapp/images/fla/Banner_1.swf b/src/main/webapp/images/fla/Banner_1.swf new file mode 100644 index 0000000..6122400 Binary files /dev/null and b/src/main/webapp/images/fla/Banner_1.swf differ diff --git a/src/main/webapp/images/fla/Banner_1_20130325.swf b/src/main/webapp/images/fla/Banner_1_20130325.swf new file mode 100644 index 0000000..5bb98ee Binary files /dev/null and b/src/main/webapp/images/fla/Banner_1_20130325.swf differ diff --git a/src/main/webapp/images/fla/Banner_1_20130325_01.swf b/src/main/webapp/images/fla/Banner_1_20130325_01.swf new file mode 100644 index 0000000..67ded23 Binary files /dev/null and b/src/main/webapp/images/fla/Banner_1_20130325_01.swf differ diff --git a/src/main/webapp/images/fla/Banner_1_20131106.swf b/src/main/webapp/images/fla/Banner_1_20131106.swf new file mode 100644 index 0000000..f3b3261 Binary files /dev/null and b/src/main/webapp/images/fla/Banner_1_20131106.swf differ diff --git a/src/main/webapp/images/fla/Banner_1_back.swf b/src/main/webapp/images/fla/Banner_1_back.swf new file mode 100644 index 0000000..0842761 Binary files /dev/null and b/src/main/webapp/images/fla/Banner_1_back.swf differ diff --git a/src/main/webapp/images/fla/Banner_1_back2.swf b/src/main/webapp/images/fla/Banner_1_back2.swf new file mode 100644 index 0000000..e18bdd4 Binary files /dev/null and b/src/main/webapp/images/fla/Banner_1_back2.swf differ diff --git a/src/main/webapp/images/fla/ab_top_img.fla b/src/main/webapp/images/fla/ab_top_img.fla new file mode 100644 index 0000000..aabaa0b Binary files /dev/null and b/src/main/webapp/images/fla/ab_top_img.fla differ diff --git a/src/main/webapp/images/fla/ab_top_img.swf b/src/main/webapp/images/fla/ab_top_img.swf new file mode 100644 index 0000000..dcdf864 Binary files /dev/null and b/src/main/webapp/images/fla/ab_top_img.swf differ diff --git a/src/main/webapp/images/fla/ca_top_img.fla b/src/main/webapp/images/fla/ca_top_img.fla new file mode 100644 index 0000000..e34dd31 Binary files /dev/null and b/src/main/webapp/images/fla/ca_top_img.fla differ diff --git a/src/main/webapp/images/fla/ca_top_img.swf b/src/main/webapp/images/fla/ca_top_img.swf new file mode 100644 index 0000000..3b9e08a Binary files /dev/null and b/src/main/webapp/images/fla/ca_top_img.swf differ diff --git a/src/main/webapp/images/fla/main.fla b/src/main/webapp/images/fla/main.fla new file mode 100644 index 0000000..60bc7de Binary files /dev/null and b/src/main/webapp/images/fla/main.fla differ diff --git a/src/main/webapp/images/fla/main.swf b/src/main/webapp/images/fla/main.swf new file mode 100644 index 0000000..a5feb42 Binary files /dev/null and b/src/main/webapp/images/fla/main.swf differ diff --git a/src/main/webapp/images/fla/pr_top_img.fla b/src/main/webapp/images/fla/pr_top_img.fla new file mode 100644 index 0000000..7d4c43c Binary files /dev/null and b/src/main/webapp/images/fla/pr_top_img.fla differ diff --git a/src/main/webapp/images/fla/pr_top_img.swf b/src/main/webapp/images/fla/pr_top_img.swf new file mode 100644 index 0000000..14b89ae Binary files /dev/null and b/src/main/webapp/images/fla/pr_top_img.swf differ diff --git a/src/main/webapp/images/fla/re_top_img.fla b/src/main/webapp/images/fla/re_top_img.fla new file mode 100644 index 0000000..af5cf62 Binary files /dev/null and b/src/main/webapp/images/fla/re_top_img.fla differ diff --git a/src/main/webapp/images/fla/re_top_img.swf b/src/main/webapp/images/fla/re_top_img.swf new file mode 100644 index 0000000..ebdfd8c Binary files /dev/null and b/src/main/webapp/images/fla/re_top_img.swf differ diff --git a/src/main/webapp/images/fla/sh_top_img.fla b/src/main/webapp/images/fla/sh_top_img.fla new file mode 100644 index 0000000..f5a464f Binary files /dev/null and b/src/main/webapp/images/fla/sh_top_img.fla differ diff --git a/src/main/webapp/images/fla/sh_top_img.swf b/src/main/webapp/images/fla/sh_top_img.swf new file mode 100644 index 0000000..b07b5fc Binary files /dev/null and b/src/main/webapp/images/fla/sh_top_img.swf differ diff --git a/src/main/webapp/images/fla/top_menu.fla b/src/main/webapp/images/fla/top_menu.fla new file mode 100644 index 0000000..100a5cd Binary files /dev/null and b/src/main/webapp/images/fla/top_menu.fla differ diff --git a/src/main/webapp/images/fla/top_menu.swf b/src/main/webapp/images/fla/top_menu.swf new file mode 100644 index 0000000..65e60de Binary files /dev/null and b/src/main/webapp/images/fla/top_menu.swf differ diff --git a/src/main/webapp/images/form/cen_01.gif b/src/main/webapp/images/form/cen_01.gif new file mode 100644 index 0000000..455fae2 Binary files /dev/null and b/src/main/webapp/images/form/cen_01.gif differ diff --git a/src/main/webapp/images/form/form_top_img_01.jpg b/src/main/webapp/images/form/form_top_img_01.jpg new file mode 100644 index 0000000..573f587 Binary files /dev/null and b/src/main/webapp/images/form/form_top_img_01.jpg differ diff --git a/src/main/webapp/images/form/form_top_img_02.jpg b/src/main/webapp/images/form/form_top_img_02.jpg new file mode 100644 index 0000000..31eb550 Binary files /dev/null and b/src/main/webapp/images/form/form_top_img_02.jpg differ diff --git a/src/main/webapp/images/form/form_top_img_03.jpg b/src/main/webapp/images/form/form_top_img_03.jpg new file mode 100644 index 0000000..44656d7 Binary files /dev/null and b/src/main/webapp/images/form/form_top_img_03.jpg differ diff --git a/src/main/webapp/images/form/form_top_img_04.jpg b/src/main/webapp/images/form/form_top_img_04.jpg new file mode 100644 index 0000000..3be4ef1 Binary files /dev/null and b/src/main/webapp/images/form/form_top_img_04.jpg differ diff --git a/src/main/webapp/images/form/form_top_img_05.jpg b/src/main/webapp/images/form/form_top_img_05.jpg new file mode 100644 index 0000000..87a5df5 Binary files /dev/null and b/src/main/webapp/images/form/form_top_img_05.jpg differ diff --git a/src/main/webapp/images/form/left_menu_01_over.gif b/src/main/webapp/images/form/left_menu_01_over.gif new file mode 100644 index 0000000..8d39667 Binary files /dev/null and b/src/main/webapp/images/form/left_menu_01_over.gif differ diff --git a/src/main/webapp/images/form/left_tit_01.gif b/src/main/webapp/images/form/left_tit_01.gif new file mode 100644 index 0000000..4eab83a Binary files /dev/null and b/src/main/webapp/images/form/left_tit_01.gif differ diff --git a/src/main/webapp/images/form/top_tit_01.gif b/src/main/webapp/images/form/top_tit_01.gif new file mode 100644 index 0000000..6663d70 Binary files /dev/null and b/src/main/webapp/images/form/top_tit_01.gif differ diff --git a/src/main/webapp/images/found.gif b/src/main/webapp/images/found.gif new file mode 100644 index 0000000..567512a Binary files /dev/null and b/src/main/webapp/images/found.gif differ diff --git a/src/main/webapp/images/g_01.gif b/src/main/webapp/images/g_01.gif new file mode 100644 index 0000000..86a57aa Binary files /dev/null and b/src/main/webapp/images/g_01.gif differ diff --git a/src/main/webapp/images/gw/00024/gu-a483.png b/src/main/webapp/images/gw/00024/gu-a483.png new file mode 100644 index 0000000..75bdfd6 Binary files /dev/null and b/src/main/webapp/images/gw/00024/gu-a483.png differ diff --git a/src/main/webapp/images/gw/00024/gu-b1396.png b/src/main/webapp/images/gw/00024/gu-b1396.png new file mode 100644 index 0000000..7ddfc83 Binary files /dev/null and b/src/main/webapp/images/gw/00024/gu-b1396.png differ diff --git a/src/main/webapp/images/gw/00024/gu-b740.png b/src/main/webapp/images/gw/00024/gu-b740.png new file mode 100644 index 0000000..0b0ce3a Binary files /dev/null and b/src/main/webapp/images/gw/00024/gu-b740.png differ diff --git a/src/main/webapp/images/gw/00024/gu-c1524.png b/src/main/webapp/images/gw/00024/gu-c1524.png new file mode 100644 index 0000000..7d8d4b0 Binary files /dev/null and b/src/main/webapp/images/gw/00024/gu-c1524.png differ diff --git a/src/main/webapp/images/gw/00024/gu-c3301.png b/src/main/webapp/images/gw/00024/gu-c3301.png new file mode 100644 index 0000000..0c14705 Binary files /dev/null and b/src/main/webapp/images/gw/00024/gu-c3301.png differ diff --git a/src/main/webapp/images/gw/00024/gu-d3636.png b/src/main/webapp/images/gw/00024/gu-d3636.png new file mode 100644 index 0000000..99c2701 Binary files /dev/null and b/src/main/webapp/images/gw/00024/gu-d3636.png differ diff --git a/src/main/webapp/images/gw/00024/gu-d462.png b/src/main/webapp/images/gw/00024/gu-d462.png new file mode 100644 index 0000000..fa294bf Binary files /dev/null and b/src/main/webapp/images/gw/00024/gu-d462.png differ diff --git a/src/main/webapp/images/gw/00024/gu-e1545.png b/src/main/webapp/images/gw/00024/gu-e1545.png new file mode 100644 index 0000000..026bd49 Binary files /dev/null and b/src/main/webapp/images/gw/00024/gu-e1545.png differ diff --git a/src/main/webapp/images/gw/00024/gu-f2994.png b/src/main/webapp/images/gw/00024/gu-f2994.png new file mode 100644 index 0000000..1aa7a22 Binary files /dev/null and b/src/main/webapp/images/gw/00024/gu-f2994.png differ diff --git a/src/main/webapp/images/header/logo.gif b/src/main/webapp/images/header/logo.gif new file mode 100644 index 0000000..7b8ba15 Binary files /dev/null and b/src/main/webapp/images/header/logo.gif differ diff --git a/src/main/webapp/images/header/main_top_menu_01.gif b/src/main/webapp/images/header/main_top_menu_01.gif new file mode 100644 index 0000000..575282f Binary files /dev/null and b/src/main/webapp/images/header/main_top_menu_01.gif differ diff --git a/src/main/webapp/images/header/main_top_menu_02.gif b/src/main/webapp/images/header/main_top_menu_02.gif new file mode 100644 index 0000000..d7230c7 Binary files /dev/null and b/src/main/webapp/images/header/main_top_menu_02.gif differ diff --git a/src/main/webapp/images/header/main_top_menu_03.gif b/src/main/webapp/images/header/main_top_menu_03.gif new file mode 100644 index 0000000..aab4e8f Binary files /dev/null and b/src/main/webapp/images/header/main_top_menu_03.gif differ diff --git a/src/main/webapp/images/header/main_top_menu_04.gif b/src/main/webapp/images/header/main_top_menu_04.gif new file mode 100644 index 0000000..305fd9f Binary files /dev/null and b/src/main/webapp/images/header/main_top_menu_04.gif differ diff --git a/src/main/webapp/images/header/main_top_menu_05.gif b/src/main/webapp/images/header/main_top_menu_05.gif new file mode 100644 index 0000000..ce687ad Binary files /dev/null and b/src/main/webapp/images/header/main_top_menu_05.gif differ diff --git a/src/main/webapp/images/header/main_top_menu_06.gif b/src/main/webapp/images/header/main_top_menu_06.gif new file mode 100644 index 0000000..8c9344d Binary files /dev/null and b/src/main/webapp/images/header/main_top_menu_06.gif differ diff --git a/src/main/webapp/images/i_left1.gif b/src/main/webapp/images/i_left1.gif new file mode 100644 index 0000000..ae9ebd9 Binary files /dev/null and b/src/main/webapp/images/i_left1.gif differ diff --git a/src/main/webapp/images/i_left2.gif b/src/main/webapp/images/i_left2.gif new file mode 100644 index 0000000..d5ba85d Binary files /dev/null and b/src/main/webapp/images/i_left2.gif differ diff --git a/src/main/webapp/images/i_right1.gif b/src/main/webapp/images/i_right1.gif new file mode 100644 index 0000000..7a5973b Binary files /dev/null and b/src/main/webapp/images/i_right1.gif differ diff --git a/src/main/webapp/images/i_right2.gif b/src/main/webapp/images/i_right2.gif new file mode 100644 index 0000000..5da2814 Binary files /dev/null and b/src/main/webapp/images/i_right2.gif differ diff --git a/src/main/webapp/images/ico_idpa_point.gif b/src/main/webapp/images/ico_idpa_point.gif new file mode 100644 index 0000000..1273cf4 Binary files /dev/null and b/src/main/webapp/images/ico_idpa_point.gif differ diff --git a/src/main/webapp/images/icon.gif b/src/main/webapp/images/icon.gif new file mode 100644 index 0000000..ddd478a Binary files /dev/null and b/src/main/webapp/images/icon.gif differ diff --git a/src/main/webapp/images/icon.png b/src/main/webapp/images/icon.png new file mode 100644 index 0000000..1da9176 Binary files /dev/null and b/src/main/webapp/images/icon.png differ diff --git a/src/main/webapp/images/id_img.gif b/src/main/webapp/images/id_img.gif new file mode 100644 index 0000000..63b9f92 Binary files /dev/null and b/src/main/webapp/images/id_img.gif differ diff --git a/src/main/webapp/images/id_top_01.gif b/src/main/webapp/images/id_top_01.gif new file mode 100644 index 0000000..7642fdf Binary files /dev/null and b/src/main/webapp/images/id_top_01.gif differ diff --git a/src/main/webapp/images/id_top_01_icon.gif b/src/main/webapp/images/id_top_01_icon.gif new file mode 100644 index 0000000..654f663 Binary files /dev/null and b/src/main/webapp/images/id_top_01_icon.gif differ diff --git a/src/main/webapp/images/id_top_01_id.gif b/src/main/webapp/images/id_top_01_id.gif new file mode 100644 index 0000000..2baf4b2 Binary files /dev/null and b/src/main/webapp/images/id_top_01_id.gif differ diff --git a/src/main/webapp/images/id_top_01_id_01.gif b/src/main/webapp/images/id_top_01_id_01.gif new file mode 100644 index 0000000..4fc9f61 Binary files /dev/null and b/src/main/webapp/images/id_top_01_id_01.gif differ diff --git a/src/main/webapp/images/id_top_01_pw.gif b/src/main/webapp/images/id_top_01_pw.gif new file mode 100644 index 0000000..ba08958 Binary files /dev/null and b/src/main/webapp/images/id_top_01_pw.gif differ diff --git a/src/main/webapp/images/id_top_btn_01.gif b/src/main/webapp/images/id_top_btn_01.gif new file mode 100644 index 0000000..2759c50 Binary files /dev/null and b/src/main/webapp/images/id_top_btn_01.gif differ diff --git a/src/main/webapp/images/id_top_btn_02.gif b/src/main/webapp/images/id_top_btn_02.gif new file mode 100644 index 0000000..15e0f03 Binary files /dev/null and b/src/main/webapp/images/id_top_btn_02.gif differ diff --git a/src/main/webapp/images/id_top_btn_03.gif b/src/main/webapp/images/id_top_btn_03.gif new file mode 100644 index 0000000..57a5333 Binary files /dev/null and b/src/main/webapp/images/id_top_btn_03.gif differ diff --git a/src/main/webapp/images/id_top_tit_01.gif b/src/main/webapp/images/id_top_tit_01.gif new file mode 100644 index 0000000..e1991fb Binary files /dev/null and b/src/main/webapp/images/id_top_tit_01.gif differ diff --git a/src/main/webapp/images/id_top_tit_02.gif b/src/main/webapp/images/id_top_tit_02.gif new file mode 100644 index 0000000..6d8d1f5 Binary files /dev/null and b/src/main/webapp/images/id_top_tit_02.gif differ diff --git a/src/main/webapp/images/id_top_tit_03.gif b/src/main/webapp/images/id_top_tit_03.gif new file mode 100644 index 0000000..25518ec Binary files /dev/null and b/src/main/webapp/images/id_top_tit_03.gif differ diff --git a/src/main/webapp/images/image_1.png b/src/main/webapp/images/image_1.png new file mode 100644 index 0000000..b1ecc20 Binary files /dev/null and b/src/main/webapp/images/image_1.png differ diff --git a/src/main/webapp/images/image_2.png b/src/main/webapp/images/image_2.png new file mode 100644 index 0000000..a40b54b Binary files /dev/null and b/src/main/webapp/images/image_2.png differ diff --git a/src/main/webapp/images/image_3.png b/src/main/webapp/images/image_3.png new file mode 100644 index 0000000..aae1ecd Binary files /dev/null and b/src/main/webapp/images/image_3.png differ diff --git a/src/main/webapp/images/image_4.png b/src/main/webapp/images/image_4.png new file mode 100644 index 0000000..f63186c Binary files /dev/null and b/src/main/webapp/images/image_4.png differ diff --git a/src/main/webapp/images/image_5.png b/src/main/webapp/images/image_5.png new file mode 100644 index 0000000..dcfec05 Binary files /dev/null and b/src/main/webapp/images/image_5.png differ diff --git a/src/main/webapp/images/img.gif b/src/main/webapp/images/img.gif new file mode 100644 index 0000000..cfa26cd Binary files /dev/null and b/src/main/webapp/images/img.gif differ diff --git a/src/main/webapp/images/img_1.gif b/src/main/webapp/images/img_1.gif new file mode 100644 index 0000000..96570ff Binary files /dev/null and b/src/main/webapp/images/img_1.gif differ diff --git a/src/main/webapp/images/img_bot_005.gif b/src/main/webapp/images/img_bot_005.gif new file mode 100644 index 0000000..8666fcc Binary files /dev/null and b/src/main/webapp/images/img_bot_005.gif differ diff --git a/src/main/webapp/images/info/b_1.gif b/src/main/webapp/images/info/b_1.gif new file mode 100644 index 0000000..d13dbcd Binary files /dev/null and b/src/main/webapp/images/info/b_1.gif differ diff --git a/src/main/webapp/images/info/b_1_over.gif b/src/main/webapp/images/info/b_1_over.gif new file mode 100644 index 0000000..efdaaff Binary files /dev/null and b/src/main/webapp/images/info/b_1_over.gif differ diff --git a/src/main/webapp/images/info/b_2.gif b/src/main/webapp/images/info/b_2.gif new file mode 100644 index 0000000..52f6db7 Binary files /dev/null and b/src/main/webapp/images/info/b_2.gif differ diff --git a/src/main/webapp/images/info/b_2_over.gif b/src/main/webapp/images/info/b_2_over.gif new file mode 100644 index 0000000..6e42e7b Binary files /dev/null and b/src/main/webapp/images/info/b_2_over.gif differ diff --git a/src/main/webapp/images/info/cen_01.gif b/src/main/webapp/images/info/cen_01.gif new file mode 100644 index 0000000..b5f0ef7 Binary files /dev/null and b/src/main/webapp/images/info/cen_01.gif differ diff --git a/src/main/webapp/images/info/cen_01_1.gif b/src/main/webapp/images/info/cen_01_1.gif new file mode 100644 index 0000000..8a51fd0 Binary files /dev/null and b/src/main/webapp/images/info/cen_01_1.gif differ diff --git a/src/main/webapp/images/info/cen_03.gif b/src/main/webapp/images/info/cen_03.gif new file mode 100644 index 0000000..e440f1f Binary files /dev/null and b/src/main/webapp/images/info/cen_03.gif differ diff --git a/src/main/webapp/images/info/cen_03_01.gif b/src/main/webapp/images/info/cen_03_01.gif new file mode 100644 index 0000000..b3d52c4 Binary files /dev/null and b/src/main/webapp/images/info/cen_03_01.gif differ diff --git a/src/main/webapp/images/info/cen_03_02.gif b/src/main/webapp/images/info/cen_03_02.gif new file mode 100644 index 0000000..5c1f46f Binary files /dev/null and b/src/main/webapp/images/info/cen_03_02.gif differ diff --git a/src/main/webapp/images/info/cen_03_03.gif b/src/main/webapp/images/info/cen_03_03.gif new file mode 100644 index 0000000..a80d88f Binary files /dev/null and b/src/main/webapp/images/info/cen_03_03.gif differ diff --git a/src/main/webapp/images/info/cen_04.gif b/src/main/webapp/images/info/cen_04.gif new file mode 100644 index 0000000..368ed2b Binary files /dev/null and b/src/main/webapp/images/info/cen_04.gif differ diff --git a/src/main/webapp/images/info/info_top_img_01.jpg b/src/main/webapp/images/info/info_top_img_01.jpg new file mode 100644 index 0000000..444096f Binary files /dev/null and b/src/main/webapp/images/info/info_top_img_01.jpg differ diff --git a/src/main/webapp/images/info/info_top_img_02.jpg b/src/main/webapp/images/info/info_top_img_02.jpg new file mode 100644 index 0000000..d2b161f Binary files /dev/null and b/src/main/webapp/images/info/info_top_img_02.jpg differ diff --git a/src/main/webapp/images/info/info_top_img_03.jpg b/src/main/webapp/images/info/info_top_img_03.jpg new file mode 100644 index 0000000..509493b Binary files /dev/null and b/src/main/webapp/images/info/info_top_img_03.jpg differ diff --git a/src/main/webapp/images/info/info_top_img_04.jpg b/src/main/webapp/images/info/info_top_img_04.jpg new file mode 100644 index 0000000..374523f Binary files /dev/null and b/src/main/webapp/images/info/info_top_img_04.jpg differ diff --git a/src/main/webapp/images/info/info_top_img_05.jpg b/src/main/webapp/images/info/info_top_img_05.jpg new file mode 100644 index 0000000..f72b8f7 Binary files /dev/null and b/src/main/webapp/images/info/info_top_img_05.jpg differ diff --git a/src/main/webapp/images/info/left_menu_01.gif b/src/main/webapp/images/info/left_menu_01.gif new file mode 100644 index 0000000..61c4a72 Binary files /dev/null and b/src/main/webapp/images/info/left_menu_01.gif differ diff --git a/src/main/webapp/images/info/left_menu_01_over.gif b/src/main/webapp/images/info/left_menu_01_over.gif new file mode 100644 index 0000000..99e81ae Binary files /dev/null and b/src/main/webapp/images/info/left_menu_01_over.gif differ diff --git a/src/main/webapp/images/info/left_menu_02.gif b/src/main/webapp/images/info/left_menu_02.gif new file mode 100644 index 0000000..84f3a35 Binary files /dev/null and b/src/main/webapp/images/info/left_menu_02.gif differ diff --git a/src/main/webapp/images/info/left_menu_02_over.gif b/src/main/webapp/images/info/left_menu_02_over.gif new file mode 100644 index 0000000..b358bd3 Binary files /dev/null and b/src/main/webapp/images/info/left_menu_02_over.gif differ diff --git a/src/main/webapp/images/info/left_menu_03.gif b/src/main/webapp/images/info/left_menu_03.gif new file mode 100644 index 0000000..1ee7028 Binary files /dev/null and b/src/main/webapp/images/info/left_menu_03.gif differ diff --git a/src/main/webapp/images/info/left_menu_03_over.gif b/src/main/webapp/images/info/left_menu_03_over.gif new file mode 100644 index 0000000..ce86c40 Binary files /dev/null and b/src/main/webapp/images/info/left_menu_03_over.gif differ diff --git a/src/main/webapp/images/info/left_tit_01.gif b/src/main/webapp/images/info/left_tit_01.gif new file mode 100644 index 0000000..3bda705 Binary files /dev/null and b/src/main/webapp/images/info/left_tit_01.gif differ diff --git a/src/main/webapp/images/info/stit_01.gif b/src/main/webapp/images/info/stit_01.gif new file mode 100644 index 0000000..f941e83 Binary files /dev/null and b/src/main/webapp/images/info/stit_01.gif differ diff --git a/src/main/webapp/images/info/stit_02.gif b/src/main/webapp/images/info/stit_02.gif new file mode 100644 index 0000000..1c6d320 Binary files /dev/null and b/src/main/webapp/images/info/stit_02.gif differ diff --git a/src/main/webapp/images/info/stit_03.gif b/src/main/webapp/images/info/stit_03.gif new file mode 100644 index 0000000..14092e9 Binary files /dev/null and b/src/main/webapp/images/info/stit_03.gif differ diff --git a/src/main/webapp/images/info/top_tit_01.gif b/src/main/webapp/images/info/top_tit_01.gif new file mode 100644 index 0000000..62f9ebd Binary files /dev/null and b/src/main/webapp/images/info/top_tit_01.gif differ diff --git a/src/main/webapp/images/info/top_tit_02.gif b/src/main/webapp/images/info/top_tit_02.gif new file mode 100644 index 0000000..4e6d779 Binary files /dev/null and b/src/main/webapp/images/info/top_tit_02.gif differ diff --git a/src/main/webapp/images/info/top_tit_03.gif b/src/main/webapp/images/info/top_tit_03.gif new file mode 100644 index 0000000..150d1a8 Binary files /dev/null and b/src/main/webapp/images/info/top_tit_03.gif differ diff --git a/src/main/webapp/images/information/04menu01_01.gif b/src/main/webapp/images/information/04menu01_01.gif new file mode 100644 index 0000000..6f4657a Binary files /dev/null and b/src/main/webapp/images/information/04menu01_01.gif differ diff --git a/src/main/webapp/images/information/1.gif b/src/main/webapp/images/information/1.gif new file mode 100644 index 0000000..5ebc030 Binary files /dev/null and b/src/main/webapp/images/information/1.gif differ diff --git a/src/main/webapp/images/information/1300759783_bullet_white.png b/src/main/webapp/images/information/1300759783_bullet_white.png new file mode 100644 index 0000000..031f6be Binary files /dev/null and b/src/main/webapp/images/information/1300759783_bullet_white.png differ diff --git a/src/main/webapp/images/information/2.gif b/src/main/webapp/images/information/2.gif new file mode 100644 index 0000000..a8ed9bd Binary files /dev/null and b/src/main/webapp/images/information/2.gif differ diff --git a/src/main/webapp/images/information/2005.gif b/src/main/webapp/images/information/2005.gif new file mode 100644 index 0000000..05f294a Binary files /dev/null and b/src/main/webapp/images/information/2005.gif differ diff --git a/src/main/webapp/images/information/5.gif b/src/main/webapp/images/information/5.gif new file mode 100644 index 0000000..f0c0159 Binary files /dev/null and b/src/main/webapp/images/information/5.gif differ diff --git a/src/main/webapp/images/information/6.gif b/src/main/webapp/images/information/6.gif new file mode 100644 index 0000000..a67de77 Binary files /dev/null and b/src/main/webapp/images/information/6.gif differ diff --git a/src/main/webapp/images/information/8.gif b/src/main/webapp/images/information/8.gif new file mode 100644 index 0000000..3e6bbd3 Binary files /dev/null and b/src/main/webapp/images/information/8.gif differ diff --git a/src/main/webapp/images/information/9.gif b/src/main/webapp/images/information/9.gif new file mode 100644 index 0000000..2cddb49 Binary files /dev/null and b/src/main/webapp/images/information/9.gif differ diff --git a/src/main/webapp/images/information/Arrow.gif b/src/main/webapp/images/information/Arrow.gif new file mode 100644 index 0000000..2684f27 Binary files /dev/null and b/src/main/webapp/images/information/Arrow.gif differ diff --git a/src/main/webapp/images/information/Reportimg02_1.jpg b/src/main/webapp/images/information/Reportimg02_1.jpg new file mode 100644 index 0000000..7136f0a Binary files /dev/null and b/src/main/webapp/images/information/Reportimg02_1.jpg differ diff --git a/src/main/webapp/images/information/Reportimg02_2.jpg b/src/main/webapp/images/information/Reportimg02_2.jpg new file mode 100644 index 0000000..e6d2d0f Binary files /dev/null and b/src/main/webapp/images/information/Reportimg02_2.jpg differ diff --git a/src/main/webapp/images/information/Reportimg02_3.jpg b/src/main/webapp/images/information/Reportimg02_3.jpg new file mode 100644 index 0000000..6973b9f Binary files /dev/null and b/src/main/webapp/images/information/Reportimg02_3.jpg differ diff --git a/src/main/webapp/images/information/Reportimg02_4.jpg b/src/main/webapp/images/information/Reportimg02_4.jpg new file mode 100644 index 0000000..98bd8b3 Binary files /dev/null and b/src/main/webapp/images/information/Reportimg02_4.jpg differ diff --git a/src/main/webapp/images/information/Reportimg02_5.jpg b/src/main/webapp/images/information/Reportimg02_5.jpg new file mode 100644 index 0000000..1b3cdbf Binary files /dev/null and b/src/main/webapp/images/information/Reportimg02_5.jpg differ diff --git a/src/main/webapp/images/information/Reportimg03_1.jpg b/src/main/webapp/images/information/Reportimg03_1.jpg new file mode 100644 index 0000000..debc9a5 Binary files /dev/null and b/src/main/webapp/images/information/Reportimg03_1.jpg differ diff --git a/src/main/webapp/images/information/Reportimg03_2.jpg b/src/main/webapp/images/information/Reportimg03_2.jpg new file mode 100644 index 0000000..14eec54 Binary files /dev/null and b/src/main/webapp/images/information/Reportimg03_2.jpg differ diff --git a/src/main/webapp/images/information/Reportimg03_3.jpg b/src/main/webapp/images/information/Reportimg03_3.jpg new file mode 100644 index 0000000..0ae2e2f Binary files /dev/null and b/src/main/webapp/images/information/Reportimg03_3.jpg differ diff --git a/src/main/webapp/images/information/Reportimg04_1.jpg b/src/main/webapp/images/information/Reportimg04_1.jpg new file mode 100644 index 0000000..3e48cbc Binary files /dev/null and b/src/main/webapp/images/information/Reportimg04_1.jpg differ diff --git a/src/main/webapp/images/information/Reportimg04_2.jpg b/src/main/webapp/images/information/Reportimg04_2.jpg new file mode 100644 index 0000000..13292ae Binary files /dev/null and b/src/main/webapp/images/information/Reportimg04_2.jpg differ diff --git a/src/main/webapp/images/information/Reportimg04_3.jpg b/src/main/webapp/images/information/Reportimg04_3.jpg new file mode 100644 index 0000000..4e43201 Binary files /dev/null and b/src/main/webapp/images/information/Reportimg04_3.jpg differ diff --git a/src/main/webapp/images/information/Reportimg04_4.jpg b/src/main/webapp/images/information/Reportimg04_4.jpg new file mode 100644 index 0000000..339259b Binary files /dev/null and b/src/main/webapp/images/information/Reportimg04_4.jpg differ diff --git a/src/main/webapp/images/information/Reportimg04_Icon01.jpg b/src/main/webapp/images/information/Reportimg04_Icon01.jpg new file mode 100644 index 0000000..8865a14 Binary files /dev/null and b/src/main/webapp/images/information/Reportimg04_Icon01.jpg differ diff --git a/src/main/webapp/images/information/Reportimg04_Icon02.jpg b/src/main/webapp/images/information/Reportimg04_Icon02.jpg new file mode 100644 index 0000000..4ab83f3 Binary files /dev/null and b/src/main/webapp/images/information/Reportimg04_Icon02.jpg differ diff --git a/src/main/webapp/images/information/Reportimg05_1.jpg b/src/main/webapp/images/information/Reportimg05_1.jpg new file mode 100644 index 0000000..87b3029 Binary files /dev/null and b/src/main/webapp/images/information/Reportimg05_1.jpg differ diff --git a/src/main/webapp/images/information/Reportimg05_2.jpg b/src/main/webapp/images/information/Reportimg05_2.jpg new file mode 100644 index 0000000..09b5841 Binary files /dev/null and b/src/main/webapp/images/information/Reportimg05_2.jpg differ diff --git a/src/main/webapp/images/information/Reportimg05_3.jpg b/src/main/webapp/images/information/Reportimg05_3.jpg new file mode 100644 index 0000000..87bb8cd Binary files /dev/null and b/src/main/webapp/images/information/Reportimg05_3.jpg differ diff --git a/src/main/webapp/images/information/Reportimg06.jpg b/src/main/webapp/images/information/Reportimg06.jpg new file mode 100644 index 0000000..a8d7d0a Binary files /dev/null and b/src/main/webapp/images/information/Reportimg06.jpg differ diff --git a/src/main/webapp/images/information/Reportimg06_Icon01.jpg b/src/main/webapp/images/information/Reportimg06_Icon01.jpg new file mode 100644 index 0000000..5cd5e85 Binary files /dev/null and b/src/main/webapp/images/information/Reportimg06_Icon01.jpg differ diff --git a/src/main/webapp/images/information/Reportimg07.jpg b/src/main/webapp/images/information/Reportimg07.jpg new file mode 100644 index 0000000..87a0011 Binary files /dev/null and b/src/main/webapp/images/information/Reportimg07.jpg differ diff --git a/src/main/webapp/images/information/Viewimg01.jpg b/src/main/webapp/images/information/Viewimg01.jpg new file mode 100644 index 0000000..41a0ea7 Binary files /dev/null and b/src/main/webapp/images/information/Viewimg01.jpg differ diff --git a/src/main/webapp/images/information/Viewimg02.jpg b/src/main/webapp/images/information/Viewimg02.jpg new file mode 100644 index 0000000..007f303 Binary files /dev/null and b/src/main/webapp/images/information/Viewimg02.jpg differ diff --git a/src/main/webapp/images/information/Viewimg03_1.jpg b/src/main/webapp/images/information/Viewimg03_1.jpg new file mode 100644 index 0000000..70aec6f Binary files /dev/null and b/src/main/webapp/images/information/Viewimg03_1.jpg differ diff --git a/src/main/webapp/images/information/Viewimg03_2.jpg b/src/main/webapp/images/information/Viewimg03_2.jpg new file mode 100644 index 0000000..8a13545 Binary files /dev/null and b/src/main/webapp/images/information/Viewimg03_2.jpg differ diff --git a/src/main/webapp/images/information/Viewimg03_3.jpg b/src/main/webapp/images/information/Viewimg03_3.jpg new file mode 100644 index 0000000..2f40618 Binary files /dev/null and b/src/main/webapp/images/information/Viewimg03_3.jpg differ diff --git a/src/main/webapp/images/information/Viewimg04.jpg b/src/main/webapp/images/information/Viewimg04.jpg new file mode 100644 index 0000000..9e733cc Binary files /dev/null and b/src/main/webapp/images/information/Viewimg04.jpg differ diff --git a/src/main/webapp/images/information/about_-icon01.gif b/src/main/webapp/images/information/about_-icon01.gif new file mode 100644 index 0000000..de266c9 Binary files /dev/null and b/src/main/webapp/images/information/about_-icon01.gif differ diff --git a/src/main/webapp/images/information/about_bg.gif b/src/main/webapp/images/information/about_bg.gif new file mode 100644 index 0000000..5de46ab Binary files /dev/null and b/src/main/webapp/images/information/about_bg.gif differ diff --git a/src/main/webapp/images/information/about_bg02.gif b/src/main/webapp/images/information/about_bg02.gif new file mode 100644 index 0000000..23642e8 Binary files /dev/null and b/src/main/webapp/images/information/about_bg02.gif differ diff --git a/src/main/webapp/images/information/about_bg03.gif b/src/main/webapp/images/information/about_bg03.gif new file mode 100644 index 0000000..9c2cd20 Binary files /dev/null and b/src/main/webapp/images/information/about_bg03.gif differ diff --git a/src/main/webapp/images/information/about_icon01.gif b/src/main/webapp/images/information/about_icon01.gif new file mode 100644 index 0000000..de266c9 Binary files /dev/null and b/src/main/webapp/images/information/about_icon01.gif differ diff --git a/src/main/webapp/images/information/about_icon02.gif b/src/main/webapp/images/information/about_icon02.gif new file mode 100644 index 0000000..12a04c1 Binary files /dev/null and b/src/main/webapp/images/information/about_icon02.gif differ diff --git a/src/main/webapp/images/information/about_icon03.gif b/src/main/webapp/images/information/about_icon03.gif new file mode 100644 index 0000000..ee748c9 Binary files /dev/null and b/src/main/webapp/images/information/about_icon03.gif differ diff --git a/src/main/webapp/images/information/about_icon04.gif b/src/main/webapp/images/information/about_icon04.gif new file mode 100644 index 0000000..b806be6 Binary files /dev/null and b/src/main/webapp/images/information/about_icon04.gif differ diff --git a/src/main/webapp/images/information/about_icon05.gif b/src/main/webapp/images/information/about_icon05.gif new file mode 100644 index 0000000..1660655 Binary files /dev/null and b/src/main/webapp/images/information/about_icon05.gif differ diff --git a/src/main/webapp/images/information/about_image.gif b/src/main/webapp/images/information/about_image.gif new file mode 100644 index 0000000..02eab29 Binary files /dev/null and b/src/main/webapp/images/information/about_image.gif differ diff --git a/src/main/webapp/images/information/certification.gif b/src/main/webapp/images/information/certification.gif new file mode 100644 index 0000000..7d6ae5d Binary files /dev/null and b/src/main/webapp/images/information/certification.gif differ diff --git a/src/main/webapp/images/information/con_1.gif b/src/main/webapp/images/information/con_1.gif new file mode 100644 index 0000000..d130f77 Binary files /dev/null and b/src/main/webapp/images/information/con_1.gif differ diff --git a/src/main/webapp/images/information/con_2.gif b/src/main/webapp/images/information/con_2.gif new file mode 100644 index 0000000..9eb6955 Binary files /dev/null and b/src/main/webapp/images/information/con_2.gif differ diff --git a/src/main/webapp/images/information/con_3.gif b/src/main/webapp/images/information/con_3.gif new file mode 100644 index 0000000..20d6629 Binary files /dev/null and b/src/main/webapp/images/information/con_3.gif differ diff --git a/src/main/webapp/images/information/con_5.gif b/src/main/webapp/images/information/con_5.gif new file mode 100644 index 0000000..4eb2171 Binary files /dev/null and b/src/main/webapp/images/information/con_5.gif differ diff --git a/src/main/webapp/images/information/con_7.gif b/src/main/webapp/images/information/con_7.gif new file mode 100644 index 0000000..a311b59 Binary files /dev/null and b/src/main/webapp/images/information/con_7.gif differ diff --git a/src/main/webapp/images/information/con_8.gif b/src/main/webapp/images/information/con_8.gif new file mode 100644 index 0000000..3052a9f Binary files /dev/null and b/src/main/webapp/images/information/con_8.gif differ diff --git a/src/main/webapp/images/information/con_9.gif b/src/main/webapp/images/information/con_9.gif new file mode 100644 index 0000000..8aead90 Binary files /dev/null and b/src/main/webapp/images/information/con_9.gif differ diff --git a/src/main/webapp/images/information/consulting_icon01.gif b/src/main/webapp/images/information/consulting_icon01.gif new file mode 100644 index 0000000..7a43b02 Binary files /dev/null and b/src/main/webapp/images/information/consulting_icon01.gif differ diff --git a/src/main/webapp/images/information/consulting_icon02.gif b/src/main/webapp/images/information/consulting_icon02.gif new file mode 100644 index 0000000..4a0885a Binary files /dev/null and b/src/main/webapp/images/information/consulting_icon02.gif differ diff --git a/src/main/webapp/images/information/consulting_icon03.gif b/src/main/webapp/images/information/consulting_icon03.gif new file mode 100644 index 0000000..1896e42 Binary files /dev/null and b/src/main/webapp/images/information/consulting_icon03.gif differ diff --git a/src/main/webapp/images/information/consulting_icon04.gif b/src/main/webapp/images/information/consulting_icon04.gif new file mode 100644 index 0000000..732d464 Binary files /dev/null and b/src/main/webapp/images/information/consulting_icon04.gif differ diff --git a/src/main/webapp/images/information/consulting_icon05.gif b/src/main/webapp/images/information/consulting_icon05.gif new file mode 100644 index 0000000..4a0d22b Binary files /dev/null and b/src/main/webapp/images/information/consulting_icon05.gif differ diff --git a/src/main/webapp/images/information/img의 바로 가기.lnk b/src/main/webapp/images/information/img의 바로 가기.lnk new file mode 100644 index 0000000..787f90e Binary files /dev/null and b/src/main/webapp/images/information/img의 바로 가기.lnk differ diff --git a/src/main/webapp/images/information/information_icon01.gif b/src/main/webapp/images/information/information_icon01.gif new file mode 100644 index 0000000..7e606ab Binary files /dev/null and b/src/main/webapp/images/information/information_icon01.gif differ diff --git a/src/main/webapp/images/information/information_icon02.gif b/src/main/webapp/images/information/information_icon02.gif new file mode 100644 index 0000000..74b5f77 Binary files /dev/null and b/src/main/webapp/images/information/information_icon02.gif differ diff --git a/src/main/webapp/images/information/information_icon03.gif b/src/main/webapp/images/information/information_icon03.gif new file mode 100644 index 0000000..45ab4ec Binary files /dev/null and b/src/main/webapp/images/information/information_icon03.gif differ diff --git a/src/main/webapp/images/information/information_icon04.gif b/src/main/webapp/images/information/information_icon04.gif new file mode 100644 index 0000000..13db9b6 Binary files /dev/null and b/src/main/webapp/images/information/information_icon04.gif differ diff --git a/src/main/webapp/images/information/information_icon05.gif b/src/main/webapp/images/information/information_icon05.gif new file mode 100644 index 0000000..3310515 Binary files /dev/null and b/src/main/webapp/images/information/information_icon05.gif differ diff --git a/src/main/webapp/images/information/information_icon06.gif b/src/main/webapp/images/information/information_icon06.gif new file mode 100644 index 0000000..ef0ff90 Binary files /dev/null and b/src/main/webapp/images/information/information_icon06.gif differ diff --git a/src/main/webapp/images/information/menu_text_01.gif b/src/main/webapp/images/information/menu_text_01.gif new file mode 100644 index 0000000..7de48b4 Binary files /dev/null and b/src/main/webapp/images/information/menu_text_01.gif differ diff --git a/src/main/webapp/images/information/menu_text_02.gif b/src/main/webapp/images/information/menu_text_02.gif new file mode 100644 index 0000000..b179732 Binary files /dev/null and b/src/main/webapp/images/information/menu_text_02.gif differ diff --git a/src/main/webapp/images/information/menu_text_03.gif b/src/main/webapp/images/information/menu_text_03.gif new file mode 100644 index 0000000..ad19810 Binary files /dev/null and b/src/main/webapp/images/information/menu_text_03.gif differ diff --git a/src/main/webapp/images/information/more.gif b/src/main/webapp/images/information/more.gif new file mode 100644 index 0000000..2f22d14 Binary files /dev/null and b/src/main/webapp/images/information/more.gif differ diff --git a/src/main/webapp/images/information/pda_img.gif b/src/main/webapp/images/information/pda_img.gif new file mode 100644 index 0000000..5a90bff Binary files /dev/null and b/src/main/webapp/images/information/pda_img.gif differ diff --git a/src/main/webapp/images/information/pop_view_01.gif b/src/main/webapp/images/information/pop_view_01.gif new file mode 100644 index 0000000..20381d7 Binary files /dev/null and b/src/main/webapp/images/information/pop_view_01.gif differ diff --git a/src/main/webapp/images/information/pop_view_02.gif b/src/main/webapp/images/information/pop_view_02.gif new file mode 100644 index 0000000..ccbe711 Binary files /dev/null and b/src/main/webapp/images/information/pop_view_02.gif differ diff --git a/src/main/webapp/images/information/pop_view_03.gif b/src/main/webapp/images/information/pop_view_03.gif new file mode 100644 index 0000000..9339a03 Binary files /dev/null and b/src/main/webapp/images/information/pop_view_03.gif differ diff --git a/src/main/webapp/images/information/pop_view_04.gif b/src/main/webapp/images/information/pop_view_04.gif new file mode 100644 index 0000000..53792a0 Binary files /dev/null and b/src/main/webapp/images/information/pop_view_04.gif differ diff --git a/src/main/webapp/images/information/pop_view_05.gif b/src/main/webapp/images/information/pop_view_05.gif new file mode 100644 index 0000000..4aada35 Binary files /dev/null and b/src/main/webapp/images/information/pop_view_05.gif differ diff --git a/src/main/webapp/images/information/pop_view_06.gif b/src/main/webapp/images/information/pop_view_06.gif new file mode 100644 index 0000000..51b283e Binary files /dev/null and b/src/main/webapp/images/information/pop_view_06.gif differ diff --git a/src/main/webapp/images/information/pop_view_07.gif b/src/main/webapp/images/information/pop_view_07.gif new file mode 100644 index 0000000..ce47db8 Binary files /dev/null and b/src/main/webapp/images/information/pop_view_07.gif differ diff --git a/src/main/webapp/images/information/pop_view_te.gif b/src/main/webapp/images/information/pop_view_te.gif new file mode 100644 index 0000000..4d2cf3c Binary files /dev/null and b/src/main/webapp/images/information/pop_view_te.gif differ diff --git a/src/main/webapp/images/information/pop_view_te_01.gif b/src/main/webapp/images/information/pop_view_te_01.gif new file mode 100644 index 0000000..eca8c56 Binary files /dev/null and b/src/main/webapp/images/information/pop_view_te_01.gif differ diff --git a/src/main/webapp/images/information/pop_view_te_02.gif b/src/main/webapp/images/information/pop_view_te_02.gif new file mode 100644 index 0000000..4925cbd Binary files /dev/null and b/src/main/webapp/images/information/pop_view_te_02.gif differ diff --git a/src/main/webapp/images/information/product_icon01.gif b/src/main/webapp/images/information/product_icon01.gif new file mode 100644 index 0000000..4ed4504 Binary files /dev/null and b/src/main/webapp/images/information/product_icon01.gif differ diff --git a/src/main/webapp/images/information/product_icon02.gif b/src/main/webapp/images/information/product_icon02.gif new file mode 100644 index 0000000..48dce3f Binary files /dev/null and b/src/main/webapp/images/information/product_icon02.gif differ diff --git a/src/main/webapp/images/information/product_icon03.gif b/src/main/webapp/images/information/product_icon03.gif new file mode 100644 index 0000000..175028b Binary files /dev/null and b/src/main/webapp/images/information/product_icon03.gif differ diff --git a/src/main/webapp/images/information/product_icon04.gif b/src/main/webapp/images/information/product_icon04.gif new file mode 100644 index 0000000..93b4b9b Binary files /dev/null and b/src/main/webapp/images/information/product_icon04.gif differ diff --git a/src/main/webapp/images/information/product_menu_icon01.gif b/src/main/webapp/images/information/product_menu_icon01.gif new file mode 100644 index 0000000..8574acf Binary files /dev/null and b/src/main/webapp/images/information/product_menu_icon01.gif differ diff --git a/src/main/webapp/images/information/product_menu_icon02.gif b/src/main/webapp/images/information/product_menu_icon02.gif new file mode 100644 index 0000000..7efb6b3 Binary files /dev/null and b/src/main/webapp/images/information/product_menu_icon02.gif differ diff --git a/src/main/webapp/images/information/product_menu_icon02on.gif b/src/main/webapp/images/information/product_menu_icon02on.gif new file mode 100644 index 0000000..997b787 Binary files /dev/null and b/src/main/webapp/images/information/product_menu_icon02on.gif differ diff --git a/src/main/webapp/images/information/product_menu_icon03.gif b/src/main/webapp/images/information/product_menu_icon03.gif new file mode 100644 index 0000000..de4fe17 Binary files /dev/null and b/src/main/webapp/images/information/product_menu_icon03.gif differ diff --git a/src/main/webapp/images/information/product_menu_icon03on.gif b/src/main/webapp/images/information/product_menu_icon03on.gif new file mode 100644 index 0000000..4f04874 Binary files /dev/null and b/src/main/webapp/images/information/product_menu_icon03on.gif differ diff --git a/src/main/webapp/images/information/product_menu_icon04.gif b/src/main/webapp/images/information/product_menu_icon04.gif new file mode 100644 index 0000000..9a6f5cf Binary files /dev/null and b/src/main/webapp/images/information/product_menu_icon04.gif differ diff --git a/src/main/webapp/images/information/product_menu_icon04on.gif b/src/main/webapp/images/information/product_menu_icon04on.gif new file mode 100644 index 0000000..e14b425 Binary files /dev/null and b/src/main/webapp/images/information/product_menu_icon04on.gif differ diff --git a/src/main/webapp/images/information/product_menu_icon05.gif b/src/main/webapp/images/information/product_menu_icon05.gif new file mode 100644 index 0000000..aca543b Binary files /dev/null and b/src/main/webapp/images/information/product_menu_icon05.gif differ diff --git a/src/main/webapp/images/information/product_menu_icon05on.gif b/src/main/webapp/images/information/product_menu_icon05on.gif new file mode 100644 index 0000000..ccedce3 Binary files /dev/null and b/src/main/webapp/images/information/product_menu_icon05on.gif differ diff --git a/src/main/webapp/images/information/product_menu_icon06.gif b/src/main/webapp/images/information/product_menu_icon06.gif new file mode 100644 index 0000000..94b2984 Binary files /dev/null and b/src/main/webapp/images/information/product_menu_icon06.gif differ diff --git a/src/main/webapp/images/information/product_menu_icon07.gif b/src/main/webapp/images/information/product_menu_icon07.gif new file mode 100644 index 0000000..c0b9486 Binary files /dev/null and b/src/main/webapp/images/information/product_menu_icon07.gif differ diff --git a/src/main/webapp/images/information/quotation_icon01.gif b/src/main/webapp/images/information/quotation_icon01.gif new file mode 100644 index 0000000..172f2a0 Binary files /dev/null and b/src/main/webapp/images/information/quotation_icon01.gif differ diff --git a/src/main/webapp/images/information/record_1.gif b/src/main/webapp/images/information/record_1.gif new file mode 100644 index 0000000..51d411e Binary files /dev/null and b/src/main/webapp/images/information/record_1.gif differ diff --git a/src/main/webapp/images/information/record_2.gif b/src/main/webapp/images/information/record_2.gif new file mode 100644 index 0000000..26d5ad1 Binary files /dev/null and b/src/main/webapp/images/information/record_2.gif differ diff --git a/src/main/webapp/images/information/record_3.gif b/src/main/webapp/images/information/record_3.gif new file mode 100644 index 0000000..e1c414b Binary files /dev/null and b/src/main/webapp/images/information/record_3.gif differ diff --git a/src/main/webapp/images/information/registration_icon01.gif b/src/main/webapp/images/information/registration_icon01.gif new file mode 100644 index 0000000..0a51b25 Binary files /dev/null and b/src/main/webapp/images/information/registration_icon01.gif differ diff --git a/src/main/webapp/images/information/registration_icon02.gif b/src/main/webapp/images/information/registration_icon02.gif new file mode 100644 index 0000000..b557817 Binary files /dev/null and b/src/main/webapp/images/information/registration_icon02.gif differ diff --git a/src/main/webapp/images/information/registration_icon03.gif b/src/main/webapp/images/information/registration_icon03.gif new file mode 100644 index 0000000..663eb63 Binary files /dev/null and b/src/main/webapp/images/information/registration_icon03.gif differ diff --git a/src/main/webapp/images/information/rep_img.gif b/src/main/webapp/images/information/rep_img.gif new file mode 100644 index 0000000..f491fa3 Binary files /dev/null and b/src/main/webapp/images/information/rep_img.gif differ diff --git a/src/main/webapp/images/information/request_1.gif b/src/main/webapp/images/information/request_1.gif new file mode 100644 index 0000000..e13d250 Binary files /dev/null and b/src/main/webapp/images/information/request_1.gif differ diff --git a/src/main/webapp/images/information/request_2.gif b/src/main/webapp/images/information/request_2.gif new file mode 100644 index 0000000..aea12cb Binary files /dev/null and b/src/main/webapp/images/information/request_2.gif differ diff --git a/src/main/webapp/images/information/title_bar.gif b/src/main/webapp/images/information/title_bar.gif new file mode 100644 index 0000000..c45ead8 Binary files /dev/null and b/src/main/webapp/images/information/title_bar.gif differ diff --git a/src/main/webapp/images/information/top.gif b/src/main/webapp/images/information/top.gif new file mode 100644 index 0000000..3e89319 Binary files /dev/null and b/src/main/webapp/images/information/top.gif differ diff --git a/src/main/webapp/images/information/top_1.gif b/src/main/webapp/images/information/top_1.gif new file mode 100644 index 0000000..6d0dfb7 Binary files /dev/null and b/src/main/webapp/images/information/top_1.gif differ diff --git a/src/main/webapp/images/information/view_img.gif b/src/main/webapp/images/information/view_img.gif new file mode 100644 index 0000000..a47b729 Binary files /dev/null and b/src/main/webapp/images/information/view_img.gif differ diff --git a/src/main/webapp/images/information/vssver.scc b/src/main/webapp/images/information/vssver.scc new file mode 100644 index 0000000..f96adc6 Binary files /dev/null and b/src/main/webapp/images/information/vssver.scc differ diff --git a/src/main/webapp/images/information/welcome_icon01.gif b/src/main/webapp/images/information/welcome_icon01.gif new file mode 100644 index 0000000..0427f19 Binary files /dev/null and b/src/main/webapp/images/information/welcome_icon01.gif differ diff --git a/src/main/webapp/images/introduce/f_cen_01.gif b/src/main/webapp/images/introduce/f_cen_01.gif new file mode 100644 index 0000000..99052a8 Binary files /dev/null and b/src/main/webapp/images/introduce/f_cen_01.gif differ diff --git a/src/main/webapp/images/introduce/f_cen_02.gif b/src/main/webapp/images/introduce/f_cen_02.gif new file mode 100644 index 0000000..d6c56ee Binary files /dev/null and b/src/main/webapp/images/introduce/f_cen_02.gif differ diff --git a/src/main/webapp/images/introduce/f_cen_03.gif b/src/main/webapp/images/introduce/f_cen_03.gif new file mode 100644 index 0000000..51c7bec Binary files /dev/null and b/src/main/webapp/images/introduce/f_cen_03.gif differ diff --git a/src/main/webapp/images/introduce/f_cen_04.gif b/src/main/webapp/images/introduce/f_cen_04.gif new file mode 100644 index 0000000..3480d08 Binary files /dev/null and b/src/main/webapp/images/introduce/f_cen_04.gif differ diff --git a/src/main/webapp/images/introduce/f_cen_05.gif b/src/main/webapp/images/introduce/f_cen_05.gif new file mode 100644 index 0000000..9f7cfbf Binary files /dev/null and b/src/main/webapp/images/introduce/f_cen_05.gif differ diff --git a/src/main/webapp/images/introduce/f_cen_06.gif b/src/main/webapp/images/introduce/f_cen_06.gif new file mode 100644 index 0000000..fc59ff7 Binary files /dev/null and b/src/main/webapp/images/introduce/f_cen_06.gif differ diff --git a/src/main/webapp/images/introduce/f_cen_07.gif b/src/main/webapp/images/introduce/f_cen_07.gif new file mode 100644 index 0000000..2cea618 Binary files /dev/null and b/src/main/webapp/images/introduce/f_cen_07.gif differ diff --git a/src/main/webapp/images/introduce/f_cen_08.gif b/src/main/webapp/images/introduce/f_cen_08.gif new file mode 100644 index 0000000..440eed2 Binary files /dev/null and b/src/main/webapp/images/introduce/f_cen_08.gif differ diff --git a/src/main/webapp/images/introduce/int_top_img_01.jpg b/src/main/webapp/images/introduce/int_top_img_01.jpg new file mode 100644 index 0000000..fa869f0 Binary files /dev/null and b/src/main/webapp/images/introduce/int_top_img_01.jpg differ diff --git a/src/main/webapp/images/introduce/int_top_img_02.jpg b/src/main/webapp/images/introduce/int_top_img_02.jpg new file mode 100644 index 0000000..aafbff7 Binary files /dev/null and b/src/main/webapp/images/introduce/int_top_img_02.jpg differ diff --git a/src/main/webapp/images/introduce/int_top_img_03.jpg b/src/main/webapp/images/introduce/int_top_img_03.jpg new file mode 100644 index 0000000..bb286c0 Binary files /dev/null and b/src/main/webapp/images/introduce/int_top_img_03.jpg differ diff --git a/src/main/webapp/images/introduce/int_top_img_04.jpg b/src/main/webapp/images/introduce/int_top_img_04.jpg new file mode 100644 index 0000000..a363062 Binary files /dev/null and b/src/main/webapp/images/introduce/int_top_img_04.jpg differ diff --git a/src/main/webapp/images/introduce/int_top_img_05.jpg b/src/main/webapp/images/introduce/int_top_img_05.jpg new file mode 100644 index 0000000..87a5df5 Binary files /dev/null and b/src/main/webapp/images/introduce/int_top_img_05.jpg differ diff --git a/src/main/webapp/images/introduce/left_menu_01.gif b/src/main/webapp/images/introduce/left_menu_01.gif new file mode 100644 index 0000000..e4e0210 Binary files /dev/null and b/src/main/webapp/images/introduce/left_menu_01.gif differ diff --git a/src/main/webapp/images/introduce/left_menu_01_over.gif b/src/main/webapp/images/introduce/left_menu_01_over.gif new file mode 100644 index 0000000..856877c Binary files /dev/null and b/src/main/webapp/images/introduce/left_menu_01_over.gif differ diff --git a/src/main/webapp/images/introduce/left_menu_02.gif b/src/main/webapp/images/introduce/left_menu_02.gif new file mode 100644 index 0000000..33b950f Binary files /dev/null and b/src/main/webapp/images/introduce/left_menu_02.gif differ diff --git a/src/main/webapp/images/introduce/left_menu_02_over.gif b/src/main/webapp/images/introduce/left_menu_02_over.gif new file mode 100644 index 0000000..b423bf0 Binary files /dev/null and b/src/main/webapp/images/introduce/left_menu_02_over.gif differ diff --git a/src/main/webapp/images/introduce/left_tit_01.gif b/src/main/webapp/images/introduce/left_tit_01.gif new file mode 100644 index 0000000..1f4e88e Binary files /dev/null and b/src/main/webapp/images/introduce/left_tit_01.gif differ diff --git a/src/main/webapp/images/introduce/top_tit_01.gif b/src/main/webapp/images/introduce/top_tit_01.gif new file mode 100644 index 0000000..4d2f019 Binary files /dev/null and b/src/main/webapp/images/introduce/top_tit_01.gif differ diff --git a/src/main/webapp/images/introduce/top_tit_02.gif b/src/main/webapp/images/introduce/top_tit_02.gif new file mode 100644 index 0000000..c1282fc Binary files /dev/null and b/src/main/webapp/images/introduce/top_tit_02.gif differ diff --git a/src/main/webapp/images/jlnam/00025/gu-a702.png b/src/main/webapp/images/jlnam/00025/gu-a702.png new file mode 100644 index 0000000..a3a708d Binary files /dev/null and b/src/main/webapp/images/jlnam/00025/gu-a702.png differ diff --git a/src/main/webapp/images/jlnam/00025/gu-b1698.png b/src/main/webapp/images/jlnam/00025/gu-b1698.png new file mode 100644 index 0000000..93d9b46 Binary files /dev/null and b/src/main/webapp/images/jlnam/00025/gu-b1698.png differ diff --git a/src/main/webapp/images/jlnam/00025/gu-b243.png b/src/main/webapp/images/jlnam/00025/gu-b243.png new file mode 100644 index 0000000..7637567 Binary files /dev/null and b/src/main/webapp/images/jlnam/00025/gu-b243.png differ diff --git a/src/main/webapp/images/jlnam/00025/gu-b730.png b/src/main/webapp/images/jlnam/00025/gu-b730.png new file mode 100644 index 0000000..78e0870 Binary files /dev/null and b/src/main/webapp/images/jlnam/00025/gu-b730.png differ diff --git a/src/main/webapp/images/jlnam/00025/gu-c1255.png b/src/main/webapp/images/jlnam/00025/gu-c1255.png new file mode 100644 index 0000000..b7ea22c Binary files /dev/null and b/src/main/webapp/images/jlnam/00025/gu-c1255.png differ diff --git a/src/main/webapp/images/jlnam/00025/gu-c3163.png b/src/main/webapp/images/jlnam/00025/gu-c3163.png new file mode 100644 index 0000000..7f8a2c3 Binary files /dev/null and b/src/main/webapp/images/jlnam/00025/gu-c3163.png differ diff --git a/src/main/webapp/images/jlnam/00025/gu-d89.png b/src/main/webapp/images/jlnam/00025/gu-d89.png new file mode 100644 index 0000000..9f5b986 Binary files /dev/null and b/src/main/webapp/images/jlnam/00025/gu-d89.png differ diff --git a/src/main/webapp/images/jlnam/00025/gu-d92.png b/src/main/webapp/images/jlnam/00025/gu-d92.png new file mode 100644 index 0000000..55f685f Binary files /dev/null and b/src/main/webapp/images/jlnam/00025/gu-d92.png differ diff --git a/src/main/webapp/images/join/btn_add.gif b/src/main/webapp/images/join/btn_add.gif new file mode 100644 index 0000000..c7ce44d Binary files /dev/null and b/src/main/webapp/images/join/btn_add.gif differ diff --git a/src/main/webapp/images/join/btn_cancel.gif b/src/main/webapp/images/join/btn_cancel.gif new file mode 100644 index 0000000..72a0d68 Binary files /dev/null and b/src/main/webapp/images/join/btn_cancel.gif differ diff --git a/src/main/webapp/images/join/btn_ipin.gif b/src/main/webapp/images/join/btn_ipin.gif new file mode 100644 index 0000000..dd4942f Binary files /dev/null and b/src/main/webapp/images/join/btn_ipin.gif differ diff --git a/src/main/webapp/images/join/btn_ipin_ex.gif b/src/main/webapp/images/join/btn_ipin_ex.gif new file mode 100644 index 0000000..f307213 Binary files /dev/null and b/src/main/webapp/images/join/btn_ipin_ex.gif differ diff --git a/src/main/webapp/images/join/btn_ok.gif b/src/main/webapp/images/join/btn_ok.gif new file mode 100644 index 0000000..e727867 Binary files /dev/null and b/src/main/webapp/images/join/btn_ok.gif differ diff --git a/src/main/webapp/images/join/btn_overlapid.gif b/src/main/webapp/images/join/btn_overlapid.gif new file mode 100644 index 0000000..77f0024 Binary files /dev/null and b/src/main/webapp/images/join/btn_overlapid.gif differ diff --git a/src/main/webapp/images/join/btn_search.gif b/src/main/webapp/images/join/btn_search.gif new file mode 100644 index 0000000..9877230 Binary files /dev/null and b/src/main/webapp/images/join/btn_search.gif differ diff --git a/src/main/webapp/images/join/icon_01.gif b/src/main/webapp/images/join/icon_01.gif new file mode 100644 index 0000000..fddfc19 Binary files /dev/null and b/src/main/webapp/images/join/icon_01.gif differ diff --git a/src/main/webapp/images/join/id_img.gif b/src/main/webapp/images/join/id_img.gif new file mode 100644 index 0000000..5cc2589 Binary files /dev/null and b/src/main/webapp/images/join/id_img.gif differ diff --git a/src/main/webapp/images/join/join/basic.gif b/src/main/webapp/images/join/join/basic.gif new file mode 100644 index 0000000..d8cc839 Binary files /dev/null and b/src/main/webapp/images/join/join/basic.gif differ diff --git a/src/main/webapp/images/join/join/btn_add.gif b/src/main/webapp/images/join/join/btn_add.gif new file mode 100644 index 0000000..c146aef Binary files /dev/null and b/src/main/webapp/images/join/join/btn_add.gif differ diff --git a/src/main/webapp/images/join/join/btn_id.gif b/src/main/webapp/images/join/join/btn_id.gif new file mode 100644 index 0000000..a27b15c Binary files /dev/null and b/src/main/webapp/images/join/join/btn_id.gif differ diff --git a/src/main/webapp/images/join/join/btn_ok.gif b/src/main/webapp/images/join/join/btn_ok.gif new file mode 100644 index 0000000..16fadec Binary files /dev/null and b/src/main/webapp/images/join/join/btn_ok.gif differ diff --git a/src/main/webapp/images/join/join/btn_overlapid.gif b/src/main/webapp/images/join/join/btn_overlapid.gif new file mode 100644 index 0000000..eca903b Binary files /dev/null and b/src/main/webapp/images/join/join/btn_overlapid.gif differ diff --git a/src/main/webapp/images/join/join/btn_pass.gif b/src/main/webapp/images/join/join/btn_pass.gif new file mode 100644 index 0000000..2fb33da Binary files /dev/null and b/src/main/webapp/images/join/join/btn_pass.gif differ diff --git a/src/main/webapp/images/join/join/cancel(s).gif b/src/main/webapp/images/join/join/cancel(s).gif new file mode 100644 index 0000000..c79f553 Binary files /dev/null and b/src/main/webapp/images/join/join/cancel(s).gif differ diff --git a/src/main/webapp/images/join/join/id_back.gif b/src/main/webapp/images/join/join/id_back.gif new file mode 100644 index 0000000..01776f0 Binary files /dev/null and b/src/main/webapp/images/join/join/id_back.gif differ diff --git a/src/main/webapp/images/join/join/id_check.gif b/src/main/webapp/images/join/join/id_check.gif new file mode 100644 index 0000000..580366b Binary files /dev/null and b/src/main/webapp/images/join/join/id_check.gif differ diff --git a/src/main/webapp/images/join/join/id_top.gif b/src/main/webapp/images/join/join/id_top.gif new file mode 100644 index 0000000..c35417c Binary files /dev/null and b/src/main/webapp/images/join/join/id_top.gif differ diff --git a/src/main/webapp/images/join/join/idend_back.gif b/src/main/webapp/images/join/join/idend_back.gif new file mode 100644 index 0000000..bfeef4b Binary files /dev/null and b/src/main/webapp/images/join/join/idend_back.gif differ diff --git a/src/main/webapp/images/join/join/idend_top.gif b/src/main/webapp/images/join/join/idend_top.gif new file mode 100644 index 0000000..16be49f Binary files /dev/null and b/src/main/webapp/images/join/join/idend_top.gif differ diff --git a/src/main/webapp/images/join/join/ismember_back.gif b/src/main/webapp/images/join/join/ismember_back.gif new file mode 100644 index 0000000..6597f55 Binary files /dev/null and b/src/main/webapp/images/join/join/ismember_back.gif differ diff --git a/src/main/webapp/images/join/join/ismember_top.gif b/src/main/webapp/images/join/join/ismember_top.gif new file mode 100644 index 0000000..c100e93 Binary files /dev/null and b/src/main/webapp/images/join/join/ismember_top.gif differ diff --git a/src/main/webapp/images/join/join/join_top.gif b/src/main/webapp/images/join/join/join_top.gif new file mode 100644 index 0000000..5177ac3 Binary files /dev/null and b/src/main/webapp/images/join/join/join_top.gif differ diff --git a/src/main/webapp/images/join/join/joinok_back.gif b/src/main/webapp/images/join/join/joinok_back.gif new file mode 100644 index 0000000..508c6c9 Binary files /dev/null and b/src/main/webapp/images/join/join/joinok_back.gif differ diff --git a/src/main/webapp/images/join/join/ok(s).gif b/src/main/webapp/images/join/join/ok(s).gif new file mode 100644 index 0000000..0478341 Binary files /dev/null and b/src/main/webapp/images/join/join/ok(s).gif differ diff --git a/src/main/webapp/images/join/join/ok.gif b/src/main/webapp/images/join/join/ok.gif new file mode 100644 index 0000000..edc57e7 Binary files /dev/null and b/src/main/webapp/images/join/join/ok.gif differ diff --git a/src/main/webapp/images/join/join/option.gif b/src/main/webapp/images/join/join/option.gif new file mode 100644 index 0000000..1b67bbe Binary files /dev/null and b/src/main/webapp/images/join/join/option.gif differ diff --git a/src/main/webapp/images/join/join/pass_back.gif b/src/main/webapp/images/join/join/pass_back.gif new file mode 100644 index 0000000..a7b5971 Binary files /dev/null and b/src/main/webapp/images/join/join/pass_back.gif differ diff --git a/src/main/webapp/images/join/join/pass_top.gif b/src/main/webapp/images/join/join/pass_top.gif new file mode 100644 index 0000000..65a08c8 Binary files /dev/null and b/src/main/webapp/images/join/join/pass_top.gif differ diff --git a/src/main/webapp/images/join/join/passend_back.gif b/src/main/webapp/images/join/join/passend_back.gif new file mode 100644 index 0000000..f5efe2e Binary files /dev/null and b/src/main/webapp/images/join/join/passend_back.gif differ diff --git a/src/main/webapp/images/join/join/passend_top.gif b/src/main/webapp/images/join/join/passend_top.gif new file mode 100644 index 0000000..21eefba Binary files /dev/null and b/src/main/webapp/images/join/join/passend_top.gif differ diff --git a/src/main/webapp/images/join/join/personal.gif b/src/main/webapp/images/join/join/personal.gif new file mode 100644 index 0000000..3e70177 Binary files /dev/null and b/src/main/webapp/images/join/join/personal.gif differ diff --git a/src/main/webapp/images/join/join/search.gif b/src/main/webapp/images/join/join/search.gif new file mode 100644 index 0000000..daccfb8 Binary files /dev/null and b/src/main/webapp/images/join/join/search.gif differ diff --git a/src/main/webapp/images/join/join/spacer.gif b/src/main/webapp/images/join/join/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/src/main/webapp/images/join/join/spacer.gif differ diff --git a/src/main/webapp/images/join/join/zip_check.gif b/src/main/webapp/images/join/join/zip_check.gif new file mode 100644 index 0000000..091951e Binary files /dev/null and b/src/main/webapp/images/join/join/zip_check.gif differ diff --git a/src/main/webapp/images/join/join_top_img_01.jpg b/src/main/webapp/images/join/join_top_img_01.jpg new file mode 100644 index 0000000..4a3a50a Binary files /dev/null and b/src/main/webapp/images/join/join_top_img_01.jpg differ diff --git a/src/main/webapp/images/join/join_top_img_02.jpg b/src/main/webapp/images/join/join_top_img_02.jpg new file mode 100644 index 0000000..4bdeb5a Binary files /dev/null and b/src/main/webapp/images/join/join_top_img_02.jpg differ diff --git a/src/main/webapp/images/join/join_top_img_03.jpg b/src/main/webapp/images/join/join_top_img_03.jpg new file mode 100644 index 0000000..87a5df5 Binary files /dev/null and b/src/main/webapp/images/join/join_top_img_03.jpg differ diff --git a/src/main/webapp/images/join/join_top_img_04.jpg b/src/main/webapp/images/join/join_top_img_04.jpg new file mode 100644 index 0000000..498a877 Binary files /dev/null and b/src/main/webapp/images/join/join_top_img_04.jpg differ diff --git a/src/main/webapp/images/join/join_top_img_05.jpg b/src/main/webapp/images/join/join_top_img_05.jpg new file mode 100644 index 0000000..5c86329 Binary files /dev/null and b/src/main/webapp/images/join/join_top_img_05.jpg differ diff --git a/src/main/webapp/images/join/left_menu_01_over.gif b/src/main/webapp/images/join/left_menu_01_over.gif new file mode 100644 index 0000000..9f4f2cf Binary files /dev/null and b/src/main/webapp/images/join/left_menu_01_over.gif differ diff --git a/src/main/webapp/images/join/left_menu_02_over.gif b/src/main/webapp/images/join/left_menu_02_over.gif new file mode 100644 index 0000000..dce0f36 Binary files /dev/null and b/src/main/webapp/images/join/left_menu_02_over.gif differ diff --git a/src/main/webapp/images/join/left_menu_03_over.gif b/src/main/webapp/images/join/left_menu_03_over.gif new file mode 100644 index 0000000..e2c14ef Binary files /dev/null and b/src/main/webapp/images/join/left_menu_03_over.gif differ diff --git a/src/main/webapp/images/join/left_menu_04_over.gif b/src/main/webapp/images/join/left_menu_04_over.gif new file mode 100644 index 0000000..a72d91e Binary files /dev/null and b/src/main/webapp/images/join/left_menu_04_over.gif differ diff --git a/src/main/webapp/images/join/left_menu_05.gif b/src/main/webapp/images/join/left_menu_05.gif new file mode 100644 index 0000000..2096224 Binary files /dev/null and b/src/main/webapp/images/join/left_menu_05.gif differ diff --git a/src/main/webapp/images/join/left_menu_05_over.gif b/src/main/webapp/images/join/left_menu_05_over.gif new file mode 100644 index 0000000..e7a02e0 Binary files /dev/null and b/src/main/webapp/images/join/left_menu_05_over.gif differ diff --git a/src/main/webapp/images/join/left_tit_01.gif b/src/main/webapp/images/join/left_tit_01.gif new file mode 100644 index 0000000..d2a9281 Binary files /dev/null and b/src/main/webapp/images/join/left_tit_01.gif differ diff --git a/src/main/webapp/images/join/tit_01.gif b/src/main/webapp/images/join/tit_01.gif new file mode 100644 index 0000000..e3c584b Binary files /dev/null and b/src/main/webapp/images/join/tit_01.gif differ diff --git a/src/main/webapp/images/join/tit_02.gif b/src/main/webapp/images/join/tit_02.gif new file mode 100644 index 0000000..cbc0911 Binary files /dev/null and b/src/main/webapp/images/join/tit_02.gif differ diff --git a/src/main/webapp/images/join/tit_03.gif b/src/main/webapp/images/join/tit_03.gif new file mode 100644 index 0000000..cf54006 Binary files /dev/null and b/src/main/webapp/images/join/tit_03.gif differ diff --git a/src/main/webapp/images/join/tit_04.gif b/src/main/webapp/images/join/tit_04.gif new file mode 100644 index 0000000..811f755 Binary files /dev/null and b/src/main/webapp/images/join/tit_04.gif differ diff --git a/src/main/webapp/images/join/tit_05.gif b/src/main/webapp/images/join/tit_05.gif new file mode 100644 index 0000000..8c35e96 Binary files /dev/null and b/src/main/webapp/images/join/tit_05.gif differ diff --git a/src/main/webapp/images/join/tit_051.gif b/src/main/webapp/images/join/tit_051.gif new file mode 100644 index 0000000..016228d Binary files /dev/null and b/src/main/webapp/images/join/tit_051.gif differ diff --git a/src/main/webapp/images/join/tit_06.gif b/src/main/webapp/images/join/tit_06.gif new file mode 100644 index 0000000..409efd3 Binary files /dev/null and b/src/main/webapp/images/join/tit_06.gif differ diff --git a/src/main/webapp/images/join/top_tit_01.gif b/src/main/webapp/images/join/top_tit_01.gif new file mode 100644 index 0000000..6dad903 Binary files /dev/null and b/src/main/webapp/images/join/top_tit_01.gif differ diff --git a/src/main/webapp/images/join/top_tit_02.gif b/src/main/webapp/images/join/top_tit_02.gif new file mode 100644 index 0000000..98f6f66 Binary files /dev/null and b/src/main/webapp/images/join/top_tit_02.gif differ diff --git a/src/main/webapp/images/join/top_tit_03.gif b/src/main/webapp/images/join/top_tit_03.gif new file mode 100644 index 0000000..f6d47cb Binary files /dev/null and b/src/main/webapp/images/join/top_tit_03.gif differ diff --git a/src/main/webapp/images/join/top_tit_id.gif b/src/main/webapp/images/join/top_tit_id.gif new file mode 100644 index 0000000..0278081 Binary files /dev/null and b/src/main/webapp/images/join/top_tit_id.gif differ diff --git a/src/main/webapp/images/law/cen_01.gif b/src/main/webapp/images/law/cen_01.gif new file mode 100644 index 0000000..17e7765 Binary files /dev/null and b/src/main/webapp/images/law/cen_01.gif differ diff --git a/src/main/webapp/images/law/cen_01_20130325.gif b/src/main/webapp/images/law/cen_01_20130325.gif new file mode 100644 index 0000000..9d1d9cd Binary files /dev/null and b/src/main/webapp/images/law/cen_01_20130325.gif differ diff --git a/src/main/webapp/images/law/cen_01_20130325_01.gif b/src/main/webapp/images/law/cen_01_20130325_01.gif new file mode 100644 index 0000000..e8d7fc1 Binary files /dev/null and b/src/main/webapp/images/law/cen_01_20130325_01.gif differ diff --git a/src/main/webapp/images/law/images_Buckup/cen_01.gif b/src/main/webapp/images/law/images_Buckup/cen_01.gif new file mode 100644 index 0000000..18bf785 Binary files /dev/null and b/src/main/webapp/images/law/images_Buckup/cen_01.gif differ diff --git a/src/main/webapp/images/law/law_top_img_01.jpg b/src/main/webapp/images/law/law_top_img_01.jpg new file mode 100644 index 0000000..f5cbd21 Binary files /dev/null and b/src/main/webapp/images/law/law_top_img_01.jpg differ diff --git a/src/main/webapp/images/law/law_top_img_02.jpg b/src/main/webapp/images/law/law_top_img_02.jpg new file mode 100644 index 0000000..4e9de82 Binary files /dev/null and b/src/main/webapp/images/law/law_top_img_02.jpg differ diff --git a/src/main/webapp/images/law/law_top_img_03.jpg b/src/main/webapp/images/law/law_top_img_03.jpg new file mode 100644 index 0000000..aae0c8a Binary files /dev/null and b/src/main/webapp/images/law/law_top_img_03.jpg differ diff --git a/src/main/webapp/images/law/law_top_img_04.jpg b/src/main/webapp/images/law/law_top_img_04.jpg new file mode 100644 index 0000000..88f1c2e Binary files /dev/null and b/src/main/webapp/images/law/law_top_img_04.jpg differ diff --git a/src/main/webapp/images/law/law_top_img_05.jpg b/src/main/webapp/images/law/law_top_img_05.jpg new file mode 100644 index 0000000..68dc169 Binary files /dev/null and b/src/main/webapp/images/law/law_top_img_05.jpg differ diff --git a/src/main/webapp/images/law/left_menu_01.gif b/src/main/webapp/images/law/left_menu_01.gif new file mode 100644 index 0000000..a3bef29 Binary files /dev/null and b/src/main/webapp/images/law/left_menu_01.gif differ diff --git a/src/main/webapp/images/law/left_menu_01_over.gif b/src/main/webapp/images/law/left_menu_01_over.gif new file mode 100644 index 0000000..4704164 Binary files /dev/null and b/src/main/webapp/images/law/left_menu_01_over.gif differ diff --git a/src/main/webapp/images/law/left_menu_02.gif b/src/main/webapp/images/law/left_menu_02.gif new file mode 100644 index 0000000..6ca85e9 Binary files /dev/null and b/src/main/webapp/images/law/left_menu_02.gif differ diff --git a/src/main/webapp/images/law/left_menu_02_over.gif b/src/main/webapp/images/law/left_menu_02_over.gif new file mode 100644 index 0000000..cf61e44 Binary files /dev/null and b/src/main/webapp/images/law/left_menu_02_over.gif differ diff --git a/src/main/webapp/images/law/left_menu_03.gif b/src/main/webapp/images/law/left_menu_03.gif new file mode 100644 index 0000000..33d1ba0 Binary files /dev/null and b/src/main/webapp/images/law/left_menu_03.gif differ diff --git a/src/main/webapp/images/law/left_menu_03_over.gif b/src/main/webapp/images/law/left_menu_03_over.gif new file mode 100644 index 0000000..eee2545 Binary files /dev/null and b/src/main/webapp/images/law/left_menu_03_over.gif differ diff --git a/src/main/webapp/images/law/left_menu_04.gif b/src/main/webapp/images/law/left_menu_04.gif new file mode 100644 index 0000000..8520453 Binary files /dev/null and b/src/main/webapp/images/law/left_menu_04.gif differ diff --git a/src/main/webapp/images/law/left_menu_04_over.gif b/src/main/webapp/images/law/left_menu_04_over.gif new file mode 100644 index 0000000..0b5dd86 Binary files /dev/null and b/src/main/webapp/images/law/left_menu_04_over.gif differ diff --git a/src/main/webapp/images/law/left_menu_05.gif b/src/main/webapp/images/law/left_menu_05.gif new file mode 100644 index 0000000..b728188 Binary files /dev/null and b/src/main/webapp/images/law/left_menu_05.gif differ diff --git a/src/main/webapp/images/law/left_menu_05_over.gif b/src/main/webapp/images/law/left_menu_05_over.gif new file mode 100644 index 0000000..a44f519 Binary files /dev/null and b/src/main/webapp/images/law/left_menu_05_over.gif differ diff --git a/src/main/webapp/images/law/left_tit_01.gif b/src/main/webapp/images/law/left_tit_01.gif new file mode 100644 index 0000000..d06f250 Binary files /dev/null and b/src/main/webapp/images/law/left_tit_01.gif differ diff --git a/src/main/webapp/images/law/top_tit_01.gif b/src/main/webapp/images/law/top_tit_01.gif new file mode 100644 index 0000000..1e232d0 Binary files /dev/null and b/src/main/webapp/images/law/top_tit_01.gif differ diff --git a/src/main/webapp/images/law/top_tit_02.gif b/src/main/webapp/images/law/top_tit_02.gif new file mode 100644 index 0000000..e5aaafc Binary files /dev/null and b/src/main/webapp/images/law/top_tit_02.gif differ diff --git a/src/main/webapp/images/law/top_tit_03.gif b/src/main/webapp/images/law/top_tit_03.gif new file mode 100644 index 0000000..52bb6e8 Binary files /dev/null and b/src/main/webapp/images/law/top_tit_03.gif differ diff --git a/src/main/webapp/images/law/top_tit_04.gif b/src/main/webapp/images/law/top_tit_04.gif new file mode 100644 index 0000000..e4eca32 Binary files /dev/null and b/src/main/webapp/images/law/top_tit_04.gif differ diff --git a/src/main/webapp/images/law/top_tit_05.gif b/src/main/webapp/images/law/top_tit_05.gif new file mode 100644 index 0000000..05c7e13 Binary files /dev/null and b/src/main/webapp/images/law/top_tit_05.gif differ diff --git a/src/main/webapp/images/login_bnt.gif b/src/main/webapp/images/login_bnt.gif new file mode 100644 index 0000000..33119f1 Binary files /dev/null and b/src/main/webapp/images/login_bnt.gif differ diff --git a/src/main/webapp/images/login_but.gif b/src/main/webapp/images/login_but.gif new file mode 100644 index 0000000..5336e36 Binary files /dev/null and b/src/main/webapp/images/login_but.gif differ diff --git a/src/main/webapp/images/login_i_p_but.gif b/src/main/webapp/images/login_i_p_but.gif new file mode 100644 index 0000000..30d2ad9 Binary files /dev/null and b/src/main/webapp/images/login_i_p_but.gif differ diff --git a/src/main/webapp/images/login_icon.gif b/src/main/webapp/images/login_icon.gif new file mode 100644 index 0000000..2a0edfc Binary files /dev/null and b/src/main/webapp/images/login_icon.gif differ diff --git a/src/main/webapp/images/login_icon_01.gif b/src/main/webapp/images/login_icon_01.gif new file mode 100644 index 0000000..6216580 Binary files /dev/null and b/src/main/webapp/images/login_icon_01.gif differ diff --git a/src/main/webapp/images/login_icon_02.gif b/src/main/webapp/images/login_icon_02.gif new file mode 100644 index 0000000..481cc13 Binary files /dev/null and b/src/main/webapp/images/login_icon_02.gif differ diff --git a/src/main/webapp/images/login_id.gif b/src/main/webapp/images/login_id.gif new file mode 100644 index 0000000..9b44e1b Binary files /dev/null and b/src/main/webapp/images/login_id.gif differ diff --git a/src/main/webapp/images/login_m_but.gif b/src/main/webapp/images/login_m_but.gif new file mode 100644 index 0000000..aef07d2 Binary files /dev/null and b/src/main/webapp/images/login_m_but.gif differ diff --git a/src/main/webapp/images/login_pw.gif b/src/main/webapp/images/login_pw.gif new file mode 100644 index 0000000..8a16dd6 Binary files /dev/null and b/src/main/webapp/images/login_pw.gif differ diff --git a/src/main/webapp/images/logout_bnt.gif b/src/main/webapp/images/logout_bnt.gif new file mode 100644 index 0000000..a06a75e Binary files /dev/null and b/src/main/webapp/images/logout_bnt.gif differ diff --git a/src/main/webapp/images/logout_but.gif b/src/main/webapp/images/logout_but.gif new file mode 100644 index 0000000..609190f Binary files /dev/null and b/src/main/webapp/images/logout_but.gif differ diff --git a/src/main/webapp/images/m02.gif b/src/main/webapp/images/m02.gif new file mode 100644 index 0000000..d0a485a Binary files /dev/null and b/src/main/webapp/images/m02.gif differ diff --git a/src/main/webapp/images/m_logos.gif b/src/main/webapp/images/m_logos.gif new file mode 100644 index 0000000..7f7e00c Binary files /dev/null and b/src/main/webapp/images/m_logos.gif differ diff --git a/src/main/webapp/images/m_loimg.gif b/src/main/webapp/images/m_loimg.gif new file mode 100644 index 0000000..24fb1d1 Binary files /dev/null and b/src/main/webapp/images/m_loimg.gif differ diff --git a/src/main/webapp/images/m_news_tit_01.gif b/src/main/webapp/images/m_news_tit_01.gif new file mode 100644 index 0000000..ecf1bef Binary files /dev/null and b/src/main/webapp/images/m_news_tit_01.gif differ diff --git a/src/main/webapp/images/m_news_tit_01_over.gif b/src/main/webapp/images/m_news_tit_01_over.gif new file mode 100644 index 0000000..51941c0 Binary files /dev/null and b/src/main/webapp/images/m_news_tit_01_over.gif differ diff --git a/src/main/webapp/images/m_news_tit_02.gif b/src/main/webapp/images/m_news_tit_02.gif new file mode 100644 index 0000000..c6984d0 Binary files /dev/null and b/src/main/webapp/images/m_news_tit_02.gif differ diff --git a/src/main/webapp/images/m_news_tit_02_over.gif b/src/main/webapp/images/m_news_tit_02_over.gif new file mode 100644 index 0000000..24988e4 Binary files /dev/null and b/src/main/webapp/images/m_news_tit_02_over.gif differ diff --git a/src/main/webapp/images/m_news_tit_03.gif b/src/main/webapp/images/m_news_tit_03.gif new file mode 100644 index 0000000..fd68cf3 Binary files /dev/null and b/src/main/webapp/images/m_news_tit_03.gif differ diff --git a/src/main/webapp/images/m_news_tit_03_over.gif b/src/main/webapp/images/m_news_tit_03_over.gif new file mode 100644 index 0000000..6064edd Binary files /dev/null and b/src/main/webapp/images/m_news_tit_03_over.gif differ diff --git a/src/main/webapp/images/m_news_tit_04.gif b/src/main/webapp/images/m_news_tit_04.gif new file mode 100644 index 0000000..8786580 Binary files /dev/null and b/src/main/webapp/images/m_news_tit_04.gif differ diff --git a/src/main/webapp/images/m_top_01.gif b/src/main/webapp/images/m_top_01.gif new file mode 100644 index 0000000..7b8ba15 Binary files /dev/null and b/src/main/webapp/images/m_top_01.gif differ diff --git a/src/main/webapp/images/m_top_01_20121220.gif b/src/main/webapp/images/m_top_01_20121220.gif new file mode 100644 index 0000000..92b7c6b Binary files /dev/null and b/src/main/webapp/images/m_top_01_20121220.gif differ diff --git a/src/main/webapp/images/m_top_01_20130325.gif b/src/main/webapp/images/m_top_01_20130325.gif new file mode 100644 index 0000000..1607942 Binary files /dev/null and b/src/main/webapp/images/m_top_01_20130325.gif differ diff --git a/src/main/webapp/images/m_top_02.gif b/src/main/webapp/images/m_top_02.gif new file mode 100644 index 0000000..575282f Binary files /dev/null and b/src/main/webapp/images/m_top_02.gif differ diff --git a/src/main/webapp/images/m_top_03.gif b/src/main/webapp/images/m_top_03.gif new file mode 100644 index 0000000..d7230c7 Binary files /dev/null and b/src/main/webapp/images/m_top_03.gif differ diff --git a/src/main/webapp/images/m_top_04.gif b/src/main/webapp/images/m_top_04.gif new file mode 100644 index 0000000..aab4e8f Binary files /dev/null and b/src/main/webapp/images/m_top_04.gif differ diff --git a/src/main/webapp/images/m_top_05.gif b/src/main/webapp/images/m_top_05.gif new file mode 100644 index 0000000..305fd9f Binary files /dev/null and b/src/main/webapp/images/m_top_05.gif differ diff --git a/src/main/webapp/images/m_top_06.gif b/src/main/webapp/images/m_top_06.gif new file mode 100644 index 0000000..ce687ad Binary files /dev/null and b/src/main/webapp/images/m_top_06.gif differ diff --git a/src/main/webapp/images/m_top_07.gif b/src/main/webapp/images/m_top_07.gif new file mode 100644 index 0000000..8c9344d Binary files /dev/null and b/src/main/webapp/images/m_top_07.gif differ diff --git a/src/main/webapp/images/m_top_08.gif b/src/main/webapp/images/m_top_08.gif new file mode 100644 index 0000000..ae6ceae Binary files /dev/null and b/src/main/webapp/images/m_top_08.gif differ diff --git a/src/main/webapp/images/main_b.gif b/src/main/webapp/images/main_b.gif new file mode 100644 index 0000000..82d543c Binary files /dev/null and b/src/main/webapp/images/main_b.gif differ diff --git a/src/main/webapp/images/main_call.gif b/src/main/webapp/images/main_call.gif new file mode 100644 index 0000000..42d0835 Binary files /dev/null and b/src/main/webapp/images/main_call.gif differ diff --git a/src/main/webapp/images/main_call_2013.gif b/src/main/webapp/images/main_call_2013.gif new file mode 100644 index 0000000..0f48ba2 Binary files /dev/null and b/src/main/webapp/images/main_call_2013.gif differ diff --git a/src/main/webapp/images/main_call_2015.gif b/src/main/webapp/images/main_call_2015.gif new file mode 100644 index 0000000..ea1b0a1 Binary files /dev/null and b/src/main/webapp/images/main_call_2015.gif differ diff --git a/src/main/webapp/images/main_cen_01.gif b/src/main/webapp/images/main_cen_01.gif new file mode 100644 index 0000000..9fff8b3 Binary files /dev/null and b/src/main/webapp/images/main_cen_01.gif differ diff --git a/src/main/webapp/images/main_cen_02.gif b/src/main/webapp/images/main_cen_02.gif new file mode 100644 index 0000000..bd421f5 Binary files /dev/null and b/src/main/webapp/images/main_cen_02.gif differ diff --git a/src/main/webapp/images/main_img.jpg b/src/main/webapp/images/main_img.jpg new file mode 100644 index 0000000..4bd250b Binary files /dev/null and b/src/main/webapp/images/main_img.jpg differ diff --git a/src/main/webapp/images/main_img_01.jpg b/src/main/webapp/images/main_img_01.jpg new file mode 100644 index 0000000..316b6b8 Binary files /dev/null and b/src/main/webapp/images/main_img_01.jpg differ diff --git a/src/main/webapp/images/main_img_03.jpg b/src/main/webapp/images/main_img_03.jpg new file mode 100644 index 0000000..fddc998 Binary files /dev/null and b/src/main/webapp/images/main_img_03.jpg differ diff --git a/src/main/webapp/images/main_img_04.jpg b/src/main/webapp/images/main_img_04.jpg new file mode 100644 index 0000000..14d701b Binary files /dev/null and b/src/main/webapp/images/main_img_04.jpg differ diff --git a/src/main/webapp/images/main_login.jpg b/src/main/webapp/images/main_login.jpg new file mode 100644 index 0000000..329e32c Binary files /dev/null and b/src/main/webapp/images/main_login.jpg differ diff --git a/src/main/webapp/images/main_top_logo.gif b/src/main/webapp/images/main_top_logo.gif new file mode 100644 index 0000000..a5d07e4 Binary files /dev/null and b/src/main/webapp/images/main_top_logo.gif differ diff --git a/src/main/webapp/images/main_top_logo_20130325.gif b/src/main/webapp/images/main_top_logo_20130325.gif new file mode 100644 index 0000000..1607942 Binary files /dev/null and b/src/main/webapp/images/main_top_logo_20130325.gif differ diff --git a/src/main/webapp/images/main_top_menu.gif b/src/main/webapp/images/main_top_menu.gif new file mode 100644 index 0000000..88925ed Binary files /dev/null and b/src/main/webapp/images/main_top_menu.gif differ diff --git a/src/main/webapp/images/main_top_menu_01.gif b/src/main/webapp/images/main_top_menu_01.gif new file mode 100644 index 0000000..575282f Binary files /dev/null and b/src/main/webapp/images/main_top_menu_01.gif differ diff --git a/src/main/webapp/images/main_top_menu_02.gif b/src/main/webapp/images/main_top_menu_02.gif new file mode 100644 index 0000000..d7230c7 Binary files /dev/null and b/src/main/webapp/images/main_top_menu_02.gif differ diff --git a/src/main/webapp/images/main_top_menu_03.gif b/src/main/webapp/images/main_top_menu_03.gif new file mode 100644 index 0000000..aab4e8f Binary files /dev/null and b/src/main/webapp/images/main_top_menu_03.gif differ diff --git a/src/main/webapp/images/main_top_menu_04.gif b/src/main/webapp/images/main_top_menu_04.gif new file mode 100644 index 0000000..305fd9f Binary files /dev/null and b/src/main/webapp/images/main_top_menu_04.gif differ diff --git a/src/main/webapp/images/main_top_menu_05.gif b/src/main/webapp/images/main_top_menu_05.gif new file mode 100644 index 0000000..ce687ad Binary files /dev/null and b/src/main/webapp/images/main_top_menu_05.gif differ diff --git a/src/main/webapp/images/main_top_menu_06.gif b/src/main/webapp/images/main_top_menu_06.gif new file mode 100644 index 0000000..8c9344d Binary files /dev/null and b/src/main/webapp/images/main_top_menu_06.gif differ diff --git a/src/main/webapp/images/map/3d_icon01_on.png b/src/main/webapp/images/map/3d_icon01_on.png new file mode 100644 index 0000000..766f218 Binary files /dev/null and b/src/main/webapp/images/map/3d_icon01_on.png differ diff --git a/src/main/webapp/images/map/3d_icon01_out.png b/src/main/webapp/images/map/3d_icon01_out.png new file mode 100644 index 0000000..32de334 Binary files /dev/null and b/src/main/webapp/images/map/3d_icon01_out.png differ diff --git a/src/main/webapp/images/map/3d_icon02_on.png b/src/main/webapp/images/map/3d_icon02_on.png new file mode 100644 index 0000000..dcbf967 Binary files /dev/null and b/src/main/webapp/images/map/3d_icon02_on.png differ diff --git a/src/main/webapp/images/map/3d_icon02_out.png b/src/main/webapp/images/map/3d_icon02_out.png new file mode 100644 index 0000000..b3b8d78 Binary files /dev/null and b/src/main/webapp/images/map/3d_icon02_out.png differ diff --git a/src/main/webapp/images/map/3d_icon03_on.png b/src/main/webapp/images/map/3d_icon03_on.png new file mode 100644 index 0000000..f722673 Binary files /dev/null and b/src/main/webapp/images/map/3d_icon03_on.png differ diff --git a/src/main/webapp/images/map/3d_icon03_out.png b/src/main/webapp/images/map/3d_icon03_out.png new file mode 100644 index 0000000..5f8554f Binary files /dev/null and b/src/main/webapp/images/map/3d_icon03_out.png differ diff --git a/src/main/webapp/images/map/3d_icon04_on.png b/src/main/webapp/images/map/3d_icon04_on.png new file mode 100644 index 0000000..7970f09 Binary files /dev/null and b/src/main/webapp/images/map/3d_icon04_on.png differ diff --git a/src/main/webapp/images/map/3d_icon04_out.png b/src/main/webapp/images/map/3d_icon04_out.png new file mode 100644 index 0000000..c6e81b8 Binary files /dev/null and b/src/main/webapp/images/map/3d_icon04_out.png differ diff --git a/src/main/webapp/images/map/3d_icon05_on.png b/src/main/webapp/images/map/3d_icon05_on.png new file mode 100644 index 0000000..a6ae20d Binary files /dev/null and b/src/main/webapp/images/map/3d_icon05_on.png differ diff --git a/src/main/webapp/images/map/3d_icon05_out.png b/src/main/webapp/images/map/3d_icon05_out.png new file mode 100644 index 0000000..1bc4ca4 Binary files /dev/null and b/src/main/webapp/images/map/3d_icon05_out.png differ diff --git a/src/main/webapp/images/map/3d_icon06_on.png b/src/main/webapp/images/map/3d_icon06_on.png new file mode 100644 index 0000000..095d10e Binary files /dev/null and b/src/main/webapp/images/map/3d_icon06_on.png differ diff --git a/src/main/webapp/images/map/3d_icon06_out.png b/src/main/webapp/images/map/3d_icon06_out.png new file mode 100644 index 0000000..fcc3447 Binary files /dev/null and b/src/main/webapp/images/map/3d_icon06_out.png differ diff --git a/src/main/webapp/images/map/3d_icon07_on.png b/src/main/webapp/images/map/3d_icon07_on.png new file mode 100644 index 0000000..c4e183f Binary files /dev/null and b/src/main/webapp/images/map/3d_icon07_on.png differ diff --git a/src/main/webapp/images/map/3d_icon07_out.png b/src/main/webapp/images/map/3d_icon07_out.png new file mode 100644 index 0000000..5b98217 Binary files /dev/null and b/src/main/webapp/images/map/3d_icon07_out.png differ diff --git a/src/main/webapp/images/map/3d_on.gif b/src/main/webapp/images/map/3d_on.gif new file mode 100644 index 0000000..b9dcabe Binary files /dev/null and b/src/main/webapp/images/map/3d_on.gif differ diff --git a/src/main/webapp/images/map/3d_out.gif b/src/main/webapp/images/map/3d_out.gif new file mode 100644 index 0000000..6339d0b Binary files /dev/null and b/src/main/webapp/images/map/3d_out.gif differ diff --git a/src/main/webapp/images/map/arrow.gif b/src/main/webapp/images/map/arrow.gif new file mode 100644 index 0000000..0087e71 Binary files /dev/null and b/src/main/webapp/images/map/arrow.gif differ diff --git a/src/main/webapp/images/map/arrow.png b/src/main/webapp/images/map/arrow.png new file mode 100644 index 0000000..ea272ef Binary files /dev/null and b/src/main/webapp/images/map/arrow.png differ diff --git a/src/main/webapp/images/map/arrowb.png b/src/main/webapp/images/map/arrowb.png new file mode 100644 index 0000000..300b858 Binary files /dev/null and b/src/main/webapp/images/map/arrowb.png differ diff --git a/src/main/webapp/images/map/back1.png b/src/main/webapp/images/map/back1.png new file mode 100644 index 0000000..f3dba3e Binary files /dev/null and b/src/main/webapp/images/map/back1.png differ diff --git a/src/main/webapp/images/map/back_01.jpg b/src/main/webapp/images/map/back_01.jpg new file mode 100644 index 0000000..1094a55 Binary files /dev/null and b/src/main/webapp/images/map/back_01.jpg differ diff --git a/src/main/webapp/images/map/bl_blue.gif b/src/main/webapp/images/map/bl_blue.gif new file mode 100644 index 0000000..8a01651 Binary files /dev/null and b/src/main/webapp/images/map/bl_blue.gif differ diff --git a/src/main/webapp/images/map/bl_gray.gif b/src/main/webapp/images/map/bl_gray.gif new file mode 100644 index 0000000..0f076a8 Binary files /dev/null and b/src/main/webapp/images/map/bl_gray.gif differ diff --git a/src/main/webapp/images/map/bl_white.gif b/src/main/webapp/images/map/bl_white.gif new file mode 100644 index 0000000..a695511 Binary files /dev/null and b/src/main/webapp/images/map/bl_white.gif differ diff --git a/src/main/webapp/images/map/blank.gif b/src/main/webapp/images/map/blank.gif new file mode 100644 index 0000000..35d42e8 Binary files /dev/null and b/src/main/webapp/images/map/blank.gif differ diff --git a/src/main/webapp/images/map/blank.png b/src/main/webapp/images/map/blank.png new file mode 100644 index 0000000..f1f9e28 Binary files /dev/null and b/src/main/webapp/images/map/blank.png differ diff --git a/src/main/webapp/images/map/blt_01.gif b/src/main/webapp/images/map/blt_01.gif new file mode 100644 index 0000000..e92fc11 Binary files /dev/null and b/src/main/webapp/images/map/blt_01.gif differ diff --git a/src/main/webapp/images/map/blt_b.gif b/src/main/webapp/images/map/blt_b.gif new file mode 100644 index 0000000..a86d7c1 Binary files /dev/null and b/src/main/webapp/images/map/blt_b.gif differ diff --git a/src/main/webapp/images/map/box_botm.gif b/src/main/webapp/images/map/box_botm.gif new file mode 100644 index 0000000..83f413d Binary files /dev/null and b/src/main/webapp/images/map/box_botm.gif differ diff --git a/src/main/webapp/images/map/box_btm.gif b/src/main/webapp/images/map/box_btm.gif new file mode 100644 index 0000000..1782723 Binary files /dev/null and b/src/main/webapp/images/map/box_btm.gif differ diff --git a/src/main/webapp/images/map/box_mid.gif b/src/main/webapp/images/map/box_mid.gif new file mode 100644 index 0000000..fd39d3d Binary files /dev/null and b/src/main/webapp/images/map/box_mid.gif differ diff --git a/src/main/webapp/images/map/box_top.gif b/src/main/webapp/images/map/box_top.gif new file mode 100644 index 0000000..e03a119 Binary files /dev/null and b/src/main/webapp/images/map/box_top.gif differ diff --git a/src/main/webapp/images/map/box_white_bg.gif b/src/main/webapp/images/map/box_white_bg.gif new file mode 100644 index 0000000..64e49e6 Binary files /dev/null and b/src/main/webapp/images/map/box_white_bg.gif differ diff --git a/src/main/webapp/images/map/bt_back.gif b/src/main/webapp/images/map/bt_back.gif new file mode 100644 index 0000000..68262ab Binary files /dev/null and b/src/main/webapp/images/map/bt_back.gif differ diff --git a/src/main/webapp/images/map/bt_close.gif b/src/main/webapp/images/map/bt_close.gif new file mode 100644 index 0000000..630d78e Binary files /dev/null and b/src/main/webapp/images/map/bt_close.gif differ diff --git a/src/main/webapp/images/map/btn_acc.gif b/src/main/webapp/images/map/btn_acc.gif new file mode 100644 index 0000000..21cb293 Binary files /dev/null and b/src/main/webapp/images/map/btn_acc.gif differ diff --git a/src/main/webapp/images/map/btn_add.gif b/src/main/webapp/images/map/btn_add.gif new file mode 100644 index 0000000..bda97a0 Binary files /dev/null and b/src/main/webapp/images/map/btn_add.gif differ diff --git a/src/main/webapp/images/map/btn_allselect.gif b/src/main/webapp/images/map/btn_allselect.gif new file mode 100644 index 0000000..6204de6 Binary files /dev/null and b/src/main/webapp/images/map/btn_allselect.gif differ diff --git a/src/main/webapp/images/map/btn_cal.gif b/src/main/webapp/images/map/btn_cal.gif new file mode 100644 index 0000000..695c9f6 Binary files /dev/null and b/src/main/webapp/images/map/btn_cal.gif differ diff --git a/src/main/webapp/images/map/btn_cart.gif b/src/main/webapp/images/map/btn_cart.gif new file mode 100644 index 0000000..b03d431 Binary files /dev/null and b/src/main/webapp/images/map/btn_cart.gif differ diff --git a/src/main/webapp/images/map/btn_cart_view.gif b/src/main/webapp/images/map/btn_cart_view.gif new file mode 100644 index 0000000..23c74fa Binary files /dev/null and b/src/main/webapp/images/map/btn_cart_view.gif differ diff --git a/src/main/webapp/images/map/btn_deselect.gif b/src/main/webapp/images/map/btn_deselect.gif new file mode 100644 index 0000000..c8b88d5 Binary files /dev/null and b/src/main/webapp/images/map/btn_deselect.gif differ diff --git a/src/main/webapp/images/map/btn_download.gif b/src/main/webapp/images/map/btn_download.gif new file mode 100644 index 0000000..5fe39df Binary files /dev/null and b/src/main/webapp/images/map/btn_download.gif differ diff --git a/src/main/webapp/images/map/btn_move.gif b/src/main/webapp/images/map/btn_move.gif new file mode 100644 index 0000000..91eb26f Binary files /dev/null and b/src/main/webapp/images/map/btn_move.gif differ diff --git a/src/main/webapp/images/map/btn_search.gif b/src/main/webapp/images/map/btn_search.gif new file mode 100644 index 0000000..cf1cf94 Binary files /dev/null and b/src/main/webapp/images/map/btn_search.gif differ diff --git a/src/main/webapp/images/map/btn_uscs.gif b/src/main/webapp/images/map/btn_uscs.gif new file mode 100644 index 0000000..6688295 Binary files /dev/null and b/src/main/webapp/images/map/btn_uscs.gif differ diff --git a/src/main/webapp/images/map/btns_download.gif b/src/main/webapp/images/map/btns_download.gif new file mode 100644 index 0000000..9e29a7d Binary files /dev/null and b/src/main/webapp/images/map/btns_download.gif differ diff --git a/src/main/webapp/images/map/btns_metadata.gif b/src/main/webapp/images/map/btns_metadata.gif new file mode 100644 index 0000000..b7b371d Binary files /dev/null and b/src/main/webapp/images/map/btns_metadata.gif differ diff --git a/src/main/webapp/images/map/btns_preview.gif b/src/main/webapp/images/map/btns_preview.gif new file mode 100644 index 0000000..9e67b2f Binary files /dev/null and b/src/main/webapp/images/map/btns_preview.gif differ diff --git a/src/main/webapp/images/map/cad.png b/src/main/webapp/images/map/cad.png new file mode 100644 index 0000000..37d6bc7 Binary files /dev/null and b/src/main/webapp/images/map/cad.png differ diff --git a/src/main/webapp/images/map/check.png b/src/main/webapp/images/map/check.png new file mode 100644 index 0000000..34ecbda Binary files /dev/null and b/src/main/webapp/images/map/check.png differ diff --git a/src/main/webapp/images/map/data.png b/src/main/webapp/images/map/data.png new file mode 100644 index 0000000..ad6aa0a Binary files /dev/null and b/src/main/webapp/images/map/data.png differ diff --git a/src/main/webapp/images/map/del_bm.gif b/src/main/webapp/images/map/del_bm.gif new file mode 100644 index 0000000..e73cf0d Binary files /dev/null and b/src/main/webapp/images/map/del_bm.gif differ diff --git a/src/main/webapp/images/map/dot.gif b/src/main/webapp/images/map/dot.gif new file mode 100644 index 0000000..14ace4c Binary files /dev/null and b/src/main/webapp/images/map/dot.gif differ diff --git a/src/main/webapp/images/map/dot_ln.gif b/src/main/webapp/images/map/dot_ln.gif new file mode 100644 index 0000000..edf2ca1 Binary files /dev/null and b/src/main/webapp/images/map/dot_ln.gif differ diff --git a/src/main/webapp/images/map/download/btn_allselect.gif b/src/main/webapp/images/map/download/btn_allselect.gif new file mode 100644 index 0000000..6204de6 Binary files /dev/null and b/src/main/webapp/images/map/download/btn_allselect.gif differ diff --git a/src/main/webapp/images/map/download/btn_cart.gif b/src/main/webapp/images/map/download/btn_cart.gif new file mode 100644 index 0000000..b03d431 Binary files /dev/null and b/src/main/webapp/images/map/download/btn_cart.gif differ diff --git a/src/main/webapp/images/map/download/btn_cart_view.gif b/src/main/webapp/images/map/download/btn_cart_view.gif new file mode 100644 index 0000000..23c74fa Binary files /dev/null and b/src/main/webapp/images/map/download/btn_cart_view.gif differ diff --git a/src/main/webapp/images/map/download/btn_deselect.gif b/src/main/webapp/images/map/download/btn_deselect.gif new file mode 100644 index 0000000..c8b88d5 Binary files /dev/null and b/src/main/webapp/images/map/download/btn_deselect.gif differ diff --git a/src/main/webapp/images/map/download/btn_download.gif b/src/main/webapp/images/map/download/btn_download.gif new file mode 100644 index 0000000..5fe39df Binary files /dev/null and b/src/main/webapp/images/map/download/btn_download.gif differ diff --git a/src/main/webapp/images/map/download/btns_download.gif b/src/main/webapp/images/map/download/btns_download.gif new file mode 100644 index 0000000..9e29a7d Binary files /dev/null and b/src/main/webapp/images/map/download/btns_download.gif differ diff --git a/src/main/webapp/images/map/download/btns_metadata.gif b/src/main/webapp/images/map/download/btns_metadata.gif new file mode 100644 index 0000000..b7b371d Binary files /dev/null and b/src/main/webapp/images/map/download/btns_metadata.gif differ diff --git a/src/main/webapp/images/map/download/btns_preview.gif b/src/main/webapp/images/map/download/btns_preview.gif new file mode 100644 index 0000000..9e67b2f Binary files /dev/null and b/src/main/webapp/images/map/download/btns_preview.gif differ diff --git a/src/main/webapp/images/map/download/head.gif b/src/main/webapp/images/map/download/head.gif new file mode 100644 index 0000000..dbdd2ac Binary files /dev/null and b/src/main/webapp/images/map/download/head.gif differ diff --git a/src/main/webapp/images/map/excel.png b/src/main/webapp/images/map/excel.png new file mode 100644 index 0000000..f0b5047 Binary files /dev/null and b/src/main/webapp/images/map/excel.png differ diff --git a/src/main/webapp/images/map/head.gif b/src/main/webapp/images/map/head.gif new file mode 100644 index 0000000..dbdd2ac Binary files /dev/null and b/src/main/webapp/images/map/head.gif differ diff --git a/src/main/webapp/images/map/icn_left.gif b/src/main/webapp/images/map/icn_left.gif new file mode 100644 index 0000000..048a19b Binary files /dev/null and b/src/main/webapp/images/map/icn_left.gif differ diff --git a/src/main/webapp/images/map/jusang.gif b/src/main/webapp/images/map/jusang.gif new file mode 100644 index 0000000..6ba341c Binary files /dev/null and b/src/main/webapp/images/map/jusang.gif differ diff --git a/src/main/webapp/images/map/l_m02.gif b/src/main/webapp/images/map/l_m02.gif new file mode 100644 index 0000000..f1fdddf Binary files /dev/null and b/src/main/webapp/images/map/l_m02.gif differ diff --git a/src/main/webapp/images/map/l_m02_bg.gif b/src/main/webapp/images/map/l_m02_bg.gif new file mode 100644 index 0000000..e1aaf0b Binary files /dev/null and b/src/main/webapp/images/map/l_m02_bg.gif differ diff --git a/src/main/webapp/images/map/l_m02_btm.gif b/src/main/webapp/images/map/l_m02_btm.gif new file mode 100644 index 0000000..95f0e3b Binary files /dev/null and b/src/main/webapp/images/map/l_m02_btm.gif differ diff --git a/src/main/webapp/images/map/l_m03.gif b/src/main/webapp/images/map/l_m03.gif new file mode 100644 index 0000000..b7010af Binary files /dev/null and b/src/main/webapp/images/map/l_m03.gif differ diff --git a/src/main/webapp/images/map/master.png b/src/main/webapp/images/map/master.png new file mode 100644 index 0000000..73b1372 Binary files /dev/null and b/src/main/webapp/images/map/master.png differ diff --git a/src/main/webapp/images/map/no_image.png b/src/main/webapp/images/map/no_image.png new file mode 100644 index 0000000..4fd3854 Binary files /dev/null and b/src/main/webapp/images/map/no_image.png differ diff --git a/src/main/webapp/images/map/physical.png b/src/main/webapp/images/map/physical.png new file mode 100644 index 0000000..325c815 Binary files /dev/null and b/src/main/webapp/images/map/physical.png differ diff --git a/src/main/webapp/images/map/r01m01.gif b/src/main/webapp/images/map/r01m01.gif new file mode 100644 index 0000000..bfe5738 Binary files /dev/null and b/src/main/webapp/images/map/r01m01.gif differ diff --git a/src/main/webapp/images/map/r01m01_on.gif b/src/main/webapp/images/map/r01m01_on.gif new file mode 100644 index 0000000..e7e4c33 Binary files /dev/null and b/src/main/webapp/images/map/r01m01_on.gif differ diff --git a/src/main/webapp/images/map/r01m01_out.gif b/src/main/webapp/images/map/r01m01_out.gif new file mode 100644 index 0000000..bfe5738 Binary files /dev/null and b/src/main/webapp/images/map/r01m01_out.gif differ diff --git a/src/main/webapp/images/map/r01m02.gif b/src/main/webapp/images/map/r01m02.gif new file mode 100644 index 0000000..82051d7 Binary files /dev/null and b/src/main/webapp/images/map/r01m02.gif differ diff --git a/src/main/webapp/images/map/r01m02_on.gif b/src/main/webapp/images/map/r01m02_on.gif new file mode 100644 index 0000000..e6e12a5 Binary files /dev/null and b/src/main/webapp/images/map/r01m02_on.gif differ diff --git a/src/main/webapp/images/map/r01m02_out.gif b/src/main/webapp/images/map/r01m02_out.gif new file mode 100644 index 0000000..82051d7 Binary files /dev/null and b/src/main/webapp/images/map/r01m02_out.gif differ diff --git a/src/main/webapp/images/map/r01m03.gif b/src/main/webapp/images/map/r01m03.gif new file mode 100644 index 0000000..f0c0300 Binary files /dev/null and b/src/main/webapp/images/map/r01m03.gif differ diff --git a/src/main/webapp/images/map/r01m03_on.gif b/src/main/webapp/images/map/r01m03_on.gif new file mode 100644 index 0000000..ffe69f3 Binary files /dev/null and b/src/main/webapp/images/map/r01m03_on.gif differ diff --git a/src/main/webapp/images/map/r01m03_out.gif b/src/main/webapp/images/map/r01m03_out.gif new file mode 100644 index 0000000..f0c0300 Binary files /dev/null and b/src/main/webapp/images/map/r01m03_out.gif differ diff --git a/src/main/webapp/images/map/r01m04.gif b/src/main/webapp/images/map/r01m04.gif new file mode 100644 index 0000000..d45c522 Binary files /dev/null and b/src/main/webapp/images/map/r01m04.gif differ diff --git a/src/main/webapp/images/map/r01m04_on.gif b/src/main/webapp/images/map/r01m04_on.gif new file mode 100644 index 0000000..a86e463 Binary files /dev/null and b/src/main/webapp/images/map/r01m04_on.gif differ diff --git a/src/main/webapp/images/map/r01m05_on.gif b/src/main/webapp/images/map/r01m05_on.gif new file mode 100644 index 0000000..0cd8be0 Binary files /dev/null and b/src/main/webapp/images/map/r01m05_on.gif differ diff --git a/src/main/webapp/images/map/r01m05_out.gif b/src/main/webapp/images/map/r01m05_out.gif new file mode 100644 index 0000000..5ab872a Binary files /dev/null and b/src/main/webapp/images/map/r01m05_out.gif differ diff --git a/src/main/webapp/images/map/r02m01.gif b/src/main/webapp/images/map/r02m01.gif new file mode 100644 index 0000000..38f8fb9 Binary files /dev/null and b/src/main/webapp/images/map/r02m01.gif differ diff --git a/src/main/webapp/images/map/r02m01_on.gif b/src/main/webapp/images/map/r02m01_on.gif new file mode 100644 index 0000000..da9e0f9 Binary files /dev/null and b/src/main/webapp/images/map/r02m01_on.gif differ diff --git a/src/main/webapp/images/map/r02m01_out.gif b/src/main/webapp/images/map/r02m01_out.gif new file mode 100644 index 0000000..7a1397d Binary files /dev/null and b/src/main/webapp/images/map/r02m01_out.gif differ diff --git a/src/main/webapp/images/map/r02m02.gif b/src/main/webapp/images/map/r02m02.gif new file mode 100644 index 0000000..84aef9a Binary files /dev/null and b/src/main/webapp/images/map/r02m02.gif differ diff --git a/src/main/webapp/images/map/r02m02_on.gif b/src/main/webapp/images/map/r02m02_on.gif new file mode 100644 index 0000000..c4d33f1 Binary files /dev/null and b/src/main/webapp/images/map/r02m02_on.gif differ diff --git a/src/main/webapp/images/map/r02m02_out.gif b/src/main/webapp/images/map/r02m02_out.gif new file mode 100644 index 0000000..596e9ad Binary files /dev/null and b/src/main/webapp/images/map/r02m02_out.gif differ diff --git a/src/main/webapp/images/map/r02m03.gif b/src/main/webapp/images/map/r02m03.gif new file mode 100644 index 0000000..3d0778b Binary files /dev/null and b/src/main/webapp/images/map/r02m03.gif differ diff --git a/src/main/webapp/images/map/r02m03_on.gif b/src/main/webapp/images/map/r02m03_on.gif new file mode 100644 index 0000000..6e15538 Binary files /dev/null and b/src/main/webapp/images/map/r02m03_on.gif differ diff --git a/src/main/webapp/images/map/r02m03_out.gif b/src/main/webapp/images/map/r02m03_out.gif new file mode 100644 index 0000000..1300c6d Binary files /dev/null and b/src/main/webapp/images/map/r02m03_out.gif differ diff --git a/src/main/webapp/images/map/r02m04.gif b/src/main/webapp/images/map/r02m04.gif new file mode 100644 index 0000000..34f14fe Binary files /dev/null and b/src/main/webapp/images/map/r02m04.gif differ diff --git a/src/main/webapp/images/map/r02m04_on.gif b/src/main/webapp/images/map/r02m04_on.gif new file mode 100644 index 0000000..82ea91e Binary files /dev/null and b/src/main/webapp/images/map/r02m04_on.gif differ diff --git a/src/main/webapp/images/map/r02m04_out.gif b/src/main/webapp/images/map/r02m04_out.gif new file mode 100644 index 0000000..6148f39 Binary files /dev/null and b/src/main/webapp/images/map/r02m04_out.gif differ diff --git a/src/main/webapp/images/map/r02m05.gif b/src/main/webapp/images/map/r02m05.gif new file mode 100644 index 0000000..a51585c Binary files /dev/null and b/src/main/webapp/images/map/r02m05.gif differ diff --git a/src/main/webapp/images/map/r02m05_on.gif b/src/main/webapp/images/map/r02m05_on.gif new file mode 100644 index 0000000..c7e0b7a Binary files /dev/null and b/src/main/webapp/images/map/r02m05_on.gif differ diff --git a/src/main/webapp/images/map/r02m05_out.gif b/src/main/webapp/images/map/r02m05_out.gif new file mode 100644 index 0000000..58f09e3 Binary files /dev/null and b/src/main/webapp/images/map/r02m05_out.gif differ diff --git a/src/main/webapp/images/map/r02m06.gif b/src/main/webapp/images/map/r02m06.gif new file mode 100644 index 0000000..bdfcadd Binary files /dev/null and b/src/main/webapp/images/map/r02m06.gif differ diff --git a/src/main/webapp/images/map/r02m06_on.gif b/src/main/webapp/images/map/r02m06_on.gif new file mode 100644 index 0000000..bfcecda Binary files /dev/null and b/src/main/webapp/images/map/r02m06_on.gif differ diff --git a/src/main/webapp/images/map/r02m07.gif b/src/main/webapp/images/map/r02m07.gif new file mode 100644 index 0000000..8ae1874 Binary files /dev/null and b/src/main/webapp/images/map/r02m07.gif differ diff --git a/src/main/webapp/images/map/r02m07_on.gif b/src/main/webapp/images/map/r02m07_on.gif new file mode 100644 index 0000000..c5dce2a Binary files /dev/null and b/src/main/webapp/images/map/r02m07_on.gif differ diff --git a/src/main/webapp/images/map/r02m07_out.gif b/src/main/webapp/images/map/r02m07_out.gif new file mode 100644 index 0000000..8d8e9ff Binary files /dev/null and b/src/main/webapp/images/map/r02m07_out.gif differ diff --git a/src/main/webapp/images/map/r02m08.gif b/src/main/webapp/images/map/r02m08.gif new file mode 100644 index 0000000..1875bdc Binary files /dev/null and b/src/main/webapp/images/map/r02m08.gif differ diff --git a/src/main/webapp/images/map/r02m08_20131125.gif b/src/main/webapp/images/map/r02m08_20131125.gif new file mode 100644 index 0000000..747178a Binary files /dev/null and b/src/main/webapp/images/map/r02m08_20131125.gif differ diff --git a/src/main/webapp/images/map/r02m08_on.gif b/src/main/webapp/images/map/r02m08_on.gif new file mode 100644 index 0000000..ddc8252 Binary files /dev/null and b/src/main/webapp/images/map/r02m08_on.gif differ diff --git a/src/main/webapp/images/map/r02m08_on_20131125.gif b/src/main/webapp/images/map/r02m08_on_20131125.gif new file mode 100644 index 0000000..aa250fb Binary files /dev/null and b/src/main/webapp/images/map/r02m08_on_20131125.gif differ diff --git a/src/main/webapp/images/map/r02m08_out.gif b/src/main/webapp/images/map/r02m08_out.gif new file mode 100644 index 0000000..8738e83 Binary files /dev/null and b/src/main/webapp/images/map/r02m08_out.gif differ diff --git a/src/main/webapp/images/map/r02m08_out_20131125.gif b/src/main/webapp/images/map/r02m08_out_20131125.gif new file mode 100644 index 0000000..18ef873 Binary files /dev/null and b/src/main/webapp/images/map/r02m08_out_20131125.gif differ diff --git a/src/main/webapp/images/map/r02m09.gif b/src/main/webapp/images/map/r02m09.gif new file mode 100644 index 0000000..9edfe4e Binary files /dev/null and b/src/main/webapp/images/map/r02m09.gif differ diff --git a/src/main/webapp/images/map/r02m09_on.gif b/src/main/webapp/images/map/r02m09_on.gif new file mode 100644 index 0000000..966d082 Binary files /dev/null and b/src/main/webapp/images/map/r02m09_on.gif differ diff --git a/src/main/webapp/images/map/r02m09_out.gif b/src/main/webapp/images/map/r02m09_out.gif new file mode 100644 index 0000000..9917489 Binary files /dev/null and b/src/main/webapp/images/map/r02m09_out.gif differ diff --git a/src/main/webapp/images/map/r02m10.gif b/src/main/webapp/images/map/r02m10.gif new file mode 100644 index 0000000..51b4457 Binary files /dev/null and b/src/main/webapp/images/map/r02m10.gif differ diff --git a/src/main/webapp/images/map/r02m10_on.gif b/src/main/webapp/images/map/r02m10_on.gif new file mode 100644 index 0000000..8665c3d Binary files /dev/null and b/src/main/webapp/images/map/r02m10_on.gif differ diff --git a/src/main/webapp/images/map/r02m10_out.gif b/src/main/webapp/images/map/r02m10_out.gif new file mode 100644 index 0000000..f9abdf4 Binary files /dev/null and b/src/main/webapp/images/map/r02m10_out.gif differ diff --git a/src/main/webapp/images/map/r02m11.gif b/src/main/webapp/images/map/r02m11.gif new file mode 100644 index 0000000..51e457d Binary files /dev/null and b/src/main/webapp/images/map/r02m11.gif differ diff --git a/src/main/webapp/images/map/r02m11_on.gif b/src/main/webapp/images/map/r02m11_on.gif new file mode 100644 index 0000000..2b83560 Binary files /dev/null and b/src/main/webapp/images/map/r02m11_on.gif differ diff --git a/src/main/webapp/images/map/r02m11_out.gif b/src/main/webapp/images/map/r02m11_out.gif new file mode 100644 index 0000000..4587e51 Binary files /dev/null and b/src/main/webapp/images/map/r02m11_out.gif differ diff --git a/src/main/webapp/images/map/r02m12.gif b/src/main/webapp/images/map/r02m12.gif new file mode 100644 index 0000000..dd98a43 Binary files /dev/null and b/src/main/webapp/images/map/r02m12.gif differ diff --git a/src/main/webapp/images/map/r02m12_on.gif b/src/main/webapp/images/map/r02m12_on.gif new file mode 100644 index 0000000..a76c6e8 Binary files /dev/null and b/src/main/webapp/images/map/r02m12_on.gif differ diff --git a/src/main/webapp/images/map/r02m12_out.gif b/src/main/webapp/images/map/r02m12_out.gif new file mode 100644 index 0000000..87388ea Binary files /dev/null and b/src/main/webapp/images/map/r02m12_out.gif differ diff --git a/src/main/webapp/images/map/r03m01.gif b/src/main/webapp/images/map/r03m01.gif new file mode 100644 index 0000000..81ec3ea Binary files /dev/null and b/src/main/webapp/images/map/r03m01.gif differ diff --git a/src/main/webapp/images/map/r03m01.png b/src/main/webapp/images/map/r03m01.png new file mode 100644 index 0000000..a39cc3e Binary files /dev/null and b/src/main/webapp/images/map/r03m01.png differ diff --git a/src/main/webapp/images/map/r03m01_on.gif b/src/main/webapp/images/map/r03m01_on.gif new file mode 100644 index 0000000..829a1a7 Binary files /dev/null and b/src/main/webapp/images/map/r03m01_on.gif differ diff --git a/src/main/webapp/images/map/r03m01_on.png b/src/main/webapp/images/map/r03m01_on.png new file mode 100644 index 0000000..2e024ef Binary files /dev/null and b/src/main/webapp/images/map/r03m01_on.png differ diff --git a/src/main/webapp/images/map/r03m01_out.gif b/src/main/webapp/images/map/r03m01_out.gif new file mode 100644 index 0000000..6e26146 Binary files /dev/null and b/src/main/webapp/images/map/r03m01_out.gif differ diff --git a/src/main/webapp/images/map/r03m02.gif b/src/main/webapp/images/map/r03m02.gif new file mode 100644 index 0000000..33d6451 Binary files /dev/null and b/src/main/webapp/images/map/r03m02.gif differ diff --git a/src/main/webapp/images/map/r03m02.png b/src/main/webapp/images/map/r03m02.png new file mode 100644 index 0000000..6dd1e6c Binary files /dev/null and b/src/main/webapp/images/map/r03m02.png differ diff --git a/src/main/webapp/images/map/r03m02_on.gif b/src/main/webapp/images/map/r03m02_on.gif new file mode 100644 index 0000000..b996a33 Binary files /dev/null and b/src/main/webapp/images/map/r03m02_on.gif differ diff --git a/src/main/webapp/images/map/r03m02_on.png b/src/main/webapp/images/map/r03m02_on.png new file mode 100644 index 0000000..5b25ec0 Binary files /dev/null and b/src/main/webapp/images/map/r03m02_on.png differ diff --git a/src/main/webapp/images/map/r03m02_out.gif b/src/main/webapp/images/map/r03m02_out.gif new file mode 100644 index 0000000..05bbac4 Binary files /dev/null and b/src/main/webapp/images/map/r03m02_out.gif differ diff --git a/src/main/webapp/images/map/r03m03.gif b/src/main/webapp/images/map/r03m03.gif new file mode 100644 index 0000000..abe0a7f Binary files /dev/null and b/src/main/webapp/images/map/r03m03.gif differ diff --git a/src/main/webapp/images/map/r03m03.png b/src/main/webapp/images/map/r03m03.png new file mode 100644 index 0000000..17376ed Binary files /dev/null and b/src/main/webapp/images/map/r03m03.png differ diff --git a/src/main/webapp/images/map/r03m03_on.gif b/src/main/webapp/images/map/r03m03_on.gif new file mode 100644 index 0000000..0b975a6 Binary files /dev/null and b/src/main/webapp/images/map/r03m03_on.gif differ diff --git a/src/main/webapp/images/map/r03m03_on.png b/src/main/webapp/images/map/r03m03_on.png new file mode 100644 index 0000000..a7d23c4 Binary files /dev/null and b/src/main/webapp/images/map/r03m03_on.png differ diff --git a/src/main/webapp/images/map/r03m03_out.gif b/src/main/webapp/images/map/r03m03_out.gif new file mode 100644 index 0000000..a4be1a4 Binary files /dev/null and b/src/main/webapp/images/map/r03m03_out.gif differ diff --git a/src/main/webapp/images/map/r03m04.gif b/src/main/webapp/images/map/r03m04.gif new file mode 100644 index 0000000..a70824c Binary files /dev/null and b/src/main/webapp/images/map/r03m04.gif differ diff --git a/src/main/webapp/images/map/r03m04.png b/src/main/webapp/images/map/r03m04.png new file mode 100644 index 0000000..de325b7 Binary files /dev/null and b/src/main/webapp/images/map/r03m04.png differ diff --git a/src/main/webapp/images/map/r03m04_on.gif b/src/main/webapp/images/map/r03m04_on.gif new file mode 100644 index 0000000..d138551 Binary files /dev/null and b/src/main/webapp/images/map/r03m04_on.gif differ diff --git a/src/main/webapp/images/map/r03m04_on.png b/src/main/webapp/images/map/r03m04_on.png new file mode 100644 index 0000000..9cc572b Binary files /dev/null and b/src/main/webapp/images/map/r03m04_on.png differ diff --git a/src/main/webapp/images/map/r03m04_out.gif b/src/main/webapp/images/map/r03m04_out.gif new file mode 100644 index 0000000..aafb7c2 Binary files /dev/null and b/src/main/webapp/images/map/r03m04_out.gif differ diff --git a/src/main/webapp/images/map/r03m05.gif b/src/main/webapp/images/map/r03m05.gif new file mode 100644 index 0000000..6243f62 Binary files /dev/null and b/src/main/webapp/images/map/r03m05.gif differ diff --git a/src/main/webapp/images/map/r03m05_on.gif b/src/main/webapp/images/map/r03m05_on.gif new file mode 100644 index 0000000..d610581 Binary files /dev/null and b/src/main/webapp/images/map/r03m05_on.gif differ diff --git a/src/main/webapp/images/map/r03m05_out.gif b/src/main/webapp/images/map/r03m05_out.gif new file mode 100644 index 0000000..47b51ef Binary files /dev/null and b/src/main/webapp/images/map/r03m05_out.gif differ diff --git a/src/main/webapp/images/map/r03m06.gif b/src/main/webapp/images/map/r03m06.gif new file mode 100644 index 0000000..8afaa38 Binary files /dev/null and b/src/main/webapp/images/map/r03m06.gif differ diff --git a/src/main/webapp/images/map/r03m06_on.gif b/src/main/webapp/images/map/r03m06_on.gif new file mode 100644 index 0000000..294930b Binary files /dev/null and b/src/main/webapp/images/map/r03m06_on.gif differ diff --git a/src/main/webapp/images/map/r03m06_out.gif b/src/main/webapp/images/map/r03m06_out.gif new file mode 100644 index 0000000..01cd362 Binary files /dev/null and b/src/main/webapp/images/map/r03m06_out.gif differ diff --git a/src/main/webapp/images/map/r03m071.gif b/src/main/webapp/images/map/r03m071.gif new file mode 100644 index 0000000..d0a9305 Binary files /dev/null and b/src/main/webapp/images/map/r03m071.gif differ diff --git a/src/main/webapp/images/map/r03m071_on.gif b/src/main/webapp/images/map/r03m071_on.gif new file mode 100644 index 0000000..d6f6906 Binary files /dev/null and b/src/main/webapp/images/map/r03m071_on.gif differ diff --git a/src/main/webapp/images/map/r03m081.gif b/src/main/webapp/images/map/r03m081.gif new file mode 100644 index 0000000..c479d29 Binary files /dev/null and b/src/main/webapp/images/map/r03m081.gif differ diff --git a/src/main/webapp/images/map/r03m081_on.gif b/src/main/webapp/images/map/r03m081_on.gif new file mode 100644 index 0000000..118e0fd Binary files /dev/null and b/src/main/webapp/images/map/r03m081_on.gif differ diff --git a/src/main/webapp/images/map/r_top01.gif b/src/main/webapp/images/map/r_top01.gif new file mode 100644 index 0000000..ada0f92 Binary files /dev/null and b/src/main/webapp/images/map/r_top01.gif differ diff --git a/src/main/webapp/images/map/r_top02.gif b/src/main/webapp/images/map/r_top02.gif new file mode 100644 index 0000000..b20cf10 Binary files /dev/null and b/src/main/webapp/images/map/r_top02.gif differ diff --git a/src/main/webapp/images/map/r_top03.gif b/src/main/webapp/images/map/r_top03.gif new file mode 100644 index 0000000..03f8baa Binary files /dev/null and b/src/main/webapp/images/map/r_top03.gif differ diff --git a/src/main/webapp/images/map/tab01.gif b/src/main/webapp/images/map/tab01.gif new file mode 100644 index 0000000..e05441b Binary files /dev/null and b/src/main/webapp/images/map/tab01.gif differ diff --git a/src/main/webapp/images/map/tab01_on.gif b/src/main/webapp/images/map/tab01_on.gif new file mode 100644 index 0000000..8a4a6ec Binary files /dev/null and b/src/main/webapp/images/map/tab01_on.gif differ diff --git a/src/main/webapp/images/map/tab02.gif b/src/main/webapp/images/map/tab02.gif new file mode 100644 index 0000000..1f7ba80 Binary files /dev/null and b/src/main/webapp/images/map/tab02.gif differ diff --git a/src/main/webapp/images/map/tab02_on.gif b/src/main/webapp/images/map/tab02_on.gif new file mode 100644 index 0000000..1f783b7 Binary files /dev/null and b/src/main/webapp/images/map/tab02_on.gif differ diff --git a/src/main/webapp/images/map/tab03.gif b/src/main/webapp/images/map/tab03.gif new file mode 100644 index 0000000..3f48af2 Binary files /dev/null and b/src/main/webapp/images/map/tab03.gif differ diff --git a/src/main/webapp/images/map/tab03_on.gif b/src/main/webapp/images/map/tab03_on.gif new file mode 100644 index 0000000..d0c1d1c Binary files /dev/null and b/src/main/webapp/images/map/tab03_on.gif differ diff --git a/src/main/webapp/images/map/tab03_out.gif b/src/main/webapp/images/map/tab03_out.gif new file mode 100644 index 0000000..c4d7c19 Binary files /dev/null and b/src/main/webapp/images/map/tab03_out.gif differ diff --git a/src/main/webapp/images/map/title_detail.gif b/src/main/webapp/images/map/title_detail.gif new file mode 100644 index 0000000..b8dd774 Binary files /dev/null and b/src/main/webapp/images/map/title_detail.gif differ diff --git a/src/main/webapp/images/map/title_detailSichu.gif b/src/main/webapp/images/map/title_detailSichu.gif new file mode 100644 index 0000000..5dec059 Binary files /dev/null and b/src/main/webapp/images/map/title_detailSichu.gif differ diff --git a/src/main/webapp/images/map/title_sampleInfo.gif b/src/main/webapp/images/map/title_sampleInfo.gif new file mode 100644 index 0000000..08456f3 Binary files /dev/null and b/src/main/webapp/images/map/title_sampleInfo.gif differ diff --git a/src/main/webapp/images/map/tree-branch.gif b/src/main/webapp/images/map/tree-branch.gif new file mode 100644 index 0000000..1a259ee Binary files /dev/null and b/src/main/webapp/images/map/tree-branch.gif differ diff --git a/src/main/webapp/images/map/tree-doc.gif b/src/main/webapp/images/map/tree-doc.gif new file mode 100644 index 0000000..42d7318 Binary files /dev/null and b/src/main/webapp/images/map/tree-doc.gif differ diff --git a/src/main/webapp/images/map/tree-folder-open.gif b/src/main/webapp/images/map/tree-folder-open.gif new file mode 100644 index 0000000..c5c3110 Binary files /dev/null and b/src/main/webapp/images/map/tree-folder-open.gif differ diff --git a/src/main/webapp/images/map/tree-folder.gif b/src/main/webapp/images/map/tree-folder.gif new file mode 100644 index 0000000..2504ee3 Binary files /dev/null and b/src/main/webapp/images/map/tree-folder.gif differ diff --git a/src/main/webapp/images/map/tree-leaf-end.gif b/src/main/webapp/images/map/tree-leaf-end.gif new file mode 100644 index 0000000..48b81c8 Binary files /dev/null and b/src/main/webapp/images/map/tree-leaf-end.gif differ diff --git a/src/main/webapp/images/map/tree-leaf.gif b/src/main/webapp/images/map/tree-leaf.gif new file mode 100644 index 0000000..34dd476 Binary files /dev/null and b/src/main/webapp/images/map/tree-leaf.gif differ diff --git a/src/main/webapp/images/map/tree-node-end.gif b/src/main/webapp/images/map/tree-node-end.gif new file mode 100644 index 0000000..b5671d8 Binary files /dev/null and b/src/main/webapp/images/map/tree-node-end.gif differ diff --git a/src/main/webapp/images/map/tree-node-open-end.gif b/src/main/webapp/images/map/tree-node-open-end.gif new file mode 100644 index 0000000..dc3198b Binary files /dev/null and b/src/main/webapp/images/map/tree-node-open-end.gif differ diff --git a/src/main/webapp/images/map/tree-node-open.gif b/src/main/webapp/images/map/tree-node-open.gif new file mode 100644 index 0000000..3d212a9 Binary files /dev/null and b/src/main/webapp/images/map/tree-node-open.gif differ diff --git a/src/main/webapp/images/map/tree-node.gif b/src/main/webapp/images/map/tree-node.gif new file mode 100644 index 0000000..b2c9972 Binary files /dev/null and b/src/main/webapp/images/map/tree-node.gif differ diff --git a/src/main/webapp/images/map/treeview-black-line.gif b/src/main/webapp/images/map/treeview-black-line.gif new file mode 100644 index 0000000..e549687 Binary files /dev/null and b/src/main/webapp/images/map/treeview-black-line.gif differ diff --git a/src/main/webapp/images/map/treeview-black.gif b/src/main/webapp/images/map/treeview-black.gif new file mode 100644 index 0000000..d549b9f Binary files /dev/null and b/src/main/webapp/images/map/treeview-black.gif differ diff --git a/src/main/webapp/images/map/treeview-default-line.gif b/src/main/webapp/images/map/treeview-default-line.gif new file mode 100644 index 0000000..37114d3 Binary files /dev/null and b/src/main/webapp/images/map/treeview-default-line.gif differ diff --git a/src/main/webapp/images/map/treeview-default.gif b/src/main/webapp/images/map/treeview-default.gif new file mode 100644 index 0000000..a12ac52 Binary files /dev/null and b/src/main/webapp/images/map/treeview-default.gif differ diff --git a/src/main/webapp/images/map/treeview-famfamfam-line.gif b/src/main/webapp/images/map/treeview-famfamfam-line.gif new file mode 100644 index 0000000..6e289ce Binary files /dev/null and b/src/main/webapp/images/map/treeview-famfamfam-line.gif differ diff --git a/src/main/webapp/images/map/treeview-famfamfam.gif b/src/main/webapp/images/map/treeview-famfamfam.gif new file mode 100644 index 0000000..0cb178e Binary files /dev/null and b/src/main/webapp/images/map/treeview-famfamfam.gif differ diff --git a/src/main/webapp/images/map/treeview-gray-line.gif b/src/main/webapp/images/map/treeview-gray-line.gif new file mode 100644 index 0000000..3760044 Binary files /dev/null and b/src/main/webapp/images/map/treeview-gray-line.gif differ diff --git a/src/main/webapp/images/map/treeview-gray.gif b/src/main/webapp/images/map/treeview-gray.gif new file mode 100644 index 0000000..cfb8a2f Binary files /dev/null and b/src/main/webapp/images/map/treeview-gray.gif differ diff --git a/src/main/webapp/images/map/treeview-red-line.gif b/src/main/webapp/images/map/treeview-red-line.gif new file mode 100644 index 0000000..df9e749 Binary files /dev/null and b/src/main/webapp/images/map/treeview-red-line.gif differ diff --git a/src/main/webapp/images/map/treeview-red.gif b/src/main/webapp/images/map/treeview-red.gif new file mode 100644 index 0000000..3bbb3a1 Binary files /dev/null and b/src/main/webapp/images/map/treeview-red.gif differ diff --git a/src/main/webapp/images/map/vssver.scc b/src/main/webapp/images/map/vssver.scc new file mode 100644 index 0000000..eb40672 Binary files /dev/null and b/src/main/webapp/images/map/vssver.scc differ diff --git a/src/main/webapp/images/mb_go_main.gif b/src/main/webapp/images/mb_go_main.gif new file mode 100644 index 0000000..375863d Binary files /dev/null and b/src/main/webapp/images/mb_go_main.gif differ diff --git a/src/main/webapp/images/mb_go_sub.gif b/src/main/webapp/images/mb_go_sub.gif new file mode 100644 index 0000000..6cc71e0 Binary files /dev/null and b/src/main/webapp/images/mb_go_sub.gif differ diff --git a/src/main/webapp/images/me_img.gif b/src/main/webapp/images/me_img.gif new file mode 100644 index 0000000..3bded51 Binary files /dev/null and b/src/main/webapp/images/me_img.gif differ diff --git a/src/main/webapp/images/me_img1.gif b/src/main/webapp/images/me_img1.gif new file mode 100644 index 0000000..47bd01d Binary files /dev/null and b/src/main/webapp/images/me_img1.gif differ diff --git a/src/main/webapp/images/mem_modify.gif b/src/main/webapp/images/mem_modify.gif new file mode 100644 index 0000000..f5b54e4 Binary files /dev/null and b/src/main/webapp/images/mem_modify.gif differ diff --git a/src/main/webapp/images/mem_out.gif b/src/main/webapp/images/mem_out.gif new file mode 100644 index 0000000..f17923d Binary files /dev/null and b/src/main/webapp/images/mem_out.gif differ diff --git a/src/main/webapp/images/menu04/04map.gif b/src/main/webapp/images/menu04/04map.gif new file mode 100644 index 0000000..a3185ac Binary files /dev/null and b/src/main/webapp/images/menu04/04map.gif differ diff --git a/src/main/webapp/images/menu04/04menu(1)_01.gif b/src/main/webapp/images/menu04/04menu(1)_01.gif new file mode 100644 index 0000000..e105e57 Binary files /dev/null and b/src/main/webapp/images/menu04/04menu(1)_01.gif differ diff --git a/src/main/webapp/images/menu04/04menu(1)_02.gif b/src/main/webapp/images/menu04/04menu(1)_02.gif new file mode 100644 index 0000000..552154d Binary files /dev/null and b/src/main/webapp/images/menu04/04menu(1)_02.gif differ diff --git a/src/main/webapp/images/menu04/04menu(1)_bg.gif b/src/main/webapp/images/menu04/04menu(1)_bg.gif new file mode 100644 index 0000000..2967d81 Binary files /dev/null and b/src/main/webapp/images/menu04/04menu(1)_bg.gif differ diff --git a/src/main/webapp/images/menu04/04menu(1)_combo.gif b/src/main/webapp/images/menu04/04menu(1)_combo.gif new file mode 100644 index 0000000..2d340aa Binary files /dev/null and b/src/main/webapp/images/menu04/04menu(1)_combo.gif differ diff --git a/src/main/webapp/images/menu04/04menu01_01.gif b/src/main/webapp/images/menu04/04menu01_01.gif new file mode 100644 index 0000000..6f4657a Binary files /dev/null and b/src/main/webapp/images/menu04/04menu01_01.gif differ diff --git a/src/main/webapp/images/menu04/04menu02_01.gif b/src/main/webapp/images/menu04/04menu02_01.gif new file mode 100644 index 0000000..c786250 Binary files /dev/null and b/src/main/webapp/images/menu04/04menu02_01.gif differ diff --git a/src/main/webapp/images/menu04/04menu03_01.gif b/src/main/webapp/images/menu04/04menu03_01.gif new file mode 100644 index 0000000..390c29f Binary files /dev/null and b/src/main/webapp/images/menu04/04menu03_01.gif differ diff --git a/src/main/webapp/images/menu04/04menu04_01.gif b/src/main/webapp/images/menu04/04menu04_01.gif new file mode 100644 index 0000000..3105d7d Binary files /dev/null and b/src/main/webapp/images/menu04/04menu04_01.gif differ diff --git a/src/main/webapp/images/menu04/04menu04_02.gif b/src/main/webapp/images/menu04/04menu04_02.gif new file mode 100644 index 0000000..78636e2 Binary files /dev/null and b/src/main/webapp/images/menu04/04menu04_02.gif differ diff --git a/src/main/webapp/images/menu04/04menu04_03.gif b/src/main/webapp/images/menu04/04menu04_03.gif new file mode 100644 index 0000000..22f58c0 Binary files /dev/null and b/src/main/webapp/images/menu04/04menu04_03.gif differ diff --git a/src/main/webapp/images/menu04/04menu04_bg.gif b/src/main/webapp/images/menu04/04menu04_bg.gif new file mode 100644 index 0000000..ebb49d1 Binary files /dev/null and b/src/main/webapp/images/menu04/04menu04_bg.gif differ diff --git a/src/main/webapp/images/menu04/04menu04_bg1.gif b/src/main/webapp/images/menu04/04menu04_bg1.gif new file mode 100644 index 0000000..5b76d22 Binary files /dev/null and b/src/main/webapp/images/menu04/04menu04_bg1.gif differ diff --git a/src/main/webapp/images/menu04/04menu05_01.gif b/src/main/webapp/images/menu04/04menu05_01.gif new file mode 100644 index 0000000..0f2e5fa Binary files /dev/null and b/src/main/webapp/images/menu04/04menu05_01.gif differ diff --git a/src/main/webapp/images/menu04/04menu06_bg.gif b/src/main/webapp/images/menu04/04menu06_bg.gif new file mode 100644 index 0000000..a9f7b96 Binary files /dev/null and b/src/main/webapp/images/menu04/04menu06_bg.gif differ diff --git a/src/main/webapp/images/menu04/close.gif b/src/main/webapp/images/menu04/close.gif new file mode 100644 index 0000000..1fc28e6 Binary files /dev/null and b/src/main/webapp/images/menu04/close.gif differ diff --git a/src/main/webapp/images/menu04/link_icon01.gif b/src/main/webapp/images/menu04/link_icon01.gif new file mode 100644 index 0000000..2de1d93 Binary files /dev/null and b/src/main/webapp/images/menu04/link_icon01.gif differ diff --git a/src/main/webapp/images/menu04/link_icon02.gif b/src/main/webapp/images/menu04/link_icon02.gif new file mode 100644 index 0000000..9e7d5d1 Binary files /dev/null and b/src/main/webapp/images/menu04/link_icon02.gif differ diff --git a/src/main/webapp/images/menu04/menu_bot_bg.gif b/src/main/webapp/images/menu04/menu_bot_bg.gif new file mode 100644 index 0000000..a9f7b96 Binary files /dev/null and b/src/main/webapp/images/menu04/menu_bot_bg.gif differ diff --git a/src/main/webapp/images/menu04/spacer.gif b/src/main/webapp/images/menu04/spacer.gif new file mode 100644 index 0000000..5bfd67a Binary files /dev/null and b/src/main/webapp/images/menu04/spacer.gif differ diff --git a/src/main/webapp/images/menu04/vssver.scc b/src/main/webapp/images/menu04/vssver.scc new file mode 100644 index 0000000..4b5c075 Binary files /dev/null and b/src/main/webapp/images/menu04/vssver.scc differ diff --git a/src/main/webapp/images/menu_down.png b/src/main/webapp/images/menu_down.png new file mode 100644 index 0000000..1bb1a3d Binary files /dev/null and b/src/main/webapp/images/menu_down.png differ diff --git a/src/main/webapp/images/menu_up.png b/src/main/webapp/images/menu_up.png new file mode 100644 index 0000000..c067dd9 Binary files /dev/null and b/src/main/webapp/images/menu_up.png differ diff --git a/src/main/webapp/images/ms_bnt_bi_01.gif b/src/main/webapp/images/ms_bnt_bi_01.gif new file mode 100644 index 0000000..78834d2 Binary files /dev/null and b/src/main/webapp/images/ms_bnt_bi_01.gif differ diff --git a/src/main/webapp/images/ms_bnt_zo_01.gif b/src/main/webapp/images/ms_bnt_zo_01.gif new file mode 100644 index 0000000..5939087 Binary files /dev/null and b/src/main/webapp/images/ms_bnt_zo_01.gif differ diff --git a/src/main/webapp/images/ms_img_01.gif b/src/main/webapp/images/ms_img_01.gif new file mode 100644 index 0000000..b9d1e8e Binary files /dev/null and b/src/main/webapp/images/ms_img_01.gif differ diff --git a/src/main/webapp/images/ms_img_02.gif b/src/main/webapp/images/ms_img_02.gif new file mode 100644 index 0000000..ed1f80f Binary files /dev/null and b/src/main/webapp/images/ms_img_02.gif differ diff --git a/src/main/webapp/images/ms_img_03.gif b/src/main/webapp/images/ms_img_03.gif new file mode 100644 index 0000000..7e84bc2 Binary files /dev/null and b/src/main/webapp/images/ms_img_03.gif differ diff --git a/src/main/webapp/images/ms_img_04.gif b/src/main/webapp/images/ms_img_04.gif new file mode 100644 index 0000000..dc78ec7 Binary files /dev/null and b/src/main/webapp/images/ms_img_04.gif differ diff --git a/src/main/webapp/images/ms_map.gif b/src/main/webapp/images/ms_map.gif new file mode 100644 index 0000000..ec3d504 Binary files /dev/null and b/src/main/webapp/images/ms_map.gif differ diff --git a/src/main/webapp/images/ms_menu_01_over.gif b/src/main/webapp/images/ms_menu_01_over.gif new file mode 100644 index 0000000..c451436 Binary files /dev/null and b/src/main/webapp/images/ms_menu_01_over.gif differ diff --git a/src/main/webapp/images/ms_tit_01.gif b/src/main/webapp/images/ms_tit_01.gif new file mode 100644 index 0000000..933efd9 Binary files /dev/null and b/src/main/webapp/images/ms_tit_01.gif differ diff --git a/src/main/webapp/images/ms_tit_02.gif b/src/main/webapp/images/ms_tit_02.gif new file mode 100644 index 0000000..0dbb1b4 Binary files /dev/null and b/src/main/webapp/images/ms_tit_02.gif differ diff --git a/src/main/webapp/images/newFla/Banner_1.fla b/src/main/webapp/images/newFla/Banner_1.fla new file mode 100644 index 0000000..13c9cf4 Binary files /dev/null and b/src/main/webapp/images/newFla/Banner_1.fla differ diff --git a/src/main/webapp/images/newFla/Banner_1.swf b/src/main/webapp/images/newFla/Banner_1.swf new file mode 100644 index 0000000..5b4cf79 Binary files /dev/null and b/src/main/webapp/images/newFla/Banner_1.swf differ diff --git a/src/main/webapp/images/newFla/BitmapUrlGet.as b/src/main/webapp/images/newFla/BitmapUrlGet.as new file mode 100644 index 0000000..7fb6d05 --- /dev/null +++ b/src/main/webapp/images/newFla/BitmapUrlGet.as @@ -0,0 +1,55 @@ +package +{ + import flash.display.Bitmap; + import flash.display.Loader; + import flash.display.Sprite; + import flash.events.Event; + import flash.events.IOErrorEvent; + import flash.net.URLRequest; + import flash.system.ApplicationDomain; + import flash.system.LoaderContext; + import flash.system.Security; + + public class BitmapUrlGet extends Sprite + { + /** + * url 에 있는 파일 bitmap으로 불러오기 + * @param url + * call bitmap + */ + static public function configureAssets( url:String, callback:Function ):void { + var loader:Loader = new Loader(); + loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler); + loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); + + var context:LoaderContext = new LoaderContext(); + context.checkPolicyFile = true; + context.applicationDomain = ApplicationDomain.currentDomain; + + + + var request:URLRequest = new URLRequest(url); + loader.load(request, context); + + function completeHandler(event:Event):void { + var loader:Loader = Loader(event.target.loader); + var image:Bitmap = Bitmap(loader.content); + image.smoothing = true; + callback( image ); + } + + function ioErrorHandler(event:IOErrorEvent):void { + trace("Unable to load image: " + url, event.toString()); + } + } + /** + * bitmap 복사하기 + * @param original + * @return + */ + static public function duplicateImage(original:Bitmap):Bitmap { + var image:Bitmap = new Bitmap(original.bitmapData.clone()); + return image; + } + } +} \ No newline at end of file diff --git a/src/main/webapp/images/newFla/Linker.as b/src/main/webapp/images/newFla/Linker.as new file mode 100644 index 0000000..ed5587b --- /dev/null +++ b/src/main/webapp/images/newFla/Linker.as @@ -0,0 +1,26 @@ +package +{ + import flash.display.Sprite; + import flash.events.MouseEvent; + import flash.net.URLRequest; + import flash.net.navigateToURL; + + public class Linker extends Sprite + { + + private var _link:String; + + public function Linker(link:String) + { + super(); + _link = link; + this.buttonMode = true; + addEventListener(MouseEvent.CLICK, onClick); + } + + private function onClick(e:MouseEvent):void + { + navigateToURL(new URLRequest(_link), "_blank"); + } + } +} \ No newline at end of file diff --git a/src/main/webapp/images/newFla/Main.as b/src/main/webapp/images/newFla/Main.as new file mode 100644 index 0000000..53c1ef4 --- /dev/null +++ b/src/main/webapp/images/newFla/Main.as @@ -0,0 +1,142 @@ +package +{ + import flash.display.Bitmap; + import flash.display.MovieClip; + import flash.display.Sprite; + import flash.events.Event; + import flash.events.MouseEvent; + import flash.net.URLLoader; + import flash.net.URLLoaderDataFormat; + import flash.net.URLRequest; + + public class Main extends MovieClip + { + + private var _arr:Array; + private var _file_arr:Array; + private var _sp:Sprite; + private var _num:uint; + private var _speed:int = -1; + private var _direction:int = 1; + private var _directionOld:int = 0; + private var _fileSize=0; + + public function Main() + { + super(); + var urlRequest:URLRequest = new URLRequest("fileInfo.txt"); + var urlLoader:URLLoader = new URLLoader(); + urlLoader.dataFormat = URLLoaderDataFormat.TEXT; + urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete); + urlLoader.load(urlRequest); + } + + + private function urlLoader_complete(e:Event):void + { + _num = 0; + var str:String = (e.target as URLLoader).data; + _arr = str.split("&&"); + _fileSize = _arr.length; + _sp = new Sprite; + contents_mc._mc.addChild(_sp); + load(); + } + + + private function load():void + { + _file_arr = _arr[_num].split("||"); + BitmapUrlGet.configureAssets(_file_arr[0], onEnd); + } + + + private function onEnd(bm:Bitmap):void + { + var linker:Linker = new Linker(_file_arr[1]); + linker.addChild(bm); + linker.x = _sp.width + 10; + _sp.addChild(linker); + + _num++; + if (_num < _arr.length) + load(); + else + start(); + } + + + private function start():void + { + this.addEventListener(Event.ENTER_FRAME, onEnter); + left_btn.addEventListener(MouseEvent.MOUSE_OVER, onLeftOver); + rigth_btn.addEventListener(MouseEvent.MOUSE_OVER, onRigthOver); + left_btn.addEventListener(MouseEvent.MOUSE_OUT, onLeftOut); + rigth_btn.addEventListener(MouseEvent.MOUSE_OUT, onRigthOut); + _sp.addEventListener(MouseEvent.MOUSE_OVER, onCenterOver); + _sp.addEventListener(MouseEvent.MOUSE_OUT, onCenterOut); + } + + + private function onLeftOver(e:MouseEvent):void + { + _directionOld = _direction; + _direction = -1; + _speed = -5*_direction; + + if (_sp.x < -940) { + _sp.x = -940; + } + } + + + private function onLeftOut(e:MouseEvent):void + { + _direction = _directionOld; + _speed = -1; + } + + + private function onRigthOver(e:MouseEvent):void + { + _directionOld = _direction; + _direction = 1; + _speed = 5*_direction; + + if (_sp.x > 45) { + _sp.x = 45; + } + } + + + private function onRigthOut(e:MouseEvent):void + { + _direction = _directionOld; + _speed = 1; + } + + + private function onCenterOver(e:MouseEvent):void + { + _speed = 0; + } + + + private function onCenterOut(e:MouseEvent):void + { + _speed = _speed < 0 ? -1 : 1; + } + + + private function onEnter(e:Event):void + { + _sp.x += (_speed * _direction); + if(_sp.x < -945){ + _direction *= -1; + } + else if (_sp.x > 50) { + _direction *= -1; + } + } + } +} \ No newline at end of file diff --git a/src/main/webapp/images/newFla/benner01.gif b/src/main/webapp/images/newFla/benner01.gif new file mode 100644 index 0000000..4ab4edb Binary files /dev/null and b/src/main/webapp/images/newFla/benner01.gif differ diff --git a/src/main/webapp/images/newFla/benner02.gif b/src/main/webapp/images/newFla/benner02.gif new file mode 100644 index 0000000..370304f Binary files /dev/null and b/src/main/webapp/images/newFla/benner02.gif differ diff --git a/src/main/webapp/images/newFla/benner03.gif b/src/main/webapp/images/newFla/benner03.gif new file mode 100644 index 0000000..d7f328b Binary files /dev/null and b/src/main/webapp/images/newFla/benner03.gif differ diff --git a/src/main/webapp/images/newFla/benner04.gif b/src/main/webapp/images/newFla/benner04.gif new file mode 100644 index 0000000..aa63efe Binary files /dev/null and b/src/main/webapp/images/newFla/benner04.gif differ diff --git a/src/main/webapp/images/newFla/benner05.gif b/src/main/webapp/images/newFla/benner05.gif new file mode 100644 index 0000000..0f37e46 Binary files /dev/null and b/src/main/webapp/images/newFla/benner05.gif differ diff --git a/src/main/webapp/images/newFla/benner06.gif b/src/main/webapp/images/newFla/benner06.gif new file mode 100644 index 0000000..b527044 Binary files /dev/null and b/src/main/webapp/images/newFla/benner06.gif differ diff --git a/src/main/webapp/images/newFla/benner07.gif b/src/main/webapp/images/newFla/benner07.gif new file mode 100644 index 0000000..f3b39e1 Binary files /dev/null and b/src/main/webapp/images/newFla/benner07.gif differ diff --git a/src/main/webapp/images/newFla/benner08.gif b/src/main/webapp/images/newFla/benner08.gif new file mode 100644 index 0000000..b42f070 Binary files /dev/null and b/src/main/webapp/images/newFla/benner08.gif differ diff --git a/src/main/webapp/images/newFla/benner09.gif b/src/main/webapp/images/newFla/benner09.gif new file mode 100644 index 0000000..2e5fd6f Binary files /dev/null and b/src/main/webapp/images/newFla/benner09.gif differ diff --git a/src/main/webapp/images/newFla/benner10.gif b/src/main/webapp/images/newFla/benner10.gif new file mode 100644 index 0000000..8845c95 Binary files /dev/null and b/src/main/webapp/images/newFla/benner10.gif differ diff --git a/src/main/webapp/images/newFla/benner11.jpg b/src/main/webapp/images/newFla/benner11.jpg new file mode 100644 index 0000000..5a92b44 Binary files /dev/null and b/src/main/webapp/images/newFla/benner11.jpg differ diff --git a/src/main/webapp/images/newFla/fileInfo.txt b/src/main/webapp/images/newFla/fileInfo.txt new file mode 100644 index 0000000..bacbedc --- /dev/null +++ b/src/main/webapp/images/newFla/fileInfo.txt @@ -0,0 +1 @@ +benner01.gif||http://www.molit.go.kr/portal.do&&benner02.gif||http://www.www.mpss.go.kr&&benner03.gif||http://www.kict.re.kr&&benner04.gif||http://surveycp.seoul.go.kr:8080/Soil/main.do&&benner05.gif||http://www.geoinfo.kigam.re.kr/&&benner06.gif||http://www.nsic.go.kr/ndsi/main.do&&benner07.gif||http://www.kmrgis.or.kr/&&benner08.gif||http://www.gims.go.kr/&&benner09.gif||http://www.groundwater.or.kr/comm2/newmain.jsp&&benner10.gif||http://www.khoa.go.kr \ No newline at end of file diff --git a/src/main/webapp/images/newFla/left.png b/src/main/webapp/images/newFla/left.png new file mode 100644 index 0000000..6c277f3 Binary files /dev/null and b/src/main/webapp/images/newFla/left.png differ diff --git a/src/main/webapp/images/newFla/right.png b/src/main/webapp/images/newFla/right.png new file mode 100644 index 0000000..ae3d10e Binary files /dev/null and b/src/main/webapp/images/newFla/right.png differ diff --git a/src/main/webapp/images/newFla/test.fla b/src/main/webapp/images/newFla/test.fla new file mode 100644 index 0000000..4513d04 Binary files /dev/null and b/src/main/webapp/images/newFla/test.fla differ diff --git a/src/main/webapp/images/newFla/test.html b/src/main/webapp/images/newFla/test.html new file mode 100644 index 0000000..63a99a0 --- /dev/null +++ b/src/main/webapp/images/newFla/test.html @@ -0,0 +1,50 @@ + + + + test + + + + +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + Get Adobe Flash player + + + + + +
+ + diff --git a/src/main/webapp/images/newFla/test.swf b/src/main/webapp/images/newFla/test.swf new file mode 100644 index 0000000..5b4cf79 Binary files /dev/null and b/src/main/webapp/images/newFla/test.swf differ diff --git a/src/main/webapp/images/notice/2_left_01.gif b/src/main/webapp/images/notice/2_left_01.gif new file mode 100644 index 0000000..3721efe Binary files /dev/null and b/src/main/webapp/images/notice/2_left_01.gif differ diff --git a/src/main/webapp/images/notice/2_left_01_over.gif b/src/main/webapp/images/notice/2_left_01_over.gif new file mode 100644 index 0000000..ceda076 Binary files /dev/null and b/src/main/webapp/images/notice/2_left_01_over.gif differ diff --git a/src/main/webapp/images/notice/4_left_01.gif b/src/main/webapp/images/notice/4_left_01.gif new file mode 100644 index 0000000..cb5df48 Binary files /dev/null and b/src/main/webapp/images/notice/4_left_01.gif differ diff --git a/src/main/webapp/images/notice/4_left_01_over.gif b/src/main/webapp/images/notice/4_left_01_over.gif new file mode 100644 index 0000000..438ac8f Binary files /dev/null and b/src/main/webapp/images/notice/4_left_01_over.gif differ diff --git a/src/main/webapp/images/notice/4_tit_01.gif b/src/main/webapp/images/notice/4_tit_01.gif new file mode 100644 index 0000000..b1a2037 Binary files /dev/null and b/src/main/webapp/images/notice/4_tit_01.gif differ diff --git a/src/main/webapp/images/notice/4_toptit_01.gif b/src/main/webapp/images/notice/4_toptit_01.gif new file mode 100644 index 0000000..52ed798 Binary files /dev/null and b/src/main/webapp/images/notice/4_toptit_01.gif differ diff --git a/src/main/webapp/images/notice/left_menu_01_over.gif b/src/main/webapp/images/notice/left_menu_01_over.gif new file mode 100644 index 0000000..2bcc1d7 Binary files /dev/null and b/src/main/webapp/images/notice/left_menu_01_over.gif differ diff --git a/src/main/webapp/images/notice/left_tit_01.gif b/src/main/webapp/images/notice/left_tit_01.gif new file mode 100644 index 0000000..0c0b74f Binary files /dev/null and b/src/main/webapp/images/notice/left_tit_01.gif differ diff --git a/src/main/webapp/images/notice/notice_top_img_01.jpg b/src/main/webapp/images/notice/notice_top_img_01.jpg new file mode 100644 index 0000000..010cda4 Binary files /dev/null and b/src/main/webapp/images/notice/notice_top_img_01.jpg differ diff --git a/src/main/webapp/images/notice/notice_top_img_011.jpg b/src/main/webapp/images/notice/notice_top_img_011.jpg new file mode 100644 index 0000000..c2245d5 Binary files /dev/null and b/src/main/webapp/images/notice/notice_top_img_011.jpg differ diff --git a/src/main/webapp/images/notice/notice_top_img_02.jpg b/src/main/webapp/images/notice/notice_top_img_02.jpg new file mode 100644 index 0000000..498a877 Binary files /dev/null and b/src/main/webapp/images/notice/notice_top_img_02.jpg differ diff --git a/src/main/webapp/images/notice/notice_top_img_03.jpg b/src/main/webapp/images/notice/notice_top_img_03.jpg new file mode 100644 index 0000000..4bdeb5a Binary files /dev/null and b/src/main/webapp/images/notice/notice_top_img_03.jpg differ diff --git a/src/main/webapp/images/notice/notice_top_img_04.jpg b/src/main/webapp/images/notice/notice_top_img_04.jpg new file mode 100644 index 0000000..5c86329 Binary files /dev/null and b/src/main/webapp/images/notice/notice_top_img_04.jpg differ diff --git a/src/main/webapp/images/notice/notice_top_img_05.jpg b/src/main/webapp/images/notice/notice_top_img_05.jpg new file mode 100644 index 0000000..87a5df5 Binary files /dev/null and b/src/main/webapp/images/notice/notice_top_img_05.jpg differ diff --git a/src/main/webapp/images/notice/top_tit_01.gif b/src/main/webapp/images/notice/top_tit_01.gif new file mode 100644 index 0000000..ffec86d Binary files /dev/null and b/src/main/webapp/images/notice/top_tit_01.gif differ diff --git a/src/main/webapp/images/notice_back_01.gif b/src/main/webapp/images/notice_back_01.gif new file mode 100644 index 0000000..4653380 Binary files /dev/null and b/src/main/webapp/images/notice_back_01.gif differ diff --git a/src/main/webapp/images/notice_back_01.jpg b/src/main/webapp/images/notice_back_01.jpg new file mode 100644 index 0000000..63de974 Binary files /dev/null and b/src/main/webapp/images/notice_back_01.jpg differ diff --git a/src/main/webapp/images/notice_tit_01.gif b/src/main/webapp/images/notice_tit_01.gif new file mode 100644 index 0000000..a0f65e0 Binary files /dev/null and b/src/main/webapp/images/notice_tit_01.gif differ diff --git a/src/main/webapp/images/pay.gif b/src/main/webapp/images/pay.gif new file mode 100644 index 0000000..6f8b8b7 Binary files /dev/null and b/src/main/webapp/images/pay.gif differ diff --git a/src/main/webapp/images/peo_back.gif b/src/main/webapp/images/peo_back.gif new file mode 100644 index 0000000..4b8257a Binary files /dev/null and b/src/main/webapp/images/peo_back.gif differ diff --git a/src/main/webapp/images/peo_back.jpg b/src/main/webapp/images/peo_back.jpg new file mode 100644 index 0000000..47d3ee9 Binary files /dev/null and b/src/main/webapp/images/peo_back.jpg differ diff --git a/src/main/webapp/images/peo_back_01.gif b/src/main/webapp/images/peo_back_01.gif new file mode 100644 index 0000000..32dcc2d Binary files /dev/null and b/src/main/webapp/images/peo_back_01.gif differ diff --git a/src/main/webapp/images/peo_back_02.gif b/src/main/webapp/images/peo_back_02.gif new file mode 100644 index 0000000..9973f63 Binary files /dev/null and b/src/main/webapp/images/peo_back_02.gif differ diff --git a/src/main/webapp/images/peo_back_20131127.gif b/src/main/webapp/images/peo_back_20131127.gif new file mode 100644 index 0000000..679c8bf Binary files /dev/null and b/src/main/webapp/images/peo_back_20131127.gif differ diff --git a/src/main/webapp/images/peo_sub_back.gif b/src/main/webapp/images/peo_sub_back.gif new file mode 100644 index 0000000..cdf5e4d Binary files /dev/null and b/src/main/webapp/images/peo_sub_back.gif differ diff --git a/src/main/webapp/images/pop/1300759783_bullet_white.png b/src/main/webapp/images/pop/1300759783_bullet_white.png new file mode 100644 index 0000000..031f6be Binary files /dev/null and b/src/main/webapp/images/pop/1300759783_bullet_white.png differ diff --git a/src/main/webapp/images/pop/dawnload_btn.gif b/src/main/webapp/images/pop/dawnload_btn.gif new file mode 100644 index 0000000..002cb48 Binary files /dev/null and b/src/main/webapp/images/pop/dawnload_btn.gif differ diff --git a/src/main/webapp/images/pop/download app.png b/src/main/webapp/images/pop/download app.png new file mode 100644 index 0000000..c2a8f4b Binary files /dev/null and b/src/main/webapp/images/pop/download app.png differ diff --git a/src/main/webapp/images/pop/download.gif b/src/main/webapp/images/pop/download.gif new file mode 100644 index 0000000..fd8c12a Binary files /dev/null and b/src/main/webapp/images/pop/download.gif differ diff --git a/src/main/webapp/images/pop/input_popup.png b/src/main/webapp/images/pop/input_popup.png new file mode 100644 index 0000000..6a3d7be Binary files /dev/null and b/src/main/webapp/images/pop/input_popup.png differ diff --git a/src/main/webapp/images/pop/pop2_img_01.gif b/src/main/webapp/images/pop/pop2_img_01.gif new file mode 100644 index 0000000..ab0fdf1 Binary files /dev/null and b/src/main/webapp/images/pop/pop2_img_01.gif differ diff --git a/src/main/webapp/images/pop/pop2_img_02.gif b/src/main/webapp/images/pop/pop2_img_02.gif new file mode 100644 index 0000000..03c2378 Binary files /dev/null and b/src/main/webapp/images/pop/pop2_img_02.gif differ diff --git a/src/main/webapp/images/pop/pop2_img_03.gif b/src/main/webapp/images/pop/pop2_img_03.gif new file mode 100644 index 0000000..aa32106 Binary files /dev/null and b/src/main/webapp/images/pop/pop2_img_03.gif differ diff --git a/src/main/webapp/images/pop/pop2_img_04.gif b/src/main/webapp/images/pop/pop2_img_04.gif new file mode 100644 index 0000000..a48fc58 Binary files /dev/null and b/src/main/webapp/images/pop/pop2_img_04.gif differ diff --git a/src/main/webapp/images/pop/pop2_img_05.gif b/src/main/webapp/images/pop/pop2_img_05.gif new file mode 100644 index 0000000..a365865 Binary files /dev/null and b/src/main/webapp/images/pop/pop2_img_05.gif differ diff --git a/src/main/webapp/images/pop/pop2_img_06.gif b/src/main/webapp/images/pop/pop2_img_06.gif new file mode 100644 index 0000000..c84dad5 Binary files /dev/null and b/src/main/webapp/images/pop/pop2_img_06.gif differ diff --git a/src/main/webapp/images/pop/pop2_img_07.gif b/src/main/webapp/images/pop/pop2_img_07.gif new file mode 100644 index 0000000..77faf15 Binary files /dev/null and b/src/main/webapp/images/pop/pop2_img_07.gif differ diff --git a/src/main/webapp/images/pop/pop2_img_08.gif b/src/main/webapp/images/pop/pop2_img_08.gif new file mode 100644 index 0000000..b42c0f5 Binary files /dev/null and b/src/main/webapp/images/pop/pop2_img_08.gif differ diff --git a/src/main/webapp/images/pop/pop_img_01.gif b/src/main/webapp/images/pop/pop_img_01.gif new file mode 100644 index 0000000..d4a15c8 Binary files /dev/null and b/src/main/webapp/images/pop/pop_img_01.gif differ diff --git a/src/main/webapp/images/pop/pop_img_02.gif b/src/main/webapp/images/pop/pop_img_02.gif new file mode 100644 index 0000000..679bb63 Binary files /dev/null and b/src/main/webapp/images/pop/pop_img_02.gif differ diff --git a/src/main/webapp/images/pop/pop_img_03.gif b/src/main/webapp/images/pop/pop_img_03.gif new file mode 100644 index 0000000..2be2c2a Binary files /dev/null and b/src/main/webapp/images/pop/pop_img_03.gif differ diff --git a/src/main/webapp/images/pop/pop_img_04.gif b/src/main/webapp/images/pop/pop_img_04.gif new file mode 100644 index 0000000..fc84e3d Binary files /dev/null and b/src/main/webapp/images/pop/pop_img_04.gif differ diff --git a/src/main/webapp/images/pop/pop_img_05.gif b/src/main/webapp/images/pop/pop_img_05.gif new file mode 100644 index 0000000..16c5a86 Binary files /dev/null and b/src/main/webapp/images/pop/pop_img_05.gif differ diff --git a/src/main/webapp/images/pop/pop_img_06.gif b/src/main/webapp/images/pop/pop_img_06.gif new file mode 100644 index 0000000..1695b1b Binary files /dev/null and b/src/main/webapp/images/pop/pop_img_06.gif differ diff --git a/src/main/webapp/images/pop/pop_img_07.gif b/src/main/webapp/images/pop/pop_img_07.gif new file mode 100644 index 0000000..4bcdcd3 Binary files /dev/null and b/src/main/webapp/images/pop/pop_img_07.gif differ diff --git a/src/main/webapp/images/pop/pop_img_08.gif b/src/main/webapp/images/pop/pop_img_08.gif new file mode 100644 index 0000000..d3ad64d Binary files /dev/null and b/src/main/webapp/images/pop/pop_img_08.gif differ diff --git a/src/main/webapp/images/pop/pop_view_01.gif b/src/main/webapp/images/pop/pop_view_01.gif new file mode 100644 index 0000000..6f4d365 Binary files /dev/null and b/src/main/webapp/images/pop/pop_view_01.gif differ diff --git a/src/main/webapp/images/pop/pop_view_02.gif b/src/main/webapp/images/pop/pop_view_02.gif new file mode 100644 index 0000000..ccbe711 Binary files /dev/null and b/src/main/webapp/images/pop/pop_view_02.gif differ diff --git a/src/main/webapp/images/pop/pop_view_03.gif b/src/main/webapp/images/pop/pop_view_03.gif new file mode 100644 index 0000000..9339a03 Binary files /dev/null and b/src/main/webapp/images/pop/pop_view_03.gif differ diff --git a/src/main/webapp/images/pop/pop_view_04.gif b/src/main/webapp/images/pop/pop_view_04.gif new file mode 100644 index 0000000..53792a0 Binary files /dev/null and b/src/main/webapp/images/pop/pop_view_04.gif differ diff --git a/src/main/webapp/images/pop/pop_view_05.gif b/src/main/webapp/images/pop/pop_view_05.gif new file mode 100644 index 0000000..4aada35 Binary files /dev/null and b/src/main/webapp/images/pop/pop_view_05.gif differ diff --git a/src/main/webapp/images/pop/pop_view_06.gif b/src/main/webapp/images/pop/pop_view_06.gif new file mode 100644 index 0000000..51b283e Binary files /dev/null and b/src/main/webapp/images/pop/pop_view_06.gif differ diff --git a/src/main/webapp/images/pop/pop_view_07.gif b/src/main/webapp/images/pop/pop_view_07.gif new file mode 100644 index 0000000..ce47db8 Binary files /dev/null and b/src/main/webapp/images/pop/pop_view_07.gif differ diff --git a/src/main/webapp/images/popups/20150506_popup.jpg b/src/main/webapp/images/popups/20150506_popup.jpg new file mode 100644 index 0000000..5917dc7 Binary files /dev/null and b/src/main/webapp/images/popups/20150506_popup.jpg differ diff --git a/src/main/webapp/images/popups/20150803_popup.jpg b/src/main/webapp/images/popups/20150803_popup.jpg new file mode 100644 index 0000000..0c906fd Binary files /dev/null and b/src/main/webapp/images/popups/20150803_popup.jpg differ diff --git a/src/main/webapp/images/popups/20150812_popup.jpg b/src/main/webapp/images/popups/20150812_popup.jpg new file mode 100644 index 0000000..1b82ff2 Binary files /dev/null and b/src/main/webapp/images/popups/20150812_popup.jpg differ diff --git a/src/main/webapp/images/popups/20150819_popup.jpg b/src/main/webapp/images/popups/20150819_popup.jpg new file mode 100644 index 0000000..69702f2 Binary files /dev/null and b/src/main/webapp/images/popups/20150819_popup.jpg differ diff --git a/src/main/webapp/images/popups/20150820_popup.jpg b/src/main/webapp/images/popups/20150820_popup.jpg new file mode 100644 index 0000000..60d4445 Binary files /dev/null and b/src/main/webapp/images/popups/20150820_popup.jpg differ diff --git a/src/main/webapp/images/popups/20150902_popup.jpg b/src/main/webapp/images/popups/20150902_popup.jpg new file mode 100644 index 0000000..f1187e7 Binary files /dev/null and b/src/main/webapp/images/popups/20150902_popup.jpg differ diff --git a/src/main/webapp/images/popups/20150909_1_popup.jpg b/src/main/webapp/images/popups/20150909_1_popup.jpg new file mode 100644 index 0000000..d5a18f0 Binary files /dev/null and b/src/main/webapp/images/popups/20150909_1_popup.jpg differ diff --git a/src/main/webapp/images/popups/20150909_2_popup.jpg b/src/main/webapp/images/popups/20150909_2_popup.jpg new file mode 100644 index 0000000..95386c5 Binary files /dev/null and b/src/main/webapp/images/popups/20150909_2_popup.jpg differ diff --git a/src/main/webapp/images/popups/notice_20130125_01.png b/src/main/webapp/images/popups/notice_20130125_01.png new file mode 100644 index 0000000..61b659a Binary files /dev/null and b/src/main/webapp/images/popups/notice_20130125_01.png differ diff --git a/src/main/webapp/images/popups/notice_20130125_02.png b/src/main/webapp/images/popups/notice_20130125_02.png new file mode 100644 index 0000000..68b4ba1 Binary files /dev/null and b/src/main/webapp/images/popups/notice_20130125_02.png differ diff --git a/src/main/webapp/images/popups/notice_20131118_01.png b/src/main/webapp/images/popups/notice_20131118_01.png new file mode 100644 index 0000000..1b7db31 Binary files /dev/null and b/src/main/webapp/images/popups/notice_20131118_01.png differ diff --git a/src/main/webapp/images/popups/pop_151010.jpg b/src/main/webapp/images/popups/pop_151010.jpg new file mode 100644 index 0000000..952cc8a Binary files /dev/null and b/src/main/webapp/images/popups/pop_151010.jpg differ diff --git a/src/main/webapp/images/popups/pop_151103.jpg b/src/main/webapp/images/popups/pop_151103.jpg new file mode 100644 index 0000000..4687384 Binary files /dev/null and b/src/main/webapp/images/popups/pop_151103.jpg differ diff --git a/src/main/webapp/images/popups/pop_201208_01.png b/src/main/webapp/images/popups/pop_201208_01.png new file mode 100644 index 0000000..a8a2510 Binary files /dev/null and b/src/main/webapp/images/popups/pop_201208_01.png differ diff --git a/src/main/webapp/images/popups/pop_201208_02.png b/src/main/webapp/images/popups/pop_201208_02.png new file mode 100644 index 0000000..271846f Binary files /dev/null and b/src/main/webapp/images/popups/pop_201208_02.png differ diff --git a/src/main/webapp/images/popups/pop_20120907_01.png b/src/main/webapp/images/popups/pop_20120907_01.png new file mode 100644 index 0000000..f314c4b Binary files /dev/null and b/src/main/webapp/images/popups/pop_20120907_01.png differ diff --git a/src/main/webapp/images/popups/pop_201209_01.png b/src/main/webapp/images/popups/pop_201209_01.png new file mode 100644 index 0000000..5196c3b Binary files /dev/null and b/src/main/webapp/images/popups/pop_201209_01.png differ diff --git a/src/main/webapp/images/popups/pop_201209_02.png b/src/main/webapp/images/popups/pop_201209_02.png new file mode 100644 index 0000000..14952a1 Binary files /dev/null and b/src/main/webapp/images/popups/pop_201209_02.png differ diff --git a/src/main/webapp/images/popups/pop_201209_03.png b/src/main/webapp/images/popups/pop_201209_03.png new file mode 100644 index 0000000..09118dd Binary files /dev/null and b/src/main/webapp/images/popups/pop_201209_03.png differ diff --git a/src/main/webapp/images/popups/pop_20121008.png b/src/main/webapp/images/popups/pop_20121008.png new file mode 100644 index 0000000..ee67d3a Binary files /dev/null and b/src/main/webapp/images/popups/pop_20121008.png differ diff --git a/src/main/webapp/images/popups/pop_20121115.png b/src/main/webapp/images/popups/pop_20121115.png new file mode 100644 index 0000000..bc0244f Binary files /dev/null and b/src/main/webapp/images/popups/pop_20121115.png differ diff --git a/src/main/webapp/images/popups/pop_20121116.png b/src/main/webapp/images/popups/pop_20121116.png new file mode 100644 index 0000000..82d9ad3 Binary files /dev/null and b/src/main/webapp/images/popups/pop_20121116.png differ diff --git a/src/main/webapp/images/popups/pop_20130222.png b/src/main/webapp/images/popups/pop_20130222.png new file mode 100644 index 0000000..598048f Binary files /dev/null and b/src/main/webapp/images/popups/pop_20130222.png differ diff --git a/src/main/webapp/images/popups/pop_20130610.png b/src/main/webapp/images/popups/pop_20130610.png new file mode 100644 index 0000000..c476ac7 Binary files /dev/null and b/src/main/webapp/images/popups/pop_20130610.png differ diff --git a/src/main/webapp/images/popups/pop_20130610_01.png b/src/main/webapp/images/popups/pop_20130610_01.png new file mode 100644 index 0000000..4cba2b7 Binary files /dev/null and b/src/main/webapp/images/popups/pop_20130610_01.png differ diff --git a/src/main/webapp/images/popups/pop_20130626.png b/src/main/webapp/images/popups/pop_20130626.png new file mode 100644 index 0000000..5541bac Binary files /dev/null and b/src/main/webapp/images/popups/pop_20130626.png differ diff --git a/src/main/webapp/images/popups/pop_image_back/popup_0723.jpg b/src/main/webapp/images/popups/pop_image_back/popup_0723.jpg new file mode 100644 index 0000000..baa5e70 Binary files /dev/null and b/src/main/webapp/images/popups/pop_image_back/popup_0723.jpg differ diff --git a/src/main/webapp/images/popups/pop_image_back/popup_140709_expo.jpg b/src/main/webapp/images/popups/pop_image_back/popup_140709_expo.jpg new file mode 100644 index 0000000..73a536e Binary files /dev/null and b/src/main/webapp/images/popups/pop_image_back/popup_140709_expo.jpg differ diff --git a/src/main/webapp/images/popups/popup_0723.jpg b/src/main/webapp/images/popups/popup_0723.jpg new file mode 100644 index 0000000..d8b400c Binary files /dev/null and b/src/main/webapp/images/popups/popup_0723.jpg differ diff --git a/src/main/webapp/images/popups/popup_140624.jpg b/src/main/webapp/images/popups/popup_140624.jpg new file mode 100644 index 0000000..00e7c00 Binary files /dev/null and b/src/main/webapp/images/popups/popup_140624.jpg differ diff --git a/src/main/webapp/images/popups/popup_140709_expo.jpg b/src/main/webapp/images/popups/popup_140709_expo.jpg new file mode 100644 index 0000000..28160e8 Binary files /dev/null and b/src/main/webapp/images/popups/popup_140709_expo.jpg differ diff --git a/src/main/webapp/images/popups/popup_140709_stop.jpg b/src/main/webapp/images/popups/popup_140709_stop.jpg new file mode 100644 index 0000000..95139df Binary files /dev/null and b/src/main/webapp/images/popups/popup_140709_stop.jpg differ diff --git a/src/main/webapp/images/popups/popup_141112.jpg b/src/main/webapp/images/popups/popup_141112.jpg new file mode 100644 index 0000000..8fa30e2 Binary files /dev/null and b/src/main/webapp/images/popups/popup_141112.jpg differ diff --git a/src/main/webapp/images/popups/popup_150319.jpg b/src/main/webapp/images/popups/popup_150319.jpg new file mode 100644 index 0000000..94c3b21 Binary files /dev/null and b/src/main/webapp/images/popups/popup_150319.jpg differ diff --git a/src/main/webapp/images/popups/popup_150902.jpg b/src/main/webapp/images/popups/popup_150902.jpg new file mode 100644 index 0000000..f1187e7 Binary files /dev/null and b/src/main/webapp/images/popups/popup_150902.jpg differ diff --git a/src/main/webapp/images/popups/popup_151207.jpg b/src/main/webapp/images/popups/popup_151207.jpg new file mode 100644 index 0000000..689348d Binary files /dev/null and b/src/main/webapp/images/popups/popup_151207.jpg differ diff --git a/src/main/webapp/images/popups/popup_201404_01.gif b/src/main/webapp/images/popups/popup_201404_01.gif new file mode 100644 index 0000000..136b6a4 Binary files /dev/null and b/src/main/webapp/images/popups/popup_201404_01.gif differ diff --git a/src/main/webapp/images/popups/smart_expo_2013.png b/src/main/webapp/images/popups/smart_expo_2013.png new file mode 100644 index 0000000..1875980 Binary files /dev/null and b/src/main/webapp/images/popups/smart_expo_2013.png differ diff --git a/src/main/webapp/images/press/back.gif b/src/main/webapp/images/press/back.gif new file mode 100644 index 0000000..0f3419a Binary files /dev/null and b/src/main/webapp/images/press/back.gif differ diff --git a/src/main/webapp/images/press/bnt_list.gif b/src/main/webapp/images/press/bnt_list.gif new file mode 100644 index 0000000..e5b02ce Binary files /dev/null and b/src/main/webapp/images/press/bnt_list.gif differ diff --git a/src/main/webapp/images/press/bnt_next.gif b/src/main/webapp/images/press/bnt_next.gif new file mode 100644 index 0000000..613ca51 Binary files /dev/null and b/src/main/webapp/images/press/bnt_next.gif differ diff --git a/src/main/webapp/images/press/bnt_prev.gif b/src/main/webapp/images/press/bnt_prev.gif new file mode 100644 index 0000000..07b9d16 Binary files /dev/null and b/src/main/webapp/images/press/bnt_prev.gif differ diff --git a/src/main/webapp/images/press/bnt_search.gif b/src/main/webapp/images/press/bnt_search.gif new file mode 100644 index 0000000..32d25d6 Binary files /dev/null and b/src/main/webapp/images/press/bnt_search.gif differ diff --git a/src/main/webapp/images/press/bntit_search.gif b/src/main/webapp/images/press/bntit_search.gif new file mode 100644 index 0000000..423c37c Binary files /dev/null and b/src/main/webapp/images/press/bntit_search.gif differ diff --git a/src/main/webapp/images/press/bo_tit.gif b/src/main/webapp/images/press/bo_tit.gif new file mode 100644 index 0000000..3837dff Binary files /dev/null and b/src/main/webapp/images/press/bo_tit.gif differ diff --git a/src/main/webapp/images/press/bo_tit_01.gif b/src/main/webapp/images/press/bo_tit_01.gif new file mode 100644 index 0000000..368a55e Binary files /dev/null and b/src/main/webapp/images/press/bo_tit_01.gif differ diff --git a/src/main/webapp/images/press/bo_tit_02.gif b/src/main/webapp/images/press/bo_tit_02.gif new file mode 100644 index 0000000..b247187 Binary files /dev/null and b/src/main/webapp/images/press/bo_tit_02.gif differ diff --git a/src/main/webapp/images/press/bo_tit_03.gif b/src/main/webapp/images/press/bo_tit_03.gif new file mode 100644 index 0000000..c9f7544 Binary files /dev/null and b/src/main/webapp/images/press/bo_tit_03.gif differ diff --git a/src/main/webapp/images/press/bo_tit_04.gif b/src/main/webapp/images/press/bo_tit_04.gif new file mode 100644 index 0000000..6ffeaa1 Binary files /dev/null and b/src/main/webapp/images/press/bo_tit_04.gif differ diff --git a/src/main/webapp/images/press/bo_tit_05.gif b/src/main/webapp/images/press/bo_tit_05.gif new file mode 100644 index 0000000..ddf0288 Binary files /dev/null and b/src/main/webapp/images/press/bo_tit_05.gif differ diff --git a/src/main/webapp/images/press/bo_tit_06.gif b/src/main/webapp/images/press/bo_tit_06.gif new file mode 100644 index 0000000..dca5d1d Binary files /dev/null and b/src/main/webapp/images/press/bo_tit_06.gif differ diff --git a/src/main/webapp/images/press/bullet_go.png b/src/main/webapp/images/press/bullet_go.png new file mode 100644 index 0000000..bc4faa7 Binary files /dev/null and b/src/main/webapp/images/press/bullet_go.png differ diff --git a/src/main/webapp/images/press/join_img_01.gif b/src/main/webapp/images/press/join_img_01.gif new file mode 100644 index 0000000..d4d6474 Binary files /dev/null and b/src/main/webapp/images/press/join_img_01.gif differ diff --git a/src/main/webapp/images/press/join_img_02.gif b/src/main/webapp/images/press/join_img_02.gif new file mode 100644 index 0000000..da160b9 Binary files /dev/null and b/src/main/webapp/images/press/join_img_02.gif differ diff --git a/src/main/webapp/images/press/join_img_03.gif b/src/main/webapp/images/press/join_img_03.gif new file mode 100644 index 0000000..5e1b07c Binary files /dev/null and b/src/main/webapp/images/press/join_img_03.gif differ diff --git a/src/main/webapp/images/press/join_img_04.gif b/src/main/webapp/images/press/join_img_04.gif new file mode 100644 index 0000000..5b36bdc Binary files /dev/null and b/src/main/webapp/images/press/join_img_04.gif differ diff --git a/src/main/webapp/images/press/join_img_05.gif b/src/main/webapp/images/press/join_img_05.gif new file mode 100644 index 0000000..496389c Binary files /dev/null and b/src/main/webapp/images/press/join_img_05.gif differ diff --git a/src/main/webapp/images/press/join_tit_01.gif b/src/main/webapp/images/press/join_tit_01.gif new file mode 100644 index 0000000..ae4e18d Binary files /dev/null and b/src/main/webapp/images/press/join_tit_01.gif differ diff --git a/src/main/webapp/images/press/join_tit_img_01.gif b/src/main/webapp/images/press/join_tit_img_01.gif new file mode 100644 index 0000000..abc6b81 Binary files /dev/null and b/src/main/webapp/images/press/join_tit_img_01.gif differ diff --git a/src/main/webapp/images/press/join_tit_img_02.gif b/src/main/webapp/images/press/join_tit_img_02.gif new file mode 100644 index 0000000..e41d7a0 Binary files /dev/null and b/src/main/webapp/images/press/join_tit_img_02.gif differ diff --git a/src/main/webapp/images/press/join_title_01.gif b/src/main/webapp/images/press/join_title_01.gif new file mode 100644 index 0000000..14794eb Binary files /dev/null and b/src/main/webapp/images/press/join_title_01.gif differ diff --git a/src/main/webapp/images/press/join_title_02.gif b/src/main/webapp/images/press/join_title_02.gif new file mode 100644 index 0000000..2250f3f Binary files /dev/null and b/src/main/webapp/images/press/join_title_02.gif differ diff --git a/src/main/webapp/images/press/join_title_03.gif b/src/main/webapp/images/press/join_title_03.gif new file mode 100644 index 0000000..4b08314 Binary files /dev/null and b/src/main/webapp/images/press/join_title_03.gif differ diff --git a/src/main/webapp/images/press/join_title_04.gif b/src/main/webapp/images/press/join_title_04.gif new file mode 100644 index 0000000..5dab65d Binary files /dev/null and b/src/main/webapp/images/press/join_title_04.gif differ diff --git a/src/main/webapp/images/press/join_title_05.gif b/src/main/webapp/images/press/join_title_05.gif new file mode 100644 index 0000000..3cc43ba Binary files /dev/null and b/src/main/webapp/images/press/join_title_05.gif differ diff --git a/src/main/webapp/images/press/join_title_06.gif b/src/main/webapp/images/press/join_title_06.gif new file mode 100644 index 0000000..fb7ec84 Binary files /dev/null and b/src/main/webapp/images/press/join_title_06.gif differ diff --git a/src/main/webapp/images/press/join_top_title_01.gif b/src/main/webapp/images/press/join_top_title_01.gif new file mode 100644 index 0000000..596c427 Binary files /dev/null and b/src/main/webapp/images/press/join_top_title_01.gif differ diff --git a/src/main/webapp/images/press/join_top_title_02.gif b/src/main/webapp/images/press/join_top_title_02.gif new file mode 100644 index 0000000..b397a16 Binary files /dev/null and b/src/main/webapp/images/press/join_top_title_02.gif differ diff --git a/src/main/webapp/images/press/ok.gif b/src/main/webapp/images/press/ok.gif new file mode 100644 index 0000000..4cfd618 Binary files /dev/null and b/src/main/webapp/images/press/ok.gif differ diff --git a/src/main/webapp/images/press/pr_menu_01_over.gif b/src/main/webapp/images/press/pr_menu_01_over.gif new file mode 100644 index 0000000..c9d6eea Binary files /dev/null and b/src/main/webapp/images/press/pr_menu_01_over.gif differ diff --git a/src/main/webapp/images/press/pr_title_01.gif b/src/main/webapp/images/press/pr_title_01.gif new file mode 100644 index 0000000..c02bca6 Binary files /dev/null and b/src/main/webapp/images/press/pr_title_01.gif differ diff --git a/src/main/webapp/images/press/pr_title_02.gif b/src/main/webapp/images/press/pr_title_02.gif new file mode 100644 index 0000000..65baa2e Binary files /dev/null and b/src/main/webapp/images/press/pr_title_02.gif differ diff --git a/src/main/webapp/images/press/pr_title_03.gif b/src/main/webapp/images/press/pr_title_03.gif new file mode 100644 index 0000000..982baa6 Binary files /dev/null and b/src/main/webapp/images/press/pr_title_03.gif differ diff --git a/src/main/webapp/images/press/pr_title_04.gif b/src/main/webapp/images/press/pr_title_04.gif new file mode 100644 index 0000000..346163c Binary files /dev/null and b/src/main/webapp/images/press/pr_title_04.gif differ diff --git a/src/main/webapp/images/press/pr_title_05.gif b/src/main/webapp/images/press/pr_title_05.gif new file mode 100644 index 0000000..8bb6028 Binary files /dev/null and b/src/main/webapp/images/press/pr_title_05.gif differ diff --git a/src/main/webapp/images/press/pr_top_img.jpg b/src/main/webapp/images/press/pr_top_img.jpg new file mode 100644 index 0000000..ee3bc46 Binary files /dev/null and b/src/main/webapp/images/press/pr_top_img.jpg differ diff --git a/src/main/webapp/images/press/sub_back_pr.gif b/src/main/webapp/images/press/sub_back_pr.gif new file mode 100644 index 0000000..0fefac1 Binary files /dev/null and b/src/main/webapp/images/press/sub_back_pr.gif differ diff --git a/src/main/webapp/images/provision/bnt_db_no.gif b/src/main/webapp/images/provision/bnt_db_no.gif new file mode 100644 index 0000000..a51181d Binary files /dev/null and b/src/main/webapp/images/provision/bnt_db_no.gif differ diff --git a/src/main/webapp/images/provision/bnt_db_ok.gif b/src/main/webapp/images/provision/bnt_db_ok.gif new file mode 100644 index 0000000..e103f46 Binary files /dev/null and b/src/main/webapp/images/provision/bnt_db_ok.gif differ diff --git a/src/main/webapp/images/provision/db_tit.gif b/src/main/webapp/images/provision/db_tit.gif new file mode 100644 index 0000000..4580861 Binary files /dev/null and b/src/main/webapp/images/provision/db_tit.gif differ diff --git a/src/main/webapp/images/pw_img.gif b/src/main/webapp/images/pw_img.gif new file mode 100644 index 0000000..e720435 Binary files /dev/null and b/src/main/webapp/images/pw_img.gif differ diff --git a/src/main/webapp/images/re_img_01.gif b/src/main/webapp/images/re_img_01.gif new file mode 100644 index 0000000..37c97a7 Binary files /dev/null and b/src/main/webapp/images/re_img_01.gif differ diff --git a/src/main/webapp/images/re_img_02.gif b/src/main/webapp/images/re_img_02.gif new file mode 100644 index 0000000..064eb6a Binary files /dev/null and b/src/main/webapp/images/re_img_02.gif differ diff --git a/src/main/webapp/images/re_img_03.gif b/src/main/webapp/images/re_img_03.gif new file mode 100644 index 0000000..f56b829 Binary files /dev/null and b/src/main/webapp/images/re_img_03.gif differ diff --git a/src/main/webapp/images/re_menu_01.gif b/src/main/webapp/images/re_menu_01.gif new file mode 100644 index 0000000..95288ff Binary files /dev/null and b/src/main/webapp/images/re_menu_01.gif differ diff --git a/src/main/webapp/images/re_menu_01_over.gif b/src/main/webapp/images/re_menu_01_over.gif new file mode 100644 index 0000000..49d4e7f Binary files /dev/null and b/src/main/webapp/images/re_menu_01_over.gif differ diff --git a/src/main/webapp/images/re_menu_02.gif b/src/main/webapp/images/re_menu_02.gif new file mode 100644 index 0000000..0cb416d Binary files /dev/null and b/src/main/webapp/images/re_menu_02.gif differ diff --git a/src/main/webapp/images/re_menu_02_over.gif b/src/main/webapp/images/re_menu_02_over.gif new file mode 100644 index 0000000..3abdacd Binary files /dev/null and b/src/main/webapp/images/re_menu_02_over.gif differ diff --git a/src/main/webapp/images/re_tit_01.gif b/src/main/webapp/images/re_tit_01.gif new file mode 100644 index 0000000..a48f70e Binary files /dev/null and b/src/main/webapp/images/re_tit_01.gif differ diff --git a/src/main/webapp/images/re_tit_02.gif b/src/main/webapp/images/re_tit_02.gif new file mode 100644 index 0000000..2c4ceb9 Binary files /dev/null and b/src/main/webapp/images/re_tit_02.gif differ diff --git a/src/main/webapp/images/re_tit_03.gif b/src/main/webapp/images/re_tit_03.gif new file mode 100644 index 0000000..656dd6d Binary files /dev/null and b/src/main/webapp/images/re_tit_03.gif differ diff --git a/src/main/webapp/images/re_top_img_01.jpg b/src/main/webapp/images/re_top_img_01.jpg new file mode 100644 index 0000000..5f2400b Binary files /dev/null and b/src/main/webapp/images/re_top_img_01.jpg differ diff --git a/src/main/webapp/images/re_top_img_02.jpg b/src/main/webapp/images/re_top_img_02.jpg new file mode 100644 index 0000000..5ca12bc Binary files /dev/null and b/src/main/webapp/images/re_top_img_02.jpg differ diff --git a/src/main/webapp/images/reference/re_menu_01_over.gif b/src/main/webapp/images/reference/re_menu_01_over.gif new file mode 100644 index 0000000..ac3b396 Binary files /dev/null and b/src/main/webapp/images/reference/re_menu_01_over.gif differ diff --git a/src/main/webapp/images/reference/re_title_01.gif b/src/main/webapp/images/reference/re_title_01.gif new file mode 100644 index 0000000..237e938 Binary files /dev/null and b/src/main/webapp/images/reference/re_title_01.gif differ diff --git a/src/main/webapp/images/reference/re_title_02.gif b/src/main/webapp/images/reference/re_title_02.gif new file mode 100644 index 0000000..6a1647c Binary files /dev/null and b/src/main/webapp/images/reference/re_title_02.gif differ diff --git a/src/main/webapp/images/reference/re_top_img.jpg b/src/main/webapp/images/reference/re_top_img.jpg new file mode 100644 index 0000000..2b54c2f Binary files /dev/null and b/src/main/webapp/images/reference/re_top_img.jpg differ diff --git a/src/main/webapp/images/reference/sub05_img01.gif b/src/main/webapp/images/reference/sub05_img01.gif new file mode 100644 index 0000000..a5726e2 Binary files /dev/null and b/src/main/webapp/images/reference/sub05_img01.gif differ diff --git a/src/main/webapp/images/reference/sub_back_re.gif b/src/main/webapp/images/reference/sub_back_re.gif new file mode 100644 index 0000000..c2c7550 Binary files /dev/null and b/src/main/webapp/images/reference/sub_back_re.gif differ diff --git a/src/main/webapp/images/shipper/sh_menu_01_over.gif b/src/main/webapp/images/shipper/sh_menu_01_over.gif new file mode 100644 index 0000000..89198bf Binary files /dev/null and b/src/main/webapp/images/shipper/sh_menu_01_over.gif differ diff --git a/src/main/webapp/images/shipper/sh_sub_img.jpg b/src/main/webapp/images/shipper/sh_sub_img.jpg new file mode 100644 index 0000000..36b559b Binary files /dev/null and b/src/main/webapp/images/shipper/sh_sub_img.jpg differ diff --git a/src/main/webapp/images/shipper/sh_tit_01.gif b/src/main/webapp/images/shipper/sh_tit_01.gif new file mode 100644 index 0000000..33827ec Binary files /dev/null and b/src/main/webapp/images/shipper/sh_tit_01.gif differ diff --git a/src/main/webapp/images/shipper/sh_tit_02.gif b/src/main/webapp/images/shipper/sh_tit_02.gif new file mode 100644 index 0000000..20e220a Binary files /dev/null and b/src/main/webapp/images/shipper/sh_tit_02.gif differ diff --git a/src/main/webapp/images/shipper/sh_tit_03.gif b/src/main/webapp/images/shipper/sh_tit_03.gif new file mode 100644 index 0000000..3cb1ca0 Binary files /dev/null and b/src/main/webapp/images/shipper/sh_tit_03.gif differ diff --git a/src/main/webapp/images/shipper/sh_title_01.gif b/src/main/webapp/images/shipper/sh_title_01.gif new file mode 100644 index 0000000..037e8e3 Binary files /dev/null and b/src/main/webapp/images/shipper/sh_title_01.gif differ diff --git a/src/main/webapp/images/shipper/sh_title_02.gif b/src/main/webapp/images/shipper/sh_title_02.gif new file mode 100644 index 0000000..68b97f3 Binary files /dev/null and b/src/main/webapp/images/shipper/sh_title_02.gif differ diff --git a/src/main/webapp/images/shipper/sh_top_img.jpg b/src/main/webapp/images/shipper/sh_top_img.jpg new file mode 100644 index 0000000..ff5be1c Binary files /dev/null and b/src/main/webapp/images/shipper/sh_top_img.jpg differ diff --git a/src/main/webapp/images/shipper/sub_back_sh.gif b/src/main/webapp/images/shipper/sub_back_sh.gif new file mode 100644 index 0000000..4ae772d Binary files /dev/null and b/src/main/webapp/images/shipper/sub_back_sh.gif differ diff --git a/src/main/webapp/images/site_map_01.gif b/src/main/webapp/images/site_map_01.gif new file mode 100644 index 0000000..34370b2 Binary files /dev/null and b/src/main/webapp/images/site_map_01.gif differ diff --git a/src/main/webapp/images/site_tit_01.gif b/src/main/webapp/images/site_tit_01.gif new file mode 100644 index 0000000..e8ebad6 Binary files /dev/null and b/src/main/webapp/images/site_tit_01.gif differ diff --git a/src/main/webapp/images/site_tit_02.gif b/src/main/webapp/images/site_tit_02.gif new file mode 100644 index 0000000..faa684c Binary files /dev/null and b/src/main/webapp/images/site_tit_02.gif differ diff --git a/src/main/webapp/images/site_tit_03_over.gif b/src/main/webapp/images/site_tit_03_over.gif new file mode 100644 index 0000000..7f95108 Binary files /dev/null and b/src/main/webapp/images/site_tit_03_over.gif differ diff --git a/src/main/webapp/images/sitemap/site_img_01.gif b/src/main/webapp/images/sitemap/site_img_01.gif new file mode 100644 index 0000000..0248c47 Binary files /dev/null and b/src/main/webapp/images/sitemap/site_img_01.gif differ diff --git a/src/main/webapp/images/sitemap/site_menu_01_over.gif b/src/main/webapp/images/sitemap/site_menu_01_over.gif new file mode 100644 index 0000000..983bca2 Binary files /dev/null and b/src/main/webapp/images/sitemap/site_menu_01_over.gif differ diff --git a/src/main/webapp/images/sitemap/site_title_01.gif b/src/main/webapp/images/sitemap/site_title_01.gif new file mode 100644 index 0000000..2139edf Binary files /dev/null and b/src/main/webapp/images/sitemap/site_title_01.gif differ diff --git a/src/main/webapp/images/sitemap/site_title_02.gif b/src/main/webapp/images/sitemap/site_title_02.gif new file mode 100644 index 0000000..45e59b2 Binary files /dev/null and b/src/main/webapp/images/sitemap/site_title_02.gif differ diff --git a/src/main/webapp/images/su/00001/gu-a1936.png b/src/main/webapp/images/su/00001/gu-a1936.png new file mode 100644 index 0000000..69dd62c Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-a1936.png differ diff --git a/src/main/webapp/images/su/00001/gu-b1171.png b/src/main/webapp/images/su/00001/gu-b1171.png new file mode 100644 index 0000000..2b86e34 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-b1171.png differ diff --git a/src/main/webapp/images/su/00001/gu-b1847.png b/src/main/webapp/images/su/00001/gu-b1847.png new file mode 100644 index 0000000..5f04c7a Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-b1847.png differ diff --git a/src/main/webapp/images/su/00001/gu-b2107.png b/src/main/webapp/images/su/00001/gu-b2107.png new file mode 100644 index 0000000..d34143a Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-b2107.png differ diff --git a/src/main/webapp/images/su/00001/gu-b2255.png b/src/main/webapp/images/su/00001/gu-b2255.png new file mode 100644 index 0000000..938c636 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-b2255.png differ diff --git a/src/main/webapp/images/su/00001/gu-b2305.png b/src/main/webapp/images/su/00001/gu-b2305.png new file mode 100644 index 0000000..6600a1e Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-b2305.png differ diff --git a/src/main/webapp/images/su/00001/gu-b2311.png b/src/main/webapp/images/su/00001/gu-b2311.png new file mode 100644 index 0000000..307b730 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-b2311.png differ diff --git a/src/main/webapp/images/su/00001/gu-b2377.png b/src/main/webapp/images/su/00001/gu-b2377.png new file mode 100644 index 0000000..b1c4f63 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-b2377.png differ diff --git a/src/main/webapp/images/su/00001/gu-b2623.png b/src/main/webapp/images/su/00001/gu-b2623.png new file mode 100644 index 0000000..22eca99 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-b2623.png differ diff --git a/src/main/webapp/images/su/00001/gu-c1138.png b/src/main/webapp/images/su/00001/gu-c1138.png new file mode 100644 index 0000000..c1dc2e1 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-c1138.png differ diff --git a/src/main/webapp/images/su/00001/gu-c1785.png b/src/main/webapp/images/su/00001/gu-c1785.png new file mode 100644 index 0000000..c394ad5 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-c1785.png differ diff --git a/src/main/webapp/images/su/00001/gu-c2080.png b/src/main/webapp/images/su/00001/gu-c2080.png new file mode 100644 index 0000000..60e7a2a Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-c2080.png differ diff --git a/src/main/webapp/images/su/00001/gu-c2526.png b/src/main/webapp/images/su/00001/gu-c2526.png new file mode 100644 index 0000000..fa10b63 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-c2526.png differ diff --git a/src/main/webapp/images/su/00001/gu-c2541.png b/src/main/webapp/images/su/00001/gu-c2541.png new file mode 100644 index 0000000..6ef49c0 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-c2541.png differ diff --git a/src/main/webapp/images/su/00001/gu-c2544.png b/src/main/webapp/images/su/00001/gu-c2544.png new file mode 100644 index 0000000..36f297e Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-c2544.png differ diff --git a/src/main/webapp/images/su/00001/gu-c2749.png b/src/main/webapp/images/su/00001/gu-c2749.png new file mode 100644 index 0000000..87009f2 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-c2749.png differ diff --git a/src/main/webapp/images/su/00001/gu-d3863.png b/src/main/webapp/images/su/00001/gu-d3863.png new file mode 100644 index 0000000..3f5ecd9 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-d3863.png differ diff --git a/src/main/webapp/images/su/00001/gu-d6262.png b/src/main/webapp/images/su/00001/gu-d6262.png new file mode 100644 index 0000000..60477a5 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-d6262.png differ diff --git a/src/main/webapp/images/su/00001/gu-d7062.png b/src/main/webapp/images/su/00001/gu-d7062.png new file mode 100644 index 0000000..e25695e Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-d7062.png differ diff --git a/src/main/webapp/images/su/00001/gu-d7502.png b/src/main/webapp/images/su/00001/gu-d7502.png new file mode 100644 index 0000000..9478cd2 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-d7502.png differ diff --git a/src/main/webapp/images/su/00001/gu-d7690.png b/src/main/webapp/images/su/00001/gu-d7690.png new file mode 100644 index 0000000..858c4de Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-d7690.png differ diff --git a/src/main/webapp/images/su/00001/gu-e2072.png b/src/main/webapp/images/su/00001/gu-e2072.png new file mode 100644 index 0000000..9d45526 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-e2072.png differ diff --git a/src/main/webapp/images/su/00001/gu-e2679.png b/src/main/webapp/images/su/00001/gu-e2679.png new file mode 100644 index 0000000..05c3c21 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-e2679.png differ diff --git a/src/main/webapp/images/su/00001/gu-e435.png b/src/main/webapp/images/su/00001/gu-e435.png new file mode 100644 index 0000000..1c64df0 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-e435.png differ diff --git a/src/main/webapp/images/su/00001/gu-f2377.png b/src/main/webapp/images/su/00001/gu-f2377.png new file mode 100644 index 0000000..2317bf7 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-f2377.png differ diff --git a/src/main/webapp/images/su/00001/gu-f2384.png b/src/main/webapp/images/su/00001/gu-f2384.png new file mode 100644 index 0000000..36b4f6b Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-f2384.png differ diff --git a/src/main/webapp/images/su/00001/gu-g2233.png b/src/main/webapp/images/su/00001/gu-g2233.png new file mode 100644 index 0000000..6092912 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-g2233.png differ diff --git a/src/main/webapp/images/su/00001/gu-i1950.png b/src/main/webapp/images/su/00001/gu-i1950.png new file mode 100644 index 0000000..6af3c31 Binary files /dev/null and b/src/main/webapp/images/su/00001/gu-i1950.png differ diff --git a/src/main/webapp/images/su/00002/gu-b1842.png b/src/main/webapp/images/su/00002/gu-b1842.png new file mode 100644 index 0000000..7eac866 Binary files /dev/null and b/src/main/webapp/images/su/00002/gu-b1842.png differ diff --git a/src/main/webapp/images/su/00002/gu-b2248.png b/src/main/webapp/images/su/00002/gu-b2248.png new file mode 100644 index 0000000..e555b71 Binary files /dev/null and b/src/main/webapp/images/su/00002/gu-b2248.png differ diff --git a/src/main/webapp/images/su/00002/gu-b2433.png b/src/main/webapp/images/su/00002/gu-b2433.png new file mode 100644 index 0000000..77de3ff Binary files /dev/null and b/src/main/webapp/images/su/00002/gu-b2433.png differ diff --git a/src/main/webapp/images/su/00002/gu-b2513.png b/src/main/webapp/images/su/00002/gu-b2513.png new file mode 100644 index 0000000..f544faf Binary files /dev/null and b/src/main/webapp/images/su/00002/gu-b2513.png differ diff --git a/src/main/webapp/images/su/00002/gu-b2514.png b/src/main/webapp/images/su/00002/gu-b2514.png new file mode 100644 index 0000000..3f6d157 Binary files /dev/null and b/src/main/webapp/images/su/00002/gu-b2514.png differ diff --git a/src/main/webapp/images/su/00002/gu-c2129.png b/src/main/webapp/images/su/00002/gu-c2129.png new file mode 100644 index 0000000..7ed0239 Binary files /dev/null and b/src/main/webapp/images/su/00002/gu-c2129.png differ diff --git a/src/main/webapp/images/su/00002/gu-d7568.png b/src/main/webapp/images/su/00002/gu-d7568.png new file mode 100644 index 0000000..8e18d66 Binary files /dev/null and b/src/main/webapp/images/su/00002/gu-d7568.png differ diff --git a/src/main/webapp/images/su/00002/gu-e2679.png b/src/main/webapp/images/su/00002/gu-e2679.png new file mode 100644 index 0000000..d9f206f Binary files /dev/null and b/src/main/webapp/images/su/00002/gu-e2679.png differ diff --git a/src/main/webapp/images/su/00003/gu-c1854.png b/src/main/webapp/images/su/00003/gu-c1854.png new file mode 100644 index 0000000..2b01321 Binary files /dev/null and b/src/main/webapp/images/su/00003/gu-c1854.png differ diff --git a/src/main/webapp/images/su/00003/gu-c2595.png b/src/main/webapp/images/su/00003/gu-c2595.png new file mode 100644 index 0000000..bad8ee1 Binary files /dev/null and b/src/main/webapp/images/su/00003/gu-c2595.png differ diff --git a/src/main/webapp/images/su/00003/gu-e2194.png b/src/main/webapp/images/su/00003/gu-e2194.png new file mode 100644 index 0000000..afd9772 Binary files /dev/null and b/src/main/webapp/images/su/00003/gu-e2194.png differ diff --git a/src/main/webapp/images/su/00003/gu-e2583.png b/src/main/webapp/images/su/00003/gu-e2583.png new file mode 100644 index 0000000..fb30adf Binary files /dev/null and b/src/main/webapp/images/su/00003/gu-e2583.png differ diff --git a/src/main/webapp/images/su/00003/gu-f710.png b/src/main/webapp/images/su/00003/gu-f710.png new file mode 100644 index 0000000..010cf52 Binary files /dev/null and b/src/main/webapp/images/su/00003/gu-f710.png differ diff --git a/src/main/webapp/images/su/00003/gu-j1573.png b/src/main/webapp/images/su/00003/gu-j1573.png new file mode 100644 index 0000000..497db78 Binary files /dev/null and b/src/main/webapp/images/su/00003/gu-j1573.png differ diff --git a/src/main/webapp/images/su/00003/gu-j1576.png b/src/main/webapp/images/su/00003/gu-j1576.png new file mode 100644 index 0000000..0850b9e Binary files /dev/null and b/src/main/webapp/images/su/00003/gu-j1576.png differ diff --git a/src/main/webapp/images/sub_i_01.gif b/src/main/webapp/images/sub_i_01.gif new file mode 100644 index 0000000..4e6429c Binary files /dev/null and b/src/main/webapp/images/sub_i_01.gif differ diff --git a/src/main/webapp/images/sub_i_02.gif b/src/main/webapp/images/sub_i_02.gif new file mode 100644 index 0000000..e97841a Binary files /dev/null and b/src/main/webapp/images/sub_i_02.gif differ diff --git a/src/main/webapp/images/sub_i_03.gif b/src/main/webapp/images/sub_i_03.gif new file mode 100644 index 0000000..c779841 Binary files /dev/null and b/src/main/webapp/images/sub_i_03.gif differ diff --git a/src/main/webapp/images/sub_left_back.gif b/src/main/webapp/images/sub_left_back.gif new file mode 100644 index 0000000..b0586c5 Binary files /dev/null and b/src/main/webapp/images/sub_left_back.gif differ diff --git a/src/main/webapp/images/sub_left_but_back.gif b/src/main/webapp/images/sub_left_but_back.gif new file mode 100644 index 0000000..6ad0ee4 Binary files /dev/null and b/src/main/webapp/images/sub_left_but_back.gif differ diff --git a/src/main/webapp/images/sub_left_img_01.gif b/src/main/webapp/images/sub_left_img_01.gif new file mode 100644 index 0000000..78268cc Binary files /dev/null and b/src/main/webapp/images/sub_left_img_01.gif differ diff --git a/src/main/webapp/images/sub_left_img_01_1.gif b/src/main/webapp/images/sub_left_img_01_1.gif new file mode 100644 index 0000000..795963b Binary files /dev/null and b/src/main/webapp/images/sub_left_img_01_1.gif differ diff --git a/src/main/webapp/images/sub_left_img_02.gif b/src/main/webapp/images/sub_left_img_02.gif new file mode 100644 index 0000000..476a93c Binary files /dev/null and b/src/main/webapp/images/sub_left_img_02.gif differ diff --git a/src/main/webapp/images/sub_left_img_02_1.gif b/src/main/webapp/images/sub_left_img_02_1.gif new file mode 100644 index 0000000..da3d39a Binary files /dev/null and b/src/main/webapp/images/sub_left_img_02_1.gif differ diff --git a/src/main/webapp/images/sub_left_img_03.gif b/src/main/webapp/images/sub_left_img_03.gif new file mode 100644 index 0000000..7cda4b2 Binary files /dev/null and b/src/main/webapp/images/sub_left_img_03.gif differ diff --git a/src/main/webapp/images/sub_left_img_04.gif b/src/main/webapp/images/sub_left_img_04.gif new file mode 100644 index 0000000..8705e70 Binary files /dev/null and b/src/main/webapp/images/sub_left_img_04.gif differ diff --git a/src/main/webapp/images/sub_left_img_05.gif b/src/main/webapp/images/sub_left_img_05.gif new file mode 100644 index 0000000..696fdcd Binary files /dev/null and b/src/main/webapp/images/sub_left_img_05.gif differ diff --git a/src/main/webapp/images/sub_left_lo_back.gif b/src/main/webapp/images/sub_left_lo_back.gif new file mode 100644 index 0000000..612aa76 Binary files /dev/null and b/src/main/webapp/images/sub_left_lo_back.gif differ diff --git a/src/main/webapp/images/sub_login.jpg b/src/main/webapp/images/sub_login.jpg new file mode 100644 index 0000000..50f660d Binary files /dev/null and b/src/main/webapp/images/sub_login.jpg differ diff --git a/src/main/webapp/images/sub_logout.jpg b/src/main/webapp/images/sub_logout.jpg new file mode 100644 index 0000000..e13424d Binary files /dev/null and b/src/main/webapp/images/sub_logout.jpg differ diff --git a/src/main/webapp/images/sub_mem_01.gif b/src/main/webapp/images/sub_mem_01.gif new file mode 100644 index 0000000..620618c Binary files /dev/null and b/src/main/webapp/images/sub_mem_01.gif differ diff --git a/src/main/webapp/images/sub_mem_02.gif b/src/main/webapp/images/sub_mem_02.gif new file mode 100644 index 0000000..8a11efc Binary files /dev/null and b/src/main/webapp/images/sub_mem_02.gif differ diff --git a/src/main/webapp/images/sub_mem_03.gif b/src/main/webapp/images/sub_mem_03.gif new file mode 100644 index 0000000..61bf447 Binary files /dev/null and b/src/main/webapp/images/sub_mem_03.gif differ diff --git a/src/main/webapp/images/sub_mem_04.gif b/src/main/webapp/images/sub_mem_04.gif new file mode 100644 index 0000000..2512e04 Binary files /dev/null and b/src/main/webapp/images/sub_mem_04.gif differ diff --git a/src/main/webapp/images/sub_mem_05.gif b/src/main/webapp/images/sub_mem_05.gif new file mode 100644 index 0000000..0e6df3e Binary files /dev/null and b/src/main/webapp/images/sub_mem_05.gif differ diff --git a/src/main/webapp/images/sub_mem_06.gif b/src/main/webapp/images/sub_mem_06.gif new file mode 100644 index 0000000..15e1c67 Binary files /dev/null and b/src/main/webapp/images/sub_mem_06.gif differ diff --git a/src/main/webapp/images/subtit_personalinfo.gif b/src/main/webapp/images/subtit_personalinfo.gif new file mode 100644 index 0000000..1a39ae3 Binary files /dev/null and b/src/main/webapp/images/subtit_personalinfo.gif differ diff --git a/src/main/webapp/images/tit_bar.png b/src/main/webapp/images/tit_bar.png new file mode 100644 index 0000000..26c9b08 Binary files /dev/null and b/src/main/webapp/images/tit_bar.png differ diff --git a/src/main/webapp/images/tit_bar_01.gif b/src/main/webapp/images/tit_bar_01.gif new file mode 100644 index 0000000..4cfec85 Binary files /dev/null and b/src/main/webapp/images/tit_bar_01.gif differ diff --git a/src/main/webapp/images/tit_bar_02.gif b/src/main/webapp/images/tit_bar_02.gif new file mode 100644 index 0000000..def473d Binary files /dev/null and b/src/main/webapp/images/tit_bar_02.gif differ diff --git a/src/main/webapp/images/tit_bar_03.gif b/src/main/webapp/images/tit_bar_03.gif new file mode 100644 index 0000000..749cc27 Binary files /dev/null and b/src/main/webapp/images/tit_bar_03.gif differ diff --git a/src/main/webapp/images/tit_bar_04.gif b/src/main/webapp/images/tit_bar_04.gif new file mode 100644 index 0000000..4f865d3 Binary files /dev/null and b/src/main/webapp/images/tit_bar_04.gif differ diff --git a/src/main/webapp/images/tit_bar_05.gif b/src/main/webapp/images/tit_bar_05.gif new file mode 100644 index 0000000..70c0208 Binary files /dev/null and b/src/main/webapp/images/tit_bar_05.gif differ diff --git a/src/main/webapp/images/tops_bnt.gif b/src/main/webapp/images/tops_bnt.gif new file mode 100644 index 0000000..da1bd03 Binary files /dev/null and b/src/main/webapp/images/tops_bnt.gif differ diff --git a/src/main/webapp/images/upload.gif b/src/main/webapp/images/upload.gif new file mode 100644 index 0000000..1e39444 Binary files /dev/null and b/src/main/webapp/images/upload.gif differ diff --git a/src/main/webapp/images/vote/voteC.png b/src/main/webapp/images/vote/voteC.png new file mode 100644 index 0000000..dfa5c6e Binary files /dev/null and b/src/main/webapp/images/vote/voteC.png differ diff --git a/src/main/webapp/images/vote/voteTop.png b/src/main/webapp/images/vote/voteTop.png new file mode 100644 index 0000000..0c54a21 Binary files /dev/null and b/src/main/webapp/images/vote/voteTop.png differ diff --git a/src/main/webapp/images/wea.gif b/src/main/webapp/images/wea.gif new file mode 100644 index 0000000..0b01bdb Binary files /dev/null and b/src/main/webapp/images/wea.gif differ diff --git a/src/main/webapp/images/web/BK.png b/src/main/webapp/images/web/BK.png new file mode 100644 index 0000000..ca44ba5 Binary files /dev/null and b/src/main/webapp/images/web/BK.png differ diff --git a/src/main/webapp/images/web/CH.png b/src/main/webapp/images/web/CH.png new file mode 100644 index 0000000..aac03bf Binary files /dev/null and b/src/main/webapp/images/web/CH.png differ diff --git a/src/main/webapp/images/web/CL.png b/src/main/webapp/images/web/CL.png new file mode 100644 index 0000000..bb0e932 Binary files /dev/null and b/src/main/webapp/images/web/CL.png differ diff --git a/src/main/webapp/images/web/CR.png b/src/main/webapp/images/web/CR.png new file mode 100644 index 0000000..c05fd37 Binary files /dev/null and b/src/main/webapp/images/web/CR.png differ diff --git a/src/main/webapp/images/web/DS.png b/src/main/webapp/images/web/DS.png new file mode 100644 index 0000000..ff63078 Binary files /dev/null and b/src/main/webapp/images/web/DS.png differ diff --git a/src/main/webapp/images/web/ET.png b/src/main/webapp/images/web/ET.png new file mode 100644 index 0000000..f04871d Binary files /dev/null and b/src/main/webapp/images/web/ET.png differ diff --git a/src/main/webapp/images/web/GC.png b/src/main/webapp/images/web/GC.png new file mode 100644 index 0000000..7b17ac2 Binary files /dev/null and b/src/main/webapp/images/web/GC.png differ diff --git a/src/main/webapp/images/web/GM.png b/src/main/webapp/images/web/GM.png new file mode 100644 index 0000000..08f0eee Binary files /dev/null and b/src/main/webapp/images/web/GM.png differ diff --git a/src/main/webapp/images/web/GP.png b/src/main/webapp/images/web/GP.png new file mode 100644 index 0000000..2ebbf35 Binary files /dev/null and b/src/main/webapp/images/web/GP.png differ diff --git a/src/main/webapp/images/web/GW.png b/src/main/webapp/images/web/GW.png new file mode 100644 index 0000000..16871d4 Binary files /dev/null and b/src/main/webapp/images/web/GW.png differ diff --git a/src/main/webapp/images/web/HR.png b/src/main/webapp/images/web/HR.png new file mode 100644 index 0000000..9185dc2 Binary files /dev/null and b/src/main/webapp/images/web/HR.png differ diff --git a/src/main/webapp/images/web/MH.png b/src/main/webapp/images/web/MH.png new file mode 100644 index 0000000..2f1ed5c Binary files /dev/null and b/src/main/webapp/images/web/MH.png differ diff --git a/src/main/webapp/images/web/ML.png b/src/main/webapp/images/web/ML.png new file mode 100644 index 0000000..4435e59 Binary files /dev/null and b/src/main/webapp/images/web/ML.png differ diff --git a/src/main/webapp/images/web/MR.png b/src/main/webapp/images/web/MR.png new file mode 100644 index 0000000..3d5fbd5 Binary files /dev/null and b/src/main/webapp/images/web/MR.png differ diff --git a/src/main/webapp/images/web/NA.png b/src/main/webapp/images/web/NA.png new file mode 100644 index 0000000..8d11e2e Binary files /dev/null and b/src/main/webapp/images/web/NA.png differ diff --git a/src/main/webapp/images/web/OH.png b/src/main/webapp/images/web/OH.png new file mode 100644 index 0000000..8f60fd1 Binary files /dev/null and b/src/main/webapp/images/web/OH.png differ diff --git a/src/main/webapp/images/web/OL.png b/src/main/webapp/images/web/OL.png new file mode 100644 index 0000000..1d697ac Binary files /dev/null and b/src/main/webapp/images/web/OL.png differ diff --git a/src/main/webapp/images/web/PT.png b/src/main/webapp/images/web/PT.png new file mode 100644 index 0000000..7fda5fb Binary files /dev/null and b/src/main/webapp/images/web/PT.png differ diff --git a/src/main/webapp/images/web/SC.png b/src/main/webapp/images/web/SC.png new file mode 100644 index 0000000..6652287 Binary files /dev/null and b/src/main/webapp/images/web/SC.png differ diff --git a/src/main/webapp/images/web/SM.png b/src/main/webapp/images/web/SM.png new file mode 100644 index 0000000..f65d4b2 Binary files /dev/null and b/src/main/webapp/images/web/SM.png differ diff --git a/src/main/webapp/images/web/SP.png b/src/main/webapp/images/web/SP.png new file mode 100644 index 0000000..4511af4 Binary files /dev/null and b/src/main/webapp/images/web/SP.png differ diff --git a/src/main/webapp/images/web/SR.png b/src/main/webapp/images/web/SR.png new file mode 100644 index 0000000..0f36059 Binary files /dev/null and b/src/main/webapp/images/web/SR.png differ diff --git a/src/main/webapp/images/web/SW.png b/src/main/webapp/images/web/SW.png new file mode 100644 index 0000000..c402a98 Binary files /dev/null and b/src/main/webapp/images/web/SW.png differ diff --git a/src/main/webapp/images/web/US.png b/src/main/webapp/images/web/US.png new file mode 100644 index 0000000..0f36059 Binary files /dev/null and b/src/main/webapp/images/web/US.png differ diff --git a/src/main/webapp/images/web/WR.png b/src/main/webapp/images/web/WR.png new file mode 100644 index 0000000..c881868 Binary files /dev/null and b/src/main/webapp/images/web/WR.png differ diff --git a/src/main/webapp/images/web/XR.png b/src/main/webapp/images/web/XR.png new file mode 100644 index 0000000..d586319 Binary files /dev/null and b/src/main/webapp/images/web/XR.png differ diff --git a/src/main/webapp/images/web/btn_fileplus.png b/src/main/webapp/images/web/btn_fileplus.png new file mode 100644 index 0000000..860c69b Binary files /dev/null and b/src/main/webapp/images/web/btn_fileplus.png differ diff --git a/src/main/webapp/images/web/btn_logout.png b/src/main/webapp/images/web/btn_logout.png new file mode 100644 index 0000000..4008a26 Binary files /dev/null and b/src/main/webapp/images/web/btn_logout.png differ diff --git a/src/main/webapp/images/web/btn_mapselect.png b/src/main/webapp/images/web/btn_mapselect.png new file mode 100644 index 0000000..9616b3d Binary files /dev/null and b/src/main/webapp/images/web/btn_mapselect.png differ diff --git a/src/main/webapp/images/web/btn_pop_input.png b/src/main/webapp/images/web/btn_pop_input.png new file mode 100644 index 0000000..2882404 Binary files /dev/null and b/src/main/webapp/images/web/btn_pop_input.png differ diff --git a/src/main/webapp/images/web/btn_pop_refresh.png b/src/main/webapp/images/web/btn_pop_refresh.png new file mode 100644 index 0000000..d38acb2 Binary files /dev/null and b/src/main/webapp/images/web/btn_pop_refresh.png differ diff --git a/src/main/webapp/images/web/btn_s_checkok.png b/src/main/webapp/images/web/btn_s_checkok.png new file mode 100644 index 0000000..09c9c81 Binary files /dev/null and b/src/main/webapp/images/web/btn_s_checkok.png differ diff --git a/src/main/webapp/images/web/btn_s_checkstart.png b/src/main/webapp/images/web/btn_s_checkstart.png new file mode 100644 index 0000000..4ec269c Binary files /dev/null and b/src/main/webapp/images/web/btn_s_checkstart.png differ diff --git a/src/main/webapp/images/web/btn_s_delete.png b/src/main/webapp/images/web/btn_s_delete.png new file mode 100644 index 0000000..bc11a3e Binary files /dev/null and b/src/main/webapp/images/web/btn_s_delete.png differ diff --git a/src/main/webapp/images/web/btn_s_detail.png b/src/main/webapp/images/web/btn_s_detail.png new file mode 100644 index 0000000..370a894 Binary files /dev/null and b/src/main/webapp/images/web/btn_s_detail.png differ diff --git a/src/main/webapp/images/web/btn_s_map.png b/src/main/webapp/images/web/btn_s_map.png new file mode 100644 index 0000000..6369f6b Binary files /dev/null and b/src/main/webapp/images/web/btn_s_map.png differ diff --git a/src/main/webapp/images/web/btn_s_modify.png b/src/main/webapp/images/web/btn_s_modify.png new file mode 100644 index 0000000..d0c32b1 Binary files /dev/null and b/src/main/webapp/images/web/btn_s_modify.png differ diff --git a/src/main/webapp/images/web/btn_s_modifycall.png b/src/main/webapp/images/web/btn_s_modifycall.png new file mode 100644 index 0000000..9a1c313 Binary files /dev/null and b/src/main/webapp/images/web/btn_s_modifycall.png differ diff --git a/src/main/webapp/images/web/btn_s_pointmodify.png b/src/main/webapp/images/web/btn_s_pointmodify.png new file mode 100644 index 0000000..0edf7d3 Binary files /dev/null and b/src/main/webapp/images/web/btn_s_pointmodify.png differ diff --git a/src/main/webapp/images/web/btn_s_write.png b/src/main/webapp/images/web/btn_s_write.png new file mode 100644 index 0000000..135bf55 Binary files /dev/null and b/src/main/webapp/images/web/btn_s_write.png differ diff --git a/src/main/webapp/images/web/btn_save.png b/src/main/webapp/images/web/btn_save.png new file mode 100644 index 0000000..ae2b3e5 Binary files /dev/null and b/src/main/webapp/images/web/btn_save.png differ diff --git a/src/main/webapp/images/web/btn_search.png b/src/main/webapp/images/web/btn_search.png new file mode 100644 index 0000000..9377d3c Binary files /dev/null and b/src/main/webapp/images/web/btn_search.png differ diff --git a/src/main/webapp/images/web/btn_signup.png b/src/main/webapp/images/web/btn_signup.png new file mode 100644 index 0000000..0122d15 Binary files /dev/null and b/src/main/webapp/images/web/btn_signup.png differ diff --git a/src/main/webapp/images/web/btn_xyinput.png b/src/main/webapp/images/web/btn_xyinput.png new file mode 100644 index 0000000..f24e9a2 Binary files /dev/null and b/src/main/webapp/images/web/btn_xyinput.png differ diff --git a/src/main/webapp/images/web/bullet01.png b/src/main/webapp/images/web/bullet01.png new file mode 100644 index 0000000..9393cea Binary files /dev/null and b/src/main/webapp/images/web/bullet01.png differ diff --git a/src/main/webapp/images/web/bullet02.png b/src/main/webapp/images/web/bullet02.png new file mode 100644 index 0000000..5068a10 Binary files /dev/null and b/src/main/webapp/images/web/bullet02.png differ diff --git a/src/main/webapp/images/web/bullet03.png b/src/main/webapp/images/web/bullet03.png new file mode 100644 index 0000000..eaddcef Binary files /dev/null and b/src/main/webapp/images/web/bullet03.png differ diff --git a/src/main/webapp/images/web/bullet04.png b/src/main/webapp/images/web/bullet04.png new file mode 100644 index 0000000..0455098 Binary files /dev/null and b/src/main/webapp/images/web/bullet04.png differ diff --git a/src/main/webapp/images/web/calendar_close.png b/src/main/webapp/images/web/calendar_close.png new file mode 100644 index 0000000..f5145b5 Binary files /dev/null and b/src/main/webapp/images/web/calendar_close.png differ diff --git a/src/main/webapp/images/web/calendar_mnext.png b/src/main/webapp/images/web/calendar_mnext.png new file mode 100644 index 0000000..4f02492 Binary files /dev/null and b/src/main/webapp/images/web/calendar_mnext.png differ diff --git a/src/main/webapp/images/web/calendar_mprev.png b/src/main/webapp/images/web/calendar_mprev.png new file mode 100644 index 0000000..e11c8ab Binary files /dev/null and b/src/main/webapp/images/web/calendar_mprev.png differ diff --git a/src/main/webapp/images/web/calendar_ynext.png b/src/main/webapp/images/web/calendar_ynext.png new file mode 100644 index 0000000..079181b Binary files /dev/null and b/src/main/webapp/images/web/calendar_ynext.png differ diff --git a/src/main/webapp/images/web/calendar_yprev.png b/src/main/webapp/images/web/calendar_yprev.png new file mode 100644 index 0000000..2e43074 Binary files /dev/null and b/src/main/webapp/images/web/calendar_yprev.png differ diff --git a/src/main/webapp/images/web/copyright.png b/src/main/webapp/images/web/copyright.png new file mode 100644 index 0000000..258da1a Binary files /dev/null and b/src/main/webapp/images/web/copyright.png differ diff --git a/src/main/webapp/images/web/icon_calendar.png b/src/main/webapp/images/web/icon_calendar.png new file mode 100644 index 0000000..74cd885 Binary files /dev/null and b/src/main/webapp/images/web/icon_calendar.png differ diff --git a/src/main/webapp/images/web/icon_down.png b/src/main/webapp/images/web/icon_down.png new file mode 100644 index 0000000..a74b478 Binary files /dev/null and b/src/main/webapp/images/web/icon_down.png differ diff --git a/src/main/webapp/images/web/icon_floder.png b/src/main/webapp/images/web/icon_floder.png new file mode 100644 index 0000000..2d60ab8 Binary files /dev/null and b/src/main/webapp/images/web/icon_floder.png differ diff --git a/src/main/webapp/images/web/icon_floder_check.png b/src/main/webapp/images/web/icon_floder_check.png new file mode 100644 index 0000000..de1722b Binary files /dev/null and b/src/main/webapp/images/web/icon_floder_check.png differ diff --git a/src/main/webapp/images/web/icon_floder_x.png b/src/main/webapp/images/web/icon_floder_x.png new file mode 100644 index 0000000..af880c6 Binary files /dev/null and b/src/main/webapp/images/web/icon_floder_x.png differ diff --git a/src/main/webapp/images/web/icon_grid_minus.png b/src/main/webapp/images/web/icon_grid_minus.png new file mode 100644 index 0000000..6f9c3ab Binary files /dev/null and b/src/main/webapp/images/web/icon_grid_minus.png differ diff --git a/src/main/webapp/images/web/icon_grid_plus.png b/src/main/webapp/images/web/icon_grid_plus.png new file mode 100644 index 0000000..bb02edc Binary files /dev/null and b/src/main/webapp/images/web/icon_grid_plus.png differ diff --git a/src/main/webapp/images/web/icon_human.png b/src/main/webapp/images/web/icon_human.png new file mode 100644 index 0000000..9964b8d Binary files /dev/null and b/src/main/webapp/images/web/icon_human.png differ diff --git a/src/main/webapp/images/web/icon_minus.png b/src/main/webapp/images/web/icon_minus.png new file mode 100644 index 0000000..4bd9ad8 Binary files /dev/null and b/src/main/webapp/images/web/icon_minus.png differ diff --git a/src/main/webapp/images/web/icon_more.png b/src/main/webapp/images/web/icon_more.png new file mode 100644 index 0000000..4c7db2a Binary files /dev/null and b/src/main/webapp/images/web/icon_more.png differ diff --git a/src/main/webapp/images/web/icon_paging_end.png b/src/main/webapp/images/web/icon_paging_end.png new file mode 100644 index 0000000..546aea7 Binary files /dev/null and b/src/main/webapp/images/web/icon_paging_end.png differ diff --git a/src/main/webapp/images/web/icon_paging_first.png b/src/main/webapp/images/web/icon_paging_first.png new file mode 100644 index 0000000..b00c710 Binary files /dev/null and b/src/main/webapp/images/web/icon_paging_first.png differ diff --git a/src/main/webapp/images/web/icon_paging_next.png b/src/main/webapp/images/web/icon_paging_next.png new file mode 100644 index 0000000..3080fd3 Binary files /dev/null and b/src/main/webapp/images/web/icon_paging_next.png differ diff --git a/src/main/webapp/images/web/icon_paging_prev.png b/src/main/webapp/images/web/icon_paging_prev.png new file mode 100644 index 0000000..1775fb3 Binary files /dev/null and b/src/main/webapp/images/web/icon_paging_prev.png differ diff --git a/src/main/webapp/images/web/icon_plus.png b/src/main/webapp/images/web/icon_plus.png new file mode 100644 index 0000000..44cccec Binary files /dev/null and b/src/main/webapp/images/web/icon_plus.png differ diff --git a/src/main/webapp/images/web/icon_title.png b/src/main/webapp/images/web/icon_title.png new file mode 100644 index 0000000..bfb5ea7 Binary files /dev/null and b/src/main/webapp/images/web/icon_title.png differ diff --git a/src/main/webapp/images/web/icon_up.png b/src/main/webapp/images/web/icon_up.png new file mode 100644 index 0000000..3ebd033 Binary files /dev/null and b/src/main/webapp/images/web/icon_up.png differ diff --git a/src/main/webapp/images/web/left_bg.png b/src/main/webapp/images/web/left_bg.png new file mode 100644 index 0000000..16b4de2 Binary files /dev/null and b/src/main/webapp/images/web/left_bg.png differ diff --git a/src/main/webapp/images/web/left_title01.png b/src/main/webapp/images/web/left_title01.png new file mode 100644 index 0000000..4a9c21d Binary files /dev/null and b/src/main/webapp/images/web/left_title01.png differ diff --git a/src/main/webapp/images/web/left_title02.png b/src/main/webapp/images/web/left_title02.png new file mode 100644 index 0000000..faa99e1 Binary files /dev/null and b/src/main/webapp/images/web/left_title02.png differ diff --git a/src/main/webapp/images/web/left_title03.png b/src/main/webapp/images/web/left_title03.png new file mode 100644 index 0000000..59a7afd Binary files /dev/null and b/src/main/webapp/images/web/left_title03.png differ diff --git a/src/main/webapp/images/web/pin48.png b/src/main/webapp/images/web/pin48.png new file mode 100644 index 0000000..7aa6bb7 Binary files /dev/null and b/src/main/webapp/images/web/pin48.png differ diff --git a/src/main/webapp/images/web/poi48.png b/src/main/webapp/images/web/poi48.png new file mode 100644 index 0000000..f7bdf4a Binary files /dev/null and b/src/main/webapp/images/web/poi48.png differ diff --git a/src/main/webapp/images/web/pop_btn_close.png b/src/main/webapp/images/web/pop_btn_close.png new file mode 100644 index 0000000..07c4feb Binary files /dev/null and b/src/main/webapp/images/web/pop_btn_close.png differ diff --git a/src/main/webapp/images/web/sample_img.png b/src/main/webapp/images/web/sample_img.png new file mode 100644 index 0000000..ae97a96 Binary files /dev/null and b/src/main/webapp/images/web/sample_img.png differ diff --git a/src/main/webapp/images/web/sub_tabs_off.png b/src/main/webapp/images/web/sub_tabs_off.png new file mode 100644 index 0000000..9aa9fd5 Binary files /dev/null and b/src/main/webapp/images/web/sub_tabs_off.png differ diff --git a/src/main/webapp/images/web/sub_tabs_on.png b/src/main/webapp/images/web/sub_tabs_on.png new file mode 100644 index 0000000..ca7cefc Binary files /dev/null and b/src/main/webapp/images/web/sub_tabs_on.png differ diff --git a/src/main/webapp/images/web/submit_button.gif b/src/main/webapp/images/web/submit_button.gif new file mode 100644 index 0000000..357e9c9 Binary files /dev/null and b/src/main/webapp/images/web/submit_button.gif differ diff --git a/src/main/webapp/images/web/top_bg.png b/src/main/webapp/images/web/top_bg.png new file mode 100644 index 0000000..06638d7 Binary files /dev/null and b/src/main/webapp/images/web/top_bg.png differ diff --git a/src/main/webapp/images/web/top_logo.png b/src/main/webapp/images/web/top_logo.png new file mode 100644 index 0000000..31fab32 Binary files /dev/null and b/src/main/webapp/images/web/top_logo.png differ diff --git a/src/main/webapp/images/web/top_menu_off.png b/src/main/webapp/images/web/top_menu_off.png new file mode 100644 index 0000000..829d2b2 Binary files /dev/null and b/src/main/webapp/images/web/top_menu_off.png differ diff --git a/src/main/webapp/images/web/top_menu_off_bg.png b/src/main/webapp/images/web/top_menu_off_bg.png new file mode 100644 index 0000000..960965d Binary files /dev/null and b/src/main/webapp/images/web/top_menu_off_bg.png differ diff --git a/src/main/webapp/images/web/top_menu_on.png b/src/main/webapp/images/web/top_menu_on.png new file mode 100644 index 0000000..653b01f Binary files /dev/null and b/src/main/webapp/images/web/top_menu_on.png differ diff --git a/src/main/webapp/images/web/top_menu_on_bg.png b/src/main/webapp/images/web/top_menu_on_bg.png new file mode 100644 index 0000000..8b32485 Binary files /dev/null and b/src/main/webapp/images/web/top_menu_on_bg.png differ diff --git a/src/main/webapp/images/web/uscs.png b/src/main/webapp/images/web/uscs.png new file mode 100644 index 0000000..809da3f Binary files /dev/null and b/src/main/webapp/images/web/uscs.png differ diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp new file mode 100644 index 0000000..548c5f5 --- /dev/null +++ b/src/main/webapp/index.jsp @@ -0,0 +1,6 @@ +<%-- --%> +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + + \ No newline at end of file diff --git a/src/main/webapp/js/admins/Chart.min.js b/src/main/webapp/js/admins/Chart.min.js new file mode 100644 index 0000000..2130e2a --- /dev/null +++ b/src/main/webapp/js/admins/Chart.min.js @@ -0,0 +1,10 @@ +/*! + * Chart.js + * http://chartjs.org/ + * Version: 2.7.1 + * + * Copyright 2017 Nick Downie + * Released under the MIT license + * https://github.com/chartjs/Chart.js/blob/master/LICENSE.md + */ +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Chart=t()}}(function(){return function t(e,n,i){function a(r,l){if(!n[r]){if(!e[r]){var s="function"==typeof require&&require;if(!l&&s)return s(r,!0);if(o)return o(r,!0);var u=new Error("Cannot find module '"+r+"'");throw u.code="MODULE_NOT_FOUND",u}var d=n[r]={exports:{}};e[r][0].call(d.exports,function(t){var n=e[r][1][t];return a(n||t)},d,d.exports,t,e,n,i)}return n[r].exports}for(var o="function"==typeof require&&require,r=0;rn?(e+.05)/(n+.05):(n+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},dark:function(){var t=this.values.rgb;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},light:function(){return!this.dark()},negate:function(){for(var t=[],e=0;e<3;e++)t[e]=255-this.values.rgb[e];return this.setValues("rgb",t),this},lighten:function(t){var e=this.values.hsl;return e[2]+=e[2]*t,this.setValues("hsl",e),this},darken:function(t){var e=this.values.hsl;return e[2]-=e[2]*t,this.setValues("hsl",e),this},saturate:function(t){var e=this.values.hsl;return e[1]+=e[1]*t,this.setValues("hsl",e),this},desaturate:function(t){var e=this.values.hsl;return e[1]-=e[1]*t,this.setValues("hsl",e),this},whiten:function(t){var e=this.values.hwb;return e[1]+=e[1]*t,this.setValues("hwb",e),this},blacken:function(t){var e=this.values.hwb;return e[2]+=e[2]*t,this.setValues("hwb",e),this},greyscale:function(){var t=this.values.rgb,e=.3*t[0]+.59*t[1]+.11*t[2];return this.setValues("rgb",[e,e,e]),this},clearer:function(t){var e=this.values.alpha;return this.setValues("alpha",e-e*t),this},opaquer:function(t){var e=this.values.alpha;return this.setValues("alpha",e+e*t),this},rotate:function(t){var e=this.values.hsl,n=(e[0]+t)%360;return e[0]=n<0?360+n:n,this.setValues("hsl",e),this},mix:function(t,e){var n=this,i=t,a=void 0===e?.5:e,o=2*a-1,r=n.alpha()-i.alpha(),l=((o*r==-1?o:(o+r)/(1+o*r))+1)/2,s=1-l;return this.rgb(l*n.red()+s*i.red(),l*n.green()+s*i.green(),l*n.blue()+s*i.blue()).alpha(n.alpha()*a+i.alpha()*(1-a))},toJSON:function(){return this.rgb()},clone:function(){var t,e,n=new o,i=this.values,a=n.values;for(var r in i)i.hasOwnProperty(r)&&(t=i[r],"[object Array]"===(e={}.toString.call(t))?a[r]=t.slice(0):"[object Number]"===e?a[r]=t:console.error("unexpected color value:",t));return n}},o.prototype.spaces={rgb:["red","green","blue"],hsl:["hue","saturation","lightness"],hsv:["hue","saturation","value"],hwb:["hue","whiteness","blackness"],cmyk:["cyan","magenta","yellow","black"]},o.prototype.maxes={rgb:[255,255,255],hsl:[360,100,100],hsv:[360,100,100],hwb:[360,100,100],cmyk:[100,100,100,100]},o.prototype.getValues=function(t){for(var e=this.values,n={},i=0;i.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*e+.7152*n+.0722*i),100*(.0193*e+.1192*n+.9505*i)]}function d(t){var e,n,i,a=u(t),o=a[0],r=a[1],l=a[2];return o/=95.047,r/=100,l/=108.883,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,l=l>.008856?Math.pow(l,1/3):7.787*l+16/116,e=116*r-16,n=500*(o-r),i=200*(r-l),[e,n,i]}function c(t){var e,n,i,a,o,r=t[0]/360,l=t[1]/100,s=t[2]/100;if(0==l)return o=255*s,[o,o,o];e=2*s-(n=s<.5?s*(1+l):s+l-s*l),a=[0,0,0];for(var u=0;u<3;u++)(i=r+1/3*-(u-1))<0&&i++,i>1&&i--,o=6*i<1?e+6*(n-e)*i:2*i<1?n:3*i<2?e+(n-e)*(2/3-i)*6:e,a[u]=255*o;return a}function h(t){var e=t[0]/60,n=t[1]/100,i=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),r=255*i*(1-n),l=255*i*(1-n*o),s=255*i*(1-n*(1-o)),i=255*i;switch(a){case 0:return[i,s,r];case 1:return[l,i,r];case 2:return[r,i,s];case 3:return[r,l,i];case 4:return[s,r,i];case 5:return[i,r,l]}}function f(t){var e,n,i,a,o=t[0]/360,l=t[1]/100,s=t[2]/100,u=l+s;switch(u>1&&(l/=u,s/=u),e=Math.floor(6*o),n=1-s,i=6*o-e,0!=(1&e)&&(i=1-i),a=l+i*(n-l),e){default:case 6:case 0:r=n,g=a,b=l;break;case 1:r=a,g=n,b=l;break;case 2:r=l,g=n,b=a;break;case 3:r=l,g=a,b=n;break;case 4:r=a,g=l,b=n;break;case 5:r=n,g=l,b=a}return[255*r,255*g,255*b]}function p(t){var e,n,i,a=t[0]/100,o=t[1]/100,r=t[2]/100,l=t[3]/100;return e=1-Math.min(1,a*(1-l)+l),n=1-Math.min(1,o*(1-l)+l),i=1-Math.min(1,r*(1-l)+l),[255*e,255*n,255*i]}function v(t){var e,n,i,a=t[0]/100,o=t[1]/100,r=t[2]/100;return e=3.2406*a+-1.5372*o+-.4986*r,n=-.9689*a+1.8758*o+.0415*r,i=.0557*a+-.204*o+1.057*r,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:e*=12.92,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*=12.92,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:i*=12.92,e=Math.min(Math.max(0,e),1),n=Math.min(Math.max(0,n),1),i=Math.min(Math.max(0,i),1),[255*e,255*n,255*i]}function m(t){var e,n,i,a=t[0],o=t[1],r=t[2];return a/=95.047,o/=100,r/=108.883,a=a>.008856?Math.pow(a,1/3):7.787*a+16/116,o=o>.008856?Math.pow(o,1/3):7.787*o+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,e=116*o-16,n=500*(a-o),i=200*(o-r),[e,n,i]}function x(t){var e,n,i,a,o=t[0],r=t[1],l=t[2];return o<=8?a=(n=100*o/903.3)/100*7.787+16/116:(n=100*Math.pow((o+16)/116,3),a=Math.pow(n/100,1/3)),e=e/95.047<=.008856?e=95.047*(r/500+a-16/116)/7.787:95.047*Math.pow(r/500+a,3),i=i/108.883<=.008859?i=108.883*(a-l/200-16/116)/7.787:108.883*Math.pow(a-l/200,3),[e,n,i]}function y(t){var e,n,i,a=t[0],o=t[1],r=t[2];return e=Math.atan2(r,o),(n=360*e/2/Math.PI)<0&&(n+=360),i=Math.sqrt(o*o+r*r),[a,i,n]}function k(t){return v(x(t))}function w(t){var e,n,i,a=t[0],o=t[1];return i=t[2]/360*2*Math.PI,e=o*Math.cos(i),n=o*Math.sin(i),[a,e,n]}function M(t){return S[t]}e.exports={rgb2hsl:i,rgb2hsv:a,rgb2hwb:o,rgb2cmyk:l,rgb2keyword:s,rgb2xyz:u,rgb2lab:d,rgb2lch:function(t){return y(d(t))},hsl2rgb:c,hsl2hsv:function(t){var e,n,i=t[0],a=t[1]/100,o=t[2]/100;return 0===o?[0,0,0]:(o*=2,a*=o<=1?o:2-o,n=(o+a)/2,e=2*a/(o+a),[i,100*e,100*n])},hsl2hwb:function(t){return o(c(t))},hsl2cmyk:function(t){return l(c(t))},hsl2keyword:function(t){return s(c(t))},hsv2rgb:h,hsv2hsl:function(t){var e,n,i=t[0],a=t[1]/100,o=t[2]/100;return n=(2-a)*o,e=a*o,e/=n<=1?n:2-n,e=e||0,n/=2,[i,100*e,100*n]},hsv2hwb:function(t){return o(h(t))},hsv2cmyk:function(t){return l(h(t))},hsv2keyword:function(t){return s(h(t))},hwb2rgb:f,hwb2hsl:function(t){return i(f(t))},hwb2hsv:function(t){return a(f(t))},hwb2cmyk:function(t){return l(f(t))},hwb2keyword:function(t){return s(f(t))},cmyk2rgb:p,cmyk2hsl:function(t){return i(p(t))},cmyk2hsv:function(t){return a(p(t))},cmyk2hwb:function(t){return o(p(t))},cmyk2keyword:function(t){return s(p(t))},keyword2rgb:M,keyword2hsl:function(t){return i(M(t))},keyword2hsv:function(t){return a(M(t))},keyword2hwb:function(t){return o(M(t))},keyword2cmyk:function(t){return l(M(t))},keyword2lab:function(t){return d(M(t))},keyword2xyz:function(t){return u(M(t))},xyz2rgb:v,xyz2lab:m,xyz2lch:function(t){return y(m(t))},lab2xyz:x,lab2rgb:k,lab2lch:y,lch2lab:w,lch2xyz:function(t){return x(w(t))},lch2rgb:function(t){return k(w(t))}};var S={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},C={};for(var _ in S)C[JSON.stringify(S[_])]=_},{}],5:[function(t,e,n){var i=t(4),a=function(){return new u};for(var o in i){a[o+"Raw"]=function(t){return function(e){return"number"==typeof e&&(e=Array.prototype.slice.call(arguments)),i[t](e)}}(o);var r=/(\w+)2(\w+)/.exec(o),l=r[1],s=r[2];(a[l]=a[l]||{})[s]=a[o]=function(t){return function(e){"number"==typeof e&&(e=Array.prototype.slice.call(arguments));var n=i[t](e);if("string"==typeof n||void 0===n)return n;for(var a=0;a0&&(t[0].yLabel?n=t[0].yLabel:e.labels.length>0&&t[0].index=0&&a>0)&&(v+=a));return o=c.getPixelForValue(v),r=c.getPixelForValue(v+f),l=(r-o)/2,{size:l,base:o,head:r,center:r+l/2}},calculateBarIndexPixels:function(t,e,n){var i,a,r,l,s,u,d=this,c=n.scale.options,h=d.getStackIndex(t),f=n.pixels,g=f[e],p=f.length,v=n.start,m=n.end;return 1===p?(i=g>v?g-v:m-g,a=g0&&(i=(g-f[e-1])/2,e===p-1&&(a=i)),e');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var o=0;o'),a[o]&&e.push(a[o]),e.push("");return e.push(""),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,i){var a=t.getDatasetMeta(0),r=e.datasets[0],l=a.data[i],s=l&&l.custom||{},u=o.valueAtIndexOrDefault,d=t.options.elements.arc;return{text:n,fillStyle:s.backgroundColor?s.backgroundColor:u(r.backgroundColor,i,d.backgroundColor),strokeStyle:s.borderColor?s.borderColor:u(r.borderColor,i,d.borderColor),lineWidth:s.borderWidth?s.borderWidth:u(r.borderWidth,i,d.borderWidth),hidden:isNaN(r.data[i])||a.data[i].hidden,index:i}}):[]}},onClick:function(t,e){var n,i,a,o=e.index,r=this.chart;for(n=0,i=(r.data.datasets||[]).length;n=Math.PI?-1:g<-Math.PI?1:0))+f,v={x:Math.cos(g),y:Math.sin(g)},m={x:Math.cos(p),y:Math.sin(p)},b=g<=0&&p>=0||g<=2*Math.PI&&2*Math.PI<=p,x=g<=.5*Math.PI&&.5*Math.PI<=p||g<=2.5*Math.PI&&2.5*Math.PI<=p,y=g<=-Math.PI&&-Math.PI<=p||g<=Math.PI&&Math.PI<=p,k=g<=.5*-Math.PI&&.5*-Math.PI<=p||g<=1.5*Math.PI&&1.5*Math.PI<=p,w=h/100,M={x:y?-1:Math.min(v.x*(v.x<0?1:w),m.x*(m.x<0?1:w)),y:k?-1:Math.min(v.y*(v.y<0?1:w),m.y*(m.y<0?1:w))},S={x:b?1:Math.max(v.x*(v.x>0?1:w),m.x*(m.x>0?1:w)),y:x?1:Math.max(v.y*(v.y>0?1:w),m.y*(m.y>0?1:w))},C={width:.5*(S.x-M.x),height:.5*(S.y-M.y)};u=Math.min(l/C.width,s/C.height),d={x:-.5*(S.x+M.x),y:-.5*(S.y+M.y)}}n.borderWidth=e.getMaxBorderWidth(c.data),n.outerRadius=Math.max((u-n.borderWidth)/2,0),n.innerRadius=Math.max(h?n.outerRadius/100*h:0,0),n.radiusLength=(n.outerRadius-n.innerRadius)/n.getVisibleDatasetCount(),n.offsetX=d.x*n.outerRadius,n.offsetY=d.y*n.outerRadius,c.total=e.calculateTotal(),e.outerRadius=n.outerRadius-n.radiusLength*e.getRingIndex(e.index),e.innerRadius=Math.max(e.outerRadius-n.radiusLength,0),o.each(c.data,function(n,i){e.updateElement(n,i,t)})},updateElement:function(t,e,n){var i=this,a=i.chart,r=a.chartArea,l=a.options,s=l.animation,u=(r.left+r.right)/2,d=(r.top+r.bottom)/2,c=l.rotation,h=l.rotation,f=i.getDataset(),g=n&&s.animateRotate?0:t.hidden?0:i.calculateCircumference(f.data[e])*(l.circumference/(2*Math.PI)),p=n&&s.animateScale?0:i.innerRadius,v=n&&s.animateScale?0:i.outerRadius,m=o.valueAtIndexOrDefault;o.extend(t,{_datasetIndex:i.index,_index:e,_model:{x:u+a.offsetX,y:d+a.offsetY,startAngle:c,endAngle:h,circumference:g,outerRadius:v,innerRadius:p,label:m(f.label,e,a.data.labels[e])}});var b=t._model;this.removeHoverStyle(t),n&&s.animateRotate||(b.startAngle=0===e?l.rotation:i.getMeta().data[e-1]._model.endAngle,b.endAngle=b.startAngle+b.circumference),t.pivot()},removeHoverStyle:function(e){t.DatasetController.prototype.removeHoverStyle.call(this,e,this.chart.options.elements.arc)},calculateTotal:function(){var t,e=this.getDataset(),n=this.getMeta(),i=0;return o.each(n.data,function(n,a){t=e.data[a],isNaN(t)||n.hidden||(i+=Math.abs(t))}),i},calculateCircumference:function(t){var e=this.getMeta().total;return e>0&&!isNaN(t)?2*Math.PI*(t/e):0},getMaxBorderWidth:function(t){for(var e,n,i=0,a=this.index,o=t.length,r=0;r(i=e>i?e:i)?n:i;return i}})}},{25:25,40:40,45:45}],18:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("line",{showLines:!0,spanGaps:!1,hover:{mode:"label"},scales:{xAxes:[{type:"category",id:"x-axis-0"}],yAxes:[{type:"linear",id:"y-axis-0"}]}}),e.exports=function(t){function e(t,e){return o.valueOrDefault(t.showLine,e.showLines)}t.controllers.line=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,update:function(t){var n,i,a,r=this,l=r.getMeta(),s=l.dataset,u=l.data||[],d=r.chart.options,c=d.elements.line,h=r.getScaleForId(l.yAxisID),f=r.getDataset(),g=e(f,d);for(g&&(a=s.custom||{},void 0!==f.tension&&void 0===f.lineTension&&(f.lineTension=f.tension),s._scale=h,s._datasetIndex=r.index,s._children=u,s._model={spanGaps:f.spanGaps?f.spanGaps:d.spanGaps,tension:a.tension?a.tension:o.valueOrDefault(f.lineTension,c.tension),backgroundColor:a.backgroundColor?a.backgroundColor:f.backgroundColor||c.backgroundColor,borderWidth:a.borderWidth?a.borderWidth:f.borderWidth||c.borderWidth,borderColor:a.borderColor?a.borderColor:f.borderColor||c.borderColor,borderCapStyle:a.borderCapStyle?a.borderCapStyle:f.borderCapStyle||c.borderCapStyle,borderDash:a.borderDash?a.borderDash:f.borderDash||c.borderDash,borderDashOffset:a.borderDashOffset?a.borderDashOffset:f.borderDashOffset||c.borderDashOffset,borderJoinStyle:a.borderJoinStyle?a.borderJoinStyle:f.borderJoinStyle||c.borderJoinStyle,fill:a.fill?a.fill:void 0!==f.fill?f.fill:c.fill,steppedLine:a.steppedLine?a.steppedLine:o.valueOrDefault(f.steppedLine,c.stepped),cubicInterpolationMode:a.cubicInterpolationMode?a.cubicInterpolationMode:o.valueOrDefault(f.cubicInterpolationMode,c.cubicInterpolationMode)},s.pivot()),n=0,i=u.length;n');var n=t.data,i=n.datasets,a=n.labels;if(i.length)for(var o=0;o'),a[o]&&e.push(a[o]),e.push("");return e.push(""),e.join("")},legend:{labels:{generateLabels:function(t){var e=t.data;return e.labels.length&&e.datasets.length?e.labels.map(function(n,i){var a=t.getDatasetMeta(0),r=e.datasets[0],l=a.data[i].custom||{},s=o.valueAtIndexOrDefault,u=t.options.elements.arc;return{text:n,fillStyle:l.backgroundColor?l.backgroundColor:s(r.backgroundColor,i,u.backgroundColor),strokeStyle:l.borderColor?l.borderColor:s(r.borderColor,i,u.borderColor),lineWidth:l.borderWidth?l.borderWidth:s(r.borderWidth,i,u.borderWidth),hidden:isNaN(r.data[i])||a.data[i].hidden,index:i}}):[]}},onClick:function(t,e){var n,i,a,o=e.index,r=this.chart;for(n=0,i=(r.data.datasets||[]).length;n0&&!isNaN(t)?2*Math.PI/e:0}})}},{25:25,40:40,45:45}],20:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("radar",{scale:{type:"radialLinear"},elements:{line:{tension:0}}}),e.exports=function(t){t.controllers.radar=t.DatasetController.extend({datasetElementType:a.Line,dataElementType:a.Point,linkScales:o.noop,update:function(t){var e=this,n=e.getMeta(),i=n.dataset,a=n.data,r=i.custom||{},l=e.getDataset(),s=e.chart.options.elements.line,u=e.chart.scale;void 0!==l.tension&&void 0===l.lineTension&&(l.lineTension=l.tension),o.extend(n.dataset,{_datasetIndex:e.index,_scale:u,_children:a,_loop:!0,_model:{tension:r.tension?r.tension:o.valueOrDefault(l.lineTension,s.tension),backgroundColor:r.backgroundColor?r.backgroundColor:l.backgroundColor||s.backgroundColor,borderWidth:r.borderWidth?r.borderWidth:l.borderWidth||s.borderWidth,borderColor:r.borderColor?r.borderColor:l.borderColor||s.borderColor,fill:r.fill?r.fill:void 0!==l.fill?l.fill:s.fill,borderCapStyle:r.borderCapStyle?r.borderCapStyle:l.borderCapStyle||s.borderCapStyle,borderDash:r.borderDash?r.borderDash:l.borderDash||s.borderDash,borderDashOffset:r.borderDashOffset?r.borderDashOffset:l.borderDashOffset||s.borderDashOffset,borderJoinStyle:r.borderJoinStyle?r.borderJoinStyle:l.borderJoinStyle||s.borderJoinStyle}}),n.dataset.pivot(),o.each(a,function(n,i){e.updateElement(n,i,t)},e),e.updateBezierControlPoints()},updateElement:function(t,e,n){var i=this,a=t.custom||{},r=i.getDataset(),l=i.chart.scale,s=i.chart.options.elements.point,u=l.getPointPositionForValue(e,r.data[e]);void 0!==r.radius&&void 0===r.pointRadius&&(r.pointRadius=r.radius),void 0!==r.hitRadius&&void 0===r.pointHitRadius&&(r.pointHitRadius=r.hitRadius),o.extend(t,{_datasetIndex:i.index,_index:e,_scale:l,_model:{x:n?l.xCenter:u.x,y:n?l.yCenter:u.y,tension:a.tension?a.tension:o.valueOrDefault(r.lineTension,i.chart.options.elements.line.tension),radius:a.radius?a.radius:o.valueAtIndexOrDefault(r.pointRadius,e,s.radius),backgroundColor:a.backgroundColor?a.backgroundColor:o.valueAtIndexOrDefault(r.pointBackgroundColor,e,s.backgroundColor),borderColor:a.borderColor?a.borderColor:o.valueAtIndexOrDefault(r.pointBorderColor,e,s.borderColor),borderWidth:a.borderWidth?a.borderWidth:o.valueAtIndexOrDefault(r.pointBorderWidth,e,s.borderWidth),pointStyle:a.pointStyle?a.pointStyle:o.valueAtIndexOrDefault(r.pointStyle,e,s.pointStyle),hitRadius:a.hitRadius?a.hitRadius:o.valueAtIndexOrDefault(r.pointHitRadius,e,s.hitRadius)}}),t._model.skip=a.skip?a.skip:isNaN(t._model.x)||isNaN(t._model.y)},updateBezierControlPoints:function(){var t=this.chart.chartArea,e=this.getMeta();o.each(e.data,function(n,i){var a=n._model,r=o.splineCurve(o.previousItem(e.data,i,!0)._model,a,o.nextItem(e.data,i,!0)._model,a.tension);a.controlPointPreviousX=Math.max(Math.min(r.previous.x,t.right),t.left),a.controlPointPreviousY=Math.max(Math.min(r.previous.y,t.bottom),t.top),a.controlPointNextX=Math.max(Math.min(r.next.x,t.right),t.left),a.controlPointNextY=Math.max(Math.min(r.next.y,t.bottom),t.top),n.pivot()})},setHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},i=t._index,a=t._model;a.radius=n.hoverRadius?n.hoverRadius:o.valueAtIndexOrDefault(e.pointHoverRadius,i,this.chart.options.elements.point.hoverRadius),a.backgroundColor=n.hoverBackgroundColor?n.hoverBackgroundColor:o.valueAtIndexOrDefault(e.pointHoverBackgroundColor,i,o.getHoverColor(a.backgroundColor)),a.borderColor=n.hoverBorderColor?n.hoverBorderColor:o.valueAtIndexOrDefault(e.pointHoverBorderColor,i,o.getHoverColor(a.borderColor)),a.borderWidth=n.hoverBorderWidth?n.hoverBorderWidth:o.valueAtIndexOrDefault(e.pointHoverBorderWidth,i,a.borderWidth)},removeHoverStyle:function(t){var e=this.chart.data.datasets[t._datasetIndex],n=t.custom||{},i=t._index,a=t._model,r=this.chart.options.elements.point;a.radius=n.radius?n.radius:o.valueAtIndexOrDefault(e.pointRadius,i,r.radius),a.backgroundColor=n.backgroundColor?n.backgroundColor:o.valueAtIndexOrDefault(e.pointBackgroundColor,i,r.backgroundColor),a.borderColor=n.borderColor?n.borderColor:o.valueAtIndexOrDefault(e.pointBorderColor,i,r.borderColor),a.borderWidth=n.borderWidth?n.borderWidth:o.valueAtIndexOrDefault(e.pointBorderWidth,i,r.borderWidth)}})}},{25:25,40:40,45:45}],21:[function(t,e,n){"use strict";t(25)._set("scatter",{hover:{mode:"single"},scales:{xAxes:[{id:"x-axis-1",type:"linear",position:"bottom"}],yAxes:[{id:"y-axis-1",type:"linear",position:"left"}]},showLines:!1,tooltips:{callbacks:{title:function(){return""},label:function(t){return"("+t.xLabel+", "+t.yLabel+")"}}}}),e.exports=function(t){t.controllers.scatter=t.controllers.line}},{25:25}],22:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{animation:{duration:1e3,easing:"easeOutQuart",onProgress:o.noop,onComplete:o.noop}}),e.exports=function(t){t.Animation=a.extend({chart:null,currentStep:0,numSteps:60,easing:"",render:null,onAnimationProgress:null,onAnimationComplete:null}),t.animationService={frameDuration:17,animations:[],dropFrames:0,request:null,addAnimation:function(t,e,n,i){var a,o,r=this.animations;for(e.chart=t,i||(t.animating=!0),a=0,o=r.length;a1&&(n=Math.floor(t.dropFrames),t.dropFrames=t.dropFrames%1),t.advance(1+n);var i=Date.now();t.dropFrames+=(i-e)/t.frameDuration,t.animations.length>0&&t.requestAnimationFrame()},advance:function(t){for(var e,n,i=this.animations,a=0;a=e.numSteps?(o.callback(e.onAnimationComplete,[e],n),n.animating=!1,i.splice(a,1)):++a}},Object.defineProperty(t.Animation.prototype,"animationObject",{get:function(){return this}}),Object.defineProperty(t.Animation.prototype,"chartInstance",{get:function(){return this.chart},set:function(t){this.chart=t}})}},{25:25,26:26,45:45}],23:[function(t,e,n){"use strict";var i=t(25),a=t(45),o=t(28),r=t(48);e.exports=function(t){function e(t){var e=(t=t||{}).data=t.data||{};return e.datasets=e.datasets||[],e.labels=e.labels||[],t.options=a.configMerge(i.global,i[t.type],t.options||{}),t}function n(t){var e=t.options;e.scale?t.scale.options=e.scale:e.scales&&e.scales.xAxes.concat(e.scales.yAxes).forEach(function(e){t.scales[e.id].options=e}),t.tooltip._options=e.tooltips}function l(t){return"top"===t||"bottom"===t}var s=t.plugins;t.types={},t.instances={},t.controllers={},a.extend(t.prototype,{construct:function(n,i){var o=this;i=e(i);var l=r.acquireContext(n,i),s=l&&l.canvas,u=s&&s.height,d=s&&s.width;o.id=a.uid(),o.ctx=l,o.canvas=s,o.config=i,o.width=d,o.height=u,o.aspectRatio=u?d/u:null,o.options=i.options,o._bufferedRender=!1,o.chart=o,o.controller=o,t.instances[o.id]=o,Object.defineProperty(o,"data",{get:function(){return o.config.data},set:function(t){o.config.data=t}}),l&&s?(o.initialize(),o.update()):console.error("Failed to create chart: can't acquire context from the given item")},initialize:function(){var t=this;return s.notify(t,"beforeInit"),a.retinaScale(t,t.options.devicePixelRatio),t.bindEvents(),t.options.responsive&&t.resize(!0),t.ensureScalesHaveIDs(),t.buildScales(),t.initToolTip(),s.notify(t,"afterInit"),t},clear:function(){return a.canvas.clear(this),this},stop:function(){return t.animationService.cancelAnimation(this),this},resize:function(t){var e=this,n=e.options,i=e.canvas,o=n.maintainAspectRatio&&e.aspectRatio||null,r=Math.max(0,Math.floor(a.getMaximumWidth(i))),l=Math.max(0,Math.floor(o?r/o:a.getMaximumHeight(i)));if((e.width!==r||e.height!==l)&&(i.width=e.width=r,i.height=e.height=l,i.style.width=r+"px",i.style.height=l+"px",a.retinaScale(e,n.devicePixelRatio),!t)){var u={width:r,height:l};s.notify(e,"resize",[u]),e.options.onResize&&e.options.onResize(e,u),e.stop(),e.update(e.options.responsiveAnimationDuration)}},ensureScalesHaveIDs:function(){var t=this.options,e=t.scales||{},n=t.scale;a.each(e.xAxes,function(t,e){t.id=t.id||"x-axis-"+e}),a.each(e.yAxes,function(t,e){t.id=t.id||"y-axis-"+e}),n&&(n.id=n.id||"scale")},buildScales:function(){var e=this,n=e.options,i=e.scales={},o=[];n.scales&&(o=o.concat((n.scales.xAxes||[]).map(function(t){return{options:t,dtype:"category",dposition:"bottom"}}),(n.scales.yAxes||[]).map(function(t){return{options:t,dtype:"linear",dposition:"left"}}))),n.scale&&o.push({options:n.scale,dtype:"radialLinear",isDefault:!0,dposition:"chartArea"}),a.each(o,function(n){var o=n.options,r=a.valueOrDefault(o.type,n.dtype),s=t.scaleService.getScaleConstructor(r);if(s){l(o.position)!==l(n.dposition)&&(o.position=n.dposition);var u=new s({id:o.id,options:o,ctx:e.ctx,chart:e});i[u.id]=u,u.mergeTicksOptions(),n.isDefault&&(e.scale=u)}}),t.scaleService.addScalesToLayout(this)},buildOrUpdateControllers:function(){var e=this,n=[],i=[];return a.each(e.data.datasets,function(a,o){var r=e.getDatasetMeta(o),l=a.type||e.config.type;if(r.type&&r.type!==l&&(e.destroyDatasetMeta(o),r=e.getDatasetMeta(o)),r.type=l,n.push(r.type),r.controller)r.controller.updateIndex(o);else{var s=t.controllers[r.type];if(void 0===s)throw new Error('"'+r.type+'" is not a chart type.');r.controller=new s(e,o),i.push(r.controller)}},e),i},resetElements:function(){var t=this;a.each(t.data.datasets,function(e,n){t.getDatasetMeta(n).controller.reset()},t)},reset:function(){this.resetElements(),this.tooltip.initialize()},update:function(t){var e=this;if(t&&"object"==typeof t||(t={duration:t,lazy:arguments[1]}),n(e),!1!==s.notify(e,"beforeUpdate")){e.tooltip._data=e.data;var i=e.buildOrUpdateControllers();a.each(e.data.datasets,function(t,n){e.getDatasetMeta(n).controller.buildOrUpdateElements()},e),e.updateLayout(),a.each(i,function(t){t.reset()}),e.updateDatasets(),e.tooltip.initialize(),e.lastActive=[],s.notify(e,"afterUpdate"),e._bufferedRender?e._bufferedRequest={duration:t.duration,easing:t.easing,lazy:t.lazy}:e.render(t)}},updateLayout:function(){var e=this;!1!==s.notify(e,"beforeLayout")&&(t.layoutService.update(this,this.width,this.height),s.notify(e,"afterScaleUpdate"),s.notify(e,"afterLayout"))},updateDatasets:function(){var t=this;if(!1!==s.notify(t,"beforeDatasetsUpdate")){for(var e=0,n=t.data.datasets.length;e=0;--n)e.isDatasetVisible(n)&&e.drawDataset(n,t);s.notify(e,"afterDatasetsDraw",[t])}},drawDataset:function(t,e){var n=this,i=n.getDatasetMeta(t),a={meta:i,index:t,easingValue:e};!1!==s.notify(n,"beforeDatasetDraw",[a])&&(i.controller.draw(e),s.notify(n,"afterDatasetDraw",[a]))},_drawTooltip:function(t){var e=this,n=e.tooltip,i={tooltip:n,easingValue:t};!1!==s.notify(e,"beforeTooltipDraw",[i])&&(n.draw(),s.notify(e,"afterTooltipDraw",[i]))},getElementAtEvent:function(t){return o.modes.single(this,t)},getElementsAtEvent:function(t){return o.modes.label(this,t,{intersect:!0})},getElementsAtXAxis:function(t){return o.modes["x-axis"](this,t,{intersect:!0})},getElementsAtEventForMode:function(t,e,n){var i=o.modes[e];return"function"==typeof i?i(this,t,n):[]},getDatasetAtEvent:function(t){return o.modes.dataset(this,t,{intersect:!0})},getDatasetMeta:function(t){var e=this,n=e.data.datasets[t];n._meta||(n._meta={});var i=n._meta[e.id];return i||(i=n._meta[e.id]={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null}),i},getVisibleDatasetCount:function(){for(var t=0,e=0,n=this.data.datasets.length;e0||(a.forEach(function(e){delete t[e]}),delete t._chartjs)}}var a=["push","pop","shift","splice","unshift"];t.DatasetController=function(t,e){this.initialize(t,e)},i.extend(t.DatasetController.prototype,{datasetElementType:null,dataElementType:null,initialize:function(t,e){var n=this;n.chart=t,n.index=e,n.linkScales(),n.addElements()},updateIndex:function(t){this.index=t},linkScales:function(){var t=this,e=t.getMeta(),n=t.getDataset();null===e.xAxisID&&(e.xAxisID=n.xAxisID||t.chart.options.scales.xAxes[0].id),null===e.yAxisID&&(e.yAxisID=n.yAxisID||t.chart.options.scales.yAxes[0].id)},getDataset:function(){return this.chart.data.datasets[this.index]},getMeta:function(){return this.chart.getDatasetMeta(this.index)},getScaleForId:function(t){return this.chart.scales[t]},reset:function(){this.update(!0)},destroy:function(){this._data&&n(this._data,this)},createMetaDataset:function(){var t=this,e=t.datasetElementType;return e&&new e({_chart:t.chart,_datasetIndex:t.index})},createMetaData:function(t){var e=this,n=e.dataElementType;return n&&new n({_chart:e.chart,_datasetIndex:e.index,_index:t})},addElements:function(){var t,e,n=this,i=n.getMeta(),a=n.getDataset().data||[],o=i.data;for(t=0,e=a.length;ti&&t.insertElements(i,a-i)},insertElements:function(t,e){for(var n=0;n=n[e].length&&n[e].push({}),!n[e][r].type||s.type&&s.type!==n[e][r].type?o.merge(n[e][r],[t.scaleService.getScaleDefaults(l),s]):o.merge(n[e][r],s)}else o._merger(e,n,i,a)}})},o.where=function(t,e){if(o.isArray(t)&&Array.prototype.filter)return t.filter(e);var n=[];return o.each(t,function(t){e(t)&&n.push(t)}),n},o.findIndex=Array.prototype.findIndex?function(t,e,n){return t.findIndex(e,n)}:function(t,e,n){n=void 0===n?t:n;for(var i=0,a=t.length;i=0;i--){var a=t[i];if(e(a))return a}},o.isNumber=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},o.almostEquals=function(t,e,n){return Math.abs(t-e)t},o.max=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.max(t,e)},Number.NEGATIVE_INFINITY)},o.min=function(t){return t.reduce(function(t,e){return isNaN(e)?t:Math.min(t,e)},Number.POSITIVE_INFINITY)},o.sign=Math.sign?function(t){return Math.sign(t)}:function(t){return 0==(t=+t)||isNaN(t)?t:t>0?1:-1},o.log10=Math.log10?function(t){return Math.log10(t)}:function(t){return Math.log(t)/Math.LN10},o.toRadians=function(t){return t*(Math.PI/180)},o.toDegrees=function(t){return t*(180/Math.PI)},o.getAngleFromPoint=function(t,e){var n=e.x-t.x,i=e.y-t.y,a=Math.sqrt(n*n+i*i),o=Math.atan2(i,n);return o<-.5*Math.PI&&(o+=2*Math.PI),{angle:o,distance:a}},o.distanceBetweenPoints=function(t,e){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))},o.aliasPixel=function(t){return t%2==0?0:.5},o.splineCurve=function(t,e,n,i){var a=t.skip?e:t,o=e,r=n.skip?e:n,l=Math.sqrt(Math.pow(o.x-a.x,2)+Math.pow(o.y-a.y,2)),s=Math.sqrt(Math.pow(r.x-o.x,2)+Math.pow(r.y-o.y,2)),u=l/(l+s),d=s/(l+s),c=i*(u=isNaN(u)?0:u),h=i*(d=isNaN(d)?0:d);return{previous:{x:o.x-c*(r.x-a.x),y:o.y-c*(r.y-a.y)},next:{x:o.x+h*(r.x-a.x),y:o.y+h*(r.y-a.y)}}},o.EPSILON=Number.EPSILON||1e-14,o.splineCurveMonotone=function(t){var e,n,i,a,r=(t||[]).map(function(t){return{model:t._model,deltaK:0,mK:0}}),l=r.length;for(e=0;e0?r[e-1]:null,(a=e0?r[e-1]:null,a=e=t.length-1?t[0]:t[e+1]:e>=t.length-1?t[t.length-1]:t[e+1]},o.previousItem=function(t,e,n){return n?e<=0?t[t.length-1]:t[e-1]:e<=0?t[0]:t[e-1]},o.niceNum=function(t,e){var n=Math.floor(o.log10(t)),i=t/Math.pow(10,n);return(e?i<1.5?1:i<3?2:i<7?5:10:i<=1?1:i<=2?2:i<=5?5:10)*Math.pow(10,n)},o.requestAnimFrame="undefined"==typeof window?function(t){t()}:window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return window.setTimeout(t,1e3/60)},o.getRelativePosition=function(t,e){var n,i,a=t.originalEvent||t,r=t.currentTarget||t.srcElement,l=r.getBoundingClientRect(),s=a.touches;s&&s.length>0?(n=s[0].clientX,i=s[0].clientY):(n=a.clientX,i=a.clientY);var u=parseFloat(o.getStyle(r,"padding-left")),d=parseFloat(o.getStyle(r,"padding-top")),c=parseFloat(o.getStyle(r,"padding-right")),h=parseFloat(o.getStyle(r,"padding-bottom")),f=l.right-l.left-u-c,g=l.bottom-l.top-d-h;return n=Math.round((n-l.left-u)/f*r.width/e.currentDevicePixelRatio),i=Math.round((i-l.top-d)/g*r.height/e.currentDevicePixelRatio),{x:n,y:i}},o.getConstraintWidth=function(t){return r(t,"max-width","clientWidth")},o.getConstraintHeight=function(t){return r(t,"max-height","clientHeight")},o.getMaximumWidth=function(t){var e=t.parentNode;if(!e)return t.clientWidth;var n=parseInt(o.getStyle(e,"padding-left"),10),i=parseInt(o.getStyle(e,"padding-right"),10),a=e.clientWidth-n-i,r=o.getConstraintWidth(t);return isNaN(r)?a:Math.min(a,r)},o.getMaximumHeight=function(t){var e=t.parentNode;if(!e)return t.clientHeight;var n=parseInt(o.getStyle(e,"padding-top"),10),i=parseInt(o.getStyle(e,"padding-bottom"),10),a=e.clientHeight-n-i,r=o.getConstraintHeight(t);return isNaN(r)?a:Math.min(a,r)},o.getStyle=function(t,e){return t.currentStyle?t.currentStyle[e]:document.defaultView.getComputedStyle(t,null).getPropertyValue(e)},o.retinaScale=function(t,e){var n=t.currentDevicePixelRatio=e||window.devicePixelRatio||1;if(1!==n){var i=t.canvas,a=t.height,o=t.width;i.height=a*n,i.width=o*n,t.ctx.scale(n,n),i.style.height=a+"px",i.style.width=o+"px"}},o.fontString=function(t,e,n){return e+" "+t+"px "+n},o.longestText=function(t,e,n,i){var a=(i=i||{}).data=i.data||{},r=i.garbageCollect=i.garbageCollect||[];i.font!==e&&(a=i.data={},r=i.garbageCollect=[],i.font=e),t.font=e;var l=0;o.each(n,function(e){void 0!==e&&null!==e&&!0!==o.isArray(e)?l=o.measureText(t,a,r,l,e):o.isArray(e)&&o.each(e,function(e){void 0===e||null===e||o.isArray(e)||(l=o.measureText(t,a,r,l,e))})});var s=r.length/2;if(s>n.length){for(var u=0;ui&&(i=o),i},o.numberOfLabelLines=function(t){var e=1;return o.each(t,function(t){o.isArray(t)&&t.length>e&&(e=t.length)}),e},o.color=i?function(t){return t instanceof CanvasGradient&&(t=a.global.defaultColor),i(t)}:function(t){return console.error("Color.js not found!"),t},o.getHoverColor=function(t){return t instanceof CanvasPattern?t:o.color(t).saturate(.5).darken(.1).rgbString()}}},{25:25,3:3,45:45}],28:[function(t,e,n){"use strict";function i(t,e){return t.native?{x:t.x,y:t.y}:u.getRelativePosition(t,e)}function a(t,e){var n,i,a,o,r;for(i=0,o=t.data.datasets.length;i0&&(u=t.getDatasetMeta(u[0]._datasetIndex).data),u},"x-axis":function(t,e){return s(t,e,{intersect:!1})},point:function(t,e){return o(t,i(e,t))},nearest:function(t,e,n){var a=i(e,t);n.axis=n.axis||"xy";var o=l(n.axis),s=r(t,a,n.intersect,o);return s.length>1&&s.sort(function(t,e){var n=t.getArea()-e.getArea();return 0===n&&(n=t._datasetIndex-e._datasetIndex),n}),s.slice(0,1)},x:function(t,e,n){var o=i(e,t),r=[],l=!1;return a(t,function(t){t.inXRange(o.x)&&r.push(t),t.inRange(o.x,o.y)&&(l=!0)}),n.intersect&&!l&&(r=[]),r},y:function(t,e,n){var o=i(e,t),r=[],l=!1;return a(t,function(t){t.inYRange(o.y)&&r.push(t),t.inRange(o.x,o.y)&&(l=!0)}),n.intersect&&!l&&(r=[]),r}}}},{45:45}],29:[function(t,e,n){"use strict";t(25)._set("global",{responsive:!0,responsiveAnimationDuration:0,maintainAspectRatio:!0,events:["mousemove","mouseout","click","touchstart","touchmove"],hover:{onHover:null,mode:"nearest",intersect:!0,animationDuration:400},onClick:null,defaultColor:"rgba(0,0,0,0.1)",defaultFontColor:"#666",defaultFontFamily:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",defaultFontSize:12,defaultFontStyle:"normal",showLines:!0,elements:{},layout:{padding:{top:0,right:0,bottom:0,left:0}}}),e.exports=function(){var t=function(t,e){return this.construct(t,e),this};return t.Chart=t,t}},{25:25}],30:[function(t,e,n){"use strict";var i=t(45);e.exports=function(t){function e(t,e){return i.where(t,function(t){return t.position===e})}function n(t,e){t.forEach(function(t,e){return t._tmpIndex_=e,t}),t.sort(function(t,n){var i=e?n:t,a=e?t:n;return i.weight===a.weight?i._tmpIndex_-a._tmpIndex_:i.weight-a.weight}),t.forEach(function(t){delete t._tmpIndex_})}t.layoutService={defaults:{},addBox:function(t,e){t.boxes||(t.boxes=[]),e.fullWidth=e.fullWidth||!1,e.position=e.position||"top",e.weight=e.weight||0,t.boxes.push(e)},removeBox:function(t,e){var n=t.boxes?t.boxes.indexOf(e):-1;-1!==n&&t.boxes.splice(n,1)},configure:function(t,e,n){for(var i,a=["fullWidth","position","weight"],o=a.length,r=0;rh&&st.maxHeight){s--;break}s++,c=u*d}t.labelRotation=s},afterCalculateTickRotation:function(){l.callback(this.options.afterCalculateTickRotation,[this])},beforeFit:function(){l.callback(this.options.beforeFit,[this])},fit:function(){var t=this,a=t.minSize={width:0,height:0},o=i(t._ticks),r=t.options,u=r.ticks,d=r.scaleLabel,c=r.gridLines,h=r.display,f=t.isHorizontal(),g=n(u),p=r.gridLines.tickMarkLength;if(a.width=f?t.isFullWidth()?t.maxWidth-t.margins.left-t.margins.right:t.maxWidth:h&&c.drawTicks?p:0,a.height=f?h&&c.drawTicks?p:0:t.maxHeight,d.display&&h){var v=s(d)+l.options.toPadding(d.padding).height;f?a.height+=v:a.width+=v}if(u.display&&h){var m=l.longestText(t.ctx,g.font,o,t.longestTextCache),b=l.numberOfLabelLines(o),x=.5*g.size,y=t.options.ticks.padding;if(f){t.longestLabelWidth=m;var k=l.toRadians(t.labelRotation),w=Math.cos(k),M=Math.sin(k)*m+g.size*b+x*(b-1)+x;a.height=Math.min(t.maxHeight,a.height+M+y),t.ctx.font=g.font;var S=e(t.ctx,o[0],g.font),C=e(t.ctx,o[o.length-1],g.font);0!==t.labelRotation?(t.paddingLeft="bottom"===r.position?w*S+3:w*x+3,t.paddingRight="bottom"===r.position?w*x+3:w*C+3):(t.paddingLeft=S/2+3,t.paddingRight=C/2+3)}else u.mirror?m=0:m+=y+x,a.width=Math.min(t.maxWidth,a.width+m),t.paddingTop=g.size/2,t.paddingBottom=g.size/2}t.handleMargins(),t.width=a.width,t.height=a.height},handleMargins:function(){var t=this;t.margins&&(t.paddingLeft=Math.max(t.paddingLeft-t.margins.left,0),t.paddingTop=Math.max(t.paddingTop-t.margins.top,0),t.paddingRight=Math.max(t.paddingRight-t.margins.right,0),t.paddingBottom=Math.max(t.paddingBottom-t.margins.bottom,0))},afterFit:function(){l.callback(this.options.afterFit,[this])},isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},isFullWidth:function(){return this.options.fullWidth},getRightValue:function(t){if(l.isNullOrUndef(t))return NaN;if("number"==typeof t&&!isFinite(t))return NaN;if(t)if(this.isHorizontal()){if(void 0!==t.x)return this.getRightValue(t.x)}else if(void 0!==t.y)return this.getRightValue(t.y);return t},getLabelForIndex:l.noop,getPixelForValue:l.noop,getValueForPixel:l.noop,getPixelForTick:function(t){var e=this,n=e.options.offset;if(e.isHorizontal()){var i=(e.width-(e.paddingLeft+e.paddingRight))/Math.max(e._ticks.length-(n?0:1),1),a=i*t+e.paddingLeft;n&&(a+=i/2);var o=e.left+Math.round(a);return o+=e.isFullWidth()?e.margins.left:0}var r=e.height-(e.paddingTop+e.paddingBottom);return e.top+t*(r/(e._ticks.length-1))},getPixelForDecimal:function(t){var e=this;if(e.isHorizontal()){var n=(e.width-(e.paddingLeft+e.paddingRight))*t+e.paddingLeft,i=e.left+Math.round(n);return i+=e.isFullWidth()?e.margins.left:0}return e.top+t*e.height},getBasePixel:function(){return this.getPixelForValue(this.getBaseValue())},getBaseValue:function(){var t=this,e=t.min,n=t.max;return t.beginAtZero?0:e<0&&n<0?n:e>0&&n>0?e:0},_autoSkip:function(t){var e,n,i,a,o=this,r=o.isHorizontal(),s=o.options.ticks.minor,u=t.length,d=l.toRadians(o.labelRotation),c=Math.cos(d),h=o.longestLabelWidth*c,f=[];for(s.maxTicksLimit&&(a=s.maxTicksLimit),r&&(e=!1,(h+s.autoSkipPadding)*u>o.width-(o.paddingLeft+o.paddingRight)&&(e=1+Math.floor((h+s.autoSkipPadding)*u/(o.width-(o.paddingLeft+o.paddingRight)))),a&&u>a&&(e=Math.max(e,Math.floor(u/a)))),n=0;n1&&n%e>0||n%e==0&&n+e>=u)&&n!==u-1&&delete i.label,f.push(i);return f},draw:function(t){var e=this,i=e.options;if(i.display){var r=e.ctx,u=o.global,d=i.ticks.minor,c=i.ticks.major||d,h=i.gridLines,f=i.scaleLabel,g=0!==e.labelRotation,p=e.isHorizontal(),v=d.autoSkip?e._autoSkip(e.getTicks()):e.getTicks(),m=l.valueOrDefault(d.fontColor,u.defaultFontColor),b=n(d),x=l.valueOrDefault(c.fontColor,u.defaultFontColor),y=n(c),k=h.drawTicks?h.tickMarkLength:0,w=l.valueOrDefault(f.fontColor,u.defaultFontColor),M=n(f),S=l.options.toPadding(f.padding),C=l.toRadians(e.labelRotation),_=[],D="right"===i.position?e.left:e.right-k,I="right"===i.position?e.left+k:e.right,P="bottom"===i.position?e.top:e.bottom-k,A="bottom"===i.position?e.top+k:e.bottom;if(l.each(v,function(n,o){if(!l.isNullOrUndef(n.label)){var r,s,c,f,m=n.label;o===e.zeroLineIndex&&i.offset===h.offsetGridLines?(r=h.zeroLineWidth,s=h.zeroLineColor,c=h.zeroLineBorderDash,f=h.zeroLineBorderDashOffset):(r=l.valueAtIndexOrDefault(h.lineWidth,o),s=l.valueAtIndexOrDefault(h.color,o),c=l.valueOrDefault(h.borderDash,u.borderDash),f=l.valueOrDefault(h.borderDashOffset,u.borderDashOffset));var b,x,y,w,M,S,T,F,O,R,L="middle",z="middle",B=d.padding;if(p){var W=k+B;"bottom"===i.position?(z=g?"middle":"top",L=g?"right":"center",R=e.top+W):(z=g?"middle":"bottom",L=g?"left":"center",R=e.bottom-W);var N=a(e,o,h.offsetGridLines&&v.length>1);N1);H0)n=t.stepSize;else{var o=i.niceNum(e.max-e.min,!1);n=i.niceNum(o/(t.maxTicks-1),!0)}var r=Math.floor(e.min/n)*n,l=Math.ceil(e.max/n)*n;t.min&&t.max&&t.stepSize&&i.almostWhole((t.max-t.min)/t.stepSize,n/1e3)&&(r=t.min,l=t.max);var s=(l-r)/n;s=i.almostEquals(s,Math.round(s),n/1e3)?Math.round(s):Math.ceil(s),a.push(void 0!==t.min?t.min:r);for(var u=1;u3?n[2]-n[1]:n[1]-n[0];Math.abs(a)>1&&t!==Math.floor(t)&&(a=t-Math.floor(t));var o=i.log10(Math.abs(a)),r="";if(0!==t){var l=-1*Math.floor(o);l=Math.max(Math.min(l,20),0),r=t.toFixed(l)}else r="0";return r},logarithmic:function(t,e,n){var a=t/Math.pow(10,Math.floor(i.log10(t)));return 0===t?"0":1===a||2===a||5===a||0===e||e===n.length-1?t.toExponential():""}}}},{45:45}],35:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{tooltips:{enabled:!0,custom:null,mode:"nearest",position:"average",intersect:!0,backgroundColor:"rgba(0,0,0,0.8)",titleFontStyle:"bold",titleSpacing:2,titleMarginBottom:6,titleFontColor:"#fff",titleAlign:"left",bodySpacing:2,bodyFontColor:"#fff",bodyAlign:"left",footerFontStyle:"bold",footerSpacing:2,footerMarginTop:6,footerFontColor:"#fff",footerAlign:"left",yPadding:6,xPadding:6,caretPadding:2,caretSize:5,cornerRadius:6,multiKeyBackground:"#fff",displayColors:!0,borderColor:"rgba(0,0,0,0)",borderWidth:0,callbacks:{beforeTitle:o.noop,title:function(t,e){var n="",i=e.labels,a=i?i.length:0;if(t.length>0){var o=t[0];o.xLabel?n=o.xLabel:a>0&&o.indexi.height-e.height&&(r="bottom");var l,s,u,d,c,h=(a.left+a.right)/2,f=(a.top+a.bottom)/2;"center"===r?(l=function(t){return t<=h},s=function(t){return t>h}):(l=function(t){return t<=e.width/2},s=function(t){return t>=i.width-e.width/2}),u=function(t){return t+e.width>i.width},d=function(t){return t-e.width<0},c=function(t){return t<=f?"top":"bottom"},l(n.x)?(o="left",u(n.x)&&(o="center",r=c(n.y))):s(n.x)&&(o="right",d(n.x)&&(o="center",r=c(n.y)));var g=t._options;return{xAlign:g.xAlign?g.xAlign:o,yAlign:g.yAlign?g.yAlign:r}}function d(t,e,n){var i=t.x,a=t.y,o=t.caretSize,r=t.caretPadding,l=t.cornerRadius,s=n.xAlign,u=n.yAlign,d=o+r,c=l+r;return"right"===s?i-=e.width:"center"===s&&(i-=e.width/2),"top"===u?a+=d:a-="bottom"===u?e.height+d:e.height/2,"center"===u?"left"===s?i+=d:"right"===s&&(i-=d):"left"===s?i-=c:"right"===s&&(i+=c),{x:i,y:a}}t.Tooltip=a.extend({initialize:function(){this._model=l(this._options),this._lastActive=[]},getTitle:function(){var t=this,e=t._options.callbacks,i=e.beforeTitle.apply(t,arguments),a=e.title.apply(t,arguments),o=e.afterTitle.apply(t,arguments),r=[];return r=n(r,i),r=n(r,a),r=n(r,o)},getBeforeBody:function(){var t=this._options.callbacks.beforeBody.apply(this,arguments);return o.isArray(t)?t:void 0!==t?[t]:[]},getBody:function(t,e){var i=this,a=i._options.callbacks,r=[];return o.each(t,function(t){var o={before:[],lines:[],after:[]};n(o.before,a.beforeLabel.call(i,t,e)),n(o.lines,a.label.call(i,t,e)),n(o.after,a.afterLabel.call(i,t,e)),r.push(o)}),r},getAfterBody:function(){var t=this._options.callbacks.afterBody.apply(this,arguments);return o.isArray(t)?t:void 0!==t?[t]:[]},getFooter:function(){var t=this,e=t._options.callbacks,i=e.beforeFooter.apply(t,arguments),a=e.footer.apply(t,arguments),o=e.afterFooter.apply(t,arguments),r=[];return r=n(r,i),r=n(r,a),r=n(r,o)},update:function(e){var n,i,a=this,c=a._options,h=a._model,f=a._model=l(c),g=a._active,p=a._data,v={xAlign:h.xAlign,yAlign:h.yAlign},m={x:h.x,y:h.y},b={width:h.width,height:h.height},x={x:h.caretX,y:h.caretY};if(g.length){f.opacity=1;var y=[],k=[];x=t.Tooltip.positioners[c.position].call(a,g,a._eventPosition);var w=[];for(n=0,i=g.length;n0&&i.stroke()},draw:function(){var t=this._chart.ctx,e=this._view;if(0!==e.opacity){var n={width:e.width,height:e.height},i={x:e.x,y:e.y},a=Math.abs(e.opacity<.001)?0:e.opacity,o=e.title.length||e.beforeBody.length||e.body.length||e.afterBody.length||e.footer.length;this._options.enabled&&o&&(this.drawBackground(i,e,t,n,a),i.x+=e.xPadding,i.y+=e.yPadding,this.drawTitle(i,e,t,a),this.drawBody(i,e,t,a),this.drawFooter(i,e,t,a))}},handleEvent:function(t){var e=this,n=e._options,i=!1;if(e._lastActive=e._lastActive||[],"mouseout"===t.type?e._active=[]:e._active=e._chart.getElementsAtEventForMode(t,n.mode,n),!(i=!o.arrayEquals(e._active,e._lastActive)))return!1;if(e._lastActive=e._active,n.enabled||n.custom){e._eventPosition={x:t.x,y:t.y};var a=e._model;e.update(!0),e.pivot(),i|=a.x!==e._model.x||a.y!==e._model.y}return i}}),t.Tooltip.positioners={average:function(t){if(!t.length)return!1;var e,n,i=0,a=0,o=0;for(e=0,n=t.length;es;)a-=2*Math.PI;for(;a=l&&a<=s,d=r>=n.innerRadius&&r<=n.outerRadius;return u&&d}return!1},getCenterPoint:function(){var t=this._view,e=(t.startAngle+t.endAngle)/2,n=(t.innerRadius+t.outerRadius)/2;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},getArea:function(){var t=this._view;return Math.PI*((t.endAngle-t.startAngle)/(2*Math.PI))*(Math.pow(t.outerRadius,2)-Math.pow(t.innerRadius,2))},tooltipPosition:function(){var t=this._view,e=t.startAngle+(t.endAngle-t.startAngle)/2,n=(t.outerRadius-t.innerRadius)/2+t.innerRadius;return{x:t.x+Math.cos(e)*n,y:t.y+Math.sin(e)*n}},draw:function(){var t=this._chart.ctx,e=this._view,n=e.startAngle,i=e.endAngle;t.beginPath(),t.arc(e.x,e.y,e.outerRadius,n,i),t.arc(e.x,e.y,e.innerRadius,i,n,!0),t.closePath(),t.strokeStyle=e.borderColor,t.lineWidth=e.borderWidth,t.fillStyle=e.backgroundColor,t.fill(),t.lineJoin="bevel",e.borderWidth&&t.stroke()}})},{25:25,26:26,45:45}],37:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45),r=i.global;i._set("global",{elements:{line:{tension:.4,backgroundColor:r.defaultColor,borderWidth:3,borderColor:r.defaultColor,borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",capBezierPoints:!0,fill:!0}}}),e.exports=a.extend({draw:function(){var t,e,n,i,a=this,l=a._view,s=a._chart.ctx,u=l.spanGaps,d=a._children.slice(),c=r.elements.line,h=-1;for(a._loop&&d.length&&d.push(d[0]),s.save(),s.lineCap=l.borderCapStyle||c.borderCapStyle,s.setLineDash&&s.setLineDash(l.borderDash||c.borderDash),s.lineDashOffset=l.borderDashOffset||c.borderDashOffset,s.lineJoin=l.borderJoinStyle||c.borderJoinStyle,s.lineWidth=l.borderWidth||c.borderWidth,s.strokeStyle=l.borderColor||r.defaultColor,s.beginPath(),h=-1,t=0;te?1:-1,r=1,l=u.borderSkipped||"left"):(e=u.x-u.width/2,n=u.x+u.width/2,i=u.y,o=1,r=(a=u.base)>i?1:-1,l=u.borderSkipped||"bottom"),d){var c=Math.min(Math.abs(e-n),Math.abs(i-a)),h=(d=d>c?c:d)/2,f=e+("left"!==l?h*o:0),g=n+("right"!==l?-h*o:0),p=i+("top"!==l?h*r:0),v=a+("bottom"!==l?-h*r:0);f!==g&&(i=p,a=v),p!==v&&(e=f,n=g)}s.beginPath(),s.fillStyle=u.backgroundColor,s.strokeStyle=u.borderColor,s.lineWidth=d;var m=[[e,a],[e,i],[n,i],[n,a]],b=["bottom","left","top","right"].indexOf(l,0);-1===b&&(b=0);var x=t(0);s.moveTo(x[0],x[1]);for(var y=1;y<4;y++)x=t(y),s.lineTo(x[0],x[1]);s.fill(),d&&s.stroke()},height:function(){var t=this._view;return t.base-t.y},inRange:function(t,e){var n=!1;if(this._view){var i=a(this);n=t>=i.left&&t<=i.right&&e>=i.top&&e<=i.bottom}return n},inLabelRange:function(t,e){var n=this;if(!n._view)return!1;var o=a(n);return i(n)?t>=o.left&&t<=o.right:e>=o.top&&e<=o.bottom},inXRange:function(t){var e=a(this);return t>=e.left&&t<=e.right},inYRange:function(t){var e=a(this);return t>=e.top&&t<=e.bottom},getCenterPoint:function(){var t,e,n=this._view;return i(this)?(t=n.x,e=(n.y+n.base)/2):(t=(n.x+n.base)/2,e=n.y),{x:t,y:e}},getArea:function(){var t=this._view;return t.width*Math.abs(t.y-t.base)},tooltipPosition:function(){var t=this._view;return{x:t.x,y:t.y}}})},{25:25,26:26}],40:[function(t,e,n){"use strict";e.exports={},e.exports.Arc=t(36),e.exports.Line=t(37),e.exports.Point=t(38),e.exports.Rectangle=t(39)},{36:36,37:37,38:38,39:39}],41:[function(t,e,n){"use strict";var i=t(42),n=e.exports={clear:function(t){t.ctx.clearRect(0,0,t.width,t.height)},roundedRect:function(t,e,n,i,a,o){if(o){var r=Math.min(o,i/2),l=Math.min(o,a/2);t.moveTo(e+r,n),t.lineTo(e+i-r,n),t.quadraticCurveTo(e+i,n,e+i,n+l),t.lineTo(e+i,n+a-l),t.quadraticCurveTo(e+i,n+a,e+i-r,n+a),t.lineTo(e+r,n+a),t.quadraticCurveTo(e,n+a,e,n+a-l),t.lineTo(e,n+l),t.quadraticCurveTo(e,n,e+r,n)}else t.rect(e,n,i,a)},drawPoint:function(t,e,n,i,a){var o,r,l,s,u,d;if(!e||"object"!=typeof e||"[object HTMLImageElement]"!==(o=e.toString())&&"[object HTMLCanvasElement]"!==o){if(!(isNaN(n)||n<=0)){switch(e){default:t.beginPath(),t.arc(i,a,n,0,2*Math.PI),t.closePath(),t.fill();break;case"triangle":t.beginPath(),u=(r=3*n/Math.sqrt(3))*Math.sqrt(3)/2,t.moveTo(i-r/2,a+u/3),t.lineTo(i+r/2,a+u/3),t.lineTo(i,a-2*u/3),t.closePath(),t.fill();break;case"rect":d=1/Math.SQRT2*n,t.beginPath(),t.fillRect(i-d,a-d,2*d,2*d),t.strokeRect(i-d,a-d,2*d,2*d);break;case"rectRounded":var c=n/Math.SQRT2,h=i-c,f=a-c,g=Math.SQRT2*n;t.beginPath(),this.roundedRect(t,h,f,g,g,n/2),t.closePath(),t.fill();break;case"rectRot":d=1/Math.SQRT2*n,t.beginPath(),t.moveTo(i-d,a),t.lineTo(i,a+d),t.lineTo(i+d,a),t.lineTo(i,a-d),t.closePath(),t.fill();break;case"cross":t.beginPath(),t.moveTo(i,a+n),t.lineTo(i,a-n),t.moveTo(i-n,a),t.lineTo(i+n,a),t.closePath();break;case"crossRot":t.beginPath(),l=Math.cos(Math.PI/4)*n,s=Math.sin(Math.PI/4)*n,t.moveTo(i-l,a-s),t.lineTo(i+l,a+s),t.moveTo(i-l,a+s),t.lineTo(i+l,a-s),t.closePath();break;case"star":t.beginPath(),t.moveTo(i,a+n),t.lineTo(i,a-n),t.moveTo(i-n,a),t.lineTo(i+n,a),l=Math.cos(Math.PI/4)*n,s=Math.sin(Math.PI/4)*n,t.moveTo(i-l,a-s),t.lineTo(i+l,a+s),t.moveTo(i-l,a+s),t.lineTo(i+l,a-s),t.closePath();break;case"line":t.beginPath(),t.moveTo(i-n,a),t.lineTo(i+n,a),t.closePath();break;case"dash":t.beginPath(),t.moveTo(i,a),t.lineTo(i+n,a),t.closePath()}t.stroke()}}else t.drawImage(e,i-e.width/2,a-e.height/2,e.width,e.height)},clipArea:function(t,e){t.save(),t.beginPath(),t.rect(e.left,e.top,e.right-e.left,e.bottom-e.top),t.clip()},unclipArea:function(t){t.restore()},lineTo:function(t,e,n,i){if(n.steppedLine)return"after"===n.steppedLine&&!i||"after"!==n.steppedLine&&i?t.lineTo(e.x,n.y):t.lineTo(n.x,e.y),void t.lineTo(n.x,n.y);n.tension?t.bezierCurveTo(i?e.controlPointPreviousX:e.controlPointNextX,i?e.controlPointPreviousY:e.controlPointNextY,i?n.controlPointNextX:n.controlPointPreviousX,i?n.controlPointNextY:n.controlPointPreviousY,n.x,n.y):t.lineTo(n.x,n.y)}};i.clear=n.clear,i.drawRoundedRectangle=function(t){t.beginPath(),n.roundedRect.apply(n,arguments),t.closePath()}},{42:42}],42:[function(t,e,n){"use strict";var i={noop:function(){},uid:function(){var t=0;return function(){return t++}}(),isNullOrUndef:function(t){return null===t||void 0===t},isArray:Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)},isObject:function(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)},valueOrDefault:function(t,e){return void 0===t?e:t},valueAtIndexOrDefault:function(t,e,n){return i.valueOrDefault(i.isArray(t)?t[e]:t,n)},callback:function(t,e,n){if(t&&"function"==typeof t.call)return t.apply(n,e)},each:function(t,e,n,a){var o,r,l;if(i.isArray(t))if(r=t.length,a)for(o=r-1;o>=0;o--)e.call(n,t[o],o);else for(o=0;o=1?t:-(Math.sqrt(1-t*t)-1)},easeOutCirc:function(t){return Math.sqrt(1-(t-=1)*t)},easeInOutCirc:function(t){return(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},easeInElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),-i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n))},easeOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:1===t?1:(n||(n=.3),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),i*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/n)+1)},easeInOutElastic:function(t){var e=1.70158,n=0,i=1;return 0===t?0:2==(t/=.5)?1:(n||(n=.45),i<1?(i=1,e=n/4):e=n/(2*Math.PI)*Math.asin(1/i),t<1?i*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*-.5:i*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/n)*.5+1)},easeInBack:function(t){var e=1.70158;return t*t*((e+1)*t-e)},easeOutBack:function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack:function(t){var e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:function(t){return 1-a.easeOutBounce(1-t)},easeOutBounce:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},easeInOutBounce:function(t){return t<.5?.5*a.easeInBounce(2*t):.5*a.easeOutBounce(2*t-1)+.5}};e.exports={effects:a},i.easingEffects=a},{42:42}],44:[function(t,e,n){"use strict";var i=t(42);e.exports={toLineHeight:function(t,e){var n=(""+t).match(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/);if(!n||"normal"===n[1])return 1.2*e;switch(t=+n[2],n[3]){case"px":return t;case"%":t/=100}return e*t},toPadding:function(t){var e,n,a,o;return i.isObject(t)?(e=+t.top||0,n=+t.right||0,a=+t.bottom||0,o=+t.left||0):e=n=a=o=+t||0,{top:e,right:n,bottom:a,left:o,height:e+a,width:o+n}},resolve:function(t,e,n){var a,o,r;for(a=0,o=t.length;a
';var a=e.childNodes[0],r=e.childNodes[1];e._reset=function(){a.scrollLeft=1e6,a.scrollTop=1e6,r.scrollLeft=1e6,r.scrollTop=1e6};var l=function(){e._reset(),t()};return o(a,"scroll",l.bind(a,"expand")),o(r,"scroll",l.bind(r,"shrink")),e}function c(t,e){var n=t[m]||(t[m]={}),i=n.renderProxy=function(t){t.animationName===y&&e()};v.each(k,function(e){o(t,e,i)}),n.reflow=!!t.offsetParent,t.classList.add(x)}function h(t){var e=t[m]||{},n=e.renderProxy;n&&(v.each(k,function(e){r(t,e,n)}),delete e.renderProxy),t.classList.remove(x)}function f(t,e,n){var i=t[m]||(t[m]={}),a=i.resizer=d(u(function(){if(i.resizer)return e(l("resize",n))}));c(t,function(){if(i.resizer){var e=t.parentNode;e&&e!==a.parentNode&&e.insertBefore(a,e.firstChild),a._reset()}})}function g(t){var e=t[m]||{},n=e.resizer;delete e.resizer,h(t),n&&n.parentNode&&n.parentNode.removeChild(n)}function p(t,e){var n=t._style||document.createElement("style");t._style||(t._style=n,e="/* Chart.js */\n"+e,n.setAttribute("type","text/css"),document.getElementsByTagName("head")[0].appendChild(n)),n.appendChild(document.createTextNode(e))}var v=t(45),m="$chartjs",b="chartjs-",x=b+"render-monitor",y=b+"render-animation",k=["animationstart","webkitAnimationStart"],w={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},M=!!function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("e",null,e)}catch(t){}return t}()&&{passive:!0};e.exports={_enabled:"undefined"!=typeof window&&"undefined"!=typeof document,initialize:function(){var t="from{opacity:0.99}to{opacity:1}";p(this,"@-webkit-keyframes "+y+"{"+t+"}@keyframes "+y+"{"+t+"}."+x+"{-webkit-animation:"+y+" 0.001s;animation:"+y+" 0.001s;}")},acquireContext:function(t,e){"string"==typeof t?t=document.getElementById(t):t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas);var n=t&&t.getContext&&t.getContext("2d");return n&&n.canvas===t?(a(t,e),n):null},releaseContext:function(t){var e=t.canvas;if(e[m]){var n=e[m].initial;["height","width"].forEach(function(t){var i=n[t];v.isNullOrUndef(i)?e.removeAttribute(t):e.setAttribute(t,i)}),v.each(n.style||{},function(t,n){e.style[n]=t}),e.width=e.width,delete e[m]}},addEventListener:function(t,e,n){var i=t.canvas;if("resize"!==e){var a=n[m]||(n[m]={});o(i,e,(a.proxies||(a.proxies={}))[t.id+"_"+e]=function(e){n(s(e,t))})}else f(i,n,t)},removeEventListener:function(t,e,n){var i=t.canvas;if("resize"!==e){var a=((n[m]||{}).proxies||{})[t.id+"_"+e];a&&r(i,e,a)}else g(i)}},v.addEvent=o,v.removeEvent=r},{45:45}],48:[function(t,e,n){"use strict";var i=t(45),a=t(46),o=t(47),r=o._enabled?o:a;e.exports=i.extend({initialize:function(){},acquireContext:function(){},releaseContext:function(){},addEventListener:function(){},removeEventListener:function(){}},r)},{45:45,46:46,47:47}],49:[function(t,e,n){"use strict";var i=t(25),a=t(40),o=t(45);i._set("global",{plugins:{filler:{propagate:!0}}}),e.exports=function(){function t(t,e,n){var i,a=t._model||{},o=a.fill;if(void 0===o&&(o=!!a.backgroundColor),!1===o||null===o)return!1;if(!0===o)return"origin";if(i=parseFloat(o,10),isFinite(i)&&Math.floor(i)===i)return"-"!==o[0]&&"+"!==o[0]||(i=e+i),!(i===e||i<0||i>=n)&&i;switch(o){case"bottom":return"start";case"top":return"end";case"zero":return"origin";case"origin":case"start":case"end":return o;default:return!1}}function e(t){var e,n=t.el._model||{},i=t.el._scale||{},a=t.fill,o=null;if(isFinite(a))return null;if("start"===a?o=void 0===n.scaleBottom?i.bottom:n.scaleBottom:"end"===a?o=void 0===n.scaleTop?i.top:n.scaleTop:void 0!==n.scaleZero?o=n.scaleZero:i.getBasePosition?o=i.getBasePosition():i.getBasePixel&&(o=i.getBasePixel()),void 0!==o&&null!==o){if(void 0!==o.x&&void 0!==o.y)return o;if("number"==typeof o&&isFinite(o))return e=i.isHorizontal(),{x:e?o:null,y:e?null:o}}return null}function n(t,e,n){var i,a=t[e].fill,o=[e];if(!n)return a;for(;!1!==a&&-1===o.indexOf(a);){if(!isFinite(a))return a;if(!(i=t[a]))return!1;if(i.visible)return a;o.push(a),a=i.fill}return!1}function r(t){var e=t.fill,n="dataset";return!1===e?null:(isFinite(e)||(n="boundary"),d[n](t))}function l(t){return t&&!t.skip}function s(t,e,n,i,a){var r;if(i&&a){for(t.moveTo(e[0].x,e[0].y),r=1;r0;--r)o.canvas.lineTo(t,n[r],n[r-1],!0)}}function u(t,e,n,i,a,o){var r,u,d,c,h,f,g,p=e.length,v=i.spanGaps,m=[],b=[],x=0,y=0;for(t.beginPath(),r=0,u=p+!!o;r');for(var n=0;n'),t.data.datasets[n].label&&e.push(t.data.datasets[n].label),e.push("");return e.push(""),e.join("")}}),e.exports=function(t){function e(t,e){return t.usePointStyle?e*Math.SQRT2:t.boxWidth}function n(e,n){var i=new t.Legend({ctx:e.ctx,options:n,chart:e});r.configure(e,i,n),r.addBox(e,i),e.legend=i}var r=t.layoutService,l=o.noop;return t.Legend=a.extend({initialize:function(t){o.extend(this,t),this.legendHitBoxes=[],this.doughnutMode=!1},beforeUpdate:l,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:l,beforeSetDimensions:l,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:l,beforeBuildLabels:l,buildLabels:function(){var t=this,e=t.options.labels||{},n=o.callback(e.generateLabels,[t.chart],t)||[];e.filter&&(n=n.filter(function(n){return e.filter(n,t.chart.data)})),t.options.reverse&&n.reverse(),t.legendItems=n},afterBuildLabels:l,beforeFit:l,fit:function(){var t=this,n=t.options,a=n.labels,r=n.display,l=t.ctx,s=i.global,u=o.valueOrDefault,d=u(a.fontSize,s.defaultFontSize),c=u(a.fontStyle,s.defaultFontStyle),h=u(a.fontFamily,s.defaultFontFamily),f=o.fontString(d,c,h),g=t.legendHitBoxes=[],p=t.minSize,v=t.isHorizontal();if(v?(p.width=t.maxWidth,p.height=r?10:0):(p.width=r?10:0,p.height=t.maxHeight),r)if(l.font=f,v){var m=t.lineWidths=[0],b=t.legendItems.length?d+a.padding:0;l.textAlign="left",l.textBaseline="top",o.each(t.legendItems,function(n,i){var o=e(a,d)+d/2+l.measureText(n.text).width;m[m.length-1]+o+a.padding>=t.width&&(b+=d+a.padding,m[m.length]=t.left),g[i]={left:0,top:0,width:o,height:d},m[m.length-1]+=o+a.padding}),p.height+=b}else{var x=a.padding,y=t.columnWidths=[],k=a.padding,w=0,M=0,S=d+x;o.each(t.legendItems,function(t,n){var i=e(a,d)+d/2+l.measureText(t.text).width;M+S>p.height&&(k+=w+a.padding,y.push(w),w=0,M=0),w=Math.max(w,i),M+=S,g[n]={left:0,top:0,width:i,height:d}}),k+=w,y.push(w),p.width+=k}t.width=p.width,t.height=p.height},afterFit:l,isHorizontal:function(){return"top"===this.options.position||"bottom"===this.options.position},draw:function(){var t=this,n=t.options,a=n.labels,r=i.global,l=r.elements.line,s=t.width,u=t.lineWidths;if(n.display){var d,c=t.ctx,h=o.valueOrDefault,f=h(a.fontColor,r.defaultFontColor),g=h(a.fontSize,r.defaultFontSize),p=h(a.fontStyle,r.defaultFontStyle),v=h(a.fontFamily,r.defaultFontFamily),m=o.fontString(g,p,v);c.textAlign="left",c.textBaseline="middle",c.lineWidth=.5,c.strokeStyle=f,c.fillStyle=f,c.font=m;var b=e(a,g),x=t.legendHitBoxes,y=function(t,e,i){if(!(isNaN(b)||b<=0)){c.save(),c.fillStyle=h(i.fillStyle,r.defaultColor),c.lineCap=h(i.lineCap,l.borderCapStyle),c.lineDashOffset=h(i.lineDashOffset,l.borderDashOffset),c.lineJoin=h(i.lineJoin,l.borderJoinStyle),c.lineWidth=h(i.lineWidth,l.borderWidth),c.strokeStyle=h(i.strokeStyle,r.defaultColor);var a=0===h(i.lineWidth,l.borderWidth);if(c.setLineDash&&c.setLineDash(h(i.lineDash,l.borderDash)),n.labels&&n.labels.usePointStyle){var s=g*Math.SQRT2/2,u=s/Math.SQRT2,d=t+u,f=e+u;o.canvas.drawPoint(c,i.pointStyle,s,d,f)}else a||c.strokeRect(t,e,b,g),c.fillRect(t,e,b,g);c.restore()}},k=function(t,e,n,i){var a=g/2,o=b+a+t,r=e+a;c.fillText(n.text,o,r),n.hidden&&(c.beginPath(),c.lineWidth=2,c.moveTo(o,r),c.lineTo(o+i,r),c.stroke())},w=t.isHorizontal();d=w?{x:t.left+(s-u[0])/2,y:t.top+a.padding,line:0}:{x:t.left+a.padding,y:t.top+a.padding,line:0};var M=g+a.padding;o.each(t.legendItems,function(e,n){var i=c.measureText(e.text).width,o=b+g/2+i,r=d.x,l=d.y;w?r+o>=s&&(l=d.y+=M,d.line++,r=d.x=t.left+(s-u[d.line])/2):l+M>t.bottom&&(r=d.x=r+t.columnWidths[d.line]+a.padding,l=d.y=t.top+a.padding,d.line++),y(r,l,e),x[n].left=r,x[n].top=l,k(r,l,e,i),w?d.x+=o+a.padding:d.y+=M})}},handleEvent:function(t){var e=this,n=e.options,i="mouseup"===t.type?"click":t.type,a=!1;if("mousemove"===i){if(!n.onHover)return}else{if("click"!==i)return;if(!n.onClick)return}var o=t.x,r=t.y;if(o>=e.left&&o<=e.right&&r>=e.top&&r<=e.bottom)for(var l=e.legendHitBoxes,s=0;s=u.left&&o<=u.left+u.width&&r>=u.top&&r<=u.top+u.height){if("click"===i){n.onClick.call(e,t.native,e.legendItems[s]),a=!0;break}if("mousemove"===i){n.onHover.call(e,t.native,e.legendItems[s]),a=!0;break}}}return a}}),{id:"legend",beforeInit:function(t){var e=t.options.legend;e&&n(t,e)},beforeUpdate:function(t){var e=t.options.legend,a=t.legend;e?(o.mergeIf(e,i.global.legend),a?(r.configure(t,a,e),a.options=e):n(t,e)):a&&(r.removeBox(t,a),delete t.legend)},afterEvent:function(t,e){var n=t.legend;n&&n.handleEvent(e)}}}},{25:25,26:26,45:45}],51:[function(t,e,n){"use strict";var i=t(25),a=t(26),o=t(45);i._set("global",{title:{display:!1,fontStyle:"bold",fullWidth:!0,lineHeight:1.2,padding:10,position:"top",text:"",weight:2e3}}),e.exports=function(t){function e(e,i){var a=new t.Title({ctx:e.ctx,options:i,chart:e});n.configure(e,a,i),n.addBox(e,a),e.titleBlock=a}var n=t.layoutService,r=o.noop;return t.Title=a.extend({initialize:function(t){var e=this;o.extend(e,t),e.legendHitBoxes=[]},beforeUpdate:r,update:function(t,e,n){var i=this;return i.beforeUpdate(),i.maxWidth=t,i.maxHeight=e,i.margins=n,i.beforeSetDimensions(),i.setDimensions(),i.afterSetDimensions(),i.beforeBuildLabels(),i.buildLabels(),i.afterBuildLabels(),i.beforeFit(),i.fit(),i.afterFit(),i.afterUpdate(),i.minSize},afterUpdate:r,beforeSetDimensions:r,setDimensions:function(){var t=this;t.isHorizontal()?(t.width=t.maxWidth,t.left=0,t.right=t.width):(t.height=t.maxHeight,t.top=0,t.bottom=t.height),t.paddingLeft=0,t.paddingTop=0,t.paddingRight=0,t.paddingBottom=0,t.minSize={width:0,height:0}},afterSetDimensions:r,beforeBuildLabels:r,buildLabels:r,afterBuildLabels:r,beforeFit:r,fit:function(){var t=this,e=o.valueOrDefault,n=t.options,a=n.display,r=e(n.fontSize,i.global.defaultFontSize),l=t.minSize,s=o.isArray(n.text)?n.text.length:1,u=o.options.toLineHeight(n.lineHeight,r),d=a?s*u+2*n.padding:0;t.isHorizontal()?(l.width=t.maxWidth,l.height=d):(l.width=d,l.height=t.maxHeight),t.width=l.width,t.height=l.height},afterFit:r,isHorizontal:function(){var t=this.options.position;return"top"===t||"bottom"===t},draw:function(){var t=this,e=t.ctx,n=o.valueOrDefault,a=t.options,r=i.global;if(a.display){var l,s,u,d=n(a.fontSize,r.defaultFontSize),c=n(a.fontStyle,r.defaultFontStyle),h=n(a.fontFamily,r.defaultFontFamily),f=o.fontString(d,c,h),g=o.options.toLineHeight(a.lineHeight,d),p=g/2+a.padding,v=0,m=t.top,b=t.left,x=t.bottom,y=t.right;e.fillStyle=n(a.fontColor,r.defaultFontColor),e.font=f,t.isHorizontal()?(s=b+(y-b)/2,u=m+p,l=y-b):(s="left"===a.position?b+p:y-p,u=m+(x-m)/2,l=x-m,v=Math.PI*("left"===a.position?-.5:.5)),e.save(),e.translate(s,u),e.rotate(v),e.textAlign="center",e.textBaseline="middle";var k=a.text;if(o.isArray(k))for(var w=0,M=0;Me.max&&(e.max=i))})});e.min=isFinite(e.min)&&!isNaN(e.min)?e.min:0,e.max=isFinite(e.max)&&!isNaN(e.max)?e.max:1,this.handleTickRangeOptions()},getTickLimit:function(){var t,e=this,n=e.options.ticks;if(e.isHorizontal())t=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(e.width/50));else{var o=a.valueOrDefault(n.fontSize,i.global.defaultFontSize);t=Math.min(n.maxTicksLimit?n.maxTicksLimit:11,Math.ceil(e.height/(2*o)))}return t},handleDirectionalChanges:function(){this.isHorizontal()||this.ticks.reverse()},getLabelForIndex:function(t,e){return+this.getRightValue(this.chart.data.datasets[e].data[t])},getPixelForValue:function(t){var e,n=this,i=n.start,a=+n.getRightValue(t),o=n.end-i;return n.isHorizontal()?(e=n.left+n.width/o*(a-i),Math.round(e)):(e=n.bottom-n.height/o*(a-i),Math.round(e))},getValueForPixel:function(t){var e=this,n=e.isHorizontal(),i=n?e.width:e.height,a=(n?t-e.left:e.bottom-t)/i;return e.start+(e.end-e.start)*a},getPixelForTick:function(t){return this.getPixelForValue(this.ticksAsNumbers[t])}});t.scaleService.registerScaleType("linear",n,e)}},{25:25,34:34,45:45}],54:[function(t,e,n){"use strict";var i=t(45),a=t(34);e.exports=function(t){var e=i.noop;t.LinearScaleBase=t.Scale.extend({getRightValue:function(e){return"string"==typeof e?+e:t.Scale.prototype.getRightValue.call(this,e)},handleTickRangeOptions:function(){var t=this,e=t.options.ticks;if(e.beginAtZero){var n=i.sign(t.min),a=i.sign(t.max);n<0&&a<0?t.max=0:n>0&&a>0&&(t.min=0)}var o=void 0!==e.min||void 0!==e.suggestedMin,r=void 0!==e.max||void 0!==e.suggestedMax;void 0!==e.min?t.min=e.min:void 0!==e.suggestedMin&&(null===t.min?t.min=e.suggestedMin:t.min=Math.min(t.min,e.suggestedMin)),void 0!==e.max?t.max=e.max:void 0!==e.suggestedMax&&(null===t.max?t.max=e.suggestedMax:t.max=Math.max(t.max,e.suggestedMax)),o!==r&&t.min>=t.max&&(o?t.max=t.min+1:t.min=t.max-1),t.min===t.max&&(t.max++,e.beginAtZero||t.min--)},getTickLimit:e,handleDirectionalChanges:e,buildTicks:function(){var t=this,e=t.options.ticks,n=t.getTickLimit(),o={maxTicks:n=Math.max(2,n),min:e.min,max:e.max,stepSize:i.valueOrDefault(e.fixedStepSize,e.stepSize)},r=t.ticks=a.generators.linear(o,t);t.handleDirectionalChanges(),t.max=i.max(r),t.min=i.min(r),e.reverse?(r.reverse(),t.start=t.max,t.end=t.min):(t.start=t.min,t.end=t.max)},convertTicksToLabels:function(){var e=this;e.ticksAsNumbers=e.ticks.slice(),e.zeroLineIndex=e.ticks.indexOf(0),t.Scale.prototype.convertTicksToLabels.call(e)}})}},{34:34,45:45}],55:[function(t,e,n){"use strict";var i=t(45),a=t(34);e.exports=function(t){var e={position:"left",ticks:{callback:a.formatters.logarithmic}},n=t.Scale.extend({determineDataLimits:function(){function t(t){return s?t.xAxisID===e.id:t.yAxisID===e.id}var e=this,n=e.options,a=n.ticks,o=e.chart,r=o.data.datasets,l=i.valueOrDefault,s=e.isHorizontal();e.min=null,e.max=null,e.minNotZero=null;var u=n.stacked;if(void 0===u&&i.each(r,function(e,n){if(!u){var i=o.getDatasetMeta(n);o.isDatasetVisible(n)&&t(i)&&void 0!==i.stack&&(u=!0)}}),n.stacked||u){var d={};i.each(r,function(a,r){var l=o.getDatasetMeta(r),s=[l.type,void 0===n.stacked&&void 0===l.stack?r:"",l.stack].join(".");o.isDatasetVisible(r)&&t(l)&&(void 0===d[s]&&(d[s]=[]),i.each(a.data,function(t,i){var a=d[s],o=+e.getRightValue(t);isNaN(o)||l.data[i].hidden||(a[i]=a[i]||0,n.relativePoints?a[i]=100:a[i]+=o)}))}),i.each(d,function(t){var n=i.min(t),a=i.max(t);e.min=null===e.min?n:Math.min(e.min,n),e.max=null===e.max?a:Math.max(e.max,a)})}else i.each(r,function(n,a){var r=o.getDatasetMeta(a);o.isDatasetVisible(a)&&t(r)&&i.each(n.data,function(t,n){var i=+e.getRightValue(t);isNaN(i)||r.data[n].hidden||(null===e.min?e.min=i:ie.max&&(e.max=i),0!==i&&(null===e.minNotZero||ia?{start:e-n-5,end:e}:{start:e,end:e+n+5}}function s(t){var i,o,s,u=n(t),d=Math.min(t.height/2,t.width/2),c={r:t.width,l:0,t:t.height,b:0},h={};t.ctx.font=u.font,t._pointLabelSizes=[];var f=e(t);for(i=0;ic.r&&(c.r=v.end,h.r=g),m.startc.b&&(c.b=m.end,h.b=g)}t.setReductions(d,c,h)}function u(t){var e=Math.min(t.height/2,t.width/2);t.drawingArea=Math.round(e),t.setCenterPoint(0,0,0,0)}function d(t){return 0===t||180===t?"center":t<180?"left":"right"}function c(t,e,n,i){if(a.isArray(e))for(var o=n.y,r=1.5*i,l=0;l270||t<90)&&(n.y-=e.h)}function f(t){var i=t.ctx,o=a.valueOrDefault,r=t.options,l=r.angleLines,s=r.pointLabels;i.lineWidth=l.lineWidth,i.strokeStyle=l.color;var u=t.getDistanceFromCenterForValue(r.ticks.reverse?t.min:t.max),f=n(t);i.textBaseline="top";for(var g=e(t)-1;g>=0;g--){if(l.display){var p=t.getPointPosition(g,u);i.beginPath(),i.moveTo(t.xCenter,t.yCenter),i.lineTo(p.x,p.y),i.stroke(),i.closePath()}if(s.display){var m=t.getPointPosition(g,u+5),b=o(s.fontColor,v.defaultFontColor);i.font=f.font,i.fillStyle=b;var x=t.getIndexAngle(g),y=a.toDegrees(x);i.textAlign=d(y),h(y,t._pointLabelSizes[g],m),c(i,t.pointLabels[g]||"",m,f.size)}}}function g(t,n,i,o){var r=t.ctx;if(r.strokeStyle=a.valueAtIndexOrDefault(n.color,o-1),r.lineWidth=a.valueAtIndexOrDefault(n.lineWidth,o-1),t.options.gridLines.circular)r.beginPath(),r.arc(t.xCenter,t.yCenter,i,0,2*Math.PI),r.closePath(),r.stroke();else{var l=e(t);if(0===l)return;r.beginPath();var s=t.getPointPosition(0,i);r.moveTo(s.x,s.y);for(var u=1;u0&&n>0?e:0)},draw:function(){var t=this,e=t.options,n=e.gridLines,i=e.ticks,o=a.valueOrDefault;if(e.display){var r=t.ctx,l=this.getIndexAngle(0),s=o(i.fontSize,v.defaultFontSize),u=o(i.fontStyle,v.defaultFontStyle),d=o(i.fontFamily,v.defaultFontFamily),c=a.fontString(s,u,d);a.each(t.ticks,function(e,a){if(a>0||i.reverse){var u=t.getDistanceFromCenterForValue(t.ticksAsNumbers[a]);if(n.display&&0!==a&&g(t,n,u,a),i.display){var d=o(i.fontColor,v.defaultFontColor);if(r.font=c,r.save(),r.translate(t.xCenter,t.yCenter),r.rotate(l),i.showLabelBackdrop){var h=r.measureText(e).width;r.fillStyle=i.backdropColor,r.fillRect(-h/2-i.backdropPaddingX,-u-s/2-i.backdropPaddingY,h+2*i.backdropPaddingX,s+2*i.backdropPaddingY)}r.textAlign="center",r.textBaseline="middle",r.fillStyle=d,r.fillText(e,0,-u),r.restore()}}}),(e.angleLines.display||e.pointLabels.display)&&f(t)}}});t.scaleService.registerScaleType("radialLinear",b,m)}},{25:25,34:34,45:45}],57:[function(t,e,n){"use strict";function i(t,e){return t-e}function a(t){var e,n,i,a={},o=[];for(e=0,n=t.length;ee&&l=0&&r<=l;){if(i=r+l>>1,a=t[i-1]||null,o=t[i],!a)return{lo:null,hi:o};if(o[e]n))return{lo:a,hi:o};l=i-1}}return{lo:o,hi:null}}function l(t,e,n,i){var a=r(t,e,n),o=a.lo?a.hi?a.lo:t[t.length-2]:t[0],l=a.lo?a.hi?a.hi:t[t.length-1]:t[1],s=l[e]-o[e],u=s?(n-o[e])/s:0,d=(l[i]-o[i])*u;return o[i]+d}function s(t,e){var n=e.parser,i=e.parser||e.format;return"function"==typeof n?n(t):"string"==typeof t&&"string"==typeof i?m(t,i):(t instanceof m||(t=m(t)),t.isValid()?t:"function"==typeof i?i(t):t)}function u(t,e){if(x.isNullOrUndef(t))return null;var n=e.options.time,i=s(e.getRightValue(t),n);return i.isValid()?(n.round&&i.startOf(n.round),i.valueOf()):null}function d(t,e,n,i){var a,o,r,l=e-t,s=w[n],u=s.size,d=s.steps;if(!d)return Math.ceil(l/((i||1)*u));for(a=0,o=d.length;a=M.indexOf(e);a--)if(o=M[a],w[o].common&&r.as(o)>=t.length)return o;return M[e?M.indexOf(e):0]}function f(t){for(var e=M.indexOf(t)+1,n=M.length;e1?e[1]:i,r=e[0],s=(l(t,"time",o,"pos")-l(t,"time",r,"pos"))/2),a.time.max||(o=e[e.length-1],r=e.length>1?e[e.length-2]:n,u=(l(t,"time",o,"pos")-l(t,"time",r,"pos"))/2)),{left:s,right:u}}function v(t,e){var n,i,a,o,r=[];for(n=0,i=t.length;n=a&&n<=r&&c.push(n);return i.min=a,i.max=r,i._unit=s.unit||h(c,s.minUnit,i.min,i.max),i._majorUnit=f(i._unit),i._table=o(i._timestamps.data,a,r,l.distribution),i._offsets=p(i._table,c,a,r,l),v(c,i._majorUnit)},getLabelForIndex:function(t,e){var n=this,i=n.chart.data,a=n.options.time,o=i.labels&&t=0&&t>> 32, but since JS converts + // bitwise-op args to 32 bits, we need to simulate this by arithmetic operators + M[N-1][14] = ((msg.length-1)*8) / Math.pow(2, 32); M[N-1][14] = Math.floor(M[N-1][14]); + M[N-1][15] = ((msg.length-1)*8) & 0xffffffff; + + + // HASH COMPUTATION [§6.1.2] + + var W = new Array(64); var a, b, c, d, e, f, g, h; + for (var i=0; i>> n) | (x << (32-n)); +}; + +/** + * Logical functions [§4.1.2]. + * @private + */ +Sha256.Σ0 = function(x) { return Sha256.ROTR(2, x) ^ Sha256.ROTR(13, x) ^ Sha256.ROTR(22, x); }; +Sha256.Σ1 = function(x) { return Sha256.ROTR(6, x) ^ Sha256.ROTR(11, x) ^ Sha256.ROTR(25, x); }; +Sha256.σ0 = function(x) { return Sha256.ROTR(7, x) ^ Sha256.ROTR(18, x) ^ (x>>>3); }; +Sha256.σ1 = function(x) { return Sha256.ROTR(17, x) ^ Sha256.ROTR(19, x) ^ (x>>>10); }; +Sha256.Ch = function(x, y, z) { return (x & y) ^ (~x & z); }; +Sha256.Maj = function(x, y, z) { return (x & y) ^ (x & z) ^ (y & z); }; + + +/** + * Hexadecimal representation of a number. + * @private + */ +Sha256.toHexStr = function(n) { + // note can't use toString(16) as it is implementation-dependant, + // and in IE returns signed numbers when used on full words + var s="", v; + for (var i=7; i>=0; i--) { v = (n>>>(i*4)) & 0xf; s += v.toString(16); } + return s; +}; + + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + +/** Extend String object with method to encode multi-byte string to utf8 + * - monsur.hossa.in/2012/07/20/utf-8-in-javascript.html */ +if (typeof String.prototype.utf8Encode == 'undefined') { + String.prototype.utf8Encode = function() { + return unescape( encodeURIComponent( this ) ); + }; +} + +/** Extend String object with method to decode utf8 string to multi-byte */ +if (typeof String.prototype.utf8Decode == 'undefined') { + String.prototype.utf8Decode = function() { + try { + return decodeURIComponent( escape( this ) ); + } catch (e) { + return this; // invalid UTF-8? return as-is + } + }; +} + + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +if (typeof module != 'undefined' && module.exports) module.exports = Sha256; // CommonJs export +if (typeof define == 'function' && define.amd) define([], function() { return Sha256; }); // AMD + +/* + * A JavaScript implementation of the RSA Data Security, Inc. MD4 Message + * Digest Algorithm, as defined in RFC 1320. + * Version 2.1 Copyright (C) Jerrad Pierce, Paul Johnston 1999 - 2002. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + * See http://pajhome.org.uk/crypt/md5 for more info. + */ + +/* + * Configurable variables. You may need to tweak these to be compatible with + * the server-side, but the defaults work in most cases. + */ +var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ +var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ +var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ + +/* + * These are the functions you'll usually want to call + */ +function hex_md4(s){ return binl2hex(core_md4(str2binl(s), s.length * chrsz));} +function b64_md4(s){ return binl2b64(core_md4(str2binl(s), s.length * chrsz));} +function str_md4(s){ return binl2str(core_md4(str2binl(s), s.length * chrsz));} +function hex_hmac_md4(key, data) { return binl2hex(core_hmac_md4(key, data)); } +function b64_hmac_md4(key, data) { return binl2b64(core_hmac_md4(key, data)); } +function str_hmac_md4(key, data) { return binl2str(core_hmac_md4(key, data)); } + +/* + * Perform a simple self-test to see if the VM is working + */ +function md4_vm_test() +{ + return hex_md4("abc") == "a448017aaf21d8525fc10ae87aa6729d"; +} + +/* + * Calculate the MD4 of an array of little-endian words, and a bit length + */ +function core_md4(x, len) +{ + /* append padding */ + x[len >> 5] |= 0x80 << (len % 32); + x[(((len + 64) >>> 9) << 4) + 14] = len; + + var a = 1732584193; + var b = -271733879; + var c = -1732584194; + var d = 271733878; + + for(var i = 0; i < x.length; i += 16) + { + var olda = a; + var oldb = b; + var oldc = c; + var oldd = d; + + a = md4_ff(a, b, c, d, x[i+ 0], 3 ); + d = md4_ff(d, a, b, c, x[i+ 1], 7 ); + c = md4_ff(c, d, a, b, x[i+ 2], 11); + b = md4_ff(b, c, d, a, x[i+ 3], 19); + a = md4_ff(a, b, c, d, x[i+ 4], 3 ); + d = md4_ff(d, a, b, c, x[i+ 5], 7 ); + c = md4_ff(c, d, a, b, x[i+ 6], 11); + b = md4_ff(b, c, d, a, x[i+ 7], 19); + a = md4_ff(a, b, c, d, x[i+ 8], 3 ); + d = md4_ff(d, a, b, c, x[i+ 9], 7 ); + c = md4_ff(c, d, a, b, x[i+10], 11); + b = md4_ff(b, c, d, a, x[i+11], 19); + a = md4_ff(a, b, c, d, x[i+12], 3 ); + d = md4_ff(d, a, b, c, x[i+13], 7 ); + c = md4_ff(c, d, a, b, x[i+14], 11); + b = md4_ff(b, c, d, a, x[i+15], 19); + + a = md4_gg(a, b, c, d, x[i+ 0], 3 ); + d = md4_gg(d, a, b, c, x[i+ 4], 5 ); + c = md4_gg(c, d, a, b, x[i+ 8], 9 ); + b = md4_gg(b, c, d, a, x[i+12], 13); + a = md4_gg(a, b, c, d, x[i+ 1], 3 ); + d = md4_gg(d, a, b, c, x[i+ 5], 5 ); + c = md4_gg(c, d, a, b, x[i+ 9], 9 ); + b = md4_gg(b, c, d, a, x[i+13], 13); + a = md4_gg(a, b, c, d, x[i+ 2], 3 ); + d = md4_gg(d, a, b, c, x[i+ 6], 5 ); + c = md4_gg(c, d, a, b, x[i+10], 9 ); + b = md4_gg(b, c, d, a, x[i+14], 13); + a = md4_gg(a, b, c, d, x[i+ 3], 3 ); + d = md4_gg(d, a, b, c, x[i+ 7], 5 ); + c = md4_gg(c, d, a, b, x[i+11], 9 ); + b = md4_gg(b, c, d, a, x[i+15], 13); + + a = md4_hh(a, b, c, d, x[i+ 0], 3 ); + d = md4_hh(d, a, b, c, x[i+ 8], 9 ); + c = md4_hh(c, d, a, b, x[i+ 4], 11); + b = md4_hh(b, c, d, a, x[i+12], 15); + a = md4_hh(a, b, c, d, x[i+ 2], 3 ); + d = md4_hh(d, a, b, c, x[i+10], 9 ); + c = md4_hh(c, d, a, b, x[i+ 6], 11); + b = md4_hh(b, c, d, a, x[i+14], 15); + a = md4_hh(a, b, c, d, x[i+ 1], 3 ); + d = md4_hh(d, a, b, c, x[i+ 9], 9 ); + c = md4_hh(c, d, a, b, x[i+ 5], 11); + b = md4_hh(b, c, d, a, x[i+13], 15); + a = md4_hh(a, b, c, d, x[i+ 3], 3 ); + d = md4_hh(d, a, b, c, x[i+11], 9 ); + c = md4_hh(c, d, a, b, x[i+ 7], 11); + b = md4_hh(b, c, d, a, x[i+15], 15); + + a = safe_add(a, olda); + b = safe_add(b, oldb); + c = safe_add(c, oldc); + d = safe_add(d, oldd); + + } + return Array(a, b, c, d); + +} + +/* + * These functions implement the basic operation for each round of the + * algorithm. + */ +function md4_cmn(q, a, b, x, s, t) +{ + return safe_add(rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b); +} +function md4_ff(a, b, c, d, x, s) +{ + return md4_cmn((b & c) | ((~b) & d), a, 0, x, s, 0); +} +function md4_gg(a, b, c, d, x, s) +{ + return md4_cmn((b & c) | (b & d) | (c & d), a, 0, x, s, 1518500249); +} +function md4_hh(a, b, c, d, x, s) +{ + return md4_cmn(b ^ c ^ d, a, 0, x, s, 1859775393); +} + +/* + * Calculate the HMAC-MD4, of a key and some data + */ +function core_hmac_md4(key, data) +{ + var bkey = str2binl(key); + if(bkey.length > 16) bkey = core_md4(bkey, key.length * chrsz); + + var ipad = Array(16), opad = Array(16); + for(var i = 0; i < 16; i++) + { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + + var hash = core_md4(ipad.concat(str2binl(data)), 512 + data.length * chrsz); + return core_md4(opad.concat(hash), 512 + 128); +} + +/* + * Add integers, wrapping at 2^32. This uses 16-bit operations internally + * to work around bugs in some JS interpreters. + */ +function safe_add(x, y) +{ + var lsw = (x & 0xFFFF) + (y & 0xFFFF); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xFFFF); +} + +/* + * Bitwise rotate a 32-bit number to the left. + */ +function rol(num, cnt) +{ + return (num << cnt) | (num >>> (32 - cnt)); +} + +/* + * Convert a string to an array of little-endian words + * If chrsz is ASCII, characters >255 have their hi-byte silently ignored. + */ +function str2binl(str) +{ + var bin = Array(); + var mask = (1 << chrsz) - 1; + for(var i = 0; i < str.length * chrsz; i += chrsz) + bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32); + return bin; +} + +/* + * Convert an array of little-endian words to a string + */ +function binl2str(bin) +{ + var str = ""; + var mask = (1 << chrsz) - 1; + for(var i = 0; i < bin.length * 32; i += chrsz) + str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask); + return str; +} + +/* + * Convert an array of little-endian words to a hex string. + */ +function binl2hex(binarray) +{ + var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; + var str = ""; + for(var i = 0; i < binarray.length * 4; i++) + { + str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + + hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF); + } + return str; +} + +/* + * Convert an array of little-endian words to a base-64 string + */ +function binl2b64(binarray) +{ + var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var str = ""; + for(var i = 0; i < binarray.length * 4; i += 3) + { + var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16) + | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 ) + | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF); + for(var j = 0; j < 4; j++) + { + if(i * 8 + j * 6 > binarray.length * 32) str += b64pad; + else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); + } + } + return str; +} +function adLogin(){ + if(document.loginForm.pw.value != ""){ + document.loginForm.pw.value = hex_md4(document.loginForm.pw.value).substring(0,20) + document.loginForm.action = "/admins/login.jsp"; + document.loginForm.submit(); + } +} + +function adLogin_chk(){ + var pass = $("#pw").val(); + if(pass != ""){ + $("#pw").val(hex_md4(pass).substring(0,20)); + $("#passwd").val(hex_sha256(pass).substring(0,20)); + + var options = { + url : context + "/admins/main/login_auth.json", + contentType : "application/x-www-form-urlencoded;charset=UTF-8", + type : "post", + dataType : "json", + async : false, + success : function(json){ + if (json.isAuth === false) { + alert("접속권한이 없습니다!"); + } else { + if (json.loginSuccess) { + $("#loginForm").attr("onsubmit", "return false;"); + $(location).attr("href", context + "/index.do"); + } else { + alert("패스워드를 확인하세요."); + } + } + }, + error : function(response){ + alert("로그인 중에 오류가 발생하였습니다. 다시 시도해주세요"); + } + }; + + try{ + $("#loginForm").ajaxSubmit(options); + }catch(e){ + alert("error= " + e); + } + } +} \ No newline at end of file diff --git a/src/main/webapp/js/admins/board.js b/src/main/webapp/js/admins/board.js new file mode 100644 index 0000000..edd981b --- /dev/null +++ b/src/main/webapp/js/admins/board.js @@ -0,0 +1,49 @@ +/* +* Խ ũƮ +* 2006-11-01 ljy +*/ + +/* +* ó +*/ +function trim(astring) +{ + var result = astring; + + while (result.length > 0 && result.charAt(0) <= ' ') { + result = result.substring(1, result.length); + } + while (result.length > 0 && result.charAt(result.length - 1) <= ' ') { + result = result.substring(0, result.length - 1); + } + + return result; +} + +/* +* Խ Ͻ üũ +*/ +function checkVal() +{ + + var result = true; + + if (trim(document.writeForm.subject.value) == "") + { + alert(" Էϼ."); + document.writeForm.subject.value = ''; + document.writeForm.subject.focus(); + result = false; + } + + else if (trim(document.writeForm.contents.value) == "") + { + alert(" Էϼ."); + document.writeForm.contents.value = ''; + document.writeForm.contents.focus(); + result = false; + } + + return result; +} + diff --git a/src/main/webapp/js/admins/chlog.js b/src/main/webapp/js/admins/chlog.js new file mode 100644 index 0000000..f2dcaa6 --- /dev/null +++ b/src/main/webapp/js/admins/chlog.js @@ -0,0 +1,21 @@ + + /************************************************************************************************* + * 유통/공급 통계 스크립트 + * 2006-12-14 ljy + *************************************************************************************************/ + +function logOpen(mId) { + logWin = window.open(context + "/admins/chLog/download_view.do?mId=" + mId, 'logWin', 'scrollbars=yes,titlebar=no,width=400,height=265,left=100,top=0', true); + logWin.focus(); +} + +function liqLogOpen(idx,type) { + logWin = window.open(context + "/admins/chLog/download_liq.do?idx=" + idx + "&type=" + type , 'logWin', 'scrollbars=yes,titlebar=no,width=400,height=265,left=100,top=0', true); + logWin.focus(); +} + +//function purposeOpen(code) { +// purposeWin = window.open("purpose_view.jsp?pcode=" + code, 'purposeWin', 'scrollbars=yes,titlebar=no,width=750,height=300,left=100,top=0', true); +// purposeWin.focus(); +// //500,256 +//} diff --git a/src/main/webapp/js/admins/common.js b/src/main/webapp/js/admins/common.js new file mode 100644 index 0000000..f212d2d --- /dev/null +++ b/src/main/webapp/js/admins/common.js @@ -0,0 +1,166 @@ + + /************************************************************************************************* + * 공통 스크립트 + * 2006-10-23 ljy + *************************************************************************************************/ + +/** 데이타로딩중 팝업위치 **/ +var leftVal = (screen.width)/2 -100; +var topVal = (screen.height)/2 -100; + + function goUrl(pId, menuId) { + parent.mainFrame.iframeMain.location.href = parent.context + "/admins/" + menuId + "/" + pId + ".do"; + window.location.href= parent.context + "/admins/" + menuId + "/left.do?pId=" + pId + "&menuId=" + menuId; + } + +// 예전꺼 +// function search(search) +// { +// //alert("search"); +// var searchTitle = document.searchForm.searchTitle.value; +// var searchValue = search; +// document.searchForm.action = "/admins/user/00.jsp?searchTitle="+searchTitle+"&search_value="+searchValue; +// document.searchForm.submit +// +// } + +// function convertExcel() +// { +// //alert("test222"); +// //alert("######"+window.location.href); +// window.location.href = "/admins/comm/convertExcel.jsp?" + window.location.href ; +// } + + function convertExcelAll() + { + //alert("######"+window.location.href); + window.location.href = "/admins/comm/convertExcel.jsp?http://localhost/admins/chLog/00_ExcelAll.jsp" ; + + } + + function convertExcel_CH_Page(pIndex) + { + var searchTitle = document.searchForm.searchTitle.value; + var searchValue = document.searchForm.search_value.value; + + + hiddenFrame.location.href="00_downloadpage_CH.jsp?page="+pIndex+"&searchTitle="+searchTitle+"&search_value="+searchValue; + } + + + function convertExcel_CH_All() + { + var searchTitle = document.searchForm.searchTitle.value; + var searchValue = document.searchForm.search_value.value; + //openWaitWin(); + + //hiddenFrame.location.href="00_downloadlist.jsp?searchTitle="+searchTitle+"&search_value="+searchValue; + + document.searchForm.action = "/admins/comm/00_listExcel_CH.jsp?searchTitle="+searchTitle+"&search_value="+searchValue; + document.searchForm.submit(); + + } + + function convertExcel_Page(pIndex) + { + var searchTitle = document.searchForm.searchTitle.value; + var searchValue = document.searchForm.search_value.value; + + + hiddenFrame.location.href="00_downloadpage.jsp?page="+pIndex+"&searchTitle="+searchTitle+"&search_value="+searchValue; + } + + function convertExcel_Allpop() + { + + if(window.location.href="http://www.geoinfo.or.kr/admins/chLog/purpose_view.jsp"){ + //alert("ok"); + var searchTitle = "0"; + var searchValue = ""; + //document.purposeView.action = "/twat.jsp + } + } +//엑셀 전체리스트 예전 +// function convertExcel_All() +// { +// //alert("11"); +// //if(window.location.href="http://localhost/admins/user/01.jsp"){ +// //alert(window.location.href); +// if(window.location.href="http://localhost/admins/user/00.jsp"){ +// var searchTitle = document.searchForm.searchTitle.value; +// var searchValue = document.searchForm.search_value.value; +// //alert("searchTitle ="+searchTitle+" / "+"searchValue ="+searchValue); +// document.searchForm.action = "/admins/comm/00_listExcel.jsp?searchTitle="+searchTitle+"&search_value="+searchValue; +// +// }else if(window.location.href="http://www.geoinfo.or.kr/admins/chLog/00.jsp"){ +// //alert("11"); +// var year = document.searchForm.year.value; +// var month = document.searchForm.month.value; +// +// //alert("Year ="+year+" / "+"Month ="+month); +// document.searchForm.action = "/admins/comm/00_listExcel.jsp?year="+year+"&month="+month; +// +// } +// document.searchForm.submit(); +// +// } +// //공급자 엑셀 리스트 예전 +// function convertExcel_All2() +// { +// //alert("공급자"); +// var searchTitle = document.searchForm.searchTitle.value; +// var searchValue = document.searchForm.search_value.value; +// //alert("searchTitle ="+searchTitle+" / "+"searchValue ="+searchValue); +// document.searchForm.action = "/admins/comm/01_listExcel.jsp?searchTitle="+searchTitle+"&search_value="+searchValue; +// document.searchForm.submit(); +// } +// //발주처 엑셀 리스트 예전 +// function convertExcel_All3() +// { +// //alert("발주처"); +// var searchTitle = document.searchForm.searchTitle.value; +// var searchValue = document.searchForm.search_value.value; +// //alert("searchTitle ="+searchTitle+" / "+"searchValue ="+searchValue); +// document.searchForm.action = "/admins/comm/02_listExcel.jsp?searchTitle="+searchTitle+"&search_value="+searchValue; +// document.searchForm.submit(); +// } + //유통 날짜별 +//function convertExcel_sup(){ +// +// var searchYear = document.searchForm.syear.value; +// var searchMonth = document.searchForm.smonth.value; +// //alert("searchYear ="+searchYear+" / "+"searchMonth ="+searchMonth); +// var cookie_name = 'popup2'; +// var temp = "/admins/comm/listExcel_sup.jsp?searchYear="+searchYear+"&searchMonth="+searchMonth; +// window.open(temp,cookie_name,'scrollbars=no,width=0,height=0,left=500 top=200', true); +// //document.searchForm.action = "/admins/comm/listExcel_sup.jsp?searchTitle="+searchTitle+"&search_value="+searchValue; +// //document.searchForm.submit(); +//} +//유통 사업별 +function convertExcel_sup_saup(){ + + var saupName = document.listForm.searchKey.value; + //alert("saupName ="+saupName); + var cookie_name = 'popup2'; + var temp = "/admins/comm/listExcel_sup_saup.jsp?saupName="+saupName; + window.open(temp,cookie_name,'scrollbars=no,width=0,height=0,left=500 top=200', true); + //document.searchForm.action = "/admins/comm/listExcel_sup.jsp?searchTitle="+searchTitle+"&search_value="+searchValue; + //document.searchForm.submit(); +} +// 유통/공급 통계분석>목적별 +//function convertExcel_sup_purp(){ +// var cookie_name = 'popup2'; +// var temp = "/admins/comm/listExcel_sup_purp.jsp"; +// window.open(temp, cookie_name, 'scrollbars=no,width=0,height=0,left=500 top=200', true); +//} +/** 데이타로딩중 팝업열기 **/ +function openWaitWin(){ + waitWin = window.open("/home/wait.jsp",'waitWin','scrollbars=no,titlebar=no,width=300,height=130,left=' + leftVal + ',top=' + topVal, true); +} + +/** 데이타로딩중 팝업닫기 **/ +function closeWaitWin(){ + //if(waitWin != null){ + waitWin.close(); + //} +} diff --git a/src/main/webapp/js/admins/graph.js b/src/main/webapp/js/admins/graph.js new file mode 100644 index 0000000..bef304d --- /dev/null +++ b/src/main/webapp/js/admins/graph.js @@ -0,0 +1,67 @@ + + /************************************************************************************************* + * 그래프 관련 스크립트 + * 2006-10-23 ljy + *************************************************************************************************/ +/* +//기존 java applet 차트는 동작하지 않아서 주석 20180614 홍성욱 +function drawGraph(xCount,yMaxValue,yInterVal,xValues,barValues, context) +{ + var url = location.protocol + "//" + location.host + context + "/resource/barLineChart/"; + //document.write(''); + document.write(''); + document.write(''); + document.write(''); + //document.write(''); + //document.write(''); + document.write(''); + document.write(''); + document.write(''); + //document.write(''); + document.write(''); + document.write(''); + document.write(''); + document.write(''); + document.write(''); + + var xVal,bVal; + xVal = xValues.split("^"); + bVal = barValues.split("^"); + + for(i = 0; i'); + document.write(''); + } + document.write(''); +} +*/ +//chart.js 그래프 그리기 20180614 홍성욱 +function drawGraph(xCount,yMaxValue,yInterVal,xValues,barValues, context){ + var xVal,bVal; + xVal = xValues.split("^"); + bVal = barValues.split("^"); + var barChartData = { + labels: xVal, + datasets: [{ + fillColor: "rgba(150,200,250,0.5)", + strokeColor: "rgba(150,200,250,0.8)", + highlightFill: "rgba(150,200,250,0.75)", + highlightStroke: "rgba(150,200,250,1)", + data:bVal + }] + }; + var options = { + animation: false, + legend: { + display: false + } + }; + var ctx = $('#chart').get(0).getContext("2d"); + window.theChart = new Chart(ctx, { + type: 'bar', + data: barChartData, + options: options + }); + +} diff --git a/src/main/webapp/js/admins/passChange.js b/src/main/webapp/js/admins/passChange.js new file mode 100644 index 0000000..938a9c3 --- /dev/null +++ b/src/main/webapp/js/admins/passChange.js @@ -0,0 +1,396 @@ + +/** + * SHA-256 hash function reference implementation. + * + * @namespace + */ +var Sha256 = {}; + + +/** + * Generates SHA-256 hash of string. + * + * @param {string} msg - String to be hashed + * @returns {string} Hash of msg as hex character string + */ + +function hex_sha256(msg) { + // convert string to UTF-8, as SHA only deals with byte-streams + msg = msg.utf8Encode(); + + // constants [§4.2.2] + var K = [ + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 ]; + // initial hash value [§5.3.1] + var H = [ + 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 ]; + + // PREPROCESSING + + msg += String.fromCharCode(0x80); // add trailing '1' bit (+ 0's padding) to string [§5.1.1] + + // convert string msg into 512-bit/16-integer blocks arrays of ints [§5.2.1] + var l = msg.length/4 + 2; // length (in 32-bit integers) of msg + ‘1’ + appended length + var N = Math.ceil(l/16); // number of 16-integer-blocks required to hold 'l' ints + var M = new Array(N); + + for (var i=0; i>> 32, but since JS converts + // bitwise-op args to 32 bits, we need to simulate this by arithmetic operators + M[N-1][14] = ((msg.length-1)*8) / Math.pow(2, 32); M[N-1][14] = Math.floor(M[N-1][14]); + M[N-1][15] = ((msg.length-1)*8) & 0xffffffff; + + + // HASH COMPUTATION [§6.1.2] + + var W = new Array(64); var a, b, c, d, e, f, g, h; + for (var i=0; i>> n) | (x << (32-n)); +}; + +/** + * Logical functions [짠4.1.2]. + * @private + */ +Sha256.Σ0 = function(x) { return Sha256.ROTR(2, x) ^ Sha256.ROTR(13, x) ^ Sha256.ROTR(22, x); }; +Sha256.Σ1 = function(x) { return Sha256.ROTR(6, x) ^ Sha256.ROTR(11, x) ^ Sha256.ROTR(25, x); }; +Sha256.σ0 = function(x) { return Sha256.ROTR(7, x) ^ Sha256.ROTR(18, x) ^ (x>>>3); }; +Sha256.σ1 = function(x) { return Sha256.ROTR(17, x) ^ Sha256.ROTR(19, x) ^ (x>>>10); }; +Sha256.Ch = function(x, y, z) { return (x & y) ^ (~x & z); }; +Sha256.Maj = function(x, y, z) { return (x & y) ^ (x & z) ^ (y & z); }; + + +/** + * Hexadecimal representation of a number. + * @private + */ +Sha256.toHexStr = function(n) { + // note can't use toString(16) as it is implementation-dependant, + // and in IE returns signed numbers when used on full words + var s="", v; + for (var i=7; i>=0; i--) { v = (n>>>(i*4)) & 0xf; s += v.toString(16); } + return s; +}; + + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + +/** Extend String object with method to encode multi-byte string to utf8 + * - monsur.hossa.in/2012/07/20/utf-8-in-javascript.html */ +if (typeof String.prototype.utf8Encode == 'undefined') { + String.prototype.utf8Encode = function() { + return unescape( encodeURIComponent( this ) ); + }; +} + +/** Extend String object with method to decode utf8 string to multi-byte */ +if (typeof String.prototype.utf8Decode == 'undefined') { + String.prototype.utf8Decode = function() { + try { + return decodeURIComponent( escape( this ) ); + } catch (e) { + return this; // invalid UTF-8? return as-is + } + }; +} + + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +if (typeof module != 'undefined' && module.exports) module.exports = Sha256; // CommonJs export +if (typeof define == 'function' && define.amd) define([], function() { return Sha256; }); // AMD + +/* + * A JavaScript implementation of the RSA Data Security, Inc. MD4 Message + * Digest Algorithm, as defined in RFC 1320. + * Version 2.1 Copyright (C) Jerrad Pierce, Paul Johnston 1999 - 2002. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + * See http://pajhome.org.uk/crypt/md5 for more info. + */ + +/* + * Configurable variables. You may need to tweak these to be compatible with + * the server-side, but the defaults work in most cases. + */ + +// +var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ +var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ +var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ + +/* + * These are the functions you'll usually want to call + */ +function hex_md4(s){ return binl2hex(core_md4(str2binl(s), s.length * chrsz));} +function b64_md4(s){ return binl2b64(core_md4(str2binl(s), s.length * chrsz));} +function str_md4(s){ return binl2str(core_md4(str2binl(s), s.length * chrsz));} +function hex_hmac_md4(key, data) { return binl2hex(core_hmac_md4(key, data)); } +function b64_hmac_md4(key, data) { return binl2b64(core_hmac_md4(key, data)); } +function str_hmac_md4(key, data) { return binl2str(core_hmac_md4(key, data)); } + +/* + * Perform a simple self-test to see if the VM is working + */ +function md4_vm_test() +{ + return hex_md4("abc") == "a448017aaf21d8525fc10ae87aa6729d"; +} + +/* + * Calculate the MD4 of an array of little-endian words, and a bit length + */ +function core_md4(x, len) +{ + /* append padding */ + x[len >> 5] |= 0x80 << (len % 32); + x[(((len + 64) >>> 9) << 4) + 14] = len; + + var a = 1732584193; + var b = -271733879; + var c = -1732584194; + var d = 271733878; + + for(var i = 0; i < x.length; i += 16) + { + var olda = a; + var oldb = b; + var oldc = c; + var oldd = d; + + a = md4_ff(a, b, c, d, x[i+ 0], 3 ); + d = md4_ff(d, a, b, c, x[i+ 1], 7 ); + c = md4_ff(c, d, a, b, x[i+ 2], 11); + b = md4_ff(b, c, d, a, x[i+ 3], 19); + a = md4_ff(a, b, c, d, x[i+ 4], 3 ); + d = md4_ff(d, a, b, c, x[i+ 5], 7 ); + c = md4_ff(c, d, a, b, x[i+ 6], 11); + b = md4_ff(b, c, d, a, x[i+ 7], 19); + a = md4_ff(a, b, c, d, x[i+ 8], 3 ); + d = md4_ff(d, a, b, c, x[i+ 9], 7 ); + c = md4_ff(c, d, a, b, x[i+10], 11); + b = md4_ff(b, c, d, a, x[i+11], 19); + a = md4_ff(a, b, c, d, x[i+12], 3 ); + d = md4_ff(d, a, b, c, x[i+13], 7 ); + c = md4_ff(c, d, a, b, x[i+14], 11); + b = md4_ff(b, c, d, a, x[i+15], 19); + + a = md4_gg(a, b, c, d, x[i+ 0], 3 ); + d = md4_gg(d, a, b, c, x[i+ 4], 5 ); + c = md4_gg(c, d, a, b, x[i+ 8], 9 ); + b = md4_gg(b, c, d, a, x[i+12], 13); + a = md4_gg(a, b, c, d, x[i+ 1], 3 ); + d = md4_gg(d, a, b, c, x[i+ 5], 5 ); + c = md4_gg(c, d, a, b, x[i+ 9], 9 ); + b = md4_gg(b, c, d, a, x[i+13], 13); + a = md4_gg(a, b, c, d, x[i+ 2], 3 ); + d = md4_gg(d, a, b, c, x[i+ 6], 5 ); + c = md4_gg(c, d, a, b, x[i+10], 9 ); + b = md4_gg(b, c, d, a, x[i+14], 13); + a = md4_gg(a, b, c, d, x[i+ 3], 3 ); + d = md4_gg(d, a, b, c, x[i+ 7], 5 ); + c = md4_gg(c, d, a, b, x[i+11], 9 ); + b = md4_gg(b, c, d, a, x[i+15], 13); + + a = md4_hh(a, b, c, d, x[i+ 0], 3 ); + d = md4_hh(d, a, b, c, x[i+ 8], 9 ); + c = md4_hh(c, d, a, b, x[i+ 4], 11); + b = md4_hh(b, c, d, a, x[i+12], 15); + a = md4_hh(a, b, c, d, x[i+ 2], 3 ); + d = md4_hh(d, a, b, c, x[i+10], 9 ); + c = md4_hh(c, d, a, b, x[i+ 6], 11); + b = md4_hh(b, c, d, a, x[i+14], 15); + a = md4_hh(a, b, c, d, x[i+ 1], 3 ); + d = md4_hh(d, a, b, c, x[i+ 9], 9 ); + c = md4_hh(c, d, a, b, x[i+ 5], 11); + b = md4_hh(b, c, d, a, x[i+13], 15); + a = md4_hh(a, b, c, d, x[i+ 3], 3 ); + d = md4_hh(d, a, b, c, x[i+11], 9 ); + c = md4_hh(c, d, a, b, x[i+ 7], 11); + b = md4_hh(b, c, d, a, x[i+15], 15); + + a = safe_add(a, olda); + b = safe_add(b, oldb); + c = safe_add(c, oldc); + d = safe_add(d, oldd); + + } + return Array(a, b, c, d); + +} + +/* + * These functions implement the basic operation for each round of the + * algorithm. + */ +function md4_cmn(q, a, b, x, s, t) +{ + return safe_add(rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b); +} +function md4_ff(a, b, c, d, x, s) +{ + return md4_cmn((b & c) | ((~b) & d), a, 0, x, s, 0); +} +function md4_gg(a, b, c, d, x, s) +{ + return md4_cmn((b & c) | (b & d) | (c & d), a, 0, x, s, 1518500249); +} +function md4_hh(a, b, c, d, x, s) +{ + return md4_cmn(b ^ c ^ d, a, 0, x, s, 1859775393); +} + +/* + * Calculate the HMAC-MD4, of a key and some data + */ +function core_hmac_md4(key, data) +{ + var bkey = str2binl(key); + if(bkey.length > 16) bkey = core_md4(bkey, key.length * chrsz); + + var ipad = Array(16), opad = Array(16); + for(var i = 0; i < 16; i++) + { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + + var hash = core_md4(ipad.concat(str2binl(data)), 512 + data.length * chrsz); + return core_md4(opad.concat(hash), 512 + 128); +} + +/* + * Add integers, wrapping at 2^32. This uses 16-bit operations internally + * to work around bugs in some JS interpreters. + */ +function safe_add(x, y) +{ + var lsw = (x & 0xFFFF) + (y & 0xFFFF); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xFFFF); +} + +/* + * Bitwise rotate a 32-bit number to the left. + */ +function rol(num, cnt) +{ + return (num << cnt) | (num >>> (32 - cnt)); +} + +/* + * Convert a string to an array of little-endian words + * If chrsz is ASCII, characters >255 have their hi-byte silently ignored. + */ +function str2binl(str) +{ + var bin = Array(); + var mask = (1 << chrsz) - 1; + for(var i = 0; i < str.length * chrsz; i += chrsz) + bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32); + return bin; +} + +/* + * Convert an array of little-endian words to a string + */ +function binl2str(bin) +{ + var str = ""; + var mask = (1 << chrsz) - 1; + for(var i = 0; i < bin.length * 32; i += chrsz) + str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask); + return str; +} + +/* + * Convert an array of little-endian words to a hex string. + */ +function binl2hex(binarray) +{ + var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; + var str = ""; + for(var i = 0; i < binarray.length * 4; i++) + { + str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + + hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF); + } + return str; +} + +/* + * Convert an array of little-endian words to a base-64 string + */ +function binl2b64(binarray) +{ + var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var str = ""; + for(var i = 0; i < binarray.length * 4; i += 3) + { + var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16) + | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 ) + | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF); + for(var j = 0; j < 4; j++) + { + if(i * 8 + j * 6 > binarray.length * 32) str += b64pad; + else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); + } + } + return str; +} diff --git a/src/main/webapp/js/admins/pds.js b/src/main/webapp/js/admins/pds.js new file mode 100644 index 0000000..145f40c --- /dev/null +++ b/src/main/webapp/js/admins/pds.js @@ -0,0 +1,70 @@ +/* +* 공지사항 관리 스크립트 +* 2006-11-01 ljy +*/ + +/* +* 공백처리 +*/ +function trim(astring) +{ + var result = astring; + + while (result.length > 0 && result.charAt(0) <= ' ') { + result = result.substring(1, result.length); + } + while (result.length > 0 && result.charAt(result.length - 1) <= ' ') { + result = result.substring(0, result.length - 1); + } + + return result; +} + +/* +* 공지사항 등록시 값체크 +*/ +function checkVal() +{ + + var result = true; +// +// if(writeForm.portal.checked == true && writeForm.ch.checked == true) +// { +// writeForm.cls.value="0"; +// } +// else if(writeForm.portal.checked == true && writeForm.ch.checked == false) +// { +// writeForm.cls.value="1"; +// } +// else +// { +// writeForm.cls.value="2"; +// } + + + if (trim(document.writeForm.subject.value) == "") + { + alert("제목을 입력하세요."); + document.writeForm.subject.value = ''; + document.writeForm.subject.focus(); + result = false; + } + + else if (trim(document.writeForm.contents.value) == "") + { + alert("본문을 입력하세요."); + document.writeForm.contents.value = ''; + document.writeForm.contents.focus(); + result = false; + } + + return result; +} + +/* +* 공지사항 첨부파일다운로드 +*/ +function fileDownload(fileName,saveName) +{ + hiddenFrame.location.href= "/admins/comm/download.jsp?file=" + fileName + "&path=" + saveName; +} diff --git a/src/main/webapp/js/admins/user.js b/src/main/webapp/js/admins/user.js new file mode 100644 index 0000000..9363418 --- /dev/null +++ b/src/main/webapp/js/admins/user.js @@ -0,0 +1,252 @@ + /************************************************************************************************* + * 사용자관리 스크립트 + * 2006-10-23 ljy + *************************************************************************************************/ + +/* + * 포털,유통회원 보기 함수 +*/ + function submitKind(kind) + { + var kind = searchForm.kind.value; + if (kind == "01") + window.location.href= "00.jsp"; + else + window.location.href= "00-ch.jsp"; + } + +/* + 회원정보 상세보기 팝업오픈 +*/ +function openDetail(userId, cls){ + var url = context + "/admins/user/00_view.do?userId=" + userId + "&cls=" + cls; + userWin = window.open(url,'userWin','scrollbars=no,titlebar=no,width=700,height=380',true); + userWin.focus(); +} + +/* +회원정보 초기화 상세보기 팝업오픈 +*/ +function openDetailInI(userId, cls,requestdate){ + var url = context + "/admins/user/00_view_Ini.do?userId=" + userId + "&cls=" + cls+"&requestdate="+requestdate; + userWin = window.open(url,'userWin','scrollbars=no,titlebar=no,width=1200,height=580',true); + userWin.focus(); +} + +/* + 사용자 삭제 +*/ + function user_del(userId, cls){ + if(confirm('사용자 ID : ' + userId + '를 삭제합니까?')){ + $.ajax({ + type : "POST", + url : context + "/admins/user/userDel.json" , + data : { userId : userId, cls : cls}, + dataType :"json", + success : function( json ){ + if(json.flag) { + alert("정상적으로 삭제가 되었습니다."); + opener.linkPage(1); + window.close(); + } else { + alert("삭제 중에 오류가 발생하였습니다. 다시 시도해주세요"); + } + }, + error : function(response){ + alert("삭제 중에 오류가 발생하였습니다. 다시 시도해주세요"); + } + }); + }else{ + return; + } + } + + function del_user(userId){ + if(confirm('사용자 ID : ' + userId + '를 삭제합檍니까')){ + $.ajax({ + type : "POST", + url : context + "/admin/user/delUser.json", + data : { userId : userId }, + dataType : "json", + success : function( json ){ + if(json.flag){ + alert("정상적으로 삭제가 되었습니다. "); + opener.linkPage(1); + window.close(); + } else { + alert("삭제 중에 오류가 발생하였습니다. 다시 시도해주세요"); + } + }, + error: function(response){ + alert("삭제 중에 오류가 발생하였습니다. 다시 시쇁되?주세恙? "); + } + }); + } else { + return; + } + } + + +function openAddUser(){ + var url = context + "/admins/user/05_addUser.do"; + addUser = window.open(url, 'addUser','scrollbars=no,titlebar=no,width=700, height=230',true); + addUser.focus(); +} + +/* +지자체 사용자 승인/반려 +*/ +function agree_user(userId, chk, lnk){ + + if(chk == "Y"){ + msg = "승인"; + }else{ + msg = "반려 후 삭제"; + } + + if(confirm('지자체 사용자 : ' + userId + '를 ' + msg +'합니까?')){ + $.ajax({ + type : "POST", + url : context + "/admins/user/agree_user.json" , + data : { userId : userId, chk : chk}, + dataType :"json", + success : function( json ){ + if(json.flag) { + alert("정상적으로 " + msg + " 되었습니다."); + if(lnk == "O"){ + linkPage(1); + }else{ + opener.linkPage(1); + } + window.close(); + } else { + alert("승인 중에 오류가 발생하였습니다. 다시 시도해주세요"); + } + }, + error : function(response){ + alert("승인 중에 오류가 발생하였습니다. 다시 시도해주세요"); + } + }); + }else{ + return; + } +} + +/* +회원정보 상세보기 팝업오픈 +*/ +function openImg(userId){ + var url = context + "/admins/user/40_view.do?userId=" + userId ; + userWin = window.open(url,'userWin','scrollbars=no,titlebar=no,width=700,height=500',true); + userWin.focus(); +} + +/* +지자체 사용자 승인/반려 +*/ +function agree_user_yn(userId,gbn1,gbn2){ + if(confirm('사용자 : ' + userId + '의 수정사항을 진행합니까?')){ + $.ajax({ + type : "POST", + url : context + "/admins/user/agree_user_yn.json" , + data : { userId : userId, gbn2 : gbn2}, + dataType :"json", + success : function( json ){ + if(json.flag) { + alert("정상적으로 처리 되었습니다."); + opener.linkPage(1); + window.close(); + } else { + alert("승인 중에 오류가 발생하였습니다. 다시 시도해주세요"); + } + }, + error : function(response){ + alert("승인 중에 오류가 발생하였습니다. 다시 시도해주세요"); + } + }); + }else{ + return; + } +} + +/*사용자 비밀번호 초기화*/ +function adminPassChange(userId,requestdate,changephone){ + + /*var randomString = Math.random().toString(36).slice(2);*/ + /*var hiddenChPass = hex_sha256(randomString).substring(0,20);*/ + var params = "userId="+userId+"&requestDate="+requestdate+/*"&hiddenChPass="+hiddenChPass+*/"&changephone="+changephone; + $.ajax({ + url : context+"/admins/user/passIniChange.do", + method : "post", + data : params, + success : function(data){ + alert("비밀번호 초기화가 완료되었습니다"); + var pageNum = opener.$('#pageIndex').val(); + opener.linkPage(pageNum); + window.close();   + }, + error:function(request,status,error){ + alert("오류입니다."); + },complete:function() { + window.close();        + } + }); +} + +/*사용자 비밀번호 반려메시지*/ +function fn_sendMesSubmit(userId,requestdate){ + var changephone = $("#sms_to").val(); + var mes = $("#sms_msg").val(); + var params = "userId="+userId+"&requestDate="+requestdate+"&changephone="+changephone+"&mes="+mes; + $.ajax({ + url : context+"/admins/user/passReturnMes.do", + method : "post", + data : params, + success : function(data){ + alert("비밀번호 초기화가 반려되었습니다"); + var pageNum = opener.$('#pageIndex').val(); + opener.linkPage(pageNum); + window.close(); + + }, + error:function(request,status,error){  + alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);         + alert("오류입니다.");  + },complete:function() { +       + } + }); +} +/*사용자 비밀번호 반려*/ +function passReturn(userId,requestdate){ + /* if($("#smsMsg").css('display') == 'block'){ + $("#smsMsg").css('display', 'none'); + }else{ + $("#smsMsg").css('display', 'block'); + } */ + var params = "userId="+userId+"&requestDate="+requestdate; + $.ajax({ + url : context+"/admins/user/passReturn.do", + method : "post", + data : params, + success : function(data){ + alert("비밀번호 초기화가 반려되었습니다"); + var pageNum = opener.$('#pageIndex').val(); + opener.linkPage(pageNum); + window.close(); + }, + error:function(request,status,error){  + alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);         + alert("오류입니다.");  + },complete:function() { +       + } + }); +} + + + + + + + diff --git a/src/main/webapp/js/admins/userLog.js b/src/main/webapp/js/admins/userLog.js new file mode 100644 index 0000000..79f303b --- /dev/null +++ b/src/main/webapp/js/admins/userLog.js @@ -0,0 +1,26 @@ + /************************************************************************************************* + * 사용자접속통계분석 스크립트 + * 2017-06-09 GIT + *************************************************************************************************/ + + function deleteLog(userid, etc, id){ + if(confirm('삭제하시겠습니까?')){ + $.ajax({ + type : "POST", + url : context + "/admins/userLog/deleteLog.json" , + data : { userid : userid, etc : etc, id : id}, + dataType :"json", + success : function( json ){ + if(json.flag) { + alert("정상적으로 삭제 되었습니다."); + linkPage(1); + } else { + alert("삭제 중에 오류가 발생하였습니다. 다시 시도해주세요"); + } + }, + error : function(response){ + alert("삭제 중에 오류가 발생하였습니다. 다시 시도해주세요"); + } + }); + } + } diff --git a/src/main/webapp/js/body/account/main.js b/src/main/webapp/js/body/account/main.js new file mode 100644 index 0000000..69322f6 --- /dev/null +++ b/src/main/webapp/js/body/account/main.js @@ -0,0 +1,56 @@ + /************************************************************************************************* + * ���̵�/�н����� ã�� ��ũ��Ʈ + * 2006-11-06 ljy + ***************************************************************************************************/ + +/** ���̵�ã�� **/ +function idCheck() +{ + + if(trim(searchForm.nametx.value) == "") + { + alert("������ �Է��ϼ���"); + searchForm.nametx.focus(); + return; + } + else if(trim(searchForm.email.value) == "") + { + alert("�̸��� �ּҸ� �Է��ϼ���"); + searchForm.email.focus(); + return; + } + else + { + //result = true; + //ssl + document.searchForm.action="searchId.do"; + + //document.searchForm.action="/body/account/id_post.jsp"; + document.searchForm.submit(); + } + //return result; +} + +function passCheck() +{ + + if(trim(searchForm.puserId.value) == "") + { + alert("���̵� �Է��ϼ���"); + searchForm.puserId.focus(); + } + else if(trim(searchForm.pnametx.value) == "") + { + alert("������ �Է��ϼ���"); + searchForm.pnametx.focus(); + } + else + { + //ssl + document.searchForm.action="http://localhost:8090/body/account/pass_post.jsp"; + + //document.searchForm.action="/body/account/pass_post.jsp"; + document.searchForm.submit(); + } + //return result; +} diff --git a/src/main/webapp/js/body/account/pass_post.js b/src/main/webapp/js/body/account/pass_post.js new file mode 100644 index 0000000..645f3dc --- /dev/null +++ b/src/main/webapp/js/body/account/pass_post.js @@ -0,0 +1,409 @@ +/* + * A JavaScript implementation of the RSA Data Security, Inc. MD4 Message + * Digest Algorithm, as defined in RFC 1320. + * Version 2.1 Copyright (C) Jerrad Pierce, Paul Johnston 1999 - 2002. + * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet + * Distributed under the BSD License + * See http://pajhome.org.uk/crypt/md5 for more info. + */ + +/* + * Configurable variables. You may need to tweak these to be compatible with + * the server-side, but the defaults work in most cases. + */ +var hexcase = 0; /* hex output format. 0 - lowercase; 1 - uppercase */ +var b64pad = ""; /* base-64 pad character. "=" for strict RFC compliance */ +var chrsz = 8; /* bits per input character. 8 - ASCII; 16 - Unicode */ + +/* + * These are the functions you'll usually want to call + */ +function hex_md4(s){ return binl2hex(core_md4(str2binl(s), s.length * chrsz));} +function b64_md4(s){ return binl2b64(core_md4(str2binl(s), s.length * chrsz));} +function str_md4(s){ return binl2str(core_md4(str2binl(s), s.length * chrsz));} +function hex_hmac_md4(key, data) { return binl2hex(core_hmac_md4(key, data)); } +function b64_hmac_md4(key, data) { return binl2b64(core_hmac_md4(key, data)); } +function str_hmac_md4(key, data) { return binl2str(core_hmac_md4(key, data)); } + +/* + * Perform a simple self-test to see if the VM is working + */ +function md4_vm_test() +{ + return hex_md4("abc") == "a448017aaf21d8525fc10ae87aa6729d"; +} + +/* + * Calculate the MD4 of an array of little-endian words, and a bit length + */ +function core_md4(x, len) +{ + /* append padding */ + x[len >> 5] |= 0x80 << (len % 32); + x[(((len + 64) >>> 9) << 4) + 14] = len; + + var a = 1732584193; + var b = -271733879; + var c = -1732584194; + var d = 271733878; + + for(var i = 0; i < x.length; i += 16) + { + var olda = a; + var oldb = b; + var oldc = c; + var oldd = d; + + a = md4_ff(a, b, c, d, x[i+ 0], 3 ); + d = md4_ff(d, a, b, c, x[i+ 1], 7 ); + c = md4_ff(c, d, a, b, x[i+ 2], 11); + b = md4_ff(b, c, d, a, x[i+ 3], 19); + a = md4_ff(a, b, c, d, x[i+ 4], 3 ); + d = md4_ff(d, a, b, c, x[i+ 5], 7 ); + c = md4_ff(c, d, a, b, x[i+ 6], 11); + b = md4_ff(b, c, d, a, x[i+ 7], 19); + a = md4_ff(a, b, c, d, x[i+ 8], 3 ); + d = md4_ff(d, a, b, c, x[i+ 9], 7 ); + c = md4_ff(c, d, a, b, x[i+10], 11); + b = md4_ff(b, c, d, a, x[i+11], 19); + a = md4_ff(a, b, c, d, x[i+12], 3 ); + d = md4_ff(d, a, b, c, x[i+13], 7 ); + c = md4_ff(c, d, a, b, x[i+14], 11); + b = md4_ff(b, c, d, a, x[i+15], 19); + + a = md4_gg(a, b, c, d, x[i+ 0], 3 ); + d = md4_gg(d, a, b, c, x[i+ 4], 5 ); + c = md4_gg(c, d, a, b, x[i+ 8], 9 ); + b = md4_gg(b, c, d, a, x[i+12], 13); + a = md4_gg(a, b, c, d, x[i+ 1], 3 ); + d = md4_gg(d, a, b, c, x[i+ 5], 5 ); + c = md4_gg(c, d, a, b, x[i+ 9], 9 ); + b = md4_gg(b, c, d, a, x[i+13], 13); + a = md4_gg(a, b, c, d, x[i+ 2], 3 ); + d = md4_gg(d, a, b, c, x[i+ 6], 5 ); + c = md4_gg(c, d, a, b, x[i+10], 9 ); + b = md4_gg(b, c, d, a, x[i+14], 13); + a = md4_gg(a, b, c, d, x[i+ 3], 3 ); + d = md4_gg(d, a, b, c, x[i+ 7], 5 ); + c = md4_gg(c, d, a, b, x[i+11], 9 ); + b = md4_gg(b, c, d, a, x[i+15], 13); + + a = md4_hh(a, b, c, d, x[i+ 0], 3 ); + d = md4_hh(d, a, b, c, x[i+ 8], 9 ); + c = md4_hh(c, d, a, b, x[i+ 4], 11); + b = md4_hh(b, c, d, a, x[i+12], 15); + a = md4_hh(a, b, c, d, x[i+ 2], 3 ); + d = md4_hh(d, a, b, c, x[i+10], 9 ); + c = md4_hh(c, d, a, b, x[i+ 6], 11); + b = md4_hh(b, c, d, a, x[i+14], 15); + a = md4_hh(a, b, c, d, x[i+ 1], 3 ); + d = md4_hh(d, a, b, c, x[i+ 9], 9 ); + c = md4_hh(c, d, a, b, x[i+ 5], 11); + b = md4_hh(b, c, d, a, x[i+13], 15); + a = md4_hh(a, b, c, d, x[i+ 3], 3 ); + d = md4_hh(d, a, b, c, x[i+11], 9 ); + c = md4_hh(c, d, a, b, x[i+ 7], 11); + b = md4_hh(b, c, d, a, x[i+15], 15); + + a = safe_add(a, olda); + b = safe_add(b, oldb); + c = safe_add(c, oldc); + d = safe_add(d, oldd); + + } + return Array(a, b, c, d); + +} + +/* + * These functions implement the basic operation for each round of the + * algorithm. + */ +function md4_cmn(q, a, b, x, s, t) +{ + return safe_add(rol(safe_add(safe_add(a, q), safe_add(x, t)), s), b); +} +function md4_ff(a, b, c, d, x, s) +{ + return md4_cmn((b & c) | ((~b) & d), a, 0, x, s, 0); +} +function md4_gg(a, b, c, d, x, s) +{ + return md4_cmn((b & c) | (b & d) | (c & d), a, 0, x, s, 1518500249); +} +function md4_hh(a, b, c, d, x, s) +{ + return md4_cmn(b ^ c ^ d, a, 0, x, s, 1859775393); +} + +/* + * Calculate the HMAC-MD4, of a key and some data + */ +function core_hmac_md4(key, data) +{ + var bkey = str2binl(key); + if(bkey.length > 16) bkey = core_md4(bkey, key.length * chrsz); + + var ipad = Array(16), opad = Array(16); + for(var i = 0; i < 16; i++) + { + ipad[i] = bkey[i] ^ 0x36363636; + opad[i] = bkey[i] ^ 0x5C5C5C5C; + } + + var hash = core_md4(ipad.concat(str2binl(data)), 512 + data.length * chrsz); + return core_md4(opad.concat(hash), 512 + 128); +} + +/* + * Add integers, wrapping at 2^32. This uses 16-bit operations internally + * to work around bugs in some JS interpreters. + */ +function safe_add(x, y) +{ + var lsw = (x & 0xFFFF) + (y & 0xFFFF); + var msw = (x >> 16) + (y >> 16) + (lsw >> 16); + return (msw << 16) | (lsw & 0xFFFF); +} + +/* + * Bitwise rotate a 32-bit number to the left. + */ +function rol(num, cnt) +{ + return (num << cnt) | (num >>> (32 - cnt)); +} + +/* + * Convert a string to an array of little-endian words + * If chrsz is ASCII, characters >255 have their hi-byte silently ignored. + */ +function str2binl(str) +{ + var bin = Array(); + var mask = (1 << chrsz) - 1; + for(var i = 0; i < str.length * chrsz; i += chrsz) + bin[i>>5] |= (str.charCodeAt(i / chrsz) & mask) << (i%32); + return bin; +} + +/* + * Convert an array of little-endian words to a string + */ +function binl2str(bin) +{ + var str = ""; + var mask = (1 << chrsz) - 1; + for(var i = 0; i < bin.length * 32; i += chrsz) + str += String.fromCharCode((bin[i>>5] >>> (i % 32)) & mask); + return str; +} + +/* + * Convert an array of little-endian words to a hex string. + */ +function binl2hex(binarray) +{ + var hex_tab = hexcase ? "0123456789ABCDEF" : "0123456789abcdef"; + var str = ""; + for(var i = 0; i < binarray.length * 4; i++) + { + str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) + + hex_tab.charAt((binarray[i>>2] >> ((i%4)*8 )) & 0xF); + } + return str; +} + +/* + * Convert an array of little-endian words to a base-64 string + */ +function binl2b64(binarray) +{ + var tab = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + var str = ""; + for(var i = 0; i < binarray.length * 4; i += 3) + { + var triplet = (((binarray[i >> 2] >> 8 * ( i %4)) & 0xFF) << 16) + | (((binarray[i+1 >> 2] >> 8 * ((i+1)%4)) & 0xFF) << 8 ) + | ((binarray[i+2 >> 2] >> 8 * ((i+2)%4)) & 0xFF); + for(var j = 0; j < 4; j++) + { + if(i * 8 + j * 6 > binarray.length * 32) str += b64pad; + else str += tab.charAt((triplet >> 6*(3-j)) & 0x3F); + } + } + return str; +} +var newPassj; + + + + + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +/* SHA-256 implementation in JavaScript (c) Chris Veness 2002-2014 / MIT Licence */ +/* */ +/* - see http://csrc.nist.gov/groups/ST/toolkit/secure_hashing.html */ +/* http://csrc.nist.gov/groups/ST/toolkit/examples.html */ +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + +/* jshint node:true *//* global define, escape, unescape */ +'use strict'; + + +/** + * SHA-256 hash function reference implementation. + * + * @namespace + */ +var Sha256 = {}; + + +/** + * Generates SHA-256 hash of string. + * + * @param {string} msg - String to be hashed + * @returns {string} Hash of msg as hex character string + */ + +function hex_sha256(msg) { + // convert string to UTF-8, as SHA only deals with byte-streams + //msg = msg.utf8Encode(); + + // constants [§4.2.2] + var K = [ + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 ]; + // initial hash value [§5.3.1] + var H = [ + 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 ]; + + // PREPROCESSING + + msg += String.fromCharCode(0x80); // add trailing '1' bit (+ 0's padding) to string [§5.1.1] + + // convert string msg into 512-bit/16-integer blocks arrays of ints [§5.2.1] + var l = msg.length/4 + 2; // length (in 32-bit integers) of msg + ‘1’ + appended length + var N = Math.ceil(l/16); // number of 16-integer-blocks required to hold 'l' ints + var M = new Array(N); + + for (var i=0; i>> 32, but since JS converts + // bitwise-op args to 32 bits, we need to simulate this by arithmetic operators + M[N-1][14] = ((msg.length-1)*8) / Math.pow(2, 32); M[N-1][14] = Math.floor(M[N-1][14]); + M[N-1][15] = ((msg.length-1)*8) & 0xffffffff; + + + // HASH COMPUTATION [§6.1.2] + + var W = new Array(64); var a, b, c, d, e, f, g, h; + for (var i=0; i>> n) | (x << (32-n)); +}; + +/** + * Logical functions [§4.1.2]. + * @private + */ +Sha256.Σ0 = function(x) { return Sha256.ROTR(2, x) ^ Sha256.ROTR(13, x) ^ Sha256.ROTR(22, x); }; +Sha256.Σ1 = function(x) { return Sha256.ROTR(6, x) ^ Sha256.ROTR(11, x) ^ Sha256.ROTR(25, x); }; +Sha256.σ0 = function(x) { return Sha256.ROTR(7, x) ^ Sha256.ROTR(18, x) ^ (x>>>3); }; +Sha256.σ1 = function(x) { return Sha256.ROTR(17, x) ^ Sha256.ROTR(19, x) ^ (x>>>10); }; +Sha256.Ch = function(x, y, z) { return (x & y) ^ (~x & z); }; +Sha256.Maj = function(x, y, z) { return (x & y) ^ (x & z) ^ (y & z); }; + + +/** + * Hexadecimal representation of a number. + * @private + */ +Sha256.toHexStr = function(n) { + // note can't use toString(16) as it is implementation-dependant, + // and in IE returns signed numbers when used on full words + var s="", v; + for (var i=7; i>=0; i--) { v = (n>>>(i*4)) & 0xf; s += v.toString(16); } + return s; +}; + + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + +/** Extend String object with method to encode multi-byte string to utf8 + * - monsur.hossa.in/2012/07/20/utf-8-in-javascript.html */ +if (typeof String.prototype.utf8Encode == 'undefined') { + String.prototype.utf8Encode = function() { + return unescape( encodeURIComponent( this ) ); + }; +} + +/** Extend String object with method to decode utf8 string to multi-byte */ +if (typeof String.prototype.utf8Decode == 'undefined') { + String.prototype.utf8Decode = function() { + try { + return decodeURIComponent( escape( this ) ); + } catch (e) { + return this; // invalid UTF-8? return as-is + } + }; +} + + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +if (typeof module != 'undefined' && module.exports) module.exports = Sha256; // CommonJs export +if (typeof define == 'function' && define.amd) define([], function() { return Sha256; }); // AMD \ No newline at end of file diff --git a/src/main/webapp/js/body/cmuboard/cmuboard.js b/src/main/webapp/js/body/cmuboard/cmuboard.js new file mode 100644 index 0000000..5b23b45 --- /dev/null +++ b/src/main/webapp/js/body/cmuboard/cmuboard.js @@ -0,0 +1,54 @@ + + + + +function check_1() +{ + var f = document.modifyForm; + if(f.name.value==""){ + alert("̸ ּ."); + f.name.focus(); + }else if(f.password.value==""){ + alert("йȣ ּ."); + f.password.focus(); + }else if(f.subject.value==""){ + alert(" ּ."); + f.subject.focus(); + }else if (f.content.value==""){ + alert(" ּ."); + f.subject.focus(); + }else{ + f.submit(); + } +} + + // Ͼε Ȯ üũ Լ + function fileChk() { + var fileValue = document.writeForm.fileName.value; + extArr = new Array(".jsp",".exe",".jspx",".js",".bat"); // Ȯ 迭 + extArr2 = new Array(".com",".htm",".html",".cgi"); // Ȯ 迭 + + if(!fileValue) return false; + while (fileValue.indexOf("\\") != -1) { + fileValue = fileValue.slice(fileValue.indexOf("\\")+1); + extValue = fileValue.slice(fileValue.indexOf(".")).toLowerCase(); + document.hongWrite.extValue.value = extValue; + + for(var i=0; i 0 && result.charAt(result.length - 1) <= ' ') { + result = result.substring(0, result.length - 1); + } + + return result; +} + +/** ѱüũ **/ +function korean_check(str) +{ + var i; + var ch; + var result = false; + + for (i=0;i %uAC00 + // ==> %uD79D + // ==> %uD7A3 + + //ѱ̸ + if (strCharByte(ch) == 2) + { + result = true; + return result; + } + } + return result; + +} + +function strCharByte(chStr) +{ + if (chStr.substring(0, 2) == '%u') + { + if (chStr.substring(2,4) == '00') + return 1; + else + return 2; //ѱ + } + else if (chStr.substring(0,1) == '%') + { + //alert (parseInt(chStr.substring(1,3), 16)); + if (parseInt(chStr.substring(1,3), 16) > 127) + return 2; //ѱ + else + return 1; + } + else + { + return 1; + } +} + +/** α **/ +function login() +{ + if(loginForm.userId.value == "") + { + alert("̵ Էϼ"); + return false; + } + else if(loginForm.password.value == "") + { + alert("йȣ Էϼ"); + return false; + } + else + { + return true; + } +} + +/** ޴̵ **/ +function goMenu(menuId,contentUrl) +{ + top.location.href = "/main.jsp?id=" + menuId + "&url=" + contentUrl; +} + diff --git a/src/main/webapp/js/body/download/downloadPurpose.js b/src/main/webapp/js/body/download/downloadPurpose.js new file mode 100644 index 0000000..7829d5d --- /dev/null +++ b/src/main/webapp/js/body/download/downloadPurpose.js @@ -0,0 +1,201 @@ +var purposeCode = ""; +var purposeName = ""; +function check(){ + var length = document.getElementsByName('fileCount')[0].value; + var flag = true; + for(i=0; i endDate){ + alert(i+1 +" 번 종료일이 시작일보다 이전날짜입니다."); + flag = false; + return false; + } + else if(dayCheck(strDate, endDate)){ + alert(i+1 +" 번 활용기간은 최대 1개월(30일)로 제한됩니다."); + flag = false; + return false; + } + } + if(flag){ + return true; + } +} +function dayCheck(str, end){ + var yy; + var mm; + var dd; + var eyy; + var emm; + var edd; + yy = str.substr(0,4); + mm = str.substr(5,2); + dd = str.substr(8,2); + + eyy = end.substr(0,4); + emm = end.substr(5,2); + edd = end.substr(8,2); + //var today = new Date(); + var strDate = new Date(Number(yy),Number(mm)-1,Number(dd)); + var endDate = new Date(Number(eyy),Number(emm)-1,Number(edd)); + var day_sub = endDate.getTime() - strDate.getTime(); + day_sub = day_sub/1000/60/60/24; //종료일-시작일(일단위) + if(day_sub > 30 ){ + return true; + }else{ + return false; + } + +} +function purposeCheck(code){ + switch(code){ + case 1: + purposeCode = "A01"; + purposeName = "정책입안"; + break; + case 2: + purposeCode = "A02"; + purposeName = "공사계획 및 예비조사"; + break; + case 3: + purposeCode = "A03"; + purposeName = "기본설계"; + break; + case 4: + purposeCode = "A04"; + purposeName = "실시설계"; + break; + case 5: + purposeCode = "A05"; + purposeName = "시공 및 유지관리"; + break; + case 6: + purposeCode = "A06"; + purposeName = "지하시설물 유지관리"; + break; + case 7: + purposeCode = "A07"; + purposeName = "사업비 산정"; + break; + case 8: + purposeCode = "A08"; + purposeName = "학술연구"; + break; + case 9: + purposeCode = "A09"; + purposeName = "기타"; + break; + /*20180621 추가*/ + case 10: + purposeCode = "A10"; + purposeName = "스마트시티"; + break; + case 11: + purposeCode = "A11"; + purposeName = "도시재생"; + break; + case 12: + purposeCode = "A12"; + purposeName = "지진 예방"; + break; + case 13: + purposeCode = "A13"; + purposeName = "산사태 예방"; + break; + case 14: + purposeCode = "A14"; + purposeName = "급경사지 관리"; + break; + case 15: + purposeCode = "A15"; + purposeName = "홍수 예방"; + break; + case 16: + purposeCode = "A16"; + purposeName = "지하안전영향평가"; + break; + case 17: + purposeCode = "A17"; + purposeName = "소규모지하안전영향평가"; + break; + case 18: + purposeCode = "A18"; + purposeName = "사후지하안전영향조사"; + break; + case 19: + purposeCode = "A19"; + purposeName = "지반침하위험도평가"; + break; + case 20: + purposeCode = "A20"; + purposeName = "지하안전점검"; + break; + case 21: + purposeCode = "A21"; + purposeName = "검수"; + break; + } + for(i=1; i<22; i++){ + if(i == code){ + if(i<=9)document.getElementById('imgM_0'+i).src = "/images/down/menu_0" + i + "_over.gif"; + else document.getElementById('imgM_'+i).src = "/images/down/menu_" + i + "_over.gif"; + }else{ + if(i<=9)document.getElementById('imgM_0'+i).src = "/images/down/menu_0" + i + ".gif"; + else document.getElementById('imgM_'+i).src = "/images/down/menu_" + i + ".gif"; + } + } + +} +function purposeChoose(num){ + if(purposeName == ""){ + alert("메뉴에서 활용목적을 선택해 주십시오"); + } + document.getElementsByName('purpose')[num].value = purposeName; + document.getElementsByName('purposeCode')[num].value = purposeCode; + textBoxDiabled(num); +} + +function textBoxDiabled(num){ + if(purposeCode == 'A09'){ + document.getElementsByName('purposeEtc')[num].readOnly = false; + + }else{ + document.getElementsByName('purposeEtc')[num].value = ""; + document.getElementsByName('purposeEtc')[num].readonly = false; + + } + /*var length = document.getElementsByName('fileCount')[0].value; + for(i=0; i")); + }; + + this.submit = function submit(){ + var frm = $("#"+this.formId)[0]; + frm.action = this.url; + frm.method = "post"; + frm.submit(); + }; +} + +//널값 검사 +function isNull(str) { + if (str == null) return true; + if (str == "NaN") return true; + if (new String(str).valueOf() == "undefined") return true; + var chkStr = new String(str); + if( chkStr.valueOf() == "undefined" ) return true; + if (chkStr == null) return true; + if (chkStr.toString().length == 0 ) return true; + return false; +} + + +//브라우저 체크 +function fnGetBrowser() { +var agt = navigator.userAgent.toLowerCase(); + +if (agt.indexOf("trident") != -1) { + return getIEVersion(agt); //'Internet Explorer'; +} +if (agt.indexOf("chrome") != -1) return 'chrome'; +if (agt.indexOf("opera") != -1) return 'opera'; +if (agt.indexOf("firefox") != -1) return 'firefox'; +if (agt.indexOf("safari") != -1) return 'safari'; + +} +//IE버전체크 +function getIEVersion(agt) { + var iever="ie11"; + var index = agt.indexOf("trident"); + var len = "trident".length; + var ver =agt.substr(index+len+1,1); + + //IE 8 = trident/4.0 + //IE 9 = trident/5.0 + //IE 10 = trident/6.0 + if(ver==4) iever="ie8"; + if(ver==5) iever="ie9"; + if(ver==6) iever="ie10"; + if(ver==7) iever="ie11"; + + return iever; +} \ No newline at end of file diff --git a/src/main/webapp/js/home/ac_slide.js b/src/main/webapp/js/home/ac_slide.js new file mode 100644 index 0000000..747b33b --- /dev/null +++ b/src/main/webapp/js/home/ac_slide.js @@ -0,0 +1,148 @@ + +/** + * MJ javascript UI library + * @namespace + * @description UI library create to help front end developement + */ + +var MJ = MJ || {}; + +(function(win, $) { + + MJ.globals = {}; + + MJ.ui = { + + list: {}, + add: function ( func, exec_flag ) { + + try { + + if ( typeof func === 'function' ) { + + var func_name = ( ! func.name ? func.toString().match(/^function\s*([^\s(]+)/)[1] : func.name ); + + this.list[ func_name ] = func; + + if ( typeof exec_flag !== 'undefined' && exec_flag === true ) { + + func.call(); + + } + + } + + } catch ( e ) { + + console.log( e ); + + } + + } + + }; + + +})(window, jQuery); + + + +/* + * SUMMARY: + * 1) Functions INIT + * 2) Functions + */ + +jQuery(function($) { + + +/* **************************************** * + * Functions INIT + * **************************************** */ +// main +main_visual(); +main_center_slider(); + + +/* **************************************** * + * Functions + * **************************************** */ +// main visual +function main_visual(){ + + var $slider = $('.mainVisual_container'); + + if( !$slider.length ) { return; } + + // Slider + var main_visual_slider = new Swiper($slider, { + init: true, + // loop: true, + // autoplay: { + // delay: 4000, + // disableOnInteraction: false + // }, + speed: 1000, + preloadImages: false, + lazy : { + loadPrevNext: true, + loadOnTransitionStart: true + }, + followFinger: false, + simulateTouch: false, + effect: 'fade', + fadeEffect: { + crossFade: true + } + + }); + +} + + + +// main center slider +function main_center_slider(){ + + var $center = $('.main_center_listWrap'); + + if( !$center.length ) { return; } + + if( $('html').hasClass('mobile') ) { + var freeMode = true + } else { + var freeMode = false + } + + // Slider + var main_center_slider = new Swiper($center, { + init: true, + loop: false, + speed: 600, + slidesPerView: 'auto', + preloadImages: false, + lazy : { + loadPrevNext: true, + loadOnTransitionStart: true + }, + //centeredSlides: false, + watchSlidesVisibility: true, + // followFinger: false, + // simulateTouch: false, + observer: true, + observeParents: true, + initialSlide: 0, + freeMode: freeMode, + resistanceRatio : 0, + navigation: { + nextEl: $center.find('.swiper-button-next'), + prevEl: $center.find('.swiper-button-prev') + }, + }); + + +} + + + +}); // End jQuery diff --git a/src/main/webapp/js/home/aos.js b/src/main/webapp/js/home/aos.js new file mode 100644 index 0000000..7de64b3 --- /dev/null +++ b/src/main/webapp/js/home/aos.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.AOS=t():e.AOS=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="dist/",t(0)}([function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}var i=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];if(e&&(k=!0),k)return w=(0,y.default)(w,x),(0,b.default)(w,x.once),w},O=function(){w=(0,h.default)(),j()},_=function(){w.forEach(function(e,t){e.node.removeAttribute("data-aos"),e.node.removeAttribute("data-aos-easing"),e.node.removeAttribute("data-aos-duration"),e.node.removeAttribute("data-aos-delay")})},S=function(e){return e===!0||"mobile"===e&&p.default.mobile()||"phone"===e&&p.default.phone()||"tablet"===e&&p.default.tablet()||"function"==typeof e&&e()===!0},z=function(e){x=i(x,e),w=(0,h.default)();var t=document.all&&!window.atob;return S(x.disable)||t?_():(document.querySelector("body").setAttribute("data-aos-easing",x.easing),document.querySelector("body").setAttribute("data-aos-duration",x.duration),document.querySelector("body").setAttribute("data-aos-delay",x.delay),"DOMContentLoaded"===x.startEvent&&["complete","interactive"].indexOf(document.readyState)>-1?j(!0):"load"===x.startEvent?window.addEventListener(x.startEvent,function(){j(!0)}):document.addEventListener(x.startEvent,function(){j(!0)}),window.addEventListener("resize",(0,f.default)(j,x.debounceDelay,!0)),window.addEventListener("orientationchange",(0,f.default)(j,x.debounceDelay,!0)),window.addEventListener("scroll",(0,u.default)(function(){(0,b.default)(w,x.once)},x.throttleDelay)),x.disableMutationObserver||(0,d.default)("[data-aos]",O),w)};e.exports={init:z,refresh:j,refreshHard:O}},function(e,t){},,,,,function(e,t){(function(t){"use strict";function n(e,t,n){function o(t){var n=b,o=v;return b=v=void 0,k=t,g=e.apply(o,n)}function r(e){return k=e,h=setTimeout(s,t),_?o(e):g}function a(e){var n=e-w,o=e-k,i=t-n;return S?j(i,y-o):i}function c(e){var n=e-w,o=e-k;return void 0===w||n>=t||n<0||S&&o>=y}function s(){var e=O();return c(e)?d(e):void(h=setTimeout(s,a(e)))}function d(e){return h=void 0,z&&b?o(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),k=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(O())}function m(){var e=O(),n=c(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(s,t),o(w)}return void 0===h&&(h=setTimeout(s,t)),g}var b,v,y,g,h,w,k=0,_=!1,S=!1,z=!0;if("function"!=typeof e)throw new TypeError(f);return t=u(t)||0,i(n)&&(_=!!n.leading,S="maxWait"in n,y=S?x(u(n.maxWait)||0,t):y,z="trailing"in n?!!n.trailing:z),m.cancel=l,m.flush=p,m}function o(e,t,o){var r=!0,a=!0;if("function"!=typeof e)throw new TypeError(f);return i(o)&&(r="leading"in o?!!o.leading:r,a="trailing"in o?!!o.trailing:a),n(e,t,{leading:r,maxWait:t,trailing:a})}function i(e){var t="undefined"==typeof e?"undefined":c(e);return!!e&&("object"==t||"function"==t)}function r(e){return!!e&&"object"==("undefined"==typeof e?"undefined":c(e))}function a(e){return"symbol"==("undefined"==typeof e?"undefined":c(e))||r(e)&&k.call(e)==d}function u(e){if("number"==typeof e)return e;if(a(e))return s;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(l,"");var n=m.test(e);return n||b.test(e)?v(e.slice(2),n?2:8):p.test(e)?s:+e}var c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f="Expected a function",s=NaN,d="[object Symbol]",l=/^\s+|\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,b=/^0o[0-7]+$/i,v=parseInt,y="object"==("undefined"==typeof t?"undefined":c(t))&&t&&t.Object===Object&&t,g="object"==("undefined"==typeof self?"undefined":c(self))&&self&&self.Object===Object&&self,h=y||g||Function("return this")(),w=Object.prototype,k=w.toString,x=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=o}).call(t,function(){return this}())},function(e,t){(function(t){"use strict";function n(e,t,n){function i(t){var n=b,o=v;return b=v=void 0,O=t,g=e.apply(o,n)}function r(e){return O=e,h=setTimeout(s,t),_?i(e):g}function u(e){var n=e-w,o=e-O,i=t-n;return S?x(i,y-o):i}function f(e){var n=e-w,o=e-O;return void 0===w||n>=t||n<0||S&&o>=y}function s(){var e=j();return f(e)?d(e):void(h=setTimeout(s,u(e)))}function d(e){return h=void 0,z&&b?i(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),O=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(j())}function m(){var e=j(),n=f(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(s,t),i(w)}return void 0===h&&(h=setTimeout(s,t)),g}var b,v,y,g,h,w,O=0,_=!1,S=!1,z=!0;if("function"!=typeof e)throw new TypeError(c);return t=a(t)||0,o(n)&&(_=!!n.leading,S="maxWait"in n,y=S?k(a(n.maxWait)||0,t):y,z="trailing"in n?!!n.trailing:z),m.cancel=l,m.flush=p,m}function o(e){var t="undefined"==typeof e?"undefined":u(e);return!!e&&("object"==t||"function"==t)}function i(e){return!!e&&"object"==("undefined"==typeof e?"undefined":u(e))}function r(e){return"symbol"==("undefined"==typeof e?"undefined":u(e))||i(e)&&w.call(e)==s}function a(e){if("number"==typeof e)return e;if(r(e))return f;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(d,"");var n=p.test(e);return n||m.test(e)?b(e.slice(2),n?2:8):l.test(e)?f:+e}var u="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},c="Expected a function",f=NaN,s="[object Symbol]",d=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,m=/^0o[0-7]+$/i,b=parseInt,v="object"==("undefined"==typeof t?"undefined":u(t))&&t&&t.Object===Object&&t,y="object"==("undefined"==typeof self?"undefined":u(self))&&self&&self.Object===Object&&self,g=v||y||Function("return this")(),h=Object.prototype,w=h.toString,k=Math.max,x=Math.min,j=function(){return g.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){"use strict";function n(e,t){var n=window.document,r=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver,a=new r(o);i=t,a.observe(n.documentElement,{childList:!0,subtree:!0,removedNodes:!0})}function o(e){e&&e.forEach(function(e){var t=Array.prototype.slice.call(e.addedNodes),n=Array.prototype.slice.call(e.removedNodes),o=t.concat(n).filter(function(e){return e.hasAttribute&&e.hasAttribute("data-aos")}).length;o&&i()})}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){};t.default=n},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(){return navigator.userAgent||navigator.vendor||window.opera||""}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;ne.position?e.node.classList.add("aos-animate"):"undefined"!=typeof o&&("false"===o||!n&&"true"!==o)&&e.node.classList.remove("aos-animate")},o=function(e,t){var o=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,r){n(e,i+o,t)})};t.default=o},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(12),r=o(i),a=function(e,t){return e.forEach(function(e,n){e.node.classList.add("aos-init"),e.position=(0,r.default)(e.node,t.offset)}),e};t.default=a},function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(13),r=o(i),a=function(e,t){var n=0,o=0,i=window.innerHeight,a={offset:e.getAttribute("data-aos-offset"),anchor:e.getAttribute("data-aos-anchor"),anchorPlacement:e.getAttribute("data-aos-anchor-placement")};switch(a.offset&&!isNaN(a.offset)&&(o=parseInt(a.offset)),a.anchor&&document.querySelectorAll(a.anchor)&&(e=document.querySelectorAll(a.anchor)[0]),n=(0,r.default)(e).top,a.anchorPlacement){case"top-bottom":break;case"center-bottom":n+=e.offsetHeight/2;break;case"bottom-bottom":n+=e.offsetHeight;break;case"top-center":n+=i/2;break;case"bottom-center":n+=i/2+e.offsetHeight;break;case"center-center":n+=i/2+e.offsetHeight/2;break;case"top-top":n+=i;break;case"bottom-top":n+=e.offsetHeight+i;break;case"center-top":n+=e.offsetHeight/2+i}return a.anchorPlacement||a.offset||isNaN(t)||(o=t),n+o};t.default=a},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-("BODY"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-("BODY"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=function(e){return e=e||document.querySelectorAll("[data-aos]"),Array.prototype.map.call(e,function(e){return{node:e}})};t.default=n}])}); \ No newline at end of file diff --git a/src/main/webapp/js/home/aos_com.js b/src/main/webapp/js/home/aos_com.js new file mode 100644 index 0000000..464a56f --- /dev/null +++ b/src/main/webapp/js/home/aos_com.js @@ -0,0 +1,17 @@ +// aos +$(window).on('pageshow', function() { + AOS.init(); + AOS.refresh(); +}); +$(window).on('resize', function() { + AOS.refresh(); +}); + + + + + + + + + diff --git a/src/main/webapp/js/home/chart.min.js b/src/main/webapp/js/home/chart.min.js new file mode 100644 index 0000000..7b49eba --- /dev/null +++ b/src/main/webapp/js/home/chart.min.js @@ -0,0 +1,14 @@ +/*! + * Chart.js v3.9.0 + * https://www.chartjs.org + * (c) 2022 Chart.js Contributors + * Released under the MIT License + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Chart=e()}(this,(function(){"use strict";function t(){}const e=function(){let t=0;return function(){return t++}}();function i(t){return null==t}function s(t){if(Array.isArray&&Array.isArray(t))return!0;const e=Object.prototype.toString.call(t);return"[object"===e.slice(0,7)&&"Array]"===e.slice(-6)}function n(t){return null!==t&&"[object Object]"===Object.prototype.toString.call(t)}const o=t=>("number"==typeof t||t instanceof Number)&&isFinite(+t);function a(t,e){return o(t)?t:e}function r(t,e){return void 0===t?e:t}const l=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100:t/e,h=(t,e)=>"string"==typeof t&&t.endsWith("%")?parseFloat(t)/100*e:+t;function c(t,e,i){if(t&&"function"==typeof t.call)return t.apply(i,e)}function d(t,e,i,o){let a,r,l;if(s(t))if(r=t.length,o)for(a=r-1;a>=0;a--)e.call(i,t[a],a);else for(a=0;at,x:t=>t.x,y:t=>t.y};function y(t,e){const i=_[e]||(_[e]=function(t){const e=v(t);return t=>{for(const i of e){if(""===i)break;t=t&&t[i]}return t}}(e));return i(t)}function v(t){const e=t.split("."),i=[];let s="";for(const t of e)s+=t,s.endsWith("\\")?s=s.slice(0,-1)+".":(i.push(s),s="");return i}function w(t){return t.charAt(0).toUpperCase()+t.slice(1)}const M=t=>void 0!==t,k=t=>"function"==typeof t,S=(t,e)=>{if(t.size!==e.size)return!1;for(const i of t)if(!e.has(i))return!1;return!0};function P(t){return"mouseup"===t.type||"click"===t.type||"contextmenu"===t.type}const D=Math.PI,O=2*D,C=O+D,A=Number.POSITIVE_INFINITY,T=D/180,L=D/2,E=D/4,R=2*D/3,I=Math.log10,z=Math.sign;function F(t){const e=Math.round(t);t=N(t,e,t/1e3)?e:t;const i=Math.pow(10,Math.floor(I(t))),s=t/i;return(s<=1?1:s<=2?2:s<=5?5:10)*i}function V(t){const e=[],i=Math.sqrt(t);let s;for(s=1;st-e)).pop(),e}function B(t){return!isNaN(parseFloat(t))&&isFinite(t)}function N(t,e,i){return Math.abs(t-e)=t}function j(t,e,i){let s,n,o;for(s=0,n=t.length;sl&&h=Math.min(e,i)-s&&t<=Math.max(e,i)+s}function tt(t,e,i){i=i||(i=>t[i]1;)s=o+n>>1,i(s)?o=s:n=s;return{lo:o,hi:n}}const et=(t,e,i,s)=>tt(t,i,s?s=>t[s][e]<=i:s=>t[s][e]tt(t,i,(s=>t[s][e]>=i));function st(t,e,i){let s=0,n=t.length;for(;ss&&t[n-1]>i;)n--;return s>0||n{const i="_onData"+w(e),s=t[e];Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value(...e){const n=s.apply(this,e);return t._chartjs.listeners.forEach((t=>{"function"==typeof t[i]&&t[i](...e)})),n}})})))}function at(t,e){const i=t._chartjs;if(!i)return;const s=i.listeners,n=s.indexOf(e);-1!==n&&s.splice(n,1),s.length>0||(nt.forEach((e=>{delete t[e]})),delete t._chartjs)}function rt(t){const e=new Set;let i,s;for(i=0,s=t.length;iArray.prototype.slice.call(t));let n=!1,o=[];return function(...i){o=s(i),n||(n=!0,lt.call(window,(()=>{n=!1,t.apply(e,o)})))}}function ct(t,e){let i;return function(...s){return e?(clearTimeout(i),i=setTimeout(t,e,s)):t.apply(this,s),e}}const dt=t=>"start"===t?"left":"end"===t?"right":"center",ut=(t,e,i)=>"start"===t?e:"end"===t?i:(e+i)/2,ft=(t,e,i,s)=>t===(s?"left":"right")?i:"center"===t?(e+i)/2:e;function gt(t,e,i){const s=e.length;let n=0,o=s;if(t._sorted){const{iScale:a,_parsed:r}=t,l=a.axis,{min:h,max:c,minDefined:d,maxDefined:u}=a.getUserBounds();d&&(n=Z(Math.min(et(r,a.axis,h).lo,i?s:et(e,l,a.getPixelForValue(h)).lo),0,s-1)),o=u?Z(Math.max(et(r,a.axis,c,!0).hi+1,i?0:et(e,l,a.getPixelForValue(c),!0).hi+1),n,s)-n:s-n}return{start:n,count:o}}function pt(t){const{xScale:e,yScale:i,_scaleRanges:s}=t,n={xmin:e.min,xmax:e.max,ymin:i.min,ymax:i.max};if(!s)return t._scaleRanges=n,!0;const o=s.xmin!==e.min||s.xmax!==e.max||s.ymin!==i.min||s.ymax!==i.max;return Object.assign(s,n),o}var mt=new class{constructor(){this._request=null,this._charts=new Map,this._running=!1,this._lastDate=void 0}_notify(t,e,i,s){const n=e.listeners[s],o=e.duration;n.forEach((s=>s({chart:t,initial:e.initial,numSteps:o,currentStep:Math.min(i-e.start,o)})))}_refresh(){this._request||(this._running=!0,this._request=lt.call(window,(()=>{this._update(),this._request=null,this._running&&this._refresh()})))}_update(t=Date.now()){let e=0;this._charts.forEach(((i,s)=>{if(!i.running||!i.items.length)return;const n=i.items;let o,a=n.length-1,r=!1;for(;a>=0;--a)o=n[a],o._active?(o._total>i.duration&&(i.duration=o._total),o.tick(t),r=!0):(n[a]=n[n.length-1],n.pop());r&&(s.draw(),this._notify(s,i,t,"progress")),n.length||(i.running=!1,this._notify(s,i,t,"complete"),i.initial=!1),e+=n.length})),this._lastDate=t,0===e&&(this._running=!1)}_getAnims(t){const e=this._charts;let i=e.get(t);return i||(i={running:!1,initial:!0,items:[],listeners:{complete:[],progress:[]}},e.set(t,i)),i}listen(t,e,i){this._getAnims(t).listeners[e].push(i)}add(t,e){e&&e.length&&this._getAnims(t).items.push(...e)}has(t){return this._getAnims(t).items.length>0}start(t){const e=this._charts.get(t);e&&(e.running=!0,e.start=Date.now(),e.duration=e.items.reduce(((t,e)=>Math.max(t,e._duration)),0),this._refresh())}running(t){if(!this._running)return!1;const e=this._charts.get(t);return!!(e&&e.running&&e.items.length)}stop(t){const e=this._charts.get(t);if(!e||!e.items.length)return;const i=e.items;let s=i.length-1;for(;s>=0;--s)i[s].cancel();e.items=[],this._notify(t,e,Date.now(),"complete")}remove(t){return this._charts.delete(t)}}; +/*! + * @kurkle/color v0.2.1 + * https://github.com/kurkle/color#readme + * (c) 2022 Jukka Kurkela + * Released under the MIT License + */ +function bt(t){return t+.5|0}const xt=(t,e,i)=>Math.max(Math.min(t,i),e);function _t(t){return xt(bt(2.55*t),0,255)}function yt(t){return xt(bt(255*t),0,255)}function vt(t){return xt(bt(t/2.55)/100,0,1)}function wt(t){return xt(bt(100*t),0,100)}const Mt={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15},kt=[..."0123456789ABCDEF"],St=t=>kt[15&t],Pt=t=>kt[(240&t)>>4]+kt[15&t],Dt=t=>(240&t)>>4==(15&t);function Ot(t){var e=(t=>Dt(t.r)&&Dt(t.g)&&Dt(t.b)&&Dt(t.a))(t)?St:Pt;return t?"#"+e(t.r)+e(t.g)+e(t.b)+((t,e)=>t<255?e(t):"")(t.a,e):void 0}const Ct=/^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/;function At(t,e,i){const s=e*Math.min(i,1-i),n=(e,n=(e+t/30)%12)=>i-s*Math.max(Math.min(n-3,9-n,1),-1);return[n(0),n(8),n(4)]}function Tt(t,e,i){const s=(s,n=(s+t/60)%6)=>i-i*e*Math.max(Math.min(n,4-n,1),0);return[s(5),s(3),s(1)]}function Lt(t,e,i){const s=At(t,1,.5);let n;for(e+i>1&&(n=1/(e+i),e*=n,i*=n),n=0;n<3;n++)s[n]*=1-e-i,s[n]+=e;return s}function Et(t){const e=t.r/255,i=t.g/255,s=t.b/255,n=Math.max(e,i,s),o=Math.min(e,i,s),a=(n+o)/2;let r,l,h;return n!==o&&(h=n-o,l=a>.5?h/(2-n-o):h/(n+o),r=function(t,e,i,s,n){return t===n?(e-i)/s+(e>16&255,o>>8&255,255&o]}return t}(),Nt.transparent=[0,0,0,0]);const e=Nt[t.toLowerCase()];return e&&{r:e[0],g:e[1],b:e[2],a:4===e.length?e[3]:255}}const jt=/^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/;const Ht=t=>t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055,$t=t=>t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4);function Yt(t,e,i){if(t){let s=Et(t);s[e]=Math.max(0,Math.min(s[e]+s[e]*i,0===e?360:1)),s=It(s),t.r=s[0],t.g=s[1],t.b=s[2]}}function Ut(t,e){return t?Object.assign(e||{},t):t}function Xt(t){var e={r:0,g:0,b:0,a:255};return Array.isArray(t)?t.length>=3&&(e={r:t[0],g:t[1],b:t[2],a:255},t.length>3&&(e.a=yt(t[3]))):(e=Ut(t,{r:0,g:0,b:0,a:1})).a=yt(e.a),e}function qt(t){return"r"===t.charAt(0)?function(t){const e=jt.exec(t);let i,s,n,o=255;if(e){if(e[7]!==i){const t=+e[7];o=e[8]?_t(t):xt(255*t,0,255)}return i=+e[1],s=+e[3],n=+e[5],i=255&(e[2]?_t(i):xt(i,0,255)),s=255&(e[4]?_t(s):xt(s,0,255)),n=255&(e[6]?_t(n):xt(n,0,255)),{r:i,g:s,b:n,a:o}}}(t):Ft(t)}class Kt{constructor(t){if(t instanceof Kt)return t;const e=typeof t;let i;var s,n,o;"object"===e?i=Xt(t):"string"===e&&(o=(s=t).length,"#"===s[0]&&(4===o||5===o?n={r:255&17*Mt[s[1]],g:255&17*Mt[s[2]],b:255&17*Mt[s[3]],a:5===o?17*Mt[s[4]]:255}:7!==o&&9!==o||(n={r:Mt[s[1]]<<4|Mt[s[2]],g:Mt[s[3]]<<4|Mt[s[4]],b:Mt[s[5]]<<4|Mt[s[6]],a:9===o?Mt[s[7]]<<4|Mt[s[8]]:255})),i=n||Wt(t)||qt(t)),this._rgb=i,this._valid=!!i}get valid(){return this._valid}get rgb(){var t=Ut(this._rgb);return t&&(t.a=vt(t.a)),t}set rgb(t){this._rgb=Xt(t)}rgbString(){return this._valid?(t=this._rgb)&&(t.a<255?`rgba(${t.r}, ${t.g}, ${t.b}, ${vt(t.a)})`:`rgb(${t.r}, ${t.g}, ${t.b})`):void 0;var t}hexString(){return this._valid?Ot(this._rgb):void 0}hslString(){return this._valid?function(t){if(!t)return;const e=Et(t),i=e[0],s=wt(e[1]),n=wt(e[2]);return t.a<255?`hsla(${i}, ${s}%, ${n}%, ${vt(t.a)})`:`hsl(${i}, ${s}%, ${n}%)`}(this._rgb):void 0}mix(t,e){if(t){const i=this.rgb,s=t.rgb;let n;const o=e===n?.5:e,a=2*o-1,r=i.a-s.a,l=((a*r==-1?a:(a+r)/(1+a*r))+1)/2;n=1-l,i.r=255&l*i.r+n*s.r+.5,i.g=255&l*i.g+n*s.g+.5,i.b=255&l*i.b+n*s.b+.5,i.a=o*i.a+(1-o)*s.a,this.rgb=i}return this}interpolate(t,e){return t&&(this._rgb=function(t,e,i){const s=$t(vt(t.r)),n=$t(vt(t.g)),o=$t(vt(t.b));return{r:yt(Ht(s+i*($t(vt(e.r))-s))),g:yt(Ht(n+i*($t(vt(e.g))-n))),b:yt(Ht(o+i*($t(vt(e.b))-o))),a:t.a+i*(e.a-t.a)}}(this._rgb,t._rgb,e)),this}clone(){return new Kt(this.rgb)}alpha(t){return this._rgb.a=yt(t),this}clearer(t){return this._rgb.a*=1-t,this}greyscale(){const t=this._rgb,e=bt(.3*t.r+.59*t.g+.11*t.b);return t.r=t.g=t.b=e,this}opaquer(t){return this._rgb.a*=1+t,this}negate(){const t=this._rgb;return t.r=255-t.r,t.g=255-t.g,t.b=255-t.b,this}lighten(t){return Yt(this._rgb,2,t),this}darken(t){return Yt(this._rgb,2,-t),this}saturate(t){return Yt(this._rgb,1,t),this}desaturate(t){return Yt(this._rgb,1,-t),this}rotate(t){return function(t,e){var i=Et(t);i[0]=zt(i[0]+e),i=It(i),t.r=i[0],t.g=i[1],t.b=i[2]}(this._rgb,t),this}}function Gt(t){return new Kt(t)}function Zt(t){if(t&&"object"==typeof t){const e=t.toString();return"[object CanvasPattern]"===e||"[object CanvasGradient]"===e}return!1}function Jt(t){return Zt(t)?t:Gt(t)}function Qt(t){return Zt(t)?t:Gt(t).saturate(.5).darken(.1).hexString()}const te=Object.create(null),ee=Object.create(null);function ie(t,e){if(!e)return t;const i=e.split(".");for(let e=0,s=i.length;et.chart.platform.getDevicePixelRatio(),this.elements={},this.events=["mousemove","mouseout","click","touchstart","touchmove"],this.font={family:"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif",size:12,style:"normal",lineHeight:1.2,weight:null},this.hover={},this.hoverBackgroundColor=(t,e)=>Qt(e.backgroundColor),this.hoverBorderColor=(t,e)=>Qt(e.borderColor),this.hoverColor=(t,e)=>Qt(e.color),this.indexAxis="x",this.interaction={mode:"nearest",intersect:!0,includeInvisible:!1},this.maintainAspectRatio=!0,this.onHover=null,this.onClick=null,this.parsing=!0,this.plugins={},this.responsive=!0,this.scale=void 0,this.scales={},this.showLine=!0,this.drawActiveElementsOnTop=!0,this.describe(t)}set(t,e){return se(this,t,e)}get(t){return ie(this,t)}describe(t,e){return se(ee,t,e)}override(t,e){return se(te,t,e)}route(t,e,i,s){const o=ie(this,t),a=ie(this,i),l="_"+e;Object.defineProperties(o,{[l]:{value:o[e],writable:!0},[e]:{enumerable:!0,get(){const t=this[l],e=a[s];return n(t)?Object.assign({},e,t):r(t,e)},set(t){this[l]=t}}})}}({_scriptable:t=>!t.startsWith("on"),_indexable:t=>"events"!==t,hover:{_fallback:"interaction"},interaction:{_scriptable:!1,_indexable:!1}});function oe(){return"undefined"!=typeof window&&"undefined"!=typeof document}function ae(t){let e=t.parentNode;return e&&"[object ShadowRoot]"===e.toString()&&(e=e.host),e}function re(t,e,i){let s;return"string"==typeof t?(s=parseInt(t,10),-1!==t.indexOf("%")&&(s=s/100*e.parentNode[i])):s=t,s}const le=t=>window.getComputedStyle(t,null);function he(t,e){return le(t).getPropertyValue(e)}const ce=["top","right","bottom","left"];function de(t,e,i){const s={};i=i?"-"+i:"";for(let n=0;n<4;n++){const o=ce[n];s[o]=parseFloat(t[e+"-"+o+i])||0}return s.width=s.left+s.right,s.height=s.top+s.bottom,s}function ue(t,e){if("native"in t)return t;const{canvas:i,currentDevicePixelRatio:s}=e,n=le(i),o="border-box"===n.boxSizing,a=de(n,"padding"),r=de(n,"border","width"),{x:l,y:h,box:c}=function(t,e){const i=t.touches,s=i&&i.length?i[0]:t,{offsetX:n,offsetY:o}=s;let a,r,l=!1;if(((t,e,i)=>(t>0||e>0)&&(!i||!i.shadowRoot))(n,o,t.target))a=n,r=o;else{const t=e.getBoundingClientRect();a=s.clientX-t.left,r=s.clientY-t.top,l=!0}return{x:a,y:r,box:l}}(t,i),d=a.left+(c&&r.left),u=a.top+(c&&r.top);let{width:f,height:g}=e;return o&&(f-=a.width+r.width,g-=a.height+r.height),{x:Math.round((l-d)/f*i.width/s),y:Math.round((h-u)/g*i.height/s)}}const fe=t=>Math.round(10*t)/10;function ge(t,e,i,s){const n=le(t),o=de(n,"margin"),a=re(n.maxWidth,t,"clientWidth")||A,r=re(n.maxHeight,t,"clientHeight")||A,l=function(t,e,i){let s,n;if(void 0===e||void 0===i){const o=ae(t);if(o){const t=o.getBoundingClientRect(),a=le(o),r=de(a,"border","width"),l=de(a,"padding");e=t.width-l.width-r.width,i=t.height-l.height-r.height,s=re(a.maxWidth,o,"clientWidth"),n=re(a.maxHeight,o,"clientHeight")}else e=t.clientWidth,i=t.clientHeight}return{width:e,height:i,maxWidth:s||A,maxHeight:n||A}}(t,e,i);let{width:h,height:c}=l;if("content-box"===n.boxSizing){const t=de(n,"border","width"),e=de(n,"padding");h-=e.width+t.width,c-=e.height+t.height}return h=Math.max(0,h-o.width),c=Math.max(0,s?Math.floor(h/s):c-o.height),h=fe(Math.min(h,a,l.maxWidth)),c=fe(Math.min(c,r,l.maxHeight)),h&&!c&&(c=fe(h/2)),{width:h,height:c}}function pe(t,e,i){const s=e||1,n=Math.floor(t.height*s),o=Math.floor(t.width*s);t.height=n/s,t.width=o/s;const a=t.canvas;return a.style&&(i||!a.style.height&&!a.style.width)&&(a.style.height=`${t.height}px`,a.style.width=`${t.width}px`),(t.currentDevicePixelRatio!==s||a.height!==n||a.width!==o)&&(t.currentDevicePixelRatio=s,a.height=n,a.width=o,t.ctx.setTransform(s,0,0,s,0,0),!0)}const me=function(){let t=!1;try{const e={get passive(){return t=!0,!1}};window.addEventListener("test",null,e),window.removeEventListener("test",null,e)}catch(t){}return t}();function be(t,e){const i=he(t,e),s=i&&i.match(/^(\d+)(\.\d+)?px$/);return s?+s[1]:void 0}function xe(t){return!t||i(t.size)||i(t.family)?null:(t.style?t.style+" ":"")+(t.weight?t.weight+" ":"")+t.size+"px "+t.family}function _e(t,e,i,s,n){let o=e[n];return o||(o=e[n]=t.measureText(n).width,i.push(n)),o>s&&(s=o),s}function ye(t,e,i,n){let o=(n=n||{}).data=n.data||{},a=n.garbageCollect=n.garbageCollect||[];n.font!==e&&(o=n.data={},a=n.garbageCollect=[],n.font=e),t.save(),t.font=e;let r=0;const l=i.length;let h,c,d,u,f;for(h=0;hi.length){for(h=0;h0&&t.stroke()}}function Se(t,e,i){return i=i||.5,!e||t&&t.x>e.left-i&&t.xe.top-i&&t.y0&&""!==r.strokeColor;let c,d;for(t.save(),t.font=a.string,function(t,e){e.translation&&t.translate(e.translation[0],e.translation[1]);i(e.rotation)||t.rotate(e.rotation);e.color&&(t.fillStyle=e.color);e.textAlign&&(t.textAlign=e.textAlign);e.textBaseline&&(t.textBaseline=e.textBaseline)}(t,r),c=0;ct[0])){M(s)||(s=$e("_fallback",t));const o={[Symbol.toStringTag]:"Object",_cacheable:!0,_scopes:t,_rootScopes:i,_fallback:s,_getTarget:n,override:n=>Ee([n,...t],e,i,s)};return new Proxy(o,{deleteProperty:(e,i)=>(delete e[i],delete e._keys,delete t[0][i],!0),get:(i,s)=>Ve(i,s,(()=>function(t,e,i,s){let n;for(const o of e)if(n=$e(ze(o,t),i),M(n))return Fe(t,n)?je(i,s,t,n):n}(s,e,t,i))),getOwnPropertyDescriptor:(t,e)=>Reflect.getOwnPropertyDescriptor(t._scopes[0],e),getPrototypeOf:()=>Reflect.getPrototypeOf(t[0]),has:(t,e)=>Ye(t).includes(e),ownKeys:t=>Ye(t),set(t,e,i){const s=t._storage||(t._storage=n());return t[e]=s[e]=i,delete t._keys,!0}})}function Re(t,e,i,o){const a={_cacheable:!1,_proxy:t,_context:e,_subProxy:i,_stack:new Set,_descriptors:Ie(t,o),setContext:e=>Re(t,e,i,o),override:s=>Re(t.override(s),e,i,o)};return new Proxy(a,{deleteProperty:(e,i)=>(delete e[i],delete t[i],!0),get:(t,e,i)=>Ve(t,e,(()=>function(t,e,i){const{_proxy:o,_context:a,_subProxy:r,_descriptors:l}=t;let h=o[e];k(h)&&l.isScriptable(e)&&(h=function(t,e,i,s){const{_proxy:n,_context:o,_subProxy:a,_stack:r}=i;if(r.has(t))throw new Error("Recursion detected: "+Array.from(r).join("->")+"->"+t);r.add(t),e=e(o,a||s),r.delete(t),Fe(t,e)&&(e=je(n._scopes,n,t,e));return e}(e,h,t,i));s(h)&&h.length&&(h=function(t,e,i,s){const{_proxy:o,_context:a,_subProxy:r,_descriptors:l}=i;if(M(a.index)&&s(t))e=e[a.index%e.length];else if(n(e[0])){const i=e,s=o._scopes.filter((t=>t!==i));e=[];for(const n of i){const i=je(s,o,t,n);e.push(Re(i,a,r&&r[t],l))}}return e}(e,h,t,l.isIndexable));Fe(e,h)&&(h=Re(h,a,r&&r[e],l));return h}(t,e,i))),getOwnPropertyDescriptor:(e,i)=>e._descriptors.allKeys?Reflect.has(t,i)?{enumerable:!0,configurable:!0}:void 0:Reflect.getOwnPropertyDescriptor(t,i),getPrototypeOf:()=>Reflect.getPrototypeOf(t),has:(e,i)=>Reflect.has(t,i),ownKeys:()=>Reflect.ownKeys(t),set:(e,i,s)=>(t[i]=s,delete e[i],!0)})}function Ie(t,e={scriptable:!0,indexable:!0}){const{_scriptable:i=e.scriptable,_indexable:s=e.indexable,_allKeys:n=e.allKeys}=t;return{allKeys:n,scriptable:i,indexable:s,isScriptable:k(i)?i:()=>i,isIndexable:k(s)?s:()=>s}}const ze=(t,e)=>t?t+w(e):e,Fe=(t,e)=>n(e)&&"adapters"!==t&&(null===Object.getPrototypeOf(e)||e.constructor===Object);function Ve(t,e,i){if(Object.prototype.hasOwnProperty.call(t,e))return t[e];const s=i();return t[e]=s,s}function Be(t,e,i){return k(t)?t(e,i):t}const Ne=(t,e)=>!0===t?e:"string"==typeof t?y(e,t):void 0;function We(t,e,i,s,n){for(const o of e){const e=Ne(i,o);if(e){t.add(e);const o=Be(e._fallback,i,n);if(M(o)&&o!==i&&o!==s)return o}else if(!1===e&&M(s)&&i!==s)return null}return!1}function je(t,e,i,o){const a=e._rootScopes,r=Be(e._fallback,i,o),l=[...t,...a],h=new Set;h.add(o);let c=He(h,l,i,r||i,o);return null!==c&&((!M(r)||r===i||(c=He(h,l,r,c,o),null!==c))&&Ee(Array.from(h),[""],a,r,(()=>function(t,e,i){const o=t._getTarget();e in o||(o[e]={});const a=o[e];if(s(a)&&n(i))return i;return a}(e,i,o))))}function He(t,e,i,s,n){for(;i;)i=We(t,e,i,s,n);return i}function $e(t,e){for(const i of e){if(!i)continue;const e=i[t];if(M(e))return e}}function Ye(t){let e=t._keys;return e||(e=t._keys=function(t){const e=new Set;for(const i of t)for(const t of Object.keys(i).filter((t=>!t.startsWith("_"))))e.add(t);return Array.from(e)}(t._scopes)),e}function Ue(t,e,i,s){const{iScale:n}=t,{key:o="r"}=this._parsing,a=new Array(s);let r,l,h,c;for(r=0,l=s;re"x"===t?"y":"x";function Ge(t,e,i,s){const n=t.skip?e:t,o=e,a=i.skip?e:i,r=X(o,n),l=X(a,o);let h=r/(r+l),c=l/(r+l);h=isNaN(h)?0:h,c=isNaN(c)?0:c;const d=s*h,u=s*c;return{previous:{x:o.x-d*(a.x-n.x),y:o.y-d*(a.y-n.y)},next:{x:o.x+u*(a.x-n.x),y:o.y+u*(a.y-n.y)}}}function Ze(t,e="x"){const i=Ke(e),s=t.length,n=Array(s).fill(0),o=Array(s);let a,r,l,h=qe(t,0);for(a=0;a!t.skip))),"monotone"===e.cubicInterpolationMode)Ze(t,n);else{let i=s?t[t.length-1]:t[0];for(o=0,a=t.length;o0===t||1===t,ei=(t,e,i)=>-Math.pow(2,10*(t-=1))*Math.sin((t-e)*O/i),ii=(t,e,i)=>Math.pow(2,-10*t)*Math.sin((t-e)*O/i)+1,si={linear:t=>t,easeInQuad:t=>t*t,easeOutQuad:t=>-t*(t-2),easeInOutQuad:t=>(t/=.5)<1?.5*t*t:-.5*(--t*(t-2)-1),easeInCubic:t=>t*t*t,easeOutCubic:t=>(t-=1)*t*t+1,easeInOutCubic:t=>(t/=.5)<1?.5*t*t*t:.5*((t-=2)*t*t+2),easeInQuart:t=>t*t*t*t,easeOutQuart:t=>-((t-=1)*t*t*t-1),easeInOutQuart:t=>(t/=.5)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2),easeInQuint:t=>t*t*t*t*t,easeOutQuint:t=>(t-=1)*t*t*t*t+1,easeInOutQuint:t=>(t/=.5)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2),easeInSine:t=>1-Math.cos(t*L),easeOutSine:t=>Math.sin(t*L),easeInOutSine:t=>-.5*(Math.cos(D*t)-1),easeInExpo:t=>0===t?0:Math.pow(2,10*(t-1)),easeOutExpo:t=>1===t?1:1-Math.pow(2,-10*t),easeInOutExpo:t=>ti(t)?t:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1))),easeInCirc:t=>t>=1?t:-(Math.sqrt(1-t*t)-1),easeOutCirc:t=>Math.sqrt(1-(t-=1)*t),easeInOutCirc:t=>(t/=.5)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1),easeInElastic:t=>ti(t)?t:ei(t,.075,.3),easeOutElastic:t=>ti(t)?t:ii(t,.075,.3),easeInOutElastic(t){const e=.1125;return ti(t)?t:t<.5?.5*ei(2*t,e,.45):.5+.5*ii(2*t-1,e,.45)},easeInBack(t){const e=1.70158;return t*t*((e+1)*t-e)},easeOutBack(t){const e=1.70158;return(t-=1)*t*((e+1)*t+e)+1},easeInOutBack(t){let e=1.70158;return(t/=.5)<1?t*t*((1+(e*=1.525))*t-e)*.5:.5*((t-=2)*t*((1+(e*=1.525))*t+e)+2)},easeInBounce:t=>1-si.easeOutBounce(1-t),easeOutBounce(t){const e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.5/i)*t+.75:t<2.5/i?e*(t-=2.25/i)*t+.9375:e*(t-=2.625/i)*t+.984375},easeInOutBounce:t=>t<.5?.5*si.easeInBounce(2*t):.5*si.easeOutBounce(2*t-1)+.5};function ni(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:t.y+i*(e.y-t.y)}}function oi(t,e,i,s){return{x:t.x+i*(e.x-t.x),y:"middle"===s?i<.5?t.y:e.y:"after"===s?i<1?t.y:e.y:i>0?e.y:t.y}}function ai(t,e,i,s){const n={x:t.cp2x,y:t.cp2y},o={x:e.cp1x,y:e.cp1y},a=ni(t,n,i),r=ni(n,o,i),l=ni(o,e,i),h=ni(a,r,i),c=ni(r,l,i);return ni(h,c,i)}const ri=new Map;function li(t,e,i){return function(t,e){e=e||{};const i=t+JSON.stringify(e);let s=ri.get(i);return s||(s=new Intl.NumberFormat(t,e),ri.set(i,s)),s}(e,i).format(t)}const hi=new RegExp(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/),ci=new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);function di(t,e){const i=(""+t).match(hi);if(!i||"normal"===i[1])return 1.2*e;switch(t=+i[2],i[3]){case"px":return t;case"%":t/=100}return e*t}function ui(t,e){const i={},s=n(e),o=s?Object.keys(e):e,a=n(t)?s?i=>r(t[i],t[e[i]]):e=>t[e]:()=>t;for(const t of o)i[t]=+a(t)||0;return i}function fi(t){return ui(t,{top:"y",right:"x",bottom:"y",left:"x"})}function gi(t){return ui(t,["topLeft","topRight","bottomLeft","bottomRight"])}function pi(t){const e=fi(t);return e.width=e.left+e.right,e.height=e.top+e.bottom,e}function mi(t,e){t=t||{},e=e||ne.font;let i=r(t.size,e.size);"string"==typeof i&&(i=parseInt(i,10));let s=r(t.style,e.style);s&&!(""+s).match(ci)&&(console.warn('Invalid font style specified: "'+s+'"'),s="");const n={family:r(t.family,e.family),lineHeight:di(r(t.lineHeight,e.lineHeight),i),size:i,style:s,weight:r(t.weight,e.weight),string:""};return n.string=xe(n),n}function bi(t,e,i,n){let o,a,r,l=!0;for(o=0,a=t.length;oi&&0===t?0:t+e;return{min:a(s,-Math.abs(o)),max:a(n,o)}}function _i(t,e){return Object.assign(Object.create(t),e)}function yi(t,e,i){return t?function(t,e){return{x:i=>t+t+e-i,setWidth(t){e=t},textAlign:t=>"center"===t?t:"right"===t?"left":"right",xPlus:(t,e)=>t-e,leftForLtr:(t,e)=>t-e}}(e,i):{x:t=>t,setWidth(t){},textAlign:t=>t,xPlus:(t,e)=>t+e,leftForLtr:(t,e)=>t}}function vi(t,e){let i,s;"ltr"!==e&&"rtl"!==e||(i=t.canvas.style,s=[i.getPropertyValue("direction"),i.getPropertyPriority("direction")],i.setProperty("direction",e,"important"),t.prevTextDirection=s)}function wi(t,e){void 0!==e&&(delete t.prevTextDirection,t.canvas.style.setProperty("direction",e[0],e[1]))}function Mi(t){return"angle"===t?{between:G,compare:q,normalize:K}:{between:Q,compare:(t,e)=>t-e,normalize:t=>t}}function ki({start:t,end:e,count:i,loop:s,style:n}){return{start:t%i,end:e%i,loop:s&&(e-t+1)%i==0,style:n}}function Si(t,e,i){if(!i)return[t];const{property:s,start:n,end:o}=i,a=e.length,{compare:r,between:l,normalize:h}=Mi(s),{start:c,end:d,loop:u,style:f}=function(t,e,i){const{property:s,start:n,end:o}=i,{between:a,normalize:r}=Mi(s),l=e.length;let h,c,{start:d,end:u,loop:f}=t;if(f){for(d+=l,u+=l,h=0,c=l;hx||l(n,b,p)&&0!==r(n,b),v=()=>!x||0===r(o,p)||l(o,b,p);for(let t=c,i=c;t<=d;++t)m=e[t%a],m.skip||(p=h(m[s]),p!==b&&(x=l(p,n,o),null===_&&y()&&(_=0===r(p,n)?t:i),null!==_&&v()&&(g.push(ki({start:_,end:t,loop:u,count:a,style:f})),_=null),i=t,b=p));return null!==_&&g.push(ki({start:_,end:d,loop:u,count:a,style:f})),g}function Pi(t,e){const i=[],s=t.segments;for(let n=0;nn&&t[o%e].skip;)o--;return o%=e,{start:n,end:o}}(i,n,o,s);if(!0===s)return Oi(t,[{start:a,end:r,loop:o}],i,e);return Oi(t,function(t,e,i,s){const n=t.length,o=[];let a,r=e,l=t[e];for(a=e+1;a<=i;++a){const i=t[a%n];i.skip||i.stop?l.skip||(s=!1,o.push({start:e%n,end:(a-1)%n,loop:s}),e=r=i.stop?a:null):(r=a,l.skip&&(e=a)),l=i}return null!==r&&o.push({start:e%n,end:r%n,loop:s}),o}(i,a,r{t[a](e[i],n)&&(o.push({element:t,datasetIndex:s,index:l}),r=r||t.inRange(e.x,e.y,n))})),s&&!r?[]:o}var Vi={evaluateInteractionItems:Ei,modes:{index(t,e,i,s){const n=ue(e,t),o=i.axis||"x",a=i.includeInvisible||!1,r=i.intersect?Ri(t,n,o,s,a):zi(t,n,o,!1,s,a),l=[];return r.length?(t.getSortedVisibleDatasetMetas().forEach((t=>{const e=r[0].index,i=t.data[e];i&&!i.skip&&l.push({element:i,datasetIndex:t.index,index:e})})),l):[]},dataset(t,e,i,s){const n=ue(e,t),o=i.axis||"xy",a=i.includeInvisible||!1;let r=i.intersect?Ri(t,n,o,s,a):zi(t,n,o,!1,s,a);if(r.length>0){const e=r[0].datasetIndex,i=t.getDatasetMeta(e).data;r=[];for(let t=0;tRi(t,ue(e,t),i.axis||"xy",s,i.includeInvisible||!1),nearest(t,e,i,s){const n=ue(e,t),o=i.axis||"xy",a=i.includeInvisible||!1;return zi(t,n,o,i.intersect,s,a)},x:(t,e,i,s)=>Fi(t,ue(e,t),"x",i.intersect,s),y:(t,e,i,s)=>Fi(t,ue(e,t),"y",i.intersect,s)}};const Bi=["left","top","right","bottom"];function Ni(t,e){return t.filter((t=>t.pos===e))}function Wi(t,e){return t.filter((t=>-1===Bi.indexOf(t.pos)&&t.box.axis===e))}function ji(t,e){return t.sort(((t,i)=>{const s=e?i:t,n=e?t:i;return s.weight===n.weight?s.index-n.index:s.weight-n.weight}))}function Hi(t,e){const i=function(t){const e={};for(const i of t){const{stack:t,pos:s,stackWeight:n}=i;if(!t||!Bi.includes(s))continue;const o=e[t]||(e[t]={count:0,placed:0,weight:0,size:0});o.count++,o.weight+=n}return e}(t),{vBoxMaxWidth:s,hBoxMaxHeight:n}=e;let o,a,r;for(o=0,a=t.length;o{s[t]=Math.max(e[t],i[t])})),s}return s(t?["left","right"]:["top","bottom"])}function qi(t,e,i,s){const n=[];let o,a,r,l,h,c;for(o=0,a=t.length,h=0;ot.box.fullSize)),!0),s=ji(Ni(e,"left"),!0),n=ji(Ni(e,"right")),o=ji(Ni(e,"top"),!0),a=ji(Ni(e,"bottom")),r=Wi(e,"x"),l=Wi(e,"y");return{fullSize:i,leftAndTop:s.concat(o),rightAndBottom:n.concat(l).concat(a).concat(r),chartArea:Ni(e,"chartArea"),vertical:s.concat(n).concat(l),horizontal:o.concat(a).concat(r)}}(t.boxes),l=r.vertical,h=r.horizontal;d(t.boxes,(t=>{"function"==typeof t.beforeLayout&&t.beforeLayout()}));const c=l.reduce(((t,e)=>e.box.options&&!1===e.box.options.display?t:t+1),0)||1,u=Object.freeze({outerWidth:e,outerHeight:i,padding:n,availableWidth:o,availableHeight:a,vBoxMaxWidth:o/2/c,hBoxMaxHeight:a/2}),f=Object.assign({},n);Yi(f,pi(s));const g=Object.assign({maxPadding:f,w:o,h:a,x:n.left,y:n.top},n),p=Hi(l.concat(h),u);qi(r.fullSize,g,u,p),qi(l,g,u,p),qi(h,g,u,p)&&qi(l,g,u,p),function(t){const e=t.maxPadding;function i(i){const s=Math.max(e[i]-t[i],0);return t[i]+=s,s}t.y+=i("top"),t.x+=i("left"),i("right"),i("bottom")}(g),Gi(r.leftAndTop,g,u,p),g.x+=g.w,g.y+=g.h,Gi(r.rightAndBottom,g,u,p),t.chartArea={left:g.left,top:g.top,right:g.left+g.w,bottom:g.top+g.h,height:g.h,width:g.w},d(r.chartArea,(e=>{const i=e.box;Object.assign(i,t.chartArea),i.update(g.w,g.h,{left:0,top:0,right:0,bottom:0})}))}};class Ji{acquireContext(t,e){}releaseContext(t){return!1}addEventListener(t,e,i){}removeEventListener(t,e,i){}getDevicePixelRatio(){return 1}getMaximumSize(t,e,i,s){return e=Math.max(0,e||t.width),i=i||t.height,{width:e,height:Math.max(0,s?Math.floor(e/s):i)}}isAttached(t){return!0}updateConfig(t){}}class Qi extends Ji{acquireContext(t){return t&&t.getContext&&t.getContext("2d")||null}updateConfig(t){t.options.animation=!1}}const ts={touchstart:"mousedown",touchmove:"mousemove",touchend:"mouseup",pointerenter:"mouseenter",pointerdown:"mousedown",pointermove:"mousemove",pointerup:"mouseup",pointerleave:"mouseout",pointerout:"mouseout"},es=t=>null===t||""===t;const is=!!me&&{passive:!0};function ss(t,e,i){t.canvas.removeEventListener(e,i,is)}function ns(t,e){for(const i of t)if(i===e||i.contains(e))return!0}function os(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ns(i.addedNodes,s),e=e&&!ns(i.removedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}function as(t,e,i){const s=t.canvas,n=new MutationObserver((t=>{let e=!1;for(const i of t)e=e||ns(i.removedNodes,s),e=e&&!ns(i.addedNodes,s);e&&i()}));return n.observe(document,{childList:!0,subtree:!0}),n}const rs=new Map;let ls=0;function hs(){const t=window.devicePixelRatio;t!==ls&&(ls=t,rs.forEach(((e,i)=>{i.currentDevicePixelRatio!==t&&e()})))}function cs(t,e,i){const s=t.canvas,n=s&&ae(s);if(!n)return;const o=ht(((t,e)=>{const s=n.clientWidth;i(t,e),s{const e=t[0],i=e.contentRect.width,s=e.contentRect.height;0===i&&0===s||o(i,s)}));return a.observe(n),function(t,e){rs.size||window.addEventListener("resize",hs),rs.set(t,e)}(t,o),a}function ds(t,e,i){i&&i.disconnect(),"resize"===e&&function(t){rs.delete(t),rs.size||window.removeEventListener("resize",hs)}(t)}function us(t,e,i){const s=t.canvas,n=ht((e=>{null!==t.ctx&&i(function(t,e){const i=ts[t.type]||t.type,{x:s,y:n}=ue(t,e);return{type:i,chart:e,native:t,x:void 0!==s?s:null,y:void 0!==n?n:null}}(e,t))}),t,(t=>{const e=t[0];return[e,e.offsetX,e.offsetY]}));return function(t,e,i){t.addEventListener(e,i,is)}(s,e,n),n}class fs extends Ji{acquireContext(t,e){const i=t&&t.getContext&&t.getContext("2d");return i&&i.canvas===t?(function(t,e){const i=t.style,s=t.getAttribute("height"),n=t.getAttribute("width");if(t.$chartjs={initial:{height:s,width:n,style:{display:i.display,height:i.height,width:i.width}}},i.display=i.display||"block",i.boxSizing=i.boxSizing||"border-box",es(n)){const e=be(t,"width");void 0!==e&&(t.width=e)}if(es(s))if(""===t.style.height)t.height=t.width/(e||2);else{const e=be(t,"height");void 0!==e&&(t.height=e)}}(t,e),i):null}releaseContext(t){const e=t.canvas;if(!e.$chartjs)return!1;const s=e.$chartjs.initial;["height","width"].forEach((t=>{const n=s[t];i(n)?e.removeAttribute(t):e.setAttribute(t,n)}));const n=s.style||{};return Object.keys(n).forEach((t=>{e.style[t]=n[t]})),e.width=e.width,delete e.$chartjs,!0}addEventListener(t,e,i){this.removeEventListener(t,e);const s=t.$proxies||(t.$proxies={}),n={attach:os,detach:as,resize:cs}[e]||us;s[e]=n(t,e,i)}removeEventListener(t,e){const i=t.$proxies||(t.$proxies={}),s=i[e];if(!s)return;({attach:ds,detach:ds,resize:ds}[e]||ss)(t,e,s),i[e]=void 0}getDevicePixelRatio(){return window.devicePixelRatio}getMaximumSize(t,e,i,s){return ge(t,e,i,s)}isAttached(t){const e=ae(t);return!(!e||!e.isConnected)}}function gs(t){return!oe()||"undefined"!=typeof OffscreenCanvas&&t instanceof OffscreenCanvas?Qi:fs}var ps=Object.freeze({__proto__:null,_detectPlatform:gs,BasePlatform:Ji,BasicPlatform:Qi,DomPlatform:fs});const ms="transparent",bs={boolean:(t,e,i)=>i>.5?e:t,color(t,e,i){const s=Jt(t||ms),n=s.valid&&Jt(e||ms);return n&&n.valid?n.mix(s,i).hexString():e},number:(t,e,i)=>t+(e-t)*i};class xs{constructor(t,e,i,s){const n=e[i];s=bi([t.to,s,n,t.from]);const o=bi([t.from,n,s]);this._active=!0,this._fn=t.fn||bs[t.type||typeof o],this._easing=si[t.easing]||si.linear,this._start=Math.floor(Date.now()+(t.delay||0)),this._duration=this._total=Math.floor(t.duration),this._loop=!!t.loop,this._target=e,this._prop=i,this._from=o,this._to=s,this._promises=void 0}active(){return this._active}update(t,e,i){if(this._active){this._notify(!1);const s=this._target[this._prop],n=i-this._start,o=this._duration-n;this._start=i,this._duration=Math.floor(Math.max(o,t.duration)),this._total+=n,this._loop=!!t.loop,this._to=bi([t.to,e,s,t.from]),this._from=bi([t.from,s,e])}}cancel(){this._active&&(this.tick(Date.now()),this._active=!1,this._notify(!1))}tick(t){const e=t-this._start,i=this._duration,s=this._prop,n=this._from,o=this._loop,a=this._to;let r;if(this._active=n!==a&&(o||e1?2-r:r,r=this._easing(Math.min(1,Math.max(0,r))),this._target[s]=this._fn(n,a,r))}wait(){const t=this._promises||(this._promises=[]);return new Promise(((e,i)=>{t.push({res:e,rej:i})}))}_notify(t){const e=t?"res":"rej",i=this._promises||[];for(let t=0;t"onProgress"!==t&&"onComplete"!==t&&"fn"!==t}),ne.set("animations",{colors:{type:"color",properties:["color","borderColor","backgroundColor"]},numbers:{type:"number",properties:["x","y","borderWidth","radius","tension"]}}),ne.describe("animations",{_fallback:"animation"}),ne.set("transitions",{active:{animation:{duration:400}},resize:{animation:{duration:0}},show:{animations:{colors:{from:"transparent"},visible:{type:"boolean",duration:0}}},hide:{animations:{colors:{to:"transparent"},visible:{type:"boolean",easing:"linear",fn:t=>0|t}}}});class ys{constructor(t,e){this._chart=t,this._properties=new Map,this.configure(e)}configure(t){if(!n(t))return;const e=this._properties;Object.getOwnPropertyNames(t).forEach((i=>{const o=t[i];if(!n(o))return;const a={};for(const t of _s)a[t]=o[t];(s(o.properties)&&o.properties||[i]).forEach((t=>{t!==i&&e.has(t)||e.set(t,a)}))}))}_animateOptions(t,e){const i=e.options,s=function(t,e){if(!e)return;let i=t.options;if(!i)return void(t.options=e);i.$shared&&(t.options=i=Object.assign({},i,{$shared:!1,$animations:{}}));return i}(t,i);if(!s)return[];const n=this._createAnimations(s,i);return i.$shared&&function(t,e){const i=[],s=Object.keys(e);for(let e=0;e{t.options=i}),(()=>{})),n}_createAnimations(t,e){const i=this._properties,s=[],n=t.$animations||(t.$animations={}),o=Object.keys(e),a=Date.now();let r;for(r=o.length-1;r>=0;--r){const l=o[r];if("$"===l.charAt(0))continue;if("options"===l){s.push(...this._animateOptions(t,e));continue}const h=e[l];let c=n[l];const d=i.get(l);if(c){if(d&&c.active()){c.update(d,h,a);continue}c.cancel()}d&&d.duration?(n[l]=c=new xs(d,t,l,h),s.push(c)):t[l]=h}return s}update(t,e){if(0===this._properties.size)return void Object.assign(t,e);const i=this._createAnimations(t,e);return i.length?(mt.add(this._chart,i),!0):void 0}}function vs(t,e){const i=t&&t.options||{},s=i.reverse,n=void 0===i.min?e:0,o=void 0===i.max?e:0;return{start:s?o:n,end:s?n:o}}function ws(t,e){const i=[],s=t._getSortedDatasetMetas(e);let n,o;for(n=0,o=s.length;n0||!i&&e<0)return n.index}return null}function Ds(t,e){const{chart:i,_cachedMeta:s}=t,n=i._stacks||(i._stacks={}),{iScale:o,vScale:a,index:r}=s,l=o.axis,h=a.axis,c=function(t,e,i){return`${t.id}.${e.id}.${i.stack||i.type}`}(o,a,s),d=e.length;let u;for(let t=0;ti[t].axis===e)).shift()}function Cs(t,e){const i=t.controller.index,s=t.vScale&&t.vScale.axis;if(s){e=e||t._parsed;for(const t of e){const e=t._stacks;if(!e||void 0===e[s]||void 0===e[s][i])return;delete e[s][i]}}}const As=t=>"reset"===t||"none"===t,Ts=(t,e)=>e?t:Object.assign({},t);class Ls{constructor(t,e){this.chart=t,this._ctx=t.ctx,this.index=e,this._cachedDataOpts={},this._cachedMeta=this.getMeta(),this._type=this._cachedMeta.type,this.options=void 0,this._parsing=!1,this._data=void 0,this._objectData=void 0,this._sharedOptions=void 0,this._drawStart=void 0,this._drawCount=void 0,this.enableOptionSharing=!1,this.supportsDecimation=!1,this.$context=void 0,this._syncList=[],this.initialize()}initialize(){const t=this._cachedMeta;this.configure(),this.linkScales(),t._stacked=ks(t.vScale,t),this.addElements()}updateIndex(t){this.index!==t&&Cs(this._cachedMeta),this.index=t}linkScales(){const t=this.chart,e=this._cachedMeta,i=this.getDataset(),s=(t,e,i,s)=>"x"===t?e:"r"===t?s:i,n=e.xAxisID=r(i.xAxisID,Os(t,"x")),o=e.yAxisID=r(i.yAxisID,Os(t,"y")),a=e.rAxisID=r(i.rAxisID,Os(t,"r")),l=e.indexAxis,h=e.iAxisID=s(l,n,o,a),c=e.vAxisID=s(l,o,n,a);e.xScale=this.getScaleForId(n),e.yScale=this.getScaleForId(o),e.rScale=this.getScaleForId(a),e.iScale=this.getScaleForId(h),e.vScale=this.getScaleForId(c)}getDataset(){return this.chart.data.datasets[this.index]}getMeta(){return this.chart.getDatasetMeta(this.index)}getScaleForId(t){return this.chart.scales[t]}_getOtherScale(t){const e=this._cachedMeta;return t===e.iScale?e.vScale:e.iScale}reset(){this._update("reset")}_destroy(){const t=this._cachedMeta;this._data&&at(this._data,this),t._stacked&&Cs(t)}_dataCheck(){const t=this.getDataset(),e=t.data||(t.data=[]),i=this._data;if(n(e))this._data=function(t){const e=Object.keys(t),i=new Array(e.length);let s,n,o;for(s=0,n=e.length;s0&&i._parsed[t-1];if(!1===this._parsing)i._parsed=o,i._sorted=!0,d=o;else{d=s(o[t])?this.parseArrayData(i,o,t,e):n(o[t])?this.parseObjectData(i,o,t,e):this.parsePrimitiveData(i,o,t,e);const a=()=>null===c[l]||f&&c[l]t&&!e.hidden&&e._stacked&&{keys:ws(i,!0),values:null})(e,i,this.chart),h={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY},{min:c,max:d}=function(t){const{min:e,max:i,minDefined:s,maxDefined:n}=t.getUserBounds();return{min:s?e:Number.NEGATIVE_INFINITY,max:n?i:Number.POSITIVE_INFINITY}}(r);let u,f;function g(){f=s[u];const e=f[r.axis];return!o(f[t.axis])||c>e||d=0;--u)if(!g()){this.updateRangeFromParsed(h,t,f,l);break}return h}getAllParsedValues(t){const e=this._cachedMeta._parsed,i=[];let s,n,a;for(s=0,n=e.length;s=0&&tthis.getContext(i,s)),c);return f.$shared&&(f.$shared=r,n[o]=Object.freeze(Ts(f,r))),f}_resolveAnimations(t,e,i){const s=this.chart,n=this._cachedDataOpts,o=`animation-${e}`,a=n[o];if(a)return a;let r;if(!1!==s.options.animation){const s=this.chart.config,n=s.datasetAnimationScopeKeys(this._type,e),o=s.getOptionScopes(this.getDataset(),n);r=s.createResolver(o,this.getContext(t,i,e))}const l=new ys(s,r&&r.animations);return r&&r._cacheable&&(n[o]=Object.freeze(l)),l}getSharedOptions(t){if(t.$shared)return this._sharedOptions||(this._sharedOptions=Object.assign({},t))}includeOptions(t,e){return!e||As(t)||this.chart._animationsDisabled}_getSharedOptions(t,e){const i=this.resolveDataElementOptions(t,e),s=this._sharedOptions,n=this.getSharedOptions(i),o=this.includeOptions(e,n)||n!==s;return this.updateSharedOptions(n,e,i),{sharedOptions:n,includeOptions:o}}updateElement(t,e,i,s){As(s)?Object.assign(t,i):this._resolveAnimations(e,s).update(t,i)}updateSharedOptions(t,e,i){t&&!As(e)&&this._resolveAnimations(void 0,e).update(t,i)}_setStyle(t,e,i,s){t.active=s;const n=this.getStyle(e,s);this._resolveAnimations(e,i,s).update(t,{options:!s&&this.getSharedOptions(n)||n})}removeHoverStyle(t,e,i){this._setStyle(t,i,"active",!1)}setHoverStyle(t,e,i){this._setStyle(t,i,"active",!0)}_removeDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!1)}_setDatasetHoverStyle(){const t=this._cachedMeta.dataset;t&&this._setStyle(t,void 0,"active",!0)}_resyncElements(t){const e=this._data,i=this._cachedMeta.data;for(const[t,e,i]of this._syncList)this[t](e,i);this._syncList=[];const s=i.length,n=e.length,o=Math.min(n,s);o&&this.parse(0,o),n>s?this._insertElements(s,n-s,t):n{for(t.length+=e,a=t.length-1;a>=o;a--)t[a]=t[a-e]};for(r(n),a=t;a{s[t]=i[t]&&i[t].active()?i[t]._to:this[t]})),s}}Es.defaults={},Es.defaultRoutes=void 0;const Rs={values:t=>s(t)?t:""+t,numeric(t,e,i){if(0===t)return"0";const s=this.chart.options.locale;let n,o=t;if(i.length>1){const e=Math.max(Math.abs(i[0].value),Math.abs(i[i.length-1].value));(e<1e-4||e>1e15)&&(n="scientific"),o=function(t,e){let i=e.length>3?e[2].value-e[1].value:e[1].value-e[0].value;Math.abs(i)>=1&&t!==Math.floor(t)&&(i=t-Math.floor(t));return i}(t,i)}const a=I(Math.abs(o)),r=Math.max(Math.min(-1*Math.floor(a),20),0),l={notation:n,minimumFractionDigits:r,maximumFractionDigits:r};return Object.assign(l,this.options.ticks.format),li(t,s,l)},logarithmic(t,e,i){if(0===t)return"0";const s=t/Math.pow(10,Math.floor(I(t)));return 1===s||2===s||5===s?Rs.numeric.call(this,t,e,i):""}};var Is={formatters:Rs};function zs(t,e){const s=t.options.ticks,n=s.maxTicksLimit||function(t){const e=t.options.offset,i=t._tickSize(),s=t._length/i+(e?0:1),n=t._maxLength/i;return Math.floor(Math.min(s,n))}(t),o=s.major.enabled?function(t){const e=[];let i,s;for(i=0,s=t.length;in)return function(t,e,i,s){let n,o=0,a=i[0];for(s=Math.ceil(s),n=0;nn)return e}return Math.max(n,1)}(o,e,n);if(a>0){let t,s;const n=a>1?Math.round((l-r)/(a-1)):null;for(Fs(e,h,c,i(n)?0:r-n,r),t=0,s=a-1;te.lineWidth,tickColor:(t,e)=>e.color,offset:!1,borderDash:[],borderDashOffset:0,borderWidth:1},title:{display:!1,text:"",padding:{top:4,bottom:4}},ticks:{minRotation:0,maxRotation:50,mirror:!1,textStrokeWidth:0,textStrokeColor:"",padding:3,display:!0,autoSkip:!0,autoSkipPadding:3,labelOffset:0,callback:Is.formatters.values,minor:{},major:{},align:"center",crossAlign:"near",showLabelBackdrop:!1,backdropColor:"rgba(255, 255, 255, 0.75)",backdropPadding:2}}),ne.route("scale.ticks","color","","color"),ne.route("scale.grid","color","","borderColor"),ne.route("scale.grid","borderColor","","borderColor"),ne.route("scale.title","color","","color"),ne.describe("scale",{_fallback:!1,_scriptable:t=>!t.startsWith("before")&&!t.startsWith("after")&&"callback"!==t&&"parser"!==t,_indexable:t=>"borderDash"!==t&&"tickBorderDash"!==t}),ne.describe("scales",{_fallback:"scale"}),ne.describe("scale.ticks",{_scriptable:t=>"backdropPadding"!==t&&"callback"!==t,_indexable:t=>"backdropPadding"!==t});const Vs=(t,e,i)=>"top"===e||"left"===e?t[e]+i:t[e]-i;function Bs(t,e){const i=[],s=t.length/e,n=t.length;let o=0;for(;oa+r)))return h}function Ws(t){return t.drawTicks?t.tickLength:0}function js(t,e){if(!t.display)return 0;const i=mi(t.font,e),n=pi(t.padding);return(s(t.text)?t.text.length:1)*i.lineHeight+n.height}function Hs(t,e,i){let s=dt(t);return(i&&"right"!==e||!i&&"right"===e)&&(s=(t=>"left"===t?"right":"right"===t?"left":t)(s)),s}class $s extends Es{constructor(t){super(),this.id=t.id,this.type=t.type,this.options=void 0,this.ctx=t.ctx,this.chart=t.chart,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this._margins={left:0,right:0,top:0,bottom:0},this.maxWidth=void 0,this.maxHeight=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.axis=void 0,this.labelRotation=void 0,this.min=void 0,this.max=void 0,this._range=void 0,this.ticks=[],this._gridLineItems=null,this._labelItems=null,this._labelSizes=null,this._length=0,this._maxLength=0,this._longestTextCache={},this._startPixel=void 0,this._endPixel=void 0,this._reversePixels=!1,this._userMax=void 0,this._userMin=void 0,this._suggestedMax=void 0,this._suggestedMin=void 0,this._ticksLength=0,this._borderValue=0,this._cache={},this._dataLimitsCached=!1,this.$context=void 0}init(t){this.options=t.setContext(this.getContext()),this.axis=t.axis,this._userMin=this.parse(t.min),this._userMax=this.parse(t.max),this._suggestedMin=this.parse(t.suggestedMin),this._suggestedMax=this.parse(t.suggestedMax)}parse(t,e){return t}getUserBounds(){let{_userMin:t,_userMax:e,_suggestedMin:i,_suggestedMax:s}=this;return t=a(t,Number.POSITIVE_INFINITY),e=a(e,Number.NEGATIVE_INFINITY),i=a(i,Number.POSITIVE_INFINITY),s=a(s,Number.NEGATIVE_INFINITY),{min:a(t,i),max:a(e,s),minDefined:o(t),maxDefined:o(e)}}getMinMax(t){let e,{min:i,max:s,minDefined:n,maxDefined:o}=this.getUserBounds();if(n&&o)return{min:i,max:s};const r=this.getMatchingVisibleMetas();for(let a=0,l=r.length;as?s:i,s=n&&i>s?i:s,{min:a(i,a(s,i)),max:a(s,a(i,s))}}getPadding(){return{left:this.paddingLeft||0,top:this.paddingTop||0,right:this.paddingRight||0,bottom:this.paddingBottom||0}}getTicks(){return this.ticks}getLabels(){const t=this.chart.data;return this.options.labels||(this.isHorizontal()?t.xLabels:t.yLabels)||t.labels||[]}beforeLayout(){this._cache={},this._dataLimitsCached=!1}beforeUpdate(){c(this.options.beforeUpdate,[this])}update(t,e,i){const{beginAtZero:s,grace:n,ticks:o}=this.options,a=o.sampleSize;this.beforeUpdate(),this.maxWidth=t,this.maxHeight=e,this._margins=i=Object.assign({left:0,right:0,top:0,bottom:0},i),this.ticks=null,this._labelSizes=null,this._gridLineItems=null,this._labelItems=null,this.beforeSetDimensions(),this.setDimensions(),this.afterSetDimensions(),this._maxLength=this.isHorizontal()?this.width+i.left+i.right:this.height+i.top+i.bottom,this._dataLimitsCached||(this.beforeDataLimits(),this.determineDataLimits(),this.afterDataLimits(),this._range=xi(this,n,s),this._dataLimitsCached=!0),this.beforeBuildTicks(),this.ticks=this.buildTicks()||[],this.afterBuildTicks();const r=a=n||i<=1||!this.isHorizontal())return void(this.labelRotation=s);const h=this._getLabelSizes(),c=h.widest.width,d=h.highest.height,u=Z(this.chart.width-c,0,this.maxWidth);o=t.offset?this.maxWidth/i:u/(i-1),c+6>o&&(o=u/(i-(t.offset?.5:1)),a=this.maxHeight-Ws(t.grid)-e.padding-js(t.title,this.chart.options.font),r=Math.sqrt(c*c+d*d),l=$(Math.min(Math.asin(Z((h.highest.height+6)/o,-1,1)),Math.asin(Z(a/r,-1,1))-Math.asin(Z(d/r,-1,1)))),l=Math.max(s,Math.min(n,l))),this.labelRotation=l}afterCalculateLabelRotation(){c(this.options.afterCalculateLabelRotation,[this])}afterAutoSkip(){}beforeFit(){c(this.options.beforeFit,[this])}fit(){const t={width:0,height:0},{chart:e,options:{ticks:i,title:s,grid:n}}=this,o=this._isVisible(),a=this.isHorizontal();if(o){const o=js(s,e.options.font);if(a?(t.width=this.maxWidth,t.height=Ws(n)+o):(t.height=this.maxHeight,t.width=Ws(n)+o),i.display&&this.ticks.length){const{first:e,last:s,widest:n,highest:o}=this._getLabelSizes(),r=2*i.padding,l=H(this.labelRotation),h=Math.cos(l),c=Math.sin(l);if(a){const e=i.mirror?0:c*n.width+h*o.height;t.height=Math.min(this.maxHeight,t.height+e+r)}else{const e=i.mirror?0:h*n.width+c*o.height;t.width=Math.min(this.maxWidth,t.width+e+r)}this._calculatePadding(e,s,c,h)}}this._handleMargins(),a?(this.width=this._length=e.width-this._margins.left-this._margins.right,this.height=t.height):(this.width=t.width,this.height=this._length=e.height-this._margins.top-this._margins.bottom)}_calculatePadding(t,e,i,s){const{ticks:{align:n,padding:o},position:a}=this.options,r=0!==this.labelRotation,l="top"!==a&&"x"===this.axis;if(this.isHorizontal()){const a=this.getPixelForTick(0)-this.left,h=this.right-this.getPixelForTick(this.ticks.length-1);let c=0,d=0;r?l?(c=s*t.width,d=i*e.height):(c=i*t.height,d=s*e.width):"start"===n?d=e.width:"end"===n?c=t.width:"inner"!==n&&(c=t.width/2,d=e.width/2),this.paddingLeft=Math.max((c-a+o)*this.width/(this.width-a),0),this.paddingRight=Math.max((d-h+o)*this.width/(this.width-h),0)}else{let i=e.height/2,s=t.height/2;"start"===n?(i=0,s=t.height):"end"===n&&(i=e.height,s=0),this.paddingTop=i+o,this.paddingBottom=s+o}}_handleMargins(){this._margins&&(this._margins.left=Math.max(this.paddingLeft,this._margins.left),this._margins.top=Math.max(this.paddingTop,this._margins.top),this._margins.right=Math.max(this.paddingRight,this._margins.right),this._margins.bottom=Math.max(this.paddingBottom,this._margins.bottom))}afterFit(){c(this.options.afterFit,[this])}isHorizontal(){const{axis:t,position:e}=this.options;return"top"===e||"bottom"===e||"x"===t}isFullSize(){return this.options.fullSize}_convertTicksToLabels(t){let e,s;for(this.beforeTickToLabelConversion(),this.generateTickLabels(t),e=0,s=t.length;e{const i=t.gc,s=i.length/2;let n;if(s>e){for(n=0;n({width:a[t]||0,height:r[t]||0});return{first:k(0),last:k(e-1),widest:k(w),highest:k(M),widths:a,heights:r}}getLabelForValue(t){return t}getPixelForValue(t,e){return NaN}getValueForPixel(t){}getPixelForTick(t){const e=this.ticks;return t<0||t>e.length-1?null:this.getPixelForValue(e[t].value)}getPixelForDecimal(t){this._reversePixels&&(t=1-t);const e=this._startPixel+t*this._length;return J(this._alignToPixels?ve(this.chart,e,0):e)}getDecimalForPixel(t){const e=(t-this._startPixel)/this._length;return this._reversePixels?1-e:e}getBasePixel(){return this.getPixelForValue(this.getBaseValue())}getBaseValue(){const{min:t,max:e}=this;return t<0&&e<0?e:t>0&&e>0?t:0}getContext(t){const e=this.ticks||[];if(t>=0&&ta*s?a/i:r/s:r*s0}_computeGridLineItems(t){const e=this.axis,i=this.chart,s=this.options,{grid:o,position:a}=s,l=o.offset,h=this.isHorizontal(),c=this.ticks.length+(l?1:0),d=Ws(o),u=[],f=o.setContext(this.getContext()),g=f.drawBorder?f.borderWidth:0,p=g/2,m=function(t){return ve(i,t,g)};let b,x,_,y,v,w,M,k,S,P,D,O;if("top"===a)b=m(this.bottom),w=this.bottom-d,k=b-p,P=m(t.top)+p,O=t.bottom;else if("bottom"===a)b=m(this.top),P=t.top,O=m(t.bottom)-p,w=b+p,k=this.top+d;else if("left"===a)b=m(this.right),v=this.right-d,M=b-p,S=m(t.left)+p,D=t.right;else if("right"===a)b=m(this.left),S=t.left,D=m(t.right)-p,v=b+p,M=this.left+d;else if("x"===e){if("center"===a)b=m((t.top+t.bottom)/2+.5);else if(n(a)){const t=Object.keys(a)[0],e=a[t];b=m(this.chart.scales[t].getPixelForValue(e))}P=t.top,O=t.bottom,w=b+p,k=w+d}else if("y"===e){if("center"===a)b=m((t.left+t.right)/2);else if(n(a)){const t=Object.keys(a)[0],e=a[t];b=m(this.chart.scales[t].getPixelForValue(e))}v=b-p,M=v-d,S=t.left,D=t.right}const C=r(s.ticks.maxTicksLimit,c),A=Math.max(1,Math.ceil(c/C));for(x=0;xe.value===t));if(i>=0){return e.setContext(this.getContext(i)).lineWidth}return 0}drawGrid(t){const e=this.options.grid,i=this.ctx,s=this._gridLineItems||(this._gridLineItems=this._computeGridLineItems(t));let n,o;const a=(t,e,s)=>{s.width&&s.color&&(i.save(),i.lineWidth=s.width,i.strokeStyle=s.color,i.setLineDash(s.borderDash||[]),i.lineDashOffset=s.borderDashOffset,i.beginPath(),i.moveTo(t.x,t.y),i.lineTo(e.x,e.y),i.stroke(),i.restore())};if(e.display)for(n=0,o=s.length;n{this.drawBackground(),this.drawGrid(t),this.drawTitle()}},{z:i+1,draw:()=>{this.drawBorder()}},{z:e,draw:t=>{this.drawLabels(t)}}]:[{z:e,draw:t=>{this.draw(t)}}]}getMatchingVisibleMetas(t){const e=this.chart.getSortedVisibleDatasetMetas(),i=this.axis+"AxisID",s=[];let n,o;for(n=0,o=e.length;n{const s=i.split("."),n=s.pop(),o=[t].concat(s).join("."),a=e[i].split("."),r=a.pop(),l=a.join(".");ne.route(o,n,l,r)}))}(e,t.defaultRoutes);t.descriptors&&ne.describe(e,t.descriptors)}(t,o,i),this.override&&ne.override(t.id,t.overrides)),o}get(t){return this.items[t]}unregister(t){const e=this.items,i=t.id,s=this.scope;i in e&&delete e[i],s&&i in ne[s]&&(delete ne[s][i],this.override&&delete te[i])}}var Us=new class{constructor(){this.controllers=new Ys(Ls,"datasets",!0),this.elements=new Ys(Es,"elements"),this.plugins=new Ys(Object,"plugins"),this.scales=new Ys($s,"scales"),this._typedRegistries=[this.controllers,this.scales,this.elements]}add(...t){this._each("register",t)}remove(...t){this._each("unregister",t)}addControllers(...t){this._each("register",t,this.controllers)}addElements(...t){this._each("register",t,this.elements)}addPlugins(...t){this._each("register",t,this.plugins)}addScales(...t){this._each("register",t,this.scales)}getController(t){return this._get(t,this.controllers,"controller")}getElement(t){return this._get(t,this.elements,"element")}getPlugin(t){return this._get(t,this.plugins,"plugin")}getScale(t){return this._get(t,this.scales,"scale")}removeControllers(...t){this._each("unregister",t,this.controllers)}removeElements(...t){this._each("unregister",t,this.elements)}removePlugins(...t){this._each("unregister",t,this.plugins)}removeScales(...t){this._each("unregister",t,this.scales)}_each(t,e,i){[...e].forEach((e=>{const s=i||this._getRegistryForType(e);i||s.isForType(e)||s===this.plugins&&e.id?this._exec(t,s,e):d(e,(e=>{const s=i||this._getRegistryForType(e);this._exec(t,s,e)}))}))}_exec(t,e,i){const s=w(t);c(i["before"+s],[],i),e[t](i),c(i["after"+s],[],i)}_getRegistryForType(t){for(let e=0;et.filter((t=>!e.some((e=>t.plugin.id===e.plugin.id))));this._notify(s(e,i),t,"stop"),this._notify(s(i,e),t,"start")}}function qs(t,e){return e||!1!==t?!0===t?{}:t:null}function Ks(t,{plugin:e,local:i},s,n){const o=t.pluginScopeKeys(e),a=t.getOptionScopes(s,o);return i&&e.defaults&&a.push(e.defaults),t.createResolver(a,n,[""],{scriptable:!1,indexable:!1,allKeys:!0})}function Gs(t,e){const i=ne.datasets[t]||{};return((e.datasets||{})[t]||{}).indexAxis||e.indexAxis||i.indexAxis||"x"}function Zs(t,e){return"x"===t||"y"===t?t:e.axis||("top"===(i=e.position)||"bottom"===i?"x":"left"===i||"right"===i?"y":void 0)||t.charAt(0).toLowerCase();var i}function Js(t){const e=t.options||(t.options={});e.plugins=r(e.plugins,{}),e.scales=function(t,e){const i=te[t.type]||{scales:{}},s=e.scales||{},o=Gs(t.type,e),a=Object.create(null),r=Object.create(null);return Object.keys(s).forEach((t=>{const e=s[t];if(!n(e))return console.error(`Invalid scale configuration for scale: ${t}`);if(e._proxy)return console.warn(`Ignoring resolver passed as options for scale: ${t}`);const l=Zs(t,e),h=function(t,e){return t===e?"_index_":"_value_"}(l,o),c=i.scales||{};a[l]=a[l]||t,r[t]=b(Object.create(null),[{axis:l},e,c[l],c[h]])})),t.data.datasets.forEach((i=>{const n=i.type||t.type,o=i.indexAxis||Gs(n,e),l=(te[n]||{}).scales||{};Object.keys(l).forEach((t=>{const e=function(t,e){let i=t;return"_index_"===t?i=e:"_value_"===t&&(i="x"===e?"y":"x"),i}(t,o),n=i[e+"AxisID"]||a[e]||e;r[n]=r[n]||Object.create(null),b(r[n],[{axis:e},s[n],l[t]])}))})),Object.keys(r).forEach((t=>{const e=r[t];b(e,[ne.scales[e.type],ne.scale])})),r}(t,e)}function Qs(t){return(t=t||{}).datasets=t.datasets||[],t.labels=t.labels||[],t}const tn=new Map,en=new Set;function sn(t,e){let i=tn.get(t);return i||(i=e(),tn.set(t,i),en.add(i)),i}const nn=(t,e,i)=>{const s=y(e,i);void 0!==s&&t.add(s)};class on{constructor(t){this._config=function(t){return(t=t||{}).data=Qs(t.data),Js(t),t}(t),this._scopeCache=new Map,this._resolverCache=new Map}get platform(){return this._config.platform}get type(){return this._config.type}set type(t){this._config.type=t}get data(){return this._config.data}set data(t){this._config.data=Qs(t)}get options(){return this._config.options}set options(t){this._config.options=t}get plugins(){return this._config.plugins}update(){const t=this._config;this.clearCache(),Js(t)}clearCache(){this._scopeCache.clear(),this._resolverCache.clear()}datasetScopeKeys(t){return sn(t,(()=>[[`datasets.${t}`,""]]))}datasetAnimationScopeKeys(t,e){return sn(`${t}.transition.${e}`,(()=>[[`datasets.${t}.transitions.${e}`,`transitions.${e}`],[`datasets.${t}`,""]]))}datasetElementScopeKeys(t,e){return sn(`${t}-${e}`,(()=>[[`datasets.${t}.elements.${e}`,`datasets.${t}`,`elements.${e}`,""]]))}pluginScopeKeys(t){const e=t.id;return sn(`${this.type}-plugin-${e}`,(()=>[[`plugins.${e}`,...t.additionalOptionScopes||[]]]))}_cachedScopes(t,e){const i=this._scopeCache;let s=i.get(t);return s&&!e||(s=new Map,i.set(t,s)),s}getOptionScopes(t,e,i){const{options:s,type:n}=this,o=this._cachedScopes(t,i),a=o.get(e);if(a)return a;const r=new Set;e.forEach((e=>{t&&(r.add(t),e.forEach((e=>nn(r,t,e)))),e.forEach((t=>nn(r,s,t))),e.forEach((t=>nn(r,te[n]||{},t))),e.forEach((t=>nn(r,ne,t))),e.forEach((t=>nn(r,ee,t)))}));const l=Array.from(r);return 0===l.length&&l.push(Object.create(null)),en.has(e)&&o.set(e,l),l}chartOptionScopes(){const{options:t,type:e}=this;return[t,te[e]||{},ne.datasets[e]||{},{type:e},ne,ee]}resolveNamedOptions(t,e,i,n=[""]){const o={$shared:!0},{resolver:a,subPrefixes:r}=an(this._resolverCache,t,n);let l=a;if(function(t,e){const{isScriptable:i,isIndexable:n}=Ie(t);for(const o of e){const e=i(o),a=n(o),r=(a||e)&&t[o];if(e&&(k(r)||rn(r))||a&&s(r))return!0}return!1}(a,e)){o.$shared=!1;l=Re(a,i=k(i)?i():i,this.createResolver(t,i,r))}for(const t of e)o[t]=l[t];return o}createResolver(t,e,i=[""],s){const{resolver:o}=an(this._resolverCache,t,i);return n(e)?Re(o,e,void 0,s):o}}function an(t,e,i){let s=t.get(e);s||(s=new Map,t.set(e,s));const n=i.join();let o=s.get(n);if(!o){o={resolver:Ee(e,i),subPrefixes:i.filter((t=>!t.toLowerCase().includes("hover")))},s.set(n,o)}return o}const rn=t=>n(t)&&Object.getOwnPropertyNames(t).reduce(((e,i)=>e||k(t[i])),!1);const ln=["top","bottom","left","right","chartArea"];function hn(t,e){return"top"===t||"bottom"===t||-1===ln.indexOf(t)&&"x"===e}function cn(t,e){return function(i,s){return i[t]===s[t]?i[e]-s[e]:i[t]-s[t]}}function dn(t){const e=t.chart,i=e.options.animation;e.notifyPlugins("afterRender"),c(i&&i.onComplete,[t],e)}function un(t){const e=t.chart,i=e.options.animation;c(i&&i.onProgress,[t],e)}function fn(t){return oe()&&"string"==typeof t?t=document.getElementById(t):t&&t.length&&(t=t[0]),t&&t.canvas&&(t=t.canvas),t}const gn={},pn=t=>{const e=fn(t);return Object.values(gn).filter((t=>t.canvas===e)).pop()};function mn(t,e,i){const s=Object.keys(t);for(const n of s){const s=+n;if(s>=e){const o=t[n];delete t[n],(i>0||s>e)&&(t[s+i]=o)}}}class bn{constructor(t,i){const s=this.config=new on(i),n=fn(t),o=pn(n);if(o)throw new Error("Canvas is already in use. Chart with ID '"+o.id+"' must be destroyed before the canvas with ID '"+o.canvas.id+"' can be reused.");const a=s.createResolver(s.chartOptionScopes(),this.getContext());this.platform=new(s.platform||gs(n)),this.platform.updateConfig(s);const r=this.platform.acquireContext(n,a.aspectRatio),l=r&&r.canvas,h=l&&l.height,c=l&&l.width;this.id=e(),this.ctx=r,this.canvas=l,this.width=c,this.height=h,this._options=a,this._aspectRatio=this.aspectRatio,this._layers=[],this._metasets=[],this._stacks=void 0,this.boxes=[],this.currentDevicePixelRatio=void 0,this.chartArea=void 0,this._active=[],this._lastEvent=void 0,this._listeners={},this._responsiveListeners=void 0,this._sortedMetasets=[],this.scales={},this._plugins=new Xs,this.$proxies={},this._hiddenIndices={},this.attached=!1,this._animationsDisabled=void 0,this.$context=void 0,this._doResize=ct((t=>this.update(t)),a.resizeDelay||0),this._dataChanges=[],gn[this.id]=this,r&&l?(mt.listen(this,"complete",dn),mt.listen(this,"progress",un),this._initialize(),this.attached&&this.update()):console.error("Failed to create chart: can't acquire context from the given item")}get aspectRatio(){const{options:{aspectRatio:t,maintainAspectRatio:e},width:s,height:n,_aspectRatio:o}=this;return i(t)?e&&o?o:n?s/n:null:t}get data(){return this.config.data}set data(t){this.config.data=t}get options(){return this._options}set options(t){this.config.options=t}_initialize(){return this.notifyPlugins("beforeInit"),this.options.responsive?this.resize():pe(this,this.options.devicePixelRatio),this.bindEvents(),this.notifyPlugins("afterInit"),this}clear(){return we(this.canvas,this.ctx),this}stop(){return mt.stop(this),this}resize(t,e){mt.running(this)?this._resizeBeforeDraw={width:t,height:e}:this._resize(t,e)}_resize(t,e){const i=this.options,s=this.canvas,n=i.maintainAspectRatio&&this.aspectRatio,o=this.platform.getMaximumSize(s,t,e,n),a=i.devicePixelRatio||this.platform.getDevicePixelRatio(),r=this.width?"resize":"attach";this.width=o.width,this.height=o.height,this._aspectRatio=this.aspectRatio,pe(this,a,!0)&&(this.notifyPlugins("resize",{size:o}),c(i.onResize,[this,o],this),this.attached&&this._doResize(r)&&this.render())}ensureScalesHaveIDs(){d(this.options.scales||{},((t,e)=>{t.id=e}))}buildOrUpdateScales(){const t=this.options,e=t.scales,i=this.scales,s=Object.keys(i).reduce(((t,e)=>(t[e]=!1,t)),{});let n=[];e&&(n=n.concat(Object.keys(e).map((t=>{const i=e[t],s=Zs(t,i),n="r"===s,o="x"===s;return{options:i,dposition:n?"chartArea":o?"bottom":"left",dtype:n?"radialLinear":o?"category":"linear"}})))),d(n,(e=>{const n=e.options,o=n.id,a=Zs(o,n),l=r(n.type,e.dtype);void 0!==n.position&&hn(n.position,a)===hn(e.dposition)||(n.position=e.dposition),s[o]=!0;let h=null;if(o in i&&i[o].type===l)h=i[o];else{h=new(Us.getScale(l))({id:o,type:l,ctx:this.ctx,chart:this}),i[h.id]=h}h.init(n,t)})),d(s,((t,e)=>{t||delete i[e]})),d(i,(t=>{Zi.configure(this,t,t.options),Zi.addBox(this,t)}))}_updateMetasets(){const t=this._metasets,e=this.data.datasets.length,i=t.length;if(t.sort(((t,e)=>t.index-e.index)),i>e){for(let t=e;te.length&&delete this._stacks,t.forEach(((t,i)=>{0===e.filter((e=>e===t._dataset)).length&&this._destroyDatasetMeta(i)}))}buildOrUpdateControllers(){const t=[],e=this.data.datasets;let i,s;for(this._removeUnreferencedMetasets(),i=0,s=e.length;i{this.getDatasetMeta(e).controller.reset()}),this)}reset(){this._resetElements(),this.notifyPlugins("reset")}update(t){const e=this.config;e.update();const i=this._options=e.createResolver(e.chartOptionScopes(),this.getContext()),s=this._animationsDisabled=!i.animation;if(this._updateScales(),this._checkEventBindings(),this._updateHiddenIndices(),this._plugins.invalidate(),!1===this.notifyPlugins("beforeUpdate",{mode:t,cancelable:!0}))return;const n=this.buildOrUpdateControllers();this.notifyPlugins("beforeElementsUpdate");let o=0;for(let t=0,e=this.data.datasets.length;t{t.reset()})),this._updateDatasets(t),this.notifyPlugins("afterUpdate",{mode:t}),this._layers.sort(cn("z","_idx"));const{_active:a,_lastEvent:r}=this;r?this._eventHandler(r,!0):a.length&&this._updateHoverStyles(a,a,!0),this.render()}_updateScales(){d(this.scales,(t=>{Zi.removeBox(this,t)})),this.ensureScalesHaveIDs(),this.buildOrUpdateScales()}_checkEventBindings(){const t=this.options,e=new Set(Object.keys(this._listeners)),i=new Set(t.events);S(e,i)&&!!this._responsiveListeners===t.responsive||(this.unbindEvents(),this.bindEvents())}_updateHiddenIndices(){const{_hiddenIndices:t}=this,e=this._getUniformDataChanges()||[];for(const{method:i,start:s,count:n}of e){mn(t,s,"_removeElements"===i?-n:n)}}_getUniformDataChanges(){const t=this._dataChanges;if(!t||!t.length)return;this._dataChanges=[];const e=this.data.datasets.length,i=e=>new Set(t.filter((t=>t[0]===e)).map(((t,e)=>e+","+t.splice(1).join(",")))),s=i(0);for(let t=1;tt.split(","))).map((t=>({method:t[1],start:+t[2],count:+t[3]})))}_updateLayout(t){if(!1===this.notifyPlugins("beforeLayout",{cancelable:!0}))return;Zi.update(this,this.width,this.height,t);const e=this.chartArea,i=e.width<=0||e.height<=0;this._layers=[],d(this.boxes,(t=>{i&&"chartArea"===t.position||(t.configure&&t.configure(),this._layers.push(...t._layers()))}),this),this._layers.forEach(((t,e)=>{t._idx=e})),this.notifyPlugins("afterLayout")}_updateDatasets(t){if(!1!==this.notifyPlugins("beforeDatasetsUpdate",{mode:t,cancelable:!0})){for(let t=0,e=this.data.datasets.length;t=0;--e)this._drawDataset(t[e]);this.notifyPlugins("afterDatasetsDraw")}_drawDataset(t){const e=this.ctx,i=t._clip,s=!i.disabled,n=this.chartArea,o={meta:t,index:t.index,cancelable:!0};!1!==this.notifyPlugins("beforeDatasetDraw",o)&&(s&&Pe(e,{left:!1===i.left?0:n.left-i.left,right:!1===i.right?this.width:n.right+i.right,top:!1===i.top?0:n.top-i.top,bottom:!1===i.bottom?this.height:n.bottom+i.bottom}),t.controller.draw(),s&&De(e),o.cancelable=!1,this.notifyPlugins("afterDatasetDraw",o))}isPointInArea(t){return Se(t,this.chartArea,this._minPadding)}getElementsAtEventForMode(t,e,i,s){const n=Vi.modes[e];return"function"==typeof n?n(this,t,i,s):[]}getDatasetMeta(t){const e=this.data.datasets[t],i=this._metasets;let s=i.filter((t=>t&&t._dataset===e)).pop();return s||(s={type:null,data:[],dataset:null,controller:null,hidden:null,xAxisID:null,yAxisID:null,order:e&&e.order||0,index:t,_dataset:e,_parsed:[],_sorted:!1},i.push(s)),s}getContext(){return this.$context||(this.$context=_i(null,{chart:this,type:"chart"}))}getVisibleDatasetCount(){return this.getSortedVisibleDatasetMetas().length}isDatasetVisible(t){const e=this.data.datasets[t];if(!e)return!1;const i=this.getDatasetMeta(t);return"boolean"==typeof i.hidden?!i.hidden:!e.hidden}setDatasetVisibility(t,e){this.getDatasetMeta(t).hidden=!e}toggleDataVisibility(t){this._hiddenIndices[t]=!this._hiddenIndices[t]}getDataVisibility(t){return!this._hiddenIndices[t]}_updateVisibility(t,e,i){const s=i?"show":"hide",n=this.getDatasetMeta(t),o=n.controller._resolveAnimations(void 0,s);M(e)?(n.data[e].hidden=!i,this.update()):(this.setDatasetVisibility(t,i),o.update(n,{visible:i}),this.update((e=>e.datasetIndex===t?s:void 0)))}hide(t,e){this._updateVisibility(t,e,!1)}show(t,e){this._updateVisibility(t,e,!0)}_destroyDatasetMeta(t){const e=this._metasets[t];e&&e.controller&&e.controller._destroy(),delete this._metasets[t]}_stop(){let t,e;for(this.stop(),mt.remove(this),t=0,e=this.data.datasets.length;t{e.addEventListener(this,i,s),t[i]=s},s=(t,e,i)=>{t.offsetX=e,t.offsetY=i,this._eventHandler(t)};d(this.options.events,(t=>i(t,s)))}bindResponsiveEvents(){this._responsiveListeners||(this._responsiveListeners={});const t=this._responsiveListeners,e=this.platform,i=(i,s)=>{e.addEventListener(this,i,s),t[i]=s},s=(i,s)=>{t[i]&&(e.removeEventListener(this,i,s),delete t[i])},n=(t,e)=>{this.canvas&&this.resize(t,e)};let o;const a=()=>{s("attach",a),this.attached=!0,this.resize(),i("resize",n),i("detach",o)};o=()=>{this.attached=!1,s("resize",n),this._stop(),this._resize(0,0),i("attach",a)},e.isAttached(this.canvas)?a():o()}unbindEvents(){d(this._listeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._listeners={},d(this._responsiveListeners,((t,e)=>{this.platform.removeEventListener(this,e,t)})),this._responsiveListeners=void 0}updateHoverStyle(t,e,i){const s=i?"set":"remove";let n,o,a,r;for("dataset"===e&&(n=this.getDatasetMeta(t[0].datasetIndex),n.controller["_"+s+"DatasetHoverStyle"]()),a=0,r=t.length;a{const i=this.getDatasetMeta(t);if(!i)throw new Error("No dataset found at index "+t);return{datasetIndex:t,element:i.data[e],index:e}}));!u(i,e)&&(this._active=i,this._lastEvent=null,this._updateHoverStyles(i,e))}notifyPlugins(t,e,i){return this._plugins.notify(this,t,e,i)}_updateHoverStyles(t,e,i){const s=this.options.hover,n=(t,e)=>t.filter((t=>!e.some((e=>t.datasetIndex===e.datasetIndex&&t.index===e.index)))),o=n(e,t),a=i?t:n(t,e);o.length&&this.updateHoverStyle(o,s.mode,!1),a.length&&s.mode&&this.updateHoverStyle(a,s.mode,!0)}_eventHandler(t,e){const i={event:t,replay:e,cancelable:!0,inChartArea:this.isPointInArea(t)},s=e=>(e.options.events||this.options.events).includes(t.native.type);if(!1===this.notifyPlugins("beforeEvent",i,s))return;const n=this._handleEvent(t,e,i.inChartArea);return i.cancelable=!1,this.notifyPlugins("afterEvent",i,s),(n||i.changed)&&this.render(),this}_handleEvent(t,e,i){const{_active:s=[],options:n}=this,o=e,a=this._getActiveElements(t,s,i,o),r=P(t),l=function(t,e,i,s){return i&&"mouseout"!==t.type?s?e:t:null}(t,this._lastEvent,i,r);i&&(this._lastEvent=null,c(n.onHover,[t,a,this],this),r&&c(n.onClick,[t,a,this],this));const h=!u(a,s);return(h||e)&&(this._active=a,this._updateHoverStyles(a,s,e)),this._lastEvent=l,h}_getActiveElements(t,e,i,s){if("mouseout"===t.type)return[];if(!i)return e;const n=this.options.hover;return this.getElementsAtEventForMode(t,n.mode,n,s)}}const xn=()=>d(bn.instances,(t=>t._plugins.invalidate())),_n=!0;function yn(){throw new Error("This method is not implemented: Check that a complete date adapter is provided.")}Object.defineProperties(bn,{defaults:{enumerable:_n,value:ne},instances:{enumerable:_n,value:gn},overrides:{enumerable:_n,value:te},registry:{enumerable:_n,value:Us},version:{enumerable:_n,value:"3.9.0"},getChart:{enumerable:_n,value:pn},register:{enumerable:_n,value:(...t)=>{Us.add(...t),xn()}},unregister:{enumerable:_n,value:(...t)=>{Us.remove(...t),xn()}}});class vn{constructor(t){this.options=t||{}}init(t){}formats(){return yn()}parse(t,e){return yn()}format(t,e){return yn()}add(t,e,i){return yn()}diff(t,e,i){return yn()}startOf(t,e,i){return yn()}endOf(t,e){return yn()}}vn.override=function(t){Object.assign(vn.prototype,t)};var wn={_date:vn};function Mn(t){const e=t.iScale,i=function(t,e){if(!t._cache.$bar){const i=t.getMatchingVisibleMetas(e);let s=[];for(let e=0,n=i.length;et-e)))}return t._cache.$bar}(e,t.type);let s,n,o,a,r=e._length;const l=()=>{32767!==o&&-32768!==o&&(M(a)&&(r=Math.min(r,Math.abs(o-a)||r)),a=o)};for(s=0,n=i.length;sMath.abs(r)&&(l=r,h=a),e[i.axis]=h,e._custom={barStart:l,barEnd:h,start:n,end:o,min:a,max:r}}(t,e,i,n):e[i.axis]=i.parse(t,n),e}function Sn(t,e,i,s){const n=t.iScale,o=t.vScale,a=n.getLabels(),r=n===o,l=[];let h,c,d,u;for(h=i,c=i+s;ht.x,i="left",s="right"):(e=t.baset.controller.options.grouped)),o=s.options.stacked,a=[],r=t=>{const s=t.controller.getParsed(e),n=s&&s[t.vScale.axis];if(i(n)||isNaN(n))return!0};for(const i of n)if((void 0===e||!r(i))&&((!1===o||-1===a.indexOf(i.stack)||void 0===o&&void 0===i.stack)&&a.push(i.stack),i.index===t))break;return a.length||a.push(void 0),a}_getStackCount(t){return this._getStacks(void 0,t).length}_getStackIndex(t,e,i){const s=this._getStacks(t,i),n=void 0!==e?s.indexOf(e):-1;return-1===n?s.length-1:n}_getRuler(){const t=this.options,e=this._cachedMeta,i=e.iScale,s=[];let n,o;for(n=0,o=e.data.length;n=i?1:-1)}(d,e,a)*o,u===a&&(m-=d/2);const t=e.getPixelForDecimal(0),i=e.getPixelForDecimal(1),s=Math.min(t,i),n=Math.max(t,i);m=Math.max(Math.min(m,n),s),c=m+d}if(m===e.getPixelForValue(a)){const t=z(d)*e.getLineWidthForValue(a)/2;m+=t,d-=t}return{size:d,base:m,head:c,center:c+d/2}}_calculateBarIndexPixels(t,e){const s=e.scale,n=this.options,o=n.skipNull,a=r(n.maxBarThickness,1/0);let l,h;if(e.grouped){const s=o?this._getStackCount(t):e.stackCount,r="flex"===n.barThickness?function(t,e,i,s){const n=e.pixels,o=n[t];let a=t>0?n[t-1]:null,r=t=0;--i)e=Math.max(e,t[i].size(this.resolveDataElementOptions(i))/2);return e>0&&e}getLabelAndValue(t){const e=this._cachedMeta,{xScale:i,yScale:s}=e,n=this.getParsed(t),o=i.getLabelForValue(n.x),a=s.getLabelForValue(n.y),r=n._custom;return{label:e.label,value:"("+o+", "+a+(r?", "+r:"")+")"}}update(t){const e=this._cachedMeta.data;this.updateElements(e,0,e.length,t)}updateElements(t,e,i,s){const n="reset"===s,{iScale:o,vScale:a}=this._cachedMeta,{sharedOptions:r,includeOptions:l}=this._getSharedOptions(e,s),h=o.axis,c=a.axis;for(let d=e;d""}}}};class En extends Ls{constructor(t,e){super(t,e),this.enableOptionSharing=!0,this.innerRadius=void 0,this.outerRadius=void 0,this.offsetX=void 0,this.offsetY=void 0}linkScales(){}parse(t,e){const i=this.getDataset().data,s=this._cachedMeta;if(!1===this._parsing)s._parsed=i;else{let o,a,r=t=>+i[t];if(n(i[t])){const{key:t="value"}=this._parsing;r=e=>+y(i[e],t)}for(o=t,a=t+e;oG(t,r,l,!0)?1:Math.max(e,e*i,s,s*i),g=(t,e,s)=>G(t,r,l,!0)?-1:Math.min(e,e*i,s,s*i),p=f(0,h,d),m=f(L,c,u),b=g(D,h,d),x=g(D+L,c,u);s=(p-b)/2,n=(m-x)/2,o=-(p+b)/2,a=-(m+x)/2}return{ratioX:s,ratioY:n,offsetX:o,offsetY:a}}(u,d,r),b=(i.width-o)/f,x=(i.height-o)/g,_=Math.max(Math.min(b,x)/2,0),y=h(this.options.radius,_),v=(y-Math.max(y*r,0))/this._getVisibleDatasetWeightTotal();this.offsetX=p*y,this.offsetY=m*y,s.total=this.calculateTotal(),this.outerRadius=y-v*this._getRingWeightOffset(this.index),this.innerRadius=Math.max(this.outerRadius-v*c,0),this.updateElements(n,0,n.length,t)}_circumference(t,e){const i=this.options,s=this._cachedMeta,n=this._getCircumference();return e&&i.animation.animateRotate||!this.chart.getDataVisibility(t)||null===s._parsed[t]||s.data[t].hidden?0:this.calculateCircumference(s._parsed[t]*n/O)}updateElements(t,e,i,s){const n="reset"===s,o=this.chart,a=o.chartArea,r=o.options.animation,l=(a.left+a.right)/2,h=(a.top+a.bottom)/2,c=n&&r.animateScale,d=c?0:this.innerRadius,u=c?0:this.outerRadius,{sharedOptions:f,includeOptions:g}=this._getSharedOptions(e,s);let p,m=this._getRotation();for(p=0;p0&&!isNaN(t)?O*(Math.abs(t)/e):0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=li(e._parsed[t],i.options.locale);return{label:s[t]||"",value:n}}getMaxBorderWidth(t){let e=0;const i=this.chart;let s,n,o,a,r;if(!t)for(s=0,n=i.data.datasets.length;s"spacing"!==t,_indexable:t=>"spacing"!==t},En.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:i}}=t.legend.options;return e.labels.map(((e,s)=>{const n=t.getDatasetMeta(0).controller.getStyle(s);return{text:e,fillStyle:n.backgroundColor,strokeStyle:n.borderColor,lineWidth:n.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(s),index:s}}))}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}},tooltip:{callbacks:{title:()=>"",label(t){let e=t.label;const i=": "+t.formattedValue;return s(e)?(e=e.slice(),e[0]+=i):e+=i,e}}}}};class Rn extends Ls{initialize(){this.enableOptionSharing=!0,this.supportsDecimation=!0,super.initialize()}update(t){const e=this._cachedMeta,{dataset:i,data:s=[],_dataset:n}=e,o=this.chart._animationsDisabled;let{start:a,count:r}=gt(e,s,o);this._drawStart=a,this._drawCount=r,pt(e)&&(a=0,r=s.length),i._chart=this.chart,i._datasetIndex=this.index,i._decimated=!!n._decimated,i.points=s;const l=this.resolveDatasetElementOptions(t);this.options.showLine||(l.borderWidth=0),l.segment=this.options.segment,this.updateElement(i,void 0,{animated:!o,options:l},t),this.updateElements(s,a,r,t)}updateElements(t,e,s,n){const o="reset"===n,{iScale:a,vScale:r,_stacked:l,_dataset:h}=this._cachedMeta,{sharedOptions:c,includeOptions:d}=this._getSharedOptions(e,n),u=a.axis,f=r.axis,{spanGaps:g,segment:p}=this.options,m=B(g)?g:Number.POSITIVE_INFINITY,b=this.chart._animationsDisabled||o||"none"===n;let x=e>0&&this.getParsed(e-1);for(let g=e;g0&&Math.abs(s[u]-x[u])>m,p&&(_.parsed=s,_.raw=h.data[g]),d&&(_.options=c||this.resolveDataElementOptions(g,e.active?"active":n)),b||this.updateElement(e,g,_,n),x=s}}getMaxOverflow(){const t=this._cachedMeta,e=t.dataset,i=e.options&&e.options.borderWidth||0,s=t.data||[];if(!s.length)return i;const n=s[0].size(this.resolveDataElementOptions(0)),o=s[s.length-1].size(this.resolveDataElementOptions(s.length-1));return Math.max(i,n,o)/2}draw(){const t=this._cachedMeta;t.dataset.updateControlPoints(this.chart.chartArea,t.iScale.axis),super.draw()}}Rn.id="line",Rn.defaults={datasetElementType:"line",dataElementType:"point",showLine:!0,spanGaps:!1},Rn.overrides={scales:{_index_:{type:"category"},_value_:{type:"linear"}}};class In extends Ls{constructor(t,e){super(t,e),this.innerRadius=void 0,this.outerRadius=void 0}getLabelAndValue(t){const e=this._cachedMeta,i=this.chart,s=i.data.labels||[],n=li(e._parsed[t].r,i.options.locale);return{label:s[t]||"",value:n}}parseObjectData(t,e,i,s){return Ue.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta.data;this._updateRadius(),this.updateElements(e,0,e.length,t)}getMinMax(){const t=this._cachedMeta,e={min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY};return t.data.forEach(((t,i)=>{const s=this.getParsed(i).r;!isNaN(s)&&this.chart.getDataVisibility(i)&&(se.max&&(e.max=s))})),e}_updateRadius(){const t=this.chart,e=t.chartArea,i=t.options,s=Math.min(e.right-e.left,e.bottom-e.top),n=Math.max(s/2,0),o=(n-Math.max(i.cutoutPercentage?n/100*i.cutoutPercentage:1,0))/t.getVisibleDatasetCount();this.outerRadius=n-o*this.index,this.innerRadius=this.outerRadius-o}updateElements(t,e,i,s){const n="reset"===s,o=this.chart,a=o.options.animation,r=this._cachedMeta.rScale,l=r.xCenter,h=r.yCenter,c=r.getIndexAngle(0)-.5*D;let d,u=c;const f=360/this.countVisibleElements();for(d=0;d{!isNaN(this.getParsed(i).r)&&this.chart.getDataVisibility(i)&&e++})),e}_computeAngle(t,e,i){return this.chart.getDataVisibility(t)?H(this.resolveDataElementOptions(t,e).angle||i):0}}In.id="polarArea",In.defaults={dataElementType:"arc",animation:{animateRotate:!0,animateScale:!0},animations:{numbers:{type:"number",properties:["x","y","startAngle","endAngle","innerRadius","outerRadius"]}},indexAxis:"r",startAngle:0},In.overrides={aspectRatio:1,plugins:{legend:{labels:{generateLabels(t){const e=t.data;if(e.labels.length&&e.datasets.length){const{labels:{pointStyle:i}}=t.legend.options;return e.labels.map(((e,s)=>{const n=t.getDatasetMeta(0).controller.getStyle(s);return{text:e,fillStyle:n.backgroundColor,strokeStyle:n.borderColor,lineWidth:n.borderWidth,pointStyle:i,hidden:!t.getDataVisibility(s),index:s}}))}return[]}},onClick(t,e,i){i.chart.toggleDataVisibility(e.index),i.chart.update()}},tooltip:{callbacks:{title:()=>"",label:t=>t.chart.data.labels[t.dataIndex]+": "+t.formattedValue}}},scales:{r:{type:"radialLinear",angleLines:{display:!1},beginAtZero:!0,grid:{circular:!0},pointLabels:{display:!1},startAngle:0}}};class zn extends En{}zn.id="pie",zn.defaults={cutout:0,rotation:0,circumference:360,radius:"100%"};class Fn extends Ls{getLabelAndValue(t){const e=this._cachedMeta.vScale,i=this.getParsed(t);return{label:e.getLabels()[t],value:""+e.getLabelForValue(i[e.axis])}}parseObjectData(t,e,i,s){return Ue.bind(this)(t,e,i,s)}update(t){const e=this._cachedMeta,i=e.dataset,s=e.data||[],n=e.iScale.getLabels();if(i.points=s,"resize"!==t){const e=this.resolveDatasetElementOptions(t);this.options.showLine||(e.borderWidth=0);const o={_loop:!0,_fullLoop:n.length===s.length,options:e};this.updateElement(i,void 0,o,t)}this.updateElements(s,0,s.length,t)}updateElements(t,e,i,s){const n=this._cachedMeta.rScale,o="reset"===s;for(let a=e;a0&&this.getParsed(e-1);for(let c=e;c0&&Math.abs(s[f]-_[f])>b,m&&(p.parsed=s,p.raw=h.data[c]),u&&(p.options=d||this.resolveDataElementOptions(c,e.active?"active":n)),x||this.updateElement(e,c,p,n),_=s}this.updateSharedOptions(d,n,c)}getMaxOverflow(){const t=this._cachedMeta,e=t.data||[];if(!this.options.showLine){let t=0;for(let i=e.length-1;i>=0;--i)t=Math.max(t,e[i].size(this.resolveDataElementOptions(i))/2);return t>0&&t}const i=t.dataset,s=i.options&&i.options.borderWidth||0;if(!e.length)return s;const n=e[0].size(this.resolveDataElementOptions(0)),o=e[e.length-1].size(this.resolveDataElementOptions(e.length-1));return Math.max(s,n,o)/2}}Vn.id="scatter",Vn.defaults={datasetElementType:!1,dataElementType:"point",showLine:!1,fill:!1},Vn.overrides={interaction:{mode:"point"},plugins:{tooltip:{callbacks:{title:()=>"",label:t=>"("+t.label+", "+t.formattedValue+")"}}},scales:{x:{type:"linear"},y:{type:"linear"}}};var Bn=Object.freeze({__proto__:null,BarController:Tn,BubbleController:Ln,DoughnutController:En,LineController:Rn,PolarAreaController:In,PieController:zn,RadarController:Fn,ScatterController:Vn});function Nn(t,e,i){const{startAngle:s,pixelMargin:n,x:o,y:a,outerRadius:r,innerRadius:l}=e;let h=n/r;t.beginPath(),t.arc(o,a,r,s-h,i+h),l>n?(h=n/l,t.arc(o,a,l,i+h,s-h,!0)):t.arc(o,a,n,i+L,s-L),t.closePath(),t.clip()}function Wn(t,e,i,s){const n=ui(t.options.borderRadius,["outerStart","outerEnd","innerStart","innerEnd"]);const o=(i-e)/2,a=Math.min(o,s*e/2),r=t=>{const e=(i-Math.min(o,t))*s/2;return Z(t,0,Math.min(o,e))};return{outerStart:r(n.outerStart),outerEnd:r(n.outerEnd),innerStart:Z(n.innerStart,0,a),innerEnd:Z(n.innerEnd,0,a)}}function jn(t,e,i,s){return{x:i+t*Math.cos(e),y:s+t*Math.sin(e)}}function Hn(t,e,i,s,n,o){const{x:a,y:r,startAngle:l,pixelMargin:h,innerRadius:c}=e,d=Math.max(e.outerRadius+s+i-h,0),u=c>0?c+s+i+h:0;let f=0;const g=n-l;if(s){const t=((c>0?c-s:0)+(d>0?d-s:0))/2;f=(g-(0!==t?g*t/(t+s):g))/2}const p=(g-Math.max(.001,g*d-i/D)/d)/2,m=l+p+f,b=n-p-f,{outerStart:x,outerEnd:_,innerStart:y,innerEnd:v}=Wn(e,u,d,b-m),w=d-x,M=d-_,k=m+x/w,S=b-_/M,P=u+y,O=u+v,C=m+y/P,A=b-v/O;if(t.beginPath(),o){if(t.arc(a,r,d,k,S),_>0){const e=jn(M,S,a,r);t.arc(e.x,e.y,_,S,b+L)}const e=jn(O,b,a,r);if(t.lineTo(e.x,e.y),v>0){const e=jn(O,A,a,r);t.arc(e.x,e.y,v,b+L,A+Math.PI)}if(t.arc(a,r,u,b-v/u,m+y/u,!0),y>0){const e=jn(P,C,a,r);t.arc(e.x,e.y,y,C+Math.PI,m-L)}const i=jn(w,m,a,r);if(t.lineTo(i.x,i.y),x>0){const e=jn(w,k,a,r);t.arc(e.x,e.y,x,m-L,k)}}else{t.moveTo(a,r);const e=Math.cos(k)*d+a,i=Math.sin(k)*d+r;t.lineTo(e,i);const s=Math.cos(S)*d+a,n=Math.sin(S)*d+r;t.lineTo(s,n)}t.closePath()}function $n(t,e,i,s,n,o){const{options:a}=e,{borderWidth:r,borderJoinStyle:l}=a,h="inner"===a.borderAlign;r&&(h?(t.lineWidth=2*r,t.lineJoin=l||"round"):(t.lineWidth=r,t.lineJoin=l||"bevel"),e.fullCircles&&function(t,e,i){const{x:s,y:n,startAngle:o,pixelMargin:a,fullCircles:r}=e,l=Math.max(e.outerRadius-a,0),h=e.innerRadius+a;let c;for(i&&Nn(t,e,o+O),t.beginPath(),t.arc(s,n,h,o+O,o,!0),c=0;c=O||G(n,a,l),g=Q(o,h+u,c+u);return f&&g}getCenterPoint(t){const{x:e,y:i,startAngle:s,endAngle:n,innerRadius:o,outerRadius:a}=this.getProps(["x","y","startAngle","endAngle","innerRadius","outerRadius","circumference"],t),{offset:r,spacing:l}=this.options,h=(s+n)/2,c=(o+a+l+r)/2;return{x:e+Math.cos(h)*c,y:i+Math.sin(h)*c}}tooltipPosition(t){return this.getCenterPoint(t)}draw(t){const{options:e,circumference:i}=this,s=(e.offset||0)/2,n=(e.spacing||0)/2,o=e.circular;if(this.pixelMargin="inner"===e.borderAlign?.33:0,this.fullCircles=i>O?Math.floor(i/O):0,0===i||this.innerRadius<0||this.outerRadius<0)return;t.save();let a=0;if(s){a=s/2;const e=(this.startAngle+this.endAngle)/2;t.translate(Math.cos(e)*a,Math.sin(e)*a),this.circumference>=D&&(a=s)}t.fillStyle=e.backgroundColor,t.strokeStyle=e.borderColor;const r=function(t,e,i,s,n){const{fullCircles:o,startAngle:a,circumference:r}=e;let l=e.endAngle;if(o){Hn(t,e,i,s,a+O,n);for(let e=0;er&&o>r;return{count:s,start:l,loop:e.loop,ilen:h(a+(h?r-t:t))%o,_=()=>{f!==g&&(t.lineTo(m,g),t.lineTo(m,f),t.lineTo(m,p))};for(l&&(d=n[x(0)],t.moveTo(d.x,d.y)),c=0;c<=r;++c){if(d=n[x(c)],d.skip)continue;const e=d.x,i=d.y,s=0|e;s===u?(ig&&(g=i),m=(b*m+e)/++b):(_(),t.lineTo(e,i),u=s,b=0,f=g=i),p=i}_()}function Zn(t){const e=t.options,i=e.borderDash&&e.borderDash.length;return!(t._decimated||t._loop||e.tension||"monotone"===e.cubicInterpolationMode||e.stepped||i)?Gn:Kn}Yn.id="arc",Yn.defaults={borderAlign:"center",borderColor:"#fff",borderJoinStyle:void 0,borderRadius:0,borderWidth:2,offset:0,spacing:0,angle:void 0,circular:!0},Yn.defaultRoutes={backgroundColor:"backgroundColor"};const Jn="function"==typeof Path2D;function Qn(t,e,i,s){Jn&&!e.options.segment?function(t,e,i,s){let n=e._path;n||(n=e._path=new Path2D,e.path(n,i,s)&&n.closePath()),Un(t,e.options),t.stroke(n)}(t,e,i,s):function(t,e,i,s){const{segments:n,options:o}=e,a=Zn(e);for(const r of n)Un(t,o,r.style),t.beginPath(),a(t,e,r,{start:i,end:i+s-1})&&t.closePath(),t.stroke()}(t,e,i,s)}class to extends Es{constructor(t){super(),this.animated=!0,this.options=void 0,this._chart=void 0,this._loop=void 0,this._fullLoop=void 0,this._path=void 0,this._points=void 0,this._segments=void 0,this._decimated=!1,this._pointsUpdated=!1,this._datasetIndex=void 0,t&&Object.assign(this,t)}updateControlPoints(t,e){const i=this.options;if((i.tension||"monotone"===i.cubicInterpolationMode)&&!i.stepped&&!this._pointsUpdated){const s=i.spanGaps?this._loop:this._fullLoop;Qe(this._points,i,t,s,e),this._pointsUpdated=!0}}set points(t){this._points=t,delete this._segments,delete this._path,this._pointsUpdated=!1}get points(){return this._points}get segments(){return this._segments||(this._segments=Di(this,this.options.segment))}first(){const t=this.segments,e=this.points;return t.length&&e[t[0].start]}last(){const t=this.segments,e=this.points,i=t.length;return i&&e[t[i-1].end]}interpolate(t,e){const i=this.options,s=t[e],n=this.points,o=Pi(this,{property:e,start:s,end:s});if(!o.length)return;const a=[],r=function(t){return t.stepped?oi:t.tension||"monotone"===t.cubicInterpolationMode?ai:ni}(i);let l,h;for(l=0,h=o.length;l"borderDash"!==t&&"fill"!==t};class io extends Es{constructor(t){super(),this.options=void 0,this.parsed=void 0,this.skip=void 0,this.stop=void 0,t&&Object.assign(this,t)}inRange(t,e,i){const s=this.options,{x:n,y:o}=this.getProps(["x","y"],i);return Math.pow(t-n,2)+Math.pow(e-o,2){uo(t)}))}var go={id:"decimation",defaults:{algorithm:"min-max",enabled:!1},beforeElementsUpdate:(t,e,s)=>{if(!s.enabled)return void fo(t);const n=t.width;t.data.datasets.forEach(((e,o)=>{const{_data:a,indexAxis:r}=e,l=t.getDatasetMeta(o),h=a||e.data;if("y"===bi([r,t.options.indexAxis]))return;if(!l.controller.supportsDecimation)return;const c=t.scales[l.xAxisID];if("linear"!==c.type&&"time"!==c.type)return;if(t.options.parsing)return;let{start:d,count:u}=function(t,e){const i=e.length;let s,n=0;const{iScale:o}=t,{min:a,max:r,minDefined:l,maxDefined:h}=o.getUserBounds();return l&&(n=Z(et(e,o.axis,a).lo,0,i-1)),s=h?Z(et(e,o.axis,r).hi+1,n,i)-n:i-n,{start:n,count:s}}(l,h);if(u<=(s.threshold||4*n))return void uo(e);let f;switch(i(a)&&(e._data=h,delete e.data,Object.defineProperty(e,"data",{configurable:!0,enumerable:!0,get:function(){return this._decimated},set:function(t){this._data=t}})),s.algorithm){case"lttb":f=function(t,e,i,s,n){const o=n.samples||s;if(o>=i)return t.slice(e,e+i);const a=[],r=(i-2)/(o-2);let l=0;const h=e+i-1;let c,d,u,f,g,p=e;for(a[l++]=t[p],c=0;cu&&(u=f,d=t[s],g=s);a[l++]=d,p=g}return a[l++]=t[h],a}(h,d,u,n,s);break;case"min-max":f=function(t,e,s,n){let o,a,r,l,h,c,d,u,f,g,p=0,m=0;const b=[],x=e+s-1,_=t[e].x,y=t[x].x-_;for(o=e;og&&(g=l,d=o),p=(m*p+a.x)/++m;else{const s=o-1;if(!i(c)&&!i(d)){const e=Math.min(c,d),i=Math.max(c,d);e!==u&&e!==s&&b.push({...t[e],x:p}),i!==u&&i!==s&&b.push({...t[i],x:p})}o>0&&s!==u&&b.push(t[s]),b.push(a),h=e,m=0,f=g=l,c=d=u=o}}return b}(h,d,u,n);break;default:throw new Error(`Unsupported decimation algorithm '${s.algorithm}'`)}e._decimated=f}))},destroy(t){fo(t)}};function po(t,e,i,s){if(s)return;let n=e[t],o=i[t];return"angle"===t&&(n=K(n),o=K(o)),{property:t,start:n,end:o}}function mo(t,e,i){for(;e>t;e--){const t=i[e];if(!isNaN(t.x)&&!isNaN(t.y))break}return e}function bo(t,e,i,s){return t&&e?s(t[i],e[i]):t?t[i]:e?e[i]:0}function xo(t,e){let i=[],n=!1;return s(t)?(n=!0,i=t):i=function(t,e){const{x:i=null,y:s=null}=t||{},n=e.points,o=[];return e.segments.forEach((({start:t,end:e})=>{e=mo(t,e,n);const a=n[t],r=n[e];null!==s?(o.push({x:a.x,y:s}),o.push({x:r.x,y:s})):null!==i&&(o.push({x:i,y:a.y}),o.push({x:i,y:r.y}))})),o}(t,e),i.length?new to({points:i,options:{tension:0},_loop:n,_fullLoop:n}):null}function _o(t){return t&&!1!==t.fill}function yo(t,e,i){let s=t[e].fill;const n=[e];let a;if(!i)return s;for(;!1!==s&&-1===n.indexOf(s);){if(!o(s))return s;if(a=t[s],!a)return!1;if(a.visible)return s;n.push(s),s=a.fill}return!1}function vo(t,e,i){const s=function(t){const e=t.options,i=e.fill;let s=r(i&&i.target,i);void 0===s&&(s=!!e.backgroundColor);if(!1===s||null===s)return!1;if(!0===s)return"origin";return s}(t);if(n(s))return!isNaN(s.value)&&s;let a=parseFloat(s);return o(a)&&Math.floor(a)===a?function(t,e,i,s){"-"!==t&&"+"!==t||(i=e+i);if(i===e||i<0||i>=s)return!1;return i}(s[0],e,a,i):["origin","start","end","stack","shape"].indexOf(s)>=0&&s}function wo(t,e,i){const s=[];for(let n=0;n=0;--e){const i=n[e].$filler;i&&(i.line.updateControlPoints(o,i.axis),s&&i.fill&&Po(t.ctx,i,o))}},beforeDatasetsDraw(t,e,i){if("beforeDatasetsDraw"!==i.drawTime)return;const s=t.getSortedVisibleDatasetMetas();for(let e=s.length-1;e>=0;--e){const i=s[e].$filler;_o(i)&&Po(t.ctx,i,t.chartArea)}},beforeDatasetDraw(t,e,i){const s=e.meta.$filler;_o(s)&&"beforeDatasetDraw"===i.drawTime&&Po(t.ctx,s,t.chartArea)},defaults:{propagate:!0,drawTime:"beforeDatasetDraw"}};const Lo=(t,e)=>{let{boxHeight:i=e,boxWidth:s=e}=t;return t.usePointStyle&&(i=Math.min(i,e),s=t.pointStyleWidth||Math.min(s,e)),{boxWidth:s,boxHeight:i,itemHeight:Math.max(e,i)}};class Eo extends Es{constructor(t){super(),this._added=!1,this.legendHitBoxes=[],this._hoveredItem=null,this.doughnutMode=!1,this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this.legendItems=void 0,this.columnSizes=void 0,this.lineWidths=void 0,this.maxHeight=void 0,this.maxWidth=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.height=void 0,this.width=void 0,this._margins=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e,i){this.maxWidth=t,this.maxHeight=e,this._margins=i,this.setDimensions(),this.buildLabels(),this.fit()}setDimensions(){this.isHorizontal()?(this.width=this.maxWidth,this.left=this._margins.left,this.right=this.width):(this.height=this.maxHeight,this.top=this._margins.top,this.bottom=this.height)}buildLabels(){const t=this.options.labels||{};let e=c(t.generateLabels,[this.chart],this)||[];t.filter&&(e=e.filter((e=>t.filter(e,this.chart.data)))),t.sort&&(e=e.sort(((e,i)=>t.sort(e,i,this.chart.data)))),this.options.reverse&&e.reverse(),this.legendItems=e}fit(){const{options:t,ctx:e}=this;if(!t.display)return void(this.width=this.height=0);const i=t.labels,s=mi(i.font),n=s.size,o=this._computeTitleHeight(),{boxWidth:a,itemHeight:r}=Lo(i,n);let l,h;e.font=s.string,this.isHorizontal()?(l=this.maxWidth,h=this._fitRows(o,n,a,r)+10):(h=this.maxHeight,l=this._fitCols(o,n,a,r)+10),this.width=Math.min(l,t.maxWidth||this.maxWidth),this.height=Math.min(h,t.maxHeight||this.maxHeight)}_fitRows(t,e,i,s){const{ctx:n,maxWidth:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.lineWidths=[0],h=s+a;let c=t;n.textAlign="left",n.textBaseline="middle";let d=-1,u=-h;return this.legendItems.forEach(((t,f)=>{const g=i+e/2+n.measureText(t.text).width;(0===f||l[l.length-1]+g+2*a>o)&&(c+=h,l[l.length-(f>0?0:1)]=0,u+=h,d++),r[f]={left:0,top:u,row:d,width:g,height:s},l[l.length-1]+=g+a})),c}_fitCols(t,e,i,s){const{ctx:n,maxHeight:o,options:{labels:{padding:a}}}=this,r=this.legendHitBoxes=[],l=this.columnSizes=[],h=o-t;let c=a,d=0,u=0,f=0,g=0;return this.legendItems.forEach(((t,o)=>{const p=i+e/2+n.measureText(t.text).width;o>0&&u+s+2*a>h&&(c+=d+a,l.push({width:d,height:u}),f+=d+a,g++,d=u=0),r[o]={left:f,top:u,col:g,width:p,height:s},d=Math.max(d,p),u+=s+a})),c+=d,l.push({width:d,height:u}),c}adjustHitBoxes(){if(!this.options.display)return;const t=this._computeTitleHeight(),{legendHitBoxes:e,options:{align:i,labels:{padding:s},rtl:n}}=this,o=yi(n,this.left,this.width);if(this.isHorizontal()){let n=0,a=ut(i,this.left+s,this.right-this.lineWidths[n]);for(const r of e)n!==r.row&&(n=r.row,a=ut(i,this.left+s,this.right-this.lineWidths[n])),r.top+=this.top+t+s,r.left=o.leftForLtr(o.x(a),r.width),a+=r.width+s}else{let n=0,a=ut(i,this.top+t+s,this.bottom-this.columnSizes[n].height);for(const r of e)r.col!==n&&(n=r.col,a=ut(i,this.top+t+s,this.bottom-this.columnSizes[n].height)),r.top=a,r.left+=this.left+s,r.left=o.leftForLtr(o.x(r.left),r.width),a+=r.height+s}}isHorizontal(){return"top"===this.options.position||"bottom"===this.options.position}draw(){if(this.options.display){const t=this.ctx;Pe(t,this),this._draw(),De(t)}}_draw(){const{options:t,columnSizes:e,lineWidths:i,ctx:s}=this,{align:n,labels:o}=t,a=ne.color,l=yi(t.rtl,this.left,this.width),h=mi(o.font),{color:c,padding:d}=o,u=h.size,f=u/2;let g;this.drawTitle(),s.textAlign=l.textAlign("left"),s.textBaseline="middle",s.lineWidth=.5,s.font=h.string;const{boxWidth:p,boxHeight:m,itemHeight:b}=Lo(o,u),x=this.isHorizontal(),_=this._computeTitleHeight();g=x?{x:ut(n,this.left+d,this.right-i[0]),y:this.top+d+_,line:0}:{x:this.left+d,y:ut(n,this.top+_+d,this.bottom-e[0].height),line:0},vi(this.ctx,t.textDirection);const y=b+d;this.legendItems.forEach(((v,w)=>{s.strokeStyle=v.fontColor||c,s.fillStyle=v.fontColor||c;const M=s.measureText(v.text).width,k=l.textAlign(v.textAlign||(v.textAlign=o.textAlign)),S=p+f+M;let P=g.x,D=g.y;l.setWidth(this.width),x?w>0&&P+S+d>this.right&&(D=g.y+=y,g.line++,P=g.x=ut(n,this.left+d,this.right-i[g.line])):w>0&&D+y>this.bottom&&(P=g.x=P+e[g.line].width+d,g.line++,D=g.y=ut(n,this.top+_+d,this.bottom-e[g.line].height));!function(t,e,i){if(isNaN(p)||p<=0||isNaN(m)||m<0)return;s.save();const n=r(i.lineWidth,1);if(s.fillStyle=r(i.fillStyle,a),s.lineCap=r(i.lineCap,"butt"),s.lineDashOffset=r(i.lineDashOffset,0),s.lineJoin=r(i.lineJoin,"miter"),s.lineWidth=n,s.strokeStyle=r(i.strokeStyle,a),s.setLineDash(r(i.lineDash,[])),o.usePointStyle){const a={radius:m*Math.SQRT2/2,pointStyle:i.pointStyle,rotation:i.rotation,borderWidth:n},r=l.xPlus(t,p/2);ke(s,a,r,e+f,o.pointStyleWidth&&p)}else{const o=e+Math.max((u-m)/2,0),a=l.leftForLtr(t,p),r=gi(i.borderRadius);s.beginPath(),Object.values(r).some((t=>0!==t))?Le(s,{x:a,y:o,w:p,h:m,radius:r}):s.rect(a,o,p,m),s.fill(),0!==n&&s.stroke()}s.restore()}(l.x(P),D,v),P=ft(k,P+p+f,x?P+S:this.right,t.rtl),function(t,e,i){Ae(s,i.text,t,e+b/2,h,{strikethrough:i.hidden,textAlign:l.textAlign(i.textAlign)})}(l.x(P),D,v),x?g.x+=S+d:g.y+=y})),wi(this.ctx,t.textDirection)}drawTitle(){const t=this.options,e=t.title,i=mi(e.font),s=pi(e.padding);if(!e.display)return;const n=yi(t.rtl,this.left,this.width),o=this.ctx,a=e.position,r=i.size/2,l=s.top+r;let h,c=this.left,d=this.width;if(this.isHorizontal())d=Math.max(...this.lineWidths),h=this.top+l,c=ut(t.align,c,this.right-d);else{const e=this.columnSizes.reduce(((t,e)=>Math.max(t,e.height)),0);h=l+ut(t.align,this.top,this.bottom-e-t.labels.padding-this._computeTitleHeight())}const u=ut(a,c,c+d);o.textAlign=n.textAlign(dt(a)),o.textBaseline="middle",o.strokeStyle=e.color,o.fillStyle=e.color,o.font=i.string,Ae(o,e.text,u,h,i)}_computeTitleHeight(){const t=this.options.title,e=mi(t.font),i=pi(t.padding);return t.display?e.lineHeight+i.height:0}_getLegendItemAt(t,e){let i,s,n;if(Q(t,this.left,this.right)&&Q(e,this.top,this.bottom))for(n=this.legendHitBoxes,i=0;it.chart.options.color,boxWidth:40,padding:10,generateLabels(t){const e=t.data.datasets,{labels:{usePointStyle:i,pointStyle:s,textAlign:n,color:o}}=t.legend.options;return t._getSortedDatasetMetas().map((t=>{const a=t.controller.getStyle(i?0:void 0),r=pi(a.borderWidth);return{text:e[t.index].label,fillStyle:a.backgroundColor,fontColor:o,hidden:!t.visible,lineCap:a.borderCapStyle,lineDash:a.borderDash,lineDashOffset:a.borderDashOffset,lineJoin:a.borderJoinStyle,lineWidth:(r.width+r.height)/4,strokeStyle:a.borderColor,pointStyle:s||a.pointStyle,rotation:a.rotation,textAlign:n||a.textAlign,borderRadius:0,datasetIndex:t.index}}),this)}},title:{color:t=>t.chart.options.color,display:!1,position:"center",text:""}},descriptors:{_scriptable:t=>!t.startsWith("on"),labels:{_scriptable:t=>!["generateLabels","filter","sort"].includes(t)}}};class Io extends Es{constructor(t){super(),this.chart=t.chart,this.options=t.options,this.ctx=t.ctx,this._padding=void 0,this.top=void 0,this.bottom=void 0,this.left=void 0,this.right=void 0,this.width=void 0,this.height=void 0,this.position=void 0,this.weight=void 0,this.fullSize=void 0}update(t,e){const i=this.options;if(this.left=0,this.top=0,!i.display)return void(this.width=this.height=this.right=this.bottom=0);this.width=this.right=t,this.height=this.bottom=e;const n=s(i.text)?i.text.length:1;this._padding=pi(i.padding);const o=n*mi(i.font).lineHeight+this._padding.height;this.isHorizontal()?this.height=o:this.width=o}isHorizontal(){const t=this.options.position;return"top"===t||"bottom"===t}_drawArgs(t){const{top:e,left:i,bottom:s,right:n,options:o}=this,a=o.align;let r,l,h,c=0;return this.isHorizontal()?(l=ut(a,i,n),h=e+t,r=n-i):("left"===o.position?(l=i+t,h=ut(a,s,e),c=-.5*D):(l=n-t,h=ut(a,e,s),c=.5*D),r=s-e),{titleX:l,titleY:h,maxWidth:r,rotation:c}}draw(){const t=this.ctx,e=this.options;if(!e.display)return;const i=mi(e.font),s=i.lineHeight/2+this._padding.top,{titleX:n,titleY:o,maxWidth:a,rotation:r}=this._drawArgs(s);Ae(t,e.text,0,0,i,{color:e.color,maxWidth:a,rotation:r,textAlign:dt(e.align),textBaseline:"middle",translation:[n,o]})}}var zo={id:"title",_element:Io,start(t,e,i){!function(t,e){const i=new Io({ctx:t.ctx,options:e,chart:t});Zi.configure(t,i,e),Zi.addBox(t,i),t.titleBlock=i}(t,i)},stop(t){const e=t.titleBlock;Zi.removeBox(t,e),delete t.titleBlock},beforeUpdate(t,e,i){const s=t.titleBlock;Zi.configure(t,s,i),s.options=i},defaults:{align:"center",display:!1,font:{weight:"bold"},fullSize:!0,padding:10,position:"top",text:"",weight:2e3},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const Fo=new WeakMap;var Vo={id:"subtitle",start(t,e,i){const s=new Io({ctx:t.ctx,options:i,chart:t});Zi.configure(t,s,i),Zi.addBox(t,s),Fo.set(t,s)},stop(t){Zi.removeBox(t,Fo.get(t)),Fo.delete(t)},beforeUpdate(t,e,i){const s=Fo.get(t);Zi.configure(t,s,i),s.options=i},defaults:{align:"center",display:!1,font:{weight:"normal"},fullSize:!0,padding:0,position:"top",text:"",weight:1500},defaultRoutes:{color:"color"},descriptors:{_scriptable:!0,_indexable:!1}};const Bo={average(t){if(!t.length)return!1;let e,i,s=0,n=0,o=0;for(e=0,i=t.length;e-1?t.split("\n"):t}function jo(t,e){const{element:i,datasetIndex:s,index:n}=e,o=t.getDatasetMeta(s).controller,{label:a,value:r}=o.getLabelAndValue(n);return{chart:t,label:a,parsed:o.getParsed(n),raw:t.data.datasets[s].data[n],formattedValue:r,dataset:o.getDataset(),dataIndex:n,datasetIndex:s,element:i}}function Ho(t,e){const i=t.chart.ctx,{body:s,footer:n,title:o}=t,{boxWidth:a,boxHeight:r}=e,l=mi(e.bodyFont),h=mi(e.titleFont),c=mi(e.footerFont),u=o.length,f=n.length,g=s.length,p=pi(e.padding);let m=p.height,b=0,x=s.reduce(((t,e)=>t+e.before.length+e.lines.length+e.after.length),0);if(x+=t.beforeBody.length+t.afterBody.length,u&&(m+=u*h.lineHeight+(u-1)*e.titleSpacing+e.titleMarginBottom),x){m+=g*(e.displayColors?Math.max(r,l.lineHeight):l.lineHeight)+(x-g)*l.lineHeight+(x-1)*e.bodySpacing}f&&(m+=e.footerMarginTop+f*c.lineHeight+(f-1)*e.footerSpacing);let _=0;const y=function(t){b=Math.max(b,i.measureText(t).width+_)};return i.save(),i.font=h.string,d(t.title,y),i.font=l.string,d(t.beforeBody.concat(t.afterBody),y),_=e.displayColors?a+2+e.boxPadding:0,d(s,(t=>{d(t.before,y),d(t.lines,y),d(t.after,y)})),_=0,i.font=c.string,d(t.footer,y),i.restore(),b+=p.width,{width:b,height:m}}function $o(t,e,i,s){const{x:n,width:o}=i,{width:a,chartArea:{left:r,right:l}}=t;let h="center";return"center"===s?h=n<=(r+l)/2?"left":"right":n<=o/2?h="left":n>=a-o/2&&(h="right"),function(t,e,i,s){const{x:n,width:o}=s,a=i.caretSize+i.caretPadding;return"left"===t&&n+o+a>e.width||"right"===t&&n-o-a<0||void 0}(h,t,e,i)&&(h="center"),h}function Yo(t,e,i){const s=i.yAlign||e.yAlign||function(t,e){const{y:i,height:s}=e;return it.height-s/2?"bottom":"center"}(t,i);return{xAlign:i.xAlign||e.xAlign||$o(t,e,i,s),yAlign:s}}function Uo(t,e,i,s){const{caretSize:n,caretPadding:o,cornerRadius:a}=t,{xAlign:r,yAlign:l}=i,h=n+o,{topLeft:c,topRight:d,bottomLeft:u,bottomRight:f}=gi(a);let g=function(t,e){let{x:i,width:s}=t;return"right"===e?i-=s:"center"===e&&(i-=s/2),i}(e,r);const p=function(t,e,i){let{y:s,height:n}=t;return"top"===e?s+=i:s-="bottom"===e?n+i:n/2,s}(e,l,h);return"center"===l?"left"===r?g+=h:"right"===r&&(g-=h):"left"===r?g-=Math.max(c,u)+n:"right"===r&&(g+=Math.max(d,f)+n),{x:Z(g,0,s.width-e.width),y:Z(p,0,s.height-e.height)}}function Xo(t,e,i){const s=pi(i.padding);return"center"===e?t.x+t.width/2:"right"===e?t.x+t.width-s.right:t.x+s.left}function qo(t){return No([],Wo(t))}function Ko(t,e){const i=e&&e.dataset&&e.dataset.tooltip&&e.dataset.tooltip.callbacks;return i?t.override(i):t}class Go extends Es{constructor(t){super(),this.opacity=0,this._active=[],this._eventPosition=void 0,this._size=void 0,this._cachedAnimations=void 0,this._tooltipItems=[],this.$animations=void 0,this.$context=void 0,this.chart=t.chart||t._chart,this._chart=this.chart,this.options=t.options,this.dataPoints=void 0,this.title=void 0,this.beforeBody=void 0,this.body=void 0,this.afterBody=void 0,this.footer=void 0,this.xAlign=void 0,this.yAlign=void 0,this.x=void 0,this.y=void 0,this.height=void 0,this.width=void 0,this.caretX=void 0,this.caretY=void 0,this.labelColors=void 0,this.labelPointStyles=void 0,this.labelTextColors=void 0}initialize(t){this.options=t,this._cachedAnimations=void 0,this.$context=void 0}_resolveAnimations(){const t=this._cachedAnimations;if(t)return t;const e=this.chart,i=this.options.setContext(this.getContext()),s=i.enabled&&e.options.animation&&i.animations,n=new ys(this.chart,s);return s._cacheable&&(this._cachedAnimations=Object.freeze(n)),n}getContext(){return this.$context||(this.$context=(t=this.chart.getContext(),e=this,i=this._tooltipItems,_i(t,{tooltip:e,tooltipItems:i,type:"tooltip"})));var t,e,i}getTitle(t,e){const{callbacks:i}=e,s=i.beforeTitle.apply(this,[t]),n=i.title.apply(this,[t]),o=i.afterTitle.apply(this,[t]);let a=[];return a=No(a,Wo(s)),a=No(a,Wo(n)),a=No(a,Wo(o)),a}getBeforeBody(t,e){return qo(e.callbacks.beforeBody.apply(this,[t]))}getBody(t,e){const{callbacks:i}=e,s=[];return d(t,(t=>{const e={before:[],lines:[],after:[]},n=Ko(i,t);No(e.before,Wo(n.beforeLabel.call(this,t))),No(e.lines,n.label.call(this,t)),No(e.after,Wo(n.afterLabel.call(this,t))),s.push(e)})),s}getAfterBody(t,e){return qo(e.callbacks.afterBody.apply(this,[t]))}getFooter(t,e){const{callbacks:i}=e,s=i.beforeFooter.apply(this,[t]),n=i.footer.apply(this,[t]),o=i.afterFooter.apply(this,[t]);let a=[];return a=No(a,Wo(s)),a=No(a,Wo(n)),a=No(a,Wo(o)),a}_createItems(t){const e=this._active,i=this.chart.data,s=[],n=[],o=[];let a,r,l=[];for(a=0,r=e.length;at.filter(e,s,n,i)))),t.itemSort&&(l=l.sort(((e,s)=>t.itemSort(e,s,i)))),d(l,(e=>{const i=Ko(t.callbacks,e);s.push(i.labelColor.call(this,e)),n.push(i.labelPointStyle.call(this,e)),o.push(i.labelTextColor.call(this,e))})),this.labelColors=s,this.labelPointStyles=n,this.labelTextColors=o,this.dataPoints=l,l}update(t,e){const i=this.options.setContext(this.getContext()),s=this._active;let n,o=[];if(s.length){const t=Bo[i.position].call(this,s,this._eventPosition);o=this._createItems(i),this.title=this.getTitle(o,i),this.beforeBody=this.getBeforeBody(o,i),this.body=this.getBody(o,i),this.afterBody=this.getAfterBody(o,i),this.footer=this.getFooter(o,i);const e=this._size=Ho(this,i),a=Object.assign({},t,e),r=Yo(this.chart,i,a),l=Uo(i,a,r,this.chart);this.xAlign=r.xAlign,this.yAlign=r.yAlign,n={opacity:1,x:l.x,y:l.y,width:e.width,height:e.height,caretX:t.x,caretY:t.y}}else 0!==this.opacity&&(n={opacity:0});this._tooltipItems=o,this.$context=void 0,n&&this._resolveAnimations().update(this,n),t&&i.external&&i.external.call(this,{chart:this.chart,tooltip:this,replay:e})}drawCaret(t,e,i,s){const n=this.getCaretPosition(t,i,s);e.lineTo(n.x1,n.y1),e.lineTo(n.x2,n.y2),e.lineTo(n.x3,n.y3)}getCaretPosition(t,e,i){const{xAlign:s,yAlign:n}=this,{caretSize:o,cornerRadius:a}=i,{topLeft:r,topRight:l,bottomLeft:h,bottomRight:c}=gi(a),{x:d,y:u}=t,{width:f,height:g}=e;let p,m,b,x,_,y;return"center"===n?(_=u+g/2,"left"===s?(p=d,m=p-o,x=_+o,y=_-o):(p=d+f,m=p+o,x=_-o,y=_+o),b=p):(m="left"===s?d+Math.max(r,h)+o:"right"===s?d+f-Math.max(l,c)-o:this.caretX,"top"===n?(x=u,_=x-o,p=m-o,b=m+o):(x=u+g,_=x+o,p=m+o,b=m-o),y=x),{x1:p,x2:m,x3:b,y1:x,y2:_,y3:y}}drawTitle(t,e,i){const s=this.title,n=s.length;let o,a,r;if(n){const l=yi(i.rtl,this.x,this.width);for(t.x=Xo(this,i.titleAlign,i),e.textAlign=l.textAlign(i.titleAlign),e.textBaseline="middle",o=mi(i.titleFont),a=i.titleSpacing,e.fillStyle=i.titleColor,e.font=o.string,r=0;r0!==t))?(t.beginPath(),t.fillStyle=o.multiKeyBackground,Le(t,{x:e,y:p,w:h,h:l,radius:r}),t.fill(),t.stroke(),t.fillStyle=a.backgroundColor,t.beginPath(),Le(t,{x:i,y:p+1,w:h-2,h:l-2,radius:r}),t.fill()):(t.fillStyle=o.multiKeyBackground,t.fillRect(e,p,h,l),t.strokeRect(e,p,h,l),t.fillStyle=a.backgroundColor,t.fillRect(i,p+1,h-2,l-2))}t.fillStyle=this.labelTextColors[i]}drawBody(t,e,i){const{body:s}=this,{bodySpacing:n,bodyAlign:o,displayColors:a,boxHeight:r,boxWidth:l,boxPadding:h}=i,c=mi(i.bodyFont);let u=c.lineHeight,f=0;const g=yi(i.rtl,this.x,this.width),p=function(i){e.fillText(i,g.x(t.x+f),t.y+u/2),t.y+=u+n},m=g.textAlign(o);let b,x,_,y,v,w,M;for(e.textAlign=o,e.textBaseline="middle",e.font=c.string,t.x=Xo(this,m,i),e.fillStyle=i.bodyColor,d(this.beforeBody,p),f=a&&"right"!==m?"center"===o?l/2+h:l+2+h:0,y=0,w=s.length;y0&&e.stroke()}_updateAnimationTarget(t){const e=this.chart,i=this.$animations,s=i&&i.x,n=i&&i.y;if(s||n){const i=Bo[t.position].call(this,this._active,this._eventPosition);if(!i)return;const o=this._size=Ho(this,t),a=Object.assign({},i,this._size),r=Yo(e,t,a),l=Uo(t,a,r,e);s._to===l.x&&n._to===l.y||(this.xAlign=r.xAlign,this.yAlign=r.yAlign,this.width=o.width,this.height=o.height,this.caretX=i.x,this.caretY=i.y,this._resolveAnimations().update(this,l))}}_willRender(){return!!this.opacity}draw(t){const e=this.options.setContext(this.getContext());let i=this.opacity;if(!i)return;this._updateAnimationTarget(e);const s={width:this.width,height:this.height},n={x:this.x,y:this.y};i=Math.abs(i)<.001?0:i;const o=pi(e.padding),a=this.title.length||this.beforeBody.length||this.body.length||this.afterBody.length||this.footer.length;e.enabled&&a&&(t.save(),t.globalAlpha=i,this.drawBackground(n,t,s,e),vi(t,e.textDirection),n.y+=o.top,this.drawTitle(n,t,e),this.drawBody(n,t,e),this.drawFooter(n,t,e),wi(t,e.textDirection),t.restore())}getActiveElements(){return this._active||[]}setActiveElements(t,e){const i=this._active,s=t.map((({datasetIndex:t,index:e})=>{const i=this.chart.getDatasetMeta(t);if(!i)throw new Error("Cannot find a dataset at index "+t);return{datasetIndex:t,element:i.data[e],index:e}})),n=!u(i,s),o=this._positionChanged(s,e);(n||o)&&(this._active=s,this._eventPosition=e,this._ignoreReplayEvents=!0,this.update(!0))}handleEvent(t,e,i=!0){if(e&&this._ignoreReplayEvents)return!1;this._ignoreReplayEvents=!1;const s=this.options,n=this._active||[],o=this._getActiveElements(t,n,e,i),a=this._positionChanged(o,t),r=e||!u(o,n)||a;return r&&(this._active=o,(s.enabled||s.external)&&(this._eventPosition={x:t.x,y:t.y},this.update(!0,e))),r}_getActiveElements(t,e,i,s){const n=this.options;if("mouseout"===t.type)return[];if(!s)return e;const o=this.chart.getElementsAtEventForMode(t,n.mode,n,i);return n.reverse&&o.reverse(),o}_positionChanged(t,e){const{caretX:i,caretY:s,options:n}=this,o=Bo[n.position].call(this,t,e);return!1!==o&&(i!==o.x||s!==o.y)}}Go.positioners=Bo;var Zo={id:"tooltip",_element:Go,positioners:Bo,afterInit(t,e,i){i&&(t.tooltip=new Go({chart:t,options:i}))},beforeUpdate(t,e,i){t.tooltip&&t.tooltip.initialize(i)},reset(t,e,i){t.tooltip&&t.tooltip.initialize(i)},afterDraw(t){const e=t.tooltip;if(e&&e._willRender()){const i={tooltip:e};if(!1===t.notifyPlugins("beforeTooltipDraw",i))return;e.draw(t.ctx),t.notifyPlugins("afterTooltipDraw",i)}},afterEvent(t,e){if(t.tooltip){const i=e.replay;t.tooltip.handleEvent(e.event,i,e.inChartArea)&&(e.changed=!0)}},defaults:{enabled:!0,external:null,position:"average",backgroundColor:"rgba(0,0,0,0.8)",titleColor:"#fff",titleFont:{weight:"bold"},titleSpacing:2,titleMarginBottom:6,titleAlign:"left",bodyColor:"#fff",bodySpacing:2,bodyFont:{},bodyAlign:"left",footerColor:"#fff",footerSpacing:2,footerMarginTop:6,footerFont:{weight:"bold"},footerAlign:"left",padding:6,caretPadding:2,caretSize:5,cornerRadius:6,boxHeight:(t,e)=>e.bodyFont.size,boxWidth:(t,e)=>e.bodyFont.size,multiKeyBackground:"#fff",displayColors:!0,boxPadding:0,borderColor:"rgba(0,0,0,0)",borderWidth:0,animation:{duration:400,easing:"easeOutQuart"},animations:{numbers:{type:"number",properties:["x","y","width","height","caretX","caretY"]},opacity:{easing:"linear",duration:200}},callbacks:{beforeTitle:t,title(t){if(t.length>0){const e=t[0],i=e.chart.data.labels,s=i?i.length:0;if(this&&this.options&&"dataset"===this.options.mode)return e.dataset.label||"";if(e.label)return e.label;if(s>0&&e.dataIndex"filter"!==t&&"itemSort"!==t&&"external"!==t,_indexable:!1,callbacks:{_scriptable:!1,_indexable:!1},animation:{_fallback:!1},animations:{_fallback:"animation"}},additionalOptionScopes:["interaction"]},Jo=Object.freeze({__proto__:null,Decimation:go,Filler:To,Legend:Ro,SubTitle:Vo,Title:zo,Tooltip:Zo});function Qo(t,e,i,s){const n=t.indexOf(e);if(-1===n)return((t,e,i,s)=>("string"==typeof e?(i=t.push(e)-1,s.unshift({index:i,label:e})):isNaN(e)&&(i=null),i))(t,e,i,s);return n!==t.lastIndexOf(e)?i:n}class ta extends $s{constructor(t){super(t),this._startValue=void 0,this._valueRange=0,this._addedLabels=[]}init(t){const e=this._addedLabels;if(e.length){const t=this.getLabels();for(const{index:i,label:s}of e)t[i]===s&&t.splice(i,1);this._addedLabels=[]}super.init(t)}parse(t,e){if(i(t))return null;const s=this.getLabels();return((t,e)=>null===t?null:Z(Math.round(t),0,e))(e=isFinite(e)&&s[e]===t?e:Qo(s,t,r(e,t),this._addedLabels),s.length-1)}determineDataLimits(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let{min:i,max:s}=this.getMinMax(!0);"ticks"===this.options.bounds&&(t||(i=0),e||(s=this.getLabels().length-1)),this.min=i,this.max=s}buildTicks(){const t=this.min,e=this.max,i=this.options.offset,s=[];let n=this.getLabels();n=0===t&&e===n.length-1?n:n.slice(t,e+1),this._valueRange=Math.max(n.length-(i?0:1),1),this._startValue=this.min-(i?.5:0);for(let i=t;i<=e;i++)s.push({value:i});return s}getLabelForValue(t){const e=this.getLabels();return t>=0&&te.length-1?null:this.getPixelForValue(e[t].value)}getValueForPixel(t){return Math.round(this._startValue+this.getDecimalForPixel(t)*this._valueRange)}getBasePixel(){return this.bottom}}function ea(t,e,{horizontal:i,minRotation:s}){const n=H(s),o=(i?Math.sin(n):Math.cos(n))||.001,a=.75*e*(""+t).length;return Math.min(e/o,a)}ta.id="category",ta.defaults={ticks:{callback:ta.prototype.getLabelForValue}};class ia extends $s{constructor(t){super(t),this.start=void 0,this.end=void 0,this._startValue=void 0,this._endValue=void 0,this._valueRange=0}parse(t,e){return i(t)||("number"==typeof t||t instanceof Number)&&!isFinite(+t)?null:+t}handleTickRangeOptions(){const{beginAtZero:t}=this.options,{minDefined:e,maxDefined:i}=this.getUserBounds();let{min:s,max:n}=this;const o=t=>s=e?s:t,a=t=>n=i?n:t;if(t){const t=z(s),e=z(n);t<0&&e<0?a(0):t>0&&e>0&&o(0)}if(s===n){let e=1;(n>=Number.MAX_SAFE_INTEGER||s<=Number.MIN_SAFE_INTEGER)&&(e=Math.abs(.05*n)),a(n+e),t||o(s-e)}this.min=s,this.max=n}getTickLimit(){const t=this.options.ticks;let e,{maxTicksLimit:i,stepSize:s}=t;return s?(e=Math.ceil(this.max/s)-Math.floor(this.min/s)+1,e>1e3&&(console.warn(`scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${e} ticks. Limiting to 1000.`),e=1e3)):(e=this.computeTickLimit(),i=i||11),i&&(e=Math.min(i,e)),e}computeTickLimit(){return Number.POSITIVE_INFINITY}buildTicks(){const t=this.options,e=t.ticks;let s=this.getTickLimit();s=Math.max(2,s);const n=function(t,e){const s=[],{bounds:n,step:o,min:a,max:r,precision:l,count:h,maxTicks:c,maxDigits:d,includeBounds:u}=t,f=o||1,g=c-1,{min:p,max:m}=e,b=!i(a),x=!i(r),_=!i(h),y=(m-p)/(d+1);let v,w,M,k,S=F((m-p)/g/f)*f;if(S<1e-14&&!b&&!x)return[{value:p},{value:m}];k=Math.ceil(m/S)-Math.floor(p/S),k>g&&(S=F(k*S/g/f)*f),i(l)||(v=Math.pow(10,l),S=Math.ceil(S*v)/v),"ticks"===n?(w=Math.floor(p/S)*S,M=Math.ceil(m/S)*S):(w=p,M=m),b&&x&&o&&W((r-a)/o,S/1e3)?(k=Math.round(Math.min((r-a)/S,c)),S=(r-a)/k,w=a,M=r):_?(w=b?a:w,M=x?r:M,k=h-1,S=(M-w)/k):(k=(M-w)/S,k=N(k,Math.round(k),S/1e3)?Math.round(k):Math.ceil(k));const P=Math.max(Y(S),Y(w));v=Math.pow(10,i(l)?P:l),w=Math.round(w*v)/v,M=Math.round(M*v)/v;let D=0;for(b&&(u&&w!==a?(s.push({value:a}),w0?i:null;this._zero=!0}determineDataLimits(){const{min:t,max:e}=this.getMinMax(!0);this.min=o(t)?Math.max(0,t):null,this.max=o(e)?Math.max(0,e):null,this.options.beginAtZero&&(this._zero=!0),this.handleTickRangeOptions()}handleTickRangeOptions(){const{minDefined:t,maxDefined:e}=this.getUserBounds();let i=this.min,s=this.max;const n=e=>i=t?i:e,o=t=>s=e?s:t,a=(t,e)=>Math.pow(10,Math.floor(I(t))+e);i===s&&(i<=0?(n(1),o(10)):(n(a(i,-1)),o(a(s,1)))),i<=0&&n(a(s,-1)),s<=0&&o(a(i,1)),this._zero&&this.min!==this._suggestedMin&&i===a(this.min,0)&&n(a(i,-1)),this.min=i,this.max=s}buildTicks(){const t=this.options,e=function(t,e){const i=Math.floor(I(e.max)),s=Math.ceil(e.max/Math.pow(10,i)),n=[];let o=a(t.min,Math.pow(10,Math.floor(I(e.min)))),r=Math.floor(I(o)),l=Math.floor(o/Math.pow(10,r)),h=r<0?Math.pow(10,Math.abs(r)):1;do{n.push({value:o,major:na(o)}),++l,10===l&&(l=1,++r,h=r>=0?1:h),o=Math.round(l*Math.pow(10,r)*h)/h}while(rn?{start:e-i,end:e}:{start:e,end:e+i}}function la(t){const e={l:t.left+t._padding.left,r:t.right-t._padding.right,t:t.top+t._padding.top,b:t.bottom-t._padding.bottom},i=Object.assign({},e),n=[],o=[],a=t._pointLabels.length,r=t.options.pointLabels,l=r.centerPointLabels?D/a:0;for(let u=0;ue.r&&(r=(s.end-e.r)/o,t.r=Math.max(t.r,e.r+r)),n.starte.b&&(l=(n.end-e.b)/a,t.b=Math.max(t.b,e.b+l))}function ca(t){return 0===t||180===t?"center":t<180?"left":"right"}function da(t,e,i){return"right"===i?t-=e:"center"===i&&(t-=e/2),t}function ua(t,e,i){return 90===i||270===i?t-=e/2:(i>270||i<90)&&(t-=e),t}function fa(t,e,i,s){const{ctx:n}=t;if(i)n.arc(t.xCenter,t.yCenter,e,0,O);else{let i=t.getPointPosition(0,e);n.moveTo(i.x,i.y);for(let o=1;o{const i=c(this.options.pointLabels.callback,[t,e],this);return i||0===i?i:""})).filter(((t,e)=>this.chart.getDataVisibility(e)))}fit(){const t=this.options;t.display&&t.pointLabels.display?la(this):this.setCenterPoint(0,0,0,0)}setCenterPoint(t,e,i,s){this.xCenter+=Math.floor((t-e)/2),this.yCenter+=Math.floor((i-s)/2),this.drawingArea-=Math.min(this.drawingArea/2,Math.max(t,e,i,s))}getIndexAngle(t){return K(t*(O/(this._pointLabels.length||1))+H(this.options.startAngle||0))}getDistanceFromCenterForValue(t){if(i(t))return NaN;const e=this.drawingArea/(this.max-this.min);return this.options.reverse?(this.max-t)*e:(t-this.min)*e}getValueForDistanceFromCenter(t){if(i(t))return NaN;const e=t/(this.drawingArea/(this.max-this.min));return this.options.reverse?this.max-e:this.min+e}getPointLabelContext(t){const e=this._pointLabels||[];if(t>=0&&t=0;o--){const e=n.setContext(t.getPointLabelContext(o)),a=mi(e.font),{x:r,y:l,textAlign:h,left:c,top:d,right:u,bottom:f}=t._pointLabelItems[o],{backdropColor:g}=e;if(!i(g)){const t=gi(e.borderRadius),i=pi(e.backdropPadding);s.fillStyle=g;const n=c-i.left,o=d-i.top,a=u-c+i.width,r=f-d+i.height;Object.values(t).some((t=>0!==t))?(s.beginPath(),Le(s,{x:n,y:o,w:a,h:r,radius:t}),s.fill()):s.fillRect(n,o,a,r)}Ae(s,t._pointLabels[o],r,l+a.lineHeight/2,a,{color:e.color,textAlign:h,textBaseline:"middle"})}}(this,o),n.display&&this.ticks.forEach(((t,e)=>{if(0!==e){r=this.getDistanceFromCenterForValue(t.value);!function(t,e,i,s){const n=t.ctx,o=e.circular,{color:a,lineWidth:r}=e;!o&&!s||!a||!r||i<0||(n.save(),n.strokeStyle=a,n.lineWidth=r,n.setLineDash(e.borderDash),n.lineDashOffset=e.borderDashOffset,n.beginPath(),fa(t,i,o,s),n.closePath(),n.stroke(),n.restore())}(this,n.setContext(this.getContext(e-1)),r,o)}})),s.display){for(t.save(),a=o-1;a>=0;a--){const i=s.setContext(this.getPointLabelContext(a)),{color:n,lineWidth:o}=i;o&&n&&(t.lineWidth=o,t.strokeStyle=n,t.setLineDash(i.borderDash),t.lineDashOffset=i.borderDashOffset,r=this.getDistanceFromCenterForValue(e.ticks.reverse?this.min:this.max),l=this.getPointPosition(a,r),t.beginPath(),t.moveTo(this.xCenter,this.yCenter),t.lineTo(l.x,l.y),t.stroke())}t.restore()}}drawBorder(){}drawLabels(){const t=this.ctx,e=this.options,i=e.ticks;if(!i.display)return;const s=this.getIndexAngle(0);let n,o;t.save(),t.translate(this.xCenter,this.yCenter),t.rotate(s),t.textAlign="center",t.textBaseline="middle",this.ticks.forEach(((s,a)=>{if(0===a&&!e.reverse)return;const r=i.setContext(this.getContext(a)),l=mi(r.font);if(n=this.getDistanceFromCenterForValue(this.ticks[a].value),r.showLabelBackdrop){t.font=l.string,o=t.measureText(s.label).width,t.fillStyle=r.backdropColor;const e=pi(r.backdropPadding);t.fillRect(-o/2-e.left,-n-l.size/2-e.top,o+e.width,l.size+e.height)}Ae(t,s.label,0,-n,l,{color:r.color})})),t.restore()}drawTitle(){}}ga.id="radialLinear",ga.defaults={display:!0,animate:!0,position:"chartArea",angleLines:{display:!0,lineWidth:1,borderDash:[],borderDashOffset:0},grid:{circular:!1},startAngle:0,ticks:{showLabelBackdrop:!0,callback:Is.formatters.numeric},pointLabels:{backdropColor:void 0,backdropPadding:2,display:!0,font:{size:10},callback:t=>t,padding:5,centerPointLabels:!1}},ga.defaultRoutes={"angleLines.color":"borderColor","pointLabels.color":"color","ticks.color":"color"},ga.descriptors={angleLines:{_fallback:"grid"}};const pa={millisecond:{common:!0,size:1,steps:1e3},second:{common:!0,size:1e3,steps:60},minute:{common:!0,size:6e4,steps:60},hour:{common:!0,size:36e5,steps:24},day:{common:!0,size:864e5,steps:30},week:{common:!1,size:6048e5,steps:4},month:{common:!0,size:2628e6,steps:12},quarter:{common:!1,size:7884e6,steps:4},year:{common:!0,size:3154e7}},ma=Object.keys(pa);function ba(t,e){return t-e}function xa(t,e){if(i(e))return null;const s=t._adapter,{parser:n,round:a,isoWeekday:r}=t._parseOpts;let l=e;return"function"==typeof n&&(l=n(l)),o(l)||(l="string"==typeof n?s.parse(l,n):s.parse(l)),null===l?null:(a&&(l="week"!==a||!B(r)&&!0!==r?s.startOf(l,a):s.startOf(l,"isoWeek",r)),+l)}function _a(t,e,i,s){const n=ma.length;for(let o=ma.indexOf(t);o=e?i[s]:i[n]]=!0}}else t[e]=!0}function va(t,e,i){const s=[],n={},o=e.length;let a,r;for(a=0;a=0&&(e[l].major=!0);return e}(t,s,n,i):s}class wa extends $s{constructor(t){super(t),this._cache={data:[],labels:[],all:[]},this._unit="day",this._majorUnit=void 0,this._offsets={},this._normalized=!1,this._parseOpts=void 0}init(t,e){const i=t.time||(t.time={}),s=this._adapter=new wn._date(t.adapters.date);s.init(e),b(i.displayFormats,s.formats()),this._parseOpts={parser:i.parser,round:i.round,isoWeekday:i.isoWeekday},super.init(t),this._normalized=e.normalized}parse(t,e){return void 0===t?null:xa(this,t)}beforeLayout(){super.beforeLayout(),this._cache={data:[],labels:[],all:[]}}determineDataLimits(){const t=this.options,e=this._adapter,i=t.time.unit||"day";let{min:s,max:n,minDefined:a,maxDefined:r}=this.getUserBounds();function l(t){a||isNaN(t.min)||(s=Math.min(s,t.min)),r||isNaN(t.max)||(n=Math.max(n,t.max))}a&&r||(l(this._getLabelBounds()),"ticks"===t.bounds&&"labels"===t.ticks.source||l(this.getMinMax(!1))),s=o(s)&&!isNaN(s)?s:+e.startOf(Date.now(),i),n=o(n)&&!isNaN(n)?n:+e.endOf(Date.now(),i)+1,this.min=Math.min(s,n-1),this.max=Math.max(s+1,n)}_getLabelBounds(){const t=this.getLabelTimestamps();let e=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;return t.length&&(e=t[0],i=t[t.length-1]),{min:e,max:i}}buildTicks(){const t=this.options,e=t.time,i=t.ticks,s="labels"===i.source?this.getLabelTimestamps():this._generate();"ticks"===t.bounds&&s.length&&(this.min=this._userMin||s[0],this.max=this._userMax||s[s.length-1]);const n=this.min,o=st(s,n,this.max);return this._unit=e.unit||(i.autoSkip?_a(e.minUnit,this.min,this.max,this._getLabelCapacity(n)):function(t,e,i,s,n){for(let o=ma.length-1;o>=ma.indexOf(i);o--){const i=ma[o];if(pa[i].common&&t._adapter.diff(n,s,i)>=e-1)return i}return ma[i?ma.indexOf(i):0]}(this,o.length,e.minUnit,this.min,this.max)),this._majorUnit=i.major.enabled&&"year"!==this._unit?function(t){for(let e=ma.indexOf(t)+1,i=ma.length;e+t.value)))}initOffsets(t){let e,i,s=0,n=0;this.options.offset&&t.length&&(e=this.getDecimalForValue(t[0]),s=1===t.length?1-e:(this.getDecimalForValue(t[1])-e)/2,i=this.getDecimalForValue(t[t.length-1]),n=1===t.length?i:(i-this.getDecimalForValue(t[t.length-2]))/2);const o=t.length<3?.5:.25;s=Z(s,0,o),n=Z(n,0,o),this._offsets={start:s,end:n,factor:1/(s+1+n)}}_generate(){const t=this._adapter,e=this.min,i=this.max,s=this.options,n=s.time,o=n.unit||_a(n.minUnit,e,i,this._getLabelCapacity(e)),a=r(n.stepSize,1),l="week"===o&&n.isoWeekday,h=B(l)||!0===l,c={};let d,u,f=e;if(h&&(f=+t.startOf(f,"isoWeek",l)),f=+t.startOf(f,h?"day":o),t.diff(i,e,o)>1e5*a)throw new Error(e+" and "+i+" are too far apart with stepSize of "+a+" "+o);const g="data"===s.ticks.source&&this.getDataTimestamps();for(d=f,u=0;dt-e)).map((t=>+t))}getLabelForValue(t){const e=this._adapter,i=this.options.time;return i.tooltipFormat?e.format(t,i.tooltipFormat):e.format(t,i.displayFormats.datetime)}_tickFormatFunction(t,e,i,s){const n=this.options,o=n.time.displayFormats,a=this._unit,r=this._majorUnit,l=a&&o[a],h=r&&o[r],d=i[e],u=r&&h&&d&&d.major,f=this._adapter.format(t,s||(u?h:l)),g=n.ticks.callback;return g?c(g,[f,e,i],this):f}generateTickLabels(t){let e,i,s;for(e=0,i=t.length;e0?a:1}getDataTimestamps(){let t,e,i=this._cache.data||[];if(i.length)return i;const s=this.getMatchingVisibleMetas();if(this._normalized&&s.length)return this._cache.data=s[0].controller.getAllParsedValues(this);for(t=0,e=s.length;t=t[r].pos&&e<=t[l].pos&&({lo:r,hi:l}=et(t,"pos",e)),({pos:s,time:o}=t[r]),({pos:n,time:a}=t[l])):(e>=t[r].time&&e<=t[l].time&&({lo:r,hi:l}=et(t,"time",e)),({time:s,pos:o}=t[r]),({time:n,pos:a}=t[l]));const h=n-s;return h?o+(a-o)*(e-s)/h:o}wa.id="time",wa.defaults={bounds:"data",adapters:{},time:{parser:!1,unit:!1,round:!1,isoWeekday:!1,minUnit:"millisecond",displayFormats:{}},ticks:{source:"auto",major:{enabled:!1}}};class ka extends wa{constructor(t){super(t),this._table=[],this._minPos=void 0,this._tableRange=void 0}initOffsets(){const t=this._getTimestampsForTable(),e=this._table=this.buildLookupTable(t);this._minPos=Ma(e,this.min),this._tableRange=Ma(e,this.max)-this._minPos,super.initOffsets(t)}buildLookupTable(t){const{min:e,max:i}=this,s=[],n=[];let o,a,r,l,h;for(o=0,a=t.length;o=e&&l<=i&&s.push(l);if(s.length<2)return[{time:e,pos:0},{time:i,pos:1}];for(o=0,a=s.length;o0){ + $('.gnb .mainMenu > li:eq('+( depth1-1 )+') > .menu').addClass('on'); + if(depth2>0){ + $('.gnb .mainMenu > li:eq('+( depth1-1 )+') > .subMenu > li:eq('+( depth2-1 )+') > .menu').addClass('on'); + }; + }; + if(depth3>0){ + $('.lnb .mainMenu > li:eq('+( depth3-1 )+') > .menu').addClass('on'); + if(depth4>0){ + $('.lnb .mainMenu > li:eq('+( depth3-1 )+') > .subMenu > li:eq('+( depth4-1 )+') > .menu').addClass('on'); + }; + }; + + + /* LNB * + $('.btMenu').click(function(){ + if ($(this).hasClass('on')) { + $(this).removeClass('on'); + $('.lnb').removeClass('hide'); + } else { + $(this).addClass('on'); + $('.lnb').addClass('hide'); + } + }); + $('.menu.more').click(function(){ + if ($(this).hasClass('on')) { + $(this).removeClass('on'); + $(this).next('.subMenu').slideUp(); + } else { + $(this).addClass('on'); + $(this).next('.subMenu').slideDown(); + } + }); + */ + + $(function(){ + + $('.popBox').draggable({cancel:'.conBody'}); + + /* DATE PICKER */ + $('.input.date').datepicker({ + dateFormat: "yy-mm-dd" + }); + $.datepicker.setDefaults({ + dateFormat: 'yyyy-mm-dd', + monthNames: ['01','02','03','04','05','06','07','08','09','10','11','12'], + dayNamesMin: ['일','월','화','수','목','금','토'], + showMonthAfterYear: true, + }); + + /* RESIZE * + $('.resize.x').resizable({ + handles: "e" + }); + $('.resize.y').resizable({ + handles: "s" + }); + + /* Autocomplete select * + $.widget( "custom.combobox", { + _create: function() { + this.wrapper = $( "