이호영 이호영 2025-01-20
Merge branch 'master' into 4891_발송결과_속도개선
@4353d4939fae2f97c4b42c31222f172299f7b326
src/main/java/itn/let/cert/phone/web/CertPhoneController.java
--- src/main/java/itn/let/cert/phone/web/CertPhoneController.java
+++ src/main/java/itn/let/cert/phone/web/CertPhoneController.java
@@ -5,6 +5,7 @@
 import java.util.Map;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.http.HttpStatus;
@@ -158,7 +159,8 @@
 	
 	
 	@RequestMapping(value = {"/cert/phone/sendSysMsgDataAjax.do"})
-	public ResponseEntity<StatusResponse> sendSysMsgDataAjax(MberCertPhoneVO mberCertPhoneVO) throws Exception {
+	public ResponseEntity<StatusResponse> sendSysMsgDataAjax(MberCertPhoneVO mberCertPhoneVO,
+			HttpServletRequest request) throws Exception {
 		
 		
 		//로그인 권한정보 불러오기
@@ -178,7 +180,7 @@
 
 		MjonMsgVO mjonMsgVO = new MjonMsgVO();
 		mjonMsgVO.setCallTo(mberCertPhoneVO.getMbtlnum());
-		MjonMsgReturnVO returnVO = mjonMsgDataService.sendSysMsgData(mjonMsgVO);
+		MjonMsgReturnVO returnVO = mjonMsgDataService.sendSysMsgData(mjonMsgVO, request);
 
 		String resultSts = returnVO.getSendMsgCnt();
 		String resultBlockSts = returnVO.getSendMsgBlockCnt();
src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java
--- src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java
+++ src/main/java/itn/let/kakao/user/kakaoAt/web/KakaoAlimTalkSendController.java
@@ -140,6 +140,9 @@
 	
 	@Autowired
 	KakaoApiJsonSave kakaoApiJsonSave;
+	
+	@Autowired
+	private MjonCommon mjonCommon;
 
 	@RequestMapping(value= {"/web/mjon/alimtalk/kakaoAlimtalkMsgDataView.do"})
 	public String KakaoAlimtalkMsgDataView(ModelMap model
@@ -1385,8 +1388,7 @@
 						
 						if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
 							
-							MjonCommon comm = new MjonCommon();
-							comm.getAdminKakaoAtSandSlack(kakaoVO);
+							mjonCommon.getAdminKakaoAtSandSlack(kakaoVO);
 							
 						}
 						
src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
--- src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
+++ src/main/java/itn/let/mjo/mjocommon/MjonCommon.java
@@ -63,16 +63,57 @@
 	
 	
 
-	
-
 	/** 
-	 * @methodName	: getAdminSandSlack 
+	 * @methodName	: getAdminMsgSandSlack 
 	 * @author		: 이호영
 	 * @date		: 2024.12.04 
 	 * @description	: 기존 메소드 리펙토링
 	 * @param mjonMsgVO 
 	 */
-	public void getAdminSandSlack(MjonMsgVO mjonMsgVO) {
+	public void getAdminSandSlack(String smsTxt, String sandName) {
+	
+		HttpClient client = new HttpClient();
+		PostMethod post = new PostMethod(SLACK_URL);
+	
+		try {
+			// 메시지 내용 설정
+		
+			// Slack 메시지 생성
+			JSONObject json = new JSONObject();
+			json.put("channel", SLACK_CHANNEL);
+			json.put("text", smsTxt);
+			json.put("username", sandName);
+		
+			// Slack 요청
+			post.addParameter("payload", json.toString());
+			post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
+		
+			// Slack 응답 처리
+			int responseCode = client.executeMethod(post);
+			if (responseCode != HttpStatus.SC_OK) {
+				log.warn("Slack 메시지 전송 실패. Response: {}", post.getResponseBodyAsString());
+			}
+	
+		} catch (IllegalArgumentException e) {
+			log.error("Slack 메시지 전송 중 IllegalArgumentException 발생", e);
+		} catch (IOException e) {
+			log.error("Slack 메시지 전송 중 IOException 발생", e);
+		} catch (Exception e) {
+			log.error("Slack 메시지 전송 중 Exception 발생", e);
+		} finally {
+			post.releaseConnection();
+		}
+	}
+	
+
+	/** 
+	 * @methodName	: getAdminMsgSandSlack 
+	 * @author		: 이호영
+	 * @date		: 2024.12.04 
+	 * @description	: 기존 메소드 리펙토링
+	 * @param mjonMsgVO 
+	 */
+	public void getAdminMsgSandSlack(MjonMsgVO mjonMsgVO) {
 	
 		HttpClient client = new HttpClient();
 		PostMethod post = new PostMethod(SLACK_URL);
@@ -116,7 +157,7 @@
 	* @작성자 :  WYH
 	* @Method 설명 : slack 메시지 전송
 	*/
-	/*public void getAdminSandSlack(MjonMsgVO mjonMsgVO) {
+	/*public void getAdminMsgSandSlack(MjonMsgVO mjonMsgVO) {
 		
 		HttpClient client = new HttpClient();
 		PostMethod post = new PostMethod(url);
src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
--- src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
+++ src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainDataController.java
@@ -30,6 +30,7 @@
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -184,6 +185,9 @@
 	
 	@Resource(name = "MsgHolidayService")
     private MsgHolidayService msgHolidayService;
+	
+	@Autowired
+	private MjonCommon mjonCommon;
 	
     private static final Logger logger = LoggerFactory.getLogger(MjonMsgCampainDataController.class);
 	
@@ -3288,9 +3292,11 @@
 							
 							if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
 								
+								/*
 								MjonCommon comm = new MjonCommon();
-								comm.getAdminSandSlack(mjonMsgVO);
-								
+								comm.getAdminMsgSandSlack(mjonMsgVO);
+								*/
+								mjonCommon.getAdminMsgSandSlack(mjonMsgVO);
 							}
 							
 						}
src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainHGDataController.java
--- src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainHGDataController.java
+++ src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainHGDataController.java
@@ -12,6 +12,7 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
@@ -149,6 +150,9 @@
 	
 	@Resource(name = "MsgHolidayService")
     private MsgHolidayService msgHolidayService;
+	
+	@Autowired
+	private MjonCommon mjonCommon;
 	
     /**
      * 선거 문자 대량 발송 화면 
@@ -1138,10 +1142,11 @@
 							boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList);
 							
 							if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
-								
+								/*
 								MjonCommon comm = new MjonCommon();
-								comm.getAdminSandSlack(mjonMsgVO);
-								
+								comm.getAdminMsgSandSlack(mjonMsgVO);
+								*/
+								mjonCommon.getAdminMsgSandSlack(mjonMsgVO);
 							}
 							
 						}
src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java
--- src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java
+++ src/main/java/itn/let/mjo/msgcampain/web/MjonMsgCampainTWDataController.java
@@ -29,6 +29,7 @@
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.ModelMap;
@@ -173,6 +174,9 @@
 	
 	@Resource(name = "MsgHolidayService")
     private MsgHolidayService msgHolidayService;
+	
+	@Autowired
+	private MjonCommon mjonCommon;
 	
 	 private static final Logger logger = LoggerFactory.getLogger(MjonMsgCampainTWDataController.class);
 	
@@ -2122,10 +2126,11 @@
 							boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList);
 							
 							if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
-								
+								/*
 								MjonCommon comm = new MjonCommon();
-								comm.getAdminSandSlack(mjonMsgVO);
-								
+								comm.getAdminMsgSandSlack(mjonMsgVO);
+								*/
+								mjonCommon.getAdminMsgSandSlack(mjonMsgVO);
 							}
 							
 						}
src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
--- src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
+++ src/main/java/itn/let/mjo/msgdata/service/MjonMsgDataService.java
@@ -188,7 +188,7 @@
 
 	public StatusResponse sendMsgData_advc(MjonMsgVO mjonMsgVO, HttpServletRequest request) throws Exception;
 
-	public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO) throws Exception;
+	public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO, HttpServletRequest request) throws Exception;
 
 
 	
src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
--- src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
+++ src/main/java/itn/let/mjo/msgdata/service/impl/MjonMsgDataServiceImpl.java
@@ -2,6 +2,7 @@
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.net.URI;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
@@ -147,6 +148,7 @@
 
 	@Autowired
 	private MjonCommon mjonCommon;
+	
 
 	public List<MjonMsgDataVO> selectCcmCmmCodeList() throws Exception {
 
@@ -4172,7 +4174,7 @@
 
 		if (isNotified) {
 			System.out.println("스미싱 알림이 처리되었습니다.");
-			mjonCommon.getAdminSandSlack(mjonMsgVO);
+			mjonCommon.getAdminMsgSandSlack(mjonMsgVO);
 		} else if("Y".equalsIgnoreCase(mjonMsgVO.getSpamStatus())){
 			System.out.println("==알림 예외 시간==");
 			mjonMsgDAO.insertSpamPassMsgData(mjonMsgVO);
@@ -5022,7 +5024,7 @@
 	}
 
 	@Override
-	public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO) throws Exception {
+	public MjonMsgReturnVO sendSysMsgData(MjonMsgVO mjonMsgVO,HttpServletRequest request) throws Exception {
 
 		
 
@@ -5099,6 +5101,22 @@
 
 		mjonMsgDataService.insertSysMsgLog(sendLogVO);
 		
+
+		String fullUrl = request.getRequestURL().toString();
+		try {
+			URI uri = new URI(fullUrl);
+			String domain = uri.getHost(); // www.munjaon.co.kr 반환
+			
+			if(domain.indexOf("munjaon.co.kr") < 0) {
+				mjonCommon.getAdminSandSlack(contents, "로그인 인증번호 "+mjonMsgVO.getCallTo());
+			}
+			
+		} catch (Exception e) {
+		}
+		
+		
+		
+		
 		return returnVO;
 	}
 
src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
--- src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
+++ src/main/java/itn/let/mjo/msgdata/web/MjonMsgDataController.java
@@ -40,6 +40,7 @@
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -192,6 +193,9 @@
 	
 	@Resource(name = "MsgHolidayService")
     private MsgHolidayService msgHolidayService;
+	
+	@Autowired
+	private MjonCommon mjonCommon;
 	
     private static final Logger logger = LoggerFactory.getLogger(MjonMsgDataController.class);
 	
@@ -3447,10 +3451,11 @@
 						boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList);
 						
 						if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림 예외설정 시간에 포함되지 않는 경우 슬랙 알림 발송
-							
+							/*
 							MjonCommon comm = new MjonCommon();
-							comm.getAdminSandSlack(mjonMsgVO);
-							
+							comm.getAdminMsgSandSlack(mjonMsgVO);
+							*/
+							mjonCommon.getAdminMsgSandSlack(mjonMsgVO);
 						}
 						
 					}
src/main/java/itn/let/mjo/test/web/TestController.java
--- src/main/java/itn/let/mjo/test/web/TestController.java
+++ src/main/java/itn/let/mjo/test/web/TestController.java
@@ -242,6 +242,9 @@
 	@Resource(name="MjonMsgDataDAO")
 	private MjonMsgDataDAO mjonMsgDataDAO;
 	
+	@Autowired
+	private MjonCommon mjonCommon;
+	
     private static final Logger logger = LoggerFactory.getLogger(TestController.class);
     
     /////////////////////////////////////////////////////////////////////////////////////////
@@ -2173,16 +2176,17 @@
 						boolean smishingAlarmPassSts = mjonHolidayApi.getHolidaySmishingPassStatus(resultAlarmList, resultHolidayList);
 						
 						if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
-							
+							/*
 							MjonCommon comm = new MjonCommon();
-							comm.getAdminSandSlack(mjonMsgVO);
-							
+							comm.getAdminMsgSandSlack(mjonMsgVO);
+							*/
+							mjonCommon.getAdminMsgSandSlack(mjonMsgVO);
 						}
 						
 						//Slack으로 메세지 전송 처리
 						/*MjonCommon comm = new MjonCommon();
 						System.out.println("slack noti");
-						comm.getAdminSandSlack(mjonMsgVO);*/
+						comm.getAdminMsgSandSlack(mjonMsgVO);*/
 					}
 				}
 				/*else {//야간스미싱 알림 비활성화인 경우 - 알림일정에 포함되지 않으면 슬랙 발송 처리(알림일정에 포함되면 슬랙발송 X - 알림 비활성화이기 때문에 발송X)
@@ -2211,7 +2215,7 @@
 					if(!smishingAlarmPassSts) {//평일,주말, 공휴일 알림설정 시간에 포함되지 않는 경우 슬랙 알림 발송
 						
 						MjonCommon comm = new MjonCommon();
-						comm.getAdminSandSlack(mjonMsgVO);
+						comm.getAdminMsgSandSlack(mjonMsgVO);
 						
 					}
 					
src/main/java/itn/let/uat/uia/web/EgovLoginController.java
--- src/main/java/itn/let/uat/uia/web/EgovLoginController.java
+++ src/main/java/itn/let/uat/uia/web/EgovLoginController.java
@@ -3632,7 +3632,7 @@
 	 */
 	@RequestMapping(value = { "/web/user/sendSysMsgDataAjax.do" })
 	public ModelAndView sendSysMsgDataAjax(@ModelAttribute("searchVO") MjonMsgVO mjonMsgVO,
-			RedirectAttributes redirectAttributes, ModelMap model) throws Exception {
+			RedirectAttributes redirectAttributes, ModelMap model, HttpServletRequest request) throws Exception {
 
 		ModelAndView modelAndView = new ModelAndView();
 		modelAndView.setViewName("jsonView");
@@ -3710,7 +3710,7 @@
 			
 			
 			
-			MjonMsgReturnVO returnVO = mjonMsgDataService.sendSysMsgData(mjonMsgVO);
+			MjonMsgReturnVO returnVO = mjonMsgDataService.sendSysMsgData(mjonMsgVO, request);
 
 			resultSts = returnVO.getSendMsgCnt();
 			resultBlockSts = returnVO.getSendMsgBlockCnt();
src/main/java/itn/let/uss/umt/web/EgovUserManageController.java
--- src/main/java/itn/let/uss/umt/web/EgovUserManageController.java
+++ src/main/java/itn/let/uss/umt/web/EgovUserManageController.java
@@ -1225,9 +1225,6 @@
 		vo.setCodeId("ITN024");
 		model.addAttribute("flowTypeCode", cmmUseService.selectCmmCodeDetail(vo));
 		
-		vo.setCodeId("ITN056");
-		model.addAttribute("smsSandCode", cmmUseService.selectCmmCodeDetail(vo));
-		
 		
 		//최근 발송 문자 내용 불러오기 - 최근 3개 내역만
 		List<MjonMsgSentVO> mjonMsgSentList = mberManageService.selectMberMsgSentLatestListNew20240320(userId);
src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp
--- src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp
+++ src/main/webapp/WEB-INF/jsp/cmm/uss/umt/EgovGnrlUserSelectUpdt.jsp
@@ -21,6 +21,7 @@
 <%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
 <%@ taglib prefix="double-submit" uri="http://www.egovframe.go.kr/tags/double-submit/jsp" %>
 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib prefix="ec" uri="/WEB-INF/tld/ecnet_tld.tld"%>
 <% pageContext.setAttribute("newLineChar", "\r\n"); %>
 <% pageContext.setAttribute("newLineChar2", "\n"); %>
 <% String serverName = request.getServerName(); %>
@@ -6075,13 +6076,15 @@
 									<li><input type="radio" name="msgKind" id="msgKind3" value="C"/><label for="msgKind3">선거</label></li>
 								</ul> --%>
 								<input type="hidden" name="msgKind" id="msgKind" value="N"/>
-								<select id="inputSmsTxt" onchange="fnInputSmsTxt();">
+								<ec:select codeId="ITN056" id="inputSmsTxt" script="onchange='fnInputSmsTxt();'"
+													defaultValue="" defaultText="직접입력"  />
+								<%-- <select id="inputSmsTxt" onchange="fnInputSmsTxt();">
 								<c:forEach var="result" items="${smsSandCode}" varStatus="status">
 								<option value="${result.code}">
 									<c:out value="${result.codeNm}"/>
 								</option>
 								</c:forEach>
-								</select>
+								</select> --%>
 								<textarea name="smsTxt" id="smsTxt"></textarea>
 								<span class="fwMd" id="msgLeng">0 /</span>
 								<span id="limitLeng">90</span>byte
src/main/webapp/WEB-INF/jsp/web/addr/AddrList_advcBack_20240723.jsp
--- src/main/webapp/WEB-INF/jsp/web/addr/AddrList_advcBack_20240723.jsp
+++ src/main/webapp/WEB-INF/jsp/web/addr/AddrList_advcBack_20240723.jsp
@@ -516,7 +516,7 @@
     	var updatedData = currentData.map(row => {
     		var newRow = {};
     		fieldMapping.forEach((field, index) => {
-    			newRow[field] = row[Object.keys(row)[index]] || "";
+    			newRow[field] = row[Object.keys(row)[index]] ?? "";
     		});
     		return newRow;
     	});
src/main/webapp/WEB-INF/jsp/web/msgcampain/include/msgDataIncludeExcel.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgcampain/include/msgDataIncludeExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgcampain/include/msgDataIncludeExcel.jsp
@@ -501,7 +501,7 @@
 	var updatedData = currentData.map(row => {
 		var newRow = {};
 		fieldMapping.forEach((field, index) => {
-			newRow[field] = row[Object.keys(row)[index]] || "";
+			newRow[field] = row[Object.keys(row)[index]] ?? "";
 		});
 		return newRow;
 	});
src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/MsgDataView.jsp
@@ -14,10 +14,40 @@
 var msgResendAllGroupId = "${msgResendAllGroupId}";
 var msgResendAllReplaceYn = "${msgResendAllReplaceYn}";
 
+//맞춤제작 내보관함 이미지 선택시 처리
+var customImgFlag = '${customImgVO.customImgFlag}';
+var customAtchFileId = '${customImgVO.atchFileId1}';
+var customFileSn = '${customImgVO.fileSn}';
+var customStrImgPath = '${customImgVO.strImgPath}';
+
+//메인화면 그림문자 이미지 선택시 처리
+var mainImgFlag = '${mainImgVO.mainImgFlag}';
+var mainAtchFileId = '${mainImgVO.atchFileId1}';
+var mainFileSn = '${mainImgVO.fileSn}';
+var mainStrImgPath = '${mainImgVO.strImgPath}';
+
+//메인화면 인기문자 메세지 선택시 처리
+var mainLetterFlag = '${mainLetterVO.mainLetterFlag}';
+var mainSmsTxt = '${mainLetterVO.smsTxt}';
+
+//공통 설정
+var cateNo = "${cateCodeVO.cateNo}";
+var mainLetterTypeFlag = '${searchVO.mainLetterTypeFlag}';
+var moreSamFlag = '${moreSampleYn}';
+
+//문자 재전송 처리
+var msgResendFlag = '${reSendMsgVO.msgResendFlag}';
+var msgSeqList = [];
+msgSeqList = '${reSendMsgVO.msgSeqList}';
+
+//주소록에서 주소를 전송한 경우 처리
+var moveAddrFlag = '${addrVO.moveAddrFlag}';
+var addrIdList = [];
+addrIdList = '${addrVO.addrIdList}';
+
+
 $(document).ready(function(){
-	
 	console.log('loginVO : ', loginVO);
-	
 	// 내보관함 리스트 로그인이 완료된 경우에만 로드되도록
 	if(loginVO != "" && loginVO != null){
 		//최 하단 내문자함 탭 리스트 내용 불러오기
src/main/webapp/WEB-INF/jsp/web/msgdata/include/msgDataIncludeExcel.jsp
--- src/main/webapp/WEB-INF/jsp/web/msgdata/include/msgDataIncludeExcel.jsp
+++ src/main/webapp/WEB-INF/jsp/web/msgdata/include/msgDataIncludeExcel.jsp
@@ -554,9 +554,10 @@
 	});
 
 	var updatedData = currentData.map(row => {
+		console.log('row : ', row);
 		var newRow = {};
 		fieldMapping.forEach((field, index) => {
-			newRow[field] = row[Object.keys(row)[index]] || "";
+			newRow[field] = row[Object.keys(row)[index]] ?? "";
 		});
 		return newRow;
 	});
src/main/webapp/js/user/fax/addr/event.js
--- src/main/webapp/js/user/fax/addr/event.js
+++ src/main/webapp/js/user/fax/addr/event.js
@@ -303,7 +303,9 @@
 		var updatedData = currentData.map(row => {
 			var newRow = {};
 			fieldMapping.forEach((field, index) => {
-				newRow[field] = row[Object.keys(row)[index]] || "";
+				newRow[field] = row[Object.keys(row)[index]] !== null && row[Object.keys(row)[index]] !== undefined
+				    ? row[Object.keys(row)[index]]
+				    : "";
 			});
 			return newRow;
 		});
src/main/webapp/js/user/fax/exelUpload.js
--- src/main/webapp/js/user/fax/exelUpload.js
+++ src/main/webapp/js/user/fax/exelUpload.js
@@ -367,7 +367,9 @@
 	var updatedData = currentData.map(row => {
 		var newRow = {};
 		fieldMapping.forEach((field, index) => {
-			newRow[field] = row[Object.keys(row)[index]] || "";
+				newRow[field] = row[Object.keys(row)[index]] !== null && row[Object.keys(row)[index]] !== undefined
+				    ? row[Object.keys(row)[index]]
+				    : "";
 		});
 		return newRow;
 	});
src/main/webapp/js/web/addr/event.js
--- src/main/webapp/js/web/addr/event.js
+++ src/main/webapp/js/web/addr/event.js
@@ -364,7 +364,9 @@
 		var updatedData = currentData.map(row => {
 			var newRow = {};
 			fieldMapping.forEach((field, index) => {
-				newRow[field] = row[Object.keys(row)[index]] || "";
+				newRow[field] = row[Object.keys(row)[index]] !== null && row[Object.keys(row)[index]] !== undefined
+				    ? row[Object.keys(row)[index]]
+				    : "";
 			});
 			return newRow;
 		});
src/main/webapp/js/web/msgdata/msgDataView.js
--- src/main/webapp/js/web/msgdata/msgDataView.js
+++ src/main/webapp/js/web/msgdata/msgDataView.js
@@ -225,20 +225,16 @@
 				    $('html').animate({scrollTop : offset.top}, 400);
 					
 				}
-				
-				
 			}
 			
 			
 			//메인화면 더많은 샘플보기 버튼 선택시 처리
-			var moreSamFlag = '${moreSampleYn}';
-			
 			if(moreSamFlag == 'Y'){
 			
 				//문자 샘플 탭 활성화 시키기
-				var mainLetterTypeFlag = '${searchVO.mainLetterTypeFlag}';
+				// var mainLetterTypeFlag = '${searchVO.mainLetterTypeFlag}';
 				var letterTab = '0';
-				var cateNo = "${cateCodeVO.cateNo}";
+				// var cateNo = "${cateCodeVO.cateNo}";
 				if(mainLetterTypeFlag == 'P'){
 					TabType2($('.tabType2 li').eq(1), '2');
 				}else{
@@ -278,10 +274,12 @@
 			
 			
 			//메인화면 그림문자 이미지 선택시 처리
-			var mainImgFlag = '${mainImgVO.mainImgFlag}';
+			console.log('메인화면 그림문자 이미지 선택시 처리');
+			console.log('mainImgFlag : ' + mainImgFlag);
+			// var mainImgFlag = '${mainImgVO.mainImgFlag}';
 			if(mainImgFlag == 'Y'){
 				//카테고리 처리
-				var cateNo = "${cateCodeVO.cateNo}";
+				// var cateNo = "${cateCodeVO.cateNo}";
 				$('.tDep2_cateCode').find('.on').removeClass('on');
 				$('.tDep2_cateCode a').each(function(index){
 					if($(this).attr('value') == cateNo){
@@ -289,72 +287,84 @@
 					}
 				})				
 				
-				
-				var atchFileId = '${mainImgVO.atchFileId1}';
-				var fileSn = '${mainImgVO.fileSn}';
-				var strImgPath = '${mainImgVO.strImgPath}';
-				
-				fnCustomImgSendMsg(atchFileId, fileSn, strImgPath);
+				// var atchFileId = '${mainImgVO.atchFileId1}';
+				// var fileSn = '${mainImgVO.fileSn}';
+				// var strImgPath = '${mainImgVO.strImgPath}';
+				console.log('mainAtchFileId : ' + mainAtchFileId 
+						+ ' / mainFileSn : ' + mainFileSn 
+						+ ' / mainStrImgPath : ' + mainStrImgPath
+				);
+				fnCustomImgSendMsg(mainAtchFileId, mainFileSn, mainStrImgPath);
 				
 			}
 			
 			//메인화면 인기문자 메세지 선택시 처리
-			var mainLetterFlag = '${mainLetterVO.mainLetterFlag}';
+			console.log('메인화면 인기문자 메세지 선택시 처리');
+			console.log('mainLetterFlag : ' + mainLetterFlag);
+			// var mainLetterFlag = '${mainLetterVO.mainLetterFlag}';
 			if(mainLetterFlag == 'Y'){
 				var letterTab = '0';
 				//문자샘플 활성화 처리
 				TabType2($('.tabType2 li').eq(0), '1');
 				//단문,장문 탭 활성화 처리
-				var mainLetterTypeFlag = '${searchVO.mainLetterTypeFlag}';
+				// var mainLetterTypeFlag = '${searchVO.mainLetterTypeFlag}';
 				if(mainLetterTypeFlag == 'L'){
 					$('.tDep1_letType a').removeClass('on');
 					$('.tDep1_letType a').eq(1).addClass('on');
 				}
 				//카테고리 활성화 처리
-				var cateNo = "${cateCodeVO.cateNo}";
+				// var cateNo = "${cateCodeVO.cateNo}";
 				$('.tDep1_cateCode').find('.on').removeClass('on');	
 				$('.tDep1_cateCode a').each(function(index){
 					if($(this).attr('value') == cateNo){
 						$(this).addClass('on');
 					}
 				})
-				var smsTxt = '${mainLetterVO.smsTxt}';
-				if(smsTxt != null){
+				
+				// var smsTxt = '${mainLetterVO.smsTxt}';
+				if(mainSmsTxt != null){
 					
-					smsTxt = smsTxt.replaceAll("<br/>", "\n");	//줄발꿈문자 변환하기
-					$("#smsTxtArea").val(smsTxt);
-					fnByteString(smsTxt);
+					mainSmsTxt = mainSmsTxt.replaceAll("<br/>", "\n");	//줄발꿈문자 변환하기
+					$("#smsTxtArea").val(mainSmsTxt);
+					fnByteString(mainSmsTxt);
 					
 				}
 				
 			}
 			
-			//맞춤제작 내보관함 이미지 선택시 처리
-			var customImgFlag = '${customImgVO.customImgFlag}';
+			// 맞춤제작 내보관함 이미지 선택시 처리
+			console.log('커스텀 문자정보');
+			console.log('customImgFlag : ' + customImgFlag);
+			//	var customImgFlag = '${customImgVO.customImgFlag}';
 			if(customImgFlag == 'Y'){
 				
-				var atchFileId = '${customImgVO.atchFileId1}';
-				var fileSn = '${customImgVO.fileSn}';
-				var strImgPath = '${customImgVO.strImgPath}';
-				
-				fnCustomImgSendMsg(atchFileId, fileSn, strImgPath);
+				//var atchFileId = '${customImgVO.atchFileId1}';
+				//var fileSn = '${customImgVO.fileSn}';
+				//var strImgPath = '${customImgVO.strImgPath}';
+				console.log(' customAtchFileId : ' + customAtchFileId 
+						+ ' / customFileSn : ' + customFileSn
+						+ ' / customStrImgPath : ' + customStrImgPath
+				);
+				fnCustomImgSendMsg(customAtchFileId, customFileSn, customStrImgPath);
 				
 			}
 			
 			//문자 재전송 처리
-			var msgResendFlag = '${reSendMsgVO.msgResendFlag}';
-			var msgSeqList = [];
-			msgSeqList = '${reSendMsgVO.msgSeqList}';
+			console.log('문자 재전송 처리');
+			// var msgResendFlag = '${reSendMsgVO.msgResendFlag}';
+			// var msgSeqList = [];
+			// msgSeqList = '${reSendMsgVO.msgSeqList}';
 			if(msgSeqList.length > 0){
-					
+				console.log('msgSeqList.length : ' + msgSeqList.length);					
 				fnMsgResend(msgResendFlag, msgSeqList);
 				
 			}
 			
 			//주소록에서 주소를 전송한 경우 처리
-			var moveAddrFlag = '${addrVO.moveAddrFlag}';
-			var addrIdList = [];
-			addrIdList = '${addrVO.addrIdList}';
+			// var moveAddrFlag = '${addrVO.moveAddrFlag}';
+			// var addrIdList = [];
+			// addrIdList = '${addrVO.addrIdList}';
+			console.log('주소록에서 주소를 전송한 경우 처리');
 			if(addrIdList.length > 0) {
 				fnAddrSet(moveAddrFlag, addrIdList);
 			}
@@ -376,7 +386,6 @@
 }
 
 function fnCustomImgSendMsg(atchFileId, fileSn, filePath){
-	
 	
 	var imgId = "";
 	var imgSrc = "";
src/main/webapp/publish/css/content.css
--- src/main/webapp/publish/css/content.css
+++ src/main/webapp/publish/css/content.css
@@ -2353,6 +2353,18 @@
 .spam_content .spam_conbox .spam_table tbody tr td{text-align: left;}
 .spam_content .spam_conbox .spam_table tbody tr td li .conlist8{padding: 0 0 0 18px;}
 
+/*발송결과 수정_2025*/
+.price_wrap .table_tab_wrap .tab_btnbox .price_hover{width: 330px;}
+.price_wrap .table_tab_wrap .tab_btnbox .price_hover .last{padding: 5px 0 0 0;}
+
+.price_wrap .current .tb_wrap .tType4 tbody tr .result_cont a{height: 16px;}
+.price_wrap .current .tb_wrap .tType4 tbody tr .result_cont a:hover{text-decoration: underline;}
+.price_wrap .current .tb_wrap .tType4 tbody tr .result_cont .icon_wrap{display: flex; align-items: center;}
+.price_wrap .current .tb_wrap .tType4 tbody tr .result_cont .icon_wrap span{padding: 5px 8px; margin: 0 3px; border-radius: 20px; font-size: 14px;}
+.price_wrap .current .tb_wrap .tType4 tbody tr .result_cont .icon_wrap .re{background-color: #e8f0ff; color: #2c5dd6;}
+.price_wrap .current .tb_wrap .tType4 tbody tr .result_cont .icon_wrap .di{background-color: #e7f5ec; color: #359b59;}
+
+
 @keyframes rotate-loading {
 	0% {transform:rotate(0)}
 	100% {transform:rotate(360deg);}
src/main/webapp/publish/css/popupLayer.css
--- src/main/webapp/publish/css/popupLayer.css
+++ src/main/webapp/publish/css/popupLayer.css
@@ -1234,6 +1234,14 @@
 .adr_layer.adr_popup14 .cf_text_ul li{font-size:14px;color:#666;margin:0 0 5px 0;}
 .adr_layer.adr_popup14 .cf_text_ul li:last-child{margin:0;}
 
+/* 주소록 대량등록 팝업 헤더 수정  */
+.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=ascending] .tabulator-col-content .tabulator-col-sorter{z-index: 1;}
+.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=descending] .tabulator-col-content .tabulator-col-sorter{z-index: 1;}
+.tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort=none] .tabulator-col-content .tabulator-col-sorter{z-index: 1;}
+.tabulator .tabulator-header .tabulator-col::after{position: absolute; content: " "; width: 100%; height: 14px; background-color: #e5e5e5; bottom: 0; left: 0; z-index: 0;}
+.tabulator .tabulator-header .tabulator-col .tabulator-col-content{background-color: #ededed;}
+.tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title-holder .tabulator-col-title{position: relative; z-index: 1;}
+
 
 
 /* ie */
src/main/webapp/publish/guide_2022.html
--- src/main/webapp/publish/guide_2022.html
+++ src/main/webapp/publish/guide_2022.html
@@ -18,6 +18,7 @@
     <!-- <p>***<span class="font1"> (컨텐츠)</span> : 반복적으로 사용 안함</p>
     <p>***<span class="font2"> (보드)</span> : 반복적으로 사용</p> -->
     <ul class="page">
+    	<li><a href="/publish/textingmsg_2025_list.html">textingmsg_2025_list.html</a>[개선] 발송결과 수정</li>
         <li><a href="/publish/service3_spam_2024.html">service3_spam_2024.html</a>불법스팸방지정책  (2024.11.29)</li>
     	<li><a href="/publish/service1_2024.html">service1_2024.html</a>이용약관  (2024.11.29)</li>
     	<li><a href="/publish/service1_2023.html">service1_2023.html</a>이용약관  (2023.04.26~2024.11.28)</li>
 
src/main/webapp/publish/textingmsg_2025_list.html (added)
+++ src/main/webapp/publish/textingmsg_2025_list.html
@@ -0,0 +1,948 @@
+<!DOCTYPE html>
+<html lang="ko">
+
+<head>
+	<meta charset="UTF-8">
+	<meta http-equiv="X-UA-Compatible" content="IE=edge">
+	<title>문자온_발송결과</title>
+
+	<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100;300;400;500;700;900&display=swap"
+		rel="stylesheet">
+		<link rel="stylesheet" href="/publish/css/reset.css">
+		<link rel="stylesheet" href="/publish/css/jquery.mCustomScrollbar.css">
+		<link rel="stylesheet" href="/publish/css/common.css">
+		<link rel="stylesheet" href="/publish/css/button.css">
+		<link rel="stylesheet" href="/publish/css/content.css">
+		<link rel="stylesheet" href="/publish/css/mem.css">
+		<link rel="stylesheet" href="/publish/css/font.css">
+		<link rel="stylesheet" href="/publish/css/popupLayer.css">
+		<link rel="stylesheet" href="/publish/js/datepicker/classic.css">
+		<link rel="stylesheet" href="/publish/js/datepicker/classic.date.css">
+	
+	
+		<script src="/publish/js/jquery-3.5.0.js"></script>
+		<script src="/publish/js/jquery.mCustomScrollbar.concat.min.js"></script>
+		<script src="/publish/js/common.js"></script>
+		<script src="/publish/js/content.js"></script>
+		<script src="/publish/js/popupLayer.js"></script>
+		<script type="text/javascript" src="/publish/js/datepicker/picker.js"></script>
+		<script type="text/javascript" src="/publish/js/datepicker/picker.date.js"></script>
+		<script type="text/javascript" src="/publish/js/datepicker/ko_KR.js"></script>
+
+	<script>
+		$(document).ready(function () {
+			$(".table_tab_wrap .tab_depth1 a").click(function () {
+				var tab_num = $(this).index();
+				$(".table_cont .tb_wrap").eq(tab_num).show();
+				$(".table_cont .tb_wrap").eq(tab_num).siblings(".tb_wrap").hide();
+				if($(".table_tab_wrap .tab_depth1 a:visible").length == tab_num+1){
+					$(this).css("border-radius","0 5px 5px 0");
+				}else{}
+			})
+		});
+	</script>
+
+</head>
+
+<body>
+	<div class="mask"></div>
+
+	<!-- skip 메뉴  -->
+	<div class="skip_menu">
+		<a href="#cont" title="본문 바로가기" class="contGo">본문 바로가기</a>
+	</div>
+	<!--// skip 메뉴  -->
+	<!-- quick 메뉴 -->
+	<div class="quickMenu">
+		<div>
+			<p class="quick_title">QUICK<br>MENU</p>
+			<p class="quick_title2">QUICK</p>
+			<ul class="quickMenuIn">
+				<li>
+					<a href="/publish/index.html"><i class="quick1"></i><span>이용안내</span></a>
+					<div class="hover_cont">이용안내</div>
+				</li>
+				<li>
+					<a href="#"><i class="quick2"></i><span>채팅상담</span></a>
+					<div class="hover_cont">채팅상담</div>
+				</li>
+				<li>
+					<a href="#"><i class="quick3"></i><span>원격지원</span></a>
+					<div class="hover_cont">원격지원</div>
+				</li>
+				<li>
+					<a href="#"><i class="quick4"></i><span>맞춤제작</span></a>
+					<div class="hover_cont">맞춤제작</div>
+				</li>
+				<li>
+					<a href="#"><i class="quick5"></i><span>주소록 등록</span></a>
+					<div class="hover_cont">주소록 등록</div>
+				</li>
+				<li>
+					<a href="#"><i class="quick6"></i><span>엑셀 전송</span></a>
+					<div class="hover_cont">엑셀 대량전송</div>
+				</li>
+				<li>
+					<a href="#"><i class="quick7"></i><span>견적서</span></a>
+					<div class="hover_cont">견적서</div>
+				</li>
+				<li>
+					<a href="#"><i class="quick8"></i><span>결제</span></a>
+					<div class="hover_cont">결제</div>
+				</li>
+				<li>
+					<a href="#"><i class="quick9"></i><span>영수증/계산서</span></a>
+					<div class="hover_cont">영수증/계산서</div>
+				</li>
+			</ul>
+			<button type="button" class="goTop" title="맨 위로 이동">TOP<i></i></button>
+		</div>
+	</div>
+	<!--// quick 메뉴 -->
+	<!-- header 영역 -->
+	<header id="header" class="header">
+		<!-- header top 영역 -->
+		<div class="header_top">
+			<div class="inner">
+				<ul class="menu_left">
+					<li><a href="#"><i class="hdTop_fav"></i>즐겨찾기추가</a></li>
+					<li><a href="#"><i class="hdTop_mypage"></i>마이페이지</a></li>
+					<li><a href="#"><i class="hdTop_center"></i>고객센터</a></li>
+				</ul>
+				<ul class="menu_right">
+					<li><a href="#">충전하기</a></li>
+					<li class="SortLine"><a href="#">요금안내</a></li>
+					<li class="SortLine"><a href="#">이용안내</a></li>
+					<li class="SortLine"><a href="#">1:1고객상담</a></li>
+				</ul>
+			</div>
+		</div><!-- header top 영역 -->
+		<!-- header body 영역 -->
+		<div class="header_body">
+			<div class="inner table">
+				<h1 class="logo"><a href="/publish/index.html" alt="문자온 메인 바로가기"><img src="/publish/images/CI.png"
+							alt="문자온 CI"></a></h1>
+				<ul class="gnbWrap table_cell">
+					<li><a href="#">문자발송</a></li>
+					<li><a href="#">선거문자</a></li>
+					<li><a href="#">맞춤제작</a></li>
+					<li><a href="#">비즈톡</a></li>
+					<li><a href="#">주소록 관리</a></li>
+					<li><a href="#">발송결과</a></li>
+					<li><a href="#">예약관리</a></li>
+					<li><a href="#">결제내역</a></li>
+				</ul>
+				<div class="s_menu">
+					<i class="allSearch_info"><span>문자검색</span></i>
+					<button type="button" title="전체검색" class="allSearch" onclick="searchToggle();"><img
+							src="/publish/images/search.png" alt="검색영역 열기" class="allMenu"></button>
+					<button type="button" title="전체메뉴"><img src="/publish/images/all_menu.png" alt="전체메뉴 열기"></button>
+				</div>
+			</div>
+			<!-- search popup 영역 -->
+			<div class="pop_search">
+				<div class="inner">
+					<div class="area_search">
+						<select name="" id="">
+							<option value="">그림문자</option>
+							<option value="">단문문자</option>
+							<option value="">장문문자</option>
+							<option value="">GIF</option>
+						</select>
+						<input type="text" placeholder="문자샘플 검색하기">
+						<button><img src="/publish/images/search02.png" alt=""></button>
+					</div>
+					<div class="area_popular">
+						<p><i></i>인기검색어</p>
+						<ul class="popular_tag">
+							<li><a href="#">#정월대보름</a></li>
+							<li class="on"><a href="#">#추석</a></li>
+							<li><a href="#">#가을인사</a></li>
+							<li><a href="#">#좋은하루</a></li>
+						</ul>
+					</div>
+					<button class="btn_close" onclick="searchToggle();"><img src="/publish/images/btn_searchclose.png"
+							alt=""></button>
+				</div>
+			</div>
+			<!--// search popup 영역 -->
+		</div>
+		<!--// header body 영역 -->
+		<div id="login" class="login">
+			<div class="inner table">
+				<div class="login_left table_cell">
+					<div class="login_put">
+						<label for="id_text" class="label"></label>
+						<input type="text" placeholder="아이디를 입력해주세요" id="id_text" class="id_text" maxlength="30"
+							size="18">
+						<label for="password_text" class="label"></label>
+						<input type="password" placeholder="비밀번호를 입력해주세요" id="password_text" class="password_text"
+							maxlength="30" size="18">
+						<label for="login_button" class="label"></label>
+						<button type="submit" class="btnType btnType1" class="login_button">로그인</button>
+					</div>
+					<div class="login_save">
+						<input type="checkbox" id="save_id">
+						<label for="save_id">아이디 저장</label>
+					</div>
+					<div class="login_find">
+						<a href="#">아이디찾기 /</a>
+						<a href="#">비밀번호 찾기</a>
+					</div>
+					<div>
+						<button type="button" class="btnType btnType2">회원가입</button>
+						<button type="button" class="btnType btnType3">둘러보기</button>
+					</div>
+				</div>
+				<div class="login_right">
+					<span><i></i>이달의 이벤트</span>
+					<button type="button" class="btnType btnType4">바로가기</button>
+				</div>
+			</div>
+		</div>
+		<!--// login 영역 -->
+	</header>
+	<!--// header 영역 -->
+	<!-- login 영역 -->
+	<!-- content 영역 -->
+	<div id="container" class="cont sub">
+		<div class="inner">
+			<!-- send top -->
+			<div class="send_top">
+				<!-- 발송결과 화면 -->
+				<div class="rev_admin_cont serv_content current">
+					<div class="heading">
+						<h2>발송결과</h2>
+					</div>
+
+					<div class="pay_tab_wrap">
+						<!-- tab button -->
+						<ul class="tabType1">
+							<li class="tab active"><button type="button" onclick="TabType5(this,'1');return false;">문자</button>
+							</li>
+							<li class="tab "><button type="button"
+									onclick="TabType5(this,'2');return false;">카카오톡</button></li>
+						</ul>
+						<!--// tab button -->
+					</div>
+					<div class="rev_content" id="tab5_1">
+						<!-- 발송결과 개선 : 문구추가 -->
+						<div class="titBox_result">
+							<p>- 최대 3개월간의 발송내역만 확인하실 수 있습니다.</p>
+							<p>- 전송내역이 필요한 경우 기간 내에 다운로드하여 주시기 바랍니다.</p>
+							<p>- 단문문자는 최대 24시간, 장문 및 그림문자는 최대 72시간까지 결과값이 수신되지 않은 경우 실패(비과금) 처리됩니다.</p>
+						</div>
+						<!--// 발송결과 개선 : 문구추가 -->
+
+						<div class="excel_middle">
+							<div class="select_btnWrap clearfix">
+								<div class="btn_left">
+									<span class="cal_label">기간선택</span>
+									<div class="calendar_wrap">
+										<input type="text" class="startDate inp calendar picker__input" title="검색 시작일"
+											id="startDate" name="startDate" value="" data-datecontrol="true" readonly=""
+											aria-haspopup="true" aria-expanded="false" aria-readonly="false"
+											aria-owns="startDate_root">
+										<span class="dateEtc">~</span>
+										<input type="text" class="endDate inp calendar picker__input" title="검색 종료일"
+											id="endDate" name="endDate" value="" data-datecontrol="true" readonly=""
+											aria-haspopup="true" aria-expanded="false" aria-readonly="false"
+											aria-owns="endDate_root">
+									</div>
+									<button type="button">전월</button>
+									<button type="button">당월</button>
+									<button type="button">3개월</button>
+									<button type="button" class="btnType6">조회</button>
+								</div>
+								<div class="btn_right">
+									<label for="" class="label">발송방식 전체 선택</label>
+									<select name="" id="" class="selType2 select_all_btn">
+										<option value="">발송방식 전체</option>
+										<option value="">WEB</option>
+										<option value="">API</option>
+									</select>
+									<label for="" class="label">발신번호 선택</label>
+									<select name="" id="" class="selType2 select_btn">
+										<option value="">발신번호</option>
+										<option value="">문자내용</option>
+									</select>
+									<div class="search">
+										<label for="id" class="label"></label>
+										<input class="send_text" type="text" id="id" placeholder="검색어를 입력하세요." onfocus="this.placeholder=''" onblur="this.placeholder='검색어를 입력하세요.'">
+										<button type="button" class="btnType btnType2">검색</button>
+									</div>
+								</div>
+							</div>
+						</div>
+
+						<div class="rev_admin ">
+							<div class="rev_admin_in">
+								<div class="rev_admin_top clearfix">
+									<p>전체</p>
+									<p><span>134</span> 건</p>
+								</div>
+
+								<div class="rev_admin_btm">
+									<dl>
+										<dt>대기</dt>
+										<dd><span class="c_002c9a">3</span>건</dd>
+									</dl>
+									<dl>
+										<dt>성공</dt>
+										<dd><span class="c_002c9a">115</span>건</dd>
+									</dl>
+									<dl>
+										<dt>실패</dt>
+										<dd><span class="c_e40000">16</span>건</dd>
+									</dl>
+								</div>				
+							</div>
+							<div class="rev_admin_in">
+								<div class="rev_admin_top clearfix">
+									<p>단문(SMS)</p>
+									<p><span>78</span> 건</p>
+								</div>
+								<div class="rev_admin_btm">
+									<dl>
+										<dt>대기</dt>
+										<dd><span class="c_002c9a">0</span>건</dd>
+									</dl>
+									<dl>
+										<dt>성공</dt>
+										<dd><span class="c_002c9a">75</span>건</dd>
+									</dl>
+									<dl>
+										<dt>실패</dt>
+										<dd><span class="c_e40000">3</span>건</dd>
+									</dl>
+								</div>
+							</div>
+							<div class="rev_admin_in">
+								<div class="rev_admin_top clearfix">
+									<p>장문(LMS)</p>
+									<p><span>30</span> 건</p>
+								</div>
+								<div class="rev_admin_btm">
+									<dl>
+										<dt>대기</dt>
+										<dd><span class="c_002c9a">0</span>건</dd>
+									</dl>
+									<dl>
+										<dt>성공</dt>
+										<dd><span class="c_002c9a">23</span>건</dd>
+									</dl>
+									<dl>
+										<dt>실패</dt>
+										<dd><span class="c_e40000">7</span>건</dd>
+									</dl>
+								</div>
+							</div>
+							<div class="rev_admin_in">
+								<div class="rev_admin_top clearfix">
+									<p>그림(MMS)</p>
+									<p><span>26</span> 건</p>
+								</div>
+								<div class="rev_admin_btm">
+									<dl>
+										<dt>대기</dt>
+										<dd><span class="c_002c9a">3</span>건</dd>
+									</dl>
+									<dl>
+										<dt>성공</dt>
+										<dd><span class="c_002c9a">17</span>건</dd>
+									</dl>
+									<dl>
+										<dt>실패</dt>
+										<dd><span class="c_e40000">6</span>건</dd>
+									</dl>
+								</div>
+							</div>
+						</div>
+						
+						<div class="list_tab_wrap2 type4">
+							<!-- tab button -->
+							<ul class="list_tab">
+								<li class="tab active"><button type="button" onclick="listTab2(this,'1');">전체</button>
+								</li>
+								<li class="tab"><button type="button" onclick="listTab2(this,'2');">단문(SMS)</button>
+								</li>
+								<li class="tab"><button type="button" onclick="listTab2(this,'3');">장문(LMS)</button>
+								</li>
+								<li class="tab"><button type="button" onclick="listTab2(this,'4');">그림(MMS)</button>
+								</li>
+							</ul>
+							<!--// tab button -->
+						</div>
+						<!-- 발송관리 -->
+						<div class="price_history_cont price_wrap" id="listTab_2">
+							
+							<div class="table_tab_wrap">
+								<!-- tab button -->
+								<ul>
+									<li class="tab active"><button type="button">전체</button></li>
+									<li class="tab"><button type="button">즉시</button></li>
+									<li class="tab"><button type="button">예약</button></li>
+								</ul>
+								<!--// tab button -->
+								<!-- 발송화면 개선 : 발송결과 추가-->
+								<div class="tab_btnbox">
+									<button type="button" class="btnType btnType14 check_validity">발송결과<i class="qmMark"></i></button>
+									<div class="info_hover_cont send_hover_cont price_hover">
+										<dl>
+											<dt class="c_222">[<span>대기</span>]</dt>
+											<dd>
+                                                발송은 성공하였으며, 수신자측 통신사로부터 수신여부를 확인중인 상태 <br>
+                                                <span>※ 예약문자의 경우 실발송 전까지는 “대기”로 표시</span>
+                                            </dd>
+											<dt class="c_002c9a">[<span>성공</span>]</dt>
+											<dd>발송 및 수신이 완료된 상태</dd>
+											<dt class="c_e40000">[<span>실패</span>]</dt>
+											<dd class="last">결번, 일시정지, 전화번호 오류 등의 사유로 발송이
+												불가한 상태</dd>
+										</dl>
+									</div>
+								</div>
+								<!--// 발송화면 개선 : 발송결과 추가-->
+							</div>
+
+							<div class="table_cont current">
+								<div class="list_info">
+									<p>총 <span class="c_e40000">171</span>건</p>
+									<div>
+										<p class="cf_text c_e40000">※ 예약문자 발송취소는 예약 발송시간 기준 5분 전까지만 가능</p>
+										<label for="" class="label">카테고리 선택</label>
+										<label for="" class="label">줄보기 선택</label>
+										<select id="" class="selType2">
+											<option>10개보기</option>
+											<option>20개보기</option>
+										</select>
+									</div>
+								</div>
+								<!-- 발송화면 개선 : 테이블 수정-->
+								<div class="tb_wrap">
+									<table class="tType4">
+										<colgroup>
+											<col style="width: 12%;">
+											<col style="width: 7%;">
+											<col style="width: auto;">
+											<col style="width: 8%;">
+											<col style="width: 8%;">
+											<col style="width: 8%;">
+											<col style="width: 8%;">
+											<col style="width: 10%;">
+											<col style="width: 10%;">
+										</colgroup>
+										<thead>
+											<tr>
+												<th rowspan="2">발송일시
+													<div class="sort_wrap">
+														<input type="button" class="sort sortBtn" id="sort_reqdate">
+													</div>
+												</th>
+												<th rowspan="2">형태
+													<div class="sort_wrap">
+														<input type="button" class="sort sortBtn" id="sort_orderByCode">
+													</div>
+												</th>
+												<th rowspan="2">내용</th>
+												<th rowspan="2">발송건수
+													<div class="sort_wrap">
+														<input type="button" class="sort sortBtn" id="sort_msgGroupCnt">
+													</div>
+												</th>
+												<th colspan="3">발송결과</th>
+												<th rowspan="2">금액(원)</th>
+												<th rowspan="2">진행상황</th>
+											</tr>
+											<tr>
+												<th>대기</th>
+												<th>성공</th>
+												<th>실패</th>
+											</tr>
+										</thead>
+										<tbody>
+											<tr>
+												<td>2024-01-09 17:42</td>
+												<td>단문</td>
+												<td class="result_cont">
+                                                    <div class="icon_wrap">
+                                                        <span class="re">예약</span>
+                                                        <span class="di">분할</span>
+                                                        <a href="#">내용을 클릭하면 상세보기 화면으로 이동합니다.</a>
+                                                    </div>
+                                                </td>
+												<td>0</td>
+												<td>
+													<p class="c_666">0</p>
+												</td>
+												<td>
+													<p class="c_002c9a">0</p>
+												</td>
+												<td>
+													<p class="c_e40000">0</p>
+												</td>
+												<td>
+													8,485,258
+												</td>
+												<td>
+													<p><button class="btnType btnType20">예약취소</button></p>
+												</td>
+											</tr>
+											<tr>
+												<td>2024-01-09 17:42</td>
+												<td>단문</td>
+												<td class="result_cont">
+                                                    <div class="icon_wrap">
+                                                        <span class="re">예약</span>
+                                                        <a href="#">내용을 클릭하면 상세보기 화면으로 이동합니다.</a>
+                                                    </div>
+                                                </td>
+												<td>0</td>
+												<td>
+													<p class="c_666">0</p>
+												</td>
+												<td>
+													<p class="c_002c9a">0</p>
+												</td>
+												<td>
+													<p class="c_e40000">0</p>
+												</td>
+												<td>-</td>
+                                                <td>예약취소</td>
+											</tr>
+											<tr>
+												<td>2024-01-09 17:42</td>
+												<td>단문</td>
+												<td class="result_cont">
+                                                    <div class="icon_wrap">
+                                                        <a href="#">내용을 클릭하면 상세보기 화면으로 이동합니다.</a>
+                                                    </div>
+                                                </td>
+												<td>458,002</td>
+												<td>
+													<p class="c_666">1</p>
+												</td>
+												<td>
+													<p class="c_002c9a">458,000</p>
+												</td>
+												<td>
+													<p class="c_e40000">1</p>
+												</td>
+												<td>12,580</td>
+												<td>진행중</td>
+											</tr>
+                                            <tr>
+												<td>2024-01-09 17:42</td>
+												<td>단문</td>
+												<td class="result_cont">
+                                                    <div class="icon_wrap">
+                                                        <a href="#">내용을 클릭하면 상세보기 화면으로 이동합니다.</a>
+                                                    </div>
+                                                </td>
+												<td>458,002</td>
+												<td>
+													<p class="c_666">1</p>
+												</td>
+												<td>
+													<p class="c_002c9a">458,000</p>
+												</td>
+												<td>
+													<p class="c_e40000">1</p>
+												</td>
+												<td>12,580</td>
+												<td>완료</td>
+											</tr>
+										</tbody>
+									</table>
+								</div>							
+								<!--// 발송화면 개선 : 테이블 수정-->
+								
+								<div class="table_btn clearfix">
+                                    <!--									<div class="table_btn_left">
+											<button type="button" data-tooltip="rev_popup02" class="btnType btnType15"><i class="add_img"></i>그룹등록</button>
+											<button type="button" class="btnType btnType15" onclick="javascript:fnDeleteAddrNo('groupList'); return false;"><i class="remove_img"></i>주소록에서 번호 삭제</button>
+											<button type="button" class="btnType btnType15" onclick="javascript:fnAddBlockNo('groupList'); return false;">수신거부번호 등록</button>
+									</div>
+									<div class="table_btn_right">
+										<button type="button" class="excel_btn btnType"><i class="downroad"></i>엑셀
+											다운로드</button>
+										<button type="button" class="print_btn btnType"><i class="print_img"></i>발송결과
+											출력하기</button>
+									</div>-->
+								</div>
+								
+								<!-- pagination -->
+								<ul class="pagination">
+									<li class="page_first"><button><img src="/publish/images/content/page_first.png"
+												alt=""></button></li>
+									<li class="page_prev"><button><img src="/publish/images/content/page_prev.png"
+												alt=""></button></li>
+									<li class="on"><button>1</button></li>
+									<li><button>2</button></li>
+									<li><button>3</button></li>
+									<li><button>4</button></li>
+									<li><button>5</button></li>
+									<li><button>6</button></li>
+									<li><button>7</button></li>
+									<li><button>8</button></li>
+									<li><button>9</button></li>
+									<li><button>10</button></li>
+									<li class="page_next"><button><img src="/publish/images/content/page_next.png"
+												alt=""></button></li>
+									<li class="page_last"><button><img src="/publish/images/content/page_last.png"
+												alt=""></button></li>
+								</ul><!-- pagination -->
+								
+							</div>
+							
+
+						</div><!-- // 발송관리 -->
+					</div>
+
+					<div class="rev_content kakao_rev_content" id="tab5_2" style="display: none;">
+						<!-- 발송결과 개선 : 문구추가 -->
+						<div class="titBox_result">
+							<p>- 최대 3개월간의 발송내역만 확인하실 수 있습니다.</p>
+							<p>- 전송내역이 필요한 경우 기간 내에 다운로드하여 주시기 바랍니다.</p>
+							<p>- 단문문자는 최대 24시간, 장문 및 그림문자는 최대 72시간까지 결과값이 수신되지 않은 경우 실패(비과금) 처리됩니다.</p>
+						</div>
+						<!--// 발송결과 개선 : 문구추가 -->
+
+						<div class="excel_middle">
+							<div class="select_btnWrap clearfix">
+								<div class="btn_left">
+									<span class="cal_label">기간선택</span>
+									<div class="calendar_wrap">
+										<input type="text" class="startDate inp calendar picker__input" title="검색 시작일"
+											id="startDate" name="startDate" value="" data-datecontrol="true" readonly=""
+											aria-haspopup="true" aria-expanded="false" aria-readonly="false"
+											aria-owns="startDate_root">
+										<span class="dateEtc">~</span>
+										<input type="text" class="endDate inp calendar picker__input" title="검색 종료일"
+											id="endDate" name="endDate" value="" data-datecontrol="true" readonly=""
+											aria-haspopup="true" aria-expanded="false" aria-readonly="false"
+											aria-owns="endDate_root">
+									</div>
+									<button type="button">전월</button>
+									<button type="button">당월</button>
+									<button type="button">3개월</button>
+									<button type="button" class="btnType6">조회</button>
+								</div>
+								<div class="btn_right">
+									<label for="" class="label">발신번호 선택</label>
+									<select name="" id="" class="selType2">
+										<option value="">발신번호</option>
+										<option value="">발신번호</option>
+										<option value="">발신번호</option>
+									</select>
+									<div class="search">
+										<label for="id" class="label"></label>
+										<input type="text" id="id" placeholder="검색어를 입력하세요."
+											onfocus="this.placeholder=''" onblur="this.placeholder='검색어를 입력하세요.'">
+										<button type="button" class="btnType btnType2">검색</button>
+									</div>
+								</div>
+							</div>
+						</div>
+
+						<div class="rev_admin">
+							<div class="rev_admin_in">
+								<div class="rev_admin_top clearfix">
+									<p>전체</p>
+									<p><span>171</span> 건</p>
+								</div>
+								<div class="rev_admin_btm">
+									<dl>
+										<dt>대기</dt>
+										<dd><span class="c_002c9a">160</span>건</dd>
+									</dl>
+									<dl>
+										<dt>성공</dt>
+										<dd><span class="c_002c9a">160</span>건</dd>
+									</dl>
+									<dl>
+										<dt>실패</dt>
+										<dd><span class="c_e40000">0</span>건</dd>
+									</dl>
+								</div>
+							</div>
+							<div class="rev_admin_in">
+								<div class="rev_admin_top clearfix">
+									<p>알림톡</p>
+									<p><span>171</span> 건</p>
+								</div>
+								<div class="rev_admin_btm">
+									<dl>
+										<dt>대기</dt>
+										<dd><span class="c_002c9a">160</span>건</dd>
+									</dl>
+									<dl>
+										<dt>성공</dt>
+										<dd><span class="c_002c9a">160</span>건</dd>
+									</dl>
+									<dl>
+										<dt>실패</dt>
+										<dd><span class="c_e40000">0</span>건</dd>
+									</dl>
+								</div>
+							</div>
+							<!-- <div class="rev_admin_in">
+								<div class="rev_admin_top clearfix">
+									<p>친구톡</p>
+									<p><span>171</span> 건</p>
+								</div>
+								<div class="rev_admin_btm">
+									<dl>
+										<dt>대기</dt>
+										<dd><span class="c_002c9a">160</span>건</dd>
+									</dl>
+									<dl>
+										<dt>성공</dt>
+										<dd><span class="c_002c9a">160</span>건</dd>
+									</dl>
+									<dl>
+										<dt>실패</dt>
+										<dd><span class="c_e40000">0</span>건</dd>
+									</dl>
+								</div>
+							</div> -->
+						</div>
+						
+						<div class="list_tab_wrap2 type4">
+							<!-- tab button -->
+							<ul class="list_tab">
+								<li class="tab active"><button type="button" onclick="listTab2(this,'1');">전체</button>
+								</li>
+								<li class="tab"><button type="button" onclick="listTab2(this,'2');">알림톡</button></li>
+								<li class="tab"><button type="button" onclick="listTab2(this,'3');">친구톡</button></li>
+							</ul>
+							<!--// tab button -->
+						</div>
+						<!-- 발송관리 > 전체 -->
+						<div class="price_history_cont" id="listTab_2">
+							
+							<div class="table_tab_wrap">
+								<!-- tab button -->
+								<ul>
+									<li class="tab active"><button type="button">전체</button></li>
+									<li class="tab"><button type="button">대기</button></li>
+									<li class="tab"><button type="button">성공</button></li>
+									<li class="tab"><button type="button">실패</button></li>
+									<li class="tab"><button type="button">예약</button></li>
+								</ul>
+								<!--// tab button -->
+								<!-- 발송화면 개선 : 발송결과 추가-->
+								<div class="tab_btnbox" style="z-index:999;">
+									<button type="button" class="btnType btnType14  check_validity" >발송결과<i class="qmMark"></i></button>
+									<div class="info_hover_cont send_hover_cont">
+										<dl>
+											<dt class="c_666">[<span>대기</span>]</dt>
+											<dd>발송은 성공하였으며, 수신자측 통신사로부터 수신여부를
+												확인중인 상태</dd>
+											<dt class="c_002c9a">[<span>성공</span>]</dt>
+											<dd>발송 및 수신이 완료된 상태</dd>
+											<dt class="c_e40000">[<span>실패</span>]</dt>
+											<dd>결번, 일시정지, 전화번호 오류 등의 사유로 발송이
+												불가한 상태</dd>
+											<dt class="c_222">[<span>예약</span>]</dt>
+											<dd>예약 발송 대기 상태</dd>
+										</dl>
+									</div>
+								</div>
+								<!--// 발송화면 개선 : 발송결과 추가-->
+							</div>
+
+							<div class="table_cont current">
+								<div class="list_info">
+									<p>총 발송건수 <span class="c_e40000">171</span>건</p>
+									<div>
+										<p class="cf_text c_e40000">※ 예약문자 발송취소는 예약 발송시간 기준 5분 전까지만 가능</p>
+										<label for="" class="label">줄보기 선택</label>
+										<select id="" class="selType2">
+											<option>10개보기</option>
+											<option>20개보기</option>
+										</select>
+									</div>
+								</div>
+								<!-- 발송화면 개선 : 카카오톡 테이블 수정 -->
+								<div class="tb_wrap">
+									<table class="tType4">
+										<colgroup>
+											<col style="width: 45px;">
+											<col style="width: 12%;">
+											<col style="width: 8%;">
+											<col style="width: auto;">
+											<col style="width: 8%;">
+											<col style="width: 6%;">
+											<col style="width: 6%;">
+											<col style="width: 6%;">
+											<col style="width: 6%;">
+											<col style="width: 6%;">
+											<col style="width: 6%;">
+											<col style="width: 9%;">
+											<col style="width: 11%;">
+										</colgroup>
+										<thead>
+											<tr>
+												<th rowspan="2">
+													<label for="" class="label">전체 선택</label>
+													<input type="checkbox">
+												</th>
+												<th rowspan="2">발송일시
+													<div class="sort_wrap">
+														<input type="button" class="sort sortBtn" id="sort_reqdate">
+													</div>
+												</th>
+												<th rowspan="2">형태
+													<div class="sort_wrap">
+														<input type="button" class="sort sortBtn" id="sort_orderByCode">
+													</div>
+												</th>
+												<th rowspan="2">내용</th>
+												<th rowspan="2">발송건수
+													<div class="sort_wrap">
+														<input type="button" class="sort sortBtn" id="sort_msgGroupCnt">
+													</div>
+												</th>
+												<th colspan="4">카카오톡 결과</th>
+												<th colspan="2">대체문자 결과</th>
+												<th rowspan="2">금액</th>
+												<th rowspan="2">예약관리</th>
+											</tr>
+											<tr>
+												<th>대기</th>
+												<th>성공</th>
+												<th>실패</th>
+												<th>예약</th>
+												<th>성공</th>
+												<th>실패</th>
+											</tr>
+										</thead>
+										<tbody>											
+											<tr>
+												<td>
+													<label for="" class="label">선택</label>
+													<input type="checkbox">
+												</td>
+												<td>2024-01-09 17:42</td>
+												<td>단문</td>
+												<td class="result_cont"><a href="#">내용을 클릭하면 상세보기 화면으로 이동합니다.</a></td>
+												<td>125,895</td>
+												<td>
+													<p class="c_666">0</p>
+												</td>
+												<td>
+													<p class="c_002c9a">0</p>
+												</td>
+												<td>
+													<p class="c_e40000">0</p>
+												</td>
+												<td>
+													<p class="c_002c9a">0</p>
+												</td>
+												<td>
+													<p class="c_002c9a">0</p>
+												</td>
+												<td>
+													<p class="c_e40000">125,895</p>
+												</td>
+												<td>
+													8,485,258원
+												</td>
+												<td>
+													<p><button class="btnType btnType20">예약취소</button></p>
+												</td>
+											</tr>												
+										</tbody>
+									</table>
+								</div>
+								<!--// 발송화면 개선 : 카카오톡 테이블 수정 -->
+
+								<div class="table_btn clearfix">
+									<div class="table_btn_left">
+
+										<button type="button" data-tooltip="rev_popup02" class="btnType btnType15"><i
+												class="add_img"></i>그룹등록</button>
+										<button type="button" class="btnType btnType15"><i class="remove_img"></i>주소록에서
+											번호 삭제</button>
+										<button type="button" class="btnType btnType15">수신거부번호 등록</button>
+									</div>
+									<div class="table_btn_right">
+										<button type="button" class="excel_btn btnType"><i class="downroad"></i>엑셀
+											다운로드</button>
+										<button type="button" class="print_btn btnType"><i class="print_img"></i>발송결과
+											출력하기</button>
+									</div>
+								</div>
+								
+
+								<!-- pagination -->
+								<ul class="pagination">
+									<li class="page_first"><button><img src="/publish/images/content/page_first.png"
+												alt=""></button></li>
+									<li class="page_prev"><button><img src="/publish/images/content/page_prev.png"
+												alt=""></button></li>
+									<li class="on"><button>1</button></li>
+									<li><button>2</button></li>
+									<li><button>3</button></li>
+									<li><button>4</button></li>
+									<li><button>5</button></li>
+									<li><button>6</button></li>
+									<li><button>7</button></li>
+									<li><button>8</button></li>
+									<li><button>9</button></li>
+									<li><button>10</button></li>
+									<li class="page_next"><button><img src="/publish/images/content/page_next.png"
+												alt=""></button></li>
+									<li class="page_last"><button><img src="/publish/images/content/page_last.png"
+												alt=""></button></li>
+								</ul><!-- pagination -->
+								
+							</div>
+						</div><!-- // 발송관리 > 전체 -->
+					</div>
+
+
+				</div>
+			</div>
+			<!--// send top -->
+		</div>
+	</div>
+	<!--// content 영역 -->
+	<!-- footer 영역 -->
+	<footer id="footer" class="footer" style="display:none;">
+		<div class="footer_top">
+			<div class="inner table">
+				<ul class="table_cell">
+					<li><a href="#">이용약관</a></li>
+					<li class="SortLine fwRg c_white"><a href="#">개인정보취급방침</a></li>
+					<li class="SortLine fwRg c_white"><a href="#">스팸관리정책</a></li>
+					<li class="SortLine"><a href="#">불법스팸예방안내</a></li>
+				</ul>
+			</div>
+		</div>
+		<div class="footer_body">
+			<div class="inner table">
+				<div class="table_cell">
+					<a href="#" class="footer_logo"><img src="/publish/images/CI_white.png" alt="문자온 CI"></a>
+					<div class="footer_info">
+						<p>주소 : 경기도 남양주시 다산중앙로 19번길 21 1027호, 1028호(블루웨일 지식산업센터 1차)</p>
+						<p>사업자번호 : 653-87-00858 | 대표 : 유인식 | 통신판매등록번호 : 제 다산-12345호 | 문의전화 : 070-4786-0007</p>
+						<p>Copyright 2020 ⓒ MUNJAON co. Ltd, All rights reserved.</p>
+					</div>
+					<div class="footer_service_center">
+						<i></i>
+						<div>
+							<p>고객센터</p>
+							<span class="footer_service_num">070-4786-0008</span>
+							<span>E-mail : help@iten.co.kr</span>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</footer>
+	<!--// footer 영역 -->
+</body>
+
+</html>(No newline at end of file)
Add a comment
List