diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml new file mode 100644 index 00000000..385c6baf --- /dev/null +++ b/.idea/jsLibraryMappings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 3647c99c..3354b310 100644 --- a/pom.xml +++ b/pom.xml @@ -214,6 +214,22 @@ 2.8.8 + + + + net.java.dev.jna + jna + 5.5.0 + + + + + com.profesorfalken + WMI4Java + 1.6.3 + + + diff --git a/src/main/java/com/dreamchaser/depository_manage/EPSON/ENS/ENS.java b/src/main/java/com/dreamchaser/depository_manage/EPSON/ENS/ENS.java new file mode 100644 index 00000000..848b2833 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/EPSON/ENS/ENS.java @@ -0,0 +1,10 @@ +package com.dreamchaser.depository_manage.EPSON.ENS; + +import com.sun.jna.Memory; +import com.sun.jna.Pointer; + +public class ENS { + + protected Pointer _ptrToStruct = new Memory(10); + private boolean _disposed = false; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/EPSON/ENS/ENSEnumrations.java b/src/main/java/com/dreamchaser/depository_manage/EPSON/ENS/ENSEnumrations.java new file mode 100644 index 00000000..9cca9feb --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/EPSON/ENS/ENSEnumrations.java @@ -0,0 +1,341 @@ +package com.dreamchaser.depository_manage.EPSON.ENS; + +import sun.management.snmp.jvmmib.EnumJvmMemPoolThreshdSupport; + +/** + * 用于ENS相关的枚举类 + */ +public class ENSEnumrations { + + + /** + * 用于ENS错误码的枚举 + */ + public enum ENSErrorCode + { + ERR_BASE (0), + ERR_PARAMETER (ERR_BASE.getI()- 1), //Values of necessary arguments have not been set. + ERR_INITIALIZE (ERR_BASE.getI()- 2), //Failure in initialization of bi-directional communication module. + //Or API has not been initialized. + ERR_NOTSUPPORT (ERR_BASE.getI()- 3), //Error before the start of communication (i.e. a port specification error etc.). + //Or other error occurred in bi-directional communication module. + ERR_PRINTER (ERR_BASE.getI()- 4), //Printer has not been registered + ERR_NOTFOUND (ERR_BASE.getI()- 5), //Communication cannot be opened. + //Communication trouble. Or there is no device information which can be acquired. + ERR_BUFFERSIZE (ERR_BASE.getI()- 6), //Specified buffer size value is too small. + ERR_TEMPORARY (ERR_BASE.getI()- 7), //Temporary storage memory used in API cannot be secured. + ERR_COMMUNICATION (ERR_BASE.getI()- 8), //Communication error occurred inside system of bi-directional communication module. + ERR_INVALIDDATA (ERR_BASE.getI()- 9), //Data acquired by API contains invalid code, so data is not reliable. + ERR_CHANNEL (ERR_BASE.getI()- 10), //No usable communication channel for packet transmission/reception. + ERR_HANDLE (ERR_BASE.getI()- 11), //Handle of specified bi-directional communication module is invalid. + ERR_BUSY (ERR_BASE.getI()- 12), //Port could not be opened while printer is printing (communicating). + ERR_LOADDLL (ERR_BASE.getI()- 13), //Failure in loading bi-directional communication module. + ERR_DEVICEID (ERR_BASE.getI()- 14), //Specified DeviceID information is invalid. + ERR_PRNHANDLE (ERR_BASE.getI()- 15), //Specified printer handle is invalid. + ERR_PORT (ERR_BASE.getI()- 16), //Unsupported printer path name was specified. + ERR_TIMEOUT (ERR_BASE.getI()- 17), //Receive processing stopped due to a time out. + ERR_JOB1 (ERR_BASE.getI()- 18), //Job management error No. 1. + ERR_JOB2 (ERR_BASE.getI()- 19), //Job management error No. 2. + ERR_JOB3 (ERR_BASE.getI()- 20), //Job management error No. 3. + ERR_INVALIDHANDLE ( ERR_BASE.getI()- 21),//Specified discovery handle is invalid. + ERR_USERCANCEL (ERR_BASE.getI()- 22), //Discovery was canceled by user. + ERR_THREADSTART (ERR_BASE.getI()- 23), //Failed in starting thread. + ERR_TRAPRESOURCE ( ERR_BASE.getI()- 24), //Insufficient trap resource. + ERR_SERVICE ( ERR_BASE.getI()- 25), //Core service error. + ERR_JOBNOTSUPPORT ( ERR_BASE.getI()- 26),//Job management function is not supported. + ERR_TRAPNOTSUPPORT ( ERR_BASE.getI()- 27), //Trap function is not supported. + ERR_SETTRAP ( ERR_BASE.getI()- 28), //Trap setting failure. + ERR_NOTRAPDATA ( ERR_BASE.getI()- 29), //No Trap notification data. + ERR_GSTNOTSUPPORT ( ERR_BASE.getI()- 30),//Unsupported general status. + ERR_OTHER ( - 31); //Other error; + + private int i; + ENSErrorCode(int i) { + this.i = i; + } + public int getI() { + return i; + } + + /** + * 用于获取对应的枚举值 + * @return + */ + public static ENSErrorCode getENSErrorCode(int i){ + switch (i) { + case 0: + return ERR_PARAMETER; + case -1: + return ERR_PARAMETER; + case -2: + return ERR_INITIALIZE; + case -3: + return ERR_NOTSUPPORT; + case -4: + return ERR_PRINTER; + case -5: + return ERR_NOTFOUND; + case -6: + return ERR_BUFFERSIZE; + case -7: + return ERR_TEMPORARY; + case -8: + return ERR_COMMUNICATION; + case -9: + return ERR_INVALIDDATA; + case -10: + return ERR_CHANNEL; + case -11: + return ERR_HANDLE; + case -12: + return ERR_BUSY; + case -13: + return ERR_LOADDLL; + case -14: + return ERR_DEVICEID; + case -15: + return ERR_PRNHANDLE; + case -16: + return ERR_PORT; + case -17: + return ERR_TIMEOUT; + case -18: + return ERR_JOB1; + case -19: + return ERR_JOB2; + case -20: + return ERR_JOB3; + case -21: + return ERR_INVALIDHANDLE; + case -22: + return ERR_USERCANCEL; + case -23: + return ERR_THREADSTART; + case -24: + return ERR_TRAPRESOURCE; + case -25: + return ERR_SERVICE; + case -26: + return ERR_JOBNOTSUPPORT; + case -27: + return ERR_TRAPNOTSUPPORT; + case -28: + return ERR_SETTRAP; + case -29: + return ERR_NOTRAPDATA; + case -30: + return ERR_GSTNOTSUPPORT; + case -31: + return ERR_OTHER; + default: + return null; + } + } + + } + + /** + * 用于ENS类型的枚举 + */ + public enum ENSType //Printer path type + { + TYPE_PORT (0), //Port + TYPE_PRINTER (1), //Printer registration name + TYPE_IPX (2); //IPX + + + private int i; + ENSType(int i) { + + this.i = i; + } + public int getI() { + return i; + } + } + + + /** + * 用于ENS路径类型的枚举 + */ + public enum ENSPathType + { + TYPE_EJL (0), //Printer compatible with EJL commands (Page printer) + TYPE_REMOTE (1), //Printer compatible with remote commands (INK/SIDM printer) + TYPE_UNKNOWN (100); //Type cannot be determined. + + private int i; + + ENSPathType(int i) { + this.i = i; + } + + public int getI() { + return i; + } + + /** + * 用于获取对应的枚举值 + * @param i + * @return + */ + public static ENSPathType getENSPathType(int i){ + switch (i){ + case 0: + return TYPE_EJL; + case 1: + return TYPE_REMOTE; + case 100: + return TYPE_UNKNOWN; + default: + return null; + } + } + } + + + //------------------------------------ + //Definitions Printer StateCode for TM-C3400/TM-C3500/TM-C7500 (printer type). + //Please add StatusCode which are not being defined. + //Some value that is not being defined in enum by specification change of SDK may be returned. + //Refer SDK specifications for the latest definition. + //------------------------------------ + public enum StatusCode + { + ST_Error (0x00 ), + ST_TestPrint (0x01 ), + ST_Busy (0x02 ), + ST_Wait (0x03 ), + ST_Idle (0x04 ), + ST_NotPrint (0x05 ), + ST_Inkdrying (0x06 ), + ST_Cleaning (0x07 ); + + private int i; + StatusCode(int i) { + this.i = i; + } + + public int getI() { + return i; + } + + /** + * 用于获取对应的枚举值 + * @param i + * @return + */ + public static StatusCode getStatusCode(int i){ + switch (i){ + case 0x00: + return ST_Error; + case 0x01: + return ST_TestPrint; + case 0x02: + return ST_Busy; + case 0x03: + return ST_Wait; + case 0x04: + return ST_Idle; + case 0x05: + return ST_NotPrint; + case 0x06: + return ST_Inkdrying; + case 0x07: + return ST_Cleaning; + default: + return null; + } + } + } + + //------------------------------------ + //Definitions Printer ErrorCode for TM-C3400/TM-C3500/TM-C7500 (printer type). + //Please add ErrorCode which are not being defined. + //Some value that is not being defined in enum by specification change of SDK may be returned. + //Refer SDK specifications for the latest definition. + //------------------------------------ + public enum ErrorCode + { + ERR_FatalError (0x00 ), + ERR_CoverOpen (0x02 ), + ERR_PaperJam (0x04 ), + ERR_Inkout (0x05 ), + ERR_Paperout (0x06 ); + + private int i; + ErrorCode(int i) { + this.i = i; + } + + public int getI() { + return i; + } + + /** + * 用于获取对应的枚举值 + * @param i + * @return + */ + public static ErrorCode getErrorCode(int i){ + switch (i){ + case 0x00: + return ERR_FatalError; + case 0x02: + return ERR_CoverOpen; + case 0x04: + return ERR_PaperJam; + case 0x05: + return ERR_Inkout; + case 0x06: + return ERR_Paperout; + default: + return null; + } + } + } + + //------------------------------------ + //Definitions Printer WarningCode for TM-C3400/TM-C3500/TM-C7500 (printer type). + //Please add WarningCode which are not being defined. + //Some value that is not being defined in enum by specification change of SDK may be returned. + //Refer SDK specifications for the latest definition. + //------------------------------------ + public enum WarningCode + { + WAR_InkLow_B (0x010 ), + WAR_InkLow_C (0x011 ), + WAR_InkLow_M (0x012 ), + WAR_InkLow_Y (0x013 ); + + private int i; + WarningCode(int i) { + this.i = i; + } + + public int getI() { + return i; + } + + /** + * 用于获取对应的枚举值 + * @param i + * @return + */ + public static WarningCode getWarningCode(int i){ + switch (i){ + case 0x010: + return WAR_InkLow_B; + case 0x011: + return WAR_InkLow_C; + case 0x012: + return WAR_InkLow_M; + case 0x013: + return WAR_InkLow_Y; + + default: + return null; + } + } + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/EPSON/ENS/ENSStatus.java b/src/main/java/com/dreamchaser/depository_manage/EPSON/ENS/ENSStatus.java new file mode 100644 index 00000000..233fbc84 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/EPSON/ENS/ENSStatus.java @@ -0,0 +1,231 @@ +package com.dreamchaser.depository_manage.EPSON.ENS; + +import com.dreamchaser.depository_manage.config.EPSON.ENS.Global_MEDIA_ENS; +import com.dreamchaser.depository_manage.config.EPSON.EPDM.Global_MEDIA_EPDM; +import com.sun.jna.Memory; +import com.sun.jna.Structure; + +public class ENSStatus extends ENS{ + + public class STATUSVERSION extends Structure + { + public short MajorVersion; + public short MinerVersion; + } + + public class PAPERPATHINFO extends Structure + { + public byte Type; + public byte Path; + } + + public class CHARASTATUSINFO01 extends Structure + { + public byte Version; + public int StartDate; + public int TotalPrintedLine; + public short TotalTime; + public short CSFBin1PaperSize; + public short CSFBin2PaperSize; + public short CSFBin3PaperSize; + public short SeriesPaperWidth; + } + + public class CHARASTATUSINFO02 extends Structure + { + public byte Version; + public int StartDate; + public int TotalPrintedLine; + public short TotalTime; + public int ChangeRibonLine; + } + + public class CHARASTATUSINFO03 extends Structure + { + public byte Version; + public short CSFBin1PaperSize; + public byte CSFBin1PaperType; + public byte CSFBin1PaperRest; + public short CSFBin2PaperSize; + public byte CSFBin2PaperType; + public byte CSFBin2PaperRest; + public byte SIMMVolume; + } + + + public class TRAYFIELDINFO extends Structure + { + public byte FieldType; + public byte Position; + } + + public class PAPERTRAYINFO extends Structure + { + public byte TrayType; + public byte TrayVolume; + public TRAYFIELDINFO TrayField; + } + + public class JOBNAMEINFO extends Structure + { + public int JobID; + public char[] Jobname = new char[64]; + } + + public class CARTRIDGEANDINKINFO extends Structure + { + public byte CartridgeType; + public int ColorType; + public byte InkRest; + public byte InkDimension; + } + + + public class HEATERTEMPERATUREINFO extends Structure + { + public byte TemperatureUnit; + public byte TemperatureSetForPreHeater; + public byte PreHeaterTemperature; + public byte PreHeaterInfo; + public byte TemperatureSetForPlatenHeater; + public byte PlatenHeaterTemperature; + public byte PlatenHeaterInfo; + public byte TemperatureSetForAfterHeater; + public byte AfterHeaterTemperature; + public byte AfterHeaterInfo; + } + + public class ROMCODEINFO extends Structure + { + public byte Size; + public byte[] Data = new byte[255]; + } + + public static class INKSIDMSTATUS_02 extends Structure + { + public int StatusSize; + public STATUSVERSION Version; + public byte StatusCode; + public byte ErrorCode; + public byte SelfPrintCode; + + public int[] WarmingCode = new int[2]; + public byte[] RestCSFPaper = new byte[4]; + public byte[] ReserveRestCSFPaper = new byte[4]; + public PAPERPATHINFO PaperPath; + public short PaperSizeError; + public byte PaperTypeError; + public PAPERPATHINFO PaperPathError; + public CHARASTATUSINFO01 CharaStatus01; + public CHARASTATUSINFO02 CharaStatus02; + public CHARASTATUSINFO03 CharaStatus03; + public short CopyPrintNumber; + public byte InkColorNumber; + public byte MicroWeaveInfo; + public short CleaningTime; + public byte[] PaperSelectStatus = new byte[11]; + public byte[] ReservePaperSelectStatus = new byte[5]; + public CARTRIDGEANDINKINFO[] CartridgeInk = new CARTRIDGEANDINKINFO[16]; + public PAPERTRAYINFO[] PaperTray = new PAPERTRAYINFO[8]; + public byte PrintTec; + public int ReplaceCartridge; + public short RomCode; + public byte[] InkRemainInfo = new byte[3]; + public byte[] ReserveInkRemainInfo = new byte[5]; + public byte CancelCode; + public byte CutterInfo; + public byte PaperJamInfo; + public byte RouteChangeLeverInfo; + public JOBNAMEINFO JobNameInfo; + public int ColorimetricCalibrationIDSize; + public byte[] ColorimetricCalibrationID = new byte[260]; + public byte PaperRestUnit; + public int PaperRestValue; + public short PaperWidth; + public byte PaperInfoType; + public byte PaperInfoValue; + public byte InkSelect; + public HEATERTEMPERATUREINFO HeaterTemperature; + public byte AvailableWarningCode2; + public byte[] WarningCode2 = new byte[16]; + public byte PrinterMachineInfo2SetFlag; + public byte[] PrinterMachineInfo2 = new byte[4]; + public byte FatalErrorCodeSetFlag; + public byte FatalErrorCode; + public byte ReprintInfo; + public byte StatusReplyType; + public byte[] SerialNo = new byte[10]; + public byte[] InkMaintenanceLimit = new byte[16]; + public ROMCODEINFO RomCode2; + public byte[] Reserved = new byte[194]; + }; + + private boolean _disposed = false; + public INKSIDMSTATUS_02 _struct; + + public byte StatusCode; + + public byte getStatusCode() { + return _struct.StatusCode; + } + + public byte ErrorCode; + public byte getErrorCode() { + return _struct.ErrorCode; + } + + public byte[] WarningCode; + public byte[] getWarningCode() { + return _struct.WarningCode2; + } + public ENSStatus() + { + + int Size = Integer.SIZE / 8 * 6 + 556 + Short.SIZE / 8 * 5; + + _ptrToStruct = new Memory(Size); + + _struct = new INKSIDMSTATUS_02(); + _struct.StatusSize = Size; + _struct.Version = new STATUSVERSION(); + _struct.StatusCode = 0; + _struct.ErrorCode = 0; + _struct.SelfPrintCode = 0; + _struct.PaperPath = new PAPERPATHINFO(); + _struct.PaperSizeError = 0; + _struct.PaperTypeError = 0; + _struct.PaperPathError = new PAPERPATHINFO(); + _struct.CharaStatus01 = new CHARASTATUSINFO01(); + _struct.CharaStatus02 = new CHARASTATUSINFO02(); + _struct.CharaStatus03 = new CHARASTATUSINFO03(); + _struct.CopyPrintNumber = 0; + _struct.InkColorNumber = 0; + _struct.MicroWeaveInfo = 0; + _struct.CleaningTime = 0; + _struct.PrintTec = 0; + _struct.ReplaceCartridge = 0; + _struct.RomCode = 0; + _struct.CancelCode = 0; + _struct.CutterInfo = 0; + _struct.PaperJamInfo = 0; + _struct.RouteChangeLeverInfo = 0; + _struct.JobNameInfo = new JOBNAMEINFO(); + _struct.ColorimetricCalibrationIDSize = 0; + _struct.PaperRestUnit = 0; + _struct.PaperRestValue = 0; + _struct.PaperWidth = 0; + _struct.PaperInfoType = 0; + _struct.PaperInfoValue = 0; + _struct.InkSelect = 0; + _struct.HeaterTemperature = new HEATERTEMPERATUREINFO(); + _struct.AvailableWarningCode2 = 0; + _struct.PrinterMachineInfo2SetFlag = 0; + _struct.FatalErrorCodeSetFlag = 0; + _struct.FatalErrorCode = 0; + + Global_MEDIA_ENS.integerINKSIDMSTATUS_02Map.put(_ptrToStruct.getInt(0),_struct); + } + + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDM.java b/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDM.java new file mode 100644 index 00000000..4ecb474e --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDM.java @@ -0,0 +1,21 @@ +package com.dreamchaser.depository_manage.EPSON.EPDM; + +import com.sun.jna.Memory; +import com.sun.jna.Native; +import com.sun.jna.Pointer; + +public abstract class EPDM { + + protected Pointer _ptrToStruct = new Memory(24); + private boolean _disposed = false; + + public Pointer StructurePointer; + + public Pointer getStructurePointer() { + StructureToPtr(); + return _ptrToStruct; + } + + public abstract void PtrToStructure(); + public abstract void StructureToPtr(); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDMEnumrations.java b/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDMEnumrations.java new file mode 100644 index 00000000..0b2b5c53 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDMEnumrations.java @@ -0,0 +1,426 @@ +package com.dreamchaser.depository_manage.EPSON.EPDM; + + +/** + * 用于EPDM相关的枚举类 + */ +public class EPDMEnumrations { + + + /** + * 用于EPDM的错误码 + */ + public enum EPDMErrorCode { + EPDM_ERR_NORMAL(0), // The function succeeds. + EPDM_ERR_CMD(-1), // The command is not supported. + EPDM_ERR_PARAM(-2), // The parameter error + EPDM_ERR_NOTSUPPORT(-3), // The specified Printer Driver is not supported. + EPDM_ERR_DLLNOTFOUND(-4), // Not found the printer specific DLL + EPDM_ERR_NOMEM(-5), // Shortage of memory. + EPDM_ERR_OPENPRT(-6), // Open fails + EPDM_ERR_FAIL(-7), // Any error is occurred. + EPDM_ERR_VERSION(-8), // Not Supprot this DLL version. + EPDM_ERR_NOTVALID(-9), // The function can not reply valid value. + EPDM_ERR_COMMUNICATION(-10), // A communication error. + EPDM_ERR_FATAL(-11), // Fatal error. + EPDM_ERR_NOTFOUND(-12), // Not found the input data. + EPDM_ERR_FILEFORMAT(-13), // Import file format error. + EPDM_ERR_READFILE(-14), // The export file is not read. + EPDM_ERR_WRITEFILE(-15), // The export file is not write. + EPDM_ERR_OVERWRITE(-16), // The export file name is exist(Do not overwrite). + EPDM_ERR_LONGERNAME(-17), // The Add Name is longer. + EPDM_ERR_MAXDATA(-18), // The Add Data is max. + EPDM_ERR_FWVERSION(-19); // The F/W version is old. + + + private int i; + + EPDMErrorCode(int i) { + this.i = i; + } + + public int getI() { + return i; + } + + /** + * 用于获取对应的枚举值 + * + * @param s 输入 + * @return + */ + public static EPDMErrorCode getEPDMErrorCode(int s) { + switch (s) { + case 0: + return EPDM_ERR_NORMAL; + case -1: + return EPDM_ERR_CMD; + case -2: + return EPDM_ERR_PARAM; + case -3: + return EPDM_ERR_NOTSUPPORT; + case -4: + return EPDM_ERR_DLLNOTFOUND; + case -5: + return EPDM_ERR_NOMEM; + case -6: + return EPDM_ERR_OPENPRT; + case -7: + return EPDM_ERR_FAIL; + case -8: + return EPDM_ERR_VERSION; + case -9: + return EPDM_ERR_NOTVALID; + case -10: + return EPDM_ERR_COMMUNICATION; + case -11: + return EPDM_ERR_FATAL; + case -12: + return EPDM_ERR_NOTFOUND; + case -13: + return EPDM_ERR_FILEFORMAT; + case -14: + return EPDM_ERR_READFILE; + case -15: + return EPDM_ERR_WRITEFILE; + case -16: + return EPDM_ERR_OVERWRITE; + case -17: + return EPDM_ERR_LONGERNAME; + case -18: + return EPDM_ERR_MAXDATA; + case -19: + return EPDM_ERR_FWVERSION; + default: + return null; + } + + } + + } + + /** + * 用于打开打印机类型的枚举 + */ + public enum OpenType { + EPDM_OPENTYPE_CUR(0), // Open with the printer driver's current default DEVMODE data structure. + EPDM_OPENTYPE_ORG(1), // Open with the DEVMODE data structure in factory reset. + EPDM_OPENTYPE_IN(2); // Open with the DEVMODE data structure specified by the lpDM parameter. + + private int i; + + OpenType(int i) { + this.i = i; + } + + public int getI() { + return i; + } + + /** + * 用于获取对应的枚举值 + * + * @param i 输入 + * @return + */ + public static OpenType getEPDMOpenType(int i) { + switch (i) { + case 0: + return EPDM_OPENTYPE_CUR; + case 1: + return EPDM_OPENTYPE_ORG; + case 2: + return EPDM_OPENTYPE_IN; + default: + return null; + } + } + + } + + + /** + * 用于控制类型的枚举 + */ + public enum Command { + EPDM_CMD_MEDIA(60), // Media type + EPDM_CMD_STRING(213), // String. + EPDM_CMD_FAVORITE(500), // My favorite :Comment=STR + EPDM_CMD_FAVORITEW(501), // My favorite :Comment=WSTR + EPDM_CMD_MEDIALAYOUT(502), // Media layout :Comment=STR + EPDM_CMD_MEDIALAYOUTW(503), // Media layout :Comment=WSTR + EPDM_CMD_QUALITY(504), // Print qulity + EPDM_CMD_AUTOCUT(505), // Media cut mode + EPDM_CMD_AUTOCUTNUM(506), // Count of media cut + EPDM_CMD_MEDIAPOSITION(507), // Search media position + EPDM_CMD_DRIVERSETTINGS(600), // Driver settings :Comment=STR + EPDM_CMD_DRIVERSETTINGSW(601), // Driver settings :Comment=WSTR + EPDM_CMD_PRINTERSETTINGS(602), // Printer settings :Comment=STR + EPDM_CMD_PRINTERSETTINGSW(603), // Printer settings :Comment=WSTR + EPDM_CMD_STRINGW(1024); // UNICODE String. + + private int i; + + Command(int i) { + this.i = i; + } + + public int getI() { + return i; + } + + /** + * 用于获取对应的枚举值 + * + * @param i 输入 + * @return + */ + public static Command getCommand(int i) { + switch (i) { + case 60: + return EPDM_CMD_MEDIA; + case 213: + return EPDM_CMD_STRING; + case 500: + return EPDM_CMD_FAVORITE; + case 501: + return EPDM_CMD_FAVORITEW; + case 502: + return EPDM_CMD_MEDIALAYOUT; + case 503: + return EPDM_CMD_MEDIALAYOUTW; + case 504: + return EPDM_CMD_QUALITY; + case 505: + return EPDM_CMD_AUTOCUT; + case 506: + return EPDM_CMD_AUTOCUTNUM; + case 507: + return EPDM_CMD_MEDIAPOSITION; + case 600: + return EPDM_CMD_DRIVERSETTINGS; + case 601: + return EPDM_CMD_DRIVERSETTINGSW; + case 602: + return EPDM_CMD_PRINTERSETTINGS; + case 603: + return EPDM_CMD_PRINTERSETTINGSW; + case 1024: + return EPDM_CMD_STRINGW; + + default: + return null; + } + } + + } + + + /** + * 用于结构类型的枚举 + */ + public enum StructVersion { + EPDM_STVER_STRING_1(1), // Structure Version define for [EPDM_STRING_1] + EPDM_STVER_STRINGW_1(1), // Structure Version define for [EPDM_STRINGW_1] + EPDM_STVER_FAVORITEINF(1), // Structure Version define for [EPDM_FAVORITEINF] + EPDM_STVER_FAVORITEINFW(1), // Structure Version define for [EPDM_FAVORITEINFW] + EPDM_STVER_FAVORITERANGE(1), // Structure Version define for [EPDM_FAVORITERANGE] + EPDM_STVER_MEDIALAYOUTINF(1), // Structure Version define for [EPDM_MEDIALAYOUTINF] + EPDM_STVER_MEDIALAYOUTINF_2(2), // Structure Version define for [EPDM_MEDIALAYOUTINF_2] + EPDM_STVER_MEDIATYPERANGE(1), // Structure Version define for [EPDM_MEDIATYPERANGE] + EPDM_STVER_MEDIATYPERANGE_2(2), // Structure Version define for [EPDM_MEDIATYPERANGE_2] + EPDM_STVER_MEDIALAYOUTRANGE(1), // Structure Version define for [EPDM_MEDIALAYOUTRANGE] + EPDM_STVER_MEDIALAYOUTRANGE_2(2), // Structure Version define for [EPDM_MEDIALAYOUTRANGE_2] + EPDM_STVER_MEDIALAYOUTADD(1), // Structure Version define for [EPDM_MEDIALAYOUTADD] + EPDM_STVER_MEDIALAYOUTADD_2(2), // Structure Version define for [EPDM_MEDIALAYOUTADD_2] + EPDM_STVER_MEDIALAYOUTADDW(1), // Structure Version define for [EPDM_MEDIALAYOUTADDW] + EPDM_STVER_MEDIALAYOUTADDW_2(2), // Structure Version define for [EPDM_MEDIALAYOUTADDW_2] + EPDM_STVER_PRINTERSETTINGS(1), // Structure Version define for [EPDM_PRINTERSETTINGS] + EPDM_STVER_EXPORTDATA(1), // Structure Version define for [EPDM_EXPORTDATA] + EPDM_STVER_EXPORTDATAW(1), // Structure Version define for [EPDM_EXPORTDATAW] + EPDM_STVER_FAVORITEADD(1), // Structure Version define for [EPDM_FAVORITEADD] + EPDM_STVER_FAVORITEADDW(1), // Structure Version define for [EPDM_FAVORITEADDW] + EPDM_STVER_EXPORT_DRIVERSETTINGS(1), // Structure Version define for [EPDM_EXPORT_DRIVERSETTINGS] + EPDM_STVER_EXPORT_DRIVERSETTINGSW(1), // Structure Version define for [EPDM_EXPORT_DRIVERSETTINGSW] + EPDM_STVER_EXPORT_PRINTERSETTINGS(1), // Structure Version define for [EPDM_EXPORT_PRINTERSETTINGS] + EPDM_STVER_EXPORT_PRINTERSETTINGSW(1); // Structure Version define for [EPDM_EXPORT_PRINTERSETTINGSW] + + private int i; + + StructVersion(int i) { + this.i = i; + } + + public int getI() { + return i; + } + + + } + + + /** + * 用于名称的枚举 + */ + public enum StringID + { + EPDM_STRING_MEDIA (3), // Media Name. + EPDM_STRING_FAVORITE (15), // Favorite Name + EPDM_STRING_MEDIALAYOUT (16), // Media Layout Name + EPDM_STRING_MEDIATYPE (17), // Media Type Name + EPDM_STRING_AUTOCUT (18), // Autocut Action Type Name + EPDM_STRING_MEDIAPOSITION (19); // Media Position Kind Name + + private int i; + StringID(int i) { + this.i = i; + } + + public int getI() { + return i; + } + + public static StringID getStringID(int s) { + switch (s) { + case 3: + return EPDM_STRING_MEDIA; + case 15: + return EPDM_STRING_FAVORITE; + case 16: + return EPDM_STRING_MEDIALAYOUT; + case 17: + return EPDM_STRING_MEDIATYPE; + case 18: + return EPDM_STRING_AUTOCUT; + case 19: + return EPDM_STRING_MEDIAPOSITION; + default: + return null; + } + + } + } + + /** + * 用于媒体类型的枚举 + */ + public enum MediaTypeID + { + EPDM_MEDIATYPE_DIECUT ((short) 0), // Die-cut Label(Gap) + EPDM_MEDIATYPE_BMDIECUT ((short)1), // Die-cut Label(BM) + EPDM_MEDIATYPE_BMDIECUTGAP ((short)2), // Black Mark Die-cut Label(Gap) + EPDM_MEDIATYPE_ALLLABEL ((short)3), // Full-page Label + EPDM_MEDIATYPE_BMALLLABEL ((short)4), // Black Mark Full-page Label + EPDM_MEDIATYPE_RECEIPT ((short)5), // Continuous Paper + EPDM_MEDIATYPE_BMRECEIPT ((short)6), // Black Mark Continuous Paper + EPDM_MEDIATYPE_TPDIECUT ((short)7), // Transparent Die-cut Label + EPDM_MEDIATYPE_TPALLLABEL ((short)8); // Transparent Full-page Label + + private short i; + + + MediaTypeID(short i) { + this.i = i; + } + + public short getI() { + return i; + } + + public static MediaTypeID getMediaTypeID(short s) { + switch (s) { + case 0: + return EPDM_MEDIATYPE_DIECUT; + case 1: + return EPDM_MEDIATYPE_BMDIECUT; + case 2: + return EPDM_MEDIATYPE_BMDIECUTGAP; + case 3: + return EPDM_MEDIATYPE_ALLLABEL; + case 4: + return EPDM_MEDIATYPE_BMALLLABEL; + case 5: + return EPDM_MEDIATYPE_RECEIPT; + case 6: + return EPDM_MEDIATYPE_BMRECEIPT; + case 7: + return EPDM_MEDIATYPE_TPDIECUT; + case 8: + return EPDM_MEDIATYPE_TPALLLABEL; + default: + return null; + } + + } + } + + + /** + * 用于打印质量的枚举 + */ + public enum PrintQualityID + { + EPDM_QUALITY_360X180 (0), // Quality level (360dpi * 180dpi) + EPDM_QUALITY_360X360 (1), // Quality level (360dpi * 360dpi) + EPDM_QUALITY_720X360 (2); // Quality level (720dpi * 360dpi) + + + private int i; + + PrintQualityID(int i) { + this.i = i; + } + + public int getI() { + return i; + } + + public static PrintQualityID getPrintQualityID(int s) { + switch (s) { + case 0: + return EPDM_QUALITY_360X180; + case 1: + return EPDM_QUALITY_360X360; + case 2: + return EPDM_QUALITY_720X360; + default: + return null; + } + + } + + + } + + + /** + * 用于打印机状态的枚举 + */ + public enum OverWriteID + { + EPDM_OVERWRITE_OFF (0), // Disable over write + EPDM_OVERWRITE_ON (1); // Enable over write + + + private int i; + OverWriteID(int i) { + this.i = i; + } + + public int getI() { + return i; + } + + public static OverWriteID getOverWriteID(int s) { + switch (s) { + case 0: + return EPDM_OVERWRITE_OFF; + case 1: + return EPDM_OVERWRITE_ON; + default: + return null; + } + + } + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDMMediaLayoutRange.java b/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDMMediaLayoutRange.java new file mode 100644 index 00000000..c9b7e82c --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDMMediaLayoutRange.java @@ -0,0 +1,214 @@ +package com.dreamchaser.depository_manage.EPSON.EPDM; + +import com.dreamchaser.depository_manage.EPSON.epsonException.EPDMException; +import com.dreamchaser.depository_manage.config.EPSON.EPDM.Global_MEDIA_EPDM; +import com.dreamchaser.depository_manage.exception.MyException; +import com.sun.jna.Memory; +import com.sun.jna.Native; +import com.sun.jna.Pointer; +import com.sun.jna.Structure; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +public class EPDMMediaLayoutRange extends EPDM{ + + + + + public class EPDM_MEDIALAYOUTRANGE extends Structure + { + public int dwVersion; + public int dwSize; + public short iIDCount; + public short iMediaTypeCount; + public Pointer lpMediaLayoutID; + public Pointer lpMediaTypeRange; + public short iMaxString; + public short iMaxCount; + + + @Override + protected List getFieldOrder() { + return new ArrayList<>(Arrays.asList("dwVersion", "dwSize", "iIDCount", "iMediaTypeCount", "lpMediaLayoutID", "lpMediaTypeRange", "iMaxString", "iMaxCount")); + } + + public EPDM_MEDIALAYOUTRANGE() { + + } + + public EPDM_MEDIALAYOUTRANGE(Pointer p) { + super(p); + } + + }; + + private boolean _disposed = false; + private EPDM_MEDIALAYOUTRANGE _struct; + + + + public EPDMEnumrations.StructVersion Version; + + + public short IDCount; + + public short getIDCount() { + return _struct.iIDCount; + } + + + public short[] MediaLayoutID; + + public short[] getMediaLayoutID() { + + try + { + short[] arr = new short[_struct.iIDCount]; + + for (int i = 0; i < _struct.iIDCount; i++) + { + Pointer current = new Memory(_struct.lpMediaLayoutID.getLong(0) + (2 * i)); + + arr[i] = Global_MEDIA_EPDM.epdm_mediaLayoutRange_short.get(current.getInt(0)); + } + return arr; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + + } + + + public EPDMMediaTypeRange.EPDM_MEDIATYPERANGE[] MediaTypeRange; + + public EPDMMediaTypeRange.EPDM_MEDIATYPERANGE[] getMediaTypeRange() { + try + { + EPDMMediaTypeRange.EPDM_MEDIATYPERANGE[] arr = new EPDMMediaTypeRange.EPDM_MEDIATYPERANGE[_struct.iMediaTypeCount]; + + int struct_size = 22 * Short.SIZE / 8 + 2 * Integer.SIZE / 8; + + for (int i = 0; i < _struct.iMediaTypeCount; i++) + { + Pointer current = new Memory(_struct.lpMediaTypeRange.getInt(0) + (struct_size) * i); + arr[i] = Global_MEDIA_EPDM.epdm_mediatyperangeMap.get(current.getInt(0)); + } + return arr; + } + catch (Exception e) + { + // Error handling. + System.out.println(e.getMessage()); + } + return MediaTypeRange; + } + + public EPDMMediaLayoutRange() { + + int struct_size = 24; + _ptrToStruct = new Memory(struct_size); + _struct = new EPDM_MEDIALAYOUTRANGE(_ptrToStruct); + _struct.dwVersion = EPDMEnumrations.StructVersion.EPDM_STVER_MEDIALAYOUTRANGE.getI(); + _struct.dwSize = struct_size; + _struct.iIDCount = 0; + _struct.iMediaTypeCount = 0; + _struct.lpMediaLayoutID = new Memory(10); + _struct.lpMediaTypeRange = new Memory(10); + _struct.iMaxString = 0; + _struct.iMaxCount = 0; + + StructureToPtr(); + PtrToStructure(); + } + + @Override + public void PtrToStructure() { + _struct.read(); + _struct = Global_MEDIA_EPDM.epdm_medialayoutrangeMap.get(_ptrToStruct.getInt(0)); + + } + + @Override + public void StructureToPtr() { + _struct.write(); + Global_MEDIA_EPDM.epdm_medialayoutrangeMap.put(_ptrToStruct.getInt(0),_struct); + } + + public void Alloc() + { + try + { + // iIDCount、iMediaTypeCount = 0 is EPDM_ERR_FAIL. + if (_struct.iIDCount == 0 || _struct.iMediaTypeCount == 0) + { + throw new EPDMException(EPDMEnumrations.EPDMErrorCode.EPDM_ERR_FAIL); + } + + + + // Free the memory. + Native.free(Pointer.nativeValue(_struct.lpMediaLayoutID)); + Native.free(Pointer.nativeValue(_struct.lpMediaTypeRange)); + + + _struct.lpMediaLayoutID = new Memory(_struct.iIDCount * Short.SIZE / 8); + + int sizeOfEPDM_MEDIATYPERANGE = (22 * Short.SIZE / 8 + 2 * Integer.SIZE / 8); + + _struct.lpMediaTypeRange = new Memory(_struct.iMediaTypeCount *sizeOfEPDM_MEDIATYPERANGE ).getPointer(0); + + EPDMMediaTypeRange.EPDM_MEDIATYPERANGE[] epdmMediaTypeRange = new EPDMMediaTypeRange.EPDM_MEDIATYPERANGE[_struct.iMediaTypeCount]; + for (int i = 0; i < _struct.iMediaTypeCount; i++) + { + Pointer current = new Memory(_ptrToStruct.getLong(0) + (sizeOfEPDM_MEDIATYPERANGE * i)); + epdmMediaTypeRange[i] = Global_MEDIA_EPDM.epdm_mediatyperangeMap.get(current.getInt(0)); + + epdmMediaTypeRange[i].dwVersion = EPDMEnumrations.StructVersion.EPDM_STVER_MEDIATYPERANGE.getI(); + epdmMediaTypeRange[i].dwSize = (22 * Short.SIZE / 8 + 2 * Integer.SIZE / 8); + + Pointer current2 = new Memory(_struct.lpMediaTypeRange.getLong(0) + (sizeOfEPDM_MEDIATYPERANGE * i)); + Global_MEDIA_EPDM.epdm_mediatyperangeMap.put(current2.getInt(0),epdmMediaTypeRange[i]); + } + } + catch (Exception e) + { + // Error handling. + System.out.println(e.getMessage()); + } + } + + public int GetMediaTypeIndex(EPDMEnumrations.MediaTypeID mediaTypeID) + { + try + { + int i = -1; + + if (_struct.iMediaTypeCount <= 0) + { + return i; + } + + for (i = 0; i < _struct.iMediaTypeCount; i++) + { + short typeID = MediaTypeRange[i].iTypeID; + if (typeID == mediaTypeID.getI()) + { + break; + } + } + return i; + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDMMediaTypeRange.java b/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDMMediaTypeRange.java new file mode 100644 index 00000000..8e417e3d --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDMMediaTypeRange.java @@ -0,0 +1,125 @@ +package com.dreamchaser.depository_manage.EPSON.EPDM; + +import com.dreamchaser.depository_manage.config.EPSON.EPDM.Global_MEDIA_EPDM; +import com.sun.jna.Memory; +import com.sun.jna.Pointer; +import com.sun.jna.Structure; +import com.sun.xml.bind.v2.runtime.MarshallerImpl; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class EPDMMediaTypeRange extends EPDM { + + @Override + public void PtrToStructure() { + _struct.read(); + _struct = Global_MEDIA_EPDM.epdm_mediatyperangeMap.get(_ptrToStruct.getInt(0)); + } + + @Override + public void StructureToPtr() { + _struct.write(); + Global_MEDIA_EPDM.epdm_mediatyperangeMap.put(_ptrToStruct.getInt(0),_struct); + } + + public class EPDM_MEDIATYPERANGE extends Structure + { + public int dwVersion; + public int dwSize; + public short iMaxPaperWid; + public short iMaxPaperHig; + public short iMaxLabelWid; + public short iMaxLabelHig; + public short iMaxLabelGap; + public short iMaxBMGap; + public short iMaxPrintWid; + public short iMaxPrintHig; + public short iMaxPrintX; + public short iMaxPrintY; + public short iMinPaperWid; + public short iMinPaperHig; + public short iMinLabelWid; + public short iMinLabelHig; + public short iMinLabelGap; + public short iMinBMGap; + public short iMinPrintWid; + public short iMinPrintHig; + public short iMinPrintX; + public short iMinPrintY; + public short iTypeID; + public short iRsv; + + @Override + protected List getFieldOrder() { + return new ArrayList<>(Arrays.asList("dwVersion", "dwSize", "iMaxPaperWid", "iMaxPaperHig", "iMaxLabelWid", "iMaxLabelHig", + "iMaxLabelGap", "iMaxBMGap","iMaxPrintWid","iMaxPrintHig","iMaxPrintX","iMaxPrintY","iMinPaperWid","iMinPaperHig", + "iMinLabelWid","iMinLabelHig","iMinLabelGap","iMinBMGap","iMinPrintWid","iMinPrintHig","iMinPrintX","iMinPrintY", + "iTypeID","iRsv")); + } + + public EPDM_MEDIATYPERANGE() { + + } + + public EPDM_MEDIATYPERANGE(Pointer p) { + super(p); + } + + }; + + private boolean _disposed = false; + public EPDM_MEDIATYPERANGE _struct; + + + public short MaxPaperWid; + + public short getMaxPaperWid() { + return _struct.iMaxPaperWid; + } + + public short MaxPaperHig; + + public short getMaxPaperHig() { + return _struct.iMaxPaperHig; + } + + public EPDMMediaTypeRange() + { + + int struct_size = 22 * Short.SIZE / 8 + 2 * Integer.SIZE / 8; + + _ptrToStruct =new Memory(struct_size ); + _struct = new EPDM_MEDIATYPERANGE(_ptrToStruct); + _struct.dwVersion = EPDMEnumrations.StructVersion.EPDM_STVER_MEDIATYPERANGE.getI(); + _struct.dwSize = struct_size; + _struct.iMaxPaperWid = 0; + _struct.iMaxPaperHig = 0; + _struct.iMaxLabelWid = 0; + _struct.iMaxLabelHig = 0; + _struct.iMaxLabelGap = 0; + _struct.iMaxBMGap = 0; + _struct.iMaxPrintWid = 0; + _struct.iMaxPrintHig = 0; + _struct.iMaxPrintX = 0; + _struct.iMaxPrintY = 0; + _struct.iMinPaperWid = 0; + _struct.iMinPaperHig = 0; + _struct.iMinLabelWid = 0; + _struct.iMinLabelHig = 0; + _struct.iMinLabelGap = 0; + _struct.iMinBMGap = 0; + _struct.iMinPrintWid = 0; + _struct.iMinPrintHig = 0; + _struct.iMinPrintX = 0; + _struct.iMinPrintY = 0; + _struct.iTypeID = EPDMEnumrations.MediaTypeID.EPDM_MEDIATYPE_DIECUT.getI(); + _struct.iRsv = 0; + + StructureToPtr(); + PtrToStructure(); + } + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDMSelectData.java b/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDMSelectData.java new file mode 100644 index 00000000..2f69cc29 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDMSelectData.java @@ -0,0 +1,151 @@ +package com.dreamchaser.depository_manage.EPSON.EPDM; + +import com.dreamchaser.depository_manage.EPSON.epsonException.EPDMException; +import com.dreamchaser.depository_manage.config.EPSON.EPDM.Global_MEDIA_EPDM; +import com.dreamchaser.depository_manage.exception.MyException; +import com.sun.jna.Memory; +import com.sun.jna.Native; +import com.sun.jna.Pointer; +import com.sun.jna.Structure; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class EPDMSelectData extends EPDM{ + + @Override + public void PtrToStructure() { + _struct.read(); + _struct = Global_MEDIA_EPDM.epdm_selectdataMap.get(_ptrToStruct.getInt(0)); + } + + @Override + public void StructureToPtr() { + _struct.write(); + Global_MEDIA_EPDM.epdm_selectdataMap.put(_ptrToStruct.getInt(0),_struct); + } + + public static class EPDM_SELECTDATA extends Structure + { + public short iCount; + public short iSize; + public Pointer lpData; + + @Override + protected List getFieldOrder() { + return new ArrayList<>(Arrays.asList("iCount", "iSize", "lpData")); + } + + public EPDM_SELECTDATA(Pointer p) { + super(p); + } + + public EPDM_SELECTDATA() { + } + }; + + + private boolean _disposed = false; + private EPDM_SELECTDATA _struct; + + + public short Count; + + + public Long[] Data; + + + public short getCount() { + return _struct.iCount; + } + + public Long[] getData() { + try + { + if (_struct.lpData == Pointer.NULL || _struct.iSize > Long.SIZE / 8) + { + return null; + } + + Long[] arr = new Long[_struct.iCount]; + + for (int i = 0; i < _struct.iCount; i++) + { + Pointer current = new Memory(_struct.lpData.getLong(0) + (_struct.iSize * i)); + arr[i] = GetSelectData(current); + } + return arr; + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + public EPDMSelectData() + { + _ptrToStruct = new Memory(Short.SIZE / 8 * 2); + + _struct.iCount = 0; + _struct.iSize = 0; + _struct.lpData = new Memory(10); + + + StructureToPtr(); + PtrToStructure(); + } + + + private Long GetSelectData(Pointer p) + { + try + { + Long data = 0L; + switch (_struct.iSize) + { + case 8: + data = Global_MEDIA_EPDM.epdm_select_data_int64.get(p.getInt(0)); + break; + case 4: + data = Long.valueOf(Global_MEDIA_EPDM.epdm_select_data_int32.get(p.getInt(0))); + break; + case 2: + default: + data = Long.valueOf(Global_MEDIA_EPDM.epdm_select_data_int16.get(p.getInt(0))); + break; + } + return data; + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + public void Alloc() + { + try + { + // iIDCount、iSize = 0 is EPDM_ERR_FAIL. + if (_struct.iCount == 0 || _struct.iSize == 0) + { + throw new EPDMException(EPDMEnumrations.EPDMErrorCode.EPDM_ERR_FAIL); + } + + // Free the memory. + Native.free(Pointer.nativeValue(_struct.lpData)); + // Allocate the memory. - EPDMSelectData.lpData + _struct.lpData =new Memory(_struct.iCount * _struct.iSize); + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDMString.java b/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDMString.java new file mode 100644 index 00000000..c7348c7f --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/EPSON/EPDM/EPDMString.java @@ -0,0 +1,150 @@ +package com.dreamchaser.depository_manage.EPSON.EPDM; + +import com.dreamchaser.depository_manage.EPSON.epsonException.EPDMException; +import com.dreamchaser.depository_manage.config.EPSON.EPDM.Global_MEDIA_EPDM; +import com.dreamchaser.depository_manage.exception.MyException; +import com.sun.jna.Memory; +import com.sun.jna.Native; +import com.sun.jna.Pointer; +import com.sun.jna.Structure; +import com.sun.media.jfxmedia.track.Track; +import jdk.nashorn.internal.objects.Global; + +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Locale; + +public class EPDMString extends EPDM { + + public class EPDM_STRING_1 extends Structure + { + public int dwVersion; + public int dwSize; + public int dwStrSize; + public int dwCommand; + public int dwID; + public Pointer lpString; + + + @Override + protected List getFieldOrder() { + return new ArrayList<>(Arrays.asList("dwVersion", "dwSize", "dwStrSize", "dwCommand", "dwID", "lpString")); + } + + public EPDM_STRING_1() { + } + + public EPDM_STRING_1(Pointer p) { + super(p); + } + }; + + private boolean _disposed = false; + private EPDM_STRING_1 _struct; + + public int Command; + + public int getCommand() { + return _struct.dwCommand; + } + + public void setCommand(int command) { + _struct.dwCommand = command; + } + + public int ID; + + public int getID() { + return _struct.dwID; + } + + public void setID(int ID) { + _struct.dwID = ID; + } + + + + public String string; + + public String getString() { + byte[] StringData = new byte[_struct.dwStrSize]; + + // Deploy the memory to array. + int i = 0; + for (i = 0; i < _struct.dwStrSize; i++) + { + Pointer current = new Memory(_struct.lpString.getLong(0) + i); +// StringData[i]= current.getByte(0); + StringData[i] = Global_MEDIA_EPDM.epdm_epdmString_byte.get(current.getInt(0)); + if (StringData[i] == 0) + { + break; + } + } + try { + return new String(StringData,"gbk"); + } catch (UnsupportedEncodingException e) { + throw new MyException(e.getMessage()); + } + } + + public EPDMString() + { + + + int structSize = 5 * Integer.SIZE / 8; + _ptrToStruct = new Memory( structSize ); + + _struct = new EPDM_STRING_1(_ptrToStruct); + _struct.dwVersion = EPDMEnumrations.StructVersion.EPDM_STVER_STRING_1.getI(); + _struct.dwSize = structSize; + _struct.dwStrSize = 0; + _struct.dwCommand = 0; + _struct.dwID = 0; + _struct.lpString = new Memory(10); + StructureToPtr(); + PtrToStructure(); + } + + + @Override + public void PtrToStructure() { + _struct.read(); + _struct = Global_MEDIA_EPDM.epdm_string_1Map.get(_ptrToStruct.getInt(0)); + } + + @Override + public void StructureToPtr() { + _struct.write(); + Global_MEDIA_EPDM.epdm_string_1Map.put(_ptrToStruct.getInt(0),_struct); + } + + + public void Alloc() + { + try + { + // m_Struct.dwStrSize == 0 is EPDM_ERR_FAIL. + if (_struct.dwStrSize == 0) + { + throw new EPDMException(EPDMEnumrations.EPDMErrorCode.EPDM_ERR_FAIL); + } + + // Free the memory. + Native.free(Pointer.nativeValue(_struct.lpString)); + + // Allocate the memory. - EPDMString.lpString + _struct.lpString =new Memory((int)_struct.dwStrSize); + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/EPSON/Other/MessageString.java b/src/main/java/com/dreamchaser/depository_manage/EPSON/Other/MessageString.java new file mode 100644 index 00000000..319747dd --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/EPSON/Other/MessageString.java @@ -0,0 +1,301 @@ +package com.dreamchaser.depository_manage.EPSON.Other; + +import com.dreamchaser.depository_manage.EPSON.ENS.ENSEnumrations; +import com.dreamchaser.depository_manage.EPSON.ENS.ENSEnumrations.StatusCode; +import com.dreamchaser.depository_manage.EPSON.EPDM.EPDMEnumrations; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.service.impl.EPSON.ENS.ENSWrapperImpl; + + +public class MessageString { + public static final int STATE_ENS_ERROR = 1; + public static final int STATE_MEDIA_LAYOUT_ERROR = 2; + public static final int STATE_MEDIA_POSITION_ERROR = 3; + public static final int STATE_PRINT_SETTING_ERROR = 4; + public static final int STATE_EPDI_DLL_NOT_FOUND = 5; + public static final int STATE_ENS_DLL_NOT_FOUND = 6; + public static final int STATE_DRIVER_NOT_FOUND = 7; + public static final int STATE_SYSTEM_PARAM_ERROR = 8; + public static final int STATE_DRAWIMAGE_ERROR = 9; + + public static final String STR_ENS_ERROR = "Can't get the printer status.\n\nEpsonNet SDK error code : "; + public static final String STR_MEDIA_LAYOUT_ERROR = "Fail to add the media layout.\r\n\r\nEPDI error code : "; + public static final String STR_MEDIA_POSITION_ERROR = "Fail to change the media position detection setting.\r\n\r\nEPDI error code : "; + public static final String STR_PRINT_SETTING_ERROR = "Fail to change the print settings.\r\n\r\nEPDI error code : "; + public static final String STR_STATUS_BUSY = "Printer is busy.\r\nStop the printing..."; + public static final String STR_STATUS_PRINTING = "Printer is printing now.\r\nStop the printing..."; + public static final String STR_STATUS_CLEANING = "Printer is cleaning the print head.\r\nStop the printing..."; + public static final String STR_STATUS_OTHER = "Printer is busy.\r\nStop the printing..."; + public static final String STR_ERROR_PAPERJAM = "Paper jam error.\r\nStop the printing..."; + public static final String STR_ERROR_PAPEROUT = "Paper out error.\r\nStop the printing..."; + public static final String STR_ERROR_INKEND = "Ink cartridge error.\r\nStop the printing..."; + public static final String STR_ERROR_OTHER = "Other error.\r\nStop the printing..."; + public static final String STR_WARNING_INKLOW = "Ink is low.\r\n"; + public static final String STR_WARNING_OTHER = "Other warning.\r\n"; + public static final String STR_EPDI_DLL_NOT_FOUND = "doesn't support this function.\r\nOr check if program architecture(x86/x64) and OS architecture are correct."; + public static final String STR_ENS_DLL_NOT_FOUND = "EpsonNet SDK isn't installed in this PC.\r\nPerfoming the printing without printer status check."; + public static final String STR_DRIVER_NOT_FOUND = "Epson printer doesn't exist. \r\n\r\nPlease install the printer driver before starting the sample program."; + public static final String STR_SYSTEM_PARAM_ERROR = "Specified value is out of range."; + public static final String STR_DRAWIMAGE_ERROR = "Failed to print image."; + + + public static boolean GetSDKError(int i, int state) { + boolean err = true; + String strMessage = ""; + String strSDKErrorCode; + + try { + if (i != ENSEnumrations.ENSErrorCode.ERR_BASE.getI()) { + strMessage = STR_ENS_ERROR; + err = false; + ENSEnumrations.ENSErrorCode ensErrorCode = ENSEnumrations.ENSErrorCode.getENSErrorCode(i); + if (ensErrorCode != null) { + strSDKErrorCode = ensErrorCode.toString(); + } + + } + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + return err; + } + + + public static boolean GetEPDMError(int i, int state) + { + boolean err = true; + String strMessage = ""; + String strEPDMErrorCode; + + try + { + if (i != EPDMEnumrations.EPDMErrorCode.EPDM_ERR_NORMAL.getI()) + { + switch(state) + { + case (STATE_MEDIA_LAYOUT_ERROR): + { + strMessage = STR_MEDIA_LAYOUT_ERROR; + err = false; + break; + } + case (STATE_MEDIA_POSITION_ERROR): + { + strMessage = STR_MEDIA_POSITION_ERROR; + err = false; + break; + } + case (STATE_PRINT_SETTING_ERROR): + { + strMessage = STR_PRINT_SETTING_ERROR; + err = false; + break; + } + default: + { + strMessage = ""; + err = false; + break; + } + } + if (strMessage.length() > 0) + { + strEPDMErrorCode = EPDMEnumrations.EPDMErrorCode.valueOf(strMessage).toString(); + } + } + } + catch (Exception e) + { + // Error handling. + } + return err; + } + + + public static boolean GetPrinterStatusError(ENSEnumrations.StatusCode sc, ENSEnumrations.ErrorCode ec, ENSWrapperImpl.WARNING_INFO wc) + { + boolean err = true; + String strMessage = ""; + + try + { + switch (sc) + { + case ST_Busy: + { + strMessage = STR_STATUS_BUSY; + err = false; + break; + } + case ST_Wait: + { + strMessage = STR_STATUS_PRINTING; + err = false; + break; + } + case ST_Cleaning: + { + strMessage = STR_STATUS_CLEANING; + err = false; + break; + } + case ST_Error: + { + switch (ec) + { + case ERR_PaperJam: + { + strMessage = STR_ERROR_PAPERJAM; + err = false; + break; + } + case ERR_Paperout: + { + strMessage = STR_ERROR_PAPEROUT; + err = false; + break; + } + case ERR_Inkout: + { + strMessage = STR_ERROR_INKEND; + err = false; + break; + } + default: + { + strMessage = STR_ERROR_OTHER; + err = false; + break; + } + } + break; + } + case ST_Idle: + { + if (wc.InkLowWarning ) + { + strMessage += STR_WARNING_INKLOW; + err = true; + } + if (wc.OtherWarning) + { + strMessage += STR_WARNING_OTHER; + err = true; + } + break; + } + default: + { + strMessage = STR_STATUS_OTHER; + err = false; + break; + } + } + if (strMessage.length() > 0) + { +// MessageBox.Show((strMessage), "", MessageBoxButtons.OK); + // 弹出一个消息框,并返回结构 + } + } + catch (Exception e) + { + // Error handling. + } + return err; + } + + + public static boolean GetSystemError(int state, String devName) + { + boolean err = true; + String strMessage = ""; + + if ( devName == null) + { + devName = ""; + } + try + { + switch (state) + { + case (STATE_EPDI_DLL_NOT_FOUND): + { + strMessage = String.format("%s %s",devName, STR_EPDI_DLL_NOT_FOUND); + err = false; + break; + } + default: + { + strMessage = ""; + err = false; + break; + } + } + if (strMessage.length() > 0) + { +// MessageBox.Show((strMessage), "", MessageBoxButtons.OK); + // 弹出一个文本信息框 + } + } + catch (Exception e) + { + // Error handling. + } + return err; + } + + public static boolean GetSystemError(int state) + { + boolean err = true; + String strMessage = ""; + + try + { + switch (state) + { + case (STATE_ENS_DLL_NOT_FOUND): + { + strMessage = STR_ENS_DLL_NOT_FOUND; + err = false; + break; + } + case (STATE_DRIVER_NOT_FOUND): + { + strMessage = STR_DRIVER_NOT_FOUND; + err = false; + break; + } + case (STATE_SYSTEM_PARAM_ERROR): + { + strMessage = STR_SYSTEM_PARAM_ERROR; + err = false; + break; + } + case (STATE_DRAWIMAGE_ERROR): + { + strMessage = STR_DRAWIMAGE_ERROR; + err = false; + break; + } + default: + { + strMessage = ""; + err = false; + break; + } + } + if (strMessage.length() > 0) + { +// MessageBox.Show((strMessage), "", MessageBoxButtons.OK); + // 弹出一个文本信息框 + } + } + catch (Exception e) + { + // Error handling. + } + return err; + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/EPSON/Other/Print.java b/src/main/java/com/dreamchaser/depository_manage/EPSON/Other/Print.java new file mode 100644 index 00000000..711630f1 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/EPSON/Other/Print.java @@ -0,0 +1,125 @@ +package com.dreamchaser.depository_manage.EPSON.Other; + +import com.dreamchaser.depository_manage.exception.MyException; + +import javax.print.PrintService; +import java.awt.*; +import java.awt.geom.Rectangle2D; +import java.awt.print.*; + +public class Print { + private int _pageNumber = 0; + private int _totalPrintPage = 0; + private boolean _exceptionFlag = false; + + private PrinterJob _pdPrint; + + + private void PD_PrintPage() + { + try + { + PD_PrintPage_DrawBarcode(); + PD_PrintPage_Close(); + } + catch (Exception e) + { + // Error handling. + _exceptionFlag = true; + } + } + + + public Print(String devName, String portName, int totalPrintPage) + { + try + { + // Create the PrintDocumentObject. + _pdPrint = PrinterJob.getPrinterJob(); + // Add the PrintPageEventHandler. +// _pdPrint.PrintPage += new PrintPageEventHandler(PD_PrintPage); + + // Set the using Printer. + PrintService[] printServices = PrinterJob.lookupPrintServices(); + for (PrintService printService:printServices + ) { + String name = printService.getName(); + if(name.contains(devName)){ + _pdPrint.setPrintService(printService); + break; + } + } + _pdPrint.setJobName("Test Print"); + + + _totalPrintPage = totalPrintPage; + + return; + } + catch(Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + + + public void DoPrinting() + { + try + { + // Start the print. + _pdPrint.print(); + + if(_exceptionFlag) + { + throw new Exception(); + } + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + private void PD_PrintPage_DrawBarcode() + { + try + { + // 调用预设二维码打印类 + _pdPrint.setPrintable(new PrintBarCode()); + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + private void PD_PrintPage_Close() + { + try + { + // Check final page. + if (_pageNumber < _totalPrintPage) + { + _pdPrint.cancel(); + } + + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + + + +} + diff --git a/src/main/java/com/dreamchaser/depository_manage/EPSON/Other/PrintBarCode.java b/src/main/java/com/dreamchaser/depository_manage/EPSON/Other/PrintBarCode.java new file mode 100644 index 00000000..f9dec53b --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/EPSON/Other/PrintBarCode.java @@ -0,0 +1,57 @@ +package com.dreamchaser.depository_manage.EPSON.Other; + +import java.awt.*; +import java.awt.print.PageFormat; +import java.awt.print.Printable; +import java.awt.print.PrinterException; + +public class PrintBarCode implements Printable { + + /** + + * @param graphics 指明打印的图形环境 + + * @param pageFormat 指明打印页格式(页面大小以点为计量单位,1点为1英才的1/72,1英寸为25.4毫米。A4纸大致为595×842点) + + * @param pageIndex 指明页号 + + **/ + + // 设置用于打印的编码 + public String code; + + + public void setCode(String code) { + this.code = code; + } + + @Override + public int print(Graphics g, PageFormat pf, int pageIndex) throws PrinterException { + + + //print string + String str = code; + + //转换成Graphics2D + Graphics2D g2 = (Graphics2D) g; + + //设置打印颜色为黑色 + g2.setColor(Color.black); + + //打印起点坐标 + double x = pf.getImageableX(); + double y = pf.getImageableY(); + + if (pageIndex == 0) {//设置打印字体(字体名称、样式和点大小)(字体名称可以是物理或者逻辑名称) + + //Java平台所定义的五种字体系列:Serif、SansSerif、Monospaced、Dialog 和 DialogInput + Font font = new Font("Courier New", Font.PLAIN, 9); + g2.setFont(font);//设置字体 + + g2.drawString(code,20,100); + + return PAGE_EXISTS; + } + return NO_SUCH_PAGE; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/EPSON/Other/SelectPrinterInfo.java b/src/main/java/com/dreamchaser/depository_manage/EPSON/Other/SelectPrinterInfo.java new file mode 100644 index 00000000..822ad991 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/EPSON/Other/SelectPrinterInfo.java @@ -0,0 +1,57 @@ +package com.dreamchaser.depository_manage.EPSON.Other; + +import com.alibaba.fastjson.JSONObject; +import com.profesorfalken.wmi4java.WMI4Java; +import org.apache.catalina.Manager; + +import javax.print.PrintService; +import javax.print.attribute.PrintServiceAttributeSet; +import java.awt.*; +import java.awt.print.PrinterJob; +import java.io.PrintStream; +import java.net.InetAddress; +import java.net.Socket; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 用于实现打印机选择的类 + */ +public class SelectPrinterInfo { + + public static List GetPrinterInfoList() { + + //定义打印机信息列表 + List printerInfoList = new ArrayList(); + PRINTER_INFO printerInfo; + try { + // 获取本地所有打印机 + List> wmiObjectListProperties = WMI4Java.get().getWMIObjectList("Win32_PRINTER"); + for (Map printer:wmiObjectListProperties + ) { + + printerInfo = new PRINTER_INFO(); + // 获取设备名称 + printerInfo.devName = printer.get("Name"); + // 获取端口名称 + printerInfo.portName =printer.get("PortName") ; + + if (printerInfo.devName.contains("EPSON")){ + printerInfoList.add(printerInfo); + } + + } + return printerInfoList; + } catch (Exception e) { + System.out.println(e.getMessage()); + } + return null; + } + + public static class PRINTER_INFO { + public String devName; + public String portName; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/EPSON/epsonException/ENSException.java b/src/main/java/com/dreamchaser/depository_manage/EPSON/epsonException/ENSException.java new file mode 100644 index 00000000..22d71e51 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/EPSON/epsonException/ENSException.java @@ -0,0 +1,35 @@ +package com.dreamchaser.depository_manage.EPSON.epsonException; + +import com.dreamchaser.depository_manage.EPSON.ENS.ENSEnumrations; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 用于ENS的错误类 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class ENSException extends Exception{ + + private static final long serialVersionUID = -2429062150745133718L; + + /** + * 错误类型 + */ + public ENSEnumrations.ENSErrorCode ensErrorCode; + + + public ENSEnumrations.ENSErrorCode getEnsErrorCode() { + return ensErrorCode; + } + + public void setEnsErrorCode(ENSEnumrations.ENSErrorCode ensErrorCode) { + this.ensErrorCode = ensErrorCode; + } + + public ENSException(ENSEnumrations.ENSErrorCode e) + { + ensErrorCode = e; + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/EPSON/epsonException/EPDMException.java b/src/main/java/com/dreamchaser/depository_manage/EPSON/epsonException/EPDMException.java new file mode 100644 index 00000000..251fa58d --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/EPSON/epsonException/EPDMException.java @@ -0,0 +1,25 @@ +package com.dreamchaser.depository_manage.EPSON.epsonException; + +import com.dreamchaser.depository_manage.EPSON.EPDM.EPDMEnumrations; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 用于EPDM的错误类 + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class EPDMException extends Exception { + + private static final long serialVersionUID = 6037874212969710082L; + + /** + * 错误类型 + */ + public EPDMEnumrations.EPDMErrorCode epdmErrorCode; + + public EPDMException(EPDMEnumrations.EPDMErrorCode e) + { + epdmErrorCode = e; + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/config/EPSON/ENS/Global_MEDIA_ENS.java b/src/main/java/com/dreamchaser/depository_manage/config/EPSON/ENS/Global_MEDIA_ENS.java new file mode 100644 index 00000000..cd65f033 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/config/EPSON/ENS/Global_MEDIA_ENS.java @@ -0,0 +1,22 @@ +package com.dreamchaser.depository_manage.config.EPSON.ENS; + +import com.dreamchaser.depository_manage.EPSON.ENS.ENSStatus; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class Global_MEDIA_ENS { + + /** + * 用于全局INKSIDMSTATUS_02中的实现 + */ + public static Map integerINKSIDMSTATUS_02Map = new HashMap<>(); + + + /** + * 用于存储ENS中出现要进行暂存的字符串 + */ + public static Map ENS_STRUCTURE_Str = new HashMap<>(); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/config/EPSON/EPDM/Global_MEDIA_EPDM.java b/src/main/java/com/dreamchaser/depository_manage/config/EPSON/EPDM/Global_MEDIA_EPDM.java new file mode 100644 index 00000000..75fd35b0 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/config/EPSON/EPDM/Global_MEDIA_EPDM.java @@ -0,0 +1,77 @@ +package com.dreamchaser.depository_manage.config.EPSON.EPDM; + + +import com.dreamchaser.depository_manage.EPSON.EPDM.EPDMMediaLayoutRange; +import com.dreamchaser.depository_manage.EPSON.EPDM.EPDMMediaTypeRange; +import com.dreamchaser.depository_manage.EPSON.EPDM.EPDMSelectData; +import com.dreamchaser.depository_manage.EPSON.EPDM.EPDMString; +import com.dreamchaser.depository_manage.entity.EPSON.EPDM.EPDMMediaLayoutInf; +import com.dreamchaser.depository_manage.entity.EPSON.EPDM.MEDIA_LAYOUT_RANGE; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class Global_MEDIA_EPDM { + /** + * 用于全局MEDIA_LAYOUT_RANGE中的实现 + */ + public static Map media_layout_rangeMap = new HashMap<>(); + + /** + * 用于全局EPDMMediaLayoutRange的实现 + */ + public static Map epdmMediaLayoutRangeMap = new HashMap<>(); + + + /** + * 用于全局EPDM_MEDIALAYOUTRANGE的实现 + */ + public static Map epdm_medialayoutrangeMap = new HashMap<>(); + + + /** + * + * 用于全局EPDM_MEDIATYPERANGE的实现 + */ + public static Map epdm_mediatyperangeMap = new HashMap<>(); + + + /** + * 用于全局EPDM_SELECTDATA的实现 + */ + public static Map epdm_selectdataMap = new HashMap<>(); + + /** + * 用于EPDMMediaLayoutRange中的PtrToStructure转short + */ + public static Map epdm_mediaLayoutRange_short = new HashMap<>(); + + /** + * 用于全局EPDM_STRING_1的实现 + */ + public static Map epdm_string_1Map = new HashMap<>(); + + + /** + * 用于EPDMSelectData中的使用 + */ + public static List epdm_select_data_int64 = new ArrayList<>(); + public static List epdm_select_data_int32 = new ArrayList<>(); + public static List epdm_select_data_int16 = new ArrayList<>(); + + + /** + * 用于EPDMString中使用的byte + */ + public static Map epdm_epdmString_byte = new HashMap<>(); + + + /** + * 用于全局EPDM_MEDIALAYOUTINF的实现 + */ + public static Map epdm_medialayoutinfMap = new HashMap<>(); + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/config/PortConfig.java b/src/main/java/com/dreamchaser/depository_manage/config/PortConfig.java index 82d3390f..98a6abb1 100644 --- a/src/main/java/com/dreamchaser/depository_manage/config/PortConfig.java +++ b/src/main/java/com/dreamchaser/depository_manage/config/PortConfig.java @@ -18,7 +18,7 @@ import java.util.List; import java.util.Map; /** - * 用于 + * 用于对接HR系统 */ @Data public class PortConfig { diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/EPSON/AddMediaLayoutDlg.java b/src/main/java/com/dreamchaser/depository_manage/controller/EPSON/AddMediaLayoutDlg.java new file mode 100644 index 00000000..f90df413 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/controller/EPSON/AddMediaLayoutDlg.java @@ -0,0 +1,102 @@ +package com.dreamchaser.depository_manage.controller.EPSON; + +import com.dreamchaser.depository_manage.EPSON.Other.MessageString; +import com.dreamchaser.depository_manage.EPSON.epsonException.EPDMException; +import com.dreamchaser.depository_manage.entity.EPSON.EPDM.MEDIA_LAYOUT_RANGE; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.service.impl.EPSON.EPDM.EPDMWrapperImpl; + +public class AddMediaLayoutDlg { + + private String _devName; + private String _portName; + private boolean _isEPDMOpen = true; + + public AddMediaLayoutDlg(String devName, String portName) + { + + _devName = devName; + _portName = portName; + } + + public void AddMediaLayoutDlg_Load() + { + try + { + EPDMWrapperImpl.GetInstance().Open(_devName, _portName); + UpdateMediaLayoutRangeString(); + } catch (Exception e) + { + // Error handling. + ExceptionClose(); + } + } + /** + * 这是更新媒体布局范围字符串的方法。 + */ + private void UpdateMediaLayoutRangeString() { + MEDIA_LAYOUT_RANGE obj = EPDMWrapperImpl.GetInstance().GetMediaLayoutRangeValue(); + GetMediaLayoutRangeString(MediaLayoutRangeToString(obj.MinPaperWid), MediaLayoutRangeToString(obj.MaxPaperWid)); + GetMediaLayoutRangeString(MediaLayoutRangeToString(obj.MinLabelWid), MediaLayoutRangeToString(obj.MaxLabelWid)); + GetMediaLayoutRangeString(MediaLayoutRangeToString(obj.MinLabelHig), MediaLayoutRangeToString(obj.MaxLabelHig)); + GetMediaLayoutRangeString(MediaLayoutRangeToString(obj.MinLabelGap), MediaLayoutRangeToString(obj.MaxLabelGap)); + } + + + /** + * 这是获取媒体布局范围字符串的方法。 + * @param minRangeString 最小范围字符串。 + * @param maxRangeString 最大范围字符串。 + * @return + */ + private String GetMediaLayoutRangeString(String minRangeString, String maxRangeString) { + try { + String rangeString = ""; + + if (minRangeString.length() > 0 && maxRangeString.length() > 0) { + rangeString = "( " + minRangeString + " - " + maxRangeString + " )"; + } + return rangeString; + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是将媒体布局范围值更改为字符串的方法。 + * + * @param size 介质布局范围值(0.1mm单位) + * @return + */ + private String MediaLayoutRangeToString(double size) { + try { + // Changed the size. (0.1mm to mm) + double d = size / 10; + + return String.format("%01f", d); + } catch (Exception e) { + // Error handling. + ExceptionClose(); + throw new MyException(e.getMessage()); + } + } + + /** + * 这是关闭应用的方法。 + */ + private void ExceptionClose() { + EPDMClose(); + } + + + /** + * 这是用于关闭的方法 + */ + private void EPDMClose() { + if (_isEPDMOpen) { + EPDMWrapperImpl.GetInstance().Close(); + } + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/EPSON/PrintDlg.java b/src/main/java/com/dreamchaser/depository_manage/controller/EPSON/PrintDlg.java new file mode 100644 index 00000000..b68d98d0 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/controller/EPSON/PrintDlg.java @@ -0,0 +1,80 @@ +package com.dreamchaser.depository_manage.controller.EPSON; + +import com.dreamchaser.depository_manage.EPSON.ENS.ENSEnumrations; +import com.dreamchaser.depository_manage.EPSON.Other.MessageString; +import com.dreamchaser.depository_manage.EPSON.Other.Print; +import com.dreamchaser.depository_manage.EPSON.epsonException.ENSException; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.service.impl.EPSON.ENS.ENSWrapper; +import com.dreamchaser.depository_manage.service.impl.EPSON.ENS.ENSWrapperImpl; + +public class PrintDlg { + private String _devName; + private String _portName; + private boolean _isENSInitialize = true; + + + /** + * 这是PrintDlg的构造函数 + * + * @param devName 选中的打印机的设备名称 + * @param portName 选中的打印机的端口名称 + */ + public PrintDlg(String devName, String portName) { + + _devName = devName; + _portName = portName; + } + + /** + * 获取打印机状态和打印动作。 + */ + private void PrintButton_Click() { + ENSWrapperImpl obj = ENSWrapperImpl.GetInstance(); + // 获取打印数量 + int printPage = 1; + try { + try { + obj.Initialize(_devName, _portName); + } catch (Exception e) { + throw new MyException(e.getMessage()); + } + if (_isENSInitialize) { + ENSEnumrations.StatusCode sc = obj.GetStatusInformation(); + ENSEnumrations.ErrorCode ec = obj.GetErrorInformation(); + ENSWrapperImpl.WARNING_INFO wc = obj.GetWarningInformation(); + if (!MessageString.GetPrinterStatusError(sc, ec, wc)) { + return; + } + } + + Print print = new Print(_devName, _portName, printPage); + print.DoPrinting(); + } catch (Exception e) { + // Error handling. + ExceptionClose(); + } finally { + ENSClose(); + } + } + + + + private void ENSClose() { + if (_isENSInitialize) { + try { + ENSWrapperImpl.GetInstance().Release(); + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + } + + /// + /// This is the method that close application. + /// + private void ExceptionClose() { + ENSClose(); + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/EPSON/PrintSettingsDlg.java b/src/main/java/com/dreamchaser/depository_manage/controller/EPSON/PrintSettingsDlg.java new file mode 100644 index 00000000..f5ededd8 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/controller/EPSON/PrintSettingsDlg.java @@ -0,0 +1,279 @@ +package com.dreamchaser.depository_manage.controller.EPSON; + +import com.dreamchaser.depository_manage.EPSON.Other.MessageString; +import com.dreamchaser.depository_manage.EPSON.epsonException.EPDMException; +import com.dreamchaser.depository_manage.entity.EPSON.EPDM.MEDIA_LAYOUT; +import com.dreamchaser.depository_manage.entity.EPSON.EPDM.MEDIA_TYPE; +import com.dreamchaser.depository_manage.entity.EPSON.EPDM.PRINT_QUALITY; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.service.impl.EPSON.EPDM.EPDMWrapper; +import com.dreamchaser.depository_manage.service.impl.EPSON.EPDM.EPDMWrapperImpl; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + + +public class PrintSettingsDlg { + private List _mediaLayoutList; + private List _mediaTypeList; + private List _printQualityList; + private String _devName; + private String _portName; + private boolean _isEPDMOpen = true; + + /** + * 这是PrintSettingsDlg的构造函数。 + * @param devName + * @param portName + */ + public PrintSettingsDlg(String devName, String portName) + { + + _devName = devName; + _portName = portName; + } + + + /** + * 初始化加载方法 + */ + public Map> PrintSettings_Load() + { + try + { + EPDMWrapperImpl.GetInstance().Open(_devName, _portName); + List StrMediaLayoutList = UpdateMediaLayoutComboBox(); + List StrMediaTypeList = UpdateMediaTypeComboBox(); + List StrPrintQualityList = UpdatePrintQualityComboBox(); + Map> listMap = new HashMap<>(); + listMap.put("StrMediaLayoutList",StrMediaLayoutList); + listMap.put("StrMediaTypeList",StrMediaTypeList); + listMap.put("StrPrintQualityList",StrPrintQualityList); + return listMap; + } + catch (Exception e) + { + // Error handling. + ExceptionClose(); + + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是在MediaTypeComboBox更改操作上实现更新打印质量列表的事件处理程序。 + */ + private void MediaTypeComboBox_SelectedIndexChanged() + { + try + { + EPDMWrapperImpl obj = EPDMWrapperImpl.GetInstance(); +// int index = MediaTypeComboBox.SelectedIndex; + int index = 1; // 获取选中的数据的下标 + + obj.SetMediaType(_mediaTypeList.get(index).getMediaTypeID()); + + // 同时获取输出index + _printQualityList = obj.GetPrintQualityList(index); + if (_printQualityList == null) + { + return; + } + List StrPrintQualityList = new ArrayList<>(); + +// PrintQualityComboBox.Items.Clear(); + + for (PRINT_QUALITY printQuality : _printQualityList) + { + StrPrintQualityList.add(printQuality.getStrPrintQuality()); +// PrintQualityComboBox.Items.Add(printQuality.StrPrintQuality); +// this.Controls.Add(PrintQualityComboBox); + } + // 设置选中的下标 +// PrintQualityComboBox.SelectedIndex = index; + } catch (Exception ep) + { + // Error handling. + ExceptionClose(); + } + } + + + private void ApplyButton_Click() + { + EPDMWrapperImpl obj = EPDMWrapperImpl.GetInstance(); + try + { + int index = 0; + + // index为选中的媒体布局下标 +// index = MediaLayoutComboBox.SelectedIndex; + obj.SetMediaLayout(_mediaLayoutList.get(index).getMediaLayoutID()); + + // index为选中的媒体类型下标 +// index = MediaTypeComboBox.SelectedIndex; + obj.SetMediaType(_mediaTypeList.get(index).getMediaTypeID()); +// + // index为选中的打印质量下标 +// index = PrintQualityComboBox.SelectedIndex; + if (index >= 0) + { + // 如果选中的大于0 + obj.SetPrintQuality(_printQualityList.get(index).getPrintQualityID()); + } + else + { + // 否则设置为将打印质量设置为不可用 +// PrintQualityComboBox.Enabled = false; + } + obj.UpdateDevMode(); + } catch (Exception e) + { + // Error handling. + ExceptionClose(); + } + finally + { + EPDMClose(); + } + } + + + + + + + /** + * 这是更新打印质量组合框列表的方法。 + */ + private List UpdatePrintQualityComboBox() + { + // 用于保存当前打印质量 + List StrPrintQualityList = new ArrayList<>(); + try + { + Integer index = 0; + + _printQualityList = EPDMWrapperImpl.GetInstance().GetPrintQualityList( index); + if (_printQualityList == null) + { + return null; + } + + for (PRINT_QUALITY printQuality : _printQualityList) + { + StrPrintQualityList.add(printQuality.getStrPrintQuality()); + } + return StrPrintQualityList; + // index 是选中的打印质量 + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + /** + * 这是更新媒体类型组合框列表的方法。 + */ + private List UpdateMediaTypeComboBox() + { + try + { + int index = 0; + + _mediaTypeList = EPDMWrapperImpl.GetInstance().GetMediaTypeList(index); + if (_mediaTypeList == null) + { + return null; + } + List StrMediaTypeList = new ArrayList<>(); + + + for (MEDIA_TYPE mediaType : _mediaTypeList) + { +// MediaTypeComboBox.Items.Add(mediaType.StrMediaType); +// this.Controls.Add(MediaTypeComboBox); + StrMediaTypeList.add(mediaType.getStrMediaType()); + } + + return StrMediaTypeList; +// MediaTypeComboBox.SelectedIndex = index; + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是更新媒体布局组合框列表的方法。 + */ + private List UpdateMediaLayoutComboBox() + { + try + { + int index = 0; + + _mediaLayoutList = EPDMWrapperImpl.GetInstance().GetMediaLayoutList(index); + if (_mediaLayoutList == null) + { + return null; + } + + List StrMediaLayoutList = new ArrayList<>(); + + + for (MEDIA_LAYOUT mediaLayout : _mediaLayoutList) + { + StrMediaLayoutList.add(mediaLayout.getStrMediaLayout()); + } + // index是选中的下标 + return StrMediaLayoutList; + + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是关闭PrintSettingsDlg的方法。 + */ + private void EPDMClose() + { + if (_isEPDMOpen) + { + try + { + EPDMWrapperImpl.GetInstance().Close(); + } catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + } + + + /** + * 这是关闭对话的方法 + */ + private void ExceptionClose() + { + EPDMClose(); + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/EPSON/PrinterIndexDlg.java b/src/main/java/com/dreamchaser/depository_manage/controller/EPSON/PrinterIndexDlg.java new file mode 100644 index 00000000..8a88614c --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/controller/EPSON/PrinterIndexDlg.java @@ -0,0 +1,80 @@ +package com.dreamchaser.depository_manage.controller.EPSON; + +import com.dreamchaser.depository_manage.EPSON.Other.MessageString; +import com.dreamchaser.depository_manage.EPSON.Other.SelectPrinterInfo; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.pojo.RestResponse; +import com.dreamchaser.depository_manage.utils.CrudUtil; +import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.io.*; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/Epson") +public class PrinterIndexDlg { + + private List _printerInfoList; + + private PrintSettingsDlg printSettingsDlg; + + /** + * 用于获取当前电脑的爱普生打印机列表 + * @return + */ + @PostMapping("/GetPrinterInfoList") + public RestResponse GetPrinterInfoList(){ + try { + List list = new ArrayList<>(); + _printerInfoList = SelectPrinterInfo.GetPrinterInfoList(); + if (_printerInfoList.size() == 0) { + MessageString.GetSystemError(MessageString.STATE_DRIVER_NOT_FOUND); + return new RestResponse(null); + } else { + for (SelectPrinterInfo.PRINTER_INFO printerInfo : _printerInfoList) + { + list.add(printerInfo.devName); + } + } + return new RestResponse(list); + }catch (Exception e){ + throw new MyException(e.getMessage()); + } + } + + + /** + * 用于初始化打印机设置页面 + * @param map 选中的打印机 + * @return + */ + @PostMapping("/PrintSettingLoad") + public RestResponse PrintSettingLoad(@RequestBody Map map){ + if(map.containsKey("index")){ + Integer index = ObjectFormatUtil.toInteger(map.get("index")); + printSettingsDlg = new PrintSettingsDlg(_printerInfoList.get(index).devName,_printerInfoList.get(index).portName); + return new RestResponse(200); + }else{ + throw new MyException("缺少必要参数"); + } + + } + + + /** + * 用于初始化打印机设置页面中的列表 + * @return + */ + @PostMapping("/updatePrintSettingPage") + public RestResponse updatePrintSettingPage(){ + Map> listMap = printSettingsDlg.PrintSettings_Load(); + return new RestResponse(listMap); + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/EPSON/SetRollPaperDlg.java b/src/main/java/com/dreamchaser/depository_manage/controller/EPSON/SetRollPaperDlg.java new file mode 100644 index 00000000..9653228c --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/controller/EPSON/SetRollPaperDlg.java @@ -0,0 +1,99 @@ +package com.dreamchaser.depository_manage.controller.EPSON; + +import com.dreamchaser.depository_manage.EPSON.Other.MessageString; +import com.dreamchaser.depository_manage.EPSON.epsonException.EPDMException; +import com.dreamchaser.depository_manage.entity.EPSON.EPDM.MEDIA_POSITION; +import com.dreamchaser.depository_manage.exception.MyException; +import com.dreamchaser.depository_manage.service.impl.EPSON.EPDM.EPDMWrapperImpl; + +import java.util.ArrayList; +import java.util.List; + +public class SetRollPaperDlg { + private List _mediaPositionList; + private String _devName; + private String _portName; + private boolean _isEPDMOpen = true; + + public SetRollPaperDlg(String _devName, String _portName) { + this._devName = _devName; + this._portName = _portName; + } + + + /** + * 这是加载时的方法 + */ + private void SetRollPaperDlg_Load(){ + try + { + EPDMWrapperImpl.GetInstance().Open(_devName, _portName); + UpdateMediaPositionComboBox(); + } catch (Exception e) + { + // Error handling. + ExceptionClose(); + } + } + + + /** + * 这是更新媒体位置组合框列表的方法 + */ + private void UpdateMediaPositionComboBox(){ + List strMediaPositionList = new ArrayList<>(); + try + { + Integer index = 0; + + _mediaPositionList = EPDMWrapperImpl.GetInstance().GetMediaPositionList(index); + if (_mediaPositionList == null) + { + return; + } + + + for (MEDIA_POSITION mediaPosition : _mediaPositionList) + { + strMediaPositionList.add(mediaPosition.StrMediaPosition); + } + // 最终选中 +// MediaPositionComboBox.SelectedIndex = index; + + } catch (Exception e) + { + // Error handling. + ExceptionClose(); + } + } + + /** + * 这是用于关闭EPDM的方法 + */ + private void EPDMClose() + { + if (_isEPDMOpen) + { + try + { + EPDMWrapperImpl.GetInstance().Close(); + } catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + } + + + /** + * 这是用于关闭的的方法。 + */ + private void ExceptionClose() + { + EPDMClose(); + } + + + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java index 5e25f509..aeb67238 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/PageController.java @@ -1349,8 +1349,8 @@ public class PageController { Group group = groupService.findGroupOnlyById(applicationInRecordPById.getMid()); // 获取组合详情数据 List groupInfoList = groupService.findGroupInfoByGid(applicationInRecordPById.getMid()); - mv.addObject("group",group); - mv.addObject("groupInfoList",groupInfoList); + mv.addObject("group", group); + mv.addObject("groupInfoList", groupInfoList); mv.addObject("record", applicationInRecordPById); mv.setViewName("pages/application/form-step-look_group"); } @@ -2112,8 +2112,8 @@ public class PageController { param.put("version", mp.getVersion()); List materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(param); param.put("materialAndBarCodeList", materialByBarCodeByCondition); - param.put("splitList",splitInfoByMid); - param.put("unit",mp.getUnit()); + param.put("splitList", splitInfoByMid); + param.put("unit", mp.getUnit()); String context = JSONObject.toJSONString(param); materialList.add(context); } @@ -2257,4 +2257,16 @@ public class PageController { } + @GetMapping("/printCode") + public ModelAndView printCode(int mid) { + ModelAndView mv = new ModelAndView(); + // 获取当前对应物料 + Material materialById = materialService.findMaterialById(mid); + // 获取当前物料对应的码值 + String qrCodeByMcode = materialService.findQrCodeByMcode(materialById.getCode()); + mv.addObject("qrCode",qrCodeByMcode); + mv.setViewName("pages/JcPrinter/PrinterIndex"); + return mv; + } + } diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/EPDMMediaLayoutInf.java b/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/EPDMMediaLayoutInf.java new file mode 100644 index 00000000..6b141139 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/EPDMMediaLayoutInf.java @@ -0,0 +1,149 @@ +package com.dreamchaser.depository_manage.entity.EPSON.EPDM; + +import com.dreamchaser.depository_manage.EPSON.EPDM.EPDM; +import com.dreamchaser.depository_manage.EPSON.EPDM.EPDMEnumrations; +import com.dreamchaser.depository_manage.config.EPSON.EPDM.Global_MEDIA_EPDM; +import com.sun.jna.Memory; +import com.sun.jna.Pointer; +import com.sun.jna.Structure; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class EPDMMediaLayoutInf extends EPDM { + + + public class EPDM_MEDIALAYOUTINF extends Structure + { + public int dwVersion; + public int dwSize; + public short iPaperWid; + public short iPaperHig; + public short iLabelWid; + public short iLabelHig; + public short iLabelGap; + public short iBMGap; + public short iPrintWid; + public short iPrintHig; + public short iPrintX; + public short iPrintY; + public short iMediaTypeID; + public short iMediaLayoutID; + + + @Override + protected List getFieldOrder() { + return new ArrayList<>(Arrays.asList("dwVersion","dwSize","iPaperWid","iPaperHig","iLabelWid","iLabelHig","iLabelGap","iBMGap" + ,"iPrintWid","iPrintHig","iPrintX","iPrintY","iMediaTypeID","iMediaLayoutID")); + } + + public EPDM_MEDIALAYOUTINF() { + } + + public EPDM_MEDIALAYOUTINF(Pointer p) { + super(p); + } + + }; + + public short PaperWid; + + public short getPaperWid() { + return _struct.iPaperWid; + } + + public void setPaperWid(short paperWid) { + _struct.iPaperWid = paperWid; + } + + public short LabelWid; + + public short getLabelWid() { + return _struct.iLabelWid; + } + + public void setLabelWid(short labelWid) { + _struct.iLabelWid = labelWid; + } + public short LabelHig; + + public short getLabelHig() { + return _struct.iLabelHig; + } + + public void setLabelHig(short labelHig) { + _struct.iLabelHig = labelHig; + } + + public short LabelGap; + + public short getLabelGap() { + return _struct.iLabelGap; + } + + public void setLabelGap(short labelGap) { + _struct.iLabelGap = labelGap; + } + + public short MediaTypeID; + + public short getMediaTypeID() { + return _struct.iMediaTypeID; + } + + public void setMediaTypeID(short mediaTypeID) { + _struct.iMediaTypeID = mediaTypeID; + } + public short MediaLayoutID; + + public short getMediaLayoutID() { + return _struct.iMediaLayoutID; + } + + public void setMediaLayoutID(short mediaLayoutID) { + _struct.iMediaLayoutID = mediaLayoutID; + } + + + + private boolean _disposed = false; + public EPDM_MEDIALAYOUTINF _struct; + + + public EPDMMediaLayoutInf() + { + int structSize = 12 * Short.SIZE / 8 + Integer.SIZE / 8 * 2; + _ptrToStruct = new Memory(structSize); + + _struct = new EPDM_MEDIALAYOUTINF(_ptrToStruct); + _struct.dwVersion = EPDMEnumrations.StructVersion.EPDM_STVER_MEDIALAYOUTINF.getI(); + _struct.dwSize = structSize; + _struct.iPaperWid = 0; + _struct.iPaperHig = 0; + _struct.iLabelWid = 0; + _struct.iLabelHig = 0; + _struct.iLabelGap = 0; + _struct.iBMGap = 0; + _struct.iPrintWid = 0; + _struct.iPrintHig = 0; + _struct.iPrintX = 0; + _struct.iPrintY = 0; + _struct.iMediaTypeID = 0; + _struct.iMediaLayoutID = 0; + StructureToPtr(); + PtrToStructure(); + } + + @Override + public void PtrToStructure() { + _struct.read(); + _struct = Global_MEDIA_EPDM.epdm_medialayoutinfMap.get(_ptrToStruct.getInt(0)); + } + + @Override + public void StructureToPtr() { + _struct.write(); + Global_MEDIA_EPDM.epdm_medialayoutinfMap.put(_ptrToStruct.getInt(0),_struct); + } +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/MEDIA_LAYOUT.java b/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/MEDIA_LAYOUT.java new file mode 100644 index 00000000..a3f2ae9c --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/MEDIA_LAYOUT.java @@ -0,0 +1,12 @@ +package com.dreamchaser.depository_manage.entity.EPSON.EPDM; + +import lombok.Data; + +/** + *这是定义媒体布局信息的类。 + */ +@Data +public class MEDIA_LAYOUT { + public String StrMediaLayout; + public int MediaLayoutID; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/MEDIA_LAYOUT_RANGE.java b/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/MEDIA_LAYOUT_RANGE.java new file mode 100644 index 00000000..031f6a98 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/MEDIA_LAYOUT_RANGE.java @@ -0,0 +1,18 @@ +package com.dreamchaser.depository_manage.entity.EPSON.EPDM; + +import lombok.Data; + +/** + * 这是定义介质分布范围值的类 + */ +@Data +public class MEDIA_LAYOUT_RANGE { + public short MinPaperWid; + public short MaxPaperWid; + public short MinLabelWid; + public short MaxLabelWid; + public short MinLabelHig; + public short MaxLabelHig; + public short MinLabelGap; + public short MaxLabelGap; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/MEDIA_POSITION.java b/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/MEDIA_POSITION.java new file mode 100644 index 00000000..ecb1ae0f --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/MEDIA_POSITION.java @@ -0,0 +1,12 @@ +package com.dreamchaser.depository_manage.entity.EPSON.EPDM; + +import lombok.Data; + +/** + * 这是定义媒体位置信息的类 + */ +@Data +public class MEDIA_POSITION { + public String StrMediaPosition; + public int MediaPositionID; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/MEDIA_TYPE.java b/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/MEDIA_TYPE.java new file mode 100644 index 00000000..856947f3 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/MEDIA_TYPE.java @@ -0,0 +1,12 @@ +package com.dreamchaser.depository_manage.entity.EPSON.EPDM; + +import lombok.Data; + +/** + * 这是定义媒体类型信息的类 + */ +@Data +public class MEDIA_TYPE { + public String StrMediaType; + public int MediaTypeID; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/PRINT_QUALITY.java b/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/PRINT_QUALITY.java new file mode 100644 index 00000000..d0b8bb39 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/entity/EPSON/EPDM/PRINT_QUALITY.java @@ -0,0 +1,12 @@ +package com.dreamchaser.depository_manage.entity.EPSON.EPDM; + +import lombok.Data; + +/** + * 这是定义打印质量信息的类。 + */ +@Data +public class PRINT_QUALITY { + public String StrPrintQuality; + public int PrintQualityID; +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java index 1c48e66e..435e6271 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java @@ -2060,12 +2060,12 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { userIdByDid = roleService.findUserIdByDid(inventory.getDepositoryId()); // 用于保存仓库管理员的企业微信openid StringBuilder QyWxUid = new StringBuilder(); - for (int j = 0; j < userIdByDid.size(); j++) { + for (Integer integer : userIdByDid) { // 仓库管理员订单信息 Map userRecord = new HashMap<>(); // 用户当前子订单 - String userMinRecord = (String) redisTemplate.opsForHash().get("user:" + userIdByDid.get(j), "minRecord"); + String userMinRecord = (String) redisTemplate.opsForHash().get("user:" + integer, "minRecord"); if (userMinRecord == null) { // 如果当前用户没有子订单 userRecord.put("minRecord", "[" + minRecordKey + "," + "]"); // 插入一条子订单 } else { // 如果当前用户已经有子订单 @@ -2074,9 +2074,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { userRecord.put("minRecord", minRecordList.toString()); } // 更新redis中用户记录 - redisTemplate.opsForHash().putAll("user:" + userIdByDid.get(j), userRecord); - minRecordManage.append(userIdByDid.get(j)).append(","); - UserByPort userByPort = LinkInterfaceUtil.FindUserById(userIdByDid.get(j), userToken); + redisTemplate.opsForHash().putAll("user:" + integer, userRecord); + minRecordManage.append(integer).append(","); + UserByPort userByPort = LinkInterfaceUtil.FindUserById(integer, userToken); // QyWxUid.append(userByPort.getWorkwechat() + ","); } QyWxUid.append("PangFuZhen,"); diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/EPSON/ENS/ENSWrapper.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/EPSON/ENS/ENSWrapper.java new file mode 100644 index 00000000..4f26e5c5 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/EPSON/ENS/ENSWrapper.java @@ -0,0 +1,36 @@ +package com.dreamchaser.depository_manage.service.impl.EPSON.ENS; + +import com.dreamchaser.depository_manage.service.impl.EPSON.EPDM.EPDMWrapper; +import com.sun.jna.Library; +import com.sun.jna.Native; +import com.sun.jna.Pointer; +import com.sun.jna.ptr.IntByReference; + +public interface ENSWrapper extends Library { + + String strLibrary = "C:/Program Files (x86)/EpsonNet/EpsonNetSDK/EpsonNetSDK"; + // String strLibrary = "C://Program Files//EpsonNet//EpsonNetSDK//EpsonNetSDK.dll"; + ENSWrapper instance = Native.load(strLibrary, ENSWrapper.class); + + int ENSInitialize(); + + + int ENSRelease(); + + int ENSGetDeviceID + (int PathType, String PrnPath, + Pointer IdBuff, int BuffLen, + int StructVersion); + + int ENSOpenCommunication + (int PathType, String PrnPath, + Pointer IdBuff, Pointer PtrHandle); + + int ENSCloseCommunication + (Pointer PtrHandle); + + int ENSGetInformation + (Pointer PtrHandle, String Command, + Pointer GetParm, Pointer GetBuff, + int BuffLen); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/EPSON/ENS/ENSWrapperImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/EPSON/ENS/ENSWrapperImpl.java new file mode 100644 index 00000000..5e20ccd2 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/EPSON/ENS/ENSWrapperImpl.java @@ -0,0 +1,253 @@ +package com.dreamchaser.depository_manage.service.impl.EPSON.ENS; + +import com.dreamchaser.depository_manage.EPSON.ENS.ENSEnumrations; +import com.dreamchaser.depository_manage.EPSON.ENS.ENSStatus; +import com.dreamchaser.depository_manage.EPSON.epsonException.ENSException; +import com.dreamchaser.depository_manage.config.EPSON.ENS.Global_MEDIA_ENS; +import com.dreamchaser.depository_manage.exception.MyException; +import com.sun.jna.Memory; +import com.sun.jna.Native; +import com.sun.jna.Pointer; + +public class ENSWrapperImpl { + + /** + * 这是定义警告代码标志的类。 + */ + public class WARNING_INFO + { + public boolean InkLowWarning = false; + public boolean OtherWarning = false; + } + + private static ENSWrapperImpl _singleton = new ENSWrapperImpl(); + private String _devName, _portName; + private Pointer _ptrHandle; + + private static final String INFO_COMMAND = "STATUS"; + + private ENSWrapperImpl() + { + } + + public static ENSWrapperImpl GetInstance() + { + return _singleton; + } + + + /** + * 这个方法用于实现ENSInitialize. + * @param devName 所选打印机的设备名称 + * @param portName 所选打印机的端口名称 + */ + public void Initialize(String devName, String portName) + { + try + { + _devName = devName; + _portName = portName; + + ENSEnumrations.ENSErrorCode errCode = ENSEnumrations.ENSErrorCode.getENSErrorCode(ENSWrapper.instance.ENSInitialize()); + if (errCode != ENSEnumrations.ENSErrorCode.ERR_BASE) + { + throw new ENSException(errCode); + } + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这个方法用于获取选中的打印机的状态 + * @param structINKSIDM INKSIDMSTATUS_02 对象 + */ + public void GetPrinterStatus(ENSStatus.INKSIDMSTATUS_02 structINKSIDM) { + Pointer ptrInt = Pointer.NULL; + Pointer ptrTemp = Pointer.NULL; + Pointer ptrGetBuff = Pointer.NULL; + try + { + // Handling of to call ENSGetDeviceID. + int buffLen = 0; + + // ENSGetDeviceID 1st call. Get the required buffLen. + ENSEnumrations.ENSErrorCode errCode = ENSEnumrations.ENSErrorCode.getENSErrorCode(ENSWrapper.instance.ENSGetDeviceID(ENSEnumrations.ENSType.TYPE_PRINTER.getI(), _devName, Pointer.NULL, buffLen, 0x1)); + if (errCode != ENSEnumrations.ENSErrorCode.ERR_BUFFERSIZE) + { + throw new ENSException(errCode); + } + + ptrTemp = new Memory(buffLen); + + // ENSGetDeviceID 2nd call. + errCode = ENSEnumrations.ENSErrorCode.getENSErrorCode(ENSWrapper.instance.ENSGetDeviceID( ENSEnumrations.ENSType.TYPE_PRINTER.getI(), _devName, ptrTemp, buffLen, 0x1)); + if (errCode != ENSEnumrations.ENSErrorCode.ERR_BASE) + { + throw new ENSException(errCode); + } + +// Handling of to call ENSOpenCommunication. + errCode = ENSEnumrations.ENSErrorCode.getENSErrorCode(ENSWrapper.instance.ENSOpenCommunication( ENSEnumrations.ENSType.TYPE_PRINTER.getI(), _devName, ptrTemp, _ptrHandle)); + if (errCode != ENSEnumrations.ENSErrorCode.ERR_BASE) + { + throw new ENSException(errCode); + } + + // Get printer status information. + structINKSIDM = new ENSStatus.INKSIDMSTATUS_02(); + String str = "STRUCTURE=INKSIDMSTATUS_02"; + int random = (int) Math.random(); + ptrInt = new Memory(random); + Global_MEDIA_ENS.ENS_STRUCTURE_Str.put(random,str); + + // Handling of to call ENSGetInformation. + buffLen = 0; + + // ENSGetInformation 1st call. Get the required buffLen. + errCode = ENSEnumrations.ENSErrorCode.getENSErrorCode(ENSWrapper.instance.ENSGetInformation(_ptrHandle, INFO_COMMAND, ptrInt, Pointer.NULL, buffLen)); + if (errCode != ENSEnumrations.ENSErrorCode.ERR_BUFFERSIZE) + { + throw new ENSException(errCode); + } + + ptrGetBuff = new Memory(buffLen); + + // ENSGetInformation 2nd call. + errCode = ENSEnumrations.ENSErrorCode.getENSErrorCode(ENSWrapper.instance.ENSGetInformation(_ptrHandle, INFO_COMMAND, ptrInt, ptrGetBuff, buffLen)); + if (errCode != ENSEnumrations.ENSErrorCode.ERR_BASE) + { + throw new ENSException(errCode); + } + + // Get INKSIDMSTATUS_02 structure object. +// structINKSIDM = (ENSStatus.INKSIDMSTATUS_02)Marshal.PtrToStructure(ptrGetBuff, typeof(ENSStatus.INKSIDMSTATUS_02)); + structINKSIDM = Global_MEDIA_ENS.integerINKSIDMSTATUS_02Map.get(ptrGetBuff.getInt(0)); +// + // Handling of to call ENSCloseCommunication. + errCode = ENSEnumrations.ENSErrorCode.getENSErrorCode(ENSWrapper.instance.ENSCloseCommunication(_ptrHandle)); + if (errCode != ENSEnumrations.ENSErrorCode.ERR_BASE) + { + throw new ENSException(errCode); + } + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + finally + { + Native.free(Pointer.nativeValue(ptrTemp)); + Native.free(Pointer.nativeValue(ptrInt)); + Native.free(Pointer.nativeValue(ptrGetBuff)); + } + } + + /** + * 这个方法用于获取状态信息 + * @return + */ + public ENSEnumrations.StatusCode GetStatusInformation() + { + try + { + ENSStatus.INKSIDMSTATUS_02 structINKSIDM = new ENSStatus.INKSIDMSTATUS_02(); + GetPrinterStatus(structINKSIDM); + return ENSEnumrations.StatusCode.getStatusCode(structINKSIDM.StatusCode); + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这个方法用于获取ErrorCode + * @return + */ + public ENSEnumrations.ErrorCode GetErrorInformation() + { + try + { + ENSStatus.INKSIDMSTATUS_02 structINKSIDM = new ENSStatus.INKSIDMSTATUS_02(); + GetPrinterStatus( structINKSIDM); + return ENSEnumrations.ErrorCode.getErrorCode(structINKSIDM.ErrorCode); + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + /** + * 这是获取WarningCode的方法。 + * 判断是否出现警告。 + * @return + */ + public WARNING_INFO GetWarningInformation() + { + try + { + ENSStatus.INKSIDMSTATUS_02 structINKSIDM = new ENSStatus.INKSIDMSTATUS_02(); + GetPrinterStatus( structINKSIDM); + + int awc = structINKSIDM.AvailableWarningCode2; + WARNING_INFO warningInfo = new WARNING_INFO(); + + if (awc != 0) + { + for (int i = 0; i < awc; i++) + { + if ((structINKSIDM.WarningCode2[i] == ENSEnumrations.WarningCode.WAR_InkLow_B.getI()) || + (structINKSIDM.WarningCode2[i] == ENSEnumrations.WarningCode.WAR_InkLow_C.getI()) || + (structINKSIDM.WarningCode2[i] == ENSEnumrations.WarningCode.WAR_InkLow_M.getI()) || + (structINKSIDM.WarningCode2[i] == ENSEnumrations.WarningCode.WAR_InkLow_Y.getI())) + { + warningInfo.InkLowWarning = true; + } + else + { + warningInfo.OtherWarning = true; + } + } + } + return warningInfo; + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是实现ENSRelease的方法 + */ + public void Release() + { + try + { + ENSEnumrations.ENSErrorCode errCode = ENSEnumrations.ENSErrorCode.getENSErrorCode(ENSWrapper.instance.ENSRelease()); + if (errCode != ENSEnumrations.ENSErrorCode.ERR_BASE) + { + throw new ENSException(errCode); + } + } + + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/EPSON/EPDM/EPDMWrapper.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/EPSON/EPDM/EPDMWrapper.java new file mode 100644 index 00000000..208c16fc --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/EPSON/EPDM/EPDMWrapper.java @@ -0,0 +1,35 @@ +package com.dreamchaser.depository_manage.service.impl.EPSON.EPDM; + +import com.sun.jna.Library; +import com.sun.jna.Native; +import com.sun.jna.Pointer; +import com.sun.jna.ptr.IntByReference; + + +public interface EPDMWrapper extends Library { + + + String strLibrary = "C:/Windows/System32/spool/drivers/x64/3/E_BEPSET32"; +// String strLibrary = "3/E_BEPSET32"; +// String strLibrary = "\\3\\E_BEPSET32"; +// String strLibrary = "C:/Windows/System32/spool/drivers/W32X86/3/E_BEPSET32.DLL"; + EPDMWrapper instance = Native.load(strLibrary, EPDMWrapper.class); + IntByReference number = new IntByReference(0); + + + int EPDM_Open(String DevName, String PortName, int Type, Pointer DMAdd, Pointer PrnHandleAdd); + + int EPDM_GetRange(Pointer PrnHandle, int Command, Pointer Param); + + int EPDM_GetData(Pointer PrnHandle, int Command, Pointer Param); + + int EPDM_SetData(Pointer PrnHandle, int Command, int Param); + + int EPDM_AddData(Pointer PrnHandle, int Command, Pointer Param); + + int EPDM_ImportData(Pointer PrnHandle, int Command, Pointer Param); + + boolean EPDM_UpdateDevMode(Pointer PrnHandle); + + boolean EPDM_Close(Pointer PrnHandle); +} diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/EPSON/EPDM/EPDMWrapperImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/EPSON/EPDM/EPDMWrapperImpl.java new file mode 100644 index 00000000..2fa306a8 --- /dev/null +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/EPSON/EPDM/EPDMWrapperImpl.java @@ -0,0 +1,622 @@ +package com.dreamchaser.depository_manage.service.impl.EPSON.EPDM; + +import com.dreamchaser.depository_manage.EPSON.EPDM.EPDMEnumrations; +import com.dreamchaser.depository_manage.EPSON.EPDM.EPDMMediaLayoutRange; +import com.dreamchaser.depository_manage.EPSON.EPDM.EPDMSelectData; +import com.dreamchaser.depository_manage.EPSON.EPDM.EPDMString; +import com.dreamchaser.depository_manage.EPSON.epsonException.EPDMException; +import com.dreamchaser.depository_manage.config.EPSON.ENS.Global_MEDIA_ENS; +import com.dreamchaser.depository_manage.config.EPSON.EPDM.Global_MEDIA_EPDM; +import com.dreamchaser.depository_manage.entity.EPSON.EPDM.*; +import com.dreamchaser.depository_manage.exception.MyException; +import com.sun.jna.Memory; +import com.sun.jna.Native; +import com.sun.jna.Pointer; +import org.apache.commons.collections4.Get; +import org.apache.commons.math3.analysis.function.Add; + +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.List; + +/** + * 用于实现EPDMWrapper的方法 + */ +public class EPDMWrapperImpl { + + + private static EPDMWrapperImpl _singleton = new EPDMWrapperImpl(); + /*打印质量*/ + private static String STR_PRINTQUALITY_360X180 = "360x180dpi"; + private static String STR_PRINTQUALITY_360X360 = "360x360dpi"; + private static String STR_PRINTQUALITY_720X360 = "720x360dpi"; + + private Pointer _ptrGetParm = new Memory(24); + + public static EPDMWrapperImpl GetInstance() { + return _singleton; + } + + + /** + * 这是实现EpDMOpen的方法 + * + * @param devName 所选打印机的设备名称。 + * @param portName 所选打印机的端口名称。 + */ + public void Open(String devName, String portName) { + + + try { + EPDMEnumrations.EPDMErrorCode errCode = EPDMEnumrations.EPDMErrorCode.getEPDMErrorCode(EPDMWrapper.instance.EPDM_Open(devName, portName, 0, Pointer.NULL, _ptrGetParm)); + if (errCode != EPDMEnumrations.EPDMErrorCode.EPDM_ERR_NORMAL) { + throw new EPDMException(errCode); + } + } catch (Exception e) { + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是获取MediaLayoutRange的最小值和最大值的方法。 + * + * @return 包含获取值的类 + */ + public MEDIA_LAYOUT_RANGE GetMediaLayoutRangeValue() { + try { + EPDMMediaLayoutRange epdmMediaLayoutRange = GetMediaLayoutRange(); + // Get the MediaLayoutRange value. + int index = epdmMediaLayoutRange.GetMediaTypeIndex(EPDMEnumrations.MediaTypeID.EPDM_MEDIATYPE_DIECUT); + + MEDIA_LAYOUT_RANGE mediaLayoutRange = new MEDIA_LAYOUT_RANGE(); + mediaLayoutRange.MinPaperWid = epdmMediaLayoutRange.MediaTypeRange[index].iMinPaperWid; + mediaLayoutRange.MaxPaperWid = epdmMediaLayoutRange.MediaTypeRange[index].iMaxPaperWid; + + mediaLayoutRange.MinLabelWid = epdmMediaLayoutRange.MediaTypeRange[index].iMinLabelWid; + mediaLayoutRange.MaxLabelWid = epdmMediaLayoutRange.MediaTypeRange[index].iMaxLabelWid; + + mediaLayoutRange.MinLabelHig = epdmMediaLayoutRange.MediaTypeRange[index].iMinLabelHig; + mediaLayoutRange.MaxLabelHig = epdmMediaLayoutRange.MediaTypeRange[index].iMaxLabelHig; + + mediaLayoutRange.MinLabelGap = epdmMediaLayoutRange.MediaTypeRange[index].iMinLabelGap; + mediaLayoutRange.MaxLabelGap = epdmMediaLayoutRange.MediaTypeRange[index].iMaxLabelGap; + return mediaLayoutRange; + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是用于实现EPDM_GetRange的方法 + * + * @return EPDM_MEDIALAYOUTRANGE结构体 + */ + public EPDMMediaLayoutRange GetMediaLayoutRange() { + try { + EPDMMediaLayoutRange epdmMediaLayoutRange = new EPDMMediaLayoutRange(); + // EPDM_GetRange第一次调用。获取所需的内存大小。 + EPDMEnumrations.EPDMErrorCode errCode = EPDMEnumrations.EPDMErrorCode.getEPDMErrorCode(EPDMWrapper.instance.EPDM_GetRange(_ptrGetParm, EPDMEnumrations.Command.EPDM_CMD_MEDIALAYOUT.getI(), epdmMediaLayoutRange.getStructurePointer())); + if (errCode != EPDMEnumrations.EPDMErrorCode.EPDM_ERR_NORMAL) { + System.out.println(errCode); + throw new EPDMException(errCode); + } + + epdmMediaLayoutRange.PtrToStructure(); + + epdmMediaLayoutRange.Alloc(); + + Global_MEDIA_EPDM.epdmMediaLayoutRangeMap.put(_ptrGetParm.getInt(0), epdmMediaLayoutRange); + // 第二次调用EPDM_GetRange + + errCode = EPDMEnumrations.EPDMErrorCode.getEPDMErrorCode(EPDMWrapper.instance.EPDM_GetRange(_ptrGetParm, EPDMEnumrations.Command.EPDM_CMD_MEDIALAYOUT.getI(), epdmMediaLayoutRange.getStructurePointer())); + if (errCode != EPDMEnumrations.EPDMErrorCode.EPDM_ERR_NORMAL) { + throw new EPDMException(errCode); + } + Global_MEDIA_EPDM.epdmMediaLayoutRangeMap.put(_ptrGetParm.getInt(0), epdmMediaLayoutRange); + return epdmMediaLayoutRange; + + } catch (Exception e) { + System.out.println(e.getMessage()); + } + return null; + } + + + /** + * 这是实现EPDM_Close的方法 + */ + public void Close() { + try { + if (!EPDMWrapper.instance.EPDM_Close(_ptrGetParm)) { + throw new EPDMException(EPDMEnumrations.EPDMErrorCode.EPDM_ERR_FAIL); + } + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是创建媒体位置组合框列表的方法。 + * + * @param index 所选组合框序列的个数。 + * @return >媒体职位列表。 + */ + public List GetMediaPositionList(Integer index) { + try { + List mediaPositionList = new ArrayList(); + MEDIA_POSITION mediaPosition; + + // GetRange EPDM_CMD_MEDIAPOSITION + EPDMSelectData epdmSelectData = GetMediaPositionRange(); + +// GetData EPDM_CMD_MEDIAPOSITION & Get combo box index. + index = ArrayIndexOf(epdmSelectData.Data, GetMediaPositionID()); + +// GetData EPDM_CMD_STRING + for (int i = 0; i < epdmSelectData.Count; i++) { + String strData = GetString(EPDMEnumrations.StringID.EPDM_STRING_MEDIAPOSITION.getI(), epdmSelectData.Data[i].intValue()); + + // Add the mediapositionlist + mediaPosition = new MEDIA_POSITION(); + mediaPosition.StrMediaPosition = strData; + mediaPosition.MediaPositionID = epdmSelectData.Data[i].intValue(); + mediaPositionList.add(mediaPosition); + } + return mediaPositionList; + + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是创建媒体布局组合框列表的方法。 + * + * @param index 所选组合框序列的数目。 + * @return 媒体布局列表。 + */ + public List GetMediaLayoutList(Integer index) { + try { + List mediaLayoutList = new ArrayList(); + MEDIA_LAYOUT mediaLayout; + + // GetRange EPDM_CMD_MEDIALAYOUT + EPDMMediaLayoutRange epdmMediaLayoutRange = GetMediaLayoutRange(); + // GetData EPDM_CMD_MEDIALAYOUT & Get combo box index. + index = ArrayIndexOfForShort(epdmMediaLayoutRange.MediaLayoutID, GetMediaLayoutID()); + +// GetData EPDM_CMD_STRING + for (int i = 0; i < epdmMediaLayoutRange.IDCount; i++) { + String strData = GetString(EPDMEnumrations.StringID.EPDM_STRING_MEDIALAYOUT.getI(), epdmMediaLayoutRange.MediaLayoutID[i]); + +//  Add the mediaLayoutlist + mediaLayout = new MEDIA_LAYOUT(); + mediaLayout.StrMediaLayout = strData; + mediaLayout.MediaLayoutID = (int) epdmMediaLayoutRange.MediaLayoutID[i]; + mediaLayoutList.add(mediaLayout); + } + return mediaLayoutList; + + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是获取当前媒体布局ID的方法。 + * + * @return 媒体布局id + */ + public short GetMediaLayoutID() { + try { + EPDMMediaLayoutInf epdmMeiaLayoutInf = new EPDMMediaLayoutInf(); + +// GetData EPDM_CMD_mediaLayout + EPDMEnumrations.EPDMErrorCode errCode = EPDMEnumrations.EPDMErrorCode.getEPDMErrorCode(EPDMWrapper.instance.EPDM_GetData(_ptrGetParm, EPDMEnumrations.Command.EPDM_CMD_MEDIALAYOUT.getI(), epdmMeiaLayoutInf.StructurePointer)); + if (errCode != EPDMEnumrations.EPDMErrorCode.EPDM_ERR_NORMAL) { + throw new EPDMException(errCode); + } + epdmMeiaLayoutInf.PtrToStructure(); + + short mediaLayoutID = epdmMeiaLayoutInf.MediaLayoutID; + + return mediaLayoutID; + + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是获取媒体位置范围的方法。 + * + * @return EPDM_CMD_MEDIAPOSITION的数据结构对象EPDM_SelectData + */ + public EPDMSelectData GetMediaPositionRange() { + try { + return GetSelectDataRange(EPDMEnumrations.Command.EPDM_CMD_MEDIAPOSITION); + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是获取当前媒体位置检测设置ID的方法。 + * + * @return >媒体位置检测设置ID + */ + public short GetMediaPositionID() { + try { + return GetShortData(EPDMEnumrations.Command.EPDM_CMD_MEDIAPOSITION); + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + /** + * 这是设置媒体布局的方法。 + * @param mediaLayoutID 所选媒体布局ID + */ + public void SetMediaLayout(int mediaLayoutID) + { + try + { + SetData(EPDMEnumrations.Command.EPDM_CMD_MEDIALAYOUT.getI(), mediaLayoutID); + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是创建媒体类型组合框列表的方法。 + * @param index 所选组合框序列的个数 + * @return 媒体类型列表 + */ + public List GetMediaTypeList(Integer index) { + try { + List mediaTypeList = new ArrayList(); + MEDIA_TYPE mediaType; + + // GetRange EPDM_CMD_MEDIA + EPDMSelectData epdmSelectData = GetMediaTypeRange(); + + // GetData EPDM_CMD_MEDIA + short mediaTypeID = GetMediaTypeID(); + + // Get combo box index. + index = ArrayIndexOf(epdmSelectData.Data, mediaTypeID); + + // GetData EPDM_CMD_STRING + for (int i = 0; i < epdmSelectData.Count; i++) { + String strData = GetString( EPDMEnumrations.StringID.EPDM_STRING_MEDIA.getI(), epdmSelectData.Data[i].intValue()); + + // Add the mediatypelist + mediaType = new MEDIA_TYPE(); + mediaType.StrMediaType = strData; + mediaType.MediaTypeID = epdmSelectData.Data[i].intValue(); + mediaTypeList.add(mediaType); + } + return mediaTypeList; + + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是获取媒体类型范围的方法。 + * + * @return epdm_select的数据结构对象。 + */ + public EPDMSelectData GetMediaTypeRange() { + try { + return GetSelectDataRange(EPDMEnumrations.Command.EPDM_CMD_MEDIA); + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是获取当前媒体类型ID的方法。 + * @return 媒体类型ID。 + */ + public short GetMediaTypeID() + { + try + { + return GetShortData(EPDMEnumrations.Command.EPDM_CMD_MEDIA); + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是实现EPDMSelectData结构的EPDM GetRange的方法。 + * + * @param cmd 命令获取设置的范围 + * @return EPDMSelectData结构对象。 + */ + public EPDMSelectData GetSelectDataRange(EPDMEnumrations.Command cmd) { + try { + EPDMSelectData epdmSelectData = new EPDMSelectData(); + EPDMEnumrations.EPDMErrorCode errCode = EPDMEnumrations.EPDMErrorCode.getEPDMErrorCode(EPDMWrapper.instance.EPDM_GetRange(_ptrGetParm, cmd.getI(), epdmSelectData.StructurePointer)); + if (errCode != EPDMEnumrations.EPDMErrorCode.EPDM_ERR_NORMAL) { + + throw new EPDMException(errCode); + + } + epdmSelectData.PtrToStructure(); + + // Allocate the memory. - EPDMSelectData.Data + epdmSelectData.Alloc(); + + // EPDM_GetRange 2nd call. + errCode = EPDMEnumrations.EPDMErrorCode.getEPDMErrorCode(EPDMWrapper.instance.EPDM_GetRange(_ptrGetParm, cmd.getI(), epdmSelectData.StructurePointer)); + if (errCode != EPDMEnumrations.EPDMErrorCode.EPDM_ERR_NORMAL) { + throw new EPDMException(errCode); + } + epdmSelectData.PtrToStructure(); + + return epdmSelectData; + } catch (EPDMException e) { + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是用于实现EPDM_GetData的方法 + * + * @param cmd 命令获取数据 + * @return + */ + public short GetShortData(EPDMEnumrations.Command cmd) { + Pointer ptrPosition = Pointer.NULL; + try { + ptrPosition = new Memory(Short.SIZE / 8); + + EPDMEnumrations.EPDMErrorCode errCode = EPDMEnumrations.EPDMErrorCode.getEPDMErrorCode(EPDMWrapper.instance.EPDM_GetData(_ptrGetParm, cmd.getI(), ptrPosition)); + if (errCode != EPDMEnumrations.EPDMErrorCode.EPDM_ERR_NORMAL) { + throw new EPDMException(errCode); + } + + return _ptrGetParm.getShort(0); + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } finally { + Native.free(Pointer.nativeValue(ptrPosition)); + } + } + + /** + * 这是实现EPDM_sTRiNG_1结构的EPDM_GetData的方法 + * + * @param stringParam 要获取的字符串的命令。 + * @param id 要获取的字符串的ID + * @return + */ + public String GetString(int stringParam, int id) { + try { + EPDMString epdmString = new EPDMString(); + + epdmString.Command = stringParam; + epdmString.ID = id; + + EPDMEnumrations.EPDMErrorCode errCode = EPDMEnumrations.EPDMErrorCode.getEPDMErrorCode(EPDMWrapper.instance.EPDM_GetData(_ptrGetParm, EPDMEnumrations.Command.EPDM_CMD_STRING.getI(), epdmString.StructurePointer)); + if (errCode != EPDMEnumrations.EPDMErrorCode.EPDM_ERR_NORMAL) { + throw new EPDMException(errCode); + } + + epdmString.PtrToStructure(); + + // Allocate the memory. - EPDMString.String + epdmString.Alloc(); + + errCode = EPDMEnumrations.EPDMErrorCode.getEPDMErrorCode(EPDMWrapper.instance.EPDM_GetData(_ptrGetParm, EPDMEnumrations.Command.EPDM_CMD_STRING.getI(), epdmString.StructurePointer)); + if (errCode != EPDMEnumrations.EPDMErrorCode.EPDM_ERR_NORMAL) { + throw new EPDMException(errCode); + } + + epdmString.PtrToStructure(); + + return epdmString.getString(); + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是用于实现EPDM_SetData的方法 + * + * @param cmd 要获取的命令号。 + * @param param 数据参数 + */ + public void SetData(int cmd, int param) { + try { + EPDMEnumrations.EPDMErrorCode errCode = EPDMEnumrations.EPDMErrorCode.getEPDMErrorCode(EPDMWrapper.instance.EPDM_SetData(_ptrGetParm, cmd, param)); + + if (errCode != EPDMEnumrations.EPDMErrorCode.EPDM_ERR_NORMAL) { + throw new EPDMException(errCode); + } + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是实现EPDM_UpdateDevMode的方法 + */ + public void UpdateDevMode() { + try { + if (!EPDMWrapper.instance.EPDM_UpdateDevMode(_ptrGetParm)) { + throw new EPDMException(EPDMEnumrations.EPDMErrorCode.EPDM_ERR_FAIL); + } + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是设置媒体类型的方法。 + * @param mediaTypeID 所选媒体类型ID。 + */ + public void SetMediaType(int mediaTypeID) + { + try + { + SetData(EPDMEnumrations.Command.EPDM_CMD_MEDIA.getI(), mediaTypeID); + } + catch (Exception e) + { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + /** + * 这是创建打印质量组合框列表的方法。 + * + * @param index 所选组合框序列的个数(输出),当没有可选择的打印质量时,-1返回索引。 + * @return 印刷质量的清单 + */ + public List GetPrintQualityList(Integer index) { + try { + List printQualityList = new ArrayList(); + PRINT_QUALITY printQuality; + + // GetData EPDM_CMD_MEDIA + EPDMSelectData epdmSelectData = GetPrintQualityRange(); + if (epdmSelectData == null) { + index = -1; + return null; + } + + // GetData EPDM_CMD_MEDIA & Get combo box index. + index = ArrayIndexOf(epdmSelectData.Data, GetPrintQualityID()); + + // GetPrintQualityString + String strData = ""; + for (int i = 0; i < epdmSelectData.Count; i++) { + int ID = epdmSelectData.Data[i].intValue(); + if (ID == EPDMEnumrations.PrintQualityID.EPDM_QUALITY_360X180.getI()) { + strData = STR_PRINTQUALITY_360X180; + } else if (ID == EPDMEnumrations.PrintQualityID.EPDM_QUALITY_360X360.getI()) { + strData = STR_PRINTQUALITY_360X360; + } else if (ID == EPDMEnumrations.PrintQualityID.EPDM_QUALITY_720X360.getI()) { + strData = STR_PRINTQUALITY_720X360; + } + + // Add the mediapositionlist + printQuality = new PRINT_QUALITY(); + printQuality.StrPrintQuality = strData; + printQuality.PrintQualityID = ID; + printQualityList.add(printQuality); + } + return printQualityList; + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + /** + * 这是得到打印质量范围的方法。 + * + * @return + */ + public EPDMSelectData GetPrintQualityRange() { + try { + return GetSelectDataRange(EPDMEnumrations.Command.EPDM_CMD_QUALITY); + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + /** + * 这是获得目前印刷质量的方法之一。 + * + * @return 打印质量ID + */ + public short GetPrintQualityID() { + try { + return GetShortData(EPDMEnumrations.Command.EPDM_CMD_QUALITY); + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + /** + * 这是设置打印质量的方法。 + * + * @param printQualityID 选定打印质量ID。 + */ + public void SetPrintQuality(int printQualityID) { + try { + SetData(EPDMEnumrations.Command.EPDM_CMD_QUALITY.getI(), printQualityID); + } catch (Exception e) { + // Error handling. + throw new MyException(e.getMessage()); + } + } + + + public Integer ArrayIndexOf(Object[] objects, Object object) { + int num = 0; + for (int i = 0; i < objects.length; i++) { + Object obj = objects[i]; + if (obj.toString().equals(object.toString())) { + num = i; + } + } + return num; + } + + + public Integer ArrayIndexOfForShort(short[] objects, short object) { + int num = 0; + for (int i = 0; i < objects.length; i++) { + short obj = objects[i]; + if (obj == object) { + num = i; + } + } + return num; + } + +} diff --git a/src/main/java/com/dreamchaser/depository_manage/utils/CreateQrCodeUtil.java b/src/main/java/com/dreamchaser/depository_manage/utils/CreateQrCodeUtil.java index 11d4b2be..938afb9d 100644 --- a/src/main/java/com/dreamchaser/depository_manage/utils/CreateQrCodeUtil.java +++ b/src/main/java/com/dreamchaser/depository_manage/utils/CreateQrCodeUtil.java @@ -8,6 +8,7 @@ import com.google.zxing.WriterException; import com.google.zxing.client.j2se.MatrixToImageWriter; import com.google.zxing.common.BitMatrix; import com.google.zxing.oned.Code128Writer; +import com.google.zxing.oned.Code39Writer; import com.google.zxing.oned.EAN13Writer; import com.google.zxing.pdf417.encoder.BarcodeMatrix; import com.google.zxing.qrcode.QRCodeWriter; @@ -81,7 +82,7 @@ public class CreateQrCodeUtil { * @param width 宽度 * @return base64格式的字符串 */ - public static String CreateBarCodeCode128(String content, int height, int width){ + public static String CreateBarCode128(String content, int height, int width){ String resultImage = ""; if (!StringUtils.isEmpty(content)) { ServletOutputStream stream = null; diff --git a/src/main/resources/static/css/JcPrinter/chalk_index.css b/src/main/resources/static/css/JcPrinter/chalk_index.css new file mode 100644 index 00000000..eb3644c4 --- /dev/null +++ b/src/main/resources/static/css/JcPrinter/chalk_index.css @@ -0,0 +1,15681 @@ +@charset "UTF-8"; +@font-face { + font-family: element-icons; + src: url(/static/css/JcPrinter/fonts/element-icons.woff) format("woff"), + url(/static/css/JcPrinter/fonts/element-icons.ttf) format("truetype"); + font-weight: 400; + font-display: "auto"; + font-style: normal +} + + + +[class*=" el-icon-"], [class^=el-icon-] { + font-family: element-icons !important; + speak: none; + font-style: normal; + font-weight: 400; + font-variant: normal; + text-transform: none; + line-height: 1; + vertical-align: baseline; + display: inline-block; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale +} + +.el-icon-ice-cream-round:before { + content: "\e6a0" +} + +.el-icon-ice-cream-square:before { + content: "\e6a3" +} + +.el-icon-lollipop:before { + content: "\e6a4" +} + +.el-icon-potato-strips:before { + content: "\e6a5" +} + +.el-icon-milk-tea:before { + content: "\e6a6" +} + +.el-icon-ice-drink:before { + content: "\e6a7" +} + +.el-icon-ice-tea:before { + content: "\e6a9" +} + +.el-icon-coffee:before { + content: "\e6aa" +} + +.el-icon-orange:before { + content: "\e6ab" +} + +.el-icon-pear:before { + content: "\e6ac" +} + +.el-icon-apple:before { + content: "\e6ad" +} + +.el-icon-cherry:before { + content: "\e6ae" +} + +.el-icon-watermelon:before { + content: "\e6af" +} + +.el-icon-grape:before { + content: "\e6b0" +} + +.el-icon-refrigerator:before { + content: "\e6b1" +} + +.el-icon-goblet-square-full:before { + content: "\e6b2" +} + +.el-icon-goblet-square:before { + content: "\e6b3" +} + +.el-icon-goblet-full:before { + content: "\e6b4" +} + +.el-icon-goblet:before { + content: "\e6b5" +} + +.el-icon-cold-drink:before { + content: "\e6b6" +} + +.el-icon-coffee-cup:before { + content: "\e6b8" +} + +.el-icon-water-cup:before { + content: "\e6b9" +} + +.el-icon-hot-water:before { + content: "\e6ba" +} + +.el-icon-ice-cream:before { + content: "\e6bb" +} + +.el-icon-dessert:before { + content: "\e6bc" +} + +.el-icon-sugar:before { + content: "\e6bd" +} + +.el-icon-tableware:before { + content: "\e6be" +} + +.el-icon-burger:before { + content: "\e6bf" +} + +.el-icon-knife-fork:before { + content: "\e6c1" +} + +.el-icon-fork-spoon:before { + content: "\e6c2" +} + +.el-icon-chicken:before { + content: "\e6c3" +} + +.el-icon-food:before { + content: "\e6c4" +} + +.el-icon-dish-1:before { + content: "\e6c5" +} + +.el-icon-dish:before { + content: "\e6c6" +} + +.el-icon-moon-night:before { + content: "\e6ee" +} + +.el-icon-moon:before { + content: "\e6f0" +} + +.el-icon-cloudy-and-sunny:before { + content: "\e6f1" +} + +.el-icon-partly-cloudy:before { + content: "\e6f2" +} + +.el-icon-cloudy:before { + content: "\e6f3" +} + +.el-icon-sunny:before { + content: "\e6f6" +} + +.el-icon-sunset:before { + content: "\e6f7" +} + +.el-icon-sunrise-1:before { + content: "\e6f8" +} + +.el-icon-sunrise:before { + content: "\e6f9" +} + +.el-icon-heavy-rain:before { + content: "\e6fa" +} + +.el-icon-lightning:before { + content: "\e6fb" +} + +.el-icon-light-rain:before { + content: "\e6fc" +} + +.el-icon-wind-power:before { + content: "\e6fd" +} + +.el-icon-baseball:before { + content: "\e712" +} + +.el-icon-soccer:before { + content: "\e713" +} + +.el-icon-football:before { + content: "\e715" +} + +.el-icon-basketball:before { + content: "\e716" +} + +.el-icon-ship:before { + content: "\e73f" +} + +.el-icon-truck:before { + content: "\e740" +} + +.el-icon-bicycle:before { + content: "\e741" +} + +.el-icon-mobile-phone:before { + content: "\e6d3" +} + +.el-icon-service:before { + content: "\e6d4" +} + +.el-icon-key:before { + content: "\e6e2" +} + +.el-icon-unlock:before { + content: "\e6e4" +} + +.el-icon-lock:before { + content: "\e6e5" +} + +.el-icon-watch:before { + content: "\e6fe" +} + +.el-icon-watch-1:before { + content: "\e6ff" +} + +.el-icon-timer:before { + content: "\e702" +} + +.el-icon-alarm-clock:before { + content: "\e703" +} + +.el-icon-map-location:before { + content: "\e704" +} + +.el-icon-delete-location:before { + content: "\e705" +} + +.el-icon-add-location:before { + content: "\e706" +} + +.el-icon-location-information:before { + content: "\e707" +} + +.el-icon-location-outline:before { + content: "\e708" +} + +.el-icon-location:before { + content: "\e79e" +} + +.el-icon-place:before { + content: "\e709" +} + +.el-icon-discover:before { + content: "\e70a" +} + +.el-icon-first-aid-kit:before { + content: "\e70b" +} + +.el-icon-trophy-1:before { + content: "\e70c" +} + +.el-icon-trophy:before { + content: "\e70d" +} + +.el-icon-medal:before { + content: "\e70e" +} + +.el-icon-medal-1:before { + content: "\e70f" +} + +.el-icon-stopwatch:before { + content: "\e710" +} + +.el-icon-mic:before { + content: "\e711" +} + +.el-icon-copy-document:before { + content: "\e718" +} + +.el-icon-full-screen:before { + content: "\e719" +} + +.el-icon-switch-button:before { + content: "\e71b" +} + +.el-icon-aim:before { + content: "\e71c" +} + +.el-icon-crop:before { + content: "\e71d" +} + +.el-icon-odometer:before { + content: "\e71e" +} + +.el-icon-time:before { + content: "\e71f" +} + +.el-icon-bangzhu:before { + content: "\e724" +} + +.el-icon-close-notification:before { + content: "\e726" +} + +.el-icon-microphone:before { + content: "\e727" +} + +.el-icon-turn-off-microphone:before { + content: "\e728" +} + +.el-icon-position:before { + content: "\e729" +} + +.el-icon-postcard:before { + content: "\e72a" +} + +.el-icon-message:before { + content: "\e72b" +} + +.el-icon-chat-line-square:before { + content: "\e72d" +} + +.el-icon-chat-dot-square:before { + content: "\e72e" +} + +.el-icon-chat-dot-round:before { + content: "\e72f" +} + +.el-icon-chat-square:before { + content: "\e730" +} + +.el-icon-chat-line-round:before { + content: "\e731" +} + +.el-icon-chat-round:before { + content: "\e732" +} + +.el-icon-set-up:before { + content: "\e733" +} + +.el-icon-turn-off:before { + content: "\e734" +} + +.el-icon-open:before { + content: "\e735" +} + +.el-icon-connection:before { + content: "\e736" +} + +.el-icon-link:before { + content: "\e737" +} + +.el-icon-cpu:before { + content: "\e738" +} + +.el-icon-thumb:before { + content: "\e739" +} + +.el-icon-female:before { + content: "\e73a" +} + +.el-icon-male:before { + content: "\e73b" +} + +.el-icon-guide:before { + content: "\e73c" +} + +.el-icon-news:before { + content: "\e73e" +} + +.el-icon-price-tag:before { + content: "\e744" +} + +.el-icon-discount:before { + content: "\e745" +} + +.el-icon-wallet:before { + content: "\e747" +} + +.el-icon-coin:before { + content: "\e748" +} + +.el-icon-money:before { + content: "\e749" +} + +.el-icon-bank-card:before { + content: "\e74a" +} + +.el-icon-box:before { + content: "\e74b" +} + +.el-icon-present:before { + content: "\e74c" +} + +.el-icon-sell:before { + content: "\e6d5" +} + +.el-icon-sold-out:before { + content: "\e6d6" +} + +.el-icon-shopping-bag-2:before { + content: "\e74d" +} + +.el-icon-shopping-bag-1:before { + content: "\e74e" +} + +.el-icon-shopping-cart-2:before { + content: "\e74f" +} + +.el-icon-shopping-cart-1:before { + content: "\e750" +} + +.el-icon-shopping-cart-full:before { + content: "\e751" +} + +.el-icon-smoking:before { + content: "\e752" +} + +.el-icon-no-smoking:before { + content: "\e753" +} + +.el-icon-house:before { + content: "\e754" +} + +.el-icon-table-lamp:before { + content: "\e755" +} + +.el-icon-school:before { + content: "\e756" +} + +.el-icon-office-building:before { + content: "\e757" +} + +.el-icon-toilet-paper:before { + content: "\e758" +} + +.el-icon-notebook-2:before { + content: "\e759" +} + +.el-icon-notebook-1:before { + content: "\e75a" +} + +.el-icon-files:before { + content: "\e75b" +} + +.el-icon-collection:before { + content: "\e75c" +} + +.el-icon-receiving:before { + content: "\e75d" +} + +.el-icon-suitcase-1:before { + content: "\e760" +} + +.el-icon-suitcase:before { + content: "\e761" +} + +.el-icon-film:before { + content: "\e763" +} + +.el-icon-collection-tag:before { + content: "\e765" +} + +.el-icon-data-analysis:before { + content: "\e766" +} + +.el-icon-pie-chart:before { + content: "\e767" +} + +.el-icon-data-board:before { + content: "\e768" +} + +.el-icon-data-line:before { + content: "\e76d" +} + +.el-icon-reading:before { + content: "\e769" +} + +.el-icon-magic-stick:before { + content: "\e76a" +} + +.el-icon-coordinate:before { + content: "\e76b" +} + +.el-icon-mouse:before { + content: "\e76c" +} + +.el-icon-brush:before { + content: "\e76e" +} + +.el-icon-headset:before { + content: "\e76f" +} + +.el-icon-umbrella:before { + content: "\e770" +} + +.el-icon-scissors:before { + content: "\e771" +} + +.el-icon-mobile:before { + content: "\e773" +} + +.el-icon-attract:before { + content: "\e774" +} + +.el-icon-monitor:before { + content: "\e775" +} + +.el-icon-search:before { + content: "\e778" +} + +.el-icon-takeaway-box:before { + content: "\e77a" +} + +.el-icon-paperclip:before { + content: "\e77d" +} + +.el-icon-printer:before { + content: "\e77e" +} + +.el-icon-document-add:before { + content: "\e782" +} + +.el-icon-document:before { + content: "\e785" +} + +.el-icon-document-checked:before { + content: "\e786" +} + +.el-icon-document-copy:before { + content: "\e787" +} + +.el-icon-document-delete:before { + content: "\e788" +} + +.el-icon-document-remove:before { + content: "\e789" +} + +.el-icon-tickets:before { + content: "\e78b" +} + +.el-icon-folder-checked:before { + content: "\e77f" +} + +.el-icon-folder-delete:before { + content: "\e780" +} + +.el-icon-folder-remove:before { + content: "\e781" +} + +.el-icon-folder-add:before { + content: "\e783" +} + +.el-icon-folder-opened:before { + content: "\e784" +} + +.el-icon-folder:before { + content: "\e78a" +} + +.el-icon-edit-outline:before { + content: "\e764" +} + +.el-icon-edit:before { + content: "\e78c" +} + +.el-icon-date:before { + content: "\e78e" +} + +.el-icon-c-scale-to-original:before { + content: "\e7c6" +} + +.el-icon-view:before { + content: "\e6ce" +} + +.el-icon-loading:before { + content: "\e6cf" +} + +.el-icon-rank:before { + content: "\e6d1" +} + +.el-icon-sort-down:before { + content: "\e7c4" +} + +.el-icon-sort-up:before { + content: "\e7c5" +} + +.el-icon-sort:before { + content: "\e6d2" +} + +.el-icon-finished:before { + content: "\e6cd" +} + +.el-icon-refresh-left:before { + content: "\e6c7" +} + +.el-icon-refresh-right:before { + content: "\e6c8" +} + +.el-icon-refresh:before { + content: "\e6d0" +} + +.el-icon-video-play:before { + content: "\e7c0" +} + +.el-icon-video-pause:before { + content: "\e7c1" +} + +.el-icon-d-arrow-right:before { + content: "\e6dc" +} + +.el-icon-d-arrow-left:before { + content: "\e6dd" +} + +.el-icon-arrow-up:before { + content: "\e6e1" +} + +.el-icon-arrow-down:before { + content: "\e6df" +} + +.el-icon-arrow-right:before { + content: "\e6e0" +} + +.el-icon-arrow-left:before { + content: "\e6de" +} + +.el-icon-top-right:before { + content: "\e6e7" +} + +.el-icon-top-left:before { + content: "\e6e8" +} + +.el-icon-top:before { + content: "\e6e6" +} + +.el-icon-bottom:before { + content: "\e6eb" +} + +.el-icon-right:before { + content: "\e6e9" +} + +.el-icon-back:before { + content: "\e6ea" +} + +.el-icon-bottom-right:before { + content: "\e6ec" +} + +.el-icon-bottom-left:before { + content: "\e6ed" +} + +.el-icon-caret-top:before { + content: "\e78f" +} + +.el-icon-caret-bottom:before { + content: "\e790" +} + +.el-icon-caret-right:before { + content: "\e791" +} + +.el-icon-caret-left:before { + content: "\e792" +} + +.el-icon-d-caret:before { + content: "\e79a" +} + +.el-icon-share:before { + content: "\e793" +} + +.el-icon-menu:before { + content: "\e798" +} + +.el-icon-s-grid:before { + content: "\e7a6" +} + +.el-icon-s-check:before { + content: "\e7a7" +} + +.el-icon-s-data:before { + content: "\e7a8" +} + +.el-icon-s-opportunity:before { + content: "\e7aa" +} + +.el-icon-s-custom:before { + content: "\e7ab" +} + +.el-icon-s-claim:before { + content: "\e7ad" +} + +.el-icon-s-finance:before { + content: "\e7ae" +} + +.el-icon-s-comment:before { + content: "\e7af" +} + +.el-icon-s-flag:before { + content: "\e7b0" +} + +.el-icon-s-marketing:before { + content: "\e7b1" +} + +.el-icon-s-shop:before { + content: "\e7b4" +} + +.el-icon-s-open:before { + content: "\e7b5" +} + +.el-icon-s-management:before { + content: "\e7b6" +} + +.el-icon-s-ticket:before { + content: "\e7b7" +} + +.el-icon-s-release:before { + content: "\e7b8" +} + +.el-icon-s-home:before { + content: "\e7b9" +} + +.el-icon-s-promotion:before { + content: "\e7ba" +} + +.el-icon-s-operation:before { + content: "\e7bb" +} + +.el-icon-s-unfold:before { + content: "\e7bc" +} + +.el-icon-s-fold:before { + content: "\e7a9" +} + +.el-icon-s-platform:before { + content: "\e7bd" +} + +.el-icon-s-order:before { + content: "\e7be" +} + +.el-icon-s-cooperation:before { + content: "\e7bf" +} + +.el-icon-bell:before { + content: "\e725" +} + +.el-icon-message-solid:before { + content: "\e799" +} + +.el-icon-video-camera:before { + content: "\e772" +} + +.el-icon-video-camera-solid:before { + content: "\e796" +} + +.el-icon-camera:before { + content: "\e779" +} + +.el-icon-camera-solid:before { + content: "\e79b" +} + +.el-icon-download:before { + content: "\e77c" +} + +.el-icon-upload2:before { + content: "\e77b" +} + +.el-icon-upload:before { + content: "\e7c3" +} + +.el-icon-picture-outline-round:before { + content: "\e75f" +} + +.el-icon-picture-outline:before { + content: "\e75e" +} + +.el-icon-picture:before { + content: "\e79f" +} + +.el-icon-close:before { + content: "\e6db" +} + +.el-icon-check:before { + content: "\e6da" +} + +.el-icon-plus:before { + content: "\e6d9" +} + +.el-icon-minus:before { + content: "\e6d8" +} + +.el-icon-help:before { + content: "\e73d" +} + +.el-icon-s-help:before { + content: "\e7b3" +} + +.el-icon-circle-close:before { + content: "\e78d" +} + +.el-icon-circle-check:before { + content: "\e720" +} + +.el-icon-circle-plus-outline:before { + content: "\e723" +} + +.el-icon-remove-outline:before { + content: "\e722" +} + +.el-icon-zoom-out:before { + content: "\e776" +} + +.el-icon-zoom-in:before { + content: "\e777" +} + +.el-icon-error:before { + content: "\e79d" +} + +.el-icon-success:before { + content: "\e79c" +} + +.el-icon-circle-plus:before { + content: "\e7a0" +} + +.el-icon-remove:before { + content: "\e7a2" +} + +.el-icon-info:before { + content: "\e7a1" +} + +.el-icon-question:before { + content: "\e7a4" +} + +.el-icon-warning-outline:before { + content: "\e6c9" +} + +.el-icon-warning:before { + content: "\e7a3" +} + +.el-icon-goods:before { + content: "\e7c2" +} + +.el-icon-s-goods:before { + content: "\e7b2" +} + +.el-icon-star-off:before { + content: "\e717" +} + +.el-icon-star-on:before { + content: "\e797" +} + +.el-icon-more-outline:before { + content: "\e6cc" +} + +.el-icon-more:before { + content: "\e794" +} + +.el-icon-phone-outline:before { + content: "\e6cb" +} + +.el-icon-phone:before { + content: "\e795" +} + +.el-icon-user:before { + content: "\e6e3" +} + +.el-icon-user-solid:before { + content: "\e7a5" +} + +.el-icon-setting:before { + content: "\e6ca" +} + +.el-icon-s-tools:before { + content: "\e7ac" +} + +.el-icon-delete:before { + content: "\e6d7" +} + +.el-icon-delete-solid:before { + content: "\e7c9" +} + +.el-icon-eleme:before { + content: "\e7c7" +} + +.el-icon-platform-eleme:before { + content: "\e7ca" +} + +.el-icon-loading { + -webkit-animation: rotating 2s linear infinite; + animation: rotating 2s linear infinite +} + +.el-icon--right { + margin-left: 5px +} + +.el-icon--left { + margin-right: 5px +} + +@-webkit-keyframes rotating { + 0% { + -webkit-transform: rotateZ(0); + transform: rotateZ(0) + } + 100% { + -webkit-transform: rotateZ(360deg); + transform: rotateZ(360deg) + } +} + +@keyframes rotating { + 0% { + -webkit-transform: rotateZ(0); + transform: rotateZ(0) + } + 100% { + -webkit-transform: rotateZ(360deg); + transform: rotateZ(360deg) + } +} + +.el-pagination { + white-space: nowrap; + padding: 2px 5px; + color: #303133; + font-weight: 700 +} + +.el-pagination::after, .el-pagination::before { + display: table; + content: "" +} + +.el-pagination::after { + clear: both +} + +.el-pagination button, .el-pagination span:not([class*=suffix]) { + display: inline-block; + font-size: 13px; + min-width: 35.5px; + height: 28px; + line-height: 28px; + vertical-align: top; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-pagination .el-input__inner { + text-align: center; + -moz-appearance: textfield; + line-height: normal +} + +.el-pagination .el-input__suffix { + right: 0; + -webkit-transform: scale(.8); + transform: scale(.8) +} + +.el-pagination .el-select .el-input { + width: 100px; + margin: 0 5px +} + +.el-pagination .el-select .el-input .el-input__inner { + padding-right: 25px; + border-radius: 3px +} + +.el-pagination button { + border: none; + padding: 0 6px; + background: 0 0 +} + +.el-pagination button:focus { + outline: 0 +} + +.el-pagination button:hover { + color: #409EFF +} + +.el-pagination button:disabled { + color: #C0C4CC; + background-color: #FFF; + cursor: not-allowed +} + +.el-pagination .btn-next, .el-pagination .btn-prev { + background: center center no-repeat #FFF; + background-size: 16px; + cursor: pointer; + margin: 0; + color: #303133 +} + +.el-pagination .btn-next .el-icon, .el-pagination .btn-prev .el-icon { + display: block; + font-size: 12px; + font-weight: 700 +} + +.el-pagination .btn-prev { + padding-right: 12px +} + +.el-pagination .btn-next { + padding-left: 12px +} + +.el-pagination .el-pager li.disabled { + color: #C0C4CC; + cursor: not-allowed +} + +.el-pager li, .el-pager li.btn-quicknext:hover, .el-pager li.btn-quickprev:hover { + cursor: pointer +} + +.el-pagination--small .btn-next, .el-pagination--small .btn-prev, .el-pagination--small .el-pager li, .el-pagination--small .el-pager li.btn-quicknext, .el-pagination--small .el-pager li.btn-quickprev, .el-pagination--small .el-pager li:last-child { + border-color: transparent; + font-size: 12px; + line-height: 22px; + height: 22px; + min-width: 22px +} + +.el-pagination--small .arrow.disabled { + visibility: hidden +} + +.el-pagination--small .more::before, .el-pagination--small li.more::before { + line-height: 24px +} + +.el-pagination--small button, .el-pagination--small span:not([class*=suffix]) { + height: 22px; + line-height: 22px +} + +.el-pagination--small .el-pagination__editor, .el-pagination--small .el-pagination__editor.el-input .el-input__inner { + height: 22px +} + +.el-pagination__sizes { + margin: 0 10px 0 0; + font-weight: 400; + color: #606266 +} + +.el-pagination__sizes .el-input .el-input__inner { + font-size: 13px; + padding-left: 8px +} + +.el-pagination__sizes .el-input .el-input__inner:hover { + border-color: #409EFF +} + +.el-pagination__total { + margin-right: 10px; + font-weight: 400; + color: #606266 +} + +.el-pagination__jump { + margin-left: 24px; + font-weight: 400; + color: #606266 +} + +.el-pagination__jump .el-input__inner { + padding: 0 3px +} + +.el-pagination__rightwrapper { + float: right +} + +.el-pagination__editor { + line-height: 18px; + padding: 0 2px; + height: 28px; + text-align: center; + margin: 0 2px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 3px +} + +.el-pager, .el-pagination.is-background .btn-next, .el-pagination.is-background .btn-prev { + padding: 0 +} + +.el-dialog, .el-pager li { + -webkit-box-sizing: border-box +} + +.el-pagination__editor.el-input { + width: 50px +} + +.el-pagination__editor.el-input .el-input__inner { + height: 28px +} + +.el-pagination__editor .el-input__inner::-webkit-inner-spin-button, .el-pagination__editor .el-input__inner::-webkit-outer-spin-button { + -webkit-appearance: none; + margin: 0 +} + +.el-pagination.is-background .btn-next, .el-pagination.is-background .btn-prev, .el-pagination.is-background .el-pager li { + margin: 0 5px; + background-color: #f4f4f5; + color: #606266; + min-width: 30px; + border-radius: 2px +} + +.el-pagination.is-background .btn-next.disabled, .el-pagination.is-background .btn-next:disabled, .el-pagination.is-background .btn-prev.disabled, .el-pagination.is-background .btn-prev:disabled, .el-pagination.is-background .el-pager li.disabled { + color: #C0C4CC +} + +.el-pagination.is-background .el-pager li:not(.disabled):hover { + color: #409EFF +} + +.el-pagination.is-background .el-pager li:not(.disabled).active { + background-color: #409EFF; + color: #FFF +} + +.el-pagination.is-background.el-pagination--small .btn-next, .el-pagination.is-background.el-pagination--small .btn-prev, .el-pagination.is-background.el-pagination--small .el-pager li { + margin: 0 3px; + min-width: 22px +} + +.el-pager, .el-pager li { + vertical-align: top; + margin: 0; + display: inline-block +} + +.el-pager { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + list-style: none; + font-size: 0 +} + +.el-pager .more::before { + line-height: 30px +} + +.el-pager li { + padding: 0 4px; + background: #FFF; + font-size: 13px; + min-width: 35.5px; + height: 28px; + line-height: 28px; + box-sizing: border-box; + text-align: center +} + +.el-pager li.btn-quicknext, .el-pager li.btn-quickprev { + line-height: 28px; + color: #303133 +} + +.el-pager li.btn-quicknext.disabled, .el-pager li.btn-quickprev.disabled { + color: #C0C4CC +} + +.el-pager li.active + li { + border-left: 0 +} + +.el-pager li:hover { + color: #409EFF +} + +.el-pager li.active { + color: #409EFF; + cursor: default +} + +@-webkit-keyframes v-modal-in { + 0% { + opacity: 0 + } +} + +@-webkit-keyframes v-modal-out { + 100% { + opacity: 0 + } +} + +.el-dialog { + position: relative; + margin: 0 auto 50px; + background: #FFF; + border-radius: 2px; + -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, .3); + box-shadow: 0 1px 3px rgba(0, 0, 0, .3); + box-sizing: border-box; + width: 50% +} + +.el-dialog.is-fullscreen { + width: 100%; + margin-top: 0; + margin-bottom: 0; + height: 100%; + overflow: auto +} + +.el-dialog__wrapper { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + overflow: auto; + margin: 0 +} + +.el-dialog__header { + padding: 20px 20px 10px +} + +.el-dialog__headerbtn { + position: absolute; + top: 20px; + right: 20px; + padding: 0; + background: 0 0; + border: none; + outline: 0; + cursor: pointer; + font-size: 16px +} + +.el-dialog__headerbtn .el-dialog__close { + color: #909399 +} + +.el-dialog__headerbtn:focus .el-dialog__close, .el-dialog__headerbtn:hover .el-dialog__close { + color: #409EFF +} + +.el-dialog__title { + line-height: 24px; + font-size: 18px; + color: #303133 +} + +.el-dialog__body { + padding: 30px 20px; + color: #606266; + font-size: 14px; + word-break: break-all +} + +.el-dialog__footer { + padding: 10px 20px 20px; + text-align: right; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-dialog--center { + text-align: center +} + +.el-dialog--center .el-dialog__body { + text-align: initial; + padding: 25px 25px 30px +} + +.el-dialog--center .el-dialog__footer { + text-align: inherit +} + +.dialog-fade-enter-active { + -webkit-animation: dialog-fade-in .3s; + animation: dialog-fade-in .3s +} + +.dialog-fade-leave-active { + -webkit-animation: dialog-fade-out .3s; + animation: dialog-fade-out .3s +} + +@-webkit-keyframes dialog-fade-in { + 0% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0 + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1 + } +} + +@keyframes dialog-fade-in { + 0% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0 + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1 + } +} + +@-webkit-keyframes dialog-fade-out { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1 + } + 100% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0 + } +} + +@keyframes dialog-fade-out { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1 + } + 100% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0 + } +} + +.el-autocomplete { + position: relative; + display: inline-block +} + +.el-autocomplete-suggestion { + margin: 5px 0; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1); + border-radius: 4px; + border: 1px solid #E4E7ED; + -webkit-box-sizing: border-box; + box-sizing: border-box; + background-color: #FFF +} + +.el-autocomplete-suggestion__wrap { + max-height: 280px; + padding: 10px 0; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-autocomplete-suggestion__list { + margin: 0; + padding: 0 +} + +.el-autocomplete-suggestion li { + padding: 0 20px; + margin: 0; + line-height: 34px; + cursor: pointer; + color: #606266; + font-size: 14px; + list-style: none; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis +} + +.el-autocomplete-suggestion li.highlighted, .el-autocomplete-suggestion li:hover { + background-color: #F5F7FA +} + +.el-autocomplete-suggestion li.divider { + margin-top: 6px; + border-top: 1px solid #000 +} + +.el-autocomplete-suggestion li.divider:last-child { + margin-bottom: -6px +} + +.el-autocomplete-suggestion.is-loading li { + text-align: center; + height: 100px; + line-height: 100px; + font-size: 20px; + color: #999 +} + +.el-autocomplete-suggestion.is-loading li::after { + display: inline-block; + content: ""; + height: 100%; + vertical-align: middle +} + +.el-autocomplete-suggestion.is-loading li:hover { + background-color: #FFF +} + +.el-autocomplete-suggestion.is-loading .el-icon-loading { + vertical-align: middle +} + +.el-dropdown { + display: inline-block; + position: relative; + color: #606266; + font-size: 14px +} + +.el-dropdown .el-button-group { + display: block +} + +.el-dropdown .el-button-group .el-button { + float: none +} + +.el-dropdown .el-dropdown__caret-button { + padding-left: 5px; + padding-right: 5px; + position: relative; + border-left: none +} + +.el-dropdown .el-dropdown__caret-button::before { + content: ''; + position: absolute; + display: block; + width: 1px; + top: 5px; + bottom: 5px; + left: 0; + background: rgba(255, 255, 255, .5) +} + +.el-dropdown .el-dropdown__caret-button.el-button--default::before { + background: rgba(220, 223, 230, .5) +} + +.el-dropdown .el-dropdown__caret-button:hover:not(.is-disabled)::before { + top: 0; + bottom: 0 +} + +.el-dropdown .el-dropdown__caret-button .el-dropdown__icon { + padding-left: 0 +} + +.el-dropdown__icon { + font-size: 12px; + margin: 0 3px +} + +.el-dropdown .el-dropdown-selfdefine:focus:active, .el-dropdown .el-dropdown-selfdefine:focus:not(.focusing) { + outline-width: 0 +} + +.el-dropdown [disabled] { + cursor: not-allowed; + color: #bbb +} + +.el-dropdown-menu { + position: absolute; + top: 0; + left: 0; + z-index: 10; + padding: 10px 0; + margin: 5px 0; + background-color: #FFF; + border: 1px solid #EBEEF5; + border-radius: 4px; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1) +} + +.el-dropdown-menu__item, .el-menu-item { + font-size: 14px; + padding: 0 20px; + cursor: pointer +} + +.el-dropdown-menu__item { + list-style: none; + line-height: 36px; + margin: 0; + color: #606266; + outline: 0 +} + +.el-dropdown-menu__item:focus, .el-dropdown-menu__item:not(.is-disabled):hover { + background-color: #ecf5ff; + color: #66b1ff +} + +.el-dropdown-menu__item i { + margin-right: 5px +} + +.el-dropdown-menu__item--divided { + position: relative; + margin-top: 6px; + border-top: 1px solid #EBEEF5 +} + +.el-dropdown-menu__item--divided:before { + content: ''; + height: 6px; + display: block; + margin: 0 -20px; + background-color: #FFF +} + +.el-dropdown-menu__item.is-disabled { + cursor: default; + color: #bbb; + pointer-events: none +} + +.el-dropdown-menu--medium { + padding: 6px 0 +} + +.el-dropdown-menu--medium .el-dropdown-menu__item { + line-height: 30px; + padding: 0 17px; + font-size: 14px +} + +.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided { + margin-top: 6px +} + +.el-dropdown-menu--medium .el-dropdown-menu__item.el-dropdown-menu__item--divided:before { + height: 6px; + margin: 0 -17px +} + +.el-dropdown-menu--small { + padding: 6px 0 +} + +.el-dropdown-menu--small .el-dropdown-menu__item { + line-height: 27px; + padding: 0 15px; + font-size: 13px +} + +.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided { + margin-top: 4px +} + +.el-dropdown-menu--small .el-dropdown-menu__item.el-dropdown-menu__item--divided:before { + height: 4px; + margin: 0 -15px +} + +.el-dropdown-menu--mini { + padding: 3px 0 +} + +.el-dropdown-menu--mini .el-dropdown-menu__item { + line-height: 24px; + padding: 0 10px; + font-size: 12px +} + +.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided { + margin-top: 3px +} + +.el-dropdown-menu--mini .el-dropdown-menu__item.el-dropdown-menu__item--divided:before { + height: 3px; + margin: 0 -10px +} + +.el-menu { + border-right: solid 1px #e6e6e6; + list-style: none; + position: relative; + margin: 0; + padding-left: 0; + background-color: #FFF +} + +.el-menu--horizontal > .el-menu-item:not(.is-disabled):focus, .el-menu--horizontal > .el-menu-item:not(.is-disabled):hover, .el-menu--horizontal > .el-submenu .el-submenu__title:hover { + background-color: #fff +} + +.el-menu::after, .el-menu::before { + display: table; + content: "" +} + +.el-breadcrumb__item:last-child .el-breadcrumb__separator, .el-menu--collapse > .el-menu-item .el-submenu__icon-arrow, .el-menu--collapse > .el-submenu > .el-submenu__title .el-submenu__icon-arrow { + display: none +} + +.el-menu::after { + clear: both +} + +.el-menu.el-menu--horizontal { + border-bottom: solid 1px #e6e6e6 +} + +.el-menu--horizontal { + border-right: none +} + +.el-menu--horizontal > .el-menu-item { + float: left; + height: 60px; + line-height: 60px; + margin: 0; + border-bottom: 2px solid transparent; + color: #909399 +} + +.el-menu--horizontal > .el-menu-item a, .el-menu--horizontal > .el-menu-item a:hover { + color: inherit +} + +.el-menu--horizontal > .el-submenu { + float: left +} + +.el-menu--horizontal > .el-submenu:focus, .el-menu--horizontal > .el-submenu:hover { + outline: 0 +} + +.el-menu--horizontal > .el-submenu:focus .el-submenu__title, .el-menu--horizontal > .el-submenu:hover .el-submenu__title { + color: #303133 +} + +.el-menu--horizontal > .el-submenu.is-active .el-submenu__title { + border-bottom: 2px solid #409EFF; + color: #303133 +} + +.el-menu--horizontal > .el-submenu .el-submenu__title { + height: 60px; + line-height: 60px; + border-bottom: 2px solid transparent; + color: #909399 +} + +.el-menu--horizontal > .el-submenu .el-submenu__icon-arrow { + position: static; + vertical-align: middle; + margin-left: 8px; + margin-top: -3px +} + +.el-menu--collapse .el-submenu, .el-menu-item { + position: relative +} + +.el-menu--horizontal .el-menu .el-menu-item, .el-menu--horizontal .el-menu .el-submenu__title { + background-color: #FFF; + float: none; + height: 36px; + line-height: 36px; + padding: 0 10px; + color: #909399 +} + +.el-menu--horizontal .el-menu .el-menu-item.is-active, .el-menu--horizontal .el-menu .el-submenu.is-active > .el-submenu__title { + color: #303133 +} + +.el-menu--horizontal .el-menu-item:not(.is-disabled):focus, .el-menu--horizontal .el-menu-item:not(.is-disabled):hover { + outline: 0; + color: #303133 +} + +.el-menu--horizontal > .el-menu-item.is-active { + border-bottom: 2px solid #409EFF; + color: #303133 +} + +.el-menu--collapse { + width: 64px +} + +.el-menu--collapse > .el-menu-item [class^=el-icon-], .el-menu--collapse > .el-submenu > .el-submenu__title [class^=el-icon-] { + margin: 0; + vertical-align: middle; + width: 24px; + text-align: center +} + +.el-menu--collapse > .el-menu-item span, .el-menu--collapse > .el-submenu > .el-submenu__title span { + height: 0; + width: 0; + overflow: hidden; + visibility: hidden; + display: inline-block +} + +.el-menu-item, .el-submenu__title { + height: 56px; + line-height: 56px; + list-style: none +} + +.el-menu--collapse > .el-menu-item.is-active i { + color: inherit +} + +.el-menu--collapse .el-menu .el-submenu { + min-width: 200px +} + +.el-menu--collapse .el-submenu .el-menu { + position: absolute; + margin-left: 5px; + top: 0; + left: 100%; + z-index: 10; + border: 1px solid #E4E7ED; + border-radius: 2px; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1) +} + +.el-menu--collapse .el-submenu.is-opened > .el-submenu__title .el-submenu__icon-arrow { + -webkit-transform: none; + transform: none +} + +.el-menu--popup { + z-index: 100; + min-width: 200px; + border: none; + padding: 5px 0; + border-radius: 2px; + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1); + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1) +} + +.el-menu--popup-bottom-start { + margin-top: 5px +} + +.el-menu--popup-right-start { + margin-left: 5px; + margin-right: 5px +} + +.el-menu-item { + color: #303133; + -webkit-transition: border-color .3s, background-color .3s, color .3s; + transition: border-color .3s, background-color .3s, color .3s; + -webkit-box-sizing: border-box; + box-sizing: border-box; + white-space: nowrap +} + +.el-radio-button__inner, .el-submenu__title { + -webkit-box-sizing: border-box; + position: relative; + white-space: nowrap +} + +.el-menu-item * { + vertical-align: middle +} + +.el-menu-item i { + color: #909399 +} + +.el-menu-item:focus, .el-menu-item:hover { + outline: 0; + background-color: #ecf5ff +} + +.el-menu-item.is-disabled { + opacity: .25; + cursor: not-allowed; + background: 0 0 !important +} + +.el-menu-item [class^=el-icon-] { + margin-right: 5px; + width: 24px; + text-align: center; + font-size: 18px; + vertical-align: middle +} + +.el-menu-item.is-active { + color: #409EFF +} + +.el-menu-item.is-active i { + color: inherit +} + +.el-submenu { + list-style: none; + margin: 0; + padding-left: 0 +} + +.el-submenu__title { + font-size: 14px; + color: #303133; + padding: 0 20px; + cursor: pointer; + -webkit-transition: border-color .3s, background-color .3s, color .3s; + transition: border-color .3s, background-color .3s, color .3s; + box-sizing: border-box +} + +.el-submenu__title * { + vertical-align: middle +} + +.el-submenu__title i { + color: #909399 +} + +.el-submenu__title:focus, .el-submenu__title:hover { + outline: 0; + background-color: #ecf5ff +} + +.el-submenu__title.is-disabled { + opacity: .25; + cursor: not-allowed; + background: 0 0 !important +} + +.el-submenu__title:hover { + background-color: #ecf5ff +} + +.el-submenu .el-menu { + border: none +} + +.el-submenu .el-menu-item { + height: 50px; + line-height: 50px; + padding: 0 45px; + min-width: 200px +} + +.el-submenu__icon-arrow { + position: absolute; + top: 50%; + right: 20px; + margin-top: -7px; + -webkit-transition: -webkit-transform .3s; + transition: -webkit-transform .3s; + transition: transform .3s; + transition: transform .3s, -webkit-transform .3s; + font-size: 12px +} + +.el-submenu.is-active .el-submenu__title { + border-bottom-color: #409EFF +} + +.el-submenu.is-opened > .el-submenu__title .el-submenu__icon-arrow { + -webkit-transform: rotateZ(180deg); + transform: rotateZ(180deg) +} + +.el-submenu.is-disabled .el-menu-item, .el-submenu.is-disabled .el-submenu__title { + opacity: .25; + cursor: not-allowed; + background: 0 0 !important +} + +.el-submenu [class^=el-icon-] { + vertical-align: middle; + margin-right: 5px; + width: 24px; + text-align: center; + font-size: 18px +} + +.el-menu-item-group > ul { + padding: 0 +} + +.el-menu-item-group__title { + padding: 7px 0 7px 20px; + line-height: normal; + font-size: 12px; + color: #909399 +} + +.el-radio-button__inner, .el-radio-group { + display: inline-block; + line-height: 1; + vertical-align: middle +} + +.horizontal-collapse-transition .el-submenu__title .el-submenu__icon-arrow { + -webkit-transition: .2s; + transition: .2s; + opacity: 0 +} + +.el-radio-group { + font-size: 0 +} + +.el-radio-button { + position: relative; + display: inline-block; + outline: 0 +} + +.el-radio-button__inner { + background: #FFF; + border: 1px solid #DCDFE6; + font-weight: 500; + border-left: 0; + color: #606266; + -webkit-appearance: none; + text-align: center; + box-sizing: border-box; + outline: 0; + margin: 0; + cursor: pointer; + -webkit-transition: all .3s cubic-bezier(.645, .045, .355, 1); + transition: all .3s cubic-bezier(.645, .045, .355, 1); + padding: 12px 20px; + font-size: 14px; + border-radius: 0 +} + +.el-radio-button__inner.is-round { + padding: 12px 20px +} + +.el-radio-button__inner:hover { + color: #409EFF +} + +.el-radio-button__inner [class*=el-icon-] { + line-height: .9 +} + +.el-radio-button__inner [class*=el-icon-] + span { + margin-left: 5px +} + +.el-radio-button:first-child .el-radio-button__inner { + border-left: 1px solid #DCDFE6; + border-radius: 4px 0 0 4px; + -webkit-box-shadow: none !important; + box-shadow: none !important +} + +.el-radio-button__orig-radio { + opacity: 0; + outline: 0; + position: absolute; + z-index: -1 +} + +.el-radio-button__orig-radio:checked + .el-radio-button__inner { + color: #FFF; + background-color: #409EFF; + border-color: #409EFF; + -webkit-box-shadow: -1px 0 0 0 #409EFF; + box-shadow: -1px 0 0 0 #409EFF +} + +.el-radio-button__orig-radio:disabled + .el-radio-button__inner { + color: #C0C4CC; + cursor: not-allowed; + background-image: none; + background-color: #FFF; + border-color: #EBEEF5; + -webkit-box-shadow: none; + box-shadow: none +} + +.el-radio-button__orig-radio:disabled:checked + .el-radio-button__inner { + background-color: #F2F6FC +} + +.el-radio-button:last-child .el-radio-button__inner { + border-radius: 0 4px 4px 0 +} + +.el-radio-button:first-child:last-child .el-radio-button__inner { + border-radius: 4px +} + +.el-radio-button--medium .el-radio-button__inner { + padding: 10px 20px; + font-size: 14px; + border-radius: 0 +} + +.el-radio-button--medium .el-radio-button__inner.is-round { + padding: 10px 20px +} + +.el-radio-button--small .el-radio-button__inner { + padding: 9px 15px; + font-size: 12px; + border-radius: 0 +} + +.el-radio-button--small .el-radio-button__inner.is-round { + padding: 9px 15px +} + +.el-radio-button--mini .el-radio-button__inner { + padding: 7px 15px; + font-size: 12px; + border-radius: 0 +} + +.el-radio-button--mini .el-radio-button__inner.is-round { + padding: 7px 15px +} + +.el-radio-button:focus:not(.is-focus):not(:active):not(.is-disabled) { + -webkit-box-shadow: 0 0 2px 2px #409EFF; + box-shadow: 0 0 2px 2px #409EFF +} + +.el-picker-panel, .el-popover, .el-select-dropdown, .el-table-filter, .el-time-panel { + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1) +} + +.el-switch { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + position: relative; + font-size: 14px; + line-height: 20px; + height: 20px; + vertical-align: middle +} + +.el-switch__core, .el-switch__label { + display: inline-block; + cursor: pointer +} + +.el-switch.is-disabled .el-switch__core, .el-switch.is-disabled .el-switch__label { + cursor: not-allowed +} + +.el-switch__label { + -webkit-transition: .2s; + transition: .2s; + height: 20px; + font-size: 14px; + font-weight: 500; + vertical-align: middle; + color: #303133 +} + +.el-switch__label.is-active { + color: #409EFF +} + +.el-switch__label--left { + margin-right: 10px +} + +.el-switch__label--right { + margin-left: 10px +} + +.el-switch__label * { + line-height: 1; + font-size: 14px; + display: inline-block +} + +.el-switch__input { + position: absolute; + width: 0; + height: 0; + opacity: 0; + margin: 0 +} + +.el-switch__core { + margin: 0; + position: relative; + width: 40px; + height: 20px; + border: 1px solid #DCDFE6; + outline: 0; + border-radius: 10px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + background: #DCDFE6; + -webkit-transition: border-color .3s, background-color .3s; + transition: border-color .3s, background-color .3s; + vertical-align: middle +} + +.el-input__prefix, .el-input__suffix { + -webkit-transition: all .3s; + color: #C0C4CC +} + +.el-switch__core:after { + content: ""; + position: absolute; + top: 1px; + left: 1px; + border-radius: 100%; + -webkit-transition: all .3s; + transition: all .3s; + width: 16px; + height: 16px; + background-color: #FFF +} + +.el-switch.is-checked .el-switch__core { + border-color: #409EFF; + background-color: #409EFF +} + +.el-switch.is-checked .el-switch__core::after { + left: 100%; + margin-left: -17px +} + +.el-switch.is-disabled { + opacity: .6 +} + +.el-switch--wide .el-switch__label.el-switch__label--left span { + left: 10px +} + +.el-switch--wide .el-switch__label.el-switch__label--right span { + right: 10px +} + +.el-switch .label-fade-enter, .el-switch .label-fade-leave-active { + opacity: 0 +} + +.el-select-dropdown { + position: absolute; + z-index: 1001; + border: 1px solid #E4E7ED; + border-radius: 4px; + background-color: #FFF; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1); + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 5px 0 +} + +.el-select-dropdown.is-multiple .el-select-dropdown__item { + padding-right: 40px +} + +.el-select-dropdown.is-multiple .el-select-dropdown__item.selected { + color: #409EFF; + background-color: #FFF +} + +.el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover { + background-color: #F5F7FA +} + +.el-select-dropdown.is-multiple .el-select-dropdown__item.selected::after { + position: absolute; + right: 20px; + font-family: element-icons; + content: "\e6da"; + font-size: 12px; + font-weight: 700; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale +} + +.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list { + padding: 0 +} + +.el-select-dropdown__empty { + padding: 10px 0; + margin: 0; + text-align: center; + color: #999; + font-size: 14px +} + +.el-select-dropdown__wrap { + max-height: 274px +} + +.el-select-dropdown__list { + list-style: none; + padding: 6px 0; + margin: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-select-dropdown__item { + font-size: 14px; + padding: 0 20px; + position: relative; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #606266; + height: 34px; + line-height: 34px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + cursor: pointer +} + +.el-select-dropdown__item.is-disabled { + color: #C0C4CC; + cursor: not-allowed +} + +.el-select-dropdown__item.is-disabled:hover { + background-color: #FFF +} + +.el-select-dropdown__item.hover, .el-select-dropdown__item:hover { + background-color: #F5F7FA +} + +.el-select-dropdown__item.selected { + color: #409EFF; + font-weight: 700 +} + +.el-select-group { + margin: 0; + padding: 0 +} + +.el-select-group__wrap { + position: relative; + list-style: none; + margin: 0; + padding: 0 +} + +.el-select-group__wrap:not(:last-of-type) { + padding-bottom: 24px +} + +.el-select-group__wrap:not(:last-of-type)::after { + content: ''; + position: absolute; + display: block; + left: 20px; + right: 20px; + bottom: 12px; + height: 1px; + background: #E4E7ED +} + +.el-select-group__title { + padding-left: 20px; + font-size: 12px; + color: #909399; + line-height: 30px +} + +.el-select-group .el-select-dropdown__item { + padding-left: 20px +} + +.el-select { + display: inline-block; + position: relative +} + +.el-select .el-select__tags > span { + display: contents +} + +.el-select:hover .el-input__inner { + border-color: #C0C4CC +} + +.el-select .el-input__inner { + cursor: pointer; + padding-right: 35px +} + +.el-select .el-input__inner:focus { + border-color: #409EFF +} + +.el-select .el-input .el-select__caret { + color: #C0C4CC; + font-size: 14px; + -webkit-transition: -webkit-transform .3s; + transition: -webkit-transform .3s; + transition: transform .3s; + transition: transform .3s, -webkit-transform .3s; + -webkit-transform: rotateZ(180deg); + transform: rotateZ(180deg); + cursor: pointer +} + +.el-select .el-input .el-select__caret.is-reverse { + -webkit-transform: rotateZ(0); + transform: rotateZ(0) +} + +.el-select .el-input .el-select__caret.is-show-close { + font-size: 14px; + text-align: center; + -webkit-transform: rotateZ(180deg); + transform: rotateZ(180deg); + border-radius: 100%; + color: #C0C4CC; + -webkit-transition: color .2s cubic-bezier(.645, .045, .355, 1); + transition: color .2s cubic-bezier(.645, .045, .355, 1) +} + +.el-select .el-input .el-select__caret.is-show-close:hover { + color: #909399 +} + +.el-select .el-input.is-disabled .el-input__inner { + cursor: not-allowed +} + +.el-select .el-input.is-disabled .el-input__inner:hover { + border-color: #E4E7ED +} + +.el-range-editor.is-active, .el-range-editor.is-active:hover, .el-select .el-input.is-focus .el-input__inner { + border-color: #409EFF +} + +.el-select > .el-input { + display: block +} + +.el-select__input { + border: none; + outline: 0; + padding: 0; + margin-left: 15px; + color: #666; + font-size: 14px; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + height: 28px; + background-color: transparent +} + +.el-select__input.is-mini { + height: 14px +} + +.el-select__close { + cursor: pointer; + position: absolute; + top: 8px; + z-index: 1000; + right: 25px; + color: #C0C4CC; + line-height: 18px; + font-size: 14px +} + +.el-select__close:hover { + color: #909399 +} + +.el-select__tags { + position: absolute; + line-height: normal; + white-space: normal; + z-index: 1; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-wrap: wrap; + flex-wrap: wrap +} + +.el-select__tags-text { + overflow: hidden; + text-overflow: ellipsis +} + +.el-select .el-tag { + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-color: transparent; + margin: 2px 0 2px 6px; + background-color: #f0f2f5; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + max-width: 100%; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center +} + +.el-select .el-tag__close.el-icon-close { + background-color: #C0C4CC; + top: 0; + color: #FFF; + -ms-flex-negative: 0; + flex-shrink: 0 +} + +.el-select .el-tag__close.el-icon-close:hover { + background-color: #909399 +} + +.el-table, .el-table__expanded-cell { + background-color: #FFF +} + +.el-select .el-tag__close.el-icon-close::before { + display: block; + -webkit-transform: translate(0, .5px); + transform: translate(0, .5px) +} + +.el-table { + position: relative; + overflow: hidden; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + width: 100%; + max-width: 100%; + font-size: 14px; + color: #606266 +} + +.el-table__empty-block { + min-height: 60px; + text-align: center; + width: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center +} + +.el-table__empty-text { + line-height: 60px; + width: 50%; + color: #909399 +} + +.el-table__expand-column .cell { + padding: 0; + text-align: center +} + +.el-table__expand-icon { + position: relative; + cursor: pointer; + color: #666; + font-size: 12px; + -webkit-transition: -webkit-transform .2s ease-in-out; + transition: -webkit-transform .2s ease-in-out; + transition: transform .2s ease-in-out; + transition: transform .2s ease-in-out, -webkit-transform .2s ease-in-out; + height: 20px +} + +.el-table__expand-icon--expanded { + -webkit-transform: rotate(90deg); + transform: rotate(90deg) +} + +.el-table__expand-icon > .el-icon { + position: absolute; + left: 50%; + top: 50%; + margin-left: -5px; + margin-top: -5px +} + +.el-table__expanded-cell[class*=cell] { + padding: 20px 50px +} + +.el-table__expanded-cell:hover { + background-color: transparent !important +} + +.el-table__placeholder { + display: inline-block; + width: 20px +} + +.el-table__append-wrapper { + overflow: hidden +} + +.el-table--fit { + border-right: 0; + border-bottom: 0 +} + +.el-table--fit .el-table__cell.gutter { + border-right-width: 1px +} + +.el-table--scrollable-x .el-table__body-wrapper { + overflow-x: auto +} + +.el-table--scrollable-y .el-table__body-wrapper { + overflow-y: auto +} + +.el-table thead { + color: #909399; + font-weight: 500 +} + +.el-table thead.is-group th.el-table__cell { + background: #F5F7FA +} + +.el-table .el-table__cell { + padding: 12px 0; + min-width: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + text-overflow: ellipsis; + vertical-align: middle; + position: relative; + text-align: left +} + +.el-table .el-table__cell.is-center { + text-align: center +} + +.el-table .el-table__cell.is-right { + text-align: right +} + +.el-table .el-table__cell.gutter { + width: 15px; + border-right-width: 0; + border-bottom-width: 0; + padding: 0 +} + +.el-table .el-table__cell.is-hidden > * { + visibility: hidden +} + +.el-table--medium .el-table__cell { + padding: 10px 0 +} + +.el-table--small { + font-size: 12px +} + +.el-table--small .el-table__cell { + padding: 8px 0 +} + +.el-table--mini { + font-size: 12px +} + +.el-table--mini .el-table__cell { + padding: 6px 0 +} + +.el-table tr { + background-color: #FFF +} + +.el-table tr input[type=checkbox] { + margin: 0 +} + +.el-table td.el-table__cell, .el-table th.el-table__cell.is-leaf { + border-bottom: 1px solid #EBEEF5 +} + +.el-table th.el-table__cell.is-sortable { + cursor: pointer +} + +.el-table th.el-table__cell { + overflow: hidden; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: #FFF +} + +.el-table th.el-table__cell > .cell { + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + position: relative; + vertical-align: middle; + padding-left: 10px; + padding-right: 10px; + width: 100% +} + +.el-table th.el-table__cell > .cell.highlight { + color: #409EFF +} + +.el-table th.el-table__cell.required > div::before { + display: inline-block; + content: ""; + width: 8px; + height: 8px; + border-radius: 50%; + background: #ff4d51; + margin-right: 5px; + vertical-align: middle +} + +.el-table td.el-table__cell div { + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-date-table td, .el-table .cell, .el-table-filter { + -webkit-box-sizing: border-box +} + +.el-table td.el-table__cell.gutter { + width: 0 +} + +.el-table .cell { + box-sizing: border-box; + overflow: hidden; + text-overflow: ellipsis; + white-space: normal; + word-break: break-all; + line-height: 23px; + padding-left: 10px; + padding-right: 10px +} + +.el-table .cell.el-tooltip { + white-space: nowrap; + min-width: 50px +} + +.el-table--border, .el-table--group { + border: 1px solid #EBEEF5 +} + +.el-table--border::after, .el-table--group::after, .el-table::before { + content: ''; + position: absolute; + background-color: #EBEEF5; + z-index: 1 +} + +.el-table--border::after, .el-table--group::after { + top: 0; + right: 0; + width: 1px; + height: 100% +} + +.el-table::before { + left: 0; + bottom: 0; + width: 100%; + height: 1px +} + +.el-table--border { + border-right: none; + border-bottom: none +} + +.el-table--border.el-loading-parent--relative { + border-color: transparent +} + +.el-table--border .el-table__cell, .el-table__body-wrapper .el-table--border.is-scrolling-left ~ .el-table__fixed { + border-right: 1px solid #EBEEF5 +} + +.el-table--border .el-table__cell:first-child .cell { + padding-left: 10px +} + +.el-table--border th.el-table__cell.gutter:last-of-type { + border-bottom: 1px solid #EBEEF5; + border-bottom-width: 1px +} + +.el-table--border th.el-table__cell, .el-table__fixed-right-patch { + border-bottom: 1px solid #EBEEF5 +} + +.el-table--hidden { + visibility: hidden +} + +.el-table__fixed, .el-table__fixed-right { + position: absolute; + top: 0; + left: 0; + overflow-x: hidden; + overflow-y: hidden; + -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, .12); + box-shadow: 0 0 10px rgba(0, 0, 0, .12) +} + +.el-table__fixed-right::before, .el-table__fixed::before { + content: ''; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 1px; + background-color: #EBEEF5; + z-index: 4 +} + +.el-table__fixed-right-patch { + position: absolute; + top: -1px; + right: 0; + background-color: #FFF +} + +.el-table__fixed-right { + top: 0; + left: auto; + right: 0 +} + +.el-table__fixed-right .el-table__fixed-body-wrapper, .el-table__fixed-right .el-table__fixed-footer-wrapper, .el-table__fixed-right .el-table__fixed-header-wrapper { + left: auto; + right: 0 +} + +.el-table__fixed-header-wrapper { + position: absolute; + left: 0; + top: 0; + z-index: 3 +} + +.el-table__fixed-footer-wrapper { + position: absolute; + left: 0; + bottom: 0; + z-index: 3 +} + +.el-table__fixed-footer-wrapper tbody td.el-table__cell { + border-top: 1px solid #EBEEF5; + background-color: #F5F7FA; + color: #606266 +} + +.el-table__fixed-body-wrapper { + position: absolute; + left: 0; + top: 37px; + overflow: hidden; + z-index: 3 +} + +.el-table__body-wrapper, .el-table__footer-wrapper, .el-table__header-wrapper { + width: 100% +} + +.el-table__footer-wrapper { + margin-top: -1px +} + +.el-table__footer-wrapper td.el-table__cell { + border-top: 1px solid #EBEEF5 +} + +.el-table__body, .el-table__footer, .el-table__header { + table-layout: fixed; + border-collapse: separate +} + +.el-table__footer-wrapper, .el-table__header-wrapper { + overflow: hidden +} + +.el-table__footer-wrapper tbody td.el-table__cell, .el-table__header-wrapper tbody td.el-table__cell { + background-color: #F5F7FA; + color: #606266 +} + +.el-table__body-wrapper { + overflow: hidden; + position: relative +} + +.el-table__body-wrapper.is-scrolling-left ~ .el-table__fixed, .el-table__body-wrapper.is-scrolling-none ~ .el-table__fixed, .el-table__body-wrapper.is-scrolling-none ~ .el-table__fixed-right, .el-table__body-wrapper.is-scrolling-right ~ .el-table__fixed-right { + -webkit-box-shadow: none; + box-shadow: none +} + +.el-table__body-wrapper .el-table--border.is-scrolling-right ~ .el-table__fixed-right { + border-left: 1px solid #EBEEF5 +} + +.el-table .caret-wrapper { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 34px; + width: 24px; + vertical-align: middle; + cursor: pointer; + overflow: initial; + position: relative +} + +.el-table .sort-caret { + width: 0; + height: 0; + border: 5px solid transparent; + position: absolute; + left: 7px +} + +.el-table .sort-caret.ascending { + border-bottom-color: #C0C4CC; + top: 5px +} + +.el-table .sort-caret.descending { + border-top-color: #C0C4CC; + bottom: 7px +} + +.el-table .ascending .sort-caret.ascending { + border-bottom-color: #409EFF +} + +.el-table .descending .sort-caret.descending { + border-top-color: #409EFF +} + +.el-table .hidden-columns { + visibility: hidden; + position: absolute; + z-index: -1 +} + +.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell { + background: #FAFAFA +} + +.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell { + background-color: #ecf5ff +} + +.el-table__body tr.hover-row.current-row > td.el-table__cell, .el-table__body tr.hover-row.el-table__row--striped.current-row > td.el-table__cell, .el-table__body tr.hover-row.el-table__row--striped > td.el-table__cell, .el-table__body tr.hover-row > td.el-table__cell { + background-color: #F5F7FA +} + +.el-table__body tr.current-row > td.el-table__cell { + background-color: #ecf5ff +} + +.el-table__column-resize-proxy { + position: absolute; + left: 200px; + top: 0; + bottom: 0; + width: 0; + border-left: 1px solid #EBEEF5; + z-index: 10 +} + +.el-table__column-filter-trigger { + display: inline-block; + line-height: 34px; + cursor: pointer +} + +.el-table__column-filter-trigger i { + color: #909399; + font-size: 12px; + -webkit-transform: scale(.75); + transform: scale(.75) +} + +.el-table--enable-row-transition .el-table__body td.el-table__cell { + -webkit-transition: background-color .25s ease; + transition: background-color .25s ease +} + +.el-table--enable-row-hover .el-table__body tr:hover > td.el-table__cell { + background-color: #F5F7FA +} + +.el-table--fluid-height .el-table__fixed, .el-table--fluid-height .el-table__fixed-right { + bottom: 0; + overflow: hidden +} + +.el-table [class*=el-table__row--level] .el-table__expand-icon { + display: inline-block; + width: 20px; + line-height: 20px; + height: 20px; + text-align: center; + margin-right: 3px +} + +.el-table-column--selection .cell { + padding-left: 14px; + padding-right: 14px +} + +.el-table-filter { + border: 1px solid #EBEEF5; + border-radius: 2px; + background-color: #FFF; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1); + box-sizing: border-box; + margin: 2px 0 +} + +.el-table-filter__list { + padding: 5px 0; + margin: 0; + list-style: none; + min-width: 100px +} + +.el-table-filter__list-item { + line-height: 36px; + padding: 0 10px; + cursor: pointer; + font-size: 14px +} + +.el-table-filter__list-item:hover { + background-color: #ecf5ff; + color: #66b1ff +} + +.el-table-filter__list-item.is-active { + background-color: #409EFF; + color: #FFF +} + +.el-table-filter__content { + min-width: 100px +} + +.el-table-filter__bottom { + border-top: 1px solid #EBEEF5; + padding: 8px +} + +.el-table-filter__bottom button { + background: 0 0; + border: none; + color: #606266; + cursor: pointer; + font-size: 13px; + padding: 0 3px +} + +.el-date-table td.in-range div, .el-date-table td.in-range div:hover, .el-date-table.is-week-mode .el-date-table__row.current div, .el-date-table.is-week-mode .el-date-table__row:hover div { + background-color: #F2F6FC +} + +.el-table-filter__bottom button:hover { + color: #409EFF +} + +.el-table-filter__bottom button:focus { + outline: 0 +} + +.el-table-filter__bottom button.is-disabled { + color: #C0C4CC; + cursor: not-allowed +} + +.el-table-filter__wrap { + max-height: 280px +} + +.el-table-filter__checkbox-group { + padding: 10px +} + +.el-table-filter__checkbox-group label.el-checkbox { + display: block; + margin-right: 5px; + margin-bottom: 8px; + margin-left: 5px +} + +.el-table-filter__checkbox-group .el-checkbox:last-child { + margin-bottom: 0 +} + +.el-date-table { + font-size: 12px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none +} + +.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover { + color: #606266 +} + +.el-date-table.is-week-mode .el-date-table__row:hover td:first-child div { + margin-left: 5px; + border-top-left-radius: 15px; + border-bottom-left-radius: 15px +} + +.el-date-table.is-week-mode .el-date-table__row:hover td:last-child div { + margin-right: 5px; + border-top-right-radius: 15px; + border-bottom-right-radius: 15px +} + +.el-date-table td { + width: 32px; + height: 30px; + padding: 4px 0; + box-sizing: border-box; + text-align: center; + cursor: pointer; + position: relative +} + +.el-date-table td div { + height: 30px; + padding: 3px 0; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-date-table td span { + width: 24px; + height: 24px; + display: block; + margin: 0 auto; + line-height: 24px; + position: absolute; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + border-radius: 50% +} + +.el-date-table td.next-month, .el-date-table td.prev-month { + color: #C0C4CC +} + +.el-date-table td.today { + position: relative +} + +.el-date-table td.today span { + color: #409EFF; + font-weight: 700 +} + +.el-date-table td.today.end-date span, .el-date-table td.today.start-date span { + color: #FFF +} + +.el-date-table td.available:hover { + color: #409EFF +} + +.el-date-table td.current:not(.disabled) span { + color: #FFF; + background-color: #409EFF +} + +.el-date-table td.end-date div, .el-date-table td.start-date div { + color: #FFF +} + +.el-date-table td.end-date span, .el-date-table td.start-date span { + background-color: #409EFF +} + +.el-date-table td.start-date div { + margin-left: 5px; + border-top-left-radius: 15px; + border-bottom-left-radius: 15px +} + +.el-date-table td.end-date div { + margin-right: 5px; + border-top-right-radius: 15px; + border-bottom-right-radius: 15px +} + +.el-date-table td.disabled div { + background-color: #F5F7FA; + opacity: 1; + cursor: not-allowed; + color: #C0C4CC +} + +.el-date-table td.selected div { + margin-left: 5px; + margin-right: 5px; + background-color: #F2F6FC; + border-radius: 15px +} + +.el-date-table td.selected div:hover { + background-color: #F2F6FC +} + +.el-date-table td.selected span { + background-color: #409EFF; + color: #FFF; + border-radius: 15px +} + +.el-date-table td.week { + font-size: 80%; + color: #606266 +} + +.el-month-table, .el-year-table { + font-size: 12px; + border-collapse: collapse +} + +.el-date-table th { + padding: 5px; + color: #606266; + font-weight: 400; + border-bottom: solid 1px #EBEEF5 +} + +.el-month-table { + margin: -1px +} + +.el-month-table td { + text-align: center; + padding: 8px 0; + cursor: pointer +} + +.el-month-table td div { + height: 48px; + padding: 6px 0; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-month-table td.today .cell { + color: #409EFF; + font-weight: 700 +} + +.el-month-table td.today.end-date .cell, .el-month-table td.today.start-date .cell { + color: #FFF +} + +.el-month-table td.disabled .cell { + background-color: #F5F7FA; + cursor: not-allowed; + color: #C0C4CC +} + +.el-month-table td.disabled .cell:hover { + color: #C0C4CC +} + +.el-month-table td .cell { + width: 60px; + height: 36px; + display: block; + line-height: 36px; + color: #606266; + margin: 0 auto; + border-radius: 18px +} + +.el-month-table td .cell:hover { + color: #409EFF +} + +.el-month-table td.in-range div, .el-month-table td.in-range div:hover { + background-color: #F2F6FC +} + +.el-month-table td.end-date div, .el-month-table td.start-date div { + color: #FFF +} + +.el-month-table td.end-date .cell, .el-month-table td.start-date .cell { + color: #FFF; + background-color: #409EFF +} + +.el-month-table td.start-date div { + border-top-left-radius: 24px; + border-bottom-left-radius: 24px +} + +.el-month-table td.end-date div { + border-top-right-radius: 24px; + border-bottom-right-radius: 24px +} + +.el-month-table td.current:not(.disabled) .cell { + color: #409EFF +} + +.el-year-table { + margin: -1px +} + +.el-year-table .el-icon { + color: #303133 +} + +.el-year-table td { + text-align: center; + padding: 20px 3px; + cursor: pointer +} + +.el-year-table td.today .cell { + color: #409EFF; + font-weight: 700 +} + +.el-year-table td.disabled .cell { + background-color: #F5F7FA; + cursor: not-allowed; + color: #C0C4CC +} + +.el-year-table td.disabled .cell:hover { + color: #C0C4CC +} + +.el-year-table td .cell { + width: 48px; + height: 32px; + display: block; + line-height: 32px; + color: #606266; + margin: 0 auto +} + +.el-year-table td .cell:hover, .el-year-table td.current:not(.disabled) .cell { + color: #409EFF +} + +.el-date-range-picker { + width: 646px +} + +.el-date-range-picker.has-sidebar { + width: 756px +} + +.el-date-range-picker table { + table-layout: fixed; + width: 100% +} + +.el-date-range-picker .el-picker-panel__body { + min-width: 513px +} + +.el-date-range-picker .el-picker-panel__content { + margin: 0 +} + +.el-date-range-picker__header { + position: relative; + text-align: center; + height: 28px +} + +.el-date-range-picker__header [class*=arrow-left] { + float: left +} + +.el-date-range-picker__header [class*=arrow-right] { + float: right +} + +.el-date-range-picker__header div { + font-size: 16px; + font-weight: 500; + margin-right: 50px +} + +.el-date-range-picker__content { + float: left; + width: 50%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 0; + padding: 16px +} + +.el-date-range-picker__content.is-left { + border-right: 1px solid #e4e4e4 +} + +.el-date-range-picker__content .el-date-range-picker__header div { + margin-left: 50px; + margin-right: 50px +} + +.el-date-range-picker__editors-wrap { + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: table-cell +} + +.el-date-range-picker__editors-wrap.is-right { + text-align: right +} + +.el-date-range-picker__time-header { + position: relative; + border-bottom: 1px solid #e4e4e4; + font-size: 12px; + padding: 8px 5px 5px; + display: table; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-date-range-picker__time-header > .el-icon-arrow-right { + font-size: 20px; + vertical-align: middle; + display: table-cell; + color: #303133 +} + +.el-date-range-picker__time-picker-wrap { + position: relative; + display: table-cell; + padding: 0 5px +} + +.el-date-range-picker__time-picker-wrap .el-picker-panel { + position: absolute; + top: 13px; + right: 0; + z-index: 1; + background: #FFF +} + +.el-date-picker { + width: 322px +} + +.el-date-picker.has-sidebar.has-time { + width: 434px +} + +.el-date-picker.has-sidebar { + width: 438px +} + +.el-date-picker.has-time .el-picker-panel__body-wrapper { + position: relative +} + +.el-date-picker .el-picker-panel__content { + width: 292px +} + +.el-date-picker table { + table-layout: fixed; + width: 100% +} + +.el-date-picker__editor-wrap { + position: relative; + display: table-cell; + padding: 0 5px +} + +.el-date-picker__time-header { + position: relative; + border-bottom: 1px solid #e4e4e4; + font-size: 12px; + padding: 8px 5px 5px; + display: table; + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-date-picker__header { + margin: 12px; + text-align: center +} + +.el-date-picker__header--bordered { + margin-bottom: 0; + padding-bottom: 12px; + border-bottom: solid 1px #EBEEF5 +} + +.el-date-picker__header--bordered + .el-picker-panel__content { + margin-top: 0 +} + +.el-date-picker__header-label { + font-size: 16px; + font-weight: 500; + padding: 0 5px; + line-height: 22px; + text-align: center; + cursor: pointer; + color: #606266 +} + +.el-date-picker__header-label.active, .el-date-picker__header-label:hover { + color: #409EFF +} + +.el-date-picker__prev-btn { + float: left +} + +.el-date-picker__next-btn { + float: right +} + +.el-date-picker__time-wrap { + padding: 10px; + text-align: center +} + +.el-date-picker__time-label { + float: left; + cursor: pointer; + line-height: 30px; + margin-left: 10px +} + +.time-select { + margin: 5px 0; + min-width: 0 +} + +.time-select .el-picker-panel__content { + max-height: 200px; + margin: 0 +} + +.time-select-item { + padding: 8px 10px; + font-size: 14px; + line-height: 20px +} + +.time-select-item.selected:not(.disabled) { + color: #409EFF; + font-weight: 700 +} + +.time-select-item.disabled { + color: #E4E7ED; + cursor: not-allowed +} + +.time-select-item:hover { + background-color: #F5F7FA; + font-weight: 700; + cursor: pointer +} + +.el-date-editor { + position: relative; + display: inline-block; + text-align: left +} + +.el-date-editor.el-input, .el-date-editor.el-input__inner { + width: 220px +} + +.el-date-editor--monthrange.el-input, .el-date-editor--monthrange.el-input__inner { + width: 300px +} + +.el-date-editor--daterange.el-input, .el-date-editor--daterange.el-input__inner, .el-date-editor--timerange.el-input, .el-date-editor--timerange.el-input__inner { + width: 350px +} + +.el-date-editor--datetimerange.el-input, .el-date-editor--datetimerange.el-input__inner { + width: 400px +} + +.el-date-editor--dates .el-input__inner { + text-overflow: ellipsis; + white-space: nowrap +} + +.el-date-editor .el-icon-circle-close { + cursor: pointer +} + +.el-date-editor .el-range__icon { + font-size: 14px; + margin-left: -5px; + color: #C0C4CC; + float: left; + line-height: 32px +} + +.el-date-editor .el-range-input { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + outline: 0; + display: inline-block; + height: 100%; + margin: 0; + padding: 0; + width: 39%; + text-align: center; + font-size: 14px; + color: #606266 +} + +.el-date-editor .el-range-input::-webkit-input-placeholder { + color: #C0C4CC +} + +.el-date-editor .el-range-input:-ms-input-placeholder { + color: #C0C4CC +} + +.el-date-editor .el-range-input::-ms-input-placeholder { + color: #C0C4CC +} + +.el-date-editor .el-range-input::placeholder { + color: #C0C4CC +} + +.el-date-editor .el-range-separator { + display: inline-block; + height: 100%; + padding: 0 5px; + margin: 0; + text-align: center; + line-height: 32px; + font-size: 14px; + width: 5%; + color: #303133 +} + +.el-date-editor .el-range__close-icon { + font-size: 14px; + color: #C0C4CC; + width: 25px; + display: inline-block; + float: right; + line-height: 32px +} + +.el-range-editor.el-input__inner { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 3px 10px +} + +.el-range-editor .el-range-input { + line-height: 1 +} + +.el-range-editor--medium.el-input__inner { + height: 36px +} + +.el-range-editor--medium .el-range-separator { + line-height: 28px; + font-size: 14px +} + +.el-range-editor--medium .el-range-input { + font-size: 14px +} + +.el-range-editor--medium .el-range__close-icon, .el-range-editor--medium .el-range__icon { + line-height: 28px +} + +.el-range-editor--small.el-input__inner { + height: 32px +} + +.el-range-editor--small .el-range-separator { + line-height: 24px; + font-size: 13px +} + +.el-range-editor--small .el-range-input { + font-size: 13px +} + +.el-range-editor--small .el-range__close-icon, .el-range-editor--small .el-range__icon { + line-height: 24px +} + +.el-range-editor--mini.el-input__inner { + height: 28px +} + +.el-range-editor--mini .el-range-separator { + line-height: 20px; + font-size: 12px +} + +.el-range-editor--mini .el-range-input { + font-size: 12px +} + +.el-range-editor--mini .el-range__close-icon, .el-range-editor--mini .el-range__icon { + line-height: 20px +} + +.el-range-editor.is-disabled { + background-color: #F5F7FA; + border-color: #E4E7ED; + color: #C0C4CC; + cursor: not-allowed +} + +.el-range-editor.is-disabled:focus, .el-range-editor.is-disabled:hover { + border-color: #E4E7ED +} + +.el-range-editor.is-disabled input { + background-color: #F5F7FA; + color: #C0C4CC; + cursor: not-allowed +} + +.el-range-editor.is-disabled input::-webkit-input-placeholder { + color: #C0C4CC +} + +.el-range-editor.is-disabled input:-ms-input-placeholder { + color: #C0C4CC +} + +.el-range-editor.is-disabled input::-ms-input-placeholder { + color: #C0C4CC +} + +.el-range-editor.is-disabled input::placeholder { + color: #C0C4CC +} + +.el-range-editor.is-disabled .el-range-separator { + color: #C0C4CC +} + +.el-picker-panel { + color: #606266; + border: 1px solid #E4E7ED; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1); + background: #FFF; + border-radius: 4px; + line-height: 30px; + margin: 5px 0 +} + +.el-picker-panel__body-wrapper::after, .el-picker-panel__body::after { + content: ""; + display: table; + clear: both +} + +.el-picker-panel__content { + position: relative; + margin: 15px +} + +.el-picker-panel__footer { + border-top: 1px solid #e4e4e4; + padding: 4px; + text-align: right; + background-color: #FFF; + position: relative; + font-size: 0 +} + +.el-picker-panel__shortcut { + display: block; + width: 100%; + border: 0; + background-color: transparent; + line-height: 28px; + font-size: 14px; + color: #606266; + padding-left: 12px; + text-align: left; + outline: 0; + cursor: pointer +} + +.el-picker-panel__shortcut:hover { + color: #409EFF +} + +.el-picker-panel__shortcut.active { + background-color: #e6f1fe; + color: #409EFF +} + +.el-picker-panel__btn { + border: 1px solid #dcdcdc; + color: #333; + line-height: 24px; + border-radius: 2px; + padding: 0 20px; + cursor: pointer; + background-color: transparent; + outline: 0; + font-size: 12px +} + +.el-picker-panel__btn[disabled] { + color: #ccc; + cursor: not-allowed +} + +.el-picker-panel__icon-btn { + font-size: 12px; + color: #303133; + border: 0; + background: 0 0; + cursor: pointer; + outline: 0; + margin-top: 8px +} + +.el-picker-panel__icon-btn:hover { + color: #409EFF +} + +.el-picker-panel__icon-btn.is-disabled { + color: #bbb +} + +.el-picker-panel__icon-btn.is-disabled:hover { + cursor: not-allowed +} + +.el-picker-panel__link-btn { + vertical-align: middle +} + +.el-picker-panel [slot=sidebar], .el-picker-panel__sidebar { + position: absolute; + top: 0; + bottom: 0; + width: 110px; + border-right: 1px solid #e4e4e4; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-top: 6px; + background-color: #FFF; + overflow: auto +} + +.el-picker-panel [slot=sidebar] + .el-picker-panel__body, .el-picker-panel__sidebar + .el-picker-panel__body { + margin-left: 110px +} + +.el-time-spinner.has-seconds .el-time-spinner__wrapper { + width: 33.3% +} + +.el-time-spinner__wrapper { + max-height: 190px; + overflow: auto; + display: inline-block; + width: 50%; + vertical-align: top; + position: relative +} + +.el-time-spinner__wrapper .el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default) { + padding-bottom: 15px +} + +.el-time-spinner__input.el-input .el-input__inner, .el-time-spinner__list { + padding: 0; + text-align: center +} + +.el-time-spinner__wrapper.is-arrow { + -webkit-box-sizing: border-box; + box-sizing: border-box; + text-align: center; + overflow: hidden +} + +.el-time-spinner__wrapper.is-arrow .el-time-spinner__list { + -webkit-transform: translateY(-32px); + transform: translateY(-32px) +} + +.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.disabled):not(.active) { + background: #FFF; + cursor: default +} + +.el-time-spinner__arrow { + font-size: 12px; + color: #909399; + position: absolute; + left: 0; + width: 100%; + z-index: 1; + text-align: center; + height: 30px; + line-height: 30px; + cursor: pointer +} + +.el-time-spinner__arrow:hover { + color: #409EFF +} + +.el-time-spinner__arrow.el-icon-arrow-up { + top: 10px +} + +.el-time-spinner__arrow.el-icon-arrow-down { + bottom: 10px +} + +.el-time-spinner__input.el-input { + width: 70% +} + +.el-time-spinner__list { + margin: 0; + list-style: none +} + +.el-time-spinner__list::after, .el-time-spinner__list::before { + content: ''; + display: block; + width: 100%; + height: 80px +} + +.el-time-spinner__item { + height: 32px; + line-height: 32px; + font-size: 12px; + color: #606266 +} + +.el-time-spinner__item:hover:not(.disabled):not(.active) { + background: #F5F7FA; + cursor: pointer +} + +.el-time-spinner__item.active:not(.disabled) { + color: #303133; + font-weight: 700 +} + +.el-time-spinner__item.disabled { + color: #C0C4CC; + cursor: not-allowed +} + +.el-time-panel { + margin: 5px 0; + border: 1px solid #E4E7ED; + background-color: #FFF; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1); + border-radius: 2px; + position: absolute; + width: 180px; + left: 0; + z-index: 1000; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-box-sizing: content-box; + box-sizing: content-box +} + +.el-time-panel__content { + font-size: 0; + position: relative; + overflow: hidden +} + +.el-time-panel__content::after, .el-time-panel__content::before { + content: ""; + top: 50%; + position: absolute; + margin-top: -15px; + height: 32px; + z-index: -1; + left: 0; + right: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-top: 6px; + text-align: left; + border-top: 1px solid #E4E7ED; + border-bottom: 1px solid #E4E7ED +} + +.el-time-panel__content::after { + left: 50%; + margin-left: 12%; + margin-right: 12% +} + +.el-time-panel__content::before { + padding-left: 50%; + margin-right: 12%; + margin-left: 12% +} + +.el-time-panel__content.has-seconds::after { + left: calc(100% / 3 * 2) +} + +.el-time-panel__content.has-seconds::before { + padding-left: calc(100% / 3) +} + +.el-time-panel__footer { + border-top: 1px solid #e4e4e4; + padding: 4px; + height: 36px; + line-height: 25px; + text-align: right; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-time-panel__btn { + border: none; + line-height: 28px; + padding: 0 5px; + margin: 0 5px; + cursor: pointer; + background-color: transparent; + outline: 0; + font-size: 12px; + color: #303133 +} + +.el-time-panel__btn.confirm { + font-weight: 800; + color: #409EFF +} + +.el-time-range-picker { + width: 354px; + overflow: visible +} + +.el-time-range-picker__content { + position: relative; + text-align: center; + padding: 10px +} + +.el-time-range-picker__cell { + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 0; + padding: 4px 7px 7px; + width: 50%; + display: inline-block +} + +.el-time-range-picker__header { + margin-bottom: 5px; + text-align: center; + font-size: 14px +} + +.el-time-range-picker__body { + border-radius: 2px; + border: 1px solid #E4E7ED +} + +.el-popover { + position: absolute; + background: #FFF; + min-width: 150px; + border-radius: 4px; + border: 1px solid #EBEEF5; + padding: 12px; + z-index: 2000; + color: #606266; + line-height: 1.4; + text-align: justify; + font-size: 14px; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1); + word-break: break-all +} + +.el-card.is-always-shadow, .el-card.is-hover-shadow:focus, .el-card.is-hover-shadow:hover, .el-cascader__dropdown, .el-color-picker__panel, .el-message-box, .el-notification { + -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1) +} + +.el-popover--plain { + padding: 18px 20px +} + +.el-popover__title { + color: #303133; + font-size: 16px; + line-height: 1; + margin-bottom: 12px +} + +.el-popover:focus, .el-popover:focus:active, .el-popover__reference:focus:hover, .el-popover__reference:focus:not(.focusing) { + outline-width: 0 +} + +.v-modal-enter { + -webkit-animation: v-modal-in .2s ease; + animation: v-modal-in .2s ease +} + +.v-modal-leave { + -webkit-animation: v-modal-out .2s ease forwards; + animation: v-modal-out .2s ease forwards +} + +@keyframes v-modal-in { + 0% { + opacity: 0 + } +} + +@keyframes v-modal-out { + 100% { + opacity: 0 + } +} + +.v-modal { + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100%; + opacity: .5; + background: #000 +} + +.el-popup-parent--hidden { + overflow: hidden +} + +.el-message-box { + display: inline-block; + width: 420px; + padding-bottom: 10px; + vertical-align: middle; + background-color: #FFF; + border-radius: 4px; + border: 1px solid #EBEEF5; + font-size: 18px; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1); + text-align: left; + overflow: hidden; + -webkit-backface-visibility: hidden; + backface-visibility: hidden +} + +.el-message-box__wrapper { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + text-align: center +} + +.el-message-box__wrapper::after { + content: ""; + display: inline-block; + height: 100%; + width: 0; + vertical-align: middle +} + +.el-message-box__header { + position: relative; + padding: 15px 15px 10px +} + +.el-message-box__title { + padding-left: 0; + margin-bottom: 0; + font-size: 18px; + line-height: 1; + color: #303133 +} + +.el-message-box__headerbtn { + position: absolute; + top: 15px; + right: 15px; + padding: 0; + border: none; + outline: 0; + background: 0 0; + font-size: 16px; + cursor: pointer +} + +.el-form-item.is-error .el-input__inner, .el-form-item.is-error .el-input__inner:focus, .el-form-item.is-error .el-textarea__inner, .el-form-item.is-error .el-textarea__inner:focus, .el-message-box__input input.invalid, .el-message-box__input input.invalid:focus { + border-color: #F56C6C +} + +.el-message-box__headerbtn .el-message-box__close { + color: #909399 +} + +.el-message-box__headerbtn:focus .el-message-box__close, .el-message-box__headerbtn:hover .el-message-box__close { + color: #409EFF +} + +.el-message-box__content { + padding: 10px 15px; + color: #606266; + font-size: 14px +} + +.el-message-box__container { + position: relative +} + +.el-message-box__input { + padding-top: 15px +} + +.el-message-box__status { + position: absolute; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + font-size: 24px !important +} + +.el-message-box__status::before { + padding-left: 1px +} + +.el-message-box__status + .el-message-box__message { + padding-left: 36px; + padding-right: 12px +} + +.el-message-box__status.el-icon-success { + color: #67C23A +} + +.el-message-box__status.el-icon-info { + color: #909399 +} + +.el-message-box__status.el-icon-warning { + color: #E6A23C +} + +.el-message-box__status.el-icon-error { + color: #F56C6C +} + +.el-message-box__message { + margin: 0 +} + +.el-message-box__message p { + margin: 0; + line-height: 24px +} + +.el-message-box__errormsg { + color: #F56C6C; + font-size: 12px; + min-height: 18px; + margin-top: 2px +} + +.el-message-box__btns { + padding: 5px 15px 0; + text-align: right +} + +.el-message-box__btns button:nth-child(2) { + margin-left: 10px +} + +.el-message-box__btns-reverse { + -webkit-box-orient: horizontal; + -webkit-box-direction: reverse; + -ms-flex-direction: row-reverse; + flex-direction: row-reverse +} + +.el-message-box--center { + padding-bottom: 30px +} + +.el-message-box--center .el-message-box__header { + padding-top: 30px +} + +.el-message-box--center .el-message-box__title { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center +} + +.el-message-box--center .el-message-box__status { + position: relative; + top: auto; + padding-right: 5px; + text-align: center; + -webkit-transform: translateY(-1px); + transform: translateY(-1px) +} + +.el-message-box--center .el-message-box__message { + margin-left: 0 +} + +.el-message-box--center .el-message-box__btns, .el-message-box--center .el-message-box__content { + text-align: center +} + +.el-message-box--center .el-message-box__content { + padding-left: 27px; + padding-right: 27px +} + +.msgbox-fade-enter-active { + -webkit-animation: msgbox-fade-in .3s; + animation: msgbox-fade-in .3s +} + +.msgbox-fade-leave-active { + -webkit-animation: msgbox-fade-out .3s; + animation: msgbox-fade-out .3s +} + +@-webkit-keyframes msgbox-fade-in { + 0% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0 + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1 + } +} + +@keyframes msgbox-fade-in { + 0% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0 + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1 + } +} + +@-webkit-keyframes msgbox-fade-out { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1 + } + 100% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0 + } +} + +@keyframes msgbox-fade-out { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1 + } + 100% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0 + } +} + +.el-breadcrumb { + font-size: 14px; + line-height: 1 +} + +.el-breadcrumb::after, .el-breadcrumb::before { + display: table; + content: "" +} + +.el-breadcrumb::after { + clear: both +} + +.el-breadcrumb__separator { + margin: 0 9px; + font-weight: 700; + color: #C0C4CC +} + +.el-breadcrumb__separator[class*=icon] { + margin: 0 6px; + font-weight: 400 +} + +.el-breadcrumb__item { + float: left +} + +.el-breadcrumb__inner { + color: #606266 +} + +.el-breadcrumb__inner a, .el-breadcrumb__inner.is-link { + font-weight: 700; + text-decoration: none; + -webkit-transition: color .2s cubic-bezier(.645, .045, .355, 1); + transition: color .2s cubic-bezier(.645, .045, .355, 1); + color: #303133 +} + +.el-breadcrumb__inner a:hover, .el-breadcrumb__inner.is-link:hover { + color: #409EFF; + cursor: pointer +} + +.el-breadcrumb__item:last-child .el-breadcrumb__inner, .el-breadcrumb__item:last-child .el-breadcrumb__inner a, .el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover, .el-breadcrumb__item:last-child .el-breadcrumb__inner:hover { + font-weight: 400; + color: #606266; + cursor: text +} + +.el-form--label-left .el-form-item__label { + text-align: left +} + +.el-form--label-top .el-form-item__label { + float: none; + display: inline-block; + text-align: left; + padding: 0 0 10px +} + +.el-form--inline .el-form-item { + display: inline-block; + margin-right: 10px; + vertical-align: top +} + +.el-form--inline .el-form-item__label { + float: none; + display: inline-block +} + +.el-form--inline .el-form-item__content { + display: inline-block; + vertical-align: top +} + +.el-form--inline.el-form--label-top .el-form-item__content { + display: block +} + +.el-form-item { + margin-bottom: 22px +} + +.el-form-item::after, .el-form-item::before { + display: table; + content: "" +} + +.el-form-item::after { + clear: both +} + +.el-form-item .el-form-item { + margin-bottom: 0 +} + +.el-form-item--mini.el-form-item, .el-form-item--small.el-form-item { + margin-bottom: 18px +} + +.el-form-item .el-input__validateIcon { + display: none +} + +.el-form-item--medium .el-form-item__content, .el-form-item--medium .el-form-item__label { + line-height: 36px +} + +.el-form-item--small .el-form-item__content, .el-form-item--small .el-form-item__label { + line-height: 32px +} + +.el-form-item--small .el-form-item__error { + padding-top: 2px +} + +.el-form-item--mini .el-form-item__content, .el-form-item--mini .el-form-item__label { + line-height: 28px +} + +.el-form-item--mini .el-form-item__error { + padding-top: 1px +} + +.el-form-item__label-wrap { + float: left +} + +.el-form-item__label-wrap .el-form-item__label { + display: inline-block; + float: none +} + +.el-form-item__label { + text-align: right; + vertical-align: middle; + float: left; + font-size: 14px; + color: #606266; + line-height: 40px; + padding: 0 12px 0 0; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-form-item__content { + line-height: 40px; + position: relative; + font-size: 14px +} + +.el-form-item__content::after, .el-form-item__content::before { + display: table; + content: "" +} + +.el-form-item__content::after { + clear: both +} + +.el-form-item__content .el-input-group { + vertical-align: top +} + +.el-form-item__error { + color: #F56C6C; + font-size: 12px; + line-height: 1; + padding-top: 4px; + position: absolute; + top: 100%; + left: 0 +} + +.el-form-item__error--inline { + position: relative; + top: auto; + left: auto; + display: inline-block; + margin-left: 10px +} + +.el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap > .el-form-item__label:before, .el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label:before { + content: '*'; + color: #F56C6C; + margin-right: 4px +} + +.el-form-item.is-error .el-input-group__append .el-input__inner, .el-form-item.is-error .el-input-group__prepend .el-input__inner { + border-color: transparent +} + +.el-form-item.is-error .el-input__validateIcon { + color: #F56C6C +} + +.el-form-item--feedback .el-input__validateIcon { + display: inline-block +} + +.el-tabs__header { + padding: 0; + position: relative; + margin: 0 0 15px +} + +.el-tabs__active-bar { + position: absolute; + bottom: 0; + left: 0; + height: 2px; + background-color: #409EFF; + z-index: 1; + -webkit-transition: -webkit-transform .3s cubic-bezier(.645, .045, .355, 1); + transition: -webkit-transform .3s cubic-bezier(.645, .045, .355, 1); + transition: transform .3s cubic-bezier(.645, .045, .355, 1); + transition: transform .3s cubic-bezier(.645, .045, .355, 1), -webkit-transform .3s cubic-bezier(.645, .045, .355, 1); + list-style: none +} + +.el-tabs__new-tab { + float: right; + border: 1px solid #d3dce6; + height: 18px; + width: 18px; + line-height: 18px; + margin: 12px 0 9px 10px; + border-radius: 3px; + text-align: center; + font-size: 12px; + color: #d3dce6; + cursor: pointer; + -webkit-transition: all .15s; + transition: all .15s +} + +.el-tabs__new-tab .el-icon-plus { + -webkit-transform: scale(.8, .8); + transform: scale(.8, .8) +} + +.el-tabs__new-tab:hover { + color: #409EFF +} + +.el-tabs__nav-wrap { + overflow: hidden; + margin-bottom: -1px; + position: relative +} + +.el-tabs__nav-wrap::after { + content: ""; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 2px; + background-color: #E4E7ED; + z-index: 1 +} + +.el-tabs__nav-wrap.is-scrollable { + padding: 0 20px; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-tabs__nav-scroll { + overflow: hidden +} + +.el-tabs__nav-next, .el-tabs__nav-prev { + position: absolute; + cursor: pointer; + line-height: 44px; + font-size: 12px; + color: #909399 +} + +.el-tabs__nav-next { + right: 0 +} + +.el-tabs__nav-prev { + left: 0 +} + +.el-tabs__nav { + white-space: nowrap; + position: relative; + -webkit-transition: -webkit-transform .3s; + transition: -webkit-transform .3s; + transition: transform .3s; + transition: transform .3s, -webkit-transform .3s; + float: left; + z-index: 2 +} + +.el-tabs__nav.is-stretch { + min-width: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex +} + +.el-tabs__nav.is-stretch > * { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + text-align: center +} + +.el-tabs__item { + padding: 0 20px; + height: 40px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + line-height: 40px; + display: inline-block; + list-style: none; + font-size: 14px; + font-weight: 500; + color: #303133; + position: relative +} + +.el-tabs__item:focus, .el-tabs__item:focus:active { + outline: 0 +} + +.el-tabs__item:focus.is-active.is-focus:not(:active) { + -webkit-box-shadow: 0 0 2px 2px #409EFF inset; + box-shadow: 0 0 2px 2px #409EFF inset; + border-radius: 3px +} + +.el-tabs__item .el-icon-close { + border-radius: 50%; + text-align: center; + -webkit-transition: all .3s cubic-bezier(.645, .045, .355, 1); + transition: all .3s cubic-bezier(.645, .045, .355, 1); + margin-left: 5px +} + +.el-tabs__item .el-icon-close:before { + -webkit-transform: scale(.9); + transform: scale(.9); + display: inline-block +} + +.el-tabs--card > .el-tabs__header .el-tabs__active-bar, .el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left, .el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right { + display: none +} + +.el-tabs__item .el-icon-close:hover { + background-color: #C0C4CC; + color: #FFF +} + +.el-tabs__item.is-active { + color: #409EFF +} + +.el-tabs__item:hover { + color: #409EFF; + cursor: pointer +} + +.el-tabs__item.is-disabled { + color: #C0C4CC; + cursor: default +} + +.el-tabs__content { + overflow: hidden; + position: relative +} + +.el-tabs--card > .el-tabs__header { + border-bottom: 1px solid #E4E7ED +} + +.el-tabs--card > .el-tabs__header .el-tabs__nav-wrap::after { + content: none +} + +.el-tabs--card > .el-tabs__header .el-tabs__nav { + border: 1px solid #E4E7ED; + border-bottom: none; + border-radius: 4px 4px 0 0; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-tabs--card > .el-tabs__header .el-tabs__item .el-icon-close { + position: relative; + font-size: 12px; + width: 0; + height: 14px; + vertical-align: middle; + line-height: 15px; + overflow: hidden; + top: -1px; + right: -2px; + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50% +} + +.el-tabs--card > .el-tabs__header .el-tabs__item { + border-bottom: 1px solid transparent; + border-left: 1px solid #E4E7ED; + -webkit-transition: color .3s cubic-bezier(.645, .045, .355, 1), padding .3s cubic-bezier(.645, .045, .355, 1); + transition: color .3s cubic-bezier(.645, .045, .355, 1), padding .3s cubic-bezier(.645, .045, .355, 1) +} + +.el-tabs--card > .el-tabs__header .el-tabs__item:first-child { + border-left: none +} + +.el-tabs--card > .el-tabs__header .el-tabs__item.is-closable:hover { + padding-left: 13px; + padding-right: 13px +} + +.el-tabs--card > .el-tabs__header .el-tabs__item.is-closable:hover .el-icon-close { + width: 14px +} + +.el-tabs--card > .el-tabs__header .el-tabs__item.is-active { + border-bottom-color: #FFF +} + +.el-tabs--card > .el-tabs__header .el-tabs__item.is-active.is-closable { + padding-left: 20px; + padding-right: 20px +} + +.el-tabs--card > .el-tabs__header .el-tabs__item.is-active.is-closable .el-icon-close { + width: 14px +} + +.el-tabs--border-card { + background: #FFF; + border: 1px solid #DCDFE6; + -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .12), 0 0 6px 0 rgba(0, 0, 0, .04); + box-shadow: 0 2px 4px 0 rgba(0, 0, 0, .12), 0 0 6px 0 rgba(0, 0, 0, .04) +} + +.el-tabs--border-card > .el-tabs__content { + padding: 15px +} + +.el-tabs--border-card > .el-tabs__header { + background-color: #F5F7FA; + border-bottom: 1px solid #E4E7ED; + margin: 0 +} + +.el-tabs--border-card > .el-tabs__header .el-tabs__nav-wrap::after { + content: none +} + +.el-tabs--border-card > .el-tabs__header .el-tabs__item { + -webkit-transition: all .3s cubic-bezier(.645, .045, .355, 1); + transition: all .3s cubic-bezier(.645, .045, .355, 1); + border: 1px solid transparent; + margin-top: -1px; + color: #909399 +} + +.el-tabs--border-card > .el-tabs__header .el-tabs__item + .el-tabs__item, .el-tabs--border-card > .el-tabs__header .el-tabs__item:first-child { + margin-left: -1px +} + +.el-col-offset-0, .el-tabs--border-card > .el-tabs__header .is-scrollable .el-tabs__item:first-child { + margin-left: 0 +} + +.el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active { + color: #409EFF; + background-color: #FFF; + border-right-color: #DCDFE6; + border-left-color: #DCDFE6 +} + +.el-tabs--border-card > .el-tabs__header .el-tabs__item:not(.is-disabled):hover { + color: #409EFF +} + +.el-tabs--border-card > .el-tabs__header .el-tabs__item.is-disabled { + color: #C0C4CC +} + +.el-tabs--bottom .el-tabs__item.is-bottom:nth-child(2), .el-tabs--bottom .el-tabs__item.is-top:nth-child(2), .el-tabs--top .el-tabs__item.is-bottom:nth-child(2), .el-tabs--top .el-tabs__item.is-top:nth-child(2) { + padding-left: 0 +} + +.el-tabs--bottom .el-tabs__item.is-bottom:last-child, .el-tabs--bottom .el-tabs__item.is-top:last-child, .el-tabs--top .el-tabs__item.is-bottom:last-child, .el-tabs--top .el-tabs__item.is-top:last-child { + padding-right: 0 +} + +.el-cascader-menu:last-child .el-cascader-node, .el-tabs--bottom .el-tabs--left > .el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom .el-tabs--right > .el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom.el-tabs--border-card > .el-tabs__header .el-tabs__item:last-child, .el-tabs--bottom.el-tabs--card > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top .el-tabs--left > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top .el-tabs--right > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top.el-tabs--border-card > .el-tabs__header .el-tabs__item:last-child, .el-tabs--top.el-tabs--card > .el-tabs__header .el-tabs__item:last-child { + padding-right: 20px +} + +.el-tabs--bottom .el-tabs--left > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom .el-tabs--right > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom.el-tabs--border-card > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--bottom.el-tabs--card > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top .el-tabs--left > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top .el-tabs--right > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top.el-tabs--border-card > .el-tabs__header .el-tabs__item:nth-child(2), .el-tabs--top.el-tabs--card > .el-tabs__header .el-tabs__item:nth-child(2) { + padding-left: 20px +} + +.el-tabs--bottom .el-tabs__header.is-bottom { + margin-bottom: 0; + margin-top: 10px +} + +.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom { + border-bottom: 0; + border-top: 1px solid #DCDFE6 +} + +.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom { + margin-top: -1px; + margin-bottom: 0 +} + +.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active) { + border: 1px solid transparent +} + +.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom { + margin: 0 -1px -1px +} + +.el-tabs--left, .el-tabs--right { + overflow: hidden +} + +.el-tabs--left .el-tabs__header.is-left, .el-tabs--left .el-tabs__header.is-right, .el-tabs--left .el-tabs__nav-scroll, .el-tabs--left .el-tabs__nav-wrap.is-left, .el-tabs--left .el-tabs__nav-wrap.is-right, .el-tabs--right .el-tabs__header.is-left, .el-tabs--right .el-tabs__header.is-right, .el-tabs--right .el-tabs__nav-scroll, .el-tabs--right .el-tabs__nav-wrap.is-left, .el-tabs--right .el-tabs__nav-wrap.is-right { + height: 100% +} + +.el-tabs--left .el-tabs__active-bar.is-left, .el-tabs--left .el-tabs__active-bar.is-right, .el-tabs--right .el-tabs__active-bar.is-left, .el-tabs--right .el-tabs__active-bar.is-right { + top: 0; + bottom: auto; + width: 2px; + height: auto +} + +.el-tabs--left .el-tabs__nav-wrap.is-left, .el-tabs--left .el-tabs__nav-wrap.is-right, .el-tabs--right .el-tabs__nav-wrap.is-left, .el-tabs--right .el-tabs__nav-wrap.is-right { + margin-bottom: 0 +} + +.el-tabs--left .el-tabs__nav-wrap.is-left > .el-tabs__nav-next, .el-tabs--left .el-tabs__nav-wrap.is-left > .el-tabs__nav-prev, .el-tabs--left .el-tabs__nav-wrap.is-right > .el-tabs__nav-next, .el-tabs--left .el-tabs__nav-wrap.is-right > .el-tabs__nav-prev, .el-tabs--right .el-tabs__nav-wrap.is-left > .el-tabs__nav-next, .el-tabs--right .el-tabs__nav-wrap.is-left > .el-tabs__nav-prev, .el-tabs--right .el-tabs__nav-wrap.is-right > .el-tabs__nav-next, .el-tabs--right .el-tabs__nav-wrap.is-right > .el-tabs__nav-prev { + height: 30px; + line-height: 30px; + width: 100%; + text-align: center; + cursor: pointer +} + +.el-tabs--left .el-tabs__nav-wrap.is-left > .el-tabs__nav-next i, .el-tabs--left .el-tabs__nav-wrap.is-left > .el-tabs__nav-prev i, .el-tabs--left .el-tabs__nav-wrap.is-right > .el-tabs__nav-next i, .el-tabs--left .el-tabs__nav-wrap.is-right > .el-tabs__nav-prev i, .el-tabs--right .el-tabs__nav-wrap.is-left > .el-tabs__nav-next i, .el-tabs--right .el-tabs__nav-wrap.is-left > .el-tabs__nav-prev i, .el-tabs--right .el-tabs__nav-wrap.is-right > .el-tabs__nav-next i, .el-tabs--right .el-tabs__nav-wrap.is-right > .el-tabs__nav-prev i { + -webkit-transform: rotateZ(90deg); + transform: rotateZ(90deg) +} + +.el-tabs--left .el-tabs__nav-wrap.is-left > .el-tabs__nav-prev, .el-tabs--left .el-tabs__nav-wrap.is-right > .el-tabs__nav-prev, .el-tabs--right .el-tabs__nav-wrap.is-left > .el-tabs__nav-prev, .el-tabs--right .el-tabs__nav-wrap.is-right > .el-tabs__nav-prev { + left: auto; + top: 0 +} + +.el-tabs--left .el-tabs__nav-wrap.is-left > .el-tabs__nav-next, .el-tabs--left .el-tabs__nav-wrap.is-right > .el-tabs__nav-next, .el-tabs--right .el-tabs__nav-wrap.is-left > .el-tabs__nav-next, .el-tabs--right .el-tabs__nav-wrap.is-right > .el-tabs__nav-next { + right: auto; + bottom: 0 +} + +.el-tabs--left .el-tabs__active-bar.is-left, .el-tabs--left .el-tabs__nav-wrap.is-left::after { + right: 0; + left: auto +} + +.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable, .el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable, .el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable, .el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable { + padding: 30px 0 +} + +.el-tabs--left .el-tabs__nav-wrap.is-left::after, .el-tabs--left .el-tabs__nav-wrap.is-right::after, .el-tabs--right .el-tabs__nav-wrap.is-left::after, .el-tabs--right .el-tabs__nav-wrap.is-right::after { + height: 100%; + width: 2px; + bottom: auto; + top: 0 +} + +.el-tabs--left .el-tabs__nav.is-left, .el-tabs--left .el-tabs__nav.is-right, .el-tabs--right .el-tabs__nav.is-left, .el-tabs--right .el-tabs__nav.is-right { + float: none +} + +.el-tabs--left .el-tabs__item.is-left, .el-tabs--left .el-tabs__item.is-right, .el-tabs--right .el-tabs__item.is-left, .el-tabs--right .el-tabs__item.is-right { + display: block +} + +.el-tabs--left .el-tabs__header.is-left { + float: left; + margin-bottom: 0; + margin-right: 10px +} + +.el-button-group > .el-button:not(:last-child), .el-tabs--left .el-tabs__nav-wrap.is-left { + margin-right: -1px +} + +.el-tabs--left .el-tabs__item.is-left { + text-align: right +} + +.el-tabs--left.el-tabs--card .el-tabs__item.is-left { + border-left: none; + border-right: 1px solid #E4E7ED; + border-bottom: none; + border-top: 1px solid #E4E7ED; + text-align: left +} + +.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child { + border-right: 1px solid #E4E7ED; + border-top: none +} + +.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active { + border: 1px solid #E4E7ED; + border-right-color: #fff; + border-left: none; + border-bottom: none +} + +.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child { + border-top: none +} + +.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child { + border-bottom: none +} + +.el-tabs--left.el-tabs--card .el-tabs__nav { + border-radius: 4px 0 0 4px; + border-bottom: 1px solid #E4E7ED; + border-right: none +} + +.el-tabs--left.el-tabs--card .el-tabs__new-tab { + float: none +} + +.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left { + border-right: 1px solid #dfe4ed +} + +.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left { + border: 1px solid transparent; + margin: -1px 0 -1px -1px +} + +.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active { + border-color: #d1dbe5 transparent +} + +.el-tabs--right .el-tabs__header.is-right { + float: right; + margin-bottom: 0; + margin-left: 10px +} + +.el-tabs--right .el-tabs__nav-wrap.is-right { + margin-left: -1px +} + +.el-tabs--right .el-tabs__nav-wrap.is-right::after { + left: 0; + right: auto +} + +.el-tabs--right .el-tabs__active-bar.is-right { + left: 0 +} + +.el-tabs--right.el-tabs--card .el-tabs__item.is-right { + border-bottom: none; + border-top: 1px solid #E4E7ED +} + +.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child { + border-left: 1px solid #E4E7ED; + border-top: none +} + +.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active { + border: 1px solid #E4E7ED; + border-left-color: #fff; + border-right: none; + border-bottom: none +} + +.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child { + border-top: none +} + +.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child { + border-bottom: none +} + +.el-tabs--right.el-tabs--card .el-tabs__nav { + border-radius: 0 4px 4px 0; + border-bottom: 1px solid #E4E7ED; + border-left: none +} + +.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right { + border-left: 1px solid #dfe4ed +} + +.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right { + border: 1px solid transparent; + margin: -1px -1px -1px 0 +} + +.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active { + border-color: #d1dbe5 transparent +} + +.slideInLeft-transition, .slideInRight-transition { + display: inline-block +} + +.slideInRight-enter { + -webkit-animation: slideInRight-enter .3s; + animation: slideInRight-enter .3s +} + +.slideInRight-leave { + position: absolute; + left: 0; + right: 0; + -webkit-animation: slideInRight-leave .3s; + animation: slideInRight-leave .3s +} + +.slideInLeft-enter { + -webkit-animation: slideInLeft-enter .3s; + animation: slideInLeft-enter .3s +} + +.slideInLeft-leave { + position: absolute; + left: 0; + right: 0; + -webkit-animation: slideInLeft-leave .3s; + animation: slideInLeft-leave .3s +} + +@-webkit-keyframes slideInRight-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%) + } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0) + } +} + +@keyframes slideInRight-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%) + } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0) + } +} + +@-webkit-keyframes slideInRight-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1 + } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); + opacity: 0 + } +} + +@keyframes slideInRight-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1 + } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(100%); + transform: translateX(100%); + opacity: 0 + } +} + +@-webkit-keyframes slideInLeft-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%) + } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0) + } +} + +@keyframes slideInLeft-enter { + 0% { + opacity: 0; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%) + } + to { + opacity: 1; + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0) + } +} + +@-webkit-keyframes slideInLeft-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1 + } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + opacity: 0 + } +} + +@keyframes slideInLeft-leave { + 0% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 1 + } + 100% { + -webkit-transform-origin: 0 0; + transform-origin: 0 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + opacity: 0 + } +} + +.el-tree { + position: relative; + cursor: default; + background: #FFF; + color: #606266 +} + +.el-tree__empty-block { + position: relative; + min-height: 60px; + text-align: center; + width: 100%; + height: 100% +} + +.el-tree__empty-text { + position: absolute; + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + color: #909399; + font-size: 14px +} + +.el-tree__drop-indicator { + position: absolute; + left: 0; + right: 0; + height: 1px; + background-color: #409EFF +} + +.el-tree-node { + white-space: nowrap; + outline: 0 +} + +.el-tree-node:focus > .el-tree-node__content { + background-color: #F5F7FA +} + +.el-tree-node.is-drop-inner > .el-tree-node__content .el-tree-node__label { + background-color: #409EFF; + color: #fff +} + +.el-tree-node__content:hover, .el-upload-list__item:hover { + background-color: #F5F7FA +} + +.el-tree-node__content { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 26px; + cursor: pointer +} + +.el-tree-node__content > .el-tree-node__expand-icon { + padding: 6px +} + +.el-tree-node__content > label.el-checkbox { + margin-right: 8px +} + +.el-tree.is-dragging .el-tree-node__content { + cursor: move +} + +.el-tree.is-dragging .el-tree-node__content * { + pointer-events: none +} + +.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content { + cursor: not-allowed +} + +.el-tree-node__expand-icon { + cursor: pointer; + color: #C0C4CC; + font-size: 12px; + -webkit-transform: rotate(0); + transform: rotate(0); + -webkit-transition: -webkit-transform .3s ease-in-out; + transition: -webkit-transform .3s ease-in-out; + transition: transform .3s ease-in-out; + transition: transform .3s ease-in-out, -webkit-transform .3s ease-in-out +} + +.el-tree-node__expand-icon.expanded { + -webkit-transform: rotate(90deg); + transform: rotate(90deg) +} + +.el-tree-node__expand-icon.is-leaf { + color: transparent; + cursor: default +} + +.el-tree-node__label { + font-size: 14px +} + +.el-tree-node__loading-icon { + margin-right: 8px; + font-size: 14px; + color: #C0C4CC +} + +.el-tree-node > .el-tree-node__children { + overflow: hidden; + background-color: transparent +} + +.el-tree-node.is-expanded > .el-tree-node__children { + display: block +} + +.el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content { + background-color: #f0f7ff +} + +.el-alert { + width: 100%; + padding: 8px 16px; + margin: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 4px; + position: relative; + background-color: #FFF; + overflow: hidden; + opacity: 1; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-transition: opacity .2s; + transition: opacity .2s +} + +.el-alert.is-light .el-alert__closebtn { + color: #C0C4CC +} + +.el-alert.is-dark .el-alert__closebtn, .el-alert.is-dark .el-alert__description { + color: #FFF +} + +.el-alert.is-center { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center +} + +.el-alert--success.is-light { + background-color: #f0f9eb; + color: #67C23A +} + +.el-alert--success.is-light .el-alert__description { + color: #67C23A +} + +.el-alert--success.is-dark { + background-color: #67C23A; + color: #FFF +} + +.el-alert--info.is-light { + background-color: #f4f4f5; + color: #909399 +} + +.el-alert--info.is-dark { + background-color: #909399; + color: #FFF +} + +.el-alert--info .el-alert__description { + color: #909399 +} + +.el-alert--warning.is-light { + background-color: #fdf6ec; + color: #E6A23C +} + +.el-alert--warning.is-light .el-alert__description { + color: #E6A23C +} + +.el-alert--warning.is-dark { + background-color: #E6A23C; + color: #FFF +} + +.el-alert--error.is-light { + background-color: #fef0f0; + color: #F56C6C +} + +.el-alert--error.is-light .el-alert__description { + color: #F56C6C +} + +.el-alert--error.is-dark { + background-color: #F56C6C; + color: #FFF +} + +.el-alert__content { + display: table-cell; + padding: 0 8px +} + +.el-alert__icon { + font-size: 16px; + width: 16px +} + +.el-alert__icon.is-big { + font-size: 28px; + width: 28px +} + +.el-alert__title { + font-size: 13px; + line-height: 18px +} + +.el-alert__title.is-bold { + font-weight: 700 +} + +.el-alert .el-alert__description { + font-size: 12px; + margin: 5px 0 0 +} + +.el-alert__closebtn { + font-size: 12px; + opacity: 1; + position: absolute; + top: 12px; + right: 15px; + cursor: pointer +} + +.el-alert-fade-enter, .el-alert-fade-leave-active, .el-loading-fade-enter, .el-loading-fade-leave-active, .el-notification-fade-leave-active, .el-upload iframe { + opacity: 0 +} + +.el-carousel__arrow--right, .el-notification.right { + right: 16px +} + +.el-alert__closebtn.is-customed { + font-style: normal; + font-size: 13px; + top: 9px +} + +.el-notification { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + width: 330px; + padding: 14px 26px 14px 13px; + border-radius: 8px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #EBEEF5; + position: fixed; + background-color: #FFF; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1); + -webkit-transition: opacity .3s, left .3s, right .3s, top .4s, bottom .3s, -webkit-transform .3s; + transition: opacity .3s, left .3s, right .3s, top .4s, bottom .3s, -webkit-transform .3s; + transition: opacity .3s, transform .3s, left .3s, right .3s, top .4s, bottom .3s; + transition: opacity .3s, transform .3s, left .3s, right .3s, top .4s, bottom .3s, -webkit-transform .3s; + overflow: hidden +} + +.el-notification.left { + left: 16px +} + +.el-notification__group { + margin-left: 13px; + margin-right: 8px +} + +.el-notification__title { + font-weight: 700; + font-size: 16px; + color: #303133; + margin: 0 +} + +.el-notification__content { + font-size: 14px; + line-height: 21px; + margin: 6px 0 0; + color: #606266; + text-align: justify +} + +.el-notification__content p { + margin: 0 +} + +.el-notification__icon { + height: 24px; + width: 24px; + font-size: 24px +} + +.el-notification__closeBtn { + position: absolute; + top: 18px; + right: 15px; + cursor: pointer; + color: #909399; + font-size: 16px +} + +.el-notification__closeBtn:hover { + color: #606266 +} + +.el-notification .el-icon-success { + color: #67C23A +} + +.el-notification .el-icon-error { + color: #F56C6C +} + +.el-notification .el-icon-info { + color: #909399 +} + +.el-notification .el-icon-warning { + color: #E6A23C +} + +.el-notification-fade-enter.right { + right: 0; + -webkit-transform: translateX(100%); + transform: translateX(100%) +} + +.el-notification-fade-enter.left { + left: 0; + -webkit-transform: translateX(-100%); + transform: translateX(-100%) +} + +.el-input-number { + position: relative; + display: inline-block; + width: 180px; + line-height: 38px +} + +.el-input-number .el-input { + display: block +} + +.el-input-number .el-input__inner { + -webkit-appearance: none; + padding-left: 50px; + padding-right: 50px; + text-align: center +} + +.el-input-number__decrease, .el-input-number__increase { + position: absolute; + z-index: 1; + top: 1px; + width: 40px; + height: auto; + text-align: center; + background: #F5F7FA; + color: #606266; + cursor: pointer; + font-size: 13px +} + +.el-input-number__decrease:hover, .el-input-number__increase:hover { + color: #409EFF +} + +.el-input-number__decrease:hover:not(.is-disabled) ~ .el-input .el-input__inner:not(.is-disabled), .el-input-number__increase:hover:not(.is-disabled) ~ .el-input .el-input__inner:not(.is-disabled) { + border-color: #409EFF +} + +.el-input-number__decrease.is-disabled, .el-input-number__increase.is-disabled { + color: #C0C4CC; + cursor: not-allowed +} + +.el-input-number__increase { + right: 1px; + border-radius: 0 4px 4px 0; + border-left: 1px solid #DCDFE6 +} + +.el-input-number__decrease { + left: 1px; + border-radius: 4px 0 0 4px; + border-right: 1px solid #DCDFE6 +} + +.el-input-number.is-disabled .el-input-number__decrease, .el-input-number.is-disabled .el-input-number__increase { + border-color: #E4E7ED; + color: #E4E7ED +} + +.el-input-number.is-disabled .el-input-number__decrease:hover, .el-input-number.is-disabled .el-input-number__increase:hover { + color: #E4E7ED; + cursor: not-allowed +} + +.el-input-number--medium { + width: 200px; + line-height: 34px +} + +.el-input-number--medium .el-input-number__decrease, .el-input-number--medium .el-input-number__increase { + width: 36px; + font-size: 14px +} + +.el-input-number--medium .el-input__inner { + padding-left: 43px; + padding-right: 43px +} + +.el-input-number--small { + width: 130px; + line-height: 30px +} + +.el-input-number--small .el-input-number__decrease, .el-input-number--small .el-input-number__increase { + width: 32px; + font-size: 13px +} + +.el-input-number--small .el-input-number__decrease [class*=el-icon], .el-input-number--small .el-input-number__increase [class*=el-icon] { + -webkit-transform: scale(.9); + transform: scale(.9) +} + +.el-input-number--small .el-input__inner { + padding-left: 39px; + padding-right: 39px +} + +.el-input-number--mini { + width: 130px; + line-height: 26px +} + +.el-input-number--mini .el-input-number__decrease, .el-input-number--mini .el-input-number__increase { + width: 28px; + font-size: 12px +} + +.el-input-number--mini .el-input-number__decrease [class*=el-icon], .el-input-number--mini .el-input-number__increase [class*=el-icon] { + -webkit-transform: scale(.8); + transform: scale(.8) +} + +.el-input-number--mini .el-input__inner { + padding-left: 35px; + padding-right: 35px +} + +.el-input-number.is-without-controls .el-input__inner { + padding-left: 15px; + padding-right: 15px +} + +.el-input-number.is-controls-right .el-input__inner { + padding-left: 15px; + padding-right: 50px +} + +.el-input-number.is-controls-right .el-input-number__decrease, .el-input-number.is-controls-right .el-input-number__increase { + height: auto; + line-height: 19px +} + +.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon], .el-input-number.is-controls-right .el-input-number__increase [class*=el-icon] { + -webkit-transform: scale(.8); + transform: scale(.8) +} + +.el-input-number.is-controls-right .el-input-number__increase { + border-radius: 0 4px 0 0; + border-bottom: 1px solid #DCDFE6 +} + +.el-input-number.is-controls-right .el-input-number__decrease { + right: 1px; + bottom: 1px; + top: auto; + left: auto; + border-right: none; + border-left: 1px solid #DCDFE6; + border-radius: 0 0 4px +} + +.el-input-number.is-controls-right[class*=medium] [class*=decrease], .el-input-number.is-controls-right[class*=medium] [class*=increase] { + line-height: 17px +} + +.el-input-number.is-controls-right[class*=small] [class*=decrease], .el-input-number.is-controls-right[class*=small] [class*=increase] { + line-height: 15px +} + +.el-input-number.is-controls-right[class*=mini] [class*=decrease], .el-input-number.is-controls-right[class*=mini] [class*=increase] { + line-height: 13px +} + +.el-tooltip:focus:hover, .el-tooltip:focus:not(.focusing) { + outline-width: 0 +} + +.el-tooltip__popper { + position: absolute; + border-radius: 4px; + padding: 10px; + z-index: 2000; + font-size: 12px; + line-height: 1.2; + min-width: 10px; + word-wrap: break-word +} + +.el-tooltip__popper .popper__arrow, .el-tooltip__popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid +} + +.el-tooltip__popper .popper__arrow { + border-width: 6px +} + +.el-tooltip__popper .popper__arrow::after { + content: " "; + border-width: 5px +} + +.el-button-group::after, .el-button-group::before, .el-color-dropdown__main-wrapper::after, .el-link.is-underline:hover:after, .el-page-header__left::after, .el-progress-bar__inner::after, .el-row::after, .el-row::before, .el-slider::after, .el-slider::before, .el-slider__button-wrapper::after, .el-transfer-panel .el-transfer-panel__footer::after, .el-upload-cover::after, .el-upload-list--picture-card .el-upload-list__item-actions::after { + content: "" +} + +.el-tooltip__popper[x-placement^=top] { + margin-bottom: 12px +} + +.el-tooltip__popper[x-placement^=top] .popper__arrow { + bottom: -6px; + border-top-color: #303133; + border-bottom-width: 0 +} + +.el-tooltip__popper[x-placement^=top] .popper__arrow::after { + bottom: 1px; + margin-left: -5px; + border-top-color: #303133; + border-bottom-width: 0 +} + +.el-tooltip__popper[x-placement^=bottom] { + margin-top: 12px +} + +.el-tooltip__popper[x-placement^=bottom] .popper__arrow { + top: -6px; + border-top-width: 0; + border-bottom-color: #303133 +} + +.el-tooltip__popper[x-placement^=bottom] .popper__arrow::after { + top: 1px; + margin-left: -5px; + border-top-width: 0; + border-bottom-color: #303133 +} + +.el-tooltip__popper[x-placement^=right] { + margin-left: 12px +} + +.el-tooltip__popper[x-placement^=right] .popper__arrow { + left: -6px; + border-right-color: #303133; + border-left-width: 0 +} + +.el-tooltip__popper[x-placement^=right] .popper__arrow::after { + bottom: -5px; + left: 1px; + border-right-color: #303133; + border-left-width: 0 +} + +.el-tooltip__popper[x-placement^=left] { + margin-right: 12px +} + +.el-tooltip__popper[x-placement^=left] .popper__arrow { + right: -6px; + border-right-width: 0; + border-left-color: #303133 +} + +.el-tooltip__popper[x-placement^=left] .popper__arrow::after { + right: 1px; + bottom: -5px; + margin-left: -5px; + border-right-width: 0; + border-left-color: #303133 +} + +.el-tooltip__popper.is-dark { + background: #303133; + color: #FFF +} + +.el-tooltip__popper.is-light { + background: #FFF; + border: 1px solid #303133 +} + +.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow { + border-top-color: #303133 +} + +.el-tooltip__popper.is-light[x-placement^=top] .popper__arrow::after { + border-top-color: #FFF +} + +.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow { + border-bottom-color: #303133 +} + +.el-tooltip__popper.is-light[x-placement^=bottom] .popper__arrow::after { + border-bottom-color: #FFF +} + +.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow { + border-left-color: #303133 +} + +.el-tooltip__popper.is-light[x-placement^=left] .popper__arrow::after { + border-left-color: #FFF +} + +.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow { + border-right-color: #303133 +} + +.el-tooltip__popper.is-light[x-placement^=right] .popper__arrow::after { + border-right-color: #FFF +} + +.el-slider::after, .el-slider::before { + display: table +} + +.el-slider__button-wrapper .el-tooltip, .el-slider__button-wrapper::after { + display: inline-block; + vertical-align: middle +} + +.el-slider::after { + clear: both +} + +.el-slider__runway { + width: 100%; + height: 6px; + margin: 16px 0; + background-color: #E4E7ED; + border-radius: 3px; + position: relative; + cursor: pointer; + vertical-align: middle +} + +.el-slider__runway.show-input { + margin-right: 160px; + width: auto +} + +.el-slider__runway.disabled { + cursor: default +} + +.el-slider__runway.disabled .el-slider__bar { + background-color: #C0C4CC +} + +.el-slider__runway.disabled .el-slider__button { + border-color: #C0C4CC +} + +.el-slider__runway.disabled .el-slider__button-wrapper.dragging, .el-slider__runway.disabled .el-slider__button-wrapper.hover, .el-slider__runway.disabled .el-slider__button-wrapper:hover { + cursor: not-allowed +} + +.el-slider__runway.disabled .el-slider__button.dragging, .el-slider__runway.disabled .el-slider__button.hover, .el-slider__runway.disabled .el-slider__button:hover { + -webkit-transform: scale(1); + transform: scale(1); + cursor: not-allowed +} + +.el-slider__button-wrapper, .el-slider__stop { + -webkit-transform: translateX(-50%); + position: absolute +} + +.el-slider__input { + float: right; + margin-top: 3px; + width: 130px +} + +.el-slider__input.el-input-number--mini { + margin-top: 5px +} + +.el-slider__input.el-input-number--medium { + margin-top: 0 +} + +.el-slider__input.el-input-number--large { + margin-top: -2px +} + +.el-slider__bar { + height: 6px; + background-color: #409EFF; + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; + position: absolute +} + +.el-slider__button-wrapper { + height: 36px; + width: 36px; + z-index: 1001; + top: -15px; + transform: translateX(-50%); + background-color: transparent; + text-align: center; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + line-height: normal +} + +.el-image-viewer__btn, .el-slider__button, .el-step__icon-inner { + -moz-user-select: none; + -ms-user-select: none +} + +.el-slider__button-wrapper::after { + height: 100% +} + +.el-slider__button-wrapper.hover, .el-slider__button-wrapper:hover { + cursor: -webkit-grab; + cursor: grab +} + +.el-slider__button-wrapper.dragging { + cursor: -webkit-grabbing; + cursor: grabbing +} + +.el-slider__button { + width: 16px; + height: 16px; + border: 2px solid #409EFF; + background-color: #FFF; + border-radius: 50%; + -webkit-transition: .2s; + transition: .2s; + -webkit-user-select: none; + user-select: none +} + +.el-slider__button.dragging, .el-slider__button.hover, .el-slider__button:hover { + -webkit-transform: scale(1.2); + transform: scale(1.2) +} + +.el-slider__button.hover, .el-slider__button:hover { + cursor: -webkit-grab; + cursor: grab +} + +.el-slider__button.dragging { + cursor: -webkit-grabbing; + cursor: grabbing +} + +.el-slider__stop { + height: 6px; + width: 6px; + border-radius: 100%; + background-color: #FFF; + transform: translateX(-50%) +} + +.el-slider__marks { + top: 0; + left: 12px; + width: 18px; + height: 100% +} + +.el-slider__marks-text { + position: absolute; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + font-size: 14px; + color: #909399; + margin-top: 15px +} + +.el-slider.is-vertical { + position: relative +} + +.el-slider.is-vertical .el-slider__runway { + width: 6px; + height: 100%; + margin: 0 16px +} + +.el-slider.is-vertical .el-slider__bar { + width: 6px; + height: auto; + border-radius: 0 0 3px 3px +} + +.el-slider.is-vertical .el-slider__button-wrapper { + top: auto; + left: -15px; + -webkit-transform: translateY(50%); + transform: translateY(50%) +} + +.el-slider.is-vertical .el-slider__stop { + -webkit-transform: translateY(50%); + transform: translateY(50%) +} + +.el-slider.is-vertical.el-slider--with-input { + padding-bottom: 58px +} + +.el-slider.is-vertical.el-slider--with-input .el-slider__input { + overflow: visible; + float: none; + position: absolute; + bottom: 22px; + width: 36px; + margin-top: 15px +} + +.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input__inner { + text-align: center; + padding-left: 5px; + padding-right: 5px +} + +.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease, .el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase { + top: 32px; + margin-top: -1px; + border: 1px solid #DCDFE6; + line-height: 20px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-transition: border-color .2s cubic-bezier(.645, .045, .355, 1); + transition: border-color .2s cubic-bezier(.645, .045, .355, 1) +} + +.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__decrease { + width: 18px; + right: 18px; + border-bottom-left-radius: 4px +} + +.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase { + width: 19px; + border-bottom-right-radius: 4px +} + +.el-slider.is-vertical.el-slider--with-input .el-slider__input .el-input-number__increase ~ .el-input .el-input__inner { + border-bottom-left-radius: 0; + border-bottom-right-radius: 0 +} + +.el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__decrease, .el-slider.is-vertical.el-slider--with-input .el-slider__input:hover .el-input-number__increase { + border-color: #C0C4CC +} + +.el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__decrease, .el-slider.is-vertical.el-slider--with-input .el-slider__input:active .el-input-number__increase { + border-color: #409EFF +} + +.el-slider.is-vertical .el-slider__marks-text { + margin-top: 0; + left: 15px; + -webkit-transform: translateY(50%); + transform: translateY(50%) +} + +.el-loading-parent--relative { + position: relative !important +} + +.el-loading-parent--hidden { + overflow: hidden !important +} + +.el-loading-mask { + position: absolute; + z-index: 2000; + background-color: rgba(255, 255, 255, .9); + margin: 0; + top: 0; + right: 0; + bottom: 0; + left: 0; + -webkit-transition: opacity .3s; + transition: opacity .3s +} + +.el-loading-mask.is-fullscreen { + position: fixed +} + +.el-loading-mask.is-fullscreen .el-loading-spinner { + margin-top: -25px +} + +.el-loading-mask.is-fullscreen .el-loading-spinner .circular { + height: 50px; + width: 50px +} + +.el-loading-spinner { + top: 50%; + margin-top: -21px; + width: 100%; + text-align: center; + position: absolute +} + +.el-col-pull-0, .el-col-pull-1, .el-col-pull-10, .el-col-pull-11, .el-col-pull-12, .el-col-pull-13, .el-col-pull-14, .el-col-pull-15, .el-col-pull-16, .el-col-pull-17, .el-col-pull-18, .el-col-pull-19, .el-col-pull-2, .el-col-pull-20, .el-col-pull-21, .el-col-pull-22, .el-col-pull-23, .el-col-pull-24, .el-col-pull-3, .el-col-pull-4, .el-col-pull-5, .el-col-pull-6, .el-col-pull-7, .el-col-pull-8, .el-col-pull-9, .el-col-push-0, .el-col-push-1, .el-col-push-10, .el-col-push-11, .el-col-push-12, .el-col-push-13, .el-col-push-14, .el-col-push-15, .el-col-push-16, .el-col-push-17, .el-col-push-18, .el-col-push-19, .el-col-push-2, .el-col-push-20, .el-col-push-21, .el-col-push-22, .el-col-push-23, .el-col-push-24, .el-col-push-3, .el-col-push-4, .el-col-push-5, .el-col-push-6, .el-col-push-7, .el-col-push-8, .el-col-push-9, .el-row, .el-upload-dragger, .el-upload-list__item { + position: relative +} + +.el-loading-spinner .el-loading-text { + color: #409EFF; + margin: 3px 0; + font-size: 14px +} + +.el-loading-spinner .circular { + height: 42px; + width: 42px; + -webkit-animation: loading-rotate 2s linear infinite; + animation: loading-rotate 2s linear infinite +} + +.el-loading-spinner .path { + -webkit-animation: loading-dash 1.5s ease-in-out infinite; + animation: loading-dash 1.5s ease-in-out infinite; + stroke-dasharray: 90, 150; + stroke-dashoffset: 0; + stroke-width: 2; + stroke: #409EFF; + stroke-linecap: round +} + +.el-loading-spinner i { + color: #409EFF +} + +@-webkit-keyframes loading-rotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg) + } +} + +@keyframes loading-rotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg) + } +} + +@-webkit-keyframes loading-dash { + 0% { + stroke-dasharray: 1, 200; + stroke-dashoffset: 0 + } + 50% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -40px + } + 100% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -120px + } +} + +@keyframes loading-dash { + 0% { + stroke-dasharray: 1, 200; + stroke-dashoffset: 0 + } + 50% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -40px + } + 100% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -120px + } +} + +.el-row { + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-row::after, .el-row::before { + display: table +} + +.el-row::after { + clear: both +} + +.el-row--flex { + display: -webkit-box; + display: -ms-flexbox; + display: flex +} + +.el-col-0, .el-row--flex:after, .el-row--flex:before { + display: none +} + +.el-row--flex.is-justify-center { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center +} + +.el-row--flex.is-justify-end { + -webkit-box-pack: end; + -ms-flex-pack: end; + justify-content: flex-end +} + +.el-row--flex.is-justify-space-between { + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between +} + +.el-row--flex.is-justify-space-around { + -ms-flex-pack: distribute; + justify-content: space-around +} + +.el-row--flex.is-align-top { + -webkit-box-align: start; + -ms-flex-align: start; + align-items: flex-start +} + +.el-row--flex.is-align-middle { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center +} + +.el-row--flex.is-align-bottom { + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end +} + +[class*=el-col-] { + float: left; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-col-0 { + width: 0% +} + +.el-col-pull-0 { + right: 0 +} + +.el-col-push-0 { + left: 0 +} + +.el-col-1 { + width: 4.16667% +} + +.el-col-offset-1 { + margin-left: 4.16667% +} + +.el-col-pull-1 { + right: 4.16667% +} + +.el-col-push-1 { + left: 4.16667% +} + +.el-col-2 { + width: 8.33333% +} + +.el-col-offset-2 { + margin-left: 8.33333% +} + +.el-col-pull-2 { + right: 8.33333% +} + +.el-col-push-2 { + left: 8.33333% +} + +.el-col-3 { + width: 12.5% +} + +.el-col-offset-3 { + margin-left: 12.5% +} + +.el-col-pull-3 { + right: 12.5% +} + +.el-col-push-3 { + left: 12.5% +} + +.el-col-4 { + width: 16.66667% +} + +.el-col-offset-4 { + margin-left: 16.66667% +} + +.el-col-pull-4 { + right: 16.66667% +} + +.el-col-push-4 { + left: 16.66667% +} + +.el-col-5 { + width: 20.83333% +} + +.el-col-offset-5 { + margin-left: 20.83333% +} + +.el-col-pull-5 { + right: 20.83333% +} + +.el-col-push-5 { + left: 20.83333% +} + +.el-col-6 { + width: 25% +} + +.el-col-offset-6 { + margin-left: 25% +} + +.el-col-pull-6 { + right: 25% +} + +.el-col-push-6 { + left: 25% +} + +.el-col-7 { + width: 29.16667% +} + +.el-col-offset-7 { + margin-left: 29.16667% +} + +.el-col-pull-7 { + right: 29.16667% +} + +.el-col-push-7 { + left: 29.16667% +} + +.el-col-8 { + width: 33.33333% +} + +.el-col-offset-8 { + margin-left: 33.33333% +} + +.el-col-pull-8 { + right: 33.33333% +} + +.el-col-push-8 { + left: 33.33333% +} + +.el-col-9 { + width: 37.5% +} + +.el-col-offset-9 { + margin-left: 37.5% +} + +.el-col-pull-9 { + right: 37.5% +} + +.el-col-push-9 { + left: 37.5% +} + +.el-col-10 { + width: 41.66667% +} + +.el-col-offset-10 { + margin-left: 41.66667% +} + +.el-col-pull-10 { + right: 41.66667% +} + +.el-col-push-10 { + left: 41.66667% +} + +.el-col-11 { + width: 45.83333% +} + +.el-col-offset-11 { + margin-left: 45.83333% +} + +.el-col-pull-11 { + right: 45.83333% +} + +.el-col-push-11 { + left: 45.83333% +} + +.el-col-12 { + width: 50% +} + +.el-col-offset-12 { + margin-left: 50% +} + +.el-col-pull-12 { + right: 50% +} + +.el-col-push-12 { + left: 50% +} + +.el-col-13 { + width: 54.16667% +} + +.el-col-offset-13 { + margin-left: 54.16667% +} + +.el-col-pull-13 { + right: 54.16667% +} + +.el-col-push-13 { + left: 54.16667% +} + +.el-col-14 { + width: 58.33333% +} + +.el-col-offset-14 { + margin-left: 58.33333% +} + +.el-col-pull-14 { + right: 58.33333% +} + +.el-col-push-14 { + left: 58.33333% +} + +.el-col-15 { + width: 62.5% +} + +.el-col-offset-15 { + margin-left: 62.5% +} + +.el-col-pull-15 { + right: 62.5% +} + +.el-col-push-15 { + left: 62.5% +} + +.el-col-16 { + width: 66.66667% +} + +.el-col-offset-16 { + margin-left: 66.66667% +} + +.el-col-pull-16 { + right: 66.66667% +} + +.el-col-push-16 { + left: 66.66667% +} + +.el-col-17 { + width: 70.83333% +} + +.el-col-offset-17 { + margin-left: 70.83333% +} + +.el-col-pull-17 { + right: 70.83333% +} + +.el-col-push-17 { + left: 70.83333% +} + +.el-col-18 { + width: 75% +} + +.el-col-offset-18 { + margin-left: 75% +} + +.el-col-pull-18 { + right: 75% +} + +.el-col-push-18 { + left: 75% +} + +.el-col-19 { + width: 79.16667% +} + +.el-col-offset-19 { + margin-left: 79.16667% +} + +.el-col-pull-19 { + right: 79.16667% +} + +.el-col-push-19 { + left: 79.16667% +} + +.el-col-20 { + width: 83.33333% +} + +.el-col-offset-20 { + margin-left: 83.33333% +} + +.el-col-pull-20 { + right: 83.33333% +} + +.el-col-push-20 { + left: 83.33333% +} + +.el-col-21 { + width: 87.5% +} + +.el-col-offset-21 { + margin-left: 87.5% +} + +.el-col-pull-21 { + right: 87.5% +} + +.el-col-push-21 { + left: 87.5% +} + +.el-col-22 { + width: 91.66667% +} + +.el-col-offset-22 { + margin-left: 91.66667% +} + +.el-col-pull-22 { + right: 91.66667% +} + +.el-col-push-22 { + left: 91.66667% +} + +.el-col-23 { + width: 95.83333% +} + +.el-col-offset-23 { + margin-left: 95.83333% +} + +.el-col-pull-23 { + right: 95.83333% +} + +.el-col-push-23 { + left: 95.83333% +} + +.el-col-24 { + width: 100% +} + +.el-col-offset-24 { + margin-left: 100% +} + +.el-col-pull-24 { + right: 100% +} + +.el-col-push-24 { + left: 100% +} + +@media only screen and (max-width: 767px) { + .el-col-xs-0 { + display: none; + width: 0% + } + + .el-col-xs-offset-0 { + margin-left: 0 + } + + .el-col-xs-pull-0 { + position: relative; + right: 0 + } + + .el-col-xs-push-0 { + position: relative; + left: 0 + } + + .el-col-xs-1 { + width: 4.16667% + } + + .el-col-xs-offset-1 { + margin-left: 4.16667% + } + + .el-col-xs-pull-1 { + position: relative; + right: 4.16667% + } + + .el-col-xs-push-1 { + position: relative; + left: 4.16667% + } + + .el-col-xs-2 { + width: 8.33333% + } + + .el-col-xs-offset-2 { + margin-left: 8.33333% + } + + .el-col-xs-pull-2 { + position: relative; + right: 8.33333% + } + + .el-col-xs-push-2 { + position: relative; + left: 8.33333% + } + + .el-col-xs-3 { + width: 12.5% + } + + .el-col-xs-offset-3 { + margin-left: 12.5% + } + + .el-col-xs-pull-3 { + position: relative; + right: 12.5% + } + + .el-col-xs-push-3 { + position: relative; + left: 12.5% + } + + .el-col-xs-4 { + width: 16.66667% + } + + .el-col-xs-offset-4 { + margin-left: 16.66667% + } + + .el-col-xs-pull-4 { + position: relative; + right: 16.66667% + } + + .el-col-xs-push-4 { + position: relative; + left: 16.66667% + } + + .el-col-xs-5 { + width: 20.83333% + } + + .el-col-xs-offset-5 { + margin-left: 20.83333% + } + + .el-col-xs-pull-5 { + position: relative; + right: 20.83333% + } + + .el-col-xs-push-5 { + position: relative; + left: 20.83333% + } + + .el-col-xs-6 { + width: 25% + } + + .el-col-xs-offset-6 { + margin-left: 25% + } + + .el-col-xs-pull-6 { + position: relative; + right: 25% + } + + .el-col-xs-push-6 { + position: relative; + left: 25% + } + + .el-col-xs-7 { + width: 29.16667% + } + + .el-col-xs-offset-7 { + margin-left: 29.16667% + } + + .el-col-xs-pull-7 { + position: relative; + right: 29.16667% + } + + .el-col-xs-push-7 { + position: relative; + left: 29.16667% + } + + .el-col-xs-8 { + width: 33.33333% + } + + .el-col-xs-offset-8 { + margin-left: 33.33333% + } + + .el-col-xs-pull-8 { + position: relative; + right: 33.33333% + } + + .el-col-xs-push-8 { + position: relative; + left: 33.33333% + } + + .el-col-xs-9 { + width: 37.5% + } + + .el-col-xs-offset-9 { + margin-left: 37.5% + } + + .el-col-xs-pull-9 { + position: relative; + right: 37.5% + } + + .el-col-xs-push-9 { + position: relative; + left: 37.5% + } + + .el-col-xs-10 { + width: 41.66667% + } + + .el-col-xs-offset-10 { + margin-left: 41.66667% + } + + .el-col-xs-pull-10 { + position: relative; + right: 41.66667% + } + + .el-col-xs-push-10 { + position: relative; + left: 41.66667% + } + + .el-col-xs-11 { + width: 45.83333% + } + + .el-col-xs-offset-11 { + margin-left: 45.83333% + } + + .el-col-xs-pull-11 { + position: relative; + right: 45.83333% + } + + .el-col-xs-push-11 { + position: relative; + left: 45.83333% + } + + .el-col-xs-12 { + width: 50% + } + + .el-col-xs-offset-12 { + margin-left: 50% + } + + .el-col-xs-pull-12 { + position: relative; + right: 50% + } + + .el-col-xs-push-12 { + position: relative; + left: 50% + } + + .el-col-xs-13 { + width: 54.16667% + } + + .el-col-xs-offset-13 { + margin-left: 54.16667% + } + + .el-col-xs-pull-13 { + position: relative; + right: 54.16667% + } + + .el-col-xs-push-13 { + position: relative; + left: 54.16667% + } + + .el-col-xs-14 { + width: 58.33333% + } + + .el-col-xs-offset-14 { + margin-left: 58.33333% + } + + .el-col-xs-pull-14 { + position: relative; + right: 58.33333% + } + + .el-col-xs-push-14 { + position: relative; + left: 58.33333% + } + + .el-col-xs-15 { + width: 62.5% + } + + .el-col-xs-offset-15 { + margin-left: 62.5% + } + + .el-col-xs-pull-15 { + position: relative; + right: 62.5% + } + + .el-col-xs-push-15 { + position: relative; + left: 62.5% + } + + .el-col-xs-16 { + width: 66.66667% + } + + .el-col-xs-offset-16 { + margin-left: 66.66667% + } + + .el-col-xs-pull-16 { + position: relative; + right: 66.66667% + } + + .el-col-xs-push-16 { + position: relative; + left: 66.66667% + } + + .el-col-xs-17 { + width: 70.83333% + } + + .el-col-xs-offset-17 { + margin-left: 70.83333% + } + + .el-col-xs-pull-17 { + position: relative; + right: 70.83333% + } + + .el-col-xs-push-17 { + position: relative; + left: 70.83333% + } + + .el-col-xs-18 { + width: 75% + } + + .el-col-xs-offset-18 { + margin-left: 75% + } + + .el-col-xs-pull-18 { + position: relative; + right: 75% + } + + .el-col-xs-push-18 { + position: relative; + left: 75% + } + + .el-col-xs-19 { + width: 79.16667% + } + + .el-col-xs-offset-19 { + margin-left: 79.16667% + } + + .el-col-xs-pull-19 { + position: relative; + right: 79.16667% + } + + .el-col-xs-push-19 { + position: relative; + left: 79.16667% + } + + .el-col-xs-20 { + width: 83.33333% + } + + .el-col-xs-offset-20 { + margin-left: 83.33333% + } + + .el-col-xs-pull-20 { + position: relative; + right: 83.33333% + } + + .el-col-xs-push-20 { + position: relative; + left: 83.33333% + } + + .el-col-xs-21 { + width: 87.5% + } + + .el-col-xs-offset-21 { + margin-left: 87.5% + } + + .el-col-xs-pull-21 { + position: relative; + right: 87.5% + } + + .el-col-xs-push-21 { + position: relative; + left: 87.5% + } + + .el-col-xs-22 { + width: 91.66667% + } + + .el-col-xs-offset-22 { + margin-left: 91.66667% + } + + .el-col-xs-pull-22 { + position: relative; + right: 91.66667% + } + + .el-col-xs-push-22 { + position: relative; + left: 91.66667% + } + + .el-col-xs-23 { + width: 95.83333% + } + + .el-col-xs-offset-23 { + margin-left: 95.83333% + } + + .el-col-xs-pull-23 { + position: relative; + right: 95.83333% + } + + .el-col-xs-push-23 { + position: relative; + left: 95.83333% + } + + .el-col-xs-24 { + width: 100% + } + + .el-col-xs-offset-24 { + margin-left: 100% + } + + .el-col-xs-pull-24 { + position: relative; + right: 100% + } + + .el-col-xs-push-24 { + position: relative; + left: 100% + } +} + +@media only screen and (min-width: 768px) { + .el-col-sm-0 { + display: none; + width: 0% + } + + .el-col-sm-offset-0 { + margin-left: 0 + } + + .el-col-sm-pull-0 { + position: relative; + right: 0 + } + + .el-col-sm-push-0 { + position: relative; + left: 0 + } + + .el-col-sm-1 { + width: 4.16667% + } + + .el-col-sm-offset-1 { + margin-left: 4.16667% + } + + .el-col-sm-pull-1 { + position: relative; + right: 4.16667% + } + + .el-col-sm-push-1 { + position: relative; + left: 4.16667% + } + + .el-col-sm-2 { + width: 8.33333% + } + + .el-col-sm-offset-2 { + margin-left: 8.33333% + } + + .el-col-sm-pull-2 { + position: relative; + right: 8.33333% + } + + .el-col-sm-push-2 { + position: relative; + left: 8.33333% + } + + .el-col-sm-3 { + width: 12.5% + } + + .el-col-sm-offset-3 { + margin-left: 12.5% + } + + .el-col-sm-pull-3 { + position: relative; + right: 12.5% + } + + .el-col-sm-push-3 { + position: relative; + left: 12.5% + } + + .el-col-sm-4 { + width: 16.66667% + } + + .el-col-sm-offset-4 { + margin-left: 16.66667% + } + + .el-col-sm-pull-4 { + position: relative; + right: 16.66667% + } + + .el-col-sm-push-4 { + position: relative; + left: 16.66667% + } + + .el-col-sm-5 { + width: 20.83333% + } + + .el-col-sm-offset-5 { + margin-left: 20.83333% + } + + .el-col-sm-pull-5 { + position: relative; + right: 20.83333% + } + + .el-col-sm-push-5 { + position: relative; + left: 20.83333% + } + + .el-col-sm-6 { + width: 25% + } + + .el-col-sm-offset-6 { + margin-left: 25% + } + + .el-col-sm-pull-6 { + position: relative; + right: 25% + } + + .el-col-sm-push-6 { + position: relative; + left: 25% + } + + .el-col-sm-7 { + width: 29.16667% + } + + .el-col-sm-offset-7 { + margin-left: 29.16667% + } + + .el-col-sm-pull-7 { + position: relative; + right: 29.16667% + } + + .el-col-sm-push-7 { + position: relative; + left: 29.16667% + } + + .el-col-sm-8 { + width: 33.33333% + } + + .el-col-sm-offset-8 { + margin-left: 33.33333% + } + + .el-col-sm-pull-8 { + position: relative; + right: 33.33333% + } + + .el-col-sm-push-8 { + position: relative; + left: 33.33333% + } + + .el-col-sm-9 { + width: 37.5% + } + + .el-col-sm-offset-9 { + margin-left: 37.5% + } + + .el-col-sm-pull-9 { + position: relative; + right: 37.5% + } + + .el-col-sm-push-9 { + position: relative; + left: 37.5% + } + + .el-col-sm-10 { + width: 41.66667% + } + + .el-col-sm-offset-10 { + margin-left: 41.66667% + } + + .el-col-sm-pull-10 { + position: relative; + right: 41.66667% + } + + .el-col-sm-push-10 { + position: relative; + left: 41.66667% + } + + .el-col-sm-11 { + width: 45.83333% + } + + .el-col-sm-offset-11 { + margin-left: 45.83333% + } + + .el-col-sm-pull-11 { + position: relative; + right: 45.83333% + } + + .el-col-sm-push-11 { + position: relative; + left: 45.83333% + } + + .el-col-sm-12 { + width: 50% + } + + .el-col-sm-offset-12 { + margin-left: 50% + } + + .el-col-sm-pull-12 { + position: relative; + right: 50% + } + + .el-col-sm-push-12 { + position: relative; + left: 50% + } + + .el-col-sm-13 { + width: 54.16667% + } + + .el-col-sm-offset-13 { + margin-left: 54.16667% + } + + .el-col-sm-pull-13 { + position: relative; + right: 54.16667% + } + + .el-col-sm-push-13 { + position: relative; + left: 54.16667% + } + + .el-col-sm-14 { + width: 58.33333% + } + + .el-col-sm-offset-14 { + margin-left: 58.33333% + } + + .el-col-sm-pull-14 { + position: relative; + right: 58.33333% + } + + .el-col-sm-push-14 { + position: relative; + left: 58.33333% + } + + .el-col-sm-15 { + width: 62.5% + } + + .el-col-sm-offset-15 { + margin-left: 62.5% + } + + .el-col-sm-pull-15 { + position: relative; + right: 62.5% + } + + .el-col-sm-push-15 { + position: relative; + left: 62.5% + } + + .el-col-sm-16 { + width: 66.66667% + } + + .el-col-sm-offset-16 { + margin-left: 66.66667% + } + + .el-col-sm-pull-16 { + position: relative; + right: 66.66667% + } + + .el-col-sm-push-16 { + position: relative; + left: 66.66667% + } + + .el-col-sm-17 { + width: 70.83333% + } + + .el-col-sm-offset-17 { + margin-left: 70.83333% + } + + .el-col-sm-pull-17 { + position: relative; + right: 70.83333% + } + + .el-col-sm-push-17 { + position: relative; + left: 70.83333% + } + + .el-col-sm-18 { + width: 75% + } + + .el-col-sm-offset-18 { + margin-left: 75% + } + + .el-col-sm-pull-18 { + position: relative; + right: 75% + } + + .el-col-sm-push-18 { + position: relative; + left: 75% + } + + .el-col-sm-19 { + width: 79.16667% + } + + .el-col-sm-offset-19 { + margin-left: 79.16667% + } + + .el-col-sm-pull-19 { + position: relative; + right: 79.16667% + } + + .el-col-sm-push-19 { + position: relative; + left: 79.16667% + } + + .el-col-sm-20 { + width: 83.33333% + } + + .el-col-sm-offset-20 { + margin-left: 83.33333% + } + + .el-col-sm-pull-20 { + position: relative; + right: 83.33333% + } + + .el-col-sm-push-20 { + position: relative; + left: 83.33333% + } + + .el-col-sm-21 { + width: 87.5% + } + + .el-col-sm-offset-21 { + margin-left: 87.5% + } + + .el-col-sm-pull-21 { + position: relative; + right: 87.5% + } + + .el-col-sm-push-21 { + position: relative; + left: 87.5% + } + + .el-col-sm-22 { + width: 91.66667% + } + + .el-col-sm-offset-22 { + margin-left: 91.66667% + } + + .el-col-sm-pull-22 { + position: relative; + right: 91.66667% + } + + .el-col-sm-push-22 { + position: relative; + left: 91.66667% + } + + .el-col-sm-23 { + width: 95.83333% + } + + .el-col-sm-offset-23 { + margin-left: 95.83333% + } + + .el-col-sm-pull-23 { + position: relative; + right: 95.83333% + } + + .el-col-sm-push-23 { + position: relative; + left: 95.83333% + } + + .el-col-sm-24 { + width: 100% + } + + .el-col-sm-offset-24 { + margin-left: 100% + } + + .el-col-sm-pull-24 { + position: relative; + right: 100% + } + + .el-col-sm-push-24 { + position: relative; + left: 100% + } +} + +@media only screen and (min-width: 992px) { + .el-col-md-0 { + display: none; + width: 0% + } + + .el-col-md-offset-0 { + margin-left: 0 + } + + .el-col-md-pull-0 { + position: relative; + right: 0 + } + + .el-col-md-push-0 { + position: relative; + left: 0 + } + + .el-col-md-1 { + width: 4.16667% + } + + .el-col-md-offset-1 { + margin-left: 4.16667% + } + + .el-col-md-pull-1 { + position: relative; + right: 4.16667% + } + + .el-col-md-push-1 { + position: relative; + left: 4.16667% + } + + .el-col-md-2 { + width: 8.33333% + } + + .el-col-md-offset-2 { + margin-left: 8.33333% + } + + .el-col-md-pull-2 { + position: relative; + right: 8.33333% + } + + .el-col-md-push-2 { + position: relative; + left: 8.33333% + } + + .el-col-md-3 { + width: 12.5% + } + + .el-col-md-offset-3 { + margin-left: 12.5% + } + + .el-col-md-pull-3 { + position: relative; + right: 12.5% + } + + .el-col-md-push-3 { + position: relative; + left: 12.5% + } + + .el-col-md-4 { + width: 16.66667% + } + + .el-col-md-offset-4 { + margin-left: 16.66667% + } + + .el-col-md-pull-4 { + position: relative; + right: 16.66667% + } + + .el-col-md-push-4 { + position: relative; + left: 16.66667% + } + + .el-col-md-5 { + width: 20.83333% + } + + .el-col-md-offset-5 { + margin-left: 20.83333% + } + + .el-col-md-pull-5 { + position: relative; + right: 20.83333% + } + + .el-col-md-push-5 { + position: relative; + left: 20.83333% + } + + .el-col-md-6 { + width: 25% + } + + .el-col-md-offset-6 { + margin-left: 25% + } + + .el-col-md-pull-6 { + position: relative; + right: 25% + } + + .el-col-md-push-6 { + position: relative; + left: 25% + } + + .el-col-md-7 { + width: 29.16667% + } + + .el-col-md-offset-7 { + margin-left: 29.16667% + } + + .el-col-md-pull-7 { + position: relative; + right: 29.16667% + } + + .el-col-md-push-7 { + position: relative; + left: 29.16667% + } + + .el-col-md-8 { + width: 33.33333% + } + + .el-col-md-offset-8 { + margin-left: 33.33333% + } + + .el-col-md-pull-8 { + position: relative; + right: 33.33333% + } + + .el-col-md-push-8 { + position: relative; + left: 33.33333% + } + + .el-col-md-9 { + width: 37.5% + } + + .el-col-md-offset-9 { + margin-left: 37.5% + } + + .el-col-md-pull-9 { + position: relative; + right: 37.5% + } + + .el-col-md-push-9 { + position: relative; + left: 37.5% + } + + .el-col-md-10 { + width: 41.66667% + } + + .el-col-md-offset-10 { + margin-left: 41.66667% + } + + .el-col-md-pull-10 { + position: relative; + right: 41.66667% + } + + .el-col-md-push-10 { + position: relative; + left: 41.66667% + } + + .el-col-md-11 { + width: 45.83333% + } + + .el-col-md-offset-11 { + margin-left: 45.83333% + } + + .el-col-md-pull-11 { + position: relative; + right: 45.83333% + } + + .el-col-md-push-11 { + position: relative; + left: 45.83333% + } + + .el-col-md-12 { + width: 50% + } + + .el-col-md-offset-12 { + margin-left: 50% + } + + .el-col-md-pull-12 { + position: relative; + right: 50% + } + + .el-col-md-push-12 { + position: relative; + left: 50% + } + + .el-col-md-13 { + width: 54.16667% + } + + .el-col-md-offset-13 { + margin-left: 54.16667% + } + + .el-col-md-pull-13 { + position: relative; + right: 54.16667% + } + + .el-col-md-push-13 { + position: relative; + left: 54.16667% + } + + .el-col-md-14 { + width: 58.33333% + } + + .el-col-md-offset-14 { + margin-left: 58.33333% + } + + .el-col-md-pull-14 { + position: relative; + right: 58.33333% + } + + .el-col-md-push-14 { + position: relative; + left: 58.33333% + } + + .el-col-md-15 { + width: 62.5% + } + + .el-col-md-offset-15 { + margin-left: 62.5% + } + + .el-col-md-pull-15 { + position: relative; + right: 62.5% + } + + .el-col-md-push-15 { + position: relative; + left: 62.5% + } + + .el-col-md-16 { + width: 66.66667% + } + + .el-col-md-offset-16 { + margin-left: 66.66667% + } + + .el-col-md-pull-16 { + position: relative; + right: 66.66667% + } + + .el-col-md-push-16 { + position: relative; + left: 66.66667% + } + + .el-col-md-17 { + width: 70.83333% + } + + .el-col-md-offset-17 { + margin-left: 70.83333% + } + + .el-col-md-pull-17 { + position: relative; + right: 70.83333% + } + + .el-col-md-push-17 { + position: relative; + left: 70.83333% + } + + .el-col-md-18 { + width: 75% + } + + .el-col-md-offset-18 { + margin-left: 75% + } + + .el-col-md-pull-18 { + position: relative; + right: 75% + } + + .el-col-md-push-18 { + position: relative; + left: 75% + } + + .el-col-md-19 { + width: 79.16667% + } + + .el-col-md-offset-19 { + margin-left: 79.16667% + } + + .el-col-md-pull-19 { + position: relative; + right: 79.16667% + } + + .el-col-md-push-19 { + position: relative; + left: 79.16667% + } + + .el-col-md-20 { + width: 83.33333% + } + + .el-col-md-offset-20 { + margin-left: 83.33333% + } + + .el-col-md-pull-20 { + position: relative; + right: 83.33333% + } + + .el-col-md-push-20 { + position: relative; + left: 83.33333% + } + + .el-col-md-21 { + width: 87.5% + } + + .el-col-md-offset-21 { + margin-left: 87.5% + } + + .el-col-md-pull-21 { + position: relative; + right: 87.5% + } + + .el-col-md-push-21 { + position: relative; + left: 87.5% + } + + .el-col-md-22 { + width: 91.66667% + } + + .el-col-md-offset-22 { + margin-left: 91.66667% + } + + .el-col-md-pull-22 { + position: relative; + right: 91.66667% + } + + .el-col-md-push-22 { + position: relative; + left: 91.66667% + } + + .el-col-md-23 { + width: 95.83333% + } + + .el-col-md-offset-23 { + margin-left: 95.83333% + } + + .el-col-md-pull-23 { + position: relative; + right: 95.83333% + } + + .el-col-md-push-23 { + position: relative; + left: 95.83333% + } + + .el-col-md-24 { + width: 100% + } + + .el-col-md-offset-24 { + margin-left: 100% + } + + .el-col-md-pull-24 { + position: relative; + right: 100% + } + + .el-col-md-push-24 { + position: relative; + left: 100% + } +} + +@media only screen and (min-width: 1200px) { + .el-col-lg-0 { + display: none; + width: 0% + } + + .el-col-lg-offset-0 { + margin-left: 0 + } + + .el-col-lg-pull-0 { + position: relative; + right: 0 + } + + .el-col-lg-push-0 { + position: relative; + left: 0 + } + + .el-col-lg-1 { + width: 4.16667% + } + + .el-col-lg-offset-1 { + margin-left: 4.16667% + } + + .el-col-lg-pull-1 { + position: relative; + right: 4.16667% + } + + .el-col-lg-push-1 { + position: relative; + left: 4.16667% + } + + .el-col-lg-2 { + width: 8.33333% + } + + .el-col-lg-offset-2 { + margin-left: 8.33333% + } + + .el-col-lg-pull-2 { + position: relative; + right: 8.33333% + } + + .el-col-lg-push-2 { + position: relative; + left: 8.33333% + } + + .el-col-lg-3 { + width: 12.5% + } + + .el-col-lg-offset-3 { + margin-left: 12.5% + } + + .el-col-lg-pull-3 { + position: relative; + right: 12.5% + } + + .el-col-lg-push-3 { + position: relative; + left: 12.5% + } + + .el-col-lg-4 { + width: 16.66667% + } + + .el-col-lg-offset-4 { + margin-left: 16.66667% + } + + .el-col-lg-pull-4 { + position: relative; + right: 16.66667% + } + + .el-col-lg-push-4 { + position: relative; + left: 16.66667% + } + + .el-col-lg-5 { + width: 20.83333% + } + + .el-col-lg-offset-5 { + margin-left: 20.83333% + } + + .el-col-lg-pull-5 { + position: relative; + right: 20.83333% + } + + .el-col-lg-push-5 { + position: relative; + left: 20.83333% + } + + .el-col-lg-6 { + width: 25% + } + + .el-col-lg-offset-6 { + margin-left: 25% + } + + .el-col-lg-pull-6 { + position: relative; + right: 25% + } + + .el-col-lg-push-6 { + position: relative; + left: 25% + } + + .el-col-lg-7 { + width: 29.16667% + } + + .el-col-lg-offset-7 { + margin-left: 29.16667% + } + + .el-col-lg-pull-7 { + position: relative; + right: 29.16667% + } + + .el-col-lg-push-7 { + position: relative; + left: 29.16667% + } + + .el-col-lg-8 { + width: 33.33333% + } + + .el-col-lg-offset-8 { + margin-left: 33.33333% + } + + .el-col-lg-pull-8 { + position: relative; + right: 33.33333% + } + + .el-col-lg-push-8 { + position: relative; + left: 33.33333% + } + + .el-col-lg-9 { + width: 37.5% + } + + .el-col-lg-offset-9 { + margin-left: 37.5% + } + + .el-col-lg-pull-9 { + position: relative; + right: 37.5% + } + + .el-col-lg-push-9 { + position: relative; + left: 37.5% + } + + .el-col-lg-10 { + width: 41.66667% + } + + .el-col-lg-offset-10 { + margin-left: 41.66667% + } + + .el-col-lg-pull-10 { + position: relative; + right: 41.66667% + } + + .el-col-lg-push-10 { + position: relative; + left: 41.66667% + } + + .el-col-lg-11 { + width: 45.83333% + } + + .el-col-lg-offset-11 { + margin-left: 45.83333% + } + + .el-col-lg-pull-11 { + position: relative; + right: 45.83333% + } + + .el-col-lg-push-11 { + position: relative; + left: 45.83333% + } + + .el-col-lg-12 { + width: 50% + } + + .el-col-lg-offset-12 { + margin-left: 50% + } + + .el-col-lg-pull-12 { + position: relative; + right: 50% + } + + .el-col-lg-push-12 { + position: relative; + left: 50% + } + + .el-col-lg-13 { + width: 54.16667% + } + + .el-col-lg-offset-13 { + margin-left: 54.16667% + } + + .el-col-lg-pull-13 { + position: relative; + right: 54.16667% + } + + .el-col-lg-push-13 { + position: relative; + left: 54.16667% + } + + .el-col-lg-14 { + width: 58.33333% + } + + .el-col-lg-offset-14 { + margin-left: 58.33333% + } + + .el-col-lg-pull-14 { + position: relative; + right: 58.33333% + } + + .el-col-lg-push-14 { + position: relative; + left: 58.33333% + } + + .el-col-lg-15 { + width: 62.5% + } + + .el-col-lg-offset-15 { + margin-left: 62.5% + } + + .el-col-lg-pull-15 { + position: relative; + right: 62.5% + } + + .el-col-lg-push-15 { + position: relative; + left: 62.5% + } + + .el-col-lg-16 { + width: 66.66667% + } + + .el-col-lg-offset-16 { + margin-left: 66.66667% + } + + .el-col-lg-pull-16 { + position: relative; + right: 66.66667% + } + + .el-col-lg-push-16 { + position: relative; + left: 66.66667% + } + + .el-col-lg-17 { + width: 70.83333% + } + + .el-col-lg-offset-17 { + margin-left: 70.83333% + } + + .el-col-lg-pull-17 { + position: relative; + right: 70.83333% + } + + .el-col-lg-push-17 { + position: relative; + left: 70.83333% + } + + .el-col-lg-18 { + width: 75% + } + + .el-col-lg-offset-18 { + margin-left: 75% + } + + .el-col-lg-pull-18 { + position: relative; + right: 75% + } + + .el-col-lg-push-18 { + position: relative; + left: 75% + } + + .el-col-lg-19 { + width: 79.16667% + } + + .el-col-lg-offset-19 { + margin-left: 79.16667% + } + + .el-col-lg-pull-19 { + position: relative; + right: 79.16667% + } + + .el-col-lg-push-19 { + position: relative; + left: 79.16667% + } + + .el-col-lg-20 { + width: 83.33333% + } + + .el-col-lg-offset-20 { + margin-left: 83.33333% + } + + .el-col-lg-pull-20 { + position: relative; + right: 83.33333% + } + + .el-col-lg-push-20 { + position: relative; + left: 83.33333% + } + + .el-col-lg-21 { + width: 87.5% + } + + .el-col-lg-offset-21 { + margin-left: 87.5% + } + + .el-col-lg-pull-21 { + position: relative; + right: 87.5% + } + + .el-col-lg-push-21 { + position: relative; + left: 87.5% + } + + .el-col-lg-22 { + width: 91.66667% + } + + .el-col-lg-offset-22 { + margin-left: 91.66667% + } + + .el-col-lg-pull-22 { + position: relative; + right: 91.66667% + } + + .el-col-lg-push-22 { + position: relative; + left: 91.66667% + } + + .el-col-lg-23 { + width: 95.83333% + } + + .el-col-lg-offset-23 { + margin-left: 95.83333% + } + + .el-col-lg-pull-23 { + position: relative; + right: 95.83333% + } + + .el-col-lg-push-23 { + position: relative; + left: 95.83333% + } + + .el-col-lg-24 { + width: 100% + } + + .el-col-lg-offset-24 { + margin-left: 100% + } + + .el-col-lg-pull-24 { + position: relative; + right: 100% + } + + .el-col-lg-push-24 { + position: relative; + left: 100% + } +} + +@media only screen and (min-width: 1920px) { + .el-col-xl-0 { + display: none; + width: 0% + } + + .el-col-xl-offset-0 { + margin-left: 0 + } + + .el-col-xl-pull-0 { + position: relative; + right: 0 + } + + .el-col-xl-push-0 { + position: relative; + left: 0 + } + + .el-col-xl-1 { + width: 4.16667% + } + + .el-col-xl-offset-1 { + margin-left: 4.16667% + } + + .el-col-xl-pull-1 { + position: relative; + right: 4.16667% + } + + .el-col-xl-push-1 { + position: relative; + left: 4.16667% + } + + .el-col-xl-2 { + width: 8.33333% + } + + .el-col-xl-offset-2 { + margin-left: 8.33333% + } + + .el-col-xl-pull-2 { + position: relative; + right: 8.33333% + } + + .el-col-xl-push-2 { + position: relative; + left: 8.33333% + } + + .el-col-xl-3 { + width: 12.5% + } + + .el-col-xl-offset-3 { + margin-left: 12.5% + } + + .el-col-xl-pull-3 { + position: relative; + right: 12.5% + } + + .el-col-xl-push-3 { + position: relative; + left: 12.5% + } + + .el-col-xl-4 { + width: 16.66667% + } + + .el-col-xl-offset-4 { + margin-left: 16.66667% + } + + .el-col-xl-pull-4 { + position: relative; + right: 16.66667% + } + + .el-col-xl-push-4 { + position: relative; + left: 16.66667% + } + + .el-col-xl-5 { + width: 20.83333% + } + + .el-col-xl-offset-5 { + margin-left: 20.83333% + } + + .el-col-xl-pull-5 { + position: relative; + right: 20.83333% + } + + .el-col-xl-push-5 { + position: relative; + left: 20.83333% + } + + .el-col-xl-6 { + width: 25% + } + + .el-col-xl-offset-6 { + margin-left: 25% + } + + .el-col-xl-pull-6 { + position: relative; + right: 25% + } + + .el-col-xl-push-6 { + position: relative; + left: 25% + } + + .el-col-xl-7 { + width: 29.16667% + } + + .el-col-xl-offset-7 { + margin-left: 29.16667% + } + + .el-col-xl-pull-7 { + position: relative; + right: 29.16667% + } + + .el-col-xl-push-7 { + position: relative; + left: 29.16667% + } + + .el-col-xl-8 { + width: 33.33333% + } + + .el-col-xl-offset-8 { + margin-left: 33.33333% + } + + .el-col-xl-pull-8 { + position: relative; + right: 33.33333% + } + + .el-col-xl-push-8 { + position: relative; + left: 33.33333% + } + + .el-col-xl-9 { + width: 37.5% + } + + .el-col-xl-offset-9 { + margin-left: 37.5% + } + + .el-col-xl-pull-9 { + position: relative; + right: 37.5% + } + + .el-col-xl-push-9 { + position: relative; + left: 37.5% + } + + .el-col-xl-10 { + width: 41.66667% + } + + .el-col-xl-offset-10 { + margin-left: 41.66667% + } + + .el-col-xl-pull-10 { + position: relative; + right: 41.66667% + } + + .el-col-xl-push-10 { + position: relative; + left: 41.66667% + } + + .el-col-xl-11 { + width: 45.83333% + } + + .el-col-xl-offset-11 { + margin-left: 45.83333% + } + + .el-col-xl-pull-11 { + position: relative; + right: 45.83333% + } + + .el-col-xl-push-11 { + position: relative; + left: 45.83333% + } + + .el-col-xl-12 { + width: 50% + } + + .el-col-xl-offset-12 { + margin-left: 50% + } + + .el-col-xl-pull-12 { + position: relative; + right: 50% + } + + .el-col-xl-push-12 { + position: relative; + left: 50% + } + + .el-col-xl-13 { + width: 54.16667% + } + + .el-col-xl-offset-13 { + margin-left: 54.16667% + } + + .el-col-xl-pull-13 { + position: relative; + right: 54.16667% + } + + .el-col-xl-push-13 { + position: relative; + left: 54.16667% + } + + .el-col-xl-14 { + width: 58.33333% + } + + .el-col-xl-offset-14 { + margin-left: 58.33333% + } + + .el-col-xl-pull-14 { + position: relative; + right: 58.33333% + } + + .el-col-xl-push-14 { + position: relative; + left: 58.33333% + } + + .el-col-xl-15 { + width: 62.5% + } + + .el-col-xl-offset-15 { + margin-left: 62.5% + } + + .el-col-xl-pull-15 { + position: relative; + right: 62.5% + } + + .el-col-xl-push-15 { + position: relative; + left: 62.5% + } + + .el-col-xl-16 { + width: 66.66667% + } + + .el-col-xl-offset-16 { + margin-left: 66.66667% + } + + .el-col-xl-pull-16 { + position: relative; + right: 66.66667% + } + + .el-col-xl-push-16 { + position: relative; + left: 66.66667% + } + + .el-col-xl-17 { + width: 70.83333% + } + + .el-col-xl-offset-17 { + margin-left: 70.83333% + } + + .el-col-xl-pull-17 { + position: relative; + right: 70.83333% + } + + .el-col-xl-push-17 { + position: relative; + left: 70.83333% + } + + .el-col-xl-18 { + width: 75% + } + + .el-col-xl-offset-18 { + margin-left: 75% + } + + .el-col-xl-pull-18 { + position: relative; + right: 75% + } + + .el-col-xl-push-18 { + position: relative; + left: 75% + } + + .el-col-xl-19 { + width: 79.16667% + } + + .el-col-xl-offset-19 { + margin-left: 79.16667% + } + + .el-col-xl-pull-19 { + position: relative; + right: 79.16667% + } + + .el-col-xl-push-19 { + position: relative; + left: 79.16667% + } + + .el-col-xl-20 { + width: 83.33333% + } + + .el-col-xl-offset-20 { + margin-left: 83.33333% + } + + .el-col-xl-pull-20 { + position: relative; + right: 83.33333% + } + + .el-col-xl-push-20 { + position: relative; + left: 83.33333% + } + + .el-col-xl-21 { + width: 87.5% + } + + .el-col-xl-offset-21 { + margin-left: 87.5% + } + + .el-col-xl-pull-21 { + position: relative; + right: 87.5% + } + + .el-col-xl-push-21 { + position: relative; + left: 87.5% + } + + .el-col-xl-22 { + width: 91.66667% + } + + .el-col-xl-offset-22 { + margin-left: 91.66667% + } + + .el-col-xl-pull-22 { + position: relative; + right: 91.66667% + } + + .el-col-xl-push-22 { + position: relative; + left: 91.66667% + } + + .el-col-xl-23 { + width: 95.83333% + } + + .el-col-xl-offset-23 { + margin-left: 95.83333% + } + + .el-col-xl-pull-23 { + position: relative; + right: 95.83333% + } + + .el-col-xl-push-23 { + position: relative; + left: 95.83333% + } + + .el-col-xl-24 { + width: 100% + } + + .el-col-xl-offset-24 { + margin-left: 100% + } + + .el-col-xl-pull-24 { + position: relative; + right: 100% + } + + .el-col-xl-push-24 { + position: relative; + left: 100% + } +} + +@-webkit-keyframes progress { + 0% { + background-position: 0 0 + } + 100% { + background-position: 32px 0 + } +} + +.el-upload { + display: inline-block; + text-align: center; + cursor: pointer; + outline: 0 +} + +.el-upload__input { + display: none +} + +.el-upload__tip { + font-size: 12px; + color: #606266; + margin-top: 7px +} + +.el-upload iframe { + position: absolute; + z-index: -1; + top: 0; + left: 0; + filter: alpha(opacity=0) +} + +.el-upload--picture-card { + background-color: #fbfdff; + border: 1px dashed #c0ccda; + border-radius: 6px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 148px; + height: 148px; + cursor: pointer; + line-height: 146px; + vertical-align: top +} + +.el-upload--picture-card i { + font-size: 28px; + color: #8c939d +} + +.el-upload--picture-card:hover, .el-upload:focus { + border-color: #409EFF; + color: #409EFF +} + +.el-upload:focus .el-upload-dragger { + border-color: #409EFF +} + +.el-upload-dragger { + background-color: #fff; + border: 1px dashed #d9d9d9; + border-radius: 6px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 360px; + height: 180px; + text-align: center; + cursor: pointer; + overflow: hidden +} + +.el-upload-dragger .el-icon-upload { + font-size: 67px; + color: #C0C4CC; + margin: 40px 0 16px; + line-height: 50px +} + +.el-upload-dragger + .el-upload__tip { + text-align: center +} + +.el-upload-dragger ~ .el-upload__files { + border-top: 1px solid #DCDFE6; + margin-top: 7px; + padding-top: 5px +} + +.el-upload-dragger .el-upload__text { + color: #606266; + font-size: 14px; + text-align: center +} + +.el-upload-dragger .el-upload__text em { + color: #409EFF; + font-style: normal +} + +.el-upload-dragger:hover { + border-color: #409EFF +} + +.el-upload-dragger.is-dragover { + background-color: rgba(32, 159, 255, .06); + border: 2px dashed #409EFF +} + +.el-upload-list { + margin: 0; + padding: 0; + list-style: none +} + +.el-upload-list__item { + -webkit-transition: all .5s cubic-bezier(.55, 0, .1, 1); + transition: all .5s cubic-bezier(.55, 0, .1, 1); + font-size: 14px; + color: #606266; + line-height: 1.8; + margin-top: 5px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 4px; + width: 100% +} + +.el-upload-list__item .el-progress { + position: absolute; + top: 20px; + width: 100% +} + +.el-upload-list__item .el-progress__text { + position: absolute; + right: 0; + top: -13px +} + +.el-upload-list__item .el-progress-bar { + margin-right: 0; + padding-right: 0 +} + +.el-upload-list__item:first-child { + margin-top: 10px +} + +.el-upload-list__item .el-icon-upload-success { + color: #67C23A +} + +.el-upload-list__item .el-icon-close { + display: none; + position: absolute; + top: 5px; + right: 5px; + cursor: pointer; + opacity: .75; + color: #606266 +} + +.el-upload-list__item .el-icon-close:hover { + opacity: 1 +} + +.el-upload-list__item .el-icon-close-tip { + display: none; + position: absolute; + top: 5px; + right: 5px; + font-size: 12px; + cursor: pointer; + opacity: 1; + color: #409EFF +} + +.el-upload-list__item:hover .el-icon-close { + display: inline-block +} + +.el-upload-list__item:hover .el-progress__text { + display: none +} + +.el-upload-list__item.is-success .el-upload-list__item-status-label { + display: block +} + +.el-upload-list__item.is-success .el-upload-list__item-name:focus, .el-upload-list__item.is-success .el-upload-list__item-name:hover { + color: #409EFF; + cursor: pointer +} + +.el-upload-list__item.is-success:focus:not(:hover) .el-icon-close-tip { + display: inline-block +} + +.el-upload-list__item.is-success:active, .el-upload-list__item.is-success:not(.focusing):focus { + outline-width: 0 +} + +.el-upload-list__item.is-success:active .el-icon-close-tip, .el-upload-list__item.is-success:focus .el-upload-list__item-status-label, .el-upload-list__item.is-success:hover .el-upload-list__item-status-label, .el-upload-list__item.is-success:not(.focusing):focus .el-icon-close-tip { + display: none +} + +.el-upload-list.is-disabled .el-upload-list__item:hover .el-upload-list__item-status-label { + display: block +} + +.el-upload-list__item-name { + color: #606266; + display: block; + margin-right: 40px; + overflow: hidden; + padding-left: 4px; + text-overflow: ellipsis; + -webkit-transition: color .3s; + transition: color .3s; + white-space: nowrap +} + +.el-upload-list__item-name [class^=el-icon] { + height: 100%; + margin-right: 7px; + color: #909399; + line-height: inherit +} + +.el-upload-list__item-status-label { + position: absolute; + right: 5px; + top: 0; + line-height: inherit; + display: none +} + +.el-upload-list__item-delete { + position: absolute; + right: 10px; + top: 0; + font-size: 12px; + color: #606266; + display: none +} + +.el-upload-list__item-delete:hover { + color: #409EFF +} + +.el-upload-list--picture-card { + margin: 0; + display: inline; + vertical-align: top +} + +.el-upload-list--picture-card .el-upload-list__item { + overflow: hidden; + background-color: #fff; + border: 1px solid #c0ccda; + border-radius: 6px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 148px; + height: 148px; + margin: 0 8px 8px 0; + display: inline-block +} + +.el-upload-list--picture-card .el-upload-list__item .el-icon-check, .el-upload-list--picture-card .el-upload-list__item .el-icon-circle-check { + color: #FFF +} + +.el-upload-list--picture-card .el-upload-list__item .el-icon-close, .el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label { + display: none +} + +.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text { + display: block +} + +.el-upload-list--picture-card .el-upload-list__item-name { + display: none +} + +.el-upload-list--picture-card .el-upload-list__item-thumbnail { + width: 100%; + height: 100% +} + +.el-upload-list--picture-card .el-upload-list__item-status-label { + position: absolute; + right: -15px; + top: -6px; + width: 40px; + height: 24px; + background: #13ce66; + text-align: center; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + -webkit-box-shadow: 0 0 1pc 1px rgba(0, 0, 0, .2); + box-shadow: 0 0 1pc 1px rgba(0, 0, 0, .2) +} + +.el-upload-list--picture-card .el-upload-list__item-status-label i { + font-size: 12px; + margin-top: 11px; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg) +} + +.el-upload-list--picture-card .el-upload-list__item-actions { + position: absolute; + width: 100%; + height: 100%; + left: 0; + top: 0; + cursor: default; + text-align: center; + color: #fff; + opacity: 0; + font-size: 20px; + background-color: rgba(0, 0, 0, .5); + -webkit-transition: opacity .3s; + transition: opacity .3s +} + +.el-upload-list--picture-card .el-upload-list__item-actions::after { + display: inline-block; + height: 100%; + vertical-align: middle +} + +.el-upload-list--picture-card .el-upload-list__item-actions span { + display: none; + cursor: pointer +} + +.el-upload-list--picture-card .el-upload-list__item-actions span + span { + margin-left: 15px +} + +.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete { + position: static; + font-size: inherit; + color: inherit +} + +.el-upload-list--picture-card .el-upload-list__item-actions:hover { + opacity: 1 +} + +.el-upload-list--picture-card .el-upload-list__item-actions:hover span { + display: inline-block +} + +.el-upload-list--picture-card .el-progress { + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + bottom: auto; + width: 126px +} + +.el-upload-list--picture-card .el-progress .el-progress__text { + top: 50% +} + +.el-upload-list--picture .el-upload-list__item { + overflow: hidden; + z-index: 0; + background-color: #fff; + border: 1px solid #c0ccda; + border-radius: 6px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin-top: 10px; + padding: 10px 10px 10px 90px; + height: 92px +} + +.el-upload-list--picture .el-upload-list__item .el-icon-check, .el-upload-list--picture .el-upload-list__item .el-icon-circle-check { + color: #FFF +} + +.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label { + background: 0 0; + -webkit-box-shadow: none; + box-shadow: none; + top: -2px; + right: -12px +} + +.el-upload-list--picture .el-upload-list__item:hover .el-progress__text { + display: block +} + +.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name { + line-height: 70px; + margin-top: 0 +} + +.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i { + display: none +} + +.el-upload-list--picture .el-upload-list__item-thumbnail { + vertical-align: middle; + display: inline-block; + width: 70px; + height: 70px; + float: left; + position: relative; + z-index: 1; + margin-left: -80px; + background-color: #FFF +} + +.el-upload-list--picture .el-upload-list__item-name { + display: block; + margin-top: 20px +} + +.el-upload-list--picture .el-upload-list__item-name i { + font-size: 70px; + line-height: 1; + position: absolute; + left: 9px; + top: 10px +} + +.el-upload-list--picture .el-upload-list__item-status-label { + position: absolute; + right: -17px; + top: -7px; + width: 46px; + height: 26px; + background: #13ce66; + text-align: center; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + -webkit-box-shadow: 0 1px 1px #ccc; + box-shadow: 0 1px 1px #ccc +} + +.el-upload-list--picture .el-upload-list__item-status-label i { + font-size: 12px; + margin-top: 12px; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg) +} + +.el-upload-list--picture .el-progress { + position: relative; + top: -7px +} + +.el-upload-cover { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: hidden; + z-index: 10; + cursor: default +} + +.el-upload-cover::after { + display: inline-block; + height: 100%; + vertical-align: middle +} + +.el-upload-cover img { + display: block; + width: 100%; + height: 100% +} + +.el-upload-cover__label { + position: absolute; + right: -15px; + top: -6px; + width: 40px; + height: 24px; + background: #13ce66; + text-align: center; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + -webkit-box-shadow: 0 0 1pc 1px rgba(0, 0, 0, .2); + box-shadow: 0 0 1pc 1px rgba(0, 0, 0, .2) +} + +.el-upload-cover__label i { + font-size: 12px; + margin-top: 11px; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + color: #fff +} + +.el-upload-cover__progress { + display: inline-block; + vertical-align: middle; + position: static; + width: 243px +} + +.el-upload-cover__progress + .el-upload__inner { + opacity: 0 +} + +.el-upload-cover__content { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100% +} + +.el-upload-cover__interact { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, .72); + text-align: center +} + +.el-upload-cover__interact .btn { + display: inline-block; + color: #FFF; + font-size: 14px; + cursor: pointer; + vertical-align: middle; + -webkit-transition: opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); + transition: opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); + transition: transform .3s cubic-bezier(.23, 1, .32, 1), opacity .3s cubic-bezier(.23, 1, .32, 1); + transition: transform .3s cubic-bezier(.23, 1, .32, 1), opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); + margin-top: 60px +} + +.el-upload-cover__interact .btn span { + opacity: 0; + -webkit-transition: opacity .15s linear; + transition: opacity .15s linear +} + +.el-upload-cover__interact .btn:not(:first-child) { + margin-left: 35px +} + +.el-upload-cover__interact .btn:hover { + -webkit-transform: translateY(-13px); + transform: translateY(-13px) +} + +.el-upload-cover__interact .btn:hover span { + opacity: 1 +} + +.el-upload-cover__interact .btn i { + color: #FFF; + display: block; + font-size: 24px; + line-height: inherit; + margin: 0 auto 5px +} + +.el-upload-cover__title { + position: absolute; + bottom: 0; + left: 0; + background-color: #FFF; + height: 36px; + width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + font-weight: 400; + text-align: left; + padding: 0 10px; + margin: 0; + line-height: 36px; + font-size: 14px; + color: #303133 +} + +.el-upload-cover + .el-upload__inner { + opacity: 0; + position: relative; + z-index: 1 +} + +.el-progress { + position: relative; + line-height: 1 +} + +.el-progress__text { + font-size: 14px; + color: #606266; + display: inline-block; + vertical-align: middle; + margin-left: 10px; + line-height: 1 +} + +.el-progress__text i { + vertical-align: middle; + display: block +} + +.el-progress--circle, .el-progress--dashboard { + display: inline-block +} + +.el-progress--circle .el-progress__text, .el-progress--dashboard .el-progress__text { + position: absolute; + top: 50%; + left: 0; + width: 100%; + text-align: center; + margin: 0; + -webkit-transform: translate(0, -50%); + transform: translate(0, -50%) +} + +.el-progress--circle .el-progress__text i, .el-progress--dashboard .el-progress__text i { + vertical-align: middle; + display: inline-block +} + +.el-progress--without-text .el-progress__text { + display: none +} + +.el-progress--without-text .el-progress-bar { + padding-right: 0; + margin-right: 0; + display: block +} + +.el-progress--text-inside .el-progress-bar { + padding-right: 0; + margin-right: 0 +} + +.el-progress.is-success .el-progress-bar__inner { + background-color: #67C23A +} + +.el-progress.is-success .el-progress__text { + color: #67C23A +} + +.el-progress.is-warning .el-progress-bar__inner { + background-color: #E6A23C +} + +.el-badge__content, .el-progress.is-exception .el-progress-bar__inner { + background-color: #F56C6C +} + +.el-progress.is-warning .el-progress__text { + color: #E6A23C +} + +.el-progress.is-exception .el-progress__text { + color: #F56C6C +} + +.el-progress-bar { + padding-right: 50px; + display: inline-block; + vertical-align: middle; + width: 100%; + margin-right: -55px; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-card__header, .el-message, .el-step__icon { + -webkit-box-sizing: border-box +} + +.el-progress-bar__outer { + height: 6px; + border-radius: 100px; + background-color: #EBEEF5; + overflow: hidden; + position: relative; + vertical-align: middle +} + +.el-progress-bar__inner { + position: absolute; + left: 0; + top: 0; + height: 100%; + background-color: #409EFF; + text-align: right; + border-radius: 100px; + line-height: 1; + white-space: nowrap; + -webkit-transition: width .6s ease; + transition: width .6s ease +} + +.el-progress-bar__inner::after { + display: inline-block; + height: 100%; + vertical-align: middle +} + +.el-progress-bar__innerText { + display: inline-block; + vertical-align: middle; + color: #FFF; + font-size: 12px; + margin: 0 5px +} + +@keyframes progress { + 0% { + background-position: 0 0 + } + 100% { + background-position: 32px 0 + } +} + +.el-time-spinner { + width: 100%; + white-space: nowrap +} + +.el-spinner { + display: inline-block; + vertical-align: middle +} + +.el-spinner-inner { + -webkit-animation: rotate 2s linear infinite; + animation: rotate 2s linear infinite; + width: 50px; + height: 50px +} + +.el-spinner-inner .path { + stroke: #ececec; + stroke-linecap: round; + -webkit-animation: dash 1.5s ease-in-out infinite; + animation: dash 1.5s ease-in-out infinite +} + +@-webkit-keyframes rotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg) + } +} + +@keyframes rotate { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg) + } +} + +@-webkit-keyframes dash { + 0% { + stroke-dasharray: 1, 150; + stroke-dashoffset: 0 + } + 50% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -35 + } + 100% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -124 + } +} + +@keyframes dash { + 0% { + stroke-dasharray: 1, 150; + stroke-dashoffset: 0 + } + 50% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -35 + } + 100% { + stroke-dasharray: 90, 150; + stroke-dashoffset: -124 + } +} + +.el-message { + min-width: 380px; + box-sizing: border-box; + border-radius: 4px; + border-width: 1px; + border-style: solid; + border-color: #EBEEF5; + position: fixed; + left: 50%; + top: 20px; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + background-color: #edf2fc; + -webkit-transition: opacity .3s, top .4s, -webkit-transform .4s; + transition: opacity .3s, top .4s, -webkit-transform .4s; + transition: opacity .3s, transform .4s, top .4s; + transition: opacity .3s, transform .4s, top .4s, -webkit-transform .4s; + overflow: hidden; + padding: 15px 15px 15px 20px; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center +} + +.el-message.is-center { + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center +} + +.el-message.is-closable .el-message__content { + padding-right: 16px +} + +.el-message p { + margin: 0 +} + +.el-message--info .el-message__content { + color: #909399 +} + +.el-message--success { + background-color: #f0f9eb; + border-color: #e1f3d8 +} + +.el-message--success .el-message__content { + color: #67C23A +} + +.el-message--warning { + background-color: #fdf6ec; + border-color: #faecd8 +} + +.el-message--warning .el-message__content { + color: #E6A23C +} + +.el-message--error { + background-color: #fef0f0; + border-color: #fde2e2 +} + +.el-message--error .el-message__content { + color: #F56C6C +} + +.el-message__icon { + margin-right: 10px +} + +.el-message__content { + padding: 0; + font-size: 14px; + line-height: 1 +} + +.el-message__content:focus { + outline-width: 0 +} + +.el-message__closeBtn { + position: absolute; + top: 50%; + right: 15px; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + cursor: pointer; + color: #C0C4CC; + font-size: 16px +} + +.el-message__closeBtn:focus { + outline-width: 0 +} + +.el-message__closeBtn:hover { + color: #909399 +} + +.el-message .el-icon-success { + color: #67C23A +} + +.el-message .el-icon-error { + color: #F56C6C +} + +.el-message .el-icon-info { + color: #909399 +} + +.el-message .el-icon-warning { + color: #E6A23C +} + +.el-message-fade-enter, .el-message-fade-leave-active { + opacity: 0; + -webkit-transform: translate(-50%, -100%); + transform: translate(-50%, -100%) +} + +.el-badge { + position: relative; + vertical-align: middle; + display: inline-block +} + +.el-badge__content { + border-radius: 10px; + color: #FFF; + display: inline-block; + font-size: 12px; + height: 18px; + line-height: 18px; + padding: 0 6px; + text-align: center; + white-space: nowrap; + border: 1px solid #FFF +} + +.el-badge__content.is-fixed { + position: absolute; + top: 0; + right: 10px; + -webkit-transform: translateY(-50%) translateX(100%); + transform: translateY(-50%) translateX(100%) +} + +.el-rate__icon, .el-rate__item { + position: relative; + display: inline-block +} + +.el-badge__content.is-fixed.is-dot { + right: 5px +} + +.el-badge__content.is-dot { + height: 8px; + width: 8px; + padding: 0; + right: 0; + border-radius: 50% +} + +.el-badge__content--primary { + background-color: #409EFF +} + +.el-badge__content--success { + background-color: #67C23A +} + +.el-badge__content--warning { + background-color: #E6A23C +} + +.el-badge__content--info { + background-color: #909399 +} + +.el-badge__content--danger { + background-color: #F56C6C +} + +.el-card { + border-radius: 4px; + border: 1px solid #EBEEF5; + background-color: #FFF; + overflow: hidden; + color: #303133; + -webkit-transition: .3s; + transition: .3s +} + +.el-card.is-always-shadow, .el-card.is-hover-shadow:focus, .el-card.is-hover-shadow:hover { + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1) +} + +.el-card__header { + padding: 18px 20px; + border-bottom: 1px solid #EBEEF5; + box-sizing: border-box +} + +.el-card__body, .el-main { + padding: 20px +} + +.el-rate { + height: 20px; + line-height: 1 +} + +.el-rate:active, .el-rate:focus { + outline-width: 0 +} + +.el-rate__item { + font-size: 0; + vertical-align: middle +} + +.el-rate__icon { + font-size: 18px; + margin-right: 6px; + color: #C0C4CC; + -webkit-transition: .3s; + transition: .3s +} + +.el-rate__decimal, .el-rate__icon .path2 { + position: absolute; + top: 0; + left: 0 +} + +.el-rate__icon.hover { + -webkit-transform: scale(1.15); + transform: scale(1.15) +} + +.el-rate__decimal { + display: inline-block; + overflow: hidden +} + +.el-step.is-vertical, .el-steps { + display: -webkit-box; + display: -ms-flexbox +} + +.el-rate__text { + font-size: 14px; + vertical-align: middle +} + +.el-steps { + display: flex +} + +.el-steps--simple { + padding: 13px 8%; + border-radius: 4px; + background: #F5F7FA +} + +.el-steps--horizontal { + white-space: nowrap +} + +.el-steps--vertical { + height: 100%; + -webkit-box-orient: vertical; + -webkit-box-direction: normal; + -ms-flex-flow: column; + flex-flow: column +} + +.el-step { + position: relative; + -ms-flex-negative: 1; + flex-shrink: 1 +} + +.el-step:last-of-type .el-step__line { + display: none +} + +.el-step:last-of-type.is-flex { + -ms-flex-preferred-size: auto !important; + flex-basis: auto !important; + -ms-flex-negative: 0; + flex-shrink: 0; + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0 +} + +.el-step:last-of-type .el-step__description, .el-step:last-of-type .el-step__main { + padding-right: 0 +} + +.el-step__head { + position: relative; + width: 100% +} + +.el-step__head.is-process { + color: #303133; + border-color: #303133 +} + +.el-step__head.is-wait { + color: #C0C4CC; + border-color: #C0C4CC +} + +.el-step__head.is-success { + color: #67C23A; + border-color: #67C23A +} + +.el-step__head.is-error { + color: #F56C6C; + border-color: #F56C6C +} + +.el-step__head.is-finish { + color: #409EFF; + border-color: #409EFF +} + +.el-step__icon { + position: relative; + z-index: 1; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + width: 24px; + height: 24px; + font-size: 14px; + box-sizing: border-box; + background: #FFF; + -webkit-transition: .15s ease-out; + transition: .15s ease-out +} + +.el-step.is-horizontal, .el-step__icon-inner { + display: inline-block +} + +.el-step__icon.is-text { + border-radius: 50%; + border: 2px solid; + border-color: inherit +} + +.el-step__icon.is-icon { + width: 40px +} + +.el-step__icon-inner { + -webkit-user-select: none; + user-select: none; + text-align: center; + font-weight: 700; + line-height: 1; + color: inherit +} + +.el-step__icon-inner[class*=el-icon]:not(.is-status) { + font-size: 25px; + font-weight: 400 +} + +.el-step__icon-inner.is-status { + -webkit-transform: translateY(1px); + transform: translateY(1px) +} + +.el-step__line { + position: absolute; + border-color: inherit; + background-color: #C0C4CC +} + +.el-step__line-inner { + display: block; + border-width: 1px; + border-style: solid; + border-color: inherit; + -webkit-transition: .15s ease-out; + transition: .15s ease-out; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 0; + height: 0 +} + +.el-step__main { + white-space: normal; + text-align: left +} + +.el-step__title { + font-size: 16px; + line-height: 38px +} + +.el-step__title.is-process { + font-weight: 700; + color: #303133 +} + +.el-step__title.is-wait { + color: #C0C4CC +} + +.el-step__title.is-success { + color: #67C23A +} + +.el-step__title.is-error { + color: #F56C6C +} + +.el-step__title.is-finish { + color: #409EFF +} + +.el-step__description { + padding-right: 10%; + margin-top: -5px; + font-size: 12px; + line-height: 20px; + font-weight: 400 +} + +.el-step__description.is-process { + color: #303133 +} + +.el-step__description.is-wait { + color: #C0C4CC +} + +.el-step__description.is-success { + color: #67C23A +} + +.el-step__description.is-error { + color: #F56C6C +} + +.el-step__description.is-finish { + color: #409EFF +} + +.el-step.is-horizontal .el-step__line { + height: 2px; + top: 11px; + left: 0; + right: 0 +} + +.el-step.is-vertical { + display: flex +} + +.el-step.is-vertical .el-step__head { + -webkit-box-flex: 0; + -ms-flex-positive: 0; + flex-grow: 0; + width: 24px +} + +.el-step.is-vertical .el-step__main { + padding-left: 10px; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1 +} + +.el-step.is-vertical .el-step__title { + line-height: 24px; + padding-bottom: 8px +} + +.el-step.is-vertical .el-step__line { + width: 2px; + top: 0; + bottom: 0; + left: 11px +} + +.el-step.is-vertical .el-step__icon.is-icon { + width: 24px +} + +.el-step.is-center .el-step__head, .el-step.is-center .el-step__main { + text-align: center +} + +.el-step.is-center .el-step__description { + padding-left: 20%; + padding-right: 20% +} + +.el-step.is-center .el-step__line { + left: 50%; + right: -50% +} + +.el-step.is-simple { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center +} + +.el-step.is-simple .el-step__head { + width: auto; + font-size: 0; + padding-right: 10px +} + +.el-step.is-simple .el-step__icon { + background: 0 0; + width: 16px; + height: 16px; + font-size: 12px +} + +.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status) { + font-size: 18px +} + +.el-step.is-simple .el-step__icon-inner.is-status { + -webkit-transform: scale(.8) translateY(1px); + transform: scale(.8) translateY(1px) +} + +.el-step.is-simple .el-step__main { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: stretch; + -ms-flex-align: stretch; + align-items: stretch; + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1 +} + +.el-step.is-simple .el-step__title { + font-size: 16px; + line-height: 20px +} + +.el-step.is-simple:not(:last-of-type) .el-step__title { + max-width: 50%; + word-break: break-all +} + +.el-step.is-simple .el-step__arrow { + -webkit-box-flex: 1; + -ms-flex-positive: 1; + flex-grow: 1; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center +} + +.el-step.is-simple .el-step__arrow::after, .el-step.is-simple .el-step__arrow::before { + content: ''; + display: inline-block; + position: absolute; + height: 15px; + width: 1px; + background: #C0C4CC +} + +.el-step.is-simple .el-step__arrow::before { + -webkit-transform: rotate(-45deg) translateY(-4px); + transform: rotate(-45deg) translateY(-4px); + -webkit-transform-origin: 0 0; + transform-origin: 0 0 +} + +.el-step.is-simple .el-step__arrow::after { + -webkit-transform: rotate(45deg) translateY(4px); + transform: rotate(45deg) translateY(4px); + -webkit-transform-origin: 100% 100%; + transform-origin: 100% 100% +} + +.el-step.is-simple:last-of-type .el-step__arrow { + display: none +} + +.el-carousel { + position: relative +} + +.el-carousel--horizontal { + overflow-x: hidden +} + +.el-carousel--vertical { + overflow-y: hidden +} + +.el-carousel__container { + position: relative; + height: 300px +} + +.el-carousel__arrow { + border: none; + outline: 0; + padding: 0; + margin: 0; + height: 36px; + width: 36px; + cursor: pointer; + -webkit-transition: .3s; + transition: .3s; + border-radius: 50%; + background-color: rgba(31, 45, 61, .11); + color: #FFF; + position: absolute; + top: 50%; + z-index: 10; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + text-align: center; + font-size: 12px +} + +.el-carousel__arrow--left { + left: 16px +} + +.el-carousel__arrow:hover { + background-color: rgba(31, 45, 61, .23) +} + +.el-carousel__arrow i { + cursor: pointer +} + +.el-carousel__indicators { + position: absolute; + list-style: none; + margin: 0; + padding: 0; + z-index: 2 +} + +.el-carousel__indicators--horizontal { + bottom: 0; + left: 50%; + -webkit-transform: translateX(-50%); + transform: translateX(-50%) +} + +.el-carousel__indicators--vertical { + right: 0; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%) +} + +.el-carousel__indicators--outside { + bottom: 26px; + text-align: center; + position: static; + -webkit-transform: none; + transform: none +} + +.el-carousel__indicators--outside .el-carousel__indicator:hover button { + opacity: .64 +} + +.el-carousel__indicators--outside button { + background-color: #C0C4CC; + opacity: .24 +} + +.el-carousel__indicators--labels { + left: 0; + right: 0; + -webkit-transform: none; + transform: none; + text-align: center +} + +.el-carousel__indicators--labels .el-carousel__button { + height: auto; + width: auto; + padding: 2px 18px; + font-size: 12px +} + +.el-carousel__indicators--labels .el-carousel__indicator { + padding: 6px 4px +} + +.el-carousel__indicator { + background-color: transparent; + cursor: pointer +} + +.el-carousel__indicator:hover button { + opacity: .72 +} + +.el-carousel__indicator--horizontal { + display: inline-block; + padding: 12px 4px +} + +.el-carousel__indicator--vertical { + padding: 4px 12px +} + +.el-carousel__indicator--vertical .el-carousel__button { + width: 2px; + height: 15px +} + +.el-carousel__indicator.is-active button { + opacity: 1 +} + +.el-carousel__button { + display: block; + opacity: .48; + width: 30px; + height: 2px; + background-color: #FFF; + border: none; + outline: 0; + padding: 0; + margin: 0; + cursor: pointer; + -webkit-transition: .3s; + transition: .3s +} + +.el-carousel__item, .el-carousel__mask { + height: 100%; + position: absolute; + top: 0; + left: 0 +} + +.carousel-arrow-left-enter, .carousel-arrow-left-leave-active { + -webkit-transform: translateY(-50%) translateX(-10px); + transform: translateY(-50%) translateX(-10px); + opacity: 0 +} + +.carousel-arrow-right-enter, .carousel-arrow-right-leave-active { + -webkit-transform: translateY(-50%) translateX(10px); + transform: translateY(-50%) translateX(10px); + opacity: 0 +} + +.el-carousel__item { + width: 100%; + display: inline-block; + overflow: hidden; + z-index: 0 +} + +.el-carousel__item.is-active { + z-index: 2 +} + +.el-carousel__item.is-animating { + -webkit-transition: -webkit-transform .4s ease-in-out; + transition: -webkit-transform .4s ease-in-out; + transition: transform .4s ease-in-out; + transition: transform .4s ease-in-out, -webkit-transform .4s ease-in-out +} + +.el-carousel__item--card { + width: 50%; + -webkit-transition: -webkit-transform .4s ease-in-out; + transition: -webkit-transform .4s ease-in-out; + transition: transform .4s ease-in-out; + transition: transform .4s ease-in-out, -webkit-transform .4s ease-in-out +} + +.el-carousel__item--card.is-in-stage { + cursor: pointer; + z-index: 1 +} + +.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask, .el-carousel__item--card.is-in-stage:hover .el-carousel__mask { + opacity: .12 +} + +.el-carousel__item--card.is-active { + z-index: 2 +} + +.el-carousel__mask { + width: 100%; + background-color: #FFF; + opacity: .24; + -webkit-transition: .2s; + transition: .2s +} + +.fade-in-linear-enter-active, .fade-in-linear-leave-active { + -webkit-transition: opacity .2s linear; + transition: opacity .2s linear +} + +.fade-in-linear-enter, .fade-in-linear-leave, .fade-in-linear-leave-active { + opacity: 0 +} + +.el-fade-in-linear-enter-active, .el-fade-in-linear-leave-active { + -webkit-transition: opacity .2s linear; + transition: opacity .2s linear +} + +.el-fade-in-linear-enter, .el-fade-in-linear-leave, .el-fade-in-linear-leave-active { + opacity: 0 +} + +.el-fade-in-enter-active, .el-fade-in-leave-active { + -webkit-transition: all .3s cubic-bezier(.55, 0, .1, 1); + transition: all .3s cubic-bezier(.55, 0, .1, 1) +} + +.el-fade-in-enter, .el-fade-in-leave-active { + opacity: 0 +} + +.el-zoom-in-center-enter-active, .el-zoom-in-center-leave-active { + -webkit-transition: all .3s cubic-bezier(.55, 0, .1, 1); + transition: all .3s cubic-bezier(.55, 0, .1, 1) +} + +.el-zoom-in-center-enter, .el-zoom-in-center-leave-active { + opacity: 0; + -webkit-transform: scaleX(0); + transform: scaleX(0) +} + +.el-zoom-in-top-enter-active, .el-zoom-in-top-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); + transition: opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); + transition: transform .3s cubic-bezier(.23, 1, .32, 1), opacity .3s cubic-bezier(.23, 1, .32, 1); + transition: transform .3s cubic-bezier(.23, 1, .32, 1), opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); + -webkit-transform-origin: center top; + transform-origin: center top +} + +.el-zoom-in-top-enter, .el-zoom-in-top-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0) +} + +.el-zoom-in-bottom-enter-active, .el-zoom-in-bottom-leave-active { + opacity: 1; + -webkit-transform: scaleY(1); + transform: scaleY(1); + -webkit-transition: opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); + transition: opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); + transition: transform .3s cubic-bezier(.23, 1, .32, 1), opacity .3s cubic-bezier(.23, 1, .32, 1); + transition: transform .3s cubic-bezier(.23, 1, .32, 1), opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); + -webkit-transform-origin: center bottom; + transform-origin: center bottom +} + +.el-zoom-in-bottom-enter, .el-zoom-in-bottom-leave-active { + opacity: 0; + -webkit-transform: scaleY(0); + transform: scaleY(0) +} + +.el-zoom-in-left-enter-active, .el-zoom-in-left-leave-active { + opacity: 1; + -webkit-transform: scale(1, 1); + transform: scale(1, 1); + -webkit-transition: opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); + transition: opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); + transition: transform .3s cubic-bezier(.23, 1, .32, 1), opacity .3s cubic-bezier(.23, 1, .32, 1); + transition: transform .3s cubic-bezier(.23, 1, .32, 1), opacity .3s cubic-bezier(.23, 1, .32, 1), -webkit-transform .3s cubic-bezier(.23, 1, .32, 1); + -webkit-transform-origin: top left; + transform-origin: top left +} + +.el-zoom-in-left-enter, .el-zoom-in-left-leave-active { + opacity: 0; + -webkit-transform: scale(.45, .45); + transform: scale(.45, .45) +} + +.collapse-transition { + -webkit-transition: .3s height ease-in-out, .3s padding-top ease-in-out, .3s padding-bottom ease-in-out; + transition: .3s height ease-in-out, .3s padding-top ease-in-out, .3s padding-bottom ease-in-out +} + +.horizontal-collapse-transition { + -webkit-transition: .3s width ease-in-out, .3s padding-left ease-in-out, .3s padding-right ease-in-out; + transition: .3s width ease-in-out, .3s padding-left ease-in-out, .3s padding-right ease-in-out +} + +.el-list-enter-active, .el-list-leave-active { + -webkit-transition: all 1s; + transition: all 1s +} + +.el-list-enter, .el-list-leave-active { + opacity: 0; + -webkit-transform: translateY(-30px); + transform: translateY(-30px) +} + +.el-opacity-transition { + -webkit-transition: opacity .3s cubic-bezier(.55, 0, .1, 1); + transition: opacity .3s cubic-bezier(.55, 0, .1, 1) +} + +.el-collapse { + border-top: 1px solid #EBEEF5; + border-bottom: 1px solid #EBEEF5 +} + +.el-collapse-item.is-disabled .el-collapse-item__header { + color: #bbb; + cursor: not-allowed +} + +.el-collapse-item__header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 48px; + line-height: 48px; + background-color: #FFF; + color: #303133; + cursor: pointer; + border-bottom: 1px solid #EBEEF5; + font-size: 13px; + font-weight: 500; + -webkit-transition: border-bottom-color .3s; + transition: border-bottom-color .3s; + outline: 0 +} + +.el-collapse-item__arrow { + margin: 0 8px 0 auto; + -webkit-transition: -webkit-transform .3s; + transition: -webkit-transform .3s; + transition: transform .3s; + transition: transform .3s, -webkit-transform .3s; + font-weight: 300 +} + +.el-collapse-item__arrow.is-active { + -webkit-transform: rotate(90deg); + transform: rotate(90deg) +} + +.el-collapse-item__header.focusing:focus:not(:hover) { + color: #409EFF +} + +.el-collapse-item__header.is-active { + border-bottom-color: transparent +} + +.el-collapse-item__wrap { + will-change: height; + background-color: #FFF; + overflow: hidden; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-bottom: 1px solid #EBEEF5 +} + +.el-cascader__search-input, .el-cascader__tags, .el-tag { + -webkit-box-sizing: border-box +} + +.el-collapse-item__content { + padding-bottom: 25px; + font-size: 13px; + color: #303133; + line-height: 1.769230769230769 +} + +.el-collapse-item:last-child { + margin-bottom: -1px +} + +.el-popper .popper__arrow, .el-popper .popper__arrow::after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid +} + +.el-cascader, .el-tag { + display: inline-block +} + +.el-popper .popper__arrow { + border-width: 6px; + -webkit-filter: drop-shadow(0 2px 12px rgba(0, 0, 0, .03)); + filter: drop-shadow(0 2px 12px rgba(0, 0, 0, .03)) +} + +.el-popper .popper__arrow::after { + content: " "; + border-width: 6px +} + +.el-popper[x-placement^=top] { + margin-bottom: 12px +} + +.el-popper[x-placement^=top] .popper__arrow { + bottom: -6px; + left: 50%; + margin-right: 3px; + border-top-color: #EBEEF5; + border-bottom-width: 0 +} + +.el-popper[x-placement^=top] .popper__arrow::after { + bottom: 1px; + margin-left: -6px; + border-top-color: #FFF; + border-bottom-width: 0 +} + +.el-popper[x-placement^=bottom] { + margin-top: 12px +} + +.el-popper[x-placement^=bottom] .popper__arrow { + top: -6px; + left: 50%; + margin-right: 3px; + border-top-width: 0; + border-bottom-color: #EBEEF5 +} + +.el-popper[x-placement^=bottom] .popper__arrow::after { + top: 1px; + margin-left: -6px; + border-top-width: 0; + border-bottom-color: #FFF +} + +.el-popper[x-placement^=right] { + margin-left: 12px +} + +.el-popper[x-placement^=right] .popper__arrow { + top: 50%; + left: -6px; + margin-bottom: 3px; + border-right-color: #EBEEF5; + border-left-width: 0 +} + +.el-popper[x-placement^=right] .popper__arrow::after { + bottom: -6px; + left: 1px; + border-right-color: #FFF; + border-left-width: 0 +} + +.el-popper[x-placement^=left] { + margin-right: 12px +} + +.el-popper[x-placement^=left] .popper__arrow { + top: 50%; + right: -6px; + margin-bottom: 3px; + border-right-width: 0; + border-left-color: #EBEEF5 +} + +.el-popper[x-placement^=left] .popper__arrow::after { + right: 1px; + bottom: -6px; + margin-left: -6px; + border-right-width: 0; + border-left-color: #FFF +} + +.el-tag { + background-color: #ecf5ff; + border-color: #d9ecff; + height: 32px; + padding: 0 10px; + line-height: 30px; + font-size: 12px; + color: #409EFF; + border-width: 1px; + border-style: solid; + border-radius: 4px; + box-sizing: border-box; + white-space: nowrap +} + +.el-tag.is-hit { + border-color: #409EFF +} + +.el-tag .el-tag__close { + color: #409eff +} + +.el-tag .el-tag__close:hover { + color: #FFF; + background-color: #409eff +} + +.el-tag.el-tag--info { + background-color: #f4f4f5; + border-color: #e9e9eb; + color: #909399 +} + +.el-tag.el-tag--info.is-hit { + border-color: #909399 +} + +.el-tag.el-tag--info .el-tag__close { + color: #909399 +} + +.el-tag.el-tag--info .el-tag__close:hover { + color: #FFF; + background-color: #909399 +} + +.el-tag.el-tag--success { + background-color: #f0f9eb; + border-color: #e1f3d8; + color: #67c23a +} + +.el-tag.el-tag--success.is-hit { + border-color: #67C23A +} + +.el-tag.el-tag--success .el-tag__close { + color: #67c23a +} + +.el-tag.el-tag--success .el-tag__close:hover { + color: #FFF; + background-color: #67c23a +} + +.el-tag.el-tag--warning { + background-color: #fdf6ec; + border-color: #faecd8; + color: #e6a23c +} + +.el-tag.el-tag--warning.is-hit { + border-color: #E6A23C +} + +.el-tag.el-tag--warning .el-tag__close { + color: #e6a23c +} + +.el-tag.el-tag--warning .el-tag__close:hover { + color: #FFF; + background-color: #e6a23c +} + +.el-tag.el-tag--danger { + background-color: #fef0f0; + border-color: #fde2e2; + color: #f56c6c +} + +.el-tag.el-tag--danger.is-hit { + border-color: #F56C6C +} + +.el-tag.el-tag--danger .el-tag__close { + color: #f56c6c +} + +.el-tag.el-tag--danger .el-tag__close:hover { + color: #FFF; + background-color: #f56c6c +} + +.el-tag .el-icon-close { + border-radius: 50%; + text-align: center; + position: relative; + cursor: pointer; + font-size: 12px; + height: 16px; + width: 16px; + line-height: 16px; + vertical-align: middle; + top: -1px; + right: -5px +} + +.el-tag .el-icon-close::before { + display: block +} + +.el-tag--dark { + background-color: #409eff; + border-color: #409eff; + color: #fff +} + +.el-tag--dark.is-hit { + border-color: #409EFF +} + +.el-tag--dark .el-tag__close { + color: #fff +} + +.el-tag--dark .el-tag__close:hover { + color: #FFF; + background-color: #66b1ff +} + +.el-tag--dark.el-tag--info { + background-color: #909399; + border-color: #909399; + color: #fff +} + +.el-tag--dark.el-tag--info.is-hit { + border-color: #909399 +} + +.el-tag--dark.el-tag--info .el-tag__close { + color: #fff +} + +.el-tag--dark.el-tag--info .el-tag__close:hover { + color: #FFF; + background-color: #a6a9ad +} + +.el-tag--dark.el-tag--success { + background-color: #67c23a; + border-color: #67c23a; + color: #fff +} + +.el-tag--dark.el-tag--success.is-hit { + border-color: #67C23A +} + +.el-tag--dark.el-tag--success .el-tag__close { + color: #fff +} + +.el-tag--dark.el-tag--success .el-tag__close:hover { + color: #FFF; + background-color: #85ce61 +} + +.el-tag--dark.el-tag--warning { + background-color: #e6a23c; + border-color: #e6a23c; + color: #fff +} + +.el-tag--dark.el-tag--warning.is-hit { + border-color: #E6A23C +} + +.el-tag--dark.el-tag--warning .el-tag__close { + color: #fff +} + +.el-tag--dark.el-tag--warning .el-tag__close:hover { + color: #FFF; + background-color: #ebb563 +} + +.el-tag--dark.el-tag--danger { + background-color: #f56c6c; + border-color: #f56c6c; + color: #fff +} + +.el-tag--dark.el-tag--danger.is-hit { + border-color: #F56C6C +} + +.el-tag--dark.el-tag--danger .el-tag__close { + color: #fff +} + +.el-tag--dark.el-tag--danger .el-tag__close:hover { + color: #FFF; + background-color: #f78989 +} + +.el-tag--plain { + background-color: #fff; + border-color: #b3d8ff; + color: #409eff +} + +.el-tag--plain.is-hit { + border-color: #409EFF +} + +.el-tag--plain .el-tag__close { + color: #409eff +} + +.el-tag--plain .el-tag__close:hover { + color: #FFF; + background-color: #409eff +} + +.el-tag--plain.el-tag--info { + background-color: #fff; + border-color: #d3d4d6; + color: #909399 +} + +.el-tag--plain.el-tag--info.is-hit { + border-color: #909399 +} + +.el-tag--plain.el-tag--info .el-tag__close { + color: #909399 +} + +.el-tag--plain.el-tag--info .el-tag__close:hover { + color: #FFF; + background-color: #909399 +} + +.el-tag--plain.el-tag--success { + background-color: #fff; + border-color: #c2e7b0; + color: #67c23a +} + +.el-tag--plain.el-tag--success.is-hit { + border-color: #67C23A +} + +.el-tag--plain.el-tag--success .el-tag__close { + color: #67c23a +} + +.el-tag--plain.el-tag--success .el-tag__close:hover { + color: #FFF; + background-color: #67c23a +} + +.el-tag--plain.el-tag--warning { + background-color: #fff; + border-color: #f5dab1; + color: #e6a23c +} + +.el-tag--plain.el-tag--warning.is-hit { + border-color: #E6A23C +} + +.el-tag--plain.el-tag--warning .el-tag__close { + color: #e6a23c +} + +.el-tag--plain.el-tag--warning .el-tag__close:hover { + color: #FFF; + background-color: #e6a23c +} + +.el-tag--plain.el-tag--danger { + background-color: #fff; + border-color: #fbc4c4; + color: #f56c6c +} + +.el-tag--plain.el-tag--danger.is-hit { + border-color: #F56C6C +} + +.el-tag--plain.el-tag--danger .el-tag__close { + color: #f56c6c +} + +.el-tag--plain.el-tag--danger .el-tag__close:hover { + color: #FFF; + background-color: #f56c6c +} + +.el-tag--medium { + height: 28px; + line-height: 26px +} + +.el-tag--medium .el-icon-close { + -webkit-transform: scale(.8); + transform: scale(.8) +} + +.el-tag--small { + height: 24px; + padding: 0 8px; + line-height: 22px +} + +.el-tag--small .el-icon-close { + -webkit-transform: scale(.8); + transform: scale(.8) +} + +.el-tag--mini { + height: 20px; + padding: 0 5px; + line-height: 19px +} + +.el-tag--mini .el-icon-close { + margin-left: -3px; + -webkit-transform: scale(.7); + transform: scale(.7) +} + +.el-cascader { + position: relative; + font-size: 14px; + line-height: 40px +} + +.el-cascader:not(.is-disabled):hover .el-input__inner { + cursor: pointer; + border-color: #C0C4CC +} + +.el-cascader .el-input .el-input__inner:focus, .el-cascader .el-input.is-focus .el-input__inner { + border-color: #409EFF +} + +.el-cascader .el-input { + cursor: pointer +} + +.el-cascader .el-input .el-input__inner { + text-overflow: ellipsis +} + +.el-cascader .el-input .el-icon-arrow-down { + -webkit-transition: -webkit-transform .3s; + transition: -webkit-transform .3s; + transition: transform .3s; + transition: transform .3s, -webkit-transform .3s; + font-size: 14px +} + +.el-cascader .el-input .el-icon-arrow-down.is-reverse { + -webkit-transform: rotateZ(180deg); + transform: rotateZ(180deg) +} + +.el-cascader .el-input .el-icon-circle-close:hover { + color: #909399 +} + +.el-cascader--medium { + font-size: 14px; + line-height: 36px +} + +.el-cascader--small { + font-size: 13px; + line-height: 32px +} + +.el-cascader--mini { + font-size: 12px; + line-height: 28px +} + +.el-cascader.is-disabled .el-cascader__label { + z-index: 2; + color: #C0C4CC +} + +.el-cascader__dropdown { + margin: 5px 0; + font-size: 14px; + background: #FFF; + border: 1px solid #E4E7ED; + border-radius: 4px; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1) +} + +.el-cascader__tags { + position: absolute; + left: 0; + right: 30px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-wrap: wrap; + flex-wrap: wrap; + line-height: normal; + text-align: left; + box-sizing: border-box +} + +.el-cascader__tags .el-tag { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + max-width: 100%; + margin: 2px 0 2px 6px; + text-overflow: ellipsis; + background: #f0f2f5 +} + +.el-cascader__tags .el-tag:not(.is-hit) { + border-color: transparent +} + +.el-cascader__tags .el-tag > span { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + overflow: hidden; + text-overflow: ellipsis +} + +.el-cascader__tags .el-tag .el-icon-close { + -webkit-box-flex: 0; + -ms-flex: none; + flex: none; + background-color: #C0C4CC; + color: #FFF +} + +.el-cascader__tags .el-tag .el-icon-close:hover { + background-color: #909399 +} + +.el-cascader__suggestion-panel { + border-radius: 4px +} + +.el-cascader__suggestion-list { + max-height: 204px; + margin: 0; + padding: 6px 0; + font-size: 14px; + color: #606266; + text-align: center +} + +.el-cascader__suggestion-item { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + height: 34px; + padding: 0 15px; + text-align: left; + outline: 0; + cursor: pointer +} + +.el-cascader__suggestion-item:focus, .el-cascader__suggestion-item:hover { + background: #F5F7FA +} + +.el-cascader__suggestion-item.is-checked { + color: #409EFF; + font-weight: 700 +} + +.el-cascader__suggestion-item > span { + margin-right: 10px +} + +.el-cascader__empty-text { + margin: 10px 0; + color: #C0C4CC +} + +.el-cascader__search-input { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + height: 24px; + min-width: 60px; + margin: 2px 0 2px 15px; + padding: 0; + color: #606266; + border: none; + outline: 0; + box-sizing: border-box +} + +.el-cascader__search-input::-webkit-input-placeholder { + color: #C0C4CC +} + +.el-cascader__search-input:-ms-input-placeholder { + color: #C0C4CC +} + +.el-cascader__search-input::-ms-input-placeholder { + color: #C0C4CC +} + +.el-cascader__search-input::placeholder { + color: #C0C4CC +} + +.el-color-predefine { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + font-size: 12px; + margin-top: 8px; + width: 280px +} + +.el-color-predefine__colors { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -ms-flex-wrap: wrap; + flex-wrap: wrap +} + +.el-color-predefine__color-selector { + margin: 0 0 8px 8px; + width: 20px; + height: 20px; + border-radius: 4px; + cursor: pointer +} + +.el-color-predefine__color-selector:nth-child(10n+1) { + margin-left: 0 +} + +.el-color-predefine__color-selector.selected { + -webkit-box-shadow: 0 0 3px 2px #409EFF; + box-shadow: 0 0 3px 2px #409EFF +} + +.el-color-predefine__color-selector > div { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + height: 100%; + border-radius: 3px +} + +.el-color-predefine__color-selector.is-alpha { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==) +} + +.el-color-hue-slider { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 280px; + height: 12px; + background-color: red; + padding: 0 2px +} + +.el-color-hue-slider__bar { + position: relative; + background: -webkit-gradient(linear, left top, right top, from(red), color-stop(17%, #ff0), color-stop(33%, #0f0), color-stop(50%, #0ff), color-stop(67%, #00f), color-stop(83%, #f0f), to(red)); + background: linear-gradient(to right, red 0, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, red 100%); + height: 100% +} + +.el-color-hue-slider__thumb { + position: absolute; + cursor: pointer; + -webkit-box-sizing: border-box; + box-sizing: border-box; + left: 0; + top: 0; + width: 4px; + height: 100%; + border-radius: 1px; + background: #fff; + border: 1px solid #f0f0f0; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .6); + box-shadow: 0 0 2px rgba(0, 0, 0, .6); + z-index: 1 +} + +.el-color-hue-slider.is-vertical { + width: 12px; + height: 180px; + padding: 2px 0 +} + +.el-color-hue-slider.is-vertical .el-color-hue-slider__bar { + background: -webkit-gradient(linear, left top, left bottom, from(red), color-stop(17%, #ff0), color-stop(33%, #0f0), color-stop(50%, #0ff), color-stop(67%, #00f), color-stop(83%, #f0f), to(red)); + background: linear-gradient(to bottom, red 0, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, red 100%) +} + +.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb { + left: 0; + top: 0; + width: 100%; + height: 4px +} + +.el-color-svpanel { + position: relative; + width: 280px; + height: 180px +} + +.el-color-svpanel__black, .el-color-svpanel__white { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0 +} + +.el-color-svpanel__white { + background: -webkit-gradient(linear, left top, right top, from(#fff), to(rgba(255, 255, 255, 0))); + background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0)) +} + +.el-color-svpanel__black { + background: -webkit-gradient(linear, left bottom, left top, from(#000), to(rgba(0, 0, 0, 0))); + background: linear-gradient(to top, #000, rgba(0, 0, 0, 0)) +} + +.el-color-svpanel__cursor { + position: absolute +} + +.el-color-svpanel__cursor > div { + cursor: head; + width: 4px; + height: 4px; + -webkit-box-shadow: 0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0, 0, 0, .3), 0 0 1px 2px rgba(0, 0, 0, .4); + box-shadow: 0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0, 0, 0, .3), 0 0 1px 2px rgba(0, 0, 0, .4); + border-radius: 50%; + -webkit-transform: translate(-2px, -2px); + transform: translate(-2px, -2px) +} + +.el-color-alpha-slider { + position: relative; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 280px; + height: 12px; + background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==) +} + +.el-color-alpha-slider__bar { + position: relative; + background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), to(white)); + background: linear-gradient(to right, rgba(255, 255, 255, 0) 0, #fff 100%); + height: 100% +} + +.el-color-alpha-slider__thumb { + position: absolute; + cursor: pointer; + -webkit-box-sizing: border-box; + box-sizing: border-box; + left: 0; + top: 0; + width: 4px; + height: 100%; + border-radius: 1px; + background: #fff; + border: 1px solid #f0f0f0; + -webkit-box-shadow: 0 0 2px rgba(0, 0, 0, .6); + box-shadow: 0 0 2px rgba(0, 0, 0, .6); + z-index: 1 +} + +.el-color-alpha-slider.is-vertical { + width: 20px; + height: 180px +} + +.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar { + background: -webkit-gradient(linear, left top, left bottom, from(rgba(255, 255, 255, 0)), to(white)); + background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0, #fff 100%) +} + +.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb { + left: 0; + top: 0; + width: 100%; + height: 4px +} + +.el-color-dropdown { + width: 300px +} + +.el-color-dropdown__main-wrapper { + margin-bottom: 6px +} + +.el-color-dropdown__main-wrapper::after { + display: table; + clear: both +} + +.el-color-dropdown__btns { + margin-top: 6px; + text-align: right +} + +.el-color-dropdown__value { + float: left; + line-height: 26px; + font-size: 12px; + color: #000; + width: 160px +} + +.el-color-dropdown__btn { + border: 1px solid #dcdcdc; + color: #333; + line-height: 24px; + border-radius: 2px; + padding: 0 20px; + cursor: pointer; + background-color: transparent; + outline: 0; + font-size: 12px +} + +.el-color-dropdown__btn[disabled] { + color: #ccc; + cursor: not-allowed +} + +.el-color-dropdown__btn:hover { + color: #409EFF; + border-color: #409EFF +} + +.el-color-dropdown__link-btn { + cursor: pointer; + color: #409EFF; + text-decoration: none; + padding: 15px; + font-size: 12px +} + +.el-color-dropdown__link-btn:hover { + color: tint(#409EFF, 20%) +} + +.el-color-picker { + display: inline-block; + position: relative; + line-height: normal; + height: 40px +} + +.el-color-picker.is-disabled .el-color-picker__trigger { + cursor: not-allowed +} + +.el-color-picker--medium { + height: 36px +} + +.el-color-picker--medium .el-color-picker__trigger { + height: 36px; + width: 36px +} + +.el-color-picker--medium .el-color-picker__mask { + height: 34px; + width: 34px +} + +.el-color-picker--small { + height: 32px +} + +.el-color-picker--small .el-color-picker__trigger { + height: 32px; + width: 32px +} + +.el-color-picker--small .el-color-picker__mask { + height: 30px; + width: 30px +} + +.el-color-picker--small .el-color-picker__empty, .el-color-picker--small .el-color-picker__icon { + -webkit-transform: translate3d(-50%, -50%, 0) scale(.8); + transform: translate3d(-50%, -50%, 0) scale(.8) +} + +.el-color-picker--mini { + height: 28px +} + +.el-color-picker--mini .el-color-picker__trigger { + height: 28px; + width: 28px +} + +.el-color-picker--mini .el-color-picker__mask { + height: 26px; + width: 26px +} + +.el-color-picker--mini .el-color-picker__empty, .el-color-picker--mini .el-color-picker__icon { + -webkit-transform: translate3d(-50%, -50%, 0) scale(.8); + transform: translate3d(-50%, -50%, 0) scale(.8) +} + +.el-color-picker__mask { + height: 38px; + width: 38px; + border-radius: 4px; + position: absolute; + top: 1px; + left: 1px; + z-index: 1; + cursor: not-allowed; + background-color: rgba(255, 255, 255, .7) +} + +.el-color-picker__trigger { + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 40px; + width: 40px; + padding: 4px; + border: 1px solid #e6e6e6; + border-radius: 4px; + font-size: 0; + position: relative; + cursor: pointer +} + +.el-color-picker__color { + position: relative; + display: block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border: 1px solid #999; + border-radius: 2px; + width: 100%; + height: 100%; + text-align: center +} + +.el-color-picker__icon, .el-input, .el-textarea { + display: inline-block; + width: 100% +} + +.el-color-picker__color.is-alpha { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==) +} + +.el-color-picker__color-inner { + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0 +} + +.el-color-picker__empty { + font-size: 12px; + color: #999; + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0) +} + +.el-color-picker__icon { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate3d(-50%, -50%, 0); + transform: translate3d(-50%, -50%, 0); + color: #FFF; + text-align: center; + font-size: 12px +} + +.el-input__prefix, .el-input__suffix { + position: absolute; + top: 0; + text-align: center +} + +.el-color-picker__panel { + position: absolute; + z-index: 10; + padding: 6px; + -webkit-box-sizing: content-box; + box-sizing: content-box; + background-color: #FFF; + border: 1px solid #EBEEF5; + border-radius: 4px; + box-shadow: 0 2px 12px 0 rgba(0, 0, 0, .1) +} + +.el-input__inner, .el-textarea__inner, .el-transfer-panel { + -webkit-box-sizing: border-box +} + +.el-textarea { + position: relative; + vertical-align: bottom; + font-size: 14px +} + +.el-textarea__inner { + display: block; + resize: vertical; + padding: 5px 15px; + line-height: 1.5; + box-sizing: border-box; + width: 100%; + font-size: inherit; + color: #606266; + background-color: #FFF; + background-image: none; + border: 1px solid #DCDFE6; + border-radius: 4px; + -webkit-transition: border-color .2s cubic-bezier(.645, .045, .355, 1); + transition: border-color .2s cubic-bezier(.645, .045, .355, 1) +} + +.el-textarea__inner::-webkit-input-placeholder { + color: #C0C4CC +} + +.el-textarea__inner:-ms-input-placeholder { + color: #C0C4CC +} + +.el-textarea__inner::-ms-input-placeholder { + color: #C0C4CC +} + +.el-textarea__inner::placeholder { + color: #C0C4CC +} + +.el-textarea__inner:hover { + border-color: #C0C4CC +} + +.el-textarea__inner:focus { + outline: 0; + border-color: #409EFF +} + +.el-textarea .el-input__count { + color: #909399; + background: #FFF; + position: absolute; + font-size: 12px; + bottom: 5px; + right: 10px +} + +.el-textarea.is-disabled .el-textarea__inner { + background-color: #F5F7FA; + border-color: #E4E7ED; + color: #C0C4CC; + cursor: not-allowed +} + +.el-textarea.is-disabled .el-textarea__inner::-webkit-input-placeholder { + color: #C0C4CC +} + +.el-textarea.is-disabled .el-textarea__inner:-ms-input-placeholder { + color: #C0C4CC +} + +.el-textarea.is-disabled .el-textarea__inner::-ms-input-placeholder { + color: #C0C4CC +} + +.el-textarea.is-disabled .el-textarea__inner::placeholder { + color: #C0C4CC +} + +.el-textarea.is-exceed .el-textarea__inner { + border-color: #F56C6C +} + +.el-textarea.is-exceed .el-input__count { + color: #F56C6C +} + +.el-input { + position: relative; + font-size: 14px +} + +.el-input::-webkit-scrollbar { + z-index: 11; + width: 6px +} + +.el-input::-webkit-scrollbar:horizontal { + height: 6px +} + +.el-input::-webkit-scrollbar-thumb { + border-radius: 5px; + width: 6px; + background: #b4bccc +} + +.el-input::-webkit-scrollbar-corner { + background: #fff +} + +.el-input::-webkit-scrollbar-track { + background: #fff +} + +.el-input::-webkit-scrollbar-track-piece { + background: #fff; + width: 6px +} + +.el-input .el-input__clear { + color: #C0C4CC; + font-size: 14px; + cursor: pointer; + -webkit-transition: color .2s cubic-bezier(.645, .045, .355, 1); + transition: color .2s cubic-bezier(.645, .045, .355, 1) +} + +.el-input .el-input__clear:hover { + color: #909399 +} + +.el-input .el-input__count { + height: 100%; + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + color: #909399; + font-size: 12px +} + +.el-input-group__append .el-button, .el-input-group__append .el-input, .el-input-group__prepend .el-button, .el-input-group__prepend .el-input, .el-input__inner { + font-size: inherit +} + +.el-input .el-input__count .el-input__count-inner { + background: #FFF; + line-height: initial; + display: inline-block; + padding: 0 5px +} + +.el-input__inner { + -webkit-appearance: none; + background-color: #FFF; + background-image: none; + border-radius: 4px; + border: 1px solid #DCDFE6; + box-sizing: border-box; + color: #606266; + display: inline-block; + height: 40px; + line-height: 40px; + outline: 0; + padding: 0 15px; + -webkit-transition: border-color .2s cubic-bezier(.645, .045, .355, 1); + transition: border-color .2s cubic-bezier(.645, .045, .355, 1); + width: 100% +} + +.el-input__inner::-ms-reveal { + display: none +} + +.el-input__inner::-webkit-input-placeholder { + color: #C0C4CC +} + +.el-input__inner:-ms-input-placeholder { + color: #C0C4CC +} + +.el-input__inner::-ms-input-placeholder { + color: #C0C4CC +} + +.el-input__inner::placeholder { + color: #C0C4CC +} + +.el-input__inner:hover { + border-color: #C0C4CC +} + +.el-input.is-active .el-input__inner, .el-input__inner:focus { + border-color: #409EFF; + outline: 0 +} + +.el-input__suffix { + height: 100%; + right: 5px; + transition: all .3s; + pointer-events: none +} + +.el-input__suffix-inner { + pointer-events: all +} + +.el-input__prefix { + height: 100%; + left: 5px; + transition: all .3s +} + +.el-input__icon { + height: 100%; + width: 25px; + text-align: center; + -webkit-transition: all .3s; + transition: all .3s; + line-height: 40px +} + +.el-input__icon:after { + content: ''; + height: 100%; + width: 0; + display: inline-block; + vertical-align: middle +} + +.el-input__validateIcon { + pointer-events: none +} + +.el-input.is-disabled .el-input__inner { + background-color: #F5F7FA; + border-color: #E4E7ED; + color: #C0C4CC; + cursor: not-allowed +} + +.el-input.is-disabled .el-input__inner::-webkit-input-placeholder { + color: #C0C4CC +} + +.el-input.is-disabled .el-input__inner:-ms-input-placeholder { + color: #C0C4CC +} + +.el-input.is-disabled .el-input__inner::-ms-input-placeholder { + color: #C0C4CC +} + +.el-input.is-disabled .el-input__inner::placeholder { + color: #C0C4CC +} + +.el-input.is-disabled .el-input__icon { + cursor: not-allowed +} + +.el-image-viewer__btn, .el-image__preview, .el-link, .el-transfer-panel__filter .el-icon-circle-close { + cursor: pointer +} + +.el-input.is-exceed .el-input__inner { + border-color: #F56C6C +} + +.el-input.is-exceed .el-input__suffix .el-input__count { + color: #F56C6C +} + +.el-input--suffix .el-input__inner { + padding-right: 30px +} + +.el-input--prefix .el-input__inner { + padding-left: 30px +} + +.el-input--medium { + font-size: 14px +} + +.el-input--medium .el-input__inner { + height: 36px; + line-height: 36px +} + +.el-input--medium .el-input__icon { + line-height: 36px +} + +.el-input--small { + font-size: 13px +} + +.el-input--small .el-input__inner { + height: 32px; + line-height: 32px +} + +.el-input--small .el-input__icon { + line-height: 32px +} + +.el-input--mini { + font-size: 12px +} + +.el-input--mini .el-input__inner { + height: 28px; + line-height: 28px +} + +.el-input--mini .el-input__icon { + line-height: 28px +} + +.el-input-group { + line-height: normal; + display: inline-table; + width: 100%; + border-collapse: separate; + border-spacing: 0 +} + +.el-input-group > .el-input__inner { + vertical-align: middle; + display: table-cell +} + +.el-input-group__append, .el-input-group__prepend { + background-color: #F5F7FA; + color: #909399; + vertical-align: middle; + display: table-cell; + position: relative; + border: 1px solid #DCDFE6; + border-radius: 4px; + padding: 0 20px; + width: 1px; + white-space: nowrap +} + +.el-input-group--append .el-input__inner, .el-input-group__prepend { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.el-input-group__append:focus, .el-input-group__prepend:focus { + outline: 0 +} + +.el-input-group__append .el-button, .el-input-group__append .el-select, .el-input-group__prepend .el-button, .el-input-group__prepend .el-select { + display: inline-block; + margin: -10px -20px +} + +.el-input-group__append button.el-button, .el-input-group__append div.el-select .el-input__inner, .el-input-group__append div.el-select:hover .el-input__inner, .el-input-group__prepend button.el-button, .el-input-group__prepend div.el-select .el-input__inner, .el-input-group__prepend div.el-select:hover .el-input__inner { + border-color: transparent; + background-color: transparent; + color: inherit; + border-top: 0; + border-bottom: 0 +} + +.el-input-group__prepend { + border-right: 0 +} + +.el-input-group__append { + border-left: 0; + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.el-input-group--append .el-select .el-input.is-focus .el-input__inner, .el-input-group--prepend .el-select .el-input.is-focus .el-input__inner { + border-color: transparent +} + +.el-input-group--prepend .el-input__inner { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.el-input__inner::-ms-clear { + display: none; + width: 0; + height: 0 +} + +.el-transfer { + font-size: 14px +} + +.el-transfer__buttons { + display: inline-block; + vertical-align: middle; + padding: 0 30px +} + +.el-transfer__button { + display: block; + margin: 0 auto; + padding: 10px; + border-radius: 50%; + color: #FFF; + background-color: #409EFF; + font-size: 0 +} + +.el-button-group > .el-button + .el-button, .el-transfer-panel__item + .el-transfer-panel__item, .el-transfer__button [class*=el-icon-] + span { + margin-left: 0 +} + +.el-divider__text, .el-image__error, .el-link, .el-timeline, .el-transfer__button i, .el-transfer__button span { + font-size: 14px +} + +.el-transfer__button.is-with-texts { + border-radius: 4px +} + +.el-transfer__button.is-disabled, .el-transfer__button.is-disabled:hover { + border: 1px solid #DCDFE6; + background-color: #F5F7FA; + color: #C0C4CC +} + +.el-transfer__button:first-child { + margin-bottom: 10px +} + +.el-transfer__button:nth-child(2) { + margin: 0 +} + +.el-transfer-panel { + border: 1px solid #EBEEF5; + border-radius: 4px; + overflow: hidden; + background: #FFF; + display: inline-block; + vertical-align: middle; + width: 200px; + max-height: 100%; + box-sizing: border-box; + position: relative +} + +.el-transfer-panel__body { + height: 246px +} + +.el-transfer-panel__body.is-with-footer { + padding-bottom: 40px +} + +.el-transfer-panel__list { + margin: 0; + padding: 6px 0; + list-style: none; + height: 246px; + overflow: auto; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-transfer-panel__list.is-filterable { + height: 194px; + padding-top: 0 +} + +.el-transfer-panel__item { + height: 30px; + line-height: 30px; + padding-left: 15px; + display: block !important +} + +.el-transfer-panel__item.el-checkbox { + color: #606266 +} + +.el-transfer-panel__item:hover { + color: #409EFF +} + +.el-transfer-panel__item.el-checkbox .el-checkbox__label { + width: 100%; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + display: block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-left: 24px; + line-height: 30px +} + +.el-transfer-panel__item .el-checkbox__input { + position: absolute; + top: 8px +} + +.el-transfer-panel__filter { + text-align: center; + margin: 15px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + display: block; + width: auto +} + +.el-transfer-panel__filter .el-input__inner { + height: 32px; + width: 100%; + font-size: 12px; + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + border-radius: 16px; + padding-right: 10px; + padding-left: 30px +} + +.el-transfer-panel__filter .el-input__icon { + margin-left: 5px +} + +.el-transfer-panel .el-transfer-panel__header { + height: 40px; + line-height: 40px; + background: #F5F7FA; + margin: 0; + padding-left: 15px; + border-bottom: 1px solid #EBEEF5; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: #000 +} + +.el-container, .el-header { + -webkit-box-sizing: border-box +} + +.el-transfer-panel .el-transfer-panel__header .el-checkbox { + display: block; + line-height: 40px +} + +.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label { + font-size: 16px; + color: #303133; + font-weight: 400 +} + +.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label span { + position: absolute; + right: 15px; + color: #909399; + font-size: 12px; + font-weight: 400 +} + +.el-transfer-panel .el-transfer-panel__footer { + height: 40px; + background: #FFF; + margin: 0; + padding: 0; + border-top: 1px solid #EBEEF5; + position: absolute; + bottom: 0; + left: 0; + width: 100%; + z-index: 1 +} + +.el-transfer-panel .el-transfer-panel__footer::after { + display: inline-block; + height: 100%; + vertical-align: middle +} + +.el-container, .el-timeline-item__node { + display: -webkit-box; + display: -ms-flexbox +} + +.el-transfer-panel .el-transfer-panel__footer .el-checkbox { + padding-left: 20px; + color: #606266 +} + +.el-transfer-panel .el-transfer-panel__empty { + margin: 0; + height: 30px; + line-height: 30px; + padding: 6px 15px 0; + color: #909399; + text-align: center +} + +.el-transfer-panel .el-checkbox__label { + padding-left: 8px +} + +.el-transfer-panel .el-checkbox__inner { + height: 14px; + width: 14px; + border-radius: 3px +} + +.el-transfer-panel .el-checkbox__inner::after { + height: 6px; + width: 3px; + left: 4px +} + +.el-container { + display: flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -ms-flex-preferred-size: auto; + flex-basis: auto; + box-sizing: border-box; + min-width: 0 +} + +.el-container.is-vertical, .el-drawer, .el-empty, .el-result { + -webkit-box-orient: vertical; + -webkit-box-direction: normal +} + +.el-container.is-vertical { + -ms-flex-direction: column; + flex-direction: column +} + +.el-header { + padding: 0 20px; + box-sizing: border-box; + -ms-flex-negative: 0; + flex-shrink: 0 +} + +.el-aside { + overflow: auto; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -ms-flex-negative: 0; + flex-shrink: 0 +} + +.el-main { + display: block; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + -ms-flex-preferred-size: auto; + flex-basis: auto; + overflow: auto; + -webkit-box-sizing: border-box; + box-sizing: border-box +} + +.el-footer { + padding: 0 20px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -ms-flex-negative: 0; + flex-shrink: 0 +} + +.el-timeline { + margin: 0; + list-style: none +} + +.el-timeline .el-timeline-item:last-child .el-timeline-item__tail { + display: none +} + +.el-timeline-item { + position: relative; + padding-bottom: 20px +} + +.el-timeline-item__wrapper { + position: relative; + padding-left: 28px; + top: -3px +} + +.el-timeline-item__tail { + position: absolute; + left: 4px; + height: 100%; + border-left: 2px solid #E4E7ED +} + +.el-timeline-item__icon { + color: #FFF; + font-size: 13px +} + +.el-timeline-item__node { + position: absolute; + background-color: #E4E7ED; + border-radius: 50%; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center +} + +.el-image__error, .el-timeline-item__dot { + display: -webkit-box; + display: -ms-flexbox +} + +.el-timeline-item__node--normal { + left: -1px; + width: 12px; + height: 12px +} + +.el-timeline-item__node--large { + left: -2px; + width: 14px; + height: 14px +} + +.el-timeline-item__node--primary { + background-color: #409EFF +} + +.el-timeline-item__node--success { + background-color: #67C23A +} + +.el-timeline-item__node--warning { + background-color: #E6A23C +} + +.el-timeline-item__node--danger { + background-color: #F56C6C +} + +.el-timeline-item__node--info { + background-color: #909399 +} + +.el-timeline-item__dot { + position: absolute; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center +} + +.el-timeline-item__content { + color: #303133 +} + +.el-timeline-item__timestamp { + color: #909399; + line-height: 1; + font-size: 13px +} + +.el-timeline-item__timestamp.is-top { + margin-bottom: 8px; + padding-top: 4px +} + +.el-timeline-item__timestamp.is-bottom { + margin-top: 8px +} + +.el-link { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-orient: horizontal; + -webkit-box-direction: normal; + -ms-flex-direction: row; + flex-direction: row; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + vertical-align: middle; + position: relative; + text-decoration: none; + outline: 0; + padding: 0; + font-weight: 500 +} + +.el-link.is-underline:hover:after { + position: absolute; + left: 0; + right: 0; + height: 0; + bottom: 0; + border-bottom: 1px solid #409EFF +} + +.el-link.el-link--default:after, .el-link.el-link--primary.is-underline:hover:after, .el-link.el-link--primary:after { + border-color: #409EFF +} + +.el-link.is-disabled { + cursor: not-allowed +} + +.el-link [class*=el-icon-] + span { + margin-left: 5px +} + +.el-link.el-link--default { + color: #606266 +} + +.el-link.el-link--default:hover { + color: #409EFF +} + +.el-link.el-link--default.is-disabled { + color: #C0C4CC +} + +.el-link.el-link--primary { + color: #409EFF +} + +.el-link.el-link--primary:hover { + color: #66b1ff +} + +.el-link.el-link--primary.is-disabled { + color: #a0cfff +} + +.el-link.el-link--danger.is-underline:hover:after, .el-link.el-link--danger:after { + border-color: #F56C6C +} + +.el-link.el-link--danger { + color: #F56C6C +} + +.el-link.el-link--danger:hover { + color: #f78989 +} + +.el-link.el-link--danger.is-disabled { + color: #fab6b6 +} + +.el-link.el-link--success.is-underline:hover:after, .el-link.el-link--success:after { + border-color: #67C23A +} + +.el-link.el-link--success { + color: #67C23A +} + +.el-link.el-link--success:hover { + color: #85ce61 +} + +.el-link.el-link--success.is-disabled { + color: #b3e19d +} + +.el-link.el-link--warning.is-underline:hover:after, .el-link.el-link--warning:after { + border-color: #E6A23C +} + +.el-link.el-link--warning { + color: #E6A23C +} + +.el-link.el-link--warning:hover { + color: #ebb563 +} + +.el-link.el-link--warning.is-disabled { + color: #f3d19e +} + +.el-link.el-link--info.is-underline:hover:after, .el-link.el-link--info:after { + border-color: #909399 +} + +.el-link.el-link--info { + color: #909399 +} + +.el-link.el-link--info:hover { + color: #a6a9ad +} + +.el-link.el-link--info.is-disabled { + color: #c8c9cc +} + +.el-divider { + background-color: #DCDFE6; + position: relative +} + +.el-divider--horizontal { + display: block; + height: 1px; + width: 100%; + margin: 24px 0 +} + +.el-divider--vertical { + display: inline-block; + width: 1px; + height: 1em; + margin: 0 8px; + vertical-align: middle; + position: relative +} + +.el-divider__text { + position: absolute; + background-color: #FFF; + padding: 0 20px; + font-weight: 500; + color: #303133 +} + +.el-image__error, .el-image__placeholder { + background: #F5F7FA +} + +.el-divider__text.is-left { + left: 20px; + -webkit-transform: translateY(-50%); + transform: translateY(-50%) +} + +.el-divider__text.is-center { + left: 50%; + -webkit-transform: translateX(-50%) translateY(-50%); + transform: translateX(-50%) translateY(-50%) +} + +.el-divider__text.is-right { + right: 20px; + -webkit-transform: translateY(-50%); + transform: translateY(-50%) +} + +.el-image__error, .el-image__inner, .el-image__placeholder { + width: 100%; + height: 100% +} + +.el-image { + position: relative; + display: inline-block; + overflow: hidden +} + +.el-image__inner { + vertical-align: top +} + +.el-image__inner--center { + position: relative; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + display: block +} + +.el-image__error { + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + color: #C0C4CC; + vertical-align: middle +} + +.el-image-viewer__wrapper { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0 +} + +.el-image-viewer__btn { + position: absolute; + z-index: 1; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + border-radius: 50%; + opacity: .8; + -webkit-box-sizing: border-box; + box-sizing: border-box; + -webkit-user-select: none; + user-select: none +} + +.el-button, .el-checkbox, .el-checkbox-button__inner, .el-empty__image img, .el-radio { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none +} + +.el-image-viewer__close { + top: 40px; + right: 40px; + width: 40px; + height: 40px; + font-size: 24px; + color: #fff; + background-color: #606266 +} + +.el-image-viewer__canvas { + width: 100%; + height: 100%; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center +} + +.el-image-viewer__actions { + left: 50%; + bottom: 30px; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + width: 282px; + height: 44px; + padding: 0 23px; + background-color: #606266; + border-color: #fff; + border-radius: 22px +} + +.el-image-viewer__actions__inner { + width: 100%; + height: 100%; + text-align: justify; + cursor: default; + font-size: 23px; + color: #fff; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-pack: distribute; + justify-content: space-around +} + +.el-image-viewer__next, .el-image-viewer__prev { + width: 44px; + height: 44px; + font-size: 24px; + color: #fff; + background-color: #606266; + border-color: #fff; + top: 50% +} + +.el-image-viewer__prev { + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + left: 40px +} + +.el-image-viewer__next { + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + right: 40px; + text-indent: 2px +} + +.el-image-viewer__mask { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + opacity: .5; + background: #000 +} + +.viewer-fade-enter-active { + -webkit-animation: viewer-fade-in .3s; + animation: viewer-fade-in .3s +} + +.viewer-fade-leave-active { + -webkit-animation: viewer-fade-out .3s; + animation: viewer-fade-out .3s +} + +@-webkit-keyframes viewer-fade-in { + 0% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0 + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1 + } +} + +@keyframes viewer-fade-in { + 0% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0 + } + 100% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1 + } +} + +@-webkit-keyframes viewer-fade-out { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1 + } + 100% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0 + } +} + +@keyframes viewer-fade-out { + 0% { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1 + } + 100% { + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + opacity: 0 + } +} + +.el-button { + display: inline-block; + line-height: 1; + white-space: nowrap; + cursor: pointer; + background: #FFF; + border: 1px solid #DCDFE6; + color: #606266; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + -webkit-transition: .1s; + transition: .1s; + font-weight: 500; + padding: 12px 20px; + font-size: 14px; + border-radius: 4px +} + +.el-button + .el-button, .el-checkbox.is-bordered + .el-checkbox.is-bordered { + margin-left: 10px +} + +.el-button:focus, .el-button:hover { + color: #409EFF; + border-color: #c6e2ff; + background-color: #ecf5ff +} + +.el-button:active { + color: #3a8ee6; + border-color: #3a8ee6; + outline: 0 +} + +.el-button::-moz-focus-inner { + border: 0 +} + +.el-button [class*=el-icon-] + span { + margin-left: 5px +} + +.el-button.is-plain:focus, .el-button.is-plain:hover { + background: #FFF; + border-color: #409EFF; + color: #409EFF +} + +.el-button.is-active, .el-button.is-plain:active { + color: #3a8ee6; + border-color: #3a8ee6 +} + +.el-button.is-plain:active { + background: #FFF; + outline: 0 +} + +.el-button.is-disabled, .el-button.is-disabled:focus, .el-button.is-disabled:hover { + color: #C0C4CC; + cursor: not-allowed; + background-image: none; + background-color: #FFF; + border-color: #EBEEF5 +} + +.el-button.is-disabled.el-button--text { + background-color: transparent +} + +.el-button.is-disabled.is-plain, .el-button.is-disabled.is-plain:focus, .el-button.is-disabled.is-plain:hover { + background-color: #FFF; + border-color: #EBEEF5; + color: #C0C4CC +} + +.el-button.is-loading { + position: relative; + pointer-events: none +} + +.el-button.is-loading:before { + pointer-events: none; + content: ''; + position: absolute; + left: -1px; + top: -1px; + right: -1px; + bottom: -1px; + border-radius: inherit; + background-color: rgba(255, 255, 255, .35) +} + +.el-button.is-round { + border-radius: 20px; + padding: 12px 23px +} + +.el-button.is-circle { + border-radius: 50%; + padding: 12px +} + +.el-button--primary { + color: #FFF; + background-color: #409EFF; + border-color: #409EFF +} + +.el-button--primary:focus, .el-button--primary:hover { + background: #66b1ff; + border-color: #66b1ff; + color: #FFF +} + +.el-button--primary.is-active, .el-button--primary:active { + background: #3a8ee6; + border-color: #3a8ee6; + color: #FFF +} + +.el-button--primary:active { + outline: 0 +} + +.el-button--primary.is-disabled, .el-button--primary.is-disabled:active, .el-button--primary.is-disabled:focus, .el-button--primary.is-disabled:hover { + color: #FFF; + background-color: #a0cfff; + border-color: #a0cfff +} + +.el-button--primary.is-plain { + color: #409EFF; + background: #ecf5ff; + border-color: #b3d8ff +} + +.el-button--primary.is-plain:focus, .el-button--primary.is-plain:hover { + background: #409EFF; + border-color: #409EFF; + color: #FFF +} + +.el-button--primary.is-plain:active { + background: #3a8ee6; + border-color: #3a8ee6; + color: #FFF; + outline: 0 +} + +.el-button--primary.is-plain.is-disabled, .el-button--primary.is-plain.is-disabled:active, .el-button--primary.is-plain.is-disabled:focus, .el-button--primary.is-plain.is-disabled:hover { + color: #8cc5ff; + background-color: #ecf5ff; + border-color: #d9ecff +} + +.el-button--success { + color: #FFF; + background-color: #67C23A; + border-color: #67C23A +} + +.el-button--success:focus, .el-button--success:hover { + background: #85ce61; + border-color: #85ce61; + color: #FFF +} + +.el-button--success.is-active, .el-button--success:active { + background: #5daf34; + border-color: #5daf34; + color: #FFF +} + +.el-button--success:active { + outline: 0 +} + +.el-button--success.is-disabled, .el-button--success.is-disabled:active, .el-button--success.is-disabled:focus, .el-button--success.is-disabled:hover { + color: #FFF; + background-color: #b3e19d; + border-color: #b3e19d +} + +.el-button--success.is-plain { + color: #67C23A; + background: #f0f9eb; + border-color: #c2e7b0 +} + +.el-button--success.is-plain:focus, .el-button--success.is-plain:hover { + background: #67C23A; + border-color: #67C23A; + color: #FFF +} + +.el-button--success.is-plain:active { + background: #5daf34; + border-color: #5daf34; + color: #FFF; + outline: 0 +} + +.el-button--success.is-plain.is-disabled, .el-button--success.is-plain.is-disabled:active, .el-button--success.is-plain.is-disabled:focus, .el-button--success.is-plain.is-disabled:hover { + color: #a4da89; + background-color: #f0f9eb; + border-color: #e1f3d8 +} + +.el-button--warning { + color: #FFF; + background-color: #E6A23C; + border-color: #E6A23C +} + +.el-button--warning:focus, .el-button--warning:hover { + background: #ebb563; + border-color: #ebb563; + color: #FFF +} + +.el-button--warning.is-active, .el-button--warning:active { + background: #cf9236; + border-color: #cf9236; + color: #FFF +} + +.el-button--warning:active { + outline: 0 +} + +.el-button--warning.is-disabled, .el-button--warning.is-disabled:active, .el-button--warning.is-disabled:focus, .el-button--warning.is-disabled:hover { + color: #FFF; + background-color: #f3d19e; + border-color: #f3d19e +} + +.el-button--warning.is-plain { + color: #E6A23C; + background: #fdf6ec; + border-color: #f5dab1 +} + +.el-button--warning.is-plain:focus, .el-button--warning.is-plain:hover { + background: #E6A23C; + border-color: #E6A23C; + color: #FFF +} + +.el-button--warning.is-plain:active { + background: #cf9236; + border-color: #cf9236; + color: #FFF; + outline: 0 +} + +.el-button--warning.is-plain.is-disabled, .el-button--warning.is-plain.is-disabled:active, .el-button--warning.is-plain.is-disabled:focus, .el-button--warning.is-plain.is-disabled:hover { + color: #f0c78a; + background-color: #fdf6ec; + border-color: #faecd8 +} + +.el-button--danger { + color: #FFF; + background-color: #F56C6C; + border-color: #F56C6C +} + +.el-button--danger:focus, .el-button--danger:hover { + background: #f78989; + border-color: #f78989; + color: #FFF +} + +.el-button--danger.is-active, .el-button--danger:active { + background: #dd6161; + border-color: #dd6161; + color: #FFF +} + +.el-button--danger:active { + outline: 0 +} + +.el-button--danger.is-disabled, .el-button--danger.is-disabled:active, .el-button--danger.is-disabled:focus, .el-button--danger.is-disabled:hover { + color: #FFF; + background-color: #fab6b6; + border-color: #fab6b6 +} + +.el-button--danger.is-plain { + color: #F56C6C; + background: #fef0f0; + border-color: #fbc4c4 +} + +.el-button--danger.is-plain:focus, .el-button--danger.is-plain:hover { + background: #F56C6C; + border-color: #F56C6C; + color: #FFF +} + +.el-button--danger.is-plain:active { + background: #dd6161; + border-color: #dd6161; + color: #FFF; + outline: 0 +} + +.el-button--danger.is-plain.is-disabled, .el-button--danger.is-plain.is-disabled:active, .el-button--danger.is-plain.is-disabled:focus, .el-button--danger.is-plain.is-disabled:hover { + color: #f9a7a7; + background-color: #fef0f0; + border-color: #fde2e2 +} + +.el-button--info { + color: #FFF; + background-color: #909399; + border-color: #909399 +} + +.el-button--info:focus, .el-button--info:hover { + background: #a6a9ad; + border-color: #a6a9ad; + color: #FFF +} + +.el-button--info.is-active, .el-button--info:active { + background: #82848a; + border-color: #82848a; + color: #FFF +} + +.el-button--info:active { + outline: 0 +} + +.el-button--info.is-disabled, .el-button--info.is-disabled:active, .el-button--info.is-disabled:focus, .el-button--info.is-disabled:hover { + color: #FFF; + background-color: #c8c9cc; + border-color: #c8c9cc +} + +.el-button--info.is-plain { + color: #909399; + background: #f4f4f5; + border-color: #d3d4d6 +} + +.el-button--info.is-plain:focus, .el-button--info.is-plain:hover { + background: #909399; + border-color: #909399; + color: #FFF +} + +.el-button--info.is-plain:active { + background: #82848a; + border-color: #82848a; + color: #FFF; + outline: 0 +} + +.el-button--info.is-plain.is-disabled, .el-button--info.is-plain.is-disabled:active, .el-button--info.is-plain.is-disabled:focus, .el-button--info.is-plain.is-disabled:hover { + color: #bcbec2; + background-color: #f4f4f5; + border-color: #e9e9eb +} + +.el-button--medium { + padding: 10px 20px; + font-size: 14px; + border-radius: 4px +} + +.el-button--medium.is-round { + padding: 10px 20px +} + +.el-button--medium.is-circle { + padding: 10px +} + +.el-button--small { + padding: 9px 15px; + font-size: 12px; + border-radius: 3px +} + +.el-button--small.is-round { + padding: 9px 15px +} + +.el-button--small.is-circle { + padding: 9px +} + +.el-button--mini, .el-button--mini.is-round { + padding: 7px 15px +} + +.el-button--mini { + font-size: 12px; + border-radius: 3px +} + +.el-button--mini.is-circle { + padding: 7px +} + +.el-button--text { + border-color: transparent; + color: #409EFF; + background: 0 0; + padding-left: 0; + padding-right: 0 +} + +.el-button--text:focus, .el-button--text:hover { + color: #66b1ff; + border-color: transparent; + background-color: transparent +} + +.el-button--text:active { + color: #3a8ee6; + border-color: transparent; + background-color: transparent +} + +.el-button--text.is-disabled, .el-button--text.is-disabled:focus, .el-button--text.is-disabled:hover { + border-color: transparent +} + +.el-button-group .el-button--danger:last-child, .el-button-group .el-button--danger:not(:first-child):not(:last-child), .el-button-group .el-button--info:last-child, .el-button-group .el-button--info:not(:first-child):not(:last-child), .el-button-group .el-button--primary:last-child, .el-button-group .el-button--primary:not(:first-child):not(:last-child), .el-button-group .el-button--success:last-child, .el-button-group .el-button--success:not(:first-child):not(:last-child), .el-button-group .el-button--warning:last-child, .el-button-group .el-button--warning:not(:first-child):not(:last-child), .el-button-group > .el-dropdown > .el-button { + border-left-color: rgba(255, 255, 255, .5) +} + +.el-button-group .el-button--danger:first-child, .el-button-group .el-button--danger:not(:first-child):not(:last-child), .el-button-group .el-button--info:first-child, .el-button-group .el-button--info:not(:first-child):not(:last-child), .el-button-group .el-button--primary:first-child, .el-button-group .el-button--primary:not(:first-child):not(:last-child), .el-button-group .el-button--success:first-child, .el-button-group .el-button--success:not(:first-child):not(:last-child), .el-button-group .el-button--warning:first-child, .el-button-group .el-button--warning:not(:first-child):not(:last-child) { + border-right-color: rgba(255, 255, 255, .5) +} + +.el-button-group { + display: inline-block; + vertical-align: middle +} + +.el-button-group::after, .el-button-group::before { + display: table +} + +.el-button-group::after { + clear: both +} + +.el-button-group > .el-button { + float: left; + position: relative +} + +.el-button-group > .el-button.is-disabled { + z-index: 1 +} + +.el-button-group > .el-button:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0 +} + +.el-button-group > .el-button:last-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.el-button-group > .el-button:first-child:last-child { + border-radius: 4px +} + +.el-button-group > .el-button:first-child:last-child.is-round { + border-radius: 20px +} + +.el-button-group > .el-button:first-child:last-child.is-circle { + border-radius: 50% +} + +.el-button-group > .el-button:not(:first-child):not(:last-child) { + border-radius: 0 +} + +.el-button-group > .el-button.is-active, .el-button-group > .el-button:not(.is-disabled):active, .el-button-group > .el-button:not(.is-disabled):focus, .el-button-group > .el-button:not(.is-disabled):hover { + z-index: 1 +} + +.el-button-group > .el-dropdown > .el-button { + border-top-left-radius: 0; + border-bottom-left-radius: 0 +} + +.el-calendar { + background-color: #fff +} + +.el-calendar__header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + padding: 12px 20px; + border-bottom: 1px solid #EBEEF5 +} + +.el-backtop, .el-page-header { + display: -webkit-box; + display: -ms-flexbox +} + +.el-calendar__title { + color: #000; + -ms-flex-item-align: center; + align-self: center +} + +.el-calendar__body { + padding: 12px 20px 35px +} + +.el-calendar-table { + table-layout: fixed; + width: 100% +} + +.el-calendar-table thead th { + padding: 12px 0; + color: #606266; + font-weight: 400 +} + +.el-calendar-table:not(.is-range) td.next, .el-calendar-table:not(.is-range) td.prev { + color: #C0C4CC +} + +.el-backtop, .el-calendar-table td.is-today { + color: #409EFF +} + +.el-calendar-table td { + border-bottom: 1px solid #EBEEF5; + border-right: 1px solid #EBEEF5; + vertical-align: top; + -webkit-transition: background-color .2s ease; + transition: background-color .2s ease +} + +.el-calendar-table td.is-selected { + background-color: #F2F8FE +} + +.el-calendar-table tr:first-child td { + border-top: 1px solid #EBEEF5 +} + +.el-calendar-table tr td:first-child { + border-left: 1px solid #EBEEF5 +} + +.el-calendar-table tr.el-calendar-table__row--hide-border td { + border-top: none +} + +.el-calendar-table .el-calendar-day { + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 8px; + height: 85px +} + +.el-calendar-table .el-calendar-day:hover { + cursor: pointer; + background-color: #F2F8FE +} + +.el-backtop { + position: fixed; + background-color: #FFF; + width: 40px; + height: 40px; + border-radius: 50%; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + font-size: 20px; + -webkit-box-shadow: 0 0 6px rgba(0, 0, 0, .12); + box-shadow: 0 0 6px rgba(0, 0, 0, .12); + cursor: pointer; + z-index: 5 +} + +.el-backtop:hover { + background-color: #F2F6FC +} + +.el-page-header { + display: flex; + line-height: 24px +} + +.el-page-header__left { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + cursor: pointer; + margin-right: 40px; + position: relative +} + +.el-page-header__left::after { + position: absolute; + width: 1px; + height: 16px; + right: -20px; + top: 50%; + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + background-color: #DCDFE6 +} + +.el-checkbox, .el-checkbox__input { + display: inline-block; + position: relative; + white-space: nowrap +} + +.el-page-header__left .el-icon-back { + font-size: 18px; + margin-right: 6px; + -ms-flex-item-align: center; + align-self: center +} + +.el-page-header__title { + font-size: 14px; + font-weight: 500 +} + +.el-page-header__content { + font-size: 18px; + color: #303133 +} + +.el-checkbox { + color: #606266; + font-weight: 500; + font-size: 14px; + cursor: pointer; + user-select: none; + margin-right: 30px +} + +.el-checkbox.is-bordered { + padding: 9px 20px 9px 10px; + border-radius: 4px; + border: 1px solid #DCDFE6; + -webkit-box-sizing: border-box; + box-sizing: border-box; + line-height: normal; + height: 40px +} + +.el-checkbox.is-bordered.is-checked { + border-color: #409EFF +} + +.el-checkbox.is-bordered.is-disabled { + border-color: #EBEEF5; + cursor: not-allowed +} + +.el-checkbox.is-bordered.el-checkbox--medium { + padding: 7px 20px 7px 10px; + border-radius: 4px; + height: 36px +} + +.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__label { + line-height: 17px; + font-size: 14px +} + +.el-checkbox.is-bordered.el-checkbox--medium .el-checkbox__inner { + height: 14px; + width: 14px +} + +.el-checkbox.is-bordered.el-checkbox--small { + padding: 5px 15px 5px 10px; + border-radius: 3px; + height: 32px +} + +.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label { + line-height: 15px; + font-size: 12px +} + +.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner { + height: 12px; + width: 12px +} + +.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner::after { + height: 6px; + width: 2px +} + +.el-checkbox.is-bordered.el-checkbox--mini { + padding: 3px 15px 3px 10px; + border-radius: 3px; + height: 28px +} + +.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__label { + line-height: 12px; + font-size: 12px +} + +.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner { + height: 12px; + width: 12px +} + +.el-checkbox.is-bordered.el-checkbox--mini .el-checkbox__inner::after { + height: 6px; + width: 2px +} + +.el-checkbox__input { + cursor: pointer; + outline: 0; + line-height: 1; + vertical-align: middle +} + +.el-checkbox__input.is-disabled .el-checkbox__inner { + background-color: #edf2fc; + border-color: #DCDFE6; + cursor: not-allowed +} + +.el-checkbox__input.is-disabled .el-checkbox__inner::after { + cursor: not-allowed; + border-color: #C0C4CC +} + +.el-checkbox__input.is-disabled .el-checkbox__inner + .el-checkbox__label { + cursor: not-allowed +} + +.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner { + background-color: #F2F6FC; + border-color: #DCDFE6 +} + +.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner::after { + border-color: #C0C4CC +} + +.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner { + background-color: #F2F6FC; + border-color: #DCDFE6 +} + +.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner::before { + background-color: #C0C4CC; + border-color: #C0C4CC +} + +.el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-indeterminate .el-checkbox__inner { + background-color: #409EFF; + border-color: #409EFF +} + +.el-checkbox__input.is-disabled + span.el-checkbox__label { + color: #C0C4CC; + cursor: not-allowed +} + +.el-checkbox__input.is-checked .el-checkbox__inner::after { + -webkit-transform: rotate(45deg) scaleY(1); + transform: rotate(45deg) scaleY(1) +} + +.el-checkbox__input.is-checked + .el-checkbox__label { + color: #409EFF +} + +.el-checkbox__input.is-focus .el-checkbox__inner { + border-color: #409EFF +} + +.el-checkbox__input.is-indeterminate .el-checkbox__inner::before { + content: ''; + position: absolute; + display: block; + background-color: #FFF; + height: 2px; + -webkit-transform: scale(.5); + transform: scale(.5); + left: 0; + right: 0; + top: 5px +} + +.el-checkbox__input.is-indeterminate .el-checkbox__inner::after { + display: none +} + +.el-checkbox__inner { + display: inline-block; + position: relative; + border: 1px solid #DCDFE6; + border-radius: 2px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + width: 14px; + height: 14px; + background-color: #FFF; + z-index: 1; + -webkit-transition: border-color .25s cubic-bezier(.71, -.46, .29, 1.46), background-color .25s cubic-bezier(.71, -.46, .29, 1.46); + transition: border-color .25s cubic-bezier(.71, -.46, .29, 1.46), background-color .25s cubic-bezier(.71, -.46, .29, 1.46) +} + +.el-checkbox__inner:hover { + border-color: #409EFF +} + +.el-checkbox__inner::after { + -webkit-box-sizing: content-box; + box-sizing: content-box; + content: ""; + border: 1px solid #FFF; + border-left: 0; + border-top: 0; + height: 7px; + left: 4px; + position: absolute; + top: 1px; + -webkit-transform: rotate(45deg) scaleY(0); + transform: rotate(45deg) scaleY(0); + width: 3px; + -webkit-transition: -webkit-transform .15s ease-in .05s; + transition: -webkit-transform .15s ease-in .05s; + transition: transform .15s ease-in .05s; + transition: transform .15s ease-in .05s, -webkit-transform .15s ease-in .05s; + -webkit-transform-origin: center; + transform-origin: center +} + +.el-checkbox__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + width: 0; + height: 0; + z-index: -1 +} + +.el-checkbox-button, .el-checkbox-button__inner { + display: inline-block; + position: relative +} + +.el-checkbox__label { + display: inline-block; + padding-left: 10px; + line-height: 19px; + font-size: 14px +} + +.el-checkbox:last-of-type { + margin-right: 0 +} + +.el-checkbox-button__inner { + line-height: 1; + font-weight: 500; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + background: #FFF; + border: 1px solid #DCDFE6; + border-left: 0; + color: #606266; + -webkit-appearance: none; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + outline: 0; + margin: 0; + -webkit-transition: all .3s cubic-bezier(.645, .045, .355, 1); + transition: all .3s cubic-bezier(.645, .045, .355, 1); + padding: 12px 20px; + font-size: 14px; + border-radius: 0 +} + +.el-checkbox-button__inner.is-round { + padding: 12px 20px +} + +.el-checkbox-button__inner:hover { + color: #409EFF +} + +.el-checkbox-button__inner [class*=el-icon-] { + line-height: .9 +} + +.el-checkbox-button__inner [class*=el-icon-] + span { + margin-left: 5px +} + +.el-checkbox-button__original { + opacity: 0; + outline: 0; + position: absolute; + margin: 0; + z-index: -1 +} + +.el-radio, .el-radio__inner, .el-radio__input { + position: relative; + display: inline-block +} + +.el-checkbox-button.is-checked .el-checkbox-button__inner { + color: #FFF; + background-color: #409EFF; + border-color: #409EFF; + -webkit-box-shadow: -1px 0 0 0 #8cc5ff; + box-shadow: -1px 0 0 0 #8cc5ff +} + +.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner { + border-left-color: #409EFF +} + +.el-checkbox-button.is-disabled .el-checkbox-button__inner { + color: #C0C4CC; + cursor: not-allowed; + background-image: none; + background-color: #FFF; + border-color: #EBEEF5; + -webkit-box-shadow: none; + box-shadow: none +} + +.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner { + border-left-color: #EBEEF5 +} + +.el-checkbox-button:first-child .el-checkbox-button__inner { + border-left: 1px solid #DCDFE6; + border-radius: 4px 0 0 4px; + -webkit-box-shadow: none !important; + box-shadow: none !important +} + +.el-checkbox-button.is-focus .el-checkbox-button__inner { + border-color: #409EFF +} + +.el-checkbox-button:last-child .el-checkbox-button__inner { + border-radius: 0 4px 4px 0 +} + +.el-checkbox-button--medium .el-checkbox-button__inner { + padding: 10px 20px; + font-size: 14px; + border-radius: 0 +} + +.el-checkbox-button--medium .el-checkbox-button__inner.is-round { + padding: 10px 20px +} + +.el-checkbox-button--small .el-checkbox-button__inner { + padding: 9px 15px; + font-size: 12px; + border-radius: 0 +} + +.el-checkbox-button--small .el-checkbox-button__inner.is-round { + padding: 9px 15px +} + +.el-checkbox-button--mini .el-checkbox-button__inner { + padding: 7px 15px; + font-size: 12px; + border-radius: 0 +} + +.el-checkbox-button--mini .el-checkbox-button__inner.is-round { + padding: 7px 15px +} + +.el-checkbox-group { + font-size: 0 +} + +.el-avatar, .el-cascader-panel, .el-radio, .el-radio--medium.is-bordered .el-radio__label, .el-radio__label { + font-size: 14px +} + +.el-radio { + color: #606266; + font-weight: 500; + line-height: 1; + cursor: pointer; + white-space: nowrap; + outline: 0; + margin-right: 30px +} + +.el-cascader-node > .el-radio, .el-radio:last-child { + margin-right: 0 +} + +.el-radio.is-bordered { + padding: 12px 20px 0 10px; + border-radius: 4px; + border: 1px solid #DCDFE6; + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 40px +} + +.el-cascader-menu, .el-cascader-menu__list, .el-radio__inner { + -webkit-box-sizing: border-box +} + +.el-radio.is-bordered.is-checked { + border-color: #409EFF +} + +.el-radio.is-bordered.is-disabled { + cursor: not-allowed; + border-color: #EBEEF5 +} + +.el-radio__input.is-disabled .el-radio__inner, .el-radio__input.is-disabled.is-checked .el-radio__inner { + background-color: #F5F7FA; + border-color: #E4E7ED +} + +.el-radio.is-bordered + .el-radio.is-bordered { + margin-left: 10px +} + +.el-radio--medium.is-bordered { + padding: 10px 20px 0 10px; + border-radius: 4px; + height: 36px +} + +.el-radio--mini.is-bordered .el-radio__label, .el-radio--small.is-bordered .el-radio__label { + font-size: 12px +} + +.el-radio--medium.is-bordered .el-radio__inner { + height: 14px; + width: 14px +} + +.el-radio--small.is-bordered { + padding: 8px 15px 0 10px; + border-radius: 3px; + height: 32px +} + +.el-radio--small.is-bordered .el-radio__inner { + height: 12px; + width: 12px +} + +.el-radio--mini.is-bordered { + padding: 6px 15px 0 10px; + border-radius: 3px; + height: 28px +} + +.el-radio--mini.is-bordered .el-radio__inner { + height: 12px; + width: 12px +} + +.el-radio__input { + white-space: nowrap; + cursor: pointer; + outline: 0; + line-height: 1; + vertical-align: middle +} + +.el-radio__input.is-disabled .el-radio__inner { + cursor: not-allowed +} + +.el-radio__input.is-disabled .el-radio__inner::after { + cursor: not-allowed; + background-color: #F5F7FA +} + +.el-radio__input.is-disabled .el-radio__inner + .el-radio__label { + cursor: not-allowed +} + +.el-radio__input.is-disabled.is-checked .el-radio__inner::after { + background-color: #C0C4CC +} + +.el-radio__input.is-disabled + span.el-radio__label { + color: #C0C4CC; + cursor: not-allowed +} + +.el-radio__input.is-checked .el-radio__inner { + border-color: #409EFF; + background: #409EFF +} + +.el-radio__input.is-checked .el-radio__inner::after { + -webkit-transform: translate(-50%, -50%) scale(1); + transform: translate(-50%, -50%) scale(1) +} + +.el-radio__input.is-checked + .el-radio__label { + color: #409EFF +} + +.el-radio__input.is-focus .el-radio__inner { + border-color: #409EFF +} + +.el-radio__inner { + border: 1px solid #DCDFE6; + border-radius: 100%; + width: 14px; + height: 14px; + background-color: #FFF; + cursor: pointer; + box-sizing: border-box +} + +.el-radio__inner:hover { + border-color: #409EFF +} + +.el-radio__inner::after { + width: 4px; + height: 4px; + border-radius: 100%; + background-color: #FFF; + content: ""; + position: absolute; + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%) scale(0); + transform: translate(-50%, -50%) scale(0); + -webkit-transition: -webkit-transform .15s ease-in; + transition: -webkit-transform .15s ease-in; + transition: transform .15s ease-in; + transition: transform .15s ease-in, -webkit-transform .15s ease-in +} + +.el-radio__original { + opacity: 0; + outline: 0; + position: absolute; + z-index: -1; + top: 0; + left: 0; + right: 0; + bottom: 0; + margin: 0 +} + +.el-radio:focus:not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner { + -webkit-box-shadow: 0 0 2px 2px #409EFF; + box-shadow: 0 0 2px 2px #409EFF +} + +.el-radio__label { + padding-left: 10px +} + +.el-scrollbar { + overflow: hidden; + position: relative +} + +.el-scrollbar:active > .el-scrollbar__bar, .el-scrollbar:focus > .el-scrollbar__bar, .el-scrollbar:hover > .el-scrollbar__bar { + opacity: 1; + -webkit-transition: opacity 340ms ease-out; + transition: opacity 340ms ease-out +} + +.el-scrollbar__wrap { + overflow: scroll; + height: 100% +} + +.el-scrollbar__wrap--hidden-default { + scrollbar-width: none +} + +.el-scrollbar__wrap--hidden-default::-webkit-scrollbar { + width: 0; + height: 0 +} + +.el-scrollbar__thumb { + position: relative; + display: block; + width: 0; + height: 0; + cursor: pointer; + border-radius: inherit; + background-color: rgba(144, 147, 153, .3); + -webkit-transition: .3s background-color; + transition: .3s background-color +} + +.el-scrollbar__thumb:hover { + background-color: rgba(144, 147, 153, .5) +} + +.el-scrollbar__bar { + position: absolute; + right: 2px; + bottom: 2px; + z-index: 1; + border-radius: 4px; + opacity: 0; + -webkit-transition: opacity 120ms ease-out; + transition: opacity 120ms ease-out +} + +.el-scrollbar__bar.is-vertical { + width: 6px; + top: 2px +} + +.el-scrollbar__bar.is-vertical > div { + width: 100% +} + +.el-scrollbar__bar.is-horizontal { + height: 6px; + left: 2px +} + +.el-scrollbar__bar.is-horizontal > div { + height: 100% +} + +.el-cascader-panel { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + border-radius: 4px +} + +.el-cascader-panel.is-bordered { + border: 1px solid #E4E7ED; + border-radius: 4px +} + +.el-cascader-menu { + min-width: 180px; + box-sizing: border-box; + color: #606266; + border-right: solid 1px #E4E7ED +} + +.el-cascader-menu:last-child { + border-right: none +} + +.el-cascader-menu__wrap { + height: 204px +} + +.el-cascader-menu__list { + position: relative; + min-height: 100%; + margin: 0; + padding: 6px 0; + list-style: none; + box-sizing: border-box +} + +.el-cascader-menu__hover-zone { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + pointer-events: none +} + +.el-cascader-menu__empty-text { + position: absolute; + top: 50%; + left: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + text-align: center; + color: #C0C4CC +} + +.el-cascader-node { + position: relative; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + padding: 0 30px 0 20px; + height: 34px; + line-height: 34px; + outline: 0 +} + +.el-cascader-node.is-selectable.in-active-path { + color: #606266 +} + +.el-cascader-node.in-active-path, .el-cascader-node.is-active, .el-cascader-node.is-selectable.in-checked-path { + color: #409EFF; + font-weight: 700 +} + +.el-cascader-node:not(.is-disabled) { + cursor: pointer +} + +.el-cascader-node:not(.is-disabled):focus, .el-cascader-node:not(.is-disabled):hover { + background: #F5F7FA +} + +.el-cascader-node.is-disabled { + color: #C0C4CC; + cursor: not-allowed +} + +.el-cascader-node__prefix { + position: absolute; + left: 10px +} + +.el-cascader-node__postfix { + position: absolute; + right: 10px +} + +.el-cascader-node__label { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + padding: 0 10px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis +} + +.el-cascader-node > .el-radio .el-radio__label { + padding-left: 0 +} + +.el-avatar { + display: inline-block; + -webkit-box-sizing: border-box; + box-sizing: border-box; + text-align: center; + overflow: hidden; + color: #fff; + background: #C0C4CC; + width: 40px; + height: 40px; + line-height: 40px +} + +.el-drawer, .el-drawer__body > * { + -webkit-box-sizing: border-box +} + +.el-avatar > img { + display: block; + height: 100%; + vertical-align: middle +} + +.el-empty__image img, .el-empty__image svg { + vertical-align: top; + height: 100%; + width: 100% +} + +.el-avatar--circle { + border-radius: 50% +} + +.el-avatar--square { + border-radius: 4px +} + +.el-avatar--icon { + font-size: 18px +} + +.el-avatar--large { + width: 40px; + height: 40px; + line-height: 40px +} + +.el-avatar--medium { + width: 36px; + height: 36px; + line-height: 36px +} + +.el-avatar--small { + width: 28px; + height: 28px; + line-height: 28px +} + +@-webkit-keyframes el-drawer-fade-in { + 0% { + opacity: 0 + } + 100% { + opacity: 1 + } +} + +@keyframes el-drawer-fade-in { + 0% { + opacity: 0 + } + 100% { + opacity: 1 + } +} + +@-webkit-keyframes rtl-drawer-in { + 0% { + -webkit-transform: translate(100%, 0); + transform: translate(100%, 0) + } + 100% { + -webkit-transform: translate(0, 0); + transform: translate(0, 0) + } +} + +@keyframes rtl-drawer-in { + 0% { + -webkit-transform: translate(100%, 0); + transform: translate(100%, 0) + } + 100% { + -webkit-transform: translate(0, 0); + transform: translate(0, 0) + } +} + +@-webkit-keyframes rtl-drawer-out { + 0% { + -webkit-transform: translate(0, 0); + transform: translate(0, 0) + } + 100% { + -webkit-transform: translate(100%, 0); + transform: translate(100%, 0) + } +} + +@keyframes rtl-drawer-out { + 0% { + -webkit-transform: translate(0, 0); + transform: translate(0, 0) + } + 100% { + -webkit-transform: translate(100%, 0); + transform: translate(100%, 0) + } +} + +@-webkit-keyframes ltr-drawer-in { + 0% { + -webkit-transform: translate(-100%, 0); + transform: translate(-100%, 0) + } + 100% { + -webkit-transform: translate(0, 0); + transform: translate(0, 0) + } +} + +@keyframes ltr-drawer-in { + 0% { + -webkit-transform: translate(-100%, 0); + transform: translate(-100%, 0) + } + 100% { + -webkit-transform: translate(0, 0); + transform: translate(0, 0) + } +} + +@-webkit-keyframes ltr-drawer-out { + 0% { + -webkit-transform: translate(0, 0); + transform: translate(0, 0) + } + 100% { + -webkit-transform: translate(-100%, 0); + transform: translate(-100%, 0) + } +} + +@keyframes ltr-drawer-out { + 0% { + -webkit-transform: translate(0, 0); + transform: translate(0, 0) + } + 100% { + -webkit-transform: translate(-100%, 0); + transform: translate(-100%, 0) + } +} + +@-webkit-keyframes ttb-drawer-in { + 0% { + -webkit-transform: translate(0, -100%); + transform: translate(0, -100%) + } + 100% { + -webkit-transform: translate(0, 0); + transform: translate(0, 0) + } +} + +@keyframes ttb-drawer-in { + 0% { + -webkit-transform: translate(0, -100%); + transform: translate(0, -100%) + } + 100% { + -webkit-transform: translate(0, 0); + transform: translate(0, 0) + } +} + +@-webkit-keyframes ttb-drawer-out { + 0% { + -webkit-transform: translate(0, 0); + transform: translate(0, 0) + } + 100% { + -webkit-transform: translate(0, -100%); + transform: translate(0, -100%) + } +} + +@keyframes ttb-drawer-out { + 0% { + -webkit-transform: translate(0, 0); + transform: translate(0, 0) + } + 100% { + -webkit-transform: translate(0, -100%); + transform: translate(0, -100%) + } +} + +@-webkit-keyframes btt-drawer-in { + 0% { + -webkit-transform: translate(0, 100%); + transform: translate(0, 100%) + } + 100% { + -webkit-transform: translate(0, 0); + transform: translate(0, 0) + } +} + +@keyframes btt-drawer-in { + 0% { + -webkit-transform: translate(0, 100%); + transform: translate(0, 100%) + } + 100% { + -webkit-transform: translate(0, 0); + transform: translate(0, 0) + } +} + +@-webkit-keyframes btt-drawer-out { + 0% { + -webkit-transform: translate(0, 0); + transform: translate(0, 0) + } + 100% { + -webkit-transform: translate(0, 100%); + transform: translate(0, 100%) + } +} + +@keyframes btt-drawer-out { + 0% { + -webkit-transform: translate(0, 0); + transform: translate(0, 0) + } + 100% { + -webkit-transform: translate(0, 100%); + transform: translate(0, 100%) + } +} + +.el-drawer { + position: absolute; + box-sizing: border-box; + background-color: #FFF; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -ms-flex-direction: column; + flex-direction: column; + -webkit-box-shadow: 0 8px 10px -5px rgba(0, 0, 0, .2), 0 16px 24px 2px rgba(0, 0, 0, .14), 0 6px 30px 5px rgba(0, 0, 0, .12); + box-shadow: 0 8px 10px -5px rgba(0, 0, 0, .2), 0 16px 24px 2px rgba(0, 0, 0, .14), 0 6px 30px 5px rgba(0, 0, 0, .12); + overflow: hidden; + outline: 0 +} + +.el-drawer.rtl { + -webkit-animation: rtl-drawer-out .3s; + animation: rtl-drawer-out .3s; + right: 0 +} + +.el-drawer__open .el-drawer.rtl { + -webkit-animation: rtl-drawer-in .3s 1ms; + animation: rtl-drawer-in .3s 1ms +} + +.el-drawer.ltr { + -webkit-animation: ltr-drawer-out .3s; + animation: ltr-drawer-out .3s; + left: 0 +} + +.el-drawer__open .el-drawer.ltr { + -webkit-animation: ltr-drawer-in .3s 1ms; + animation: ltr-drawer-in .3s 1ms +} + +.el-drawer.ttb { + -webkit-animation: ttb-drawer-out .3s; + animation: ttb-drawer-out .3s; + top: 0 +} + +.el-drawer__open .el-drawer.ttb { + -webkit-animation: ttb-drawer-in .3s 1ms; + animation: ttb-drawer-in .3s 1ms +} + +.el-drawer.btt { + -webkit-animation: btt-drawer-out .3s; + animation: btt-drawer-out .3s; + bottom: 0 +} + +.el-drawer__open .el-drawer.btt { + -webkit-animation: btt-drawer-in .3s 1ms; + animation: btt-drawer-in .3s 1ms +} + +.el-drawer__wrapper { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + overflow: hidden; + margin: 0 +} + +.el-drawer__header { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + color: #72767b; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + margin-bottom: 32px; + padding: 20px 20px 0 +} + +.el-drawer__header > :first-child { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1 +} + +.el-drawer__title { + margin: 0; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + line-height: inherit; + font-size: 1rem +} + +.el-drawer__close-btn { + border: none; + cursor: pointer; + font-size: 20px; + color: inherit; + background-color: transparent +} + +.el-drawer__body { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1; + overflow: auto +} + +.el-drawer__body > * { + box-sizing: border-box +} + +.el-drawer.ltr, .el-drawer.rtl { + height: 100%; + top: 0; + bottom: 0 +} + +.el-drawer.btt, .el-drawer.ttb { + width: 100%; + left: 0; + right: 0 +} + +.el-drawer__container { + position: relative; + left: 0; + right: 0; + top: 0; + bottom: 0; + height: 100%; + width: 100% +} + +.el-drawer-fade-enter-active { + -webkit-animation: el-drawer-fade-in .3s; + animation: el-drawer-fade-in .3s +} + +.el-drawer-fade-leave-active { + animation: el-drawer-fade-in .3s reverse +} + +.el-statistic { + width: 100%; + -webkit-box-sizing: border-box; + box-sizing: border-box; + margin: 0; + padding: 0; + color: #000; + font-size: 14px; + font-variant: tabular-nums; + line-height: 1.5715; + list-style: none; + -webkit-font-feature-settings: "tnum"; + font-feature-settings: "tnum"; + text-align: center +} + +.el-statistic .head { + margin-bottom: 4px; + color: #00073; + font-size: 14px +} + +.el-statistic .con { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center +} + +.el-statistic .con .number { + font-size: 20px; + padding: 0 4px +} + +.el-statistic .con span { + display: inline-block; + margin: 0; + line-height: 100% +} + +.el-popconfirm__main, .el-skeleton__image { + display: -ms-flexbox; + -webkit-box-align: center; + display: -webkit-box +} + +.el-popconfirm__main { + display: flex; + -ms-flex-align: center; + align-items: center +} + +.el-popconfirm__icon { + margin-right: 5px +} + +.el-popconfirm__action { + text-align: right; + margin: 0 +} + +@-webkit-keyframes el-skeleton-loading { + 0% { + background-position: 100% 50% + } + 100% { + background-position: 0 50% + } +} + +@keyframes el-skeleton-loading { + 0% { + background-position: 100% 50% + } + 100% { + background-position: 0 50% + } +} + +.el-skeleton { + width: 100% +} + +.el-skeleton__first-line, .el-skeleton__paragraph { + height: 16px; + margin-top: 16px; + background: #f2f2f2 +} + +.el-skeleton.is-animated .el-skeleton__item { + background: -webkit-gradient(linear, left top, right top, color-stop(25%, #f2f2f2), color-stop(37%, #e6e6e6), color-stop(63%, #f2f2f2)); + background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%); + background-size: 400% 100%; + -webkit-animation: el-skeleton-loading 1.4s ease infinite; + animation: el-skeleton-loading 1.4s ease infinite +} + +.el-skeleton__item { + background: #f2f2f2; + display: inline-block; + height: 16px; + border-radius: 4px; + width: 100% +} + +.el-skeleton__circle { + border-radius: 50%; + width: 36px; + height: 36px; + line-height: 36px +} + +.el-skeleton__circle--lg { + width: 40px; + height: 40px; + line-height: 40px +} + +.el-skeleton__circle--md { + width: 28px; + height: 28px; + line-height: 28px +} + +.el-skeleton__button { + height: 40px; + width: 64px; + border-radius: 4px +} + +.el-skeleton__p { + width: 100% +} + +.el-skeleton__p.is-last { + width: 61% +} + +.el-skeleton__p.is-first { + width: 33% +} + +.el-skeleton__text { + width: 100%; + height: 13px +} + +.el-skeleton__caption { + height: 12px +} + +.el-skeleton__h1 { + height: 20px +} + +.el-skeleton__h3 { + height: 18px +} + +.el-skeleton__h5 { + height: 16px +} + +.el-skeleton__image { + width: unset; + display: flex; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + border-radius: 0 +} + +.el-skeleton__image svg { + fill: #DCDDE0; + width: 22%; + height: 22% +} + +.el-empty { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-direction: column; + flex-direction: column; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 40px 0 +} + +.el-empty__image { + width: 160px +} + +.el-empty__image img { + user-select: none; + -o-object-fit: contain; + object-fit: contain +} + +.el-empty__image svg { + fill: #DCDDE0 +} + +.el-empty__description { + margin-top: 20px +} + +.el-empty__description p { + margin: 0; + font-size: 14px; + color: #909399 +} + +.el-empty__bottom, .el-result__title { + margin-top: 20px +} + +.el-descriptions { + -webkit-box-sizing: border-box; + box-sizing: border-box; + font-size: 14px; + color: #303133 +} + +.el-descriptions__header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + margin-bottom: 20px +} + +.el-descriptions__title { + font-size: 16px; + font-weight: 700 +} + +.el-descriptions--mini, .el-descriptions--small { + font-size: 12px +} + +.el-descriptions__body { + color: #606266; + background-color: #FFF +} + +.el-descriptions__body .el-descriptions__table { + border-collapse: collapse; + width: 100%; + table-layout: fixed +} + +.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell { + -webkit-box-sizing: border-box; + box-sizing: border-box; + text-align: left; + font-weight: 400; + line-height: 1.5 +} + +.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-left { + text-align: left +} + +.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-center { + text-align: center +} + +.el-descriptions__body .el-descriptions__table .el-descriptions-item__cell.is-right { + text-align: right +} + +.el-descriptions .is-bordered { + table-layout: auto +} + +.el-descriptions .is-bordered .el-descriptions-item__cell { + border: 1px solid #EBEEF5; + padding: 12px 10px +} + +.el-descriptions :not(.is-bordered) .el-descriptions-item__cell { + padding-bottom: 12px +} + +.el-descriptions--medium.is-bordered .el-descriptions-item__cell { + padding: 10px +} + +.el-descriptions--medium:not(.is-bordered) .el-descriptions-item__cell { + padding-bottom: 10px +} + +.el-descriptions--small.is-bordered .el-descriptions-item__cell { + padding: 8px 10px +} + +.el-descriptions--small:not(.is-bordered) .el-descriptions-item__cell { + padding-bottom: 8px +} + +.el-descriptions--mini.is-bordered .el-descriptions-item__cell { + padding: 6px 10px +} + +.el-descriptions--mini:not(.is-bordered) .el-descriptions-item__cell { + padding-bottom: 6px +} + +.el-descriptions-item { + vertical-align: top +} + +.el-descriptions-item__container { + display: -webkit-box; + display: -ms-flexbox; + display: flex +} + +.el-descriptions-item__container .el-descriptions-item__content, .el-descriptions-item__container .el-descriptions-item__label { + display: -webkit-inline-box; + display: -ms-inline-flexbox; + display: inline-flex; + -webkit-box-align: baseline; + -ms-flex-align: baseline; + align-items: baseline +} + +.el-descriptions-item__container .el-descriptions-item__content { + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1 +} + +.el-descriptions-item__label.has-colon::after { + content: ':'; + position: relative; + top: -.5px +} + +.el-descriptions-item__label.is-bordered-label { + font-weight: 700; + color: #909399; + background: #fafafa +} + +.el-descriptions-item__label:not(.is-bordered-label) { + margin-right: 10px +} + +.el-descriptions-item__content { + word-break: break-word; + overflow-wrap: break-word +} + +.el-result { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -ms-flex-direction: column; + flex-direction: column; + text-align: center; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding: 40px 30px +} + +.el-result__icon svg { + width: 64px; + height: 64px +} + +.el-result__title p { + margin: 0; + font-size: 20px; + color: #303133; + line-height: 1.3 +} + +.el-result__subtitle { + margin-top: 10px +} + +.el-result__subtitle p { + margin: 0; + font-size: 14px; + color: #606266; + line-height: 1.3 +} + +.el-result__extra { + margin-top: 30px +} + +.el-result .icon-success { + fill: #67C23A +} + +.el-result .icon-error { + fill: #F56C6C +} + +.el-result .icon-info { + fill: #909399 +} + +.el-result .icon-warning { + fill: #E6A23C +} \ No newline at end of file diff --git a/src/main/resources/static/css/JcPrinter/fonts/element-icons.ttf b/src/main/resources/static/css/JcPrinter/fonts/element-icons.ttf new file mode 100644 index 00000000..91b74de3 Binary files /dev/null and b/src/main/resources/static/css/JcPrinter/fonts/element-icons.ttf differ diff --git a/src/main/resources/static/css/JcPrinter/fonts/element-icons.woff b/src/main/resources/static/css/JcPrinter/fonts/element-icons.woff new file mode 100644 index 00000000..02b9a253 Binary files /dev/null and b/src/main/resources/static/css/JcPrinter/fonts/element-icons.woff differ diff --git a/src/main/resources/static/css/JcPrinter/style.css b/src/main/resources/static/css/JcPrinter/style.css new file mode 100644 index 00000000..718889d4 --- /dev/null +++ b/src/main/resources/static/css/JcPrinter/style.css @@ -0,0 +1,217 @@ +body { + margin: 0; + padding: 0; + width: 100%; + height: 100%; + background-color: #fff; +} + +.container { + width: 900px; + height: auto; + margin: 0 auto; +} + +.header { + display: flex; + align-items: center; + width: 100%; + height: 100px; + margin: 10px 0; + border: 1px solid gray; +} +.printer { + display: flex; + align-items: center; + margin-left: 10px; +} +.printer span { + display: block; + width: 120px; +} +.printer select { + width: 520px; + height: 26px; +} +.printer .reset { + width: 120px; + height: 24px; + margin-left: 10px; + line-height: 24px; + text-align: center; + border: 1px solid #a9a9a9; +} + +.main { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; +} + +.main-left { + width: 60%; +} +.send1{ + + width: 90%; + height: 30px; + margin: 10px ; + line-height: 30px; + text-align: center; + font-size: 16px; + /* border: 1px solid gray; */ + /* border-radius: 5px; */ + /* margin: 10px 10px; */ + +} + +.flex-rows { + padding: 10px 0 10px 10px; + margin-bottom: 20px; + border: 1px solid gray; +} + +.flex-rows p { + font-size: 16px; +} +.flex-rows .ex2 { + display: flex; + align-items: center; + height: 40px; +} + +.function .ex2 span, +.upgrade .ex2 span { + display: block; + width: 120px; + font-size: 14px; +} +.parameter .ex2 span { + display: block; + width: 160px; + font-size: 14px; +} + +.ex2 .right { + width: 500px; +} +.ex2 .diy-span-class{ + display: flex; + justify-content: flex-start; + align-items: center; +} + +.ex2 .diy-span-class span { + display: block; + width: 30px ; + margin-left: 6px; + font-size: 14px; +} +.ex2 .diy-span-class span:nth-child(1) { + margin-left: 0; +} + +.headselect{ + width: 500px; +} + +.ex2 .right input[type='text'] { + width: 200px; + height: 24px; +} + +.ex2 .right input[type='button'], +.ex2 .right input[type='number'], +.ex2 .right input[type='reset'], +.ex2 .right select { + width: 120px; + height: 24px; +} + +.ex2 .diy-span-class input[type='number'] { + width: 60px; + height: 24px; +} + + +.ex2 .right input[type='number'] { + height: 22px; +} + +.ex2 .right select, +.ex2 .right input[type='button'] { + height: 28px; +} + +.ex2 .crc input[type='text'] { + width: 120px; + height: 24px; +} +.file-input { + display: flex; + align-items: center; +} +.select-file { + position: relative; + width: 120px; + height: 28px; + margin-left: 6px; + border: 1px solid #a9a9a9; +} + +.select-file span { + width: 100%; + height: 100%; + line-height: 28px; + text-align: center; + background-color: #fff; +} +.select-file input { + opacity: 0; + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + overflow: hidden; +} + +.main-right { + width: 36%; + height: 860px; + margin-top: -20px; + border: 1px solid gray; +} +.main-right p { + padding-left: 5%; +} + +.overflowTest { + width: 90%; + height: 320px; + margin: 0 auto; + padding: 4px; + border: 1px solid gray; + background-color: #fff; + overflow: scroll; +} +#overflowTest1 { + width: 90%; + height: 320px; + margin: 0 auto; + padding: 4px; + border: 1px solid gray; + background-color: #fff; + overflow: scroll; +} +.clear-all { + width: 90%; + height: 30px; + margin: 10px auto 0; + line-height: 30px; + text-align: center; + font-size: 16px; + border: 1px solid gray; + border-radius: 5px; +} diff --git a/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableBarCode.js b/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableBarCode.js new file mode 100644 index 00000000..1ef11132 --- /dev/null +++ b/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableBarCode.js @@ -0,0 +1,14 @@ + + +var DrawLableBarCodeParam = { + "x": 20.0, + "y": 10.0, + "height": 10, + "width": 50, + "value": '12345678', + "codeType": 20, + "rotate": 0, + "fontSize": 4.0, + "textHeight": 0, + "textPosition": 0, +} \ No newline at end of file diff --git a/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableGraph.js b/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableGraph.js new file mode 100644 index 00000000..7fbfe342 --- /dev/null +++ b/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableGraph.js @@ -0,0 +1,12 @@ +var DrawLableGraphParam = { + "x": 2.0, + "y": 5.0, + "height": 30, + "width": 40, + "rotate": 0, + "graphType": 3, + "cornerRadius": 0, + "lineWidth": 4, + "lineType":2, + "dashwidth": [1,1], +} \ No newline at end of file diff --git a/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableImage.js b/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableImage.js new file mode 100644 index 00000000..5376194f --- /dev/null +++ b/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableImage.js @@ -0,0 +1,10 @@ +var DrawLableImageParam = { + "x": 2.0, + "y": 2.0, + "height": 10, + "width": 50, + "rotate": 0, + "imageProcessingType": 0, + "imageProcessingValue":127, + "imageData":"iVBORw0KGgoAAAANSUhEUgAAAZAAAACgCAYAAAAisjrVAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAROVJREFUeF7tnQmYFcW1gFtEDe64Am5BIyhxe/jcRTQquBDc17gbFfdEfUYlKu6JccWnKIoYiIIGNVEB81TcggsEFQFN3BWjKIILaIIG+9V/pmuoqam+3ffevjPDzPm/r76Z27e6urrvvXXqLHVqia+++ipeuPD7qF27JaM45m+7aIkllpCiKIqiKHEcS/n++++NbGhn/i40ssLIidmzZ8dLLdU+at9+qegHP/hBvQBRFEVRFIsVIP/+97+j//znu2jevPnREvPnfx0vvfRS0VJLLZVUUxRFUZR0vvvuu2jBgm9RONqp8FAURVFyY2XGEgsXfh9jy1pcWbhwoahW8+fPj/71r38Z1eo/Ih27dOkSLbPMMmqOUxRFqQHffPOvaAkz+MbJ6yDffvttNGrUqGj8+PHyvw8D9HLLLScDObYx29zSSy8txxnYGdBD9O7dOzr66KOjlVZaqX6gf+yxx6L7778/mjt3rrQ3b948aRuJt9pqq0Vvv/12NHv2bLHFffnll/L+CiusIHXd69xzzz3R/vvvL0JEURRFKRYm7JkChIH5N7/5TTR8+HA5wYfBncEeVl11VXHCwxdffCEDOoJkxRVXDGoCBx10UDRo0CARDPb9Sy+9NLr44otF+Ky++urRj3/8Y/kfofHkk0+KUNh5552lXbSMtdZaKxoxYkT02muvRUOHDo1++MMfSjuKojQ/LcUC4A5zTz31VLTLLrskrxqSMRw2Ik9bpeo0NeXeXylEHpgGq+aEE06IBw8enLyqY/LkyXHHjh3jV199NTmSj+uuuy7eYYcdYqNpJEfqeOONN2IjoOJhw4YlRxZx4403xuYDio0QSY4oitISMONMs5ctt9wy6U0df/vb3xq8/4Mf/CBef/31G9XLg9/WUkstFZuJb4O2/DrNWYrkm2++ievUhRx89dVX0YwZMyIjEBqUv/71r9H7778fTZs2LXrhhRfqjz/zzDOigaA1TJkypcE5lA8//LDef+GzYMGC6NNPPxUzlQVzFXXRiCguaD2Y1zBn4QNRFEXJC+PQ119/nbyqwwyOMm755fXXX09qhGGMYvxqMyBJ8jBy5MhG0qyasueee8YfffRRbD685Ap1oIHsuuuu8fTp02MjDJKjcTxp0qR4lVVWiW+++WaRfC6jRo2K11577fiJJ56IjSBJjiqK0tyEfvtNXXzN4qmnngrWa9++fVIjjp977rlgnbXWWiupUUeadqEaiEeHDh2i5ZdfXjQLc259Yda/7bbbRrfeemuD42Ywj1ZeeeXo2WefbXCcctFFF0XrrLNO6qJFroPfI6/9dIMNNpAZxKxZsxpoLYqitDwYL/wxoYhiJqTJFUpD8E7ofDcIJ21pA37ZUthgnzzU6jlQ8j6LasktQBjMl1xySYmqooMWBApqHQ5097it59dHXcQERXu+gMAMNWfOnPrILfe8UnTs2DHaZJNNon/+85/JEUVRWiq1MjNj9i4KxqkQBAS5bLbZZsl/i8g78a2lub3IZ1GK3ALEwk3bgf3555+Pjj32WImm6tOnT4MHhx2Qem6ILiCE0qKyaBtfCxoFdWxEVxZEYvXo0SMyqmJ9iK+iKC0Td2LIGMJYUGnp3Llz0lKxAzLjT8+ePRuUjTbaSCbM7vWJBnVh4vvZZ58lr0rjT5CreRbuc4BaCieXsgUIAgDpfOedd0Y77LCDmLZOP/10MTu5MPgjDBAw/fv3l/Bbyr777hvdddddjRzhwMBP+C9qoP/BlII+bLPNNrKG5L333sutuSiK0ry0b98++a88GCM23HDDaI011kiOFMvGG2/cyIHO+JIF/VpllVWSV+VR6bOAWj2HLMoWIKhGCIXjjz9e/rL+AjXO1xYOOOCA6IEHHhDz0qRJkyRaizJx4kSxz4VURKK5kMLdunWTxI5I1jSYCeyxxx4S5YXA2HvvvWXNyJgxY4LCSVGUlkdeK4MPE0xKmq+iFjAm5aHUuFWKSp8FNOVzcCm7xziIbrvttuiNN96Ihg0bFi277LLJO43Zb7/9RCDg3EbwUDAxnXvuueIk90HKsyiRmQWaThpI6q5du0rdm2++Ofr8889FAh988MGymJCQYkVRWi+E2TIG1QosGcccc0yDwoQ5C0xHdmF1W6BsAdKpUycZ/BnkKyVknnr55Zej8847LzruuOOinXbaqVEd+xqNBmnLX7Qg0p7ccMMN4oAfMGCAmMhIjzJ9+nSpryhK6wNtYP31109eFc/HH38c/f73v29QHnnkkUaRU360ExNfok/bCmULEPwdDNLWp1Fu4Vz8J9bMhLpHfqsjjzxSvhRIenwaPiw8JDrr/PPPj9Zee23Jf3XmmWdG6623nmhEL730kgiWgQMHSj1mC2+99VZytqIorQnMPdWYfLJIC8X1/av+okHr1G4r5P4EGJRZDU6kE34M69OopDCwY9ZC3UMNRbBgliJnDH4M/4tBVAMzADQfPthf/OIXYg5DCGH2ImLif//3f+UY57MiHhX30EMPFcGSFpKnKMriCdFOmK6LILTq/MUXX0zebQhjoFuP8cyFQKA25YM1EjUX77zzTmwG8dgIkuRI5cyYMSM2Qqh+RbkZ+KWUgq13jRaSvGrI66+/LqvajUBKjsTxzJkz4y+++CJ5pShKc8AQ45ciVmmzatxMJnO15a9E90lbdb7eeuvFw4cPry+DBg0K1nOLmfzGHTp0qKhflT4LSt62iqSsleg4rY866qig87tcWLOx/fbb15uqWN2ZtcITkxXrPUIQn00ctOt4x8zFGhRFUVonRfka0iKYyOztOtHJoJEFGkhzRUQ1B7UzIiqKomRgF7wRRWmLXe1d6hgTRLJfYFKqljSfBdGcrgBhPRum9lL9YpKLmb2SfvnPwrYN/jH72h4r4jlUQuZ+IErbAV8Ruc2IeCsVnq0oeQkNzltuuaX4UoE0SEcccUQj5zTnlTrGX76vrEH7wx/+IMfwSfz3f/+3/O/iXi9E2nkhsJpg8XDx+4oWQmqlcvsVehb2+fnH3NeAVcdeD9Ku6Z9XDYXtB6K0Dj755JO4d+/eYlv++9//nhwtDvPDis2sLt5vv/3Eb6W0fsw406hsvfXWybvFwp5Boev5/gGftPNCZdttt03Oyk+aP6JWzwHS7qlI8IE0iQbCGo0333wzU81ac801xcfyzjvvJEdKs+6664oqmxdmLIMHD47OOussido69dRTk3fyY2fooa1y89wns4cf/ehHjXw+zFpYC4NviHbcVa9uVEfe42gQLOIMJXvLggWgRLSRuqFITYR7JEszedPIIMDOkkrrxs6gXZjB29ky71cTjsvwxfcKmMGzHMDHn+kTdUVdC9k08O/mwW+L35qZbCWvFvWH1E7du3eXY2nagPscoJpn4T4HSHsWRQ73TaaBvPfeew2kYFphj5Azzzwz+F6onHzyyckV8kPEhfmgYvOhJkfyQyTYYYcdJtf+7W9/mxxdxMcffxwb1bVRP/1y2223JWcswnz4sgfK5ptvHt97773J0UUYQdBorxMi4jju88orr8RbbLFFvRYxZ84cea5GONWXn/zkJ/Hee+8d77TTTvXH2AmSnR3NF1t2f+zZs2f9e2awj/v37y/nufXPOeecsqLd5s6dK7u2FRHNp7R8Qt//pi6+BhKKumL3VDfqKi3iKk9bFHffkDQNpDlKkZQVhVUNLPYz1ytZyJ1lBidZVX7hhRdGhxxySLAexc4A3H2Gkb5//OMfRYqXKmbgkzaYSYTed8tDDz2UtF4HkWD33HNPNHbsWFmwyJ7sU6dOTd6NZLbOPicXXHBBoz5TZs6cKe2GosN4H80D7Yt7RxOzheRszEy4nts/IuM4zvu2Ln0wwkPyitGebZuYeVbX2sI+LdwHKRvsMVbVch6OQjQ7kmHa9/7xj3/I8yAHmT1GIf0+Mfl8fm7f0gp9pT4ztND7frnqqqvkHhSlKPwoKV7zmySS0zrM86QtAb8tfo9kyciKKm0tNIkJi0uwVwcL/A488MDk6CIYhP/rv/5LUgUYLSS65pprovvuu08EAqF0PldffXVkNIBo3LhxkoUXuAYLDhkY06DO008/LfmzzjjjjKhXr17JO41h8CKlCpEeaZA52A0l/NOf/iTmH/r3P//zP8nRRWASwnzD39122y052pBPPvlETHlpGO1ChB8RG/QxDUxQRGikwUKpfv36iXqNKTCLxx9/PNp9991l4RRZmH1QmV2zgAv9RGAghMhkYBkxYoRErIgqHIDzUP0RysriSanvaFOByRjTssU3KWH+RXgwubGTU34fpC3x8dsK1WM5AZM7Wy+treagyOGe322TCRCEBxlzGbQRDDa3Fe8NGTIkMmqjZO9l5ssgj3bBjPenP/2p1APqMuPFXsmHzup0tIJy+POf/yyzZdrea6+9kqOl8X0b/CgQbHzpWKHPandmyo8++mh0zjnnRL/73e+kngt9Z3ZP330hh1AgZPDkk08WgYRdFTttCGbvFO4/zV7Ke0SL4K9BUyJ5pQ8fvn2ODOSlfug8cz47PpuRI0cGU81kgTZDG9ttt1107bXXRr/85S+jDz74QCYKSuuFyU5zQ2r2rAglfktMYq0AYTJERJSP31aoHr5WNworra3mgHsviiaPwnr33XfFto4d3bJgwYL4Zz/7Wfzzn/9cbPz4AqhnPuD4oosuSmotwkhzseVdeumlUrdcnn/++djMEMrygRjtSa7pFqNJiR0fm74ZiOPu3bvHZnaenFEafBTjx4+PjcCMjWBtsII+C+pzfd8fUglGE4pXXHFF+VsKbMJc02hYyZHyMJphbASu7Hdvnz9/zz77bPG5KEpT4vsklllmGfF/+P4NpTT4QJpUgICZXYuDl1BRnOukNGHpPwOqhQH1kksuEUfUW2+9lRyNZdBE2PBhc66F/0lt4H4piirLLbechLe6IDxw4PMALQhCQucmTZok9xQqONxefvllqWe0iOTMhpjZSzxgwAC5ttHS4mWXXbZB4ZkQSrj66qs3eo8fAufhBPf7nIbRlmKjukt4bYhHHnlE2mTwrwTu2WhVsdEy5fUzzzwjnxWCEHiOZuYnjn5FaQp8AWK08Lhr164qQMqE8a9ZFhLiD8F3gQ8BZxPhbqNHj673J9ClV199VcwdZN/FqQ7/93//F/Xt21dSChgBI8eAjJiontj9cSRjlsHchKnHhXazfCA4kDGLce7XX38tfoStttqq3uSGn4XwOFJJ46vBnIMphteornkh5Tw7M/oQDHDZZZeJMx0TXblwrhm0xdSEfyEL7pOkkw8//LD4KLDdWqzPBr/OvffeW3aKBkyV7NFy/fXXSwJM4Pnj/+EvAQ1cHzMlzvkZM2Y0uL6y+INDOguCbNzfM4EdgwYNSl6F4XfC755QWHtu2nl++3z3QiHk/PbtmJGnDxa/fZ+8/SqStGuGxpxKaXITlg/mC9OP2AiG5EhDzCAo7xPWiumKWTahvsz205g3b54kfkwDMwwmlLFjxyZHGvPxxx/HRngkrxrCzH6PPfaITznllAYaCJx33nnxAQcckLwKc/rpp8dG2KQu1EMDMR+8mJYI0SWUNm8hBBjNbq+99hKzUTkMHDhQnvXgwYPlHjEp8hoNpVyM8JawX86fPHlycrQuVPmpp54SDQSNzOWCCy6Q+jxDpfXAZ5pV1llnnaR2HWmhsX5Bs3XPTTvPbz8PeftAyWq/yH7lJe2aRcL412y5sJjt2lTIF198cX0eGBccTziBDzvsMJm1MjtlAaDVBnxw1HIO2sCECROSo4tg1mId4aHFfrzPYj5SwqMhoIGUwndiE3mFs33TTTcNRhbts88+ov0QCmwXGZUCx3YlpRIuv/xy0VzQYIgC47NhFkNQQDkQSEBIJCn7CR12nZX0zYYw+6HMV1xxRXTLLbdEv/nNb+TzQxtR2ga+1uk7uENgZWAG756bdl4lWm2ePliy2k8bryrpV17K6X9VJMKkSRk3bpxIQ2z9RpCIJO7WrVtw1vzQQw/Jwj/qhxbvubDQj5mzGdiDDm1m96SkRwMxg3hydBHMkO1iPmzzIS3EaiA4gIH+o43MmjVLXgP3tcIKK8S33nqrpJk3g6L033yomZoBfTRqbXzkkUcmR8oD7aVcDWT27NnxDTfcIAEO9JPPg78bbLBBPHr06FR/jQWNEEc8mhXn0Ra8//77MhOyPiA+EzMBkM+HZ2OPU/AdEZTA8zICuL4faIrlBBkoLQs+x5ZYOnXqlPSwPG0jb3Hb53sfqhMq7nkhqu1rkTSLEx2TCDdy4okn1g9Mr776arz88suL2cMew8RjNAGpe/DBB0vUFf/jWB41apTU8cF8dcIJJ4iJBEEQ4v777xcB8vDDDydHGkLEFc60kIkKuAa5nIgk69Onj/TptNNOS95dxN133y3vUejPk08+mbxTGgSI0chktTbObQb1vIX6OATzCBAG5Ztuuinu0aNHfT+JeuP+ged/zDHH1L/HivXQCnkw2pZ8Pttss40IVGA/Fntu3oIznfsHhBCfP+ZNFSCLL6HPudKy7rrrxnfccYeUCy+8MLNOqXpuBgcmL6E6edvyizU/W/gt3nnnnbnaCmWWcEnra6j4/acUSZMJEC7ETHKNNdaQG0MDCcFgwcDLQEg9BiQ7oFl++ctf1j+gfffdN3700UclsgusAAnNcCnPPvts/Otf/1reZ6buv89M4Q9/+EO84YYbBgUIg9uDDz5YH/HF9S1EiyHYrFChoHEcfvjhMqvgmvhvmNETplyKm2++uWINBOFz0EEHJa/qoN9EPxFJha/E9o/oN+7Tf8Y+PBe0LnsepW/fvpKShXDcckKK2RQM4Zi1gZjSOnC/M9UWN5HheynpkUgG6oJVIVRv++23T2rUWRVCddzrQdo13cJ3Gz9kVkRXWr+yzkvra6j4z6JomkyAYFo6/vjjZebOA/DBbHHEEUfU3zg5lmyYZwic3EhwZtvMVO1AT04mHpr7ECstrO3wTVgMxI8//ni84447xk8//bQ4hN0ZPIUQWvpEqK4LYcr7779/g7qdO3eOzzrrLAnt5Z7Jx4Nj0L6PGSykaaSVlVZaqf5cwo8RxDyPqVOnxtdcc40cRzthXcebb76Z9Kw8XnrppfjKK68UkyPtYQq0AjwPPD/OQ6AprR/7fSyiMHGz8NsL1eE7f/TRR9eXfv36ZdYjJ1yojns98MN/QwVzO5NFVxAwYXT7REnrV6XnhYr/LChF0mQCJA9sczts2LDkVfNy0kkniakN00wW1157bXzLLbeUvX0uiwhJROj6Tlo7zLoQQAhgzJaKwuQxNPj5s/885G0rVI+FrlnXzCNAEDoM3K4gKMdvkee8PM8m7VkUCQKk2aKwfNgQ5bjjjkteNS+33nqrRB8R6ZEFqeFJQeJHFWXB2gpSnpTKe9XaIAqLdBGkciFSTVFYuxXCjE/Jf/lJa8uP8PTrsTUD1wtFgpYL33GKS1oUVhZp5+V5NqyRaQpajABRFKX1Qe4lv7hJN9MGbcLsQ+fawsJh9rtx2yIvXQhy0Ln411y4cKGcmzUwk6MuC5YC+PXynFcOWc+G8tdkiUSt0S1tFUWpGf5sHNg3/MMPP5T/GeyqWbPgtkXSTzIq+Ky66qoNkrL611xyySUlg8WGG25Yn0wxRKh9hJO74rtdu3ai0WBRsW3lOc+ypbNhVbXPhnUy/jXyZAbIC2vdVIAorQK+xqSh+Oabb2QwKDftilIbQgKE/WpYsAuVDpJ2ISGphGxbefGvyYDfqVMnSf1TSoCEII0R/bDwvVtxxRUlW3eptvzzLEUKkG233Va0tFqBAFETltIqwCzBvgtsSkbhB1o0ZCZgJnnKKafIKn2lMlxTU6V+B7SG9u3by99qQcjRFhOPcmFLB5+Q0PRhM7YQbh82q2A7apdKfS/loBpIBjwe9tUguSF/0+DDsruQkSwyC2Y9zEDKcaLTLqldSLLIPhoHHXRQ8k4+sPUyQw/toZL3PpnxbbDBBrLrmguDAn06/vjj5TU/SMAmTLHY4/TF/erZ43ZAYSY2atQoMSuUwyeffBKdcMIJ8lkMGzYsOVoMJP+84447ohtvvFH2lenZs2fyjpIGn6OPu6dGaK8MvqPuPuNpIDzQZuyMndk2CTp90C7cAbvamX0WCBC+G6U0kLz3TVtoWzyzNPI+LyhyuJd0TaZBpQSscRgzZgxPPbOwsHD33XcPvhcqV199dXKV/LB4j3T4rIUpBzMwy3oTQmhZI0KiShfSkbBGgxDEUF9tIRMAiyl9zJdYQpOJqWfdiQvx7KGFkSTIJPWMD+0ccsghsnCLzAT0m/MJcaSYH3/cq1cvSca51VZbNTjOayOYYyOYJSWKPc5977bbbvF2221XX5/zCdcuZyHkX/7ylwaL0JTiyZPFgEWwrLnic7SkrdL2V3ebgT1Yr4jCQkK2Wth6662Tq+WH9XJ+eySQzQrbDZ2XVoqE37yasDJAU2AHQ/O8Usvs2bNlD2WSPpIo8Ve/+pXsUBiqSyGlMltjurOgzz77TLZ7ZcZRqpx00kmygyGqc+h9t5Ai3WJna6Sypm9m4JZdH+22m7xPKDLmH2aHoX6z5TCJDkMaDFoGmgsp4DfffHPRyCjMnkjdz6wP9dztnxG40cSJE2W7W1sfJ+T+++8v2hbaCNdFW2G2Q7JMCmGYzz33XPTkk09Gc+fOrT9OdAp9QDvi+RjBIMfRHEjOyLa806dPr69PXcId2VGS5JZu39IK2wlw7dB7oVJk+uy2Ar8nnh2/PVv4brjHzMDaaGdMvjuh8/L6w9xz/euVOubC95XvFN8vvvO2uNFigNbA79gtvqOda/Hdx7dnIaIrdF6evlKKRk1YOeALQXZZvtj+PgIMbOyVwZoOTCbrrLOOmDiIDGG/kC5duiQ160CVvvLKK+WDN9qERGsAg+VHH30kA1waDJBsxcs6CtaesKYiDRx5DOShwd7CAOv+AC699NLohhtukIzHhx9+eHK0Dq59++23R4MHDxYhkZZNmGdV6os6YsQIaafU3vXAj6bUD592KOxDjwDKgvsaOnSo/NgwwbnQ5zfeeCMyM9/kyCL4ESJc+Wu0D9mOFzCtsS8/z5nzQ9AvPt88+7Ioi0jbryMEpk87wObZ5wNqbcIK4UaLQZq5LYTRsjLNdHkpcrhXE1ZOzGxCEpGtvfbakosLs4qFFZ+kVSEVC2lazEArSQrJp+Wn68BUQs4tcmKde+65cdqeI2mY2YikESHJIOp6Hlj9TZ8wA9EfCueSgRcwhZmBuD4lCznEQmDKw8RlM+7a0rVrV1kxSw4uTGOo76RgQZX3i/khS5oHzgu9TzHCR1KykJqFZ0j2ZB/uiZXsJNnkuqXAdMc9kyqGPUe4j0rgHskHhimNLMHs60J7yuKHb8LiO5dnJXoIcru5baUVzM4u7JMTqucWfiuYsFwzXdp5lfS9WtSElRNm8TiHWaHOLntGiCTvRGJCeffdd2UT/VVWWUVm3926dZMwPvY8cWEWhIZBYWaKGl4OqOjMZtEa0HTywMwZUw/ayk477SRl6623Fu0Ixzdaz4MPPigmtbfffltMZCG4r1133VXuadq0adETTzwhJqHx48fLzpHEm9Me5iXUd7Qbv3D/7PnBKvTQ+xRUdExOmPTQCo466qikB4vgnni+vXv3jsaOHSszyjTQDjC9cZ9GcFekxnOffOaHHHKIPD/WFdAWn/2pp56a1FIWF2yghoXvCFpKJd8N38KQhht5BnyH80A9NzILq0KISvpeCIkwUXJCLqeNN95YnLgkTBw6dKjMLnAIA7Nj9sFgPxGctjgELa+99po4mSk2BxYzYlLM81HUojAzMaqmXAvMoBcfdthhsreKOxtHy2JfdDQkq6n4hfe4/1I7PpKkkfvm2ubL30C7wPGJxkLadrQM9z20E9vnffbZR/qZhRFW8S9+8QtxkIcyHHPfaGxkQyYQolz4LPl8zeSgPoM0ec/YL4bPkizGaCSHHnqoZIJWGmM/0+Ys/h4bfHZ2F09K9+7dg+flLXyv3fZC5Wc/+1ly9TqqceT71yOYIFTPv++iQQNRAVIBpJ0nygf1EjPLGWec0WAAwTRFlBMbMt11111yDLMXgzamGTdpJGapOXPmyOBMhA+p0zGX8D8p8N1C5lsGq7XWWiu+/PLLG73PIIeZibbYf4RNnkhSaU1u/KV9BmgiwBAglQow9v8IQeQU29LeeOONyZHywLTH88TslofXX39doqlQ8xEoLnYjL0xNPOdyIeU/eyoQFQb0iVT7CBCbDBKhS2QXkV7lbOLVVvC/N81RsvbYqGTvGrdUYj6qRoD410vrf9Z9V4sKkCpgps2g9aMf/Uhm5T5k58U3woybsFd8KAgddjLELp8GvgnsqiHy+kDwaxi1PHm1iG+//baRALEgAEktT/ulYMbdv3//BpqVC9oXe7KwJwIzd77EeQszQUJwzzzzzNwCBKiLDwqtBsHNs9l1111FwNvBvxzYSoC+4xdCIFpCAgTs9ZkZ8r6yiNDA1tTF9SGE4PcbOi9vyWo/RDn7evgFf54LY0aoXq3DzdUHUgWTJ08W2zvRWexzbp5n8k4dhMQOGDBAokIIS2W/dGz2ZoYdXD1LuB7t7bHHHrInu426cMEvQPgfdfET+LBS2gygksLgoosuqouSKMFSTpQTEUP0kzDkgw8+OCIs14UwRNo1A6f4T9Zee+3kndJgw81TqoFIKO77pptuklXihA2vvPLKEjVH1uNyYE927pNILXxVbroJrsNz4vOjfQvHCdclMg6fSJ8+fcTnoiwe+N/1cpk6dWryXxiyFpCDyi12wW0l8Ft022IJQQgWF7r1KIVTJ0uUvDCLxzTC5k/M1tmznVkzs3p/1owWgNmKx0xJ24oX0C6Y1f70pz+V2bi/GA+YtbCjIjZPzGg+zAiYceMT8H0cYDUQNvbClg9PPPGEmMOszwHfDDsacg36S/TWcccdJ/03X8BGbfqggWDCYlOtSsCEVa4Ggk2bc9AA8Keg6dFfZmqYAkvBc8f0heZgBIFoLY888oi8x7a+rg+I3S+JwrOmSXucnS75vPAjsdGRvT4zQN4rpXG2dux33y2VmHzyQERk6HpZGkI55qRK+o5Juqi20u4xbykSNWGVCb4NI+0lvI4VzBa2qWW7XjaisjCQI2T40DDpsOKa//GZsJuhDwMZ9nTMQzjGPvjgg+SdReDDsCYs67T3QSCwC6FvogIGMgQCQor95zHRcC+hwZ7wWPulw2TDlr15QICw+6SZpctgXE5hh0lMX3kECM8HYWNXzuNbYpX+/Pnz5X0GdjcrAFkCeDYh3n77bREM7Nhm/Sh8fvbcvIVdLAGTAuZLPkvCLlWANCz4i2rBK6+8ErxelgAhGCZ0XqhU0vc0AVVJW2n3mLcUCQJEFxJmgHpLaCqmHTOoiumGhYNGS0hq1IH5iBz8JPSjHrBBFovyzMxYXmOCwsRCKDCgxlKHRU2EEZqZtOS6YtW0GYBk1bfL559/Ht1///2RmeVGZpCNttpqq+SdOghHnDRpkoTlYoY644wzGoT3kVaaxXQXXHCBmI2MNiOLB4GFjYT7ssjPrprF/IZ5hvuibTMgRoceeqj0t1T4IgvsWIFOH8vl/PPPl+eFCc6CuY4+GKEgecD4PIBQXkxG3Ke/ItiF58FCTzcz6YEHHhj169dPwpv9z7IUY8eOja644gpZja5kEzJPmgG93kSLSdZfpZ0Hhi3CwjEl2jxRaQsE3euBf03+P/LII5NXpSHHmv3+5SVvv/IwceLEaMcdd0xelU+Rwz0mchUgGSBAGNCvu+46SXzIwGZmy8m7dau5+YIwGE+YMEGOsXaBev6KZwuCgtXqrJxlACelB3Z1vkysACehYbWwLoOUKgzkFgZikgDST9Z7YCNFYM2aNSupEUkqE5IRmtm7rHcAviicR59feOEFOQasd+GHt9FGG8n16Lfrd0F4hfw9afDDtuCfwY+ET+jEE0+UxIoIN65Hahn8FLZ/eWHAwXfF6nWjNYrQJhsAgtL1B6XB+hY3mSKpYZTSZAmQaldW59lbxB+o814T/5e/nwbfOXdvkTwUKUDS9jzJS5F+EPmtI0CU6sDXYb4kEkLb3ODDwBxz9913ByOxXKhrNKTYDKjJkXxgGiOkmHOx+7cVMI9h2sIXlNek19Yx40yjYgbO5N18K7JDBZMnkXLuCm8zGAfruteDvNfEFFwEaRFX+MgWZ9SEpShKTcnSQNJm51mQlQFTJ9pvVlv+TD/vNcks4WsbaCWXXHJJ8qouwsrXUnzQGsiG4JOnfZ+062WdVwtUA1GUFgAr3lmHQxAFDv3WhBlnGhVXI0jTGvIUAjXytOVrINVckzxoLmkRVpUWv32ftOtlnVcL0EB0HYiieDCzssWuESB/kj3273//W44BPrDQ8XJgls4OigQD4PNx/UxFgX+JTM5777137s2HWjLkhyKfXFPj70BYdKbl0A6HLmnXyzqvVqgJqxXD4EfkF4kPQ7skMnBRWByHKQBHMlFcwIDpfzWoi1Oc5JIkZCQpYl7Ye4PAAtKq48AmMWE5EAX2/vvvi+Pbj07jPjETEJSAQ5WFlm7f6TcmD/YJwWFO9JYLgz8mBvpEgIRNWEc7tMezI3273XESZzwBA1yTRZ84+4E+sr8KwRYM1jzTcsBJz2JErkviTnexYrXQ57vvvlsWtPJ9KCfyrBp49j5FmLCIusOhTTRgVlu+CauaSCY+U7ubIpQTwZUHv32ftOtlnWfhWRQFvxsVIK0YBg0EAuGqoZXrLoT9IkjuvPPO5EhpCGUlHDgvfM0QHhRCcRnI84KAwPZLVBkhuQyCZMdlNoZgYMBlUyi2+EXIlIIQbO7VBc0B4cM9MYCzMZiFcN3zzjtPVrpjZ7bYqDT+unuuEKVFHwnfXnfddSWCj/5awUx/mT0THcdnwmcEVjgTDs4PkzZ5TX2EGq+pz3vAZ0U02mWXXdbg+qV44IEH5F4effTRRkK4VtRKgDCRQMDymZQrQCqNZOK7leXvSIN+uudW01Y1FDncqwBRZMAibHefffaRQioPBlT+hhgzZowM3ggBQn7hyy+/lDQirF0pCtakhIQMg99ZZ50lAyCbW/GXrzDpJAhJZn1HKLUD60gIkWbTL0KUXRjEWVtDuDCaFwM/MHgzOGMeQLMg/JP32UyLEGY0ElL5o3kA7ZA+hfDt4cOHS8p9BB9pTuzOj/zoSIdP6DTPD0FgYbC163Zok/vieqTZZ3Ds2bNnvVZDPdLo9+rVS3aXZFZdNAjDalJuQK0ECEKYzwnhWq4AqRTMjO4kohwIO3fXIVXTVjUULUBoUGnFEHLLqnVWafuwsp50JWymY77ckk32oosukhXcofTorNJmlfg222wj6UMsrKInFQrpPNIKKVTIskuaDzbcCtWxxajp4qDLixm4JUmlGexjo2EkRxeBg5r7J1VJKGSZcGdCLbknnlcahC0bwZGaSBII9aUdVtLTrxBm9it7ZoeyDYQgUwBJO0ng6WMEjCTfDD1HyvTp08U5b2a7jBxSSMVC5mZWYJM+J3SevYdqsdd0ixnQk3frEleG6uQpbPDGc7EYIRGs516vGkgFFGo/T3H7CWl9rXUpEg3jbQOgTTC7xvzDzHjIkCFiowf8I8zimR3zl1kdi+wwTVGPTZMszIQxE7FSnJnw5Zdf3mCVex5IOsmKcFb15108xqpfbPYkJ2Q2i0bACnz8FPgn0IgwFzGjZ8bsmp8s9J3Fm2gutGXBF4K5yW4vTFgo5jDq+3DMCBkpaAHuYlIL/cO0YjUJNBoSVLrwc6PfZCugzvXXX99gsacL18Shzor+vfbaS86h/XJhK15Mh/hr8IOgsfBc2Z7X1YBqQZYGgk3/iCOOkP/LAbMmnxW+HGv7z6uBVLt4MQtMj/ho7Ap54H/XR5HWV76D7nk+BENUEwRR5HCvGkgbgpTV5LQiDxaaBzADNQOc5NdCi2DGjLaCBuLm+gLzZZF9TMg5ZbeZNT9i+ZsH6l533XWyvwZ7leQFzYU07eb7Wl/Qgpjps7EVKejZXtbdj6UU1CNUlpk5ienKgeeEllNqQ6088CzZ4IqFcDZxYwjukXtlSwBS1FcCGpcZqGTPF3K2MRPm+ZOU84ADDqj/LtQK93OzpSiNwCevBsKzDNUropDMk3xuWYkS0/qadV61e5cUiWogbQxm8cz2sL8yW2dWzhaz+DOYpQEORtK2kPOJaClm23xF2MqWMFNmSDjaiYDB5o9vwfpCioYZGtqT3dKTGTlpYugTGpXVgEhPgrOaSC/CakNfaWaFaA30G3t0KB090Vbk1sIxzvNwNSxm/mhua6yxhmy1i+/IBQc3z5Ntf3luWeGdzN7QnEaMGCHanh8VxL2QU4zPieeNBlIO+FDsZ4t/Cl8J1yJ1DlomviOcuDw7Ir7w69SCkAbC7L8WPhu0Kqtdu/gaSKV+lzzYFDw8T34baaT1YYcddih5HlYDGw1YCUUO93yHVYC0Mdjj4uijj5Z9PfixkRwRc5Q1ozAAE5F02mmnST3MWZgKGMwomKGsyYGvDiYyBBMDFj8cVHe+5AgXFwbE++67T6KgyBvG3uIu1uxD8kbaZICmPRzYDP70gT5jxuGHhwDByU3ySqLMcOTnhYHTJrx0YQDCpMT1+VsOmBbY64Xnd/XVV+cKwcUcRoTWs88+K8+F0GjgXglIIJDhqquuknstB6O5yPmEJvN5sT8Jz5NEnAgQzH7k8cLsx6SAwZXr+8k5iyAkQEIrsIsgbcV3UwoQvpNMNjANuveIw9xdKc5vLBQkkvVs0u4xL0ULEBpU2hjkwCIPD+aokDkJpzJO5y5dusSDBw+OzWAamwExHjhwYFIjDA5RHMRGU0iONARnMCYs9swIgXmJlOtpzmLMcJjgzA+xkbP7iiuuiI3QS16FOeSQQ2RLYIIBQuBIx9HPfZMHib3d8xaeJ85pUvd//vnnSYv5wMHN82WbYJ6fEa6ybfGECROSGvnBJIaZiv6494k5DNMjfSSlvwup543gF1OgGaCSo8VgxplmL74JyzcfmYmLBJJkmY9C5N2fI89K8bxtVdLPWoAJS1eit0GYwbC+gdnMlVdeKX9d0CJYrESqeWaohMfiDMaBHoIZM469c845R3YAdGd7FruGwXzvZIbsw6wfBzfZQjHt8DoNq624EL6LQ5bQVj+bMWngcbrPnDlTtINSJgD6Zx20mMzyFupzXiWgDWHGYk0Hs0/uD8f+LrvsktTIhmeLNoM2hnaHici9T8yAzG7R5nwzD1oJz5w+sJvj448/nrzTOpg7d27yXx2+doz2jPZJCHa5hBbohsgT/JC3rUr6WSvUhNWGwMzDAIrNG8HBYIuQAOz2ZuYq/wORQkRmETUFDDKs/whF7TBwsh6CRWpmdltvInFBgHBd7PIMVKTUcOFHzEDPYEo6D9fHAdaEhRkAHwYRTvhpuB4mMQZH+sH5XJ81HwiNkSNHRuPGjRPfBia4kEnFwiBCtBJmCMx65YIAZTV5XhMW98xgTXQO98LAztoGTCz4UEi5z+JIf+W8hZ8ugwl+Dp4Lz4AIN/wpRJchSO3PG9Ma608ee+wx8SPZ/Vx4HpgNEToIFyK0MK/wXeBZ9O3bt6LIL0s5C0ZrBf4Iouws+PN4thYmTHxeZCpw6+XBbysNvw8himyrKVATVhuCtQJE3Sy77LLx0KFDk6N1UU5EZ5mBQ16b2bSs0+jQoUNsBhcxq1xzzTXymnUUmLR8zOAu6c2NFiDrJNKim9hGF1MBpq4QmKh69eoVNFFxjRkzZsR9+vSJN910UzHTsAukERBJjUWYmXi9uo85Km8EE+tgMOPwjDAhYXbIWzp37iz9MYItM8U9pikj4GIjjKWPPH/SxNt1IzxLoq/sPbDF8bXXXismNh92P8TEyD3b6xrto1HkWlah38Bah+HDh8trnjfPXVFCaBRWK4dZO45aoniYfaMVsCqa9SAuaCbjx4+X1d/sWAiYrTCpuDN2tBAc0HxldtttN9ldEW2BGRyzXWbgbFbF6mU/yonZCs5iIkzIOcWaBBfMQGgxzH7RHnwNBA2GVeRcA9MMazrOPvtsMb9h+sJkg6ZBigjWitAGs3hm+ERHsV6AFeiYaLg2GxGhabhgNkMzQzPgeZULGhrOdDQt+9zQEB5++GGZ+bMeg10lgb5grqOfpbBrVEhDgoYEONuJ9uIz6N27t2gOeeAZobmhyeU9R1HSUA2klcPs0Qyo4vxmXYed4Vp4zR7LRgjUz0TZZzw007XgmGU9hxnA4rFjx8qMlesY9Tvu27dvfTvVFNZ2mC9ncsU6mO2YATg2AkRWSbPinCAA9zz2JMcJT10XZuRoWG7dNddcUzQd2txxxx1FgzCCSbQu3keb4Fje4vaFc1m7QX+mTJkiGhyaGc5q1tn4/csL60/uuOMOWaeDk5z78j/TNNBO0ADRruiDolSLaiCKaBP4Owi9ZX/w5gYfCTZ/ZuiltplFW0C7YF0HvpxyYCUyocc4rNGe2gJoVWgz5BILaYiKUi5oICpAFEVRlLJBgGgYr6IoilIRKkAURVGUilABoiiKolSEChClTYIzmVXzhNyGXluyjtvit5NW8l7PL2nnpfXDJ+16Pmnt++dltZfVTtHX8Uvedv2Sdf3mOi+tnl/Szktrp2pwotcCmm4Jxd8UJ1SHUsnmOaF2KG5bofeboygNYWEez+Wwww4LvrZkHbfFbyet5L2eX9LOS+uHT9r1fNLa98/Lai+rnaKv45e87fol6/rNdV5aPb+knZfWTjUQxtvqNRB/wZRNDW7p0aOHLCirZGGV3xaL01hA5rbl11FaBnZDKDL+gv/aknXc4reTRt7r+aSdl9YPn7Tr+aS175+X1V5WO0Vfxydvuz5Z12+u89Lq+aSdl9ZOtbQ5ExY5gVxIYEYOJSNQkyORrNZmHwa/+EnYfFjR7bajKIrSmmlzAsQXAgz6Pscee2x0wgknNCqlMsRCKMusoihKa6XJBQgz9FoU8h/lIXQuxc0ym2Z28lOI+1gTVh5CfSiq5H0WiqIo1dDkAsTfCrQoKt2LIURaH7PSXmSZuFxq9RygyGehKIqSRrOasJitV1PYe6EWkGWWfEFuYU8E//q+ECAzLBpAJfhtl1Nq9RwURVFK0awCpNIIJfZurjRyKg/sI+070O2e4aVYY401ZECvhGqitTQ1t6IozcFi6URn74iWiJqOFEVpSyyWAoQNcWo5WG+//faS2twteXwWbPhTqQlLURRlcWOxFCA9e/ZstJtckbBfBHsnuMWNcrLFj3bq1KlTxSYsRVGUxY3FUoCwVWstcUN6S4EQcfFfK4qitGYWSwHCDnpFDdahVef+anWL71z3682bN0+FiKIobYbFUoDkiYjKS2jVOYLhhRdeiKZOnVpfOnToEJ122mmN6rloNJSiKG2JxVKAdOzYMfmvetLCZ7fZZptos802qy95hENb2V9bURQFmlWAENm04oorRiuvvHJ9gaxjOK8xFdUyEmvzzTdvFIVFJstS/VpllVXkWCX98p+FxT8WejYaPqwoSnPQrAKEFd/9+/eP+vXrV19Y9Z11bM0115RjtZzxEyrsR2HtueeeJfuFoKm0X/6zoB2/ff+1Paaaj6IozUGTCxDXZIRTeuTIkQ0KzumsY2PGjJFjbnLDpgifHTVqVIN++P0aPXp0o36l4ZvO/GdBO377/mt7zL+ehhIritIUNLkACaUJKaKkRU75+FFX//rXv5J3svEXE/pt3XbbbfI3T1LFWj0HSt5noSiKUg1NLkD8SKaiSt5B04+6sov/Jk6cGL300ktSiLjKg9/WgAED5G/WviFQq+dAUQGiKEpT0Kw+kObANx3xGgGyvZO+JO8qd78tK4xquUpeURSlpdDqR7qsCCVWteMgd81TvqnK4rfl15s1a1aj6LC0thRFURZ3aiZAbBRRc5esCKWZM2c2Wj0e2g8k1JZf76ijjmpUL62tpi6KoiiFYwbPNsVyyy2HtKgv3bt3j9u1axfPnz8/qaG0BYYMGSKf/4ABA4KvLVnHbfHbSSt5r+eXtPPS+uGTdj2ftPb987Lay2qn6Ov4JW+7fsm6fnOdl1bPL2nnpbVTDd98803c5oz1voMZhzcmJ/M8kiOKoihKHmomQKxDOqsYKZacUYfrzE4rm2yyifx1z007z2/fD7F9//33k/8WkacPtvjt++TtV5GErqkoilI0NRMg7iruUsXPMRXai8Mv7EjIX/fctPP89tE0QsVN4Z6nD7Zk5cjK268iCV1TURSlaJrdhOWvovZDY0Mw2BMq656bdl6eVeE+efpgyWo/LXNwJf3KSzn9VxRFqZRmFyCsm3BLWtgrAsOWKVOmiN/CP8+tQwG3ji1fffWVvAeh99PaChE6320fHwvH/Lb8cyjueSFC54RKOf1XFEWplMVmZJkwYYKYZihps/qnn346mjRpUn1JW1G+1FJLJf+lz9bd65W6pkvnzp1lAHfNU9OmTYsmT56cq19ZZq1yNAv/WSiKohTNYiNAevfuHW299dZS0hYH7rjjjtGWW25ZX9IG5DypStzrUfL4LEL9wuHv9qlUv7JAOOXFfxaKoihFs9gIkPnz5yf/NQ7FtYT28Ajh1kur414vL59++qk45F1CEVFp13Sp9DyL/ywURVGKpmYCxI9yChU2hgoRqutGSYXep63QHh5Z9TbaaCPxEfj13OvlxebCcsH85faJQvtZpJ2Xp4SehaIoStE0qwaSZoqqhLQU6r4m4V+TXFiQNbu39UrB4O1T6f7t1URShfqhKIpSNDUTIKF9KihF7JUxZMiQ6Pbbb2/QVloK9azB9LPPPsslyPKkaJ83b16j6+U5rxzy7COi6dwVRWkKaiZAQvtUUPIMqFl7ZZCg8MQTT2zQFmYau5+HW7Jm8kRk5XFOh9r3nfEh53ie88ohzz4iCBB3fxOKoihK0TS5CauINQk9e/ZstL7BdxrbknW9lVZaSQSIG9obItS+LzCWXXbZRsIodF5an7L6UA6+E15RFKVomlyAuOaicqKKXPKYwfLCgI/ZKSvtewjfXJXXp5N2324f1I+hKEpLp2YCJLQnBSVrr4z27dsn76bzxhtvNBqsEQShkrW6m7YYrEPnZhVfEMyZMyfXwJ92327bdq/2o48+ulFdt6Q9L7ctiqIoStHUTICEnLsUNwdUyCGcJ2qJxXm+GSjN11Hpor1KsGG8WX6X0H37fhEbRnzXXXc1quuWavwpiqIo1dDkJqwsFixYILNq/AG2gHuM/9FA3Nk+juPQeXlNQf55WX2wx1zQdrieLyB8k1tIKHDfLva1q+Wknef2yfYrq6+KoijV0uIECIMt6dr5awu4x1588UU55sLx0Hl58c/L6oM95kIYL/iRUn7k2bHHHtvgfYofehsKxU07z+2T7Vc1z0JRFCUPLU6AMIPPW7JWp1OyVpT36NFDzGGhc7NK2kp6n7zmNhfbtqs9pJ0X6ptfFEVRiqbFCZBa4zu+mZ1XOsDmjbrKW8/FnlNJdJiiKEpTUDMB4kcBNVfxo7D8CKg333xTBEjo3KyCMMqKkqJUIgSsoMu6Hr4Ot44tWdFniqIo1dLqNRA/Cst3cFeSNNElK0qKUuTug/710qLW1HGuKEqtaXMmLJ9q/QOVpH1HQ6g1Gt6rKEqtafMCpNZUu6+Hj58aJa0t3Q9EUZRa0+QCxEYFFV3yRkRVQ+i6WSawavb18Etonw+Oh9D9QBRFqTVNLkCqmX2XopJIJyjHnFSJuSot9LaS56DrORRFaUk0qwkrjwM6VEL7geTFv2ZowV4aabP9pqLovUUURVGqoVkFSGhldZ5y6qmnNtoPJC/+NdMEyAsvvBBNnTq1QcmzADAvWWnmQ0ybNq1Rnyjuvh9pRakMm9TS1z7tcYt93z/u49fLateSdl5aP3zSrueT1r5/XlZ7ea9nqfY6PrZ+Vrs+WddvrvPS6vn49WpNswqQSgfkrbbaSgbgSgbhvNfcZpttos0226xBqeR6aSaySqKkSCLp94niOsvTilIZP/zhD6Ntt9022nTTTZMjddjjttj3/eN+8etltWtL2nlp/fBJu55PWvv+eVnt5b2epdrr+MXWz2rXL1nXb67z0ur5xa9Xc+IaQdOhYiRkUiOOzWAerJNVllxySfmbpy23DuS9phmY4y222KJB+frrr5NW6thuu+0a1fGLESAVt++Tdr2s85TGDBkyRD6HAQMGBF8rxaLPu2lpiuf9zTffxM2qgVRKpZpLOfhRTBTfUR+KsPKLec5J7Ybkad8n7XqVBhAoiqJUw2IpQH784x9XZE6ChQsXJv+Vjx+yW+0qdp+s9tLeL7ofiqIoeVgsBcjbb79dcURUNZFMfhqUciK48hDaaMotadfLOo+iKIpSOGLMqgE0HSpF+EDWXXdd8S1U4gN55ZVX4pdeeqns0qFDh2D7ecrEiRMLa6vSojREbfJNiz7vpqUpnvdi6wNZbbXVUqObsvBTfOQt1WyN66czqdT81pb56KOPxN8zY8aMJg9VLIcPPvhAwqYJr/YzIrPJ18cffxxNmTJF/FlsjMb9fPnll0mNMJ988kk0adIkuf9PP/203ueFRvr+++9LW375+9//nqpt0wd8cG49v29+8a/d0rDP/eWXX5bvShru51Pqub/33nvyLF577bWSi36LqEdILlYV/5lPnjxZziva0lEoiTApHJoOFVcjCL2fp6y55pry1/xAk5byayCVUqm2RHH7CdW0VWlZ3Pjuu+/iZ599Nu7Xr1+D+9hoo43ip59+OqlVORdddJG0t+uuuwZfl8OHH34YX3LJJfHSSy/doK9EC/7617+OjQCQerNmzYpPOeWUBnUoaNPnnHNObAY3qefy1FNPxZ07d5Z6yy+/fHzTTTfFCxYskPdmzpwZH3vssY3ao6ywwgqi7VqI1Lv22mvjFVdcMVgvrW9uueqqq2Iz2CUtlkeRz9vCc3j88cclOtHtJ2W33XaLJ0yYEC9cuFDqPfjgg3G3bt0a1TvvvPPizz77TNqj7p///Od4ww03bFCHz2fgwIE1qzd9+vR47733blDHlt69e8fvvvuu1CuHWjxvHzSQJfjHNFw4aRoCs0czgMr/LAi0e3+Xg+l4tOyyy4rt36ZKx5EcmgG414O0fhUBqdWZzbFnB/t0WNx+Qlpf/fN8fv/738tMsRJq9DHXFDOoyWyxY8eO0v+LL75YZsBXXnmlrNNpKdCn119/PfrnP/8Z9enTR47Nnj07GjBgQGSEYHThhRdGJ510Uuq+MPvuu6/MOI1wiA4++ODkaBQ98sgjkRng5PvbpUsX0RZ4ffjhh0u6fjQGIxREmxgzZkxkhENyZkPeeOMN6cO4cePkGRphlbyTDf0688wzo+7du0eXXXaZrD9oKXDfZ599tmgVjz76aNS1a1c5zv/coxmUo3PPPTd64oknIiPIo3XXXTcaOnRotP7668tnRp0777xTPqczzjgj+stf/hJdcMEF0XrrrScZK8xkRdrjmQ0bNiw68sgj5VmMHz++sHrnn3++fM+NcBZNZPTo0VJncUAWMyJAaoFpP1iQWrUgbVbvayC1nP0zU2R2kUVaH7JgBho6L09Z3GEm3qtXL5lBvfjii8nRlosRIPGhhx4ad+rUKR4+fHhsBL8c//bbb+VezGQh3nHHHeOtttpK6vlaFVrBT37yk3ivvfaKn3nmmdgMRHGPHj1iM4mQNsAIrPjkk0+Wz9cM8KKtofFMnTpV3gc0uT/96U/xpptuGu+3337xY489JrNRrjl48GDpZxr4C3nmnPvXv/41OdpyQLO//fbbRSs1E4r40ksvjY2gjHfaaSex9b/22muied1xxx3xOuusE5sBOzmzDiNY5N6MAJfnYoS8rM/if5g2bZo8f/sb2nnnneM//vGPhdabPHlybCYf8YEHHihjB/3ZZ599RNt755135LyWSrP4QGq1T0UtNYu8mGea/FeaFm3TbIGgdVWqeTUH//jHPyRNzsSJE6NBgwaJxmB9aISRz5s3T+z0M2fOFB/GAw88EP3qV7+SGSsa+YQJE0TT6NmzZzR27NjIDOKitaLBmElK/WZhaLXs6b/lllvKa+z/zGTx8+2www6Sjgc7/1tvvSXayoMPPhjtvvvu0a233ho9/vjjMus2A2t0ww03NEqNgbYzcOBAscFfccUV0l5Lg+zUP//5z6WfPE8jGEVLQuMywjnaYIMNxFLBPR9wwAHRyJEjZZywxUxGxCeBNsL9Y63AujFixIioW7dusqob7dcIg8gM8PId/OKLLwqtx+eNhrnFFluIfxQLBr4xNBM0pf33318+ixZLnSwpHpoOldAK7CIK0jt0vabUQNq3by9//XtkFuTin2dL1rNJu8c8ZXFn0qRJ8S677BLvsccesflBJUdbHmPGjBFNoW/fvvGrr76aHC2NERwyQ2bmPGrUqLhPnz7ymW2yySaicW299dbxWmutFZvBUOz4ZuCX2XUazL7xE15//fWiYdx2220ySz/99NPFLm9B60EDOv744xv4X4yAE01mlVVWER+B78NrKfAMjjjiiNgMvPHDDz8sx+gr/qi11147PvHEE0VLszBjRrMzgjaeO3dufN9998nv6uyzz5bjRhjJc+fZXXzxxfX3jSaGhsNnOm7cuELr4f8IMWfOnLh///7xeuutF999993J0ZYFz7PJBUhTlywBsvHGG8ft2rVL3i0PHJBuW2mFH2QWedtqS/DcUO9xpt94442xmVnHZrYtJom//e1vMjiYWVxSu/ngh4SZwszS5XPERISQo++Y2/iL85l6RhuIn3vuufj5558X09Sdd94pDt9VV11VHKscQ0AY7UO+m127dhXhstJKK8VG84hXW2212Gg0Mgjy3eY6tEWo+EMPPSSDFoIG05M19fGsuMbqq68uAxnO5WHDhonw4LoIGvs7oY+33HJL3KVLl/iYY46pd/S2NPjcH330URHWhPUjJDEHYWrjOdJ/M3uPjQYlJj++KwzWfBZ8Vscdd5wEPRjtpH4Q57lsv/328lwYtJm0/O53v4vXWGMNEQKjR4+W6xZdz2gr0gc+R/p/7733St+ZkGLOevPNN6V/LY02IUD8wdt/nx9mqF4e/LbSSp62Q+eFSiX9XFxhgCi1Zgab9ueff57Ubj6mTJki2mOojxQb6cQA50fkUBhg7rnnnvjLL79MWmwMWgJ177rrruRI+Pl07NgxHjRokAycFgYphMhBBx3UoC6DL9dlIAD+4lNA08WfhzBrydBfhAFamntfyyyzjPhCrPaBL4FoJrcOmhyTEldAEq3FoI/vya2L5ku01/fff194PXxUI0aMaPA+Zf311xcf1aeffipttUR4/jWLwtp5552T/5oX7Mqu32XPPfdsYO8luoUoCGzN5fpn/LbS8PsQosi2FEVRag3jVc0EiKIoitJ6QYDokmhFURSlIlSAKIqiKBWhAkRRFEWpCBUgiqIoSkWoAFEURVEqQgWIoiiKUhEswU7+VRRFUZR8IDra/ec/le8RriiKorRNUD7aLVjwb8lGqSiKoih5QGaIAPnuu+8k5TBphRVFURSlFMgKZMbXX8+P/h/2RoQk7TZ4uwAAAABJRU5ErkJggg==", +} \ No newline at end of file diff --git a/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableLine.js b/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableLine.js new file mode 100644 index 00000000..8971633b --- /dev/null +++ b/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableLine.js @@ -0,0 +1,9 @@ +var DrawLableLineParam = { + "x": 2.0, + "y": 2.0, + "height": 2, + "width": 50, + "rotate": 0, + "lineType": 2, + "dashwidth": [1,1], +} \ No newline at end of file diff --git a/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableQrCode.js b/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableQrCode.js new file mode 100644 index 00000000..87ad3c75 --- /dev/null +++ b/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableQrCode.js @@ -0,0 +1,9 @@ +var DrawLableQrCodeParam = { + "x": 20.0, + "y": 10.0, + "height": 10, + "width": 10, + "value": "精臣SDK", + "rotate": 0, + "codeType": 31, +} \ No newline at end of file diff --git a/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableText.js b/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableText.js new file mode 100644 index 00000000..747fe9cc --- /dev/null +++ b/src/main/resources/static/js/JcPrinter/drawParameter/DrawLableText.js @@ -0,0 +1,17 @@ + +var DrawLableTextParam = { + "x": 20.0, + "y": 10.0, + "height": 10, + "width": 50, + "value": "精臣SDK", + "fontFamily": "宋体", + "rotate": 0, + "fontSize": 4.0, + "textAlignHorizonral": 0, + "textAlignVertical": 0, + "letterSpacing": 1.0, + "lineSpacing": 1.0, + "lineMode":0, + "fontStyle": [false, false, false,false], +} \ No newline at end of file diff --git a/src/main/resources/static/js/JcPrinter/drawParameter/InitDrawingBoard.js b/src/main/resources/static/js/JcPrinter/drawParameter/InitDrawingBoard.js new file mode 100644 index 00000000..b9ad6f69 --- /dev/null +++ b/src/main/resources/static/js/JcPrinter/drawParameter/InitDrawingBoard.js @@ -0,0 +1,8 @@ + +var InitDrawingBoardParam={ + "width":70, + "height":50, + "rotate":0, + "path":"ZT001.ttf", + "verticalShift":0, + "HorizontalShift":0}; diff --git a/src/main/resources/static/js/JcPrinter/drawParameter/generateImagePreviewImage.js b/src/main/resources/static/js/JcPrinter/drawParameter/generateImagePreviewImage.js new file mode 100644 index 00000000..e3d0d9c7 --- /dev/null +++ b/src/main/resources/static/js/JcPrinter/drawParameter/generateImagePreviewImage.js @@ -0,0 +1,3 @@ +var generateImagePreviewImageParam = { + "displayScale":8 +} \ No newline at end of file diff --git a/src/main/resources/static/js/JcPrinter/drawParameter/initSdk.js b/src/main/resources/static/js/JcPrinter/drawParameter/initSdk.js new file mode 100644 index 00000000..e267ab45 --- /dev/null +++ b/src/main/resources/static/js/JcPrinter/drawParameter/initSdk.js @@ -0,0 +1,4 @@ +var initSdkParam = { + "fontDir":"", + +} \ No newline at end of file diff --git a/src/main/resources/static/js/JcPrinter/drawParameter/picturePrint.js b/src/main/resources/static/js/JcPrinter/drawParameter/picturePrint.js new file mode 100644 index 00000000..7c66824e --- /dev/null +++ b/src/main/resources/static/js/JcPrinter/drawParameter/picturePrint.js @@ -0,0 +1,3 @@ +var picturePrintParam = { + "printData":"Qk02ewEAAAAAADYEAAAoAAAAkAEAAPAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQACAgIAAwMDAAQEBAAFBQUABgYGAAcHBwAICAgACQkJAAoKCgALCwsADAwMAA0NDQAODg4ADw8PABAQEAAREREAEhISABMTEwAUFBQAFRUVABYWFgAXFxcAGBgYABkZGQAaGhoAGxsbABwcHAAdHR0AHh4eAB8fHwAgICAAISEhACIiIgAjIyMAJCQkACUlJQAmJiYAJycnACgoKAApKSkAKioqACsrKwAsLCwALS0tAC4uLgAvLy8AMDAwADExMQAyMjIAMzMzADQ0NAA1NTUANjY2ADc3NwA4ODgAOTk5ADo6OgA7OzsAPDw8AD09PQA+Pj4APz8/AEBAQABBQUEAQkJCAENDQwBEREQARUVFAEZGRgBHR0cASEhIAElJSQBKSkoAS0tLAExMTABNTU0ATk5OAE9PTwBQUFAAUVFRAFJSUgBTU1MAVFRUAFVVVQBWVlYAV1dXAFhYWABZWVkAWlpaAFtbWwBcXFwAXV1dAF5eXgBfX18AYGBgAGFhYQBiYmIAY2NjAGRkZABlZWUAZmZmAGdnZwBoaGgAaWlpAGpqagBra2sAbGxsAG1tbQBubm4Ab29vAHBwcABxcXEAcnJyAHNzcwB0dHQAdXV1AHZ2dgB3d3cAeHh4AHl5eQB6enoAe3t7AHx8fAB9fX0Afn5+AH9/fwCAgIAAgYGBAIKCggCDg4MAhISEAIWFhQCGhoYAh4eHAIiIiACJiYkAioqKAIuLiwCMjIwAjY2NAI6OjgCPj48AkJCQAJGRkQCSkpIAk5OTAJSUlACVlZUAlpaWAJeXlwCYmJgAmZmZAJqamgCbm5sAnJycAJ2dnQCenp4An5+fAKCgoAChoaEAoqKiAKOjowCkpKQApaWlAKampgCnp6cAqKioAKmpqQCqqqoAq6urAKysrACtra0Arq6uAK+vrwCwsLAAsbGxALKysgCzs7MAtLS0ALW1tQC2trYAt7e3ALi4uAC5ubkAurq6ALu7uwC8vLwAvb29AL6+vgC/v78AwMDAAMHBwQDCwsIAw8PDAMTExADFxcUAxsbGAMfHxwDIyMgAycnJAMrKygDLy8sAzMzMAM3NzQDOzs4Az8/PANDQ0ADR0dEA0tLSANPT0wDU1NQA1dXVANbW1gDX19cA2NjYANnZ2QDa2toA29vbANzc3ADd3d0A3t7eAN/f3wDg4OAA4eHhAOLi4gDj4+MA5OTkAOXl5QDm5uYA5+fnAOjo6ADp6ekA6urqAOvr6wDs7OwA7e3tAO7u7gDv7+8A8PDwAPHx8QDy8vIA8/PzAPT09AD19fUA9vb2APf39wD4+PgA+fn5APr6+gD7+/sA/Pz8AP39/QD+/v4A////AP8A////////////////////AP////8A/////////////////////////////////////////wD/AP///////////wD/////////////////////////////////////////////////////////////AAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8A/////////////////////wD//////////////////////////////////////wD//////////////wD//////////wD///8A/wD/AP////8AAP//////AP///////////////////////////////wAA//8A/////wAA//////////////////////////////////////8A//////////////////8A////////////////////////////////////////////////////////AP///////////////////////////////////////////////////////////////////////////wD/////////////////////////////////////////////////AP//////////////////////////////////////////////////////////////////////////////////////////////AAD//////wD///////////////////////8A//////8A/////////////wD///////////8A/////wD/////////////////////////////AP///////////////////wD///8A//////8A////////AP///////////////////wD//////wD/AP///////////////////////////wD//wD//////wD///////8A//////////////////8A/wD//wD///////////////////////////////////////////////////////8A//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8A/////wD///////////////////////////////////////////////////////////////////////8A/////wD//wD//wD//////////////////wAAAAAA////AP//////AP//////////////AAD//wD//wD//////////////////////////wD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wD//////////////////////////////////////////////////////////////////////////wD/////////////////////////////AP///////wD/////////////////////AP///////////////////////////////////////////wD//wD///////8A//////////////////////////////////////////////////////8A////////////////////AP////////////////////////////////////////8A//////////////////////////////////////////////////////////////////////8A//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8A/wD///////////8A//////////////////////8A//////////8A//////////////////////////8A////////////////////AP///////////////wD///////////////////////////////////8A////AP//////////AP///wD/AAD//////////////////////wD///////////////////8A//////////////////////////8A/////////////////////////////////////////////////////////////////////////////////wD//////////////////////////////////////////////////wD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wD///////////////////////////////8A/////////////wD/////////AP8A////////AP8A////////AP//AP////////////////////////////////////8A/////////wAA////////////////////AP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8A//8A//////////////////////////////////////////8A////////AP///////////////////////////////wD///////////8A//////////////////////////////////////////8A/////////////wAA//8A//8A/////////////wD//////////////wD//////////////////wD//////////wD//////////////////////////////////////////////////wD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wD///////////////////////////////////////////////////////////////////////////////////////8A/////////wD//////////wD/////AP///wD/////////////////////////////////////////////AP//////////////////////AP//////AP//////////////////AP///////wD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8A/////////////wD//////////////////////////////////////////////////////////////////////////////////wD///////////8AAP///////////////////////////wD//wD//////////////////////////////////////////////wD//////////////////wD///////////////////////////////////////8A////////////////////////////////////////AP///////////////////wD/////////////////////////////////AP//////////////////////////////AP///////////////////////////////////////////wD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wD///////////////////////////////////////////////8A//////////////8A/////////////wAA//8A////////////AP////////////////////////////////////8A/////////wD/////////////////////AP////////////////////8A/////////////////////wD///////////////////////////////////////////////////////////////8A//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8A//8A//////////////////////////////////////////////////8A////////////////AP///////wAA////////////////////////////////AP//////////////////AP8A//8A//8A////////////////AP//////////////////AP////////////////////////////////////8A/////////////////////////////////////////////////wD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wD//////////////////////wD///////8A//8A////AP///////////wD//////////////////////wD/AP//////////////////AP//////////////////////////////////////////////AP//////////////////////////////////////////////////AAD//////////wD///////////////////8A////////////////////////AP///////////////wD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAP///////////////////wD///////////////////////////8A/////wD//////////////////wD/AP///////////wD//////wD//wAA/////////////wD///////////8A//////////8A////////////////////////////////////////////////////////////////////////AP///////wD/////////////AP////////////8A/////wD/AP//////////////////////AP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8A////////////////////////////////////////////////AP////////8A////////////////AP////////////////////8A////////////////////////////AP//////////////////////////////////////////////////////////////AP////////////////////8A////////AP//AP//////////AP//////////////////////////AP//////////////////////AP///////wD///8A//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8A//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAP////8A/////////wD///////////////////////8A////////////AP////8A//////////////////////////////////////////////////////////////////////////8A/////////////wD///////8A/////////wD//wD/AP////////////////////////////8A/////wD/AP///////////////////////////////////////////////////////////////wD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AP//////////////////////////////////////AP//////AP///////////////wD/AP//////////////////////////////////AP///////wD///////////8A/wD/////AP//////////////AP///////////////////////////////////wD///////////////////////////8A/wD///////////////////////////////8A/////////////////////////////////wD//wD/////AP//////////////////////////////////////////////////////AP////////////////////////////////////////////////////////////8A/////////////////////////////////////////wD///////////////////////////////////////////////8A////////AP////////8A////////////////AP//////AP//////////AP//////AP///////////////////////////////////////////////////////////////wD/////////////////////AP///////////////////wD///8A////////////////////////////AP////////////////////8A////////AP//////////AP///////////////////////////////////wD//////////////////////////////wD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wD///////8A/////////////////////////////////////////////////////////wD//////////////////////////////wD//////wD//////////wD/////////////////AP8A////AP////////////////////8A/////////////////////wD/AP//////////////////AP////////////////8A/wD//////////////////wD/////////////////////AP///////////////wD//////wD//////////////////////wD/////////////AP////////////////8A//////8A//////////////////////////////////////////////////////////////8A//////////////////////////////////////////////////////////////////////////////////////////8A/////////////wD///8A/////////////wD/////////////////////////////AP///wD/////////////AP///////////////////////wD//////////wD///////8A////////////AP8A////AP///////////wD//////////////////////////////////wD//////////////////////////////////////wD///////////8A////////AP//////////////////////AP////////////8A/wD/////AP///////wD/////////////////////AP////////////////////////////////////////////////8A////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AP//////////////////AP///////////////wD//////////////////////////////wD///////////////8A/////////////////////////////////wD/////////////////////////////////////////////////////////////////////////////AP///////////////wD//////////////////wD//////wD/AP//////////////////////////////////////////AP////////////8A//////////////////////////////8A/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wD///8A//////////////////////////////8A////////////////////////////////////////////////////////////AP////////////8A////AP////////////////////////8A/////wD/////////////AP//////AP//////////////////AP//////////AP////////////////8A//8A////////AP//////////////AP////////////////8A/////////wD/////////////////////////AP//////AP//AP8A//////8A////////////AP8A////////////////////////////////////////////////////AP///wD///8A/////////////////////////////////////////////////////////////////////////////////////wD//////////////////////////////////////////////////////////////////////////////wAA//////////8A//////8A////////////////////////////////AP//////////////////////////////////////////////////////////////AP8A//////////////////////////8A////AP///////////////////////////////wD/////////////////AP//AP//////////////////AAD//////////////////wD/////////////////////////AP//AP//////////////////AP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8A////////////////////////////////////////////////////////AP//////////////AAD/////////AAD//////////////////////////wD//////////////////////wD/////////////////AP////8A/////////////////////////wD//////////wD/AAD//////////////wD//wD///////////////////////////////////////8A/////////////////////////////////////////////wD//////////////////////////////////////////wD/////////////////////////////////////////////////////////AP8A//////////////////////8AAP////////8A/////////////wD//////////////////////wD///////////////////////////////////////////////////////////////////8A//////8A/////////////wD//wD//////////////////////////////////////////////////////////////wD//wAA//////8A/////////////////wD///////8A//////8A////////AP////////////8A////AP8A//////////////////////////////////////////////////////////////////////////8A/////wD///////////////////////////////////////8A/////////////////////wD//////wD//////////////////////////////////////////wAA//////////////8A//////////////////////////////////////////////8A/////wD///////////////////////////////////////////////////////////////////////////8A/////////////wD/AP////8A////////////////////////////AP///////////////////////wD//////////////////////////wD///////////////////////////////////////////////////////////////////////////////////8A//////////8A////AP///////////////////////////////////////wAA/wD//////////wD///////////////////////////////////////8A////////////////////////////////////////////AP///////////////////wD///////////8A////////AP////////8A/////////////////////////wD//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wD//wD/////AP//////////AP//////////////////AP////////////////////////////////////////////////////////////////////////////////8A/////////////////////wD/////////////////////////////AP///////////////////////////////////////////////////////wD/////AP//////////////////////////////AAD//////////wD/AP///wD//////wD/////////////////////////////////////////////AP//////////////////////AP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AP//////////////////////AP////////////////////8A/////////////////////////wD/////////////////////////////////////////////////////AP////////////////////////////////////////////8A////////AAD///8A//////////////////////8A////////////AP///wD//wD//////////////////////////////////////wD/////////////////////////////AP///////wD//wD/////////////////////////////////////////////////////////////////////////////////////////////////////////////////AP//////////AP////////////////////////////////////////////////////////////////////////////////////////////////////////8AAP//////////////////AP//////////////////AP//////////////////////////AP//////////////////////////////////////////AP////8A//////////8A/////////wD//////////////////////////////////wD//////////////wD//////////////////////wD///////////////////////////////////////////////////////////////////////8A/////////////wD/////////////////////////AP////////////8AAP///////////////////////////////////////////////////////////////////wD//////////////////////////////////////////////////wD/AP////////////////////////////////////////////////////////////8A/////wD//wD//////////////////////////////////wD/AP////////////////8A////////////////////////////AP///wD//////////////////////////////////////////////////////////////wD//wD/////////AP////////////////////////////////////////////////////////////8A//////////////////////////////////////////8A////////AP////////////////////////////////////////////////8A//////////////////////8AAP//////AP////////////////8A//////////////////////////////////////8A/////////////////////////////////////wD//////////////////////////////////////////////////wAA////////////AP////////8A//////////8A/////////////////////////////////////wD///////////////////////8A/wD//////////////////wD///////////////////////////////8A////////AP///wD///////8A//////////////////////8A////////////AP//////////////////AP//////////////////////////////////AP///wAA/////////////////////////////////wD//wD/////AAD//////////wD/////////AP////8A//8A////AP////////8AAP////////8A////////////////////////////////////////////AP///////////////////////////////////////////////////////////////////////////////////////////////////////wAA/wD///8A/wD//////////////////////////////////////wD/////////////AP//////////////////AP///////////////wD/////////////AP///////////////////////////////////////wD///////8A//8A/////////////////////////////wD/////AP////8A//8A//////////////////////8A/////////////////////////////////wD///////////////////8A/wD/////////AP//////////////AAD///8AAP//AP////////8A////////AAD/////////AP//////////////////////AP////////////////////////8A////////////////////AP////////////////////////////////////////////////8A/////////////////////////////wD/////////////////AAD//wAA//////////////////8A/////////////////////////////////////////////////////////////////////wD//////////////////////////////////////////////////wD///////8AAP////8A/////////////wD///////////////////8A//////8A/////////wD///////////8A////////////////////////////////////////AP///wD//wD/////AP///wD/////////////////////////////AP///////////////wD///////8AAP///////////////////////////////wD///////////////////////////////////////8A//////////////////////////////////////////////////////////////////////////////////8A//////////8A/////////wD//////////wD///////////////////////////////////////////////8A////////////////////////AP//////////////////AP///////////wD//////////wD///////////////////////////////////////////////////////////////////////////8A//////////////////8A////////////////////////////////////////AP///wD///////////////8A/////////////wD///////8A/wD/////////////////AP//AP///////////////////////////////wD/////////////////////////AP//////////////AP///wD/////////////////////////////AP//////////////////////////////////////AP////////////////////////////////8A/////////////////////////////////////////////////////////////////////////////////////////////////////////wD///////////////////////////////////////////8A/wD/////////////AP////////////////////////////////////////8A//////////////////////////////////////////////////////////////////////////////////////////////////////////8A//////////8A//8A//8A////////////////////////////////////////////////////AP////////////////8A////////AP///////////////////wAAAP////8A//////8A/////////////////////////////////////wD///////////////////8A//8A////AP///////////////wD///////////////////////8A/wD/////////////////////////////////////AAD/////////AP///wD/////////////AP////8A/////////////////////////////////////////wD/////////////////////////////AP8A/////////////////////////////wD/////////////////////////////////////////////////////AP//AP////////////////8A//////////////////////8A//8A//8A////////AAD/////////////////////////////////AP//////////////////////////AP///////////////////////////////////wD///////////////////////8A//////////////////////////////////////////////8A/////wD///////////8A////////AP////////8A/////////////////////////////wD//////////wD//////wD//////////////////////wD/////////////////AP////////////////////////8A//8A/////////////////////////////////////////////////wD/////////////////////////////////////////////////////////AAAA/wD//////////////////////wD//////////////////////wD///////////8AAP////////8A////////////////////AAD///////////////////////////////////////////////////////////////8A//////////////////8A//8A////////////////////AP///wD/////////////AP//AP////////////////////////////////8A/////////////////////////////////////////wD///////////////////////////////8A/////////////wAA////////////////////////////AP//////////////////////////////////////////AAD//////////////////////////wD//////////wD///8A/////////wD///////////////8A//////////////////////////////////////////////////////////////////////8A//////////8A////////////AP///wD/////////////////////////AP///////wD//wD//////////////////wD///////////////////////////8A/////////////wD///////////////////////////8A////////////////AAD//////////////////////wD/AP8A/////////////////////////////////////////wD/////AP///////wD/////////////////////////////////AP////////8A/////////////////wD///////////8A////////AP8A/wD///8A//////////////////////////////////////8A////////AP///////////////////////////////////////////////////wD///8A/////wD//////////////////wAA/wD/////////////////////////AP//////AP8A////AAD///////////////////8A//////////////////8A//////////////////////////////////////////////////8A////////////////AP//////////////////////////////AP////////////8A//////////////////////////////8AAP//AP///////////////////////////////////wD/////////////////////////////////////////AP///////wD//////////////////////////////wD/////////////////////////AP////////8A////////////////////////////////////////AP////////////8A////////////////AP//////////////////////AP//////////////////////////AAD///////8A////////AP//////////AP///wD///////8AAP///wD//////////////////////////wD/////////AP///////wD/AP//////AP///////////wD//////wD///////////////////////////////////////////8A/////////wD/////////////AP//////AP////////////////////8A/////////////////////////wD///8A//8A////////////////////////////////AP//AP//////////////////////AP///////wD//////////////////////////wD//wD///////////////////8A////////AP////////////////////////////8A//////////////////////////////////////////8A////////////AP///////wAA////////////////AP//////AP///wAA////AP//////AP////////////8AAP////////////8A////////AP////8A////AP///////////////////////wAA/wD/////AP////////////////8A/////wD///////////////////////////////////8A////////////////////AP////8A////AP8A//////////////////8A/wD///8A/////////////////////wD/////////AP//AAAA/wD//////////wD//wD/////////////////////AP///////////wD//////////////////////////////////wD//////////////////wD///8A////AP////////////////////////8A//8A//////8A/////wD///8A////////////////////////////////////////AP///////////wD/////////////////////////////AP///wAA/////wD/AP//////AP//////AAD//wD/////////AP//////////AP//AP8A////////AP//////////AP8AAP//////////AP//AP8A/////////////wD///////////////////8A//8A//////////////8A//////////8A////////AP////////8A/////////////////////////////wD//////wD/////////////AP8A////AP//AP///////////////////wD//wD/AP///////////////wD//wD/////AP//////AP///////////wD///8A//8AAP////////////////////8A//8A/////////////////////////wD/////AP///////////////wD/AP////////////////////////////////////////////////////////////8A/////////////////////////////////wD//////wD///8AAP////////8A/////////////wD//////wD///////////////////////////////////////////////////////8A/////wD///8A/////////////wD///8A/////wD//////wD/AP//AP//////////////AP//////////////////////AP///wD/////////////AP////////////////////8A//////8A////////////////AP8A/////////wD/////////////AP///////wD//wD/////////AAD/////AP///wD//////////////////////////wD/////////////AP////////////////////////////////////////8A//8A/wD//////////////////wD//wD/////////AP//////////////////////////////////////AP///////////////////////wD/AP//////////AAD/////AP//AP///wD///8A//////////8A/////wAA/////////////////////////////////////////////////////wAA/////wD/////AP///////////////wD//////////////wD/AP///////wAA//////////////////////8A////////////////AP///////////////////////////////////////////////////////////wD/////////////////AP///////wD//////////////////////wD/////////AAAAAP////////////////////8A/////////////////////////////////////////wD//////////////wD/////////////////////////////AP////8A//////////////8A/////////////////////////////////////////////wD//wD/////////AP///////////wD//wD///////////8A//////8AAP8A//8AAAAAAAD/////////AP///////////////////////////////wD//////wD/AP8A/////wD//////////////////////wAA//////8A/wAA/wAA////////AP///////////////////////////////////wD///8A////////////////////////////////AAAA//////////////////8A/////////////////////////////////////////////////wD///////////////////////////////////////////8A/wD/AP////////////////////////////////8A////////////////////////////////////////////AP8A//////8A/////////////////wD/////////AP//////////////////////////AP//////////////AP//////////////////////AP////////8A//8A/wD///8AAAAA/wAA//8A////AP///////////wD///////////////////////8A////////AP//////////////////////////AP8A////////////////////////////////AP//////////////////////////////////////////////AP//AP////////////////////////////////////////////8A////////////////////////////////AP8A/////////////////////////wD/AP//AP//////////////AP////////////////////////////////////////////////////////////////////////8A////////AP////////////////8A/////////wD//////////////////////wD///8A////////////////AP///////wD/////////AP//AP////8A////////////////////////////AAAA/wAAAAD//////wD/////////////////////AP8A/////wD//wD/////////////////////////////////////////AP//////////AP////////////////////////////////////////8AAP///////////////////////////////////////////wD/////AP//////////////////AP///////////////////////////////////////////////////////////wD/////////AP//////////////////////////////AP//////AP//////////////////AP///////////////////wD/AP///wD///////////////////////////////////8A//////////////8A//////////////8A/////////wD///////////////////////8A//////8A//////////////////////////////8A//8AAAD/AAAA//////////////////////8A//////////////////8A/wD/////AP////////////////////8A/////wAAAP8A/wAA/wAAAP////////////////////////////////////////8A////////////////////////////////////////AP///////////////////////////////////////////wD//wD//////////////wD/AP///////////////////wD///////8A/////////////////wD///////8AAP//////////AP///////////////////wD///////////////////////8A//////////////////8A//////////8A//////////////////////////8AAP////////////8A/////////////////////////////wD//////wD/////AAD/AP//////////AAD//////////wD//////wAAAAAA//////////////////////////////////////8A//////////////8A////////////AAD//////////wAAAAAAAAAAAAAAAAAA//8A//////////////////////////////////////////8A/wD//////////////////////////wD///8A/////////////wD///////////////8A/////wAA//8A/////////wD///////8A////AP///////////////////////////////////////////wD/////AP//AP///////wD//////////////////////wD//////////////////wAA//8A/wD///8A/////////wD/////AAD/////////////////////////////////////AP//AP////////////////////8A/////////wD///////////////////////8A////////AAD/AAD///////////////8AAAAA//8A/////wD///////////////////////////////////8A/////wAA/////wD//////////wD///8AAAAA/wAAAAAAAAAA//8A/wAAAP///////////wD///8A////////AP///////////////////////////////////////wD//////////////////wAA//////////////8A////AP//AP///wAA//////////////////////8A/////////////////////////wD/AAD///////////////8A/////////////////wD///////8A////AAD//////////wD/////////////////////////////////////////AP8A//////////////////8A////AP//////////////////////////////////////////////////////////////////////////////AAAA//////////8A/////////////////////////////////////////////////wD/AP////////8A/////wD///////8A//////////////////8AAAD//////////wAAAAD/AAAAAAAAAAD//////////wD/////////////////////AP///////////wD/AP////////////////8A/////////////wD/AP////////////8A////////////AP///wD/////////////AP///////wD//wD/AP////////////////////8A/wD/AP8A/////////////////wD///8A/////////////////////wAA////////AP//////////AP//////////////////AP//////AP//AP//////////////////AP////////////////////8A/////////////////////////////////////////////////wD//////////////////////wD/////AP////////////////////////////////8A/////wD///////////////////8A/wD//////////////////wD//////wAAAAD///8A/////////wAAAAAAAAAAAAAAAAD/////AP////////////////8A////////////////AP////////////8A/////////////////////////wD/////////////////////////////////////////AP////8A//////////8A/wD//////////////wD//wAA//////8A//////////////8A//////8A/////////wD///////////8A/wD///8A////////////AP///////////////////////////////////wD/////////////////////////////////AP////8A/////////////wD///8A/////////////////////////////////wD//wD/////////////AP//////////////////////////////////////////////AP///////////////////////////////////wD///8A////////AP///////////////////wAAAAAAAAAAAP8AAAD//wD///////////8A//////////////////////////////////8A////////////////////////////////////AP8A//////////////////////8A/////wD//////////////////////////////////wD/AP8AAAD/AP//////AP////////////8A//8A////////////////AP//////////////////AP//////AP8A////////////////////////////////////////////////////////AP///////////wD///8A//////////////////////8AAAAA//8AAAD/AP8AAP//////AP//AP///////////////////////////////wD///////////////////////8A//////////8A/////////////wAA////////AP//////////////////////AAD///////////8A/wD///8AAAAAAAAA/wAAAAAA/////////////////////wD/////////AP///////////////////////////wD/////////////AP///wD//////wD///////8A////////////////AP//AP//////////////AP//////////AP//////////AP///wD/AP//AAD/AP8A/////////wD///////8AAP8A/wD//////wD///////////8A/wD/////////////////////////AAD//wAA//8A//////8A////AP8A////////////AAD/////////////AP////////8AAP////////////8A//8AAP//AP///wAA/wD/AAAA////AP//AAD/AP//////////AP8A//8A/wD//////////////////wD/////AP8A//8A/////wD//////////////////////wD///////////////8A/wD/////////AAAA////////AP///////////wAAAAAAAAAAAP8A/////////wAA//////////////8A//////////////////////8A//////////////////8A////////AP//AP///////wD///////////////////8A//8A//8A//////////////////8A/////////wD///////////8AAP8A////////////////AP////////////////////8A////////////////////AP////////8A//8AAP8A/////////////////////////////wAA//////////////8AAP8A/////wD//////////wD//wD//////////wD///////////////////8A//8A/wAAAAD/////////AP//////////////AP//////////AP//////////////////////AP//////////////AP////////////////8A//////8AAP///////wD//////wAAAP///////wD///////////8AAAD/AAAAAP////////////////////8A//8A/wD/////////AP///////////////////wD//////////wD///8A//////8A/////wD//////////////////////////////////wD///8A////AP//AP////8A////AP//AP////8A//8AAP//AAD///8A/wD///8A////////AP////8A////AP////8A//8A/////wD//////////////////////wD/////////////////////AP///wD///////8A/////wAAAAD///8A////////////////AAD///8A//8A////////////AP///////////wD/AP///wAA//8A/wAAAAD///////8A//////8A/wD/////////////AP//AP///////////wD///8A////////////////AP////////////8A//////////8A//8A//////8A//8AAP//////AP////////////////8AAAAAAP///wD//////////////wD///8A//8A////////////AP///////wD//wD//wD/////////////////AP//////////AAD/////////AP//////////AP8AAP///wD///////////////////////8A//////////////////8AAP//AAD/AP////////8A/////////////////////wD///8A//8A////////////////AP//////////////////AP//////////////////////AP//////////////AP//////////AP//////AP////8A/////wD///////////8A////////////////////////////AP8AAP8A////////////////////////AP8A//////////////////8A//////////8A//////////8A////AP///////wD///////////8A/wD/////////////AAD///////8AAP///wD//////////wAAAAD//////////////wD///8A//////////////////8A/wD//////wD//////////////////////////////////////wD//////////wD/AP//AP8A/////////////////////wD//////////wD//////////////wAA//////8A////AAAA//8A/////wD/AP//AP///wD///////////////8A/wD/////////AP////8A//////////8AAP//////////////AP///////////////////wD///8A//////////////////////8AAP//AP///////////////wD//////////////wAA/wAA//////8A////AP//////////////////////////////////////AAD/AAAAAP//////////////AP//AP////////8A/////wD/AP////8A////////////////////////AAAA//////////////8A////////AAD//wAA/wAA////////AAD/AP////////////8A/////////////////////wD//////wD///////////8A//8A/wAA/////////////////////////wD///8A/////wD/AP//////////AP///////wD/////AP////////8A//////////////8A////AAD/AAD//////wD/////////AP////8AAP//AP//////////AP//////////////////////////////////////////////AP///////////////////////////wD//////wD/////////////////AP////////////////8A////AP////8A//8A////AAD///8A/////////////////////////////////////wAAAAAA/////////wAAAP////////8A//////8A//8A//8A/////wD/////////////////////////AAD/////////////////////////AAAAAAAAAP///////////////////////////wD///////////////8A//////////8A////////////AP8A////////////////////////////AP///wD/////////////////////////////AP//////////////AP//AP//////////////AP///////wAA////////////////AP////////8A/////wD/////////////////////////AP///////////////////////////////////////wD/////////AP//////////AP//AP//AP///wD//////////wD///8A//8A//////8A/wAAAP8A//8A/wD//////wD/////AAAA//8A////////////////AAD/////AAAA/wD/AAD//////////////////////////////////////////wAA//8A////////////AP//AP8A/wAA/////////wD///////////8AAAAA/wAAAP///wD/////////////////AAD//////wD/AP////////////////////////////////////8A//8AAP///////wD///8AAP////////////8A////AP////////////////////8A/////////////////////////////////////////////wD//////wD///////////8A////////////AP8A//////8A//////////8A//8A////////////////////////////AP//AP////8A//////8A//////////8A//////8A//////8A/////////////wD///////8AAP//////////AP//////AP///////////////////////////////////////wD//////wAAAAAAAAAA//8A/wAA////AP////////8A//8A////////AP///////////////////wD///////8A//8AAAD///////////8A/////wD//wAA/wD/AAAA////////AP//////////AP///wD///////////////////8A//8A/////////wD/////AP8AAAAA/////////////wD/AAD/////////////////AAD//////wD///////////////8A/////////////////////////wD/AP8A/wAA//////8AAP////////////////////////////////////////8AAP//AP////////////////////////////8A/////////////wD/AP///////////////////////////wD/AP//////AP////////////////////////8A//////8A//8A//////////8A//////////////////8A////AP////////////8AAP8AAP8AAAAAAP///////////////////////////////wAA/wAA//8A////////AAD/AP////////////////8A/////////////////////wAA/wAAAAAAAP//////AAD//wD///8AAAD//////wD//////////wD//wD//////wAA//////////8A////////AP////////8AAP////8A/////////////////////////////////wD/AP///////wD//wD//wD//////wD/////////////AP8AAP8A////AP//AP////////////////////8A/////wD/////AP8A////////////////////////AP//////AP//////////////AP///wD///8A/////////wD/////AP//////AP///wD//////wD///8A/wD///////////////////8A////////////////////////////////////////AP8A//////8A/////////wAAAAAAAAD//////////wD//////////////wD/AP///////wD/////AP8A//////////////////////8AAP//////////////////AAD/AAD/AAAAAP////////8A/////////wD//wD//wD/AP8AAP///////////////wD/////////////////AP///////////wD///8A////////////////////////////AP////8A/////wD/AP////////8A/wD/////////////////////AP////8A////////AP8A////////AP8A////////AP8AAP//AP///////////wD/////////////////////////////////AP////8A/////////wAA////AAD//wD//////////////////////wD///8A/////////wD/////////////AP///wD///////8A////AP////////8A/////////////////wD/////////////////AAAAAP8A////AP////////////////////////////////////8A//////////////8A//////////8AAP////////////8A////AP8AAAAAAAAAAAD//////////wD/AP///wAA//8A////////////////AP///////wD/////AP//////AP////////////8AAP//AP//////////AP//////////////////////AP//////////////AP//AP////////8A/wD///////////8A////AP///////////wD//////wAA//////8A////////////AP////8A////////////AP8A/////////wAA//////////////////8A////////AP//////////////////////AAD//////wD//////////////wD/////////////////////AP//////////////AP////////8A/wD///8A/////////////wD//wD//////wD///////////////////////////////8A/////////////wD/////////AP//AP///wD/////AP////8A/wAAAAD/AAD///////////8AAAAAAAAAAAAA/////////////wAA////AP//////AAD/////////AAD/////////////AP//AP//////AP//////////////////////AAD/AP8A//8A////AP///////wAA////AP////8A/////////wAA//8A//////////8A////////////AAD//////////wD//////wD/////////////AP////////////////////8A/////wD///8AAP///////////////////////wD//////////////wD//////////wD/////////////AP///wD/////////////////////AAD/////////AP///////////wD/AP8A////AP////////////8A/////////////wD///////8A//////////8AAP//////////AP///////////wD/AP//////AP//////AP///wD//////////////wAAAAAAAP///////wD///////8AAAAAAAAA/wAAAP//AP//AP//////AP8AAP//////AAD//////wAAAP////////////8A////AP///////////////wD/AP////////////////8A////////AP//AP//////////////AP//////////AP///wD//////wD//////wD///////8A/////wD/AP////////////////////8A//8A/wD//////wD/////////////////////AP//AP//////AP///wD/////AP8A/////////////wD///////8A////////AAD///8AAP////////////////////////8A////////////////////////////AP///////wD///////////////8A////////////////////////////////////////////////////////////////////////////AP//////AP//AP//////////AP//AAAAAAAAAP////////8A////AAAAAAAA/wAAAP///////wD//wD///////////////////8A/////wD///////////////////8A/////////wD/////////////////////AP8A//8A////////AP///wD//////////////wD/AP//AAD/AAD///////8AAP////8A////////////AP8A/wD/AP////////////////////8A/////////////////////////////wD/AP//////AP//////////////////AP//AP//////////AP//AP8A////AP////////////8A//////8A//8A/////////////wD/////////////////AP///////////////////wD/AP///////////////////wD/AP//////////////////////AP////////////8A////AP//////////AP8A/wAA////////////////AP//////////AP8AAAAAAAD///8A/////wD/AAAAAAAAAAAAAAD///8A//////////////8A////AP8AAP////8AAAAA//////////////8A/////////////wD/////AP8A/wAA//8A/////////////////wD/AP////////////8A////////AP8A//////8A/wD///////////8A////AP///wAA/////wD///8A////////////AP//////////////////////AP///wAA/wAA//8A/wD///////////8A/////wD//wD///8A/////////////////////////////////////////////////////wD//////////////wD//////////////wD/////AP///wD/////AP////////////////8A/////////wD/AP////8A//////////////////////////////////////////////////////////////////////////8A//8A//8AAP8AAP8AAP////////////8AAAAA/wAAAAD/AP///wD///////8A//8A/////////wD/AP///////wD/AAD///////////////////////////////8A//8A//8AAP8A////AP////8A/////////////wD///////////8A////AP////8A////AP////8A////////////////AP////8A////AP//AP//////////////AAD//////////wD///8A//////////////////8A/wD///////////////8A////////////AP//////////AP////////////////////////////8A//////////////////////////////8A//////8A////////////////////////////AP//AP//////////////////AP////////////////////8AAP///////wD/AP//AP///////////////////////wD//////////////////wAAAAAAAP8AAP8A//8A////AAAAAAD/AAD/////////AP////////////8A//////8AAP///wD/AP////////8A////////////AP//AAD//////wD/////AP///////////wD/////////////////////////AP//AP//AP////8A////////////AP//AP///////////wD///////////8A/wD//////////////wD//////////////////////wD///////////////////8A/wD/////////AP//AP////////////////8A//////8A//////8A//////8A////////////AP///////////////wAA//////////////////8A////AP///////////wD//////////////////////////////wD//////////////////////wD//wD//wD//wAA//////////////8A//////8A////////////////AP///////wAAAAD/AAAAAAAA/wD/AP//AAAAAAAAAAAA////////AP////8AAAAA////////////AAD///////////////////////8A/////////////////////wAAAP//AP8A/////////////wAAAP////////8A////AP//////////AP///////////wD//////////////////////////////////////wD/AP//AAD//wD/AP////////////////8A/wD///////8A////AP//////AP//////AP//////AP////////////////8A/////////wD//////////wD//wD//////wD/////AP//AP//AAD///8AAP////////8A////AP///wAA//////8A//8A/////////////wD///////////////8A/////////////////////////////////wD///////8A////AP//////////////////////AP////////////////8A//////8AAAAAAAAAAP///wAA/wAAAP8A/////wD//////wD///8A/////////wD///////8A//////////////////////////////8A//8A////////AAD//wD//////////////////////wD///8A//8A/////wD///////////////8AAP///////wD///8AAP///wD//wD/////AP///////////////////////////wD///8A////////AP//////////////////////////////////////AP////////////8A////////////////////////////////////////AP////////////////////////8A////////////////////////////AP////8A/////////////////wD///////////8A/////////////////////////wD/////AP8A//////8A/wD/////AP////8A////////AP8A//8A/////wAA////AAD/AAD/AAAAAAD/AP//AAAAAAD//wAA////////////AP//////////AAD/////////AP///////wD///////////////8AAP///wD/////////////AP//////////////AAD///////////8A////AP///wD//wAA/wD//wD/////////////////////AP////8A//////////////////////////8A/////wD///////////////////////////////////////////////////////8AAP//AP////////////////8A////////////////////////AP////////8AAP////8A//////////////8A/////////wD//////////////////////////////wD///8A////////////////AP////8A/////////wAAAAAA/wD//////////////wD//////wD//wD//////////////wAA//8A/wD//////wD/AP//AP//AAD/AAD/AAD///8AAAAAAAD//wD//wD///////////8A/////////wD/////////AP//AP//////AAD///////////////////////////8A////////AP///wD//////////////////////wD//////////wD/////AP///////wD///////////////8AAP//////////////////AP///wD///////////8A////////AP///////////////wD///////////////////8A/wD///////////////////8A/////////////////////////////wD///8A////////////////AP//////AAD/////////AP///////////////////////////wD//////wD/AP//////////AP//////////////AP////////8AAAAAAP////8AAP8AAAAA////////////AP///wD//////wD//////////////////wD/AP///////wAA/wD/////AP8AAAD/AAAAAAD//////wD/////AP////8A//////8A////////AP///wD///////////////////////8A////////////////////////////AP8A/////////wD//////wAA//////8A////////////AP///////////wD/////////////////////////AAD/////AP///////wD//////wD//////wD/AP//AP//////////////////AP///////////wD//////wD/////////////////////////AP///////////////wAA//////8A/wD//////////wD/AP////8A/wD//////////wD///8A//////////////////////8A//////////////8A////////////AP8A////////////AAAA/wAA//////8AAAAA////AP///wAA////////AP///////////////////wD/////////AAD/////AP///wD///8A//8AAP8AAAD/AP//////////////AP//AAD///////8A////AP///wD/AP//AP8A////////////////////AP////8A//8A//////8A/////////////wD/////////////AP///////wD///////////8AAP////8A//////////8A//8A////AAD/////////////AP8AAP////////8AAP////8A/////////////////////////////////wD/AP//////////////////AAD/////AP///wD/AP//////////////////AP8AAP//AP////////////8AAP///wD//wAA////////AP//////AP//////////AP///////////////////////wD///////////////8A//////////////8AAP8AAAAAAAD//wAA/wAA/wD///////8A/////////////////wAA////////AP///wD/AAD//wAA//8AAP//AP////////8AAAAAAAAAAAAA/////wD/AP////////////8A//////////////8A/wD///////8A//////////8A//////////8A////////////////AP8A/wD//////wD/////////AP8A//8A//////8AAP///wAA//8A////////////////////////AP//////////////////AP//////AP////8A////AP8A/////wD/////////AP////8A////////AP////////////8A//////8A//////////////////8A////////AAD//wD///8A/wD/////////////////AP///////wD/AP//AP8A////////AAAAAP////////////8A////AP///////////////////////wD///////8A/////////wAA/wAAAAAA////AAD/AAD/AP//AP//////////////AP///////////wD///////////////8A//8A////////AP///////wD/AAAAAAD/AP8A//8AAP//AP///wAA////AP///////////wAA/////////////wD/////////////AP8A/wD//wAA/////////////////wD///////////////////8A//////8A////////AP////////8A/wD///8A////////////////////////AAD///8AAP//AP////////8A/////////////////////wAA/wD//wAA/wD//////////////////////////////////////////wD//////////////////////wD/////AP///wD/////////////////////////////////////AP//AAAA/////////////////////////////////////wD/////////AP///wD///8A//8AAAAAAAAAAP//AAAA////AAAA/////wD///8A/wD//wD///8A//////8A////AP//////AAD///////////8AAP////8A////AAAA/wAA/wD/AAD/////////AAD///////8A//////////////8A/wD///8A//8A//////////////8A////AP///wAA////////////AP///////////////////////wD///////////////8A/wD//wD//////wD/AP//////////////////////////////////AP///////wD///////8A////////////////////AP8A/wD///////8A//8A////AP///////wD/////AP///wAA/////////wD/AP///////////wD/////AP//AP//////////////////////////AP//////AP//////////////////////AP//////////////////////////////AP8A/wD/////////////AAAA//8AAP///wAAAP///wAA/////wD/////////////////AAD///8A/////////wAA/////wD//////wD/AP///////////wAAAAAA/wAAAP8A//8A//////////////8A//8A//8A////AP8AAP////////8A/////wD///8A//////////8AAP////8A//8A////AAD///8A//////////////////////////////8AAAAA////AP///wAAAP///////////wD/////////AP////////8A////////////AP///////////////////////wD/////////////////////////////AP////////////8A/////////////wD///8A//////////8A/////////wD//wD/AP//////////////////AP//AP///////wAA////////AAD//////////////////////////////////////////wD//wAA//////////8A/////////////wAAAP8AAAD//wD/////AP////////8A//////8A//8A//////////////////8A////AP//AAAAAP8AAP////8AAAAAAP8AAAAA////AP////8A////////AP////////////8A////AP//////////AP8A////////////AP//////////AP//////////AP//////////////////////////////////AP8A/////wD/AP8A//////8AAP////8A////////////AAD/AAAA/////////////////////wD/////////////AP8AAP//////////AP////////////////////////////8A////////AP////8A/wD///8A/////////////wD//////wD//wD/AP//////////////AP///////////wD/AP//AAD//////////////////////wD///////////////8A//8A/wD///////8A////////////AAD///////8AAAAAAP8A/wD/AP////////8A/wD//wD/AP///////////////////wD//wD/AP//////////AAAA/////////wAAAP//AP8AAP8A//8A////////AP8A////////AP//AP//AAD/AP///wD//////wD/////AP///////////////////wAA//////8A/wD//////////////////wD/////AP////////8A/////////wAA//8A//////////////8A//////////////////////8A//////8A/wD/AP8A/////////////wD//////wD//////////wD///8A/wD/////////////AP//////AP//AP////////8A/wD//wD//wD/AP///wD/////////AP////////8A/////wD/////////////////////AAD///8A/////////////////wD/AP//AAD///////////////////8A//////8A/////////////wD///8AAAAAAP//AAD/////////////AAD//wD/////////////AP///////wD///////8A////AAD//wAAAP8A//8A//8AAP8AAAD//wAA//8A//////////////////8A////////////AP////////////////////////////////8AAP8AAP8A////AP8A////////////////AP8AAP//AP//////////AP//////////AP//AP8AAAD//////////////////////wD/////////AP///wD/////////////////////////////AP////////////////////////8A//////8AAAD///////////////8A/wD//////wD//////////////////////wD///8A////////////////AP///////wD///////8AAP8AAP//AAD/////////////////////////////////////AP////////////8A/////wD///////8A////AAAA/wAA/wAAAAAA//8A/////////////wD//////wD/////AP//AP//////AP//AAAAAAAA////AAD/AP//////////AP///wD/AAD/AP//////AP//////////////////AP///wD/////////////////////AP////////////////////8A//8A//8A/////////////////////////////////wAA/wD/////////AP//AP///////wD//////////////////wAA//////////////////8A/////////////////////wD/AP8A/wD///////8A//////////8A////////AP////8A//////////////8A//////////////8A/////////wD/////////////////////////////AP8A//8AAP///wAAAAAAAAAA/////wD///8A//8A//8A//8A/wD//wAA////////AAD//////wD/////AP///////////wD/AAAAAAAA//8A/wAAAAD///////////////8A/wD///////8A/wD//////////////wAAAAD///8A/wD/////////AAD/AP//AP8AAAD//wAA/////////////////////wAA//8A/////////wD///////////8A////AP////////////////////8A/////////////////wD/////////////////////////////AAAA/wD///8A//////////8A/////////wD//////wD//////////////////wD///////////8A/////wD//////////wD//////////////////////////wAA/////////////wD///8A////AP//////////////////AP//////////////////////AP//////////////////AAAAAAAAAAAAAP8A//////////////////////8AAP8A//////////8A//////////////////////8A//8AAAAAAAAAAAAAAAAAAP8A////////AAD//////////wD///////////8A//////8AAP//AAD///////////8AAP8A/wAAAP8A//8A////////////AAD//////////////////////////////////////wD/////AAD/////AP///wD//////////////wD//////////////////////wD/////AP////////////////////8A/wD///8A////AP////////////8AAP//AP8A/wD/AP////////8AAP////8AAP////////////////////////////////////8A/////////////////////////wD/////////AP////////////////////////////8A//8A/////////////////////////////wD//wAA/wAAAAAAAAAAAP///wD///8A/////////////////////////////////////////////////wD/AP8AAP//AP8A/wAA/wAA/wAAAAD/////AP//////////AP///wD//////wD/////////AP///wAAAP////8AAP//////////AAAAAP8AAAD//////////wD//wD/////////////////AP8A//////////////8A/////////////wD//////////////wD//////////////wD/AP8A//////8A////////AP///wAAAAD//////////////////////////////wD/////AP8A////////////AP//////////////////AP///wD//wD///8A/////////////////wD/////////////////////AP///////wD/////////AP//////////AP////8AAP///wD///////////////////////////////8A//8AAAAA/wAAAAD/AAAA/wD/AP////////////8AAP///////wD/////////////////////////AP8A////AP8A////AAAAAAD/AAAAAAAAAP8A//8A/wD/////////////////////////AP////////////8AAP//////AAD/AP///////wAA/wD/AAAA/wD//////////////wD/////AP8A/////wD//wD///////////8A/wD///8A/////wD//////wD//////wD///////8A////////AP8A/wD//wD///8A/wD///////8A//////////8A////////AP////////8AAP8A//8A/wAA////AP////////////8A/////////wD//////////wD///8A////////AP//////////////////AAAA//8A////AP////////////////////////8A//8A//8A////////////////////////AP///////wD/////AP////8AAAD/AAD/AAAAAP8AAAAAAAD/////////AP////////////////////////////8A//////////8A//8AAAAAAP8AAAAAAAAA/wAAAAD//wD/////AP//////AP////////////////8A/wD//////wD/AP//AP////8A//8A/wAA/////wD/AAD/AP////8AAAD/AP//////////AP///////////////////////////wD/AP//AP//////AP8A////AP////8A/////////////////wAAAP//////////AP8AAP///////wD//////////////wAA/wD/AP8A////////AP//////AP////8A////AP//////////AP8A/////wD/////////////AP8A/wD/////////AP////8A////////AP////////////////////8A//8A/////////wD/AP//////AP//////AP8A//8A/wD/AP////8A/////////////////wD/AAD//wAAAAAAAAAAAAAAAAAAAAAA/////wD///8A////////////////////AP////8A////AP////8AAAAA/wAAAP8AAAAAAAAAAAAA/wAAAP///////wD//////////////////wD//////////wD//wD///8AAAD/////////AP////8A/////////wAAAAAAAP8A/////wD/AP////8A//8A////AP//////////////////AAD//wD/////////AP8A/////////////wD//////wAA//////8A////AP//////AP///wD//wD///////8A//8AAP//////////////AP///wAA//8A//////8A/wAA////////AP////8A/wD/AP////////8A//8A/////wD///////8AAAD///////8A////AAAA//////////////8A/////wD///8A//8A////////AP//////AP//////AAD///8AAP///////wD///8AAAD//////wAAAAAA/wAAAAAAAP//////////AAAAAP///wD//////////////wAA/wD///////////////8A////AAAAAP8AAAD/AAAAAP8A/wAA/wAA/////wD//////wAA/wD///8A/wD/////AP8A/////////////wAA//8A////////AAD/////////AP8AAP8AAAD//wD///8A//8A/wD//wAA/////wD///////////////8A/////wD///////8A/////////wAA/wAA//////8A/////wD///8A/wD/AAD//wAA/wD///8A/wD/AP//////////AAAAAP//AP8A/////wD//wAA////////////AP8AAAD//////wD//wD//wD//wD//wD///////8A/wD//////////////wD//wD/AP//////AP//AP///wD/AP////8A////////////AP////8A//8A//////8A/wD//wAAAP//////////AP////////8A////AP8AAP///wAAAAD/AAAAAAD//////////wD/////AAAA/wD///8A////AP///wD//////////wAAAP//////////AAAAAAAAAAD/AAAAAP8AAAAAAAD/AP//AP///////wD/////AP///////wAA////AAD//wD//////wD/AP//AAD//wAA/wAAAAD/AAD/AAD//wD/AAD/AP8A/wD///////////8A/////wAAAP//AAD/////AP//AP8AAAD/////AAD/AP8A////AP//AP8AAP//////AP8A//8A//8A////AP//AP8A/////wD/////AAD/////AP//AP//AP//AAD/AP///wD/AP8AAP8A//////////////8AAP//////AP////////8A/wAA//8AAP//AP8A////AP////////////8A/wD///////8AAAD/AP///////wD/AAD/////////AAAA//////////8A////AP//////////////////////AP///////////wAAAAAAAAAA/wAAAAAAAP////8A/wD/AP8A////AAAAAAAA////AAAA/wAA//8A////AP8AAAD//wD/////////AP8A/wAAAAAAAAAAAAAAAP8AAAAAAAD///////////8A////////AP////8A//8A////AAD//////wD/AP////8AAAAA////AP//////AAD//wAA//8AAP8AAAD/AP8A//8A/wAAAP///////////wD/AAAA//8A//8A////////AP8AAP8A////////AAD//wAAAP////8A/wD//wD//wD//////wD///8A////AP//////AP////////8A////AAD//////////////wD/AP//AP//AP//////AP//AP////8A////AAD/////AP8A////////////////AP//AP8A//////////////8A/wAA//8A/wD/////////////AP///////wD//wD/AP////8A/wAA////AAD///8A//8A////////AP8A//8A//8AAAD/AAAAAAD/AAAAAAD/AAAA//////////8A/////wAAAP8AAP///wD/AP//////AAD//wAA/////////////////wAAAP//AAAA/wD//wAAAAAA/wAA//8A//8A////////AP8AAP//////////AAAAAP//AP8A/////wD/AP////////////8AAAAAAAD/////AAD///8A/wD/AAD///8A//////8AAAD//wAA/wD/AAD/AP///wD/////AAD///////////8A////AP///wAA/////wD///////////8A//8A/wD///8A/wAA//8A//8AAP8AAAD//////wD/////AAD///////8A//8A/wD//////////wD/AP///////////////wAA//////////8A/wD///////8AAP//AP///////wAA////AP//AP//////////AAD//wD/////AP///////wD//////wD//////////wD///////8A//////////8A//////8A//8AAAD/AAAAAAAA/wAAAAD//wD//////////wAA/wAA/wD/AAAAAAD/////AAAAAP//AP///wD///////8A////////////AAD//wAAAAAAAAAA/wAAAAAAAAD/////////////AP////8A/wD//////wD//wD/AP8AAAD/AP8A////AAAAAP8A//8A//8A/wD//////wAAAP////8AAAD/////AP8A/wD//wD/AP8A/wD///8AAP//////////AP8A/wD/AAAA//8AAAAA//8A//8A/wD/////////AP//AP///wD//////////wAA//////8A////AP8A//8AAP///wD/AP8A//////////8A////AP//AAAA/wD//wD///8A////////AP8A////////AP////////////////////////8AAAD///////8A//////8AAP////////////////////8A/wD/AAD/AAD///////8AAAD/AAD//////wAA/wAA//8A/////wD/////AP8AAAAAAAAAAAAA/wAA////AP//////////////AAD//wAA/wAA//8A//8A//////////////8AAP////8A//////////8AAP8AAAD//wAAAAAAAAAAAP///////////wD//////wD/////////////AP//////AAAAAP//////AAAA//8A/wD/////AP//AP///////wD/AP//AAD//wAA/wAA//8A////AP8A/wD//wAA//////////////8A//////8A/wAA////////////AP///wAA/wD//wAA//8AAAAA//8A//8A//////8A/wAA//8A//8AAAD/AP///////////////wD///////////8A//8AAAD//////////////////////////////////////wD/AP///wD/////AP8A//////8A//8A////AP//AP//AAAA////////////////////AP////8A////AP////8A//8A////AP8A////AP8A////AP////////8AAAAAAAD/AAD/AP8A////////AP8A//8A/wAAAAAAAP//AAAAAP//////AAD//wD///8A//8A////////////////////AAD/AP8AAP8AAP8AAAAAAAAA/////wD/////////AAAA////////////AP///wAAAAAA/wAAAAAA////AAD//////////wD///8A//8AAP//////AP8A/////wAAAP8A//////8A/wD//wD///////////8A//8AAP//////AP///wAAAP8A/////wD/AAD/AAD///8AAP////////8AAP8A/////wAA//////8AAP///wAA/////wD/AAD//wD///8AAP///wD///////8AAAAA////////AP///wD///8A//////////8A//8AAP//////////AP8A////AP////8A/////wAA/wAA//8AAP8A////////////AP8A//////8A/////wD/////AP8AAP//AAD//wD//////wAA//////8A/////////wAAAAAA/wAAAAAAAP8AAP//////AP///wD/////////AP8AAAAA/////wD//wD/AP////8AAAD//wD//wD//////////wAAAAAAAP8AAAAA/wAA//8A////////////////////////AP8A/////wD//wD//////wAA/wD//wD/AP////////////8A////AP8A/wD//////wD/AP////////8A//8A//8A/wAAAAD/AP///////////wD//////////wD///8AAAD//////wD//wD//wD///8AAAAA//////////8A//8A/////wD///////8A/////////wD/////////////////AP///wD//////////////////wD///////8AAP8AAP8A/wD/////AP//////AAAA/wAA//8A//8A//8A/wD/AP///////////wD//wD/AAAAAP8A/wD//wAA/wD///8AAP//////////////AP8A//////////////8A//8A//8A/wD///8AAAD//wAAAAAAAAAA/wD//////wD/////AP8A//8A//8AAAAAAAD/AP///wD/////////AP///////////////////////wAA////AAAA/wAA/wD///////8A//8A/////wD///8AAP8A////AP////8AAP8A/////wD/AAAA//8A//8A/////////////wD//wD//////////////wAA////AP///wD/////////AP8A////AAD/AP//AP////8A//////////////8A/////////wAAAP8AAAD/////////AAAA//8A////AAAAAP//////AAAAAP////8A/////////////wD///8A/wD/////////AAD/////////AAD/AAD/////////AAD/////AAAAAP8A/wD/////////AP8A/////////////wD///8A/////wD//wD/////////////////////////////////AAD/AAD//wAA/wD/////////AP//AAD//wD//////wAA/wAAAAAA/wAAAP//AP////////////////8A/////wAA/wD/////AP//AP///wD//////////////////////////wD/AP8AAAAAAAAA/wAAAP////////8A//////8A/////wD//////////wD///8A////AP////////8A/wD//wAAAP//AP8A////AAAA/wD/AAD///////8A/wD/AP//AP////8A/wD///////8A/////wD//wD//////wAA////AP////8AAAAA/wD/AP//////////AP8A//8AAP8A//8A/////wAA//////8AAP//AP8A/wD/////AAD/////////////AP////////////////////////////////8AAP//AP//AP8A//////8A//8A//8A//////8A/wD/AP///wD//wD/////AAD//wAA//////////8A/wD///8A//////8A//////8A//////8A/wD//////wD///////8A//8AAP//AP//////AP8AAAAAAAAAAP//////////////////////////AP8AAP8A////AP////////////8AAP//////////////////////AP8AAAAAAAAAAAAAAAAA////AP//////////////AAAA//8AAP////////8A/wAAAAD/////AP////8A////AP8A/wD/////////AP///wAA/wD/AP8A//////////8A//////8A//8A/wAAAP///wD/AAD//////wD///8A//8A/wD///8A//8A/wAA////AAD///8A////AAAA//8A////////AP//////AP8A/wAAAP//////////AAD///8AAAD///////////////////8A////////AP////////////8A////AAD/////////AP//////AP////////8A//////8AAAAA////////AP////8A////////AP//AP//AP8AAP//////////AP//////AP//AP//AP////////////8A/wAAAP8A/wD//wAAAAAAAAAA//8A////////AP///////////wD/AAAA//8A//8A////AP////8A/////////////////wD//////wD/AAAAAAD/AP8AAAAA//////8AAP///wD/AP///wD///8A//////8AAP//////AP8A/////wAAAP//AP8A/////wD/////////////AAD//wD//wD/////////AP///wAA////AAAA/////////////wD//////wD/AAD/AP//////AP//////AP//AP8AAAD//wD//wD/AP8A////AP//////AP//////AP//AP///wAA/////wD//wD/////AP////////////8A////////////AP8A//////////8A////AAD//////////////wD//wAA////AP///wD/////AP///wD/////AP///wD///////8A/wD/////AP///wD/AP////8AAP////////8A//////8A//////8A/wAA/////////////wD//wAAAAD/AAAAAAD//////////////////wD/////AAD///8A////AP///wD//////////////wD//wD///////////8AAP8AAAAAAAAAAAAAAP///////wD///////////8AAP//////////AP8A////AAD/////AAAA//////8A//8A//8AAAD/AAD//wD//////wAA//8A////AP8A/wD//wD/////AP8AAAAA//////////8A/wD//wD//wD//wD///8A/wD//////wD/AP8A/wAAAP//AP//////////AAAAAAD//////////wD/AP///////////wD///////////////////////8AAP8A////////AP8A/wD///8A//////8A////////AP////8A//////////////8AAAD/////AP8AAP8A//8A////AP///wD//wD/////AP//AP//////////////AAD/////////AAAA//8A////////AP8A//////////8A//////8AAAAAAAAAAP8A////////AP////8A//////8A/wAAAAD/AP////////8A////AP8A//8A/////wAA//////////8A/wAAAAD/AAAAAAAAAP8A//////8A/////wD//wAAAP8A////AP////////8AAAD/AAD//wAA/////////////wD/AP8AAAAA//8A//8A//8A//8A//8A/////wD//wD//wD//////wD/AP//AAD/AAAAAP//AAAAAAD///////////////////8A/wD///8AAAD//wD/AP////////8A//////8A////////////AP///////////////////wD/AP////////8A//8AAP////8A////////////////AP///wD//////////wAA////////////////////////AP///////////////wD/////////AP8A//////8A////////////////AP////8A/////////wD/////AP8A//////////////8A//8AAAAA/wAAAP////////8A//////////8AAAD//wAA/wD///////8A//////8AAP////////8A////////AP////8AAAD//wD/AAD/AAAAAAAA//8A//////////////8A/////wD///8A//8A/////wD//wD//////////wAA/wD///////8A//8A//////////////8A//////8A/////wAA/wD/////////////////////////AP////8A////AP////////8AAP8AAP//AP//////AP//AAD/////////AAAA//8A////AP///wAA/////////wD//wD/AP//AP//AP8A/wD///8A/wD//wD///////8A/////////wD/AP///////wD///////8A//////////8AAAD//////////wD/////AP//////////////AP//AP//AP///wD/AP////8AAP///wD/AAAA////////AP//AP//AAAA/wD///////////////////////8AAAAAAAAA/////////wD//wD/////AP////8A/wD///8A/wD///8AAP////8A//8A/wAA/wD//////////wAAAP8AAP8AAAD/AP//AAAAAP///wD///8A/wD//////////wD/AP///wAAAP////////////////8A//////8A/wD///////////////////8AAP//AAAA/wD//wD/////////AAD/AP////8A//////8A////////////////////////////////////////////AP///////////wD//wAA//8A/////wD//////////////////////////////////wD///8A////AP////8A/////////////wD/AAD///////8A/////////////////wD//wD///////////////8A//////////8A/wD///8A//8A////////////AP8AAP8AAP////////////8AAP////////8A/////wD//wD/////AP////8A/////wAAAAAAAP///wD/AAD/////////AP//////AAD//wD///////8A/////wD/////AP//////AP///////////wAAAAAAAAAAAAD/AAAA/wD///////8AAP//////AP//AP//////////////AP///wAA//8A/wD///////////////8A////AAAA/////////wD//////////wD/AP///////wD//////////////////////////////wD//////////////wD/////AP//////AP//////AAD///8AAAD/////AAD/////AP////8A//////8A/wD//////wD///8A/wD///8AAP8A////AP///wD/AP8A//8A/////////////////////wAAAP////8A//////8A//8AAP////8A////AP///wD/AP//////AP//////////////////////AP8AAP8A/wD///8AAP///wD///8AAP///wD///8A////////////AP//////AAAA/wAAAAAA/////wD//////wD/////////AAAA//////////////8A/wD/////////AP////8A////////////AAAAAAAA/wAAAAAAAAAA////AP///////wAA/wAAAAAAAAD/////AP///////wD///////////////////8AAP//////AAD/AP8A//////8A/wD/AAD///////////8A/wD/////////////////////AP//////AP//////AP//////////////////////AP///////////////wD/AAD///////////////8AAP//AP//AAD/////////AP///wD//wD//wD//////////wD/////AP///////wD/////AP8AAP8A//8A/wD/AP//////AP//////AP////////8A////AP///wD//wD/AP//AP//////////AP//AP////////8A////////////AAD/AP////8A//////8A/wD/////////////////////AAAAAAAAAAD//wD//////////////////wAA/////////wD///8A////AAAA//8AAP////////8A////AP////8A////AAAAAAAA/wAAAP///////wAA/////////wD/AAD/AP8A/////////wD/AAD///8AAAD/////////AP///wD/AAD/AAD//wD/////AAD/////AP///////wD///8A/wD/AP8A/wD//wD//////wD/////AP////8AAP//////AP8A//8A/wAA/////wD//wD/AP//////AP///wD/AAD//wD/////////////AP////////////////8A/wD/////////////////////////////AP//////////AP///wD//////wD/////AP//AP//////////AP////8A/wD/////AP///wD//////wD/AAD/AP///////wD///////////8A//////////8A////////AAD//////wD/////AP//////AP//////AP8AAP//AAAAAP//////AAD//wAA//8AAAAA//8A/wD/AP//////AP8AAAAAAP///wAA////////////////////////AAAAAAD/AAD/AAD///8A/////////wAA/wAAAAAAAAAAAAD//wAA//8AAAD/AP///////wAA//8AAAD///8A/wAA////AAD///8A/wD/AP//////AP///////wD//wAA////AP///wAAAP8A/wD///8A/wD//wAAAAD///////8AAAD///8A//8A////AP///wD//////////wAA////AP///////////////////////wD/////AP8AAP////8AAP////////8A/wD/////////////////AP8AAP//AP8A//////8A/////wD///8AAP///////////////wD/////////////////////AAD/AP8A/wAA////////////////////////////////////////////////////AP//////AAAA/wD/AP///wD/////AP////////8A////AP////8AAAD/////////AP//////AAAAAAAAAP///wD//////////////////////wD/AAAAAAAA/wAAAP///wAA//8AAP//////AAD/AAAA/wD/AAD/AP8A/wD//////wAAAP//////////////AP///////wD/////AAAAAP//////AAD/AP8A/wAAAP//AAD/////AP//AP///wD//////////wD/////AAAA//////////8A/////wD//wD//////wD//////wD///8AAAD/AP8A/wD//wD/AAD///8A/wAA//////////////////8A//////8A/////wD/////////////AAAA//////8A/////wAA////////AAD/AP//////////AAD///8A//8A/wD///8A/wD/////AAD//wD/////////AP8A////AP///////////wAA/////wD/AAAA////////AAD///////////////8AAP////8AAP////////8AAP8AAP//////AP8AAP8AAP8A//8A//////8A/wD/AAAA//8A/wAAAAD//////////wAA/////wAA/wAAAAAA/wAAAAAAAAAA/wAAAAAAAAAA/wAA/wAA/wAAAAAAAAD///8A/wAA/wD//////wD//wD/////////////AAD/AP//////////AAAA/wD//////////////////////////////////////wD/////AP////8A/////wD///////8A/////wAAAP///////wD//////wAA/wAA//8AAP////////8A//8A////////////////////////////////AP////////////////////8A/////////////wD//////wAA/wD///8AAP8A/wD//////wD///8A/////wD/////AP////8A/////////////wD/////AP//////////////AP///////////wAA/////wD/////AP8A////////////////AAD//wD/AAAAAAAAAAD///////8AAAAAAAAAAAD//wAA//8AAAAAAAAAAAD//wAAAP///////wAA//8AAAAAAAAAAAAA/wAAAAAAAAAAAAD/AAAAAAAAAAAAAAD///8AAAD/AAAAAAAAAP////8A/wD///8A/wAAAP//AAAAAP//AP///////wD///////8A/wD//wD///////////8AAAD/AP8A////////AAAAAP//AP8A/wD//wAA//////////////8A////AAAA/////////wD/////AP////8A/////wD///8A//8A/wD/AP8A////AP////8AAAD//////wD/////////////AP///////////////wD//wD/AP///wAA/////wAAAP///wD/////////////AP///wD//wD//wAAAP8A/wAAAP//AP///////wD/////AP////8A//////8AAAD//wAA////AAD/AAAA/wD/AP//////AAD///////////8AAP///wAAAP8AAP///wD/AP//AAAAAP8AAAAA/wAAAAAAAAAAAP8A//8AAAAAAAAA//////////////8AAAAA/wD/AP8A/wAAAP//AAAAAAAAAAAAAAD/AAD//wD/AAAAAAD/AAAAAAAAAAAAAAAAAAD/AP////////8A////AAAA/wD///////////////////8A/////////////wD/////////AP////8AAP//////AAD///////8A//////8A//8A/////wD//wD//////////////wD///////8A////AP///wD/AP////8AAP8A/////////////wD//////wD/////AP8A/////wD/////////////////////////////////////////////////////////////AP8A/////////////wD//wD/AP8A/wD//////wD/////////////////////AP8A/wD//wAA/////wD/AP8A//8A/wD//wAA/wD/////AP8AAAD/AP///wAAAAD//wAA/wAA////////AAAAAAAAAAAA/wAA/wAAAAAAAP8AAAAAAAAA//8A//8A//////8AAAAA/wAAAAAAAAAAAAAA/wAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAA/wD/AAAA/wAAAAAA/wAA/wAA//8A//8A/wD/AAAA////AP//AP////////8AAP///wD///8A/////wAA//////////////8A//8A/wD/////AP///wD///////8A/wD///8A//8A//////8A////AAAAAAD//////////////////wD//wD/AP////8A//////8AAP//AP////////8A////AP//////////////AP//////////////AAD//////////////////////////////////////wAA/////////////wD/////////////////////AP//////////////////////AP//AP8A//////8AAAD///8A/wD//////wD///8A//8AAP8AAAAAAP8A//8A//8A/wAAAP//AP8A/wAAAP///wAAAAAAAAAAAAAA/wD/////////////AAAAAP8AAAAAAAAAAAAAAAAA//8A/wAAAAAAAP8AAP8AAAAAAAAAAAAAAAAAAAD/AAD/AAAAAAD/AP8AAAAAAAAAAAD//////wAAAP8A////AP//AAD///8A/////wD//////////////wD/AP//////AP8A//////8A/////wAA//////////////////////////////////////////8AAP//////////AP///wAA//////8A////////AP8A//8A////AP8A//8A////////////AP////////////////////////8AAP///wD/////AAAAAP////8A/////////////wAA/wD///8A/wAA//8AAAD//wD/////////AP8A//////8A//////8A//8A//8A/wD//wD//wAA//////////8A/wD//wAA/////////wD/AAD///8AAP8A//////////8A/wD/////////AP//AAAAAAAAAP8A/wAAAP8AAAAA//8A////AP8A/wAAAAD/AAAAAAD/AAAAAP8AAAAAAAD/AAAA/wAA//8AAAD/AAAAAAAA/wAA/wAAAAD///8A/wAAAAAAAP8A//8AAAAA////AAD///////////////////////8A////////////////////////AP///wD//wD//////wD///////8A/wAA/wD/AP//////////AP//////////////////////////AP8A/wD/AP///wAAAP//AP////////8AAAD/////AP//////AAD/AP///wD/AP8A/////wD//////////////////wD///8A//////8A/////////////////wAA/////wD/////AP8A//////8A////AP8A/wD/AAD/AAD/////AP///wD/////////////AP////8A////////////AP///wD///8AAAD/AP////8AAAD//wAAAP///////////wAAAP///wAA////AP8AAAAAAP8AAAAA/wAAAAD///////8A/wD//wAAAAAAAP8AAAAAAAAAAAAAAAAA/wAAAAD/AP8AAAAAAAAAAP8A//8AAAAAAAAAAAD///8A//////8AAAAAAAAAAAAAAAAA/////////wAAAP//AAD//////wD//wAAAAAA/////wAA/////wD/AP//AP///////////wD//wD/AP8A/////wD/AAD/////AP///wD/AAD//wD//wD///8AAP//AP///////wAA////////AP8A/////////wD//wD/////////AP//AP8A////////AAD//wAA//////8A//////////8A////AP8A/wAAAP///////////////////wD//////wD/AP8A//8A//8AAAD//wD/AAD//wD///////8A//8A/wAA/wD//wD///8A/////wD/AP//////////AP////8A/////////////////wD/////AAAAAAD//////////////wD/AP//AP//AAAA/wAAAP8A/wAAAAD/AP8A/////wAA//8A////AAAAAAAAAAAAAAAAAP8AAAAA//8A////////////AP///wAA/wAA/wD//wD/AAAAAAD/AP//////AP8A//8AAAD/AP8AAAD//wAA////////////AP////8A////AAAA/wD///8A//8A////AP8A/wD/AP////8AAAD/////AP8AAP8A//////////8A//////8AAP8A//////8A////////AAAAAAD///////////8AAP8AAP8A/////////////////////wD//wAA/wD//////wD//////////wD/////////////////////////////AP//////////AP///wD/////////AP///wAA/wAA//8A/////////wD//////wD/AAAA/wD/AP////8AAAD/////AP///wAA////AP///wD///8AAP8A/////wD///8AAP8AAAD//wAA/wAAAP//AP///////wAA//8A//////8AAP//AP8AAAAAAAAA//8AAP//////////AAD/AAAAAAAAAAAAAAD/AAAA/wD//wD/////AP///wD//wD//////////wAAAAAAAAD/AAD///8A//8A/wD///////8A/wD/AAAA/wD/AP8A/wAAAP///wAA/////wD/AAD//wD//////wAA////AAD/AP///////////wD///////////8A/wD/AP////////8A/wAA/wD//////wD/////////AP///wD//////wAA/wD/AP8A/////////wD///8A/wD//wD/AP///wD/AP////8A////AP////////8A////////AAD/AP8A/wAA////AP//AAD/AP///////wD//////wD/AAAA////////AAD//wD///////////////////8A/////wD//wD/AP///////wAA////////////AP///wD//wAA/////////wD//wD///////8AAAAA/wAA/////wD//wAA////AP8A//8A/wAA////////AAAAAAAAAAAA/wD/AP//AAD///8A////AAD/AAAAAAAAAAAAAP///////////wD//////wAA//8A//8A/////wD/AAD/AAD///8A/wD//////////////wAAAAAA/wD/AAD///////8A/wD//wD//wD///////8A/wD//////wAAAP////8AAP//AP//AP///wD///8A//////////////////////////////////////////////////8A/wAA/wD/AP////8A/////wAA////////AP//AAD///8AAAD///8A////AP//////////AP////////8A/////////////////wAA//8AAP//AP//////AP8A//8AAP8A//8A/////wAAAAAAAP8A////////////////AP///wD///8A//////////////////////////8AAAD//////wD//////wD//////wD//////wAA/wD/AAAA//8A/wAAAAD/////////AP///wAA////AAAAAAAAAP8AAAD/////////////////AP8AAAD/AAAAAP////8AAP//////AP///////////////////wD/////////AP8A/////////wD///8A////AAD/AAAAAAAA/////wD/AP8AAP///wD//////////////wD/AP//////AP///wAA//////8A//////////8A/////////wD/AP///////wAA/wD//////wAA//8A/wD///////8AAP////////8AAP//AP//////////AAD///8AAP8A/wD/AP////////8AAP//AAD/AAD/////////AP8AAP//////////AAD///////////8A/////wD/////////////AAD/AAD/AP////8A//8A//8A/wAAAP//AP8A//8A/wD//wD/AAD///8A/wAA/wAA////////////////AP///wAA/wD//////////wD/////AAAAAP//AP////////8AAAAAAAD/////////AP//AP8AAP8AAAAAAAD/AAD/AP//////////AAD//wAAAAD/AAD/AP////8A//////8A//////////////////8AAP////////////8A//////8A//8A////AAD//wD//wAAAAAAAAD//////wD//wAAAAD///8A/wD/////////////////AP8A//8A////////AP//AP///wAA//8A////AP///////wD/AAD///8A/wD//wD/////AP////8A////AP//////AP//////AP///////wAA/wAAAAAA/////wD//////wD/AP////////8AAP///wD//////wD//wD/////AP//////////////////AP8A//8A//8A//8A//8A////////////AP8AAP////8AAP//AAD/////////AP///////////wAAAP////8A/////wD//wAA//////8A/wD/AAD/////////AAAAAAAAAP8AAAAAAP//AAD/AP///wAA/wAA/////////wAA/wD///8A//8AAAD/AAAAAAD///8A////AP8A////AAD/AAD/AP///wAA////AAD/AP//AP//AP////////8A/wAA//8A////AAD//////wD//wD//wAAAP//AP////8A/wAAAAAA////AAD/////////AP///wD/AP///////////wD///////8AAP////////////////////8AAP///////wD/AP8A/////////wD/AAD/AP///wD//////////wAA////AP///wAA//////8AAP8A/wD/////AP///wD/////////AAD/////AP//AP//////////////////AAD//wD/AP//////////////AAAA/////wD/////////////AP8A//8A/////////wD/AP//AP//////////AP///////////wAA////////////AP///////wD///////8AAP////8A////////AAD/AAAAAAAA/wD/AAD/AP///wD///8A/////wAA/////wD///8AAAD/////////AP///wAAAAD/////AP///wAA//////8A////////AP////8A/wD/////////AP//////////////AP8AAP///wD/////AP////8A/////////////wAAAAD//wD//wD/////AP////8A/wD/AP//AP//////AP//AAD/////////////AP//////////////////////////AP////8A////AP////8A////////AP//////////AAD///8A//8A/wAA/wAA/wD//////wAA/wD/////AP////8AAAD///8AAP//////AP////////8AAP//AP///wD/AAAA//////////////8AAAD/////////AP//////AAD/AAAA//8A////AP////////8A////////AP///////////////wD//wAAAAD//wD/AP//AP8A/wD/AP///////wAA////AP///wD/AAD/AAAA//8A/wD/AP////8AAP///wAAAAD///////8AAAD/AP//AAAA//8A//////8A/wAA/wD/////////////AP///wAA/wAA/////wD/AAAAAP///wD//////wD/////AP8A/wD/AP///wD/AP8A/////wD/AP8A/wAA/wAAAAAAAP//////AP//////////AP///////////////////////////////wAA/wAAAAD//////wD//////wD/AP//AP///wAA/wAAAAD//wD///////////8AAP///wD//wD///////8A/wD//wD//wAA/wAAAAD/////AP///wAAAP//////////AP///////////////////////wD///8A//8A//////8A//////8A/////////////////wD///////////8A//8A/wD//////wD//wD/AP//////AP//AP8AAP//////AP///wD/////AP//////////AP//////////AAD//wD///8A/wAAAAAAAP///wD//////////wD///8AAAAAAP8A//8AAP8A//////8AAP8A////AP////8A/////wD///8A////AP///wAAAAAAAAD/AP///wAAAAAA/////wD//////wD//////////wD//wAAAAD//wD/AAD/AP8A//8A/wD//wAA/wAAAP//////////AP8A/wD/AP///wD//wD///////////////8A//8A/////wAA////AP//AAD//////wD//wD/AAAA/wAA/wD//////////wD/////AP////8A//8AAP//////AP///wAA/wAA//8AAP//////////AAD//wD/AP///wD///////////////////8A/wAA////////////AP///wD/AP//AP8AAAD/////AP///////////////wAA//8A//////8A/////wD/AAD//wD/////////AAAA//8A/wD/AP//AP///wD/////AAAA/wD/AP8A/wD//wD//wD/AP//////AAAAAAAAAAAAAP8AAAD//wAAAAD//////wD/AAD///8AAAAA/wD//wD//wD///8A////AAAAAP//AP8A//8AAP///wAA/////wAAAP8AAAD//wAAAP8AAAD/////AP//////////////AP8AAP////8A/wD///8AAAD/AP///////////wD/AAD///////////8A/////wD//////wD///8AAAD///8A/wAAAP////8A/wAAAP///wAA/wD///8A/////////////////////wD/////////AAD/////////////////////AAD///8A////AAD///8A//8A//8A////AP8A////AP//AP////////////////////////////8A//////////8A/wD/AP//AAD/AP8AAP//AAAA//////////8A//////////8A////////////AP///////////wAA////AAD/////////AAD///8A//8A/////////////wD//wD/////AP//AP8AAAAAAAD/AAAAAP8A//8AAAD//////wAAAP////8AAAD/////AAD///////////8AAAD//wD/AP8A////AP////8AAAAA/////wAAAAAA/wAA//8AAAD//wAAAAAAAAD///////////////8A////AP8AAP///wAA//////8A//////8AAAAAAAAAAP///wD//////////wAA//8AAP8A//////8AAP8A/////wD/////////AP//AP////////8AAAD///////////8A////AAAA////AAAA//8A//////8AAP///////wD//////////wD//////////////wD/////////AAD/AAD///////////////8A//////////8A/wAA////AP//////AP8A//8A/////////wAA////////AP8A/wD/////////AAD/////////AP8A/////wAA/////wD//////wD/AP//AAD//wAA//8AAP//////////AP//////AAD/AP//AAAAAAAA/wAAAAAAAAAAAAD/////AP8AAP////8AAP8AAAAA////////////AP////8A/wD//wAAAP///wD/////////AAAAAAD///8AAAAAAP//AAD/AAD///8A/wAAAP8A////AP//////////////AP//AP///wAA/wD///8A////AP//////AAAA/wAAAP///wD//wD/////AAD//////////wD///////////8A/wD///8A/////wAAAAD/AP///////////wD//wD/AAAAAP///////wD/////////AP///////////wD/////////////////////////////AP8A//8A/wD/////AP////////8A//////////8AAP8A/////////wD///8AAAD//wAAAAD/AP//////AP//////////////AP8A//8A/wD/AAD//////wD///////8AAP8A//8AAP//////AP////////8A/////wAA/wD///8A/////wAA//////8A////AAAAAP//AAAAAAAAAAAAAAD/////AAAA/wD//wD/AAAAAAD//////wD/AP8A////////AP//AAAA////////AP///wAAAAD//wD/AAAAAP8A////AP////8AAAAA/wAA//////////8A/////////wD/AAAA/////////wD//wD//wAA//////8AAAAAAAD/AAAA/////wD//////////wAAAP8AAP8AAP8A//8AAAD//wD//////////wD//wAA/wAA////AP///wD//wD///8A//8A////AP8A////AP//////////////////////////////AP8AAAD/AP///wD/////AAD//////wD/AP///////wD//////wD/AP//////AP//////AAD///8A/wAA////AP8A////AP//////AAAAAAD/AP///wD//wD///////8AAP///wAA/wD/AP///wD///8A/////wD/////AP///wD///////8A//8A////////AP////8A/wD///8AAAAAAP8AAAAA//8A//8A/wAAAAAA/wD/AAAAAAAA/////wD///////8A/////////wD//////wD///8A//8A//8AAAAAAP///////wD/AP////8A////AAAAAAAAAP////8A////AAAA////AP//////////AAD///////8A////AP//////AAD/AAD/AP8AAAAA//8AAP8A/////wAAAP///wD///8A////////////////AP////////////8AAP///wAA//8A//8AAAD/AP///wD///////////8A/wD//////wD/////////////AAD/////AAD//////wAAAP///////////////////////wD/////////////////////AP8A//8A/////////////////////////////wD//////wAA//8AAP//////////////////AP8A/wD//////wD//wD/////AAAAAP8AAP///wAAAP////8A////AP8A////////////////AAAAAAD//wAA////AAAAAP//AP//AAAAAP//AAAAAAD///8A/wD/AAD///////8A//8A/////////wD//wAAAP8A//8A//////////8A//8A//8A/wAA//8A/wAA////AP8A//////////8AAAD///8A/////wD/AP///wAA////////////////AAAAAAD/////AP8AAAAAAP////////8A/////wD//wD///8A/wD///8A/wD/////////AAAA////////////AAAAAP8A/////////////wD/AAAA////////AP///wD//wD//wD/AP//AP///////wD///////8A/////////wAA////////AP////////////////////////////8A/////////////////wAA//////////////8A////////AAD/////AAD/////////////AP///////////wD/AAD/AAAA/wAA//////8AAP///////////////wAA////////AP8A//8AAP8AAAAAAAD/AAD/AAAAAP8A//8A//8A/wAAAAD//wD/AP8A/wD/AP////////////////8A//////8AAAAA////////AP//////////AP///////wAA/wD/////AAAAAP////8A//8A/////wAA//////////8A////////AP////////8A/////wAAAP8A//8A////AP8AAAD/////AP///wAA/wAAAP8A////////////AP//AP////////////////8AAP8A/////wD//wAAAAD//////wAA/////wD//////wAAAP///////////wD/////////////AAD//////////////////wD///////////////////////8A//////////8A/wD///8A/wD/////AP8A////AP////////8A//////8A////////////////////////AP//AP//AP///////wD/AP////8A//8A/wD/////////AP//////////////////AP//AAAAAAD/AAAA/wAAAP8A/wAAAAD/AP///wD//wAA/wD/////AP////8A////////AAD///8A//8A//8AAAD/AP//////////////////////////////////////AAAAAAAAAAD/AP///wD/AP///////wD///////8AAP///wD/////////AAAAAAAA/wD/AAD///8A////AP////////8A/wD//wAA//////////8AAP////8AAP///////wAA//////8A//8A////AP///wD/////////AP//AP///wD///8A/////wD///8A/////////////wD/AP///////wD//wD//wD//////////wD//wD///////////////8A////////////AP//AAAA//8A//////8A//////8A//////////////////8A/////wAA//////////8A////AP//AP///////////////////////wD/AAD/////AP//////////////AP////////8AAAAAAP8AAAAA/wD//wD//wAAAP8A/wAAAAAA/wD//wAAAAD//wAA////////////AP////8A/////wD/AP//AP////////8A/////////////////////////wAAAP8AAAD/AP////8A//8A/wD//wD//wD///////////8AAP8AAAAAAP////8A//8AAP8AAAD/AP///////wD//wAA/wD/AP8A////AP////8A////AP////////8A//////8A/wD///8AAP//AP///wD///////8A//8A/wD/////////////AP///wD///////8A////AP//////AAD//wD/////////////AP//////AP////////////////////8AAP///////////////////wD/AP//////////AP//AAD///8AAP////////////////////8A//////8A/////wD//////////wD///////////////////////8AAP//////////AAD/AAD/////AAAAAP8A/wAAAAAAAAAAAAD/AAAA/wAA/wAA/////wAA/////wD/////////////AP//////////////AP//////AP////8A/wD//////wAA////AP////////////8AAAD///////8AAAD/////////////////AP//AP///////wAAAAD/AP///wD//wAAAAAAAAD/AP//////AP///wAAAP//AAAA////AP//////////////////AAD/////////AP//////AAAA/////wD/AP//////////AP///wD/AP8AAAD//////wD//wAAAP8A//8A/wD///8A/wAA//8AAAAA/wD///8A/////////////wD//wD//////wAA//////8AAP//////AP//////////AP//////AP8A//8A//////8A//////8AAP8AAP///wD///8A/wD/////AAD/AP//AP///wD/AAAA////////AP///////////////////////wD//////wD/////AAAA/wD/AAAAAAAA//8AAAAA//8A/wD/AP//////AAAA//8A/////wD//////////////////wD/AP//////AP///////////////////////////wD/////AP//AP8A//8A//8AAP//AP8AAP///wD/////////////AP///wD/AAD//wD/AAD//wD/AAD/AAAAAAAA/////wD/////AAAA////AP8AAP//AP///////////////wAAAP///wD//wD///8A//////////8A/////wD/////AP///////wD///////8A////////AP///wAAAAAA/wD/AP//AP///wD/////////////AP///////////////////wAA//////////8A/wD/////AAD//wD//wD/////AP8AAAD/////AP//AP////8A/wD/////////AP////8A/wD///8AAP////8A////AP///wD/////AAD///8A/wAA/////wD/////////AP//AP////8A//////8AAAAAAP8AAP8AAP////8AAAD/AAD///8A//8A/wD/AP////////8A/wAA////////////AP///wAA/wD/AAD//wD//wD//////wAA/////////////////////////////////wD/////AAD/////AP///////////wD///////8A////AAD/////AP///wAA/wD///////8AAP8A/wD//////////////////////wAA//8AAP//AP//AP///wD//wD//wD///////8A/////wD/////AAD//wAA/////wAA////AP//AAD///8AAP//AP8A//8A/////////wD//////////wD//////////wD//wD//////////////////////////wAA////////AP8A/////wD///8A////AP8A////////AP8A////AAD///8A//8AAP8A/////wD///////////8A//////////8A////AP8A//////8AAP////////8AAP//AP////8AAAAA/wAAAAD/AAD///8A/wAA/wD///8AAP///wD//////wAA////AAD/////AP///wD/AP8A/wD/AP///wAA//8AAP////////////8A//8A////AP///wD/AAD/AP8A/wD/AAD/AP//AAAA////AP///wAA/wD/AP///////wD/AAD///8AAAD//////////wAAAAD/AP////8A/////wD/AP//AAAAAAD//wD/AP8A/wAA//8A/////wD//wD/AAD//wD/////AP//AAD/AP//AP////8AAP8A/wAA/wAA//////8A/wD/////AP//AP8AAP//////AP///wD///////////////////////////////////////8A/////wD///8A/wD/AP////8AAP////8AAP8A/wD/AP//////AAD/AP///////////wAA/////////wAA/wAAAP8AAAAA//8AAP8AAP///wD///8A/wD//wD/AP///wAAAAD//wD///8A////AP//////////AAAA/wAAAAAA////////AAAAAP//////////AAD//wAA/////////wAA/////wD/AP//////AAD/AP//AP//AAD///8AAP///////wAA//8A////////AAAA/////////////////wAAAAAAAAD//wD/AP//AAD/AAAA/wD/AP////8A//8AAAD//wAA/////wAAAP8AAP//////AAAA/wD/AP//////AAD/AP///////////////////////wD//////wD/////AP////8A/////wAA/wD///////8A////AP////////8A//////8A//8AAAAAAP////8A//////////8A/////wD///8AAP//AP////8A//8A//////8A/wD/AAAAAP///////wD/AP///////wD///8AAP////////////8A////AAAAAP//AAD//////////////wAAAP///wAAAP///wD///8AAAD//////wAA//////8AAP8A/////wAAAP////8A/////////wD//wD/AP8A//8AAAD//wD//////wD//wAA////AP////8A/wD/////AAD//wD//////wAAAP8A////AP////////////////8A/////////////////////wD/AP//////AP8AAAAAAAAA//8AAP///////wD/////AP//AP8A/wAA////////////AP//AP8A/wD/AP///////wD/////////////AP8A/wAA////////AAAA////////////AP///wD///////////////8A////AP8A/wD//wAA//8A/wD///8AAP///////wAA//8AAP///wD/AP///////////////////////wAA////////AP///////////////wD/AP8A//8A/wD/AP//////AP///wAA//////8A/wD/////AAD/////////AP////////8A////AP///////wD//wD///////8A/////wD/AP8A/////wAA////////AP///////wD/AP////8AAP///wD/AP//AP8A//8AAP8A//8A////AAD/AAD/////////////AP//////AP///wD///////////8A/wD/AP8A/wD/AAD//////////////////////wAAAAD//wAAAAD/////AAD/AAD/AAD///8AAAD//wAA/wD/AAAAAP///wD/AAAAAP8AAP8AAAD/AP///wAAAAD///////////////8AAP////8A////////////////AP///wD//////////wD///8A/wAA//8AAP////////////8AAAAA////////AP//AP8A////AP////8A////AP//AP///////wD/AP///////////wD/AP//AP8A//8A////AAD//wD/AP///////////wD///8A/wD//////wD//wAA//8AAP8AAP///wD/////AAD/AP///wD//wD///8AAP//////////AP//AP////8AAP///wAAAP///wAAAP///wAAAAD//wD/////////AP//AP///wD/////AP////////8AAAD/AAAAAAAAAP//AP8A/////wD/////AP///////////////wD//////////wAA//8AAAD///8A/////////wAAAAD///////////////8AAP////8A//8AAAAAAAAAAAD/AAD//wAA/wAA////////////AAD//wAA/////////////wD/AP//////////AP////8A/wD///////8A/////wAA/////wD//wD//wD//wD/AAD/////AP///////wD/////////////////AP//AAD/AP////////8A////AP///////////wD///////8A//////////////////////8A////AP8AAP///wD///8A////////////AP//AP///wAA/wD//wD//wD///////////8A//8A//////8A/wD/////AP///wAA//8AAAAA/wAA////////////////AP////8AAP////8A////AAD///////8A/wD///8A/////////////wAA/////wAA//8A/wD//wD/////AP////8A/////wD//wD/AAAAAP///wD/////////AP///////////wAA/////////wAAAAAAAP///wD/////AP8AAP////8A////AP8AAAAAAP///wD/////////AP////////////////8AAP////////8A////AAD/////AP8A/wD//wAAAAD/////////////////AP8A////////////AP//////AAD//////wD/////////AP8A////AP8A//8AAAD/AP8A/wAAAP///wD//wD/////AP//AP8A////AP///////////wD/////AP//AP///////wD/AP//AP//////////AP////8A//////8A/////////////wD//wD//////////wD///////8A////AP///wAA////AP8A/////wD//////wD/////AP//////////////AP///wD//wD//wD///8A//////////8A////AAD///8AAP///wAAAP///////wD/AP////8A////AP//////AP////8A//////////////8AAAAAAAD//////////////////wAAAAAAAAAA/wD///////////8AAP///////wAAAAD/AAAA////////////AP8AAP////8A/wD//wD//wD/////////////////////AP//AAD//wAA////////////AAD/AP////8A//8A/////////////wD/////////AAD/AAAA//////8A/////////wD///////8A////AP8A////AP8A//8A//////8A//////////8AAP8A/////wD/////AP8A/////wD/AP//////////////AAAA/wD/AP8A/wD//wD/AP8A////AP///////wD/AP////8A/////////////wD/AP////8A////AP8A////AP////////////8AAAAA//8A////////////AAAA/////wD//////wAA//8A//////////8AAP//AP//AAD//////////wD///8A//////////////8A//////////////8A/wD/AAAAAAAAAP////////////8A//8AAAAAAAAAAAD///////8A//////////8A//8AAP8AAAAAAP///////wD/AP///////////////////wD/AP8A//8A//////////8A////AAAA/////wD//////wD/AP8A////AP///////wD//////////////wD/AP////////////8A//8A/////////wD/AAAA//8AAAD///8AAP8A/wD//wD/////AAD/AP//AP8A/wD///////////////////////8A//////////////////////////8AAP//AP8A/////wD///////8A/////wD///////8A//////8A////////AP////8AAP8AAAD//////wD///////////////8AAP//AP//AP//AP8AAP8AAP8AAP8AAP///wD/AP8A/wD/AP//AAD/////AAD/AAAA/wD//////////////////////////////wD/////AP//AAD//wD/AP//AAAAAAD/////////////////AAAAAP8AAAD//wAA/wD/////AAAAAP//AP8AAAAAAAAAAAD/////AP//AP//AP8A/wD/AP////8A/wAA/wAAAP////8A/////////////////wAA//8A////////////////AP8A/////wD//wAA//////////8AAP//////////////AP8A//////8A////AP8AAAD/AP//AP8A/wD//////wD/AP//////////////////////////////AP///////////wD/AAD//////wAA//8A/////////wAA/wAA/wD/////////AAAA/wD//////wD///8A//8A//8A//8AAP///wD///8A/////wD/AAD//wAA////AAD//wD/AP8A//8A/////////////////wAA////////AAD/AP8A/wD/AAD/AP////8A//8AAP//////////////////////////AP8A//8A////////AAD//////////wAAAAD/AAAA//////////////////8AAAAAAAAA/wD///////8A////AP8A////AAAAAAAA/wD/////AP//////AP8A/////wD/////////AP//AAD/AP////8A/////////wD///8AAP//////////AP///wD//wD//////////////////////////////wAA//////////////8A/wD///8A/wD/AAD//wD/AAD///8AAP//AAD/AAD/////////////AP//////////////////AP////////////8A//8A/////wD/AP////////8A////AAAA//8A/wD/AP//AAAA//8AAP8A//////////8A/////wAA/wD//wAA////AAAAAP//AP///////wD//wD///8A/wAA/wD//wD//wAA//8A////AP8A////////AP//AP///////////wAAAP//////AP//////////////AP//AAD/AP///////wD///////8A//8A//8AAP///wAAAAAAAP//////////////////AAAAAP8A////////////////////AP//AAAAAAAA/wAAAP//////AP///wD///////////////8AAP///wD/AP//////////////AP///wD/////AP///wAA////////////AP//////AP//AP///////wD///////8A////AP//AP//////////////AP////8A/////wD//wD/AAD/AAAA//////////////////////////////8A////////////////AP////////8AAP//AP//////////AP//AAD//wD/AAD///////8AAP//AP///wD//wD//wD//wAA/wD/AAD//wD///////////////8AAP///wD//////wAA/////wD///8A////AAD/////AP///wD/AAD/AP///wD//////wD/////////AP//AAD/////AAAA/wD/AAD//wD/////////////////////////////AP///wAAAP8AAP////8A////AP//////////AP//AP///////wD///8A//////8AAAAAAAD/AAAAAP8A//////////////////////8AAAD//wD///////////////////////////////////////8A//8A//////////////8A/wD///////////////////8A/wD/////////////////AP///////wD/AP///wD//wAA/wD/AP8A//8A/wD/////AP8A//////////////8A/////////////////////wD///////8A/wD//////wD/AP//AP//AAAAAAD/AP///wAAAAD///8A//////////8A//////8AAP8A/wD//wD//wD/AAAA/////wAA//////////////8AAAAAAP//AAD///8A/wAA/wD///8A////////AP////8A/////wD/AAD/AAAA////AP8A//8A////////AP////////8A//8A////////AP//////AAD///////8A////AP////////8A//////////8A/////wD///8A/wD///////8AAAAA////AAAAAP//////AP//////////////////AP8A/wD//wD//wD//////////wAA/////wD///8A/wD/////////AP///////wD/////////AP//////////AAD///8A/////wD/////AP///////wD///8A////AAAAAP8A/wD/AAD///8A//////8A//8A/wD/AP//////////////AP///////////////////////wD/AAD/////AP//////////////AP///wD//////////////wAAAAD//wD///8AAP8A////AP///////////wAA//8AAP8A////AP//////AP//AP//AP8A/wD/AP////////8AAAD//wD/////AP///////wD/AP8A/wAAAP//AAAAAAAAAP//AP8A/wD///////8A//////8A/////////////wD/////////////////////////////////////////////////AP///wD///8A/////wAAAAAAAAAAAAAAAAD//////////////////wD//////wD/////AP//////AP//////////////////AP//AAD//////wD/////////AP//////////AP//////////////////AP///////wAA//8A////AP8A/wD//wAA//8A/////wD/AP//AAD/AP//AP///wD//////wD/////////AP///////////////////////wD///////////8AAP////8A/wAA/wD///8A/////////////wD///8AAAAAAP///wD//////////////wD/AP///wD///8AAP///wAA/wD///////8A//////8A////AP//AAAA/wAA/wD/////////AP8AAP//AAAA//8A/wAAAP///wD/AAAAAP//////AP8AAP8AAAD/AAD/AP//////////////AP8AAP//////////AP///////////////////wD/////AP///////////////wD/////////AP//AAAAAAAAAP//AP8AAP//////AP8AAP////////////8A/wD///8A//////////////8AAP///wD/////AP////8A////////////AP///////wAA/wD//wAA/wD/////////////////////////AP///wAA//8AAP///wD/AAAAAP//AP8AAP//AAD//////wAAAP8A////////////////////////////////AP//AAD//wD//////wD/////////AP////////8A//8A/wAA/wAA////AP8A//8AAAD//////wD/AP//////AAD//////////wD///8A////AP8A/////wD/AAD/AP8A/////wD/////////AP///wAA/wD/////AP///wAA//8A//////8AAP//AP////////8A/wD/AP////8A/wD///////8AAP8A/////////////wD//wD//////wD///8A//////////////////////////////////8A/wAA/wD/AAAAAAAAAAAAAP//////AP//AP//////AAD//////////wD//////////wD//////////////wAAAP//AP//////////AP////////////8A////////////////////AP///////wD///////8A//////8A/wD/////////AAD//wD///8AAP////8AAP////8A/wD///////8A////////AP//////////AP8AAP//AAAA/wAAAP8A////AP//AP////////8A/wD/////AP//AP////8A/wD/AP//////////////AP////////////8A////////AAAAAP//AP////////8A/wAAAP//AAAAAAD/////AAD//////////wD//wD/AP8A/////wD///////////8A////////////AP///wD/////AAAAAAAA////AP///wAA//////8A/wD///8A////////////////////////////////////AP8AAAD/////AAAAAAAAAAD/AAD/AAAAAAD/////AP///wD///////8A////////////////AP8A/wD/////////////AAAA/wD//////////////////////////////wAAAAD///////////8A/wD/////////AP///////wD///////////8AAP8A//////8AAAAA//8A//8A/wD/////AP//AP//////////////////////////////////AP8AAAD//wD///8A////AP////8A/////wD//wD/////AP8A/wD/AAD/AAAAAP///wD//////////////////wD/AAD//////wD///8A/wD/AP//////AP///////wD//wD///8A////////AP///////wD//wD//wAA//////////8A//////8AAP////8A/wD/////////AP//AAD///8A/////wAAAAAA//8A/wAA/wD//wAA////AP///////////////////////////////////wAA/wD/AAAA/wAA//8A/////////////wD/AP8A//////////////8A////////////////////////////////////////////AP8A/wAA/////wD///////////////8A//////8A/////////wD/AP///////////////////wD//////////wAA//8A/wD///8AAP///////////////////////wD/AP////////////////8A//8A////AP8AAP///wD//wAA////////AP8AAAD///8A////AP//////////AAAA////////////AP///////wD///8AAP////8A////////////////AP8AAP//AAAAAP8A/wD///8A////AP//////////AP//////////AP////8A/////wD/AAD/AP///wD/AAAAAP8A//8AAAD///8A////AAD//wD/AP8AAAAAAAAA//////////////////////////////////////8A//8AAAD/AAAAAAD/AAAA/wAA/wAA//8A////////AP8A/wAAAP8AAP//AAAAAP///wD//////////////wAA////AP////////8A////////////////AAAAAP//////AP////8A/////wD/AP//////AP//////AP//AP//AP8AAP///wD//////////////wAAAP8A//8A//8A////////AP////////////////////////////8A/////////wD///8A/////wD//////wD///8A////AAAA/wD/AAAA/wAA/wAA//8AAAAA////AP8A////////AP///////wD/AP8AAP8A//8A//////8AAP///wD//wD///8AAP//AAAA/////wAAAP8A/wD///8A/wD///8A/wD//////wAA/wD//wAA/////////wAA/wAA//8A//8A////AP////////8AAAD//wD/AAAAAAAAAAD//wD///////////////////////8A/wD/AAAAAAD/AAAAAAAAAAAAAP8AAAAA//8A//8A/wD/AAAA//8AAAD/////AP////////////8A//8A//8A/////wAAAP////8A//////8A/wAA/////wD///8A/wD/AAAA//8A////////////////////////AP//AAAAAP8AAP//AAD//////wD///8A/wAAAP//AAAAAP//////AP8A//8A//////8AAP//////////////////////////////////AP//////AAD///////////////////8A//8AAAD//wD/AP8AAAD/////////AP8AAP//AP//AP8A/////wD/////AP///wD/AP8A//8A//////////8A/wAAAP//AP///////wAA////AP8A////AAD//////wD/////AAAA//8A/wD//wD//////wD/AP//////AAD/AP8AAP8A////AP///////wAA//8AAAAAAP8AAAAAAAAAAP8A////AAD//wD//wD//wD/AAD//wAAAAAAAP//AAD/AAAAAP8AAP8A/wD/AAD///8AAP///wAA////////AP///wAA//////8AAP//////////AP//AAD//wAAAP////8A//////////////8A/wAAAP//AAD///8AAP//AP8AAP8A//////8AAP//AAD///////////8AAP////8A////AP8AAAAA/wD/AAAA/////wD//wD///8AAAAA//////////////////8A/wD//////wD/AP////8AAP///wD///8A/wD///8A////////AAD///8AAAD///8A/wD/////AP//AP8AAP///////wD/////////AP///wD///8AAP//AAAAAP//////AAD//wAA/////////wD/AAD/////AP8A////AP//////AP8A/////wAA//8A/////wD///8A/////wD//wD/AAD/AP//AP8A////////AAD/AP///wD/AAAAAAD/AAAAAP8A/wAA/wAAAAAAAAD/AAAAAP8AAP8AAAAA/wAA/wAA/wAAAAAAAAAAAP8AAAAAAAAA/////wAA////AP//AP8AAP//AP8AAP///wAA//////8A/////////////wD//wD//wD//wAAAP//AP//////AAAA////AP////////8AAAD/AP////8AAP///wD//////wD/AP///wD//wAA/wD/AP////8A////AP8AAP8AAP8AAP//AAD/////AAD/AP//////////////AP////////////////////8A////////AP8A//////////8A/wD/////AAAA//////8A////AAAA//8A/wD//wAAAP///wD//////////wAAAP////////8AAP///wAA/wD//wD/AP8AAP//AP////8AAP//AAAA//////8A/////wAA//////////8AAP///////////////wD//wD///8AAAD/AP//////AAAA/wD//wD/AP//AAAA//8AAAAAAP//AAD/AAAA//8AAAAAAAAAAAAAAAAA/wAAAAAAAAD/////AP8AAAD/AAAAAP8AAAAA/wAAAP//AP8A////AAAAAAD//wAAAP8A////AAD///////////8A/wD///8A/wAAAP//////AP8A//8A//8AAP////8A/wD///8A/////wD/AAAA//8A/wD//wD/////AP//AP////8A/wD//wD/////AAAA/wD//wAAAP8AAAD/////AP8AAAAA//////////8A/////////////////////////////////////wD/////AAAA/////wAA////////AP///wAA/////////wAA////AAAA/wD/AP//AAD/////AP//////AAD///8AAP8A/wD///8AAP8AAP///wD/AP////8A/////wD//////wD///////8AAAD///8A//8AAP//AP//AAAAAAAA////AP//////AP///wAAAAD///////8A////AP////8A/wD//wAAAAD/AAAAAAAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAP//AAAAAP8A////////AAD//wAAAAD///8A//////8A////AAD/AAAA/wD/////AP///wAAAAD///8A////////AAD/AP8A//8AAP8A//8A////AAD//wD/AAD/AAD/AP///////wD/AAAA//8AAP8AAP////8AAAAA//8A/////wAAAAAA//////8AAP///wD/AAD//////wAAAAAA////////////AP///////////////////////////////////wAAAP////8AAP8A/////wD//////wD///8A/wD/AP//AAD///8A//////8A/wAAAP8A/////wD/////AP8A/////////////wD///8AAP8A//8A//8A/////wAA/////wD/AP8A/wAAAAD//wD/AP////8AAAAA/////////////wD/AP///wD/AAAA/wD//wD/AP////////8A//8AAAD/AP//AAAA/////wAAAP8AAAAAAAAAAAAA/wAA/wAAAAD/AP8AAP8AAAAAAAAAAAAA/wAAAAD/AAD/AAD/////AP8AAAD/AP//AAAA/wD/AP//AAAA/wD///8A/////wAA//8AAAD///////8A//////////8A//8A//8A////AP8AAAD/AAD/AP///wD//wAA////AAD//wD/AP//AP///wD//wD/AP///wD/////AP////8A/////wAA/wD///8AAP//AP///wD//wD/////AP//////////////AP///////////////wD/////////////AAD//wAAAP///////wD///////////////8AAP//////AP////8AAP8A/wD//////wD/AP////8A/wD//wD/////////////AAD//wD/////AP8AAP///////////wD/////////AAD//wD/////AAD/AP///wAA/wD/////AP8A//8A/wD/AAD/////AP//AP8A////AP///wD///8A//8A////AAD//wAAAAAAAAAAAAAAAAD/AAD/AP8AAAAA//8AAAAA/wAA/wAA/wAA/wAAAAAAAAAA/wAA/wAAAAD/////////////AP8A//////////////8A//8AAP///wD//wD//////wD/////AP//AP8AAP////8A/wD//wAA/wD/AAAAAP//AP////8AAP///wAA/wD/////////AP8A//8A////AP///wAA////AAD//wAA/wAA//8AAP///////wD/AP//AP//////AP///////////////////////////////////////wAA/////wD/AP8A//////////////////8AAAAA////////////AAAA/wD//wD/AP8A////////AP//////AP///wD/////AAAAAAD/////AAAA//8A/wD///8A//8A/wD///8A/////wD//////////////wD/AP////8AAP8A/wAAAP///wD//////wD/AAD///8AAAAA/////wD//wD/AP//AAD//wD/AAAAAAD///8A/wAA////AP///wD/AAAAAAD//wAA/wAAAP///wAAAP8AAP8AAP8AAAAAAP8AAP8AAP//AP////8AAP//AAD///8A////AAD/AAAAAP//AP//////////////////AP//AP8A/////wD//wD//wD///8AAP//AP8AAP//////////AP//////AAD/////AAD/AP//AP///////wD///8A/////wD/AP///////////////wAAAAD/AP///wD///////////////////8A////////////////AP///wAA/wAAAP8A/////////wD/////////////AP//AP8AAAD///8A/wAA////AP///wAAAP//AP///wAA/////////////wAA/wD///8AAP///wD///////8A////AP//AAD/AAAAAP//AAAA////AP//////AAD/AAD/AP//AP//AAAAAP//AP8AAAAA/////////wD///////8A/wD//wAAAAD/AP//AP//////AAD///8A/wD/AAAA//8A/wD/AP8A/wAA/wAAAAAAAP//AAD//wAAAAAAAAAAAAAAAAD/AAAAAAD///8AAAAA/////wD/AAAAAP////8A/////wD/////AP////8A//////8AAP//AAD//wD///////8A/////wD//wAA/wD/AAD/AAAAAP////8AAP///wD/AAD//////wD/////AP8A////AP///wD//wD//wD/AAD//wD/AP//AAAAAP//AP////8A/////wD///8A/////////////////////////////wD///8AAP//AP//AP8A////////////////AAD///8A/wD/AP8AAP8A/wD///8AAAAAAP////8A/wD/AP///wD/AP//AAD/AP////8A/wD//wD/////////////AP8A/wD/AAD/AAD/AP8AAAD/AP///wD//////////wAA/wD/AP////8AAP//////AAD///8A/wAA/////wD///8A/wD/AP///wD/AP8AAP///wD/AAAA/wAA/wD//////wAAAP///wAAAP8A/wD/AP8A/wAA/wAAAP8A/wAAAAAAAAAAAAAA/wD///8AAAAAAP8AAP//AP8AAAD/AP//AP8AAP8A/wD/AAAA//////8AAAD//wD//wAA//8A////AP///wAAAAD//wAA////////AAD/AAD//////////wD/////AAD/AAD//wD/AP//AP8AAP////8A/wD///8AAP////8AAP//AAD///8A////AP8A/wAA/wAA////////AP//AP////8A//////////////////8A//8AAP8AAAD/AP////////////////8A////////AP8A/wD/AAD//wAA////AP//AP///wD/////////AP//////AP////8AAP8A/wD///////8AAP////8A////////////AAD//wD//wD///8AAP///wAA//8AAAD/AAD/////AAD/////AAAA////AAD/////////////AP//AP//////////////AP8A/wD///////8AAP////8AAP8AAP8AAP8AAAAA//////8A/wAA/wAAAAD//wAAAP8AAAAA/////wAAAP////8A/wD///8AAP8A//8A//8A////AAD/AP//////////AAD//wD/AP//AP8A/wAA//////8A/wAAAP////8A//8A//8A//////8A/wAA/////////wAA//8A////AP////////8AAP8A/////wD//wD//wAAAAAA////AAD/////////AP8A/wD/AP////8A//8A////////////////////////AP//AP//AP8AAAD/AP///wD/AP//////////AP//AP8A/wD/////AP////8A////AAAA////AP//AP////////////////8A////AP//AP//AAD///8AAP////////8A/wAA/wD//wAAAP///wAA/////wD///8A//8A////AP///wD//wD//////wAA////////////AAAA/////wD//wD/AP///wD/////AAD/AAAA/////wAA/wD///8A/wAAAP8AAAD/AP///wD/AP8AAAAAAAAAAAAAAAAA//8AAAAAAAAA//8A/wD///8AAP8A////AP//AP////////8AAP//AP///wAA/////wD//wD/////AP////////8A/wD/AP//////////AP//////////AAD//wD///8AAP///wAA/////////wD///8A/////wD/AP//AAD///8A////////////////AAD//wD/////////////////////AP//////AP//////////////////////AP//AAD//wAAAP////////////////8A/wAA//////////8A//8AAP////8AAP8A/wAA//////////////////8A/////////////wD/////AP8A////AAAA/////////wAA//8A/////wAA//8AAP8A//8A/wD//////wD///8A//8AAP8A//8A/wAA//8A/wD/AP8AAAAAAP//AAD///8A/////wD/AP8A/wAAAAD///8AAAD///8AAAAAAAAA/wD/AP8AAAAA/wD/AP8AAAD///8AAP8AAAAAAAAAAAD//wAAAP8AAAAA//////8A/wD//wD///8AAAAAAP///wD//wD//wD///8A/wD/AP///wD/AP8A/wD//wAA/////wD/AP8A/wD//////wD//////////wAAAP8A//////8AAP///wD/AAD///////////8A/wAA//////////////////////8AAP8A//8A/wD///////////////////////////////////////8A/wD/AAAAAP8AAP//////AP//AP//////AP//AP////8A//////////8A/wAA/////wD//////////////////wD/AP////////8AAAD///////8A//8A/wAA/wAAAP8A/wD/AP///////wAAAP8A/////wD/////////AP8A//8A//8AAAAAAAD/AP///////wD//////////////wD/////////AP8AAAD/////AAD///8A/wD//wAA//8A/wD/AAAAAP//AAAA/wAA/wAA/wAA/wAAAP8AAAAAAAD/AAAAAAD//////////wD/AP///wD///8A//8A/////wD///8A/wD/AAD//wD/AP///wAA//8A//8AAP8A/wD///8AAP//////AP////8AAP//AP////////8A////AAD//////wD/////////AP//AP////////8A////////////AAD/AP////8AAP8AAP////////8A/////////////////wD/AP///wD//////wD//wD///8AAP//AP8A/////wAA//////////8A//8A////AAD///8A//8AAAD//wAA/////////////wD///8A/wD///8A/////wD/////AP//////AP//AP////8AAP8AAP//////////////////AAD/AP//AAAAAP///wAA//////8AAP//AP8A////////AP8A////AP8A/wD//////wD/AAD//wD//wD/////AP8A////AP//////AP//AAAAAAAA/wAAAAAA/wAA////AAAAAP8A//8AAAD//wAAAP8A/wAAAP///wD//wD///////8A////AAD///8A/////wAA//8AAP8A//8A/////////wD/AP//////////AP8A//////////8A//8A//8A////AP///wD//wD//////wAA/wD/AAAAAP8A/wD//wD/////////AAD///8AAP8AAAD///8A//8A/wD//wAA//8A//////8A////////////////////////AP///////wAAAAAAAP8AAP//////////AAAA/////wD//wD/AP//AP////8A/wAAAP8A////AP8A//////////8A////AAD/AP////////////////8AAAD///////8A////AP//AP///////wD///////8A/wD/////AP8AAP8A/////wD/////////////AP8AAAD/AAD/////////AP//AP///////wAA/wD/AAAA////AP//AP//////AP8AAP////8AAAAA//8AAP8AAAAAAAAAAAD/AAD/AP8AAAAAAAAA/wAAAAD/AAD//wD//wD///8AAP8A/wAA//8A/wD/////AP//////////////AP8A/////wD/////AP8A/wD/////AP///wD///////8A/////////////////////wD/////AP8AAP///wD/AP////////8A//8A/wAA////////AAD/AAAA//8A/wD/AP///wD/AAD/////AAD/////////AP//////AP////8A//8AAAAA////AAD/////AAAA//////8AAP//AP///wAA//8A/wD///8AAAD/AAD///8AAAD/AP//AP//////AAAA/wD/////////////AP///wD/////////AP//////////AP//AP//////AAD//wD///8A/wD/AP////////////8A//8A//////8A//8A//8A////AAAAAP8A//8A/wD//wD///8A////////AAD//wD//////////////wD///8A/wAA//8A/wD/AAD//wAAAP8A/wAAAP8AAAD/AAAA/wD/AP///wAA/wAAAAAAAP////////8A/////////wAA/wD///////8AAP////8A/////wD/AAD/////////AAD/////////AP///////////////wD/AAD///8A/////////////////wD//wD///8A/////////wAAAAD/AP8AAAD//wD//wAA//////8A////////AP////////////////8A/////wD//////wD/AAAA//8A/wAA//8A//////////////////////8A/wD/AP//AP8A/wAA/////wAA//8AAP8A/wD/AP///wD///////8A/wD/AP//AP///wAAAP////////8A/////wAA//8AAAD//////wD/AP//////////////AAD/AP8A/////////wD/AP///wD/AP///wD/////AP///wD//////wD//////wD/AAD//wD//////wD/AAD//wD/AAAA/////wAAAAAA/wD//wAAAAD/AP8AAAD/AP8AAAD/AAAAAAAAAAAAAAAA/wAA//8A////////AP///wD/////AP////8A/////////wAA/wD///8A////////AP///////wAA////////////AP//////AP//////////AP8AAP//////AP//////////////////AP///wD///8AAP///wD///8A//8A/////wD///8A////////////////////////////AAAA////////////////AAAAAP8A////AP///wAA/////////////////wAAAP8A/wD///8A//////8A/wD/AP8AAP////////////8A////////////////////AAD/AP8A////AP///////wAA////AP8A////AP8A////////AP8A/wD/AP//////AP8A/wD/AP///wAA//8AAAD//////wAAAP////8AAP///wD//////wD/AAD///////8A/wD///////8AAP//AAD/AAAAAAAAAP///wAAAAD/AAD/AAD/AAAAAAD/AP8AAAD/AAD/AAAAAP8A////AP///wD/AP//AAD//wAA//////8A/////wD/AP8A//////////////8AAP//AP////8A/wD///8A/wAA/wD//////////wAA/wD//wD//////wD///////////8AAAD///////8A//8AAP//AP//AAD//wD/AP////8A/wAA/////wD///////////////////8A//////////////////////////8A//8A/wAAAAAA/wD/AP////////////////8A/////wD///8A////AAAA/wAAAAAAAP////////8A/////////wD///////8A////AP////////////8AAP///wAAAAD///8A//////8A//8A//8AAP8A/wD//wAA////AP8A//////8A/wD///8AAP///////wAAAP///wD/AP//////////AP////8AAP//AAD///8A/wAA/wD/AP///wAAAAAAAAAA/wAAAAD/AAD/////AAD//wAA//8AAAAAAAAA////////AP////8A////////AP////////////////8A//8A//////8A//8A/wD///////8AAAAAAP8A/////////wAAAP//////AP///wD///8A//8A/wD///8AAP////8A////////AAD//wD///8AAP//AAD///8A////AP///wAA////AP///////////////////////////////////wD///////////////////8AAP//AP8A/wD//////////////////wAAAP8AAP8AAAAAAP///wD/////AP//AAD//////wD///8A//8A/////////wD///8A/////wAA/wAA//////8AAP////8A/wAA/wAA//////////8AAP8A//8A/wAA/////////////wD/////////AP///////wAA//////8A/wAAAAD//wD//wD/////////AP//AP///wD/////AAD//wAAAAAAAP8A/wAAAAD///8A/////wD///////8AAAAAAAAAAAAAAAAAAP////8AAP////8A////AP//////AP///wAA/////wD//wAA/wD///8AAP//AP//AP8A/wAA/wD///8A//8A/////wAA/wD/AP//////////AP//AP8AAP//AP8A////AP8A/wD///////////8AAP8A/////////////////////wAAAP8A////AP///////////wD//////////////wD//wAA////AAD/AP//AP8A/wD//wAA////////AAAA//////8AAP//AP8AAP8AAP////8AAP//////AAAA////////////////////AAAAAAD///8AAAD//wD///8A/wD//wAA//8A/wAAAP8AAAD///8A//8A//8A////AAAA/wAA////AP///wAA////AP8AAP////8AAP////8A//8AAP//AP//AP//AP///////////wD/////////AP//AP////8A/wAA/wAAAAD/AAAAAAAAAAD//////////wD//wD/AAAAAP8A/wAAAAAA/wD///8AAP8A/////////////////wD//wD/AP//AAD//wAA//8AAP//AP//AP////////////8A/wAA/////wAAAAD//wAA/////wAA//////8A/////wAA//////////////////////8A/wD/////AAD/AAD/////AP8A/wD/////AP///wAAAP////8A/////////////////wD//wD/AP//////////////////AP8A/////wD/AP//AP//AP///////////wAAAP8A/wAAAAD/AP8AAAAAAP////8AAP//AAD//////////////wAA//8A//8A//////////8A/////////wAA//8A//////8A////AP8A/////wD//////wD///8A//8AAP//AP////////8A//8A////AP//////AAD//wD///8A//////8A////////AP//AP///wD/////AAAAAAD/AAAAAAAA//8A/////////////////wAA//8AAP8AAP8A////////AP8A//8AAP///wD/////AAD/////AAAAAAD///8A//////////////////////8A//////////8A////AAD/////AP////////8AAP////8A//8A////AP8AAAAA//8AAP////8A/wD/////////AP///wD///8AAP8AAAAA//8A/wD/AP///////////wD///////////////////8A////AP///////////wD/AAAA////AP8A//////////////8A////AP8A/////////////wAA/wAA////AP///////////wD//////////wD//////wD//wD/AP//////////AP8A//8A/wD///8A////AP//////AP////////////////8AAP//AAD/////AAD//wD//wAA////////////AP//////////AP////////////////8A////AAD/////AAD/AAAAAAAA/wAA////AP////8A/wAA/////wD///8AAP////8A/wAA//////////8A//////////8A////////////////////AP//AP////////8A/wD//wD/////AAD/////////////////////AP///////////////////////wD//////wD/////////////////AP8A/wD//wD//wAAAP///////wD//////wD///////////////8A//////////////////8A/////////wD//////wAA//8A/wD/AP8A/////////////wD/AP///wD///8A/wD//////wD/AAD/AAD//wD/////AP8A//////////8AAP//////////////AP8A/////////wD//wAA/wAA/////wD///////8A//8A/wD/AAAA/wD/AP//////AP///////wAAAAD///8A////////AP////////////8A////////////AP//////////////AP8A/wAAAAD///8AAAAA/////////wD/AP//////////AAAA/wAAAAAAAP//AP//AP///////wD//////////wD/AAAA/wD/AP8A//8A/wD//////wD//wD/////////AP///////wD//////////////wAA////AP//////////AAD/////////////////////AP//AP///////wD/AAD//wD/AP////8A/wD///8A////////////////////////AP//AP///wD/////////////////////////////AAAA//8AAP//AAD/////////////AP///////////wD///////8A/wAA/////wD///////////////////8A////////AAD//////wD/AAD/////AP//////AP//////////AAD//wAA////AP8A////////AP//AP///wAAAP//////AP//AAD/////AP8A//////8A//////////8A////AAD///////////8AAP8A/////wAAAAD/AAAAAAD//wD/AP//AP///wAA////AAAA//8A/wD///8A/////wD//////wD///8A////////AP//AP//////AP///////////////wD///////8AAP//AAD/AP////////////////////////8A/////wD/////AP///////wD///////8A////////////////AAAAAAD/////////AP8A//8A//8A/////////wD//wD///////////8A//////////////////////8A//8A/wAA//8A/wD/AP////////////////////8A////AAAA//////////8AAAD///8A////////////AP////////8A////////////////////AAD//wD//wD/AP//////////AP8A//8A//8A//8AAAD/AP8A////AP8A/wAA//8A//8AAP8A/////////wD///8A//8A/wD///8A/wD//wD/AP8AAP//AP//AAD///////8A/wAA//8AAAAAAAAAAAD//wAA//////8AAAD/AAAA/wD/AAD/AAAA//////8A/////wD/AAD///8AAP//AP///wD//////wAA//8A/wD//wAA/////wAA/wD/////AP8A//8A////AP////8AAP8AAP////8AAAD///////////8A/////wAAAP///wD///8AAP8A//8A//8A////AAD///8A//////////8A/wD/AP//AAD///////8A/////////////////////////wD///8A/////wD//wD///8AAAAA//////////////////////////8A/////////wD/AP//AAD/AP8A/wD//////////////////wD///8AAAD///8A////////////AAD/AP8A/////////wD///////////8A//////////8A/////wD/AP////8A////AP//////////////AP8A/wD///////8A//////////8A/////////////wD///////////////8A/wD/AP//AAAA/wD///8A////////AAAA/wAA/////wAA//8A//8A//8A////////////AAD//wD///////8A/////wAA////AP////8A//////////8AAP//AP///wD///////8A//8AAAAA/wD/AP///wD///8A/wD//////////wD/////////////////AP//AP////////8A/wD/AP//AP8A////AAAA/////wD///////////////////////////////////////////////////8A/wD///8AAP///wD//////////////wD///8A////AAD//////////wD/AP8A//8AAAAA/////wD///////////////////8AAP////////////8AAAD//wD//wD///8A/////wD/////AAD//////wD//wD/AAAA////AP//////AAAA/wD/AP//////AP///wAA/wAA/////////////wAAAP////////8AAP////////8A/wD///8AAAD/AAAAAP//////AP///wAAAP8A/wD/AP8AAP8AAP//////AP////8A////AP8A/wAA//////////////8A//8A////AP///wD///8A/wD//wD//wD///////8AAAD/////////////////AAD///8AAP///////wD///8A//////8A//8A/////wD/AAD///8A/////wAA//////////8AAP8A/wD//wD/////AP////////8A/////wD///8A//////8A////AAD/AP8A/////wD//wAA//8A//8A/////////////////wD/////AP///wAA////AP///////wD//wAA//////////////////8A/////wD///////8A//8A//////8AAP//////AP//AAD//////////wD//wAA////AP////8AAAD/////AAD///////8AAP///////wD/////////////AP//////AAD/////AP////////////8A////AP8A/////////wAAAAAAAAAAAP//////AP///////wD/AP///wD//wD///////8A/////wD/AP8A/////wAA/wD/AP//////////////////////////////////AP///wD//wD//wD//wD/AP///wD/AAD///8A////AP8A////////AAD//wD/AP///wD/AP///wD//////wD/////AP8A/////wAAAP//AAAA//8AAP//AP///////////////wD///////////////////////////8A/////wD//////////wAA////AP////////8A//8A////////////////AP8AAP8A//////////8A//8A/wD/////////////////////AP///////////////wD/////////////AP//AP//AP8A/wD/AP//AAD/////////AP///////wD//wD//wAA/////////wD///8AAAD/AP//AAD/AP////8A/wD//wD//////////wD//wD//////wAA/wAAAAAA/wAAAAD///////////////8A/wD///8AAAAAAAD//wAA////////////AP///////wD/AAD///////8A/wD/////AP////////8AAP///wD//wD/////AAAA//////8A/wD///////8A/wD/AAD//wD/////////AP///wAAAAAA////AP//AP8AAP//////////AAD/////////////AAAA/wD///8AAP//AP///wD/AP////////////////8A////////////AP8AAAAA/////////////////wD/AAD///////////8A/////////wAA/wD//////wD/////////AP8A//////8A/////////////wD/AP///wD//wD//////wD//////////wAA//8A/wAA//8A//8A/wAA////AP////8AAP////////8A/////wAA/////////////wD//wAA//////////8A////AP//////AP8A/wD///8A/wD//wD/AP8A////AP///wAA/wAA//////////////////8AAP8A/wAAAAAAAP8A/////wD//////wD///8AAP///wD/AP8A/wAA////AP////8AAP8A//8A////AP//AP8AAAD/AAD//////wD/////////AP//////AP///wD/////AP////8A//8A////////////////AAD///8A/wAAAAAA/////////wD/////////AAAA////AP//////////AAD//wD/////////////////////////AP//////////////AP///////wD/////AP////8AAP//AP8A////AP8A////AAAAAP////8A//////8A/wD/AP///////////////////////wAA//8A//////8AAAD/////AP//////AAD//////////wD/////////////////AP8A//8A////////////////AP//AP//////AP////8AAAD/////////AAD/////AP//////////AP//AP////////////////8A/////////wAA/wAAAP//////AAAAAP///////////////wAA/////wD/AP//AP////8A//////8A//8A////////////////////////AP////8AAAD//wD/AP///////////wD/////AP///////wD/AP///wD//wD///////////////////////8A//8AAP///wAAAP//////AP//////////////////AP////////8A/wD/AP//////////////AP//AP////8AAAD/AP///wD/AP////////8A//////8A/////wD//wAA////AP8A////AP8A/wD//////////wAA//////////////////////8AAP///wAA/wD/////////////////AP//////AAD//////wD/////AP8A/////////wD///8A//8A/wD/////////////////AP////8AAAD/AAD//wD//wD/////AP8AAP8A//////////////8A/////////wD/AP8AAP///////wAAAAD/AAAA//8AAAAA////////AP///wD//////wAA//8A////AP////////////////8A/wD/AP8A/wD/////AP8AAP//AP////8A/wAAAP//////AP//AAAA//8A/////////////wD/AP////////8A/////wD///8A/////wD/AAD//wD/AAD/AAD/AAD/AAAA/////////////wAA//////8A//8AAP//////AP////8A/////wD//wAA/wAA/wAA/////wD/AP//AP////////////////////////////8A//////////////////8A/////wD/////////AP////////8AAP//////AAD/////AAD/////////AAD/////////AP///////wD/////////////AAAA//8A/////wD//wAAAP///////wD//////wD///8A//8A//8A////AAD/////AAD//////////wD///8A/////wD/AP///////wAAAAAA/////wD//wD//wD///8AAAAAAAD///8A//8A/////////////////wAA//////////8A//////////////8A//////////////////////////////8AAAD/AP//AP///////////////wD///8A/////wD//////wAA//8A/////wD///////////////8A////////AAAA/////////////////////////////////wD///////////////8AAP//AP//AAD/////AP8A/////wAA////AP////8A//////8A//8A/////wD///8A/wD///8A//8A/wD///////8A/////////////wD//wD///8A/////////////////////////wAA////////AP//AAD//wD//////wD//////wD/////////AP////////8A/////////wD//wAA/////////wAA////////////AP//////////////AP8A////AP///wD///8AAAAAAAAA/wAAAAAAAP//AP//AAAAAP///////wD///8AAP8AAP//////////AAD/AP8A////////////AP//AP//AAAAAAD///8A//////8A////////AP//AP//AP8A/////////////////wD/////////////AP//AAD/////////////AAD///8A////AP////8AAAD/AAAA/wD///8AAP////////8A////AP///wAAAP///wD//////wD//////////wD/AAAA//////8A/////wD//////////wAA/////wD/////////AP8A//8AAP///wAAAAAAAP8AAAD//////////////////////////////wD//wD/AP8A////////AP8A//8A////AAD///////8AAP8A//8AAP////8A//8A////AP8A/wD///8A////AP//AAAA//8A/////wD///8A/////////////////////////wD//////wD///////////8A//8AAP//AAD/AAAAAAD//wAA/wD///8AAAAAAP8A//8A/////////////////wD/////////AAD//wAA/wD//////////////////////wD///8A/////wAA////AAD//wD/AP//AP////8A/////wD/////////AP//AAD/AP////////////8A//////////8A/wD//wD/////AAD/////AP////8A//8AAP//////////////////AP///wAA//////8A//8A////AP//AP8A////////////AP8A////AAD/AP////8A/wD/AP//AP//////////AP//////AP//AAD//////wD///////////////////////////8A//////8A////////AP//AP8AAP///wD/AP8A//8A//8AAP////////8A/////////////////////wD/AAD/////AAD///8AAAD/AAD/AP//AAAAAAD///8A//////////8A/wAA/wD///8AAP//AP////8AAP8A/wAAAAD///////8A////AAAAAP//////////////AAD///////8AAAAA//8A////AP///wD//wD///8A/wAA/////////wD//wD/AP//AP//////AAAA/////wD//wAA//////8A////AP8AAAAA/wD///////////8A/wD/AP////////8AAAD/AP//////AP///////wD/AP//AP//AP8A////////////AP///wD///8A/////wAA//8A////AP8A//////8A////////////////AP////////////8AAP8A////AP///wD///8AAAD/////////////AP///wD//////wD/////////AP///////wD///8A//////8A/wD/AP//AP8A/////////wD//wD//wAA////////AP//////AP///////////wD//wD/AP///wD///////8AAP////////////////8A/////////////wD///8A////AP8A/wAAAP//////AP///wAAAAAAAP////////8A//8AAP8A/wD/////AP////////8A/////////////wD/////AAD//wD///8AAAD//wD///////8A//////8A/////wD///////////////8AAP////8A/////wD///8AAP///////wAAAAD///8AAAD///8AAP///wAA//////8A////////AP//////AP8A/wD//////wD/////////////////////AP////////////8AAP////8AAP//AAAA/wAAAP//////////AP////////////////8A//8A/////wD//wD/AP//////////////////AP////////////////////8A//////8A//////////8A/wD///////////8AAP////////////8A//////8A////AAD//////////////wAA//8A/wD//wD//wD/AP8A/wAA////////////////////////////////AP///wAA//8A//////////////////8AAP8AAP8AAAAA//8A////AP///////wD/AP8A////AP///wD///////8A////AP//AAD///////////8A//////8A////////////AP///////wD//wAAAP//AP///wAAAP//AP8A////////////AAD//wD/AP//AP//AP//////AP//////////////AAD/AP///////wD/AP///wD/////AAD/////////////////AP////8A//8A//8A/wD///////8A////AP///wAA////AP///////wD/AP////8AAP////8A//////8A/wAA//////8AAP//////AAD//wD/AP////////////////8A/////////////////////wD/AP8A/////wD/////////////////////////AP////8A//8A//8A/////////////////////////wD/////AP////8A/////wD//////wD///8A//////8A/////wD///////8A/wD//////wAAAAAAAP8AAP///wD/AP//////AP//////////////AP//////////////////////AP//AAD/////AP////////////////////////8A////AP///////wAA/////wD/AAAA/wD//wD/AP8A//8A/////////wD/////AP///////////wD/AP8A/wD/////////////AP///////wD///8A//////////8A/////////wD//wD//////wAA/////wAA////AP8AAAD//////////////////wAAAP8A//////8A//////////////////////////////8A//////////8A/////wAA//////////8A//8A////AP//AAD/AP8AAP8A////AP8A////AP///////wD///////////8AAP////////8A/////////wD//wD/////////////AAD/////////AP///////wD//wD/AP//AP//AP8A/wAA/////wD/AP8AAP///////wD/AAD//wD/AAAA////////////AP//AP///////wD/////////////////AP//AP//////////////////////////////////////////AP////////////////8A//////8AAP////////////8A////AAAA//////////8A/wD///8A////////////AP//AP////////////////////////////8AAP////////////8A//8AAP//AAAA////AAD/////AP///////////////////////wD/AP////8A/wAA////AP////8AAP///wD//wD/AP//////////////////////////AP8AAP//////////AP///////wD/AP8AAP//////AAD/////AAD/////AAD/AP8A/////////////////////////wD/AAD/////////AP////////8A/wD/AP///////wD/AAD/////AP//////AP8AAAD//wAAAP//AP////8AAP//AP//AAAA////AAD//////wAA////AP////////////8A//8A//////////////////8A/////wD///////////////8A////////////AP///wD///////////////////////////////////////////////////8A//////8AAAD//////wD/////////////////AP////8A//////////////////8A/wD//////wD//////////wAA//////8A////AAD/AP//////////////////////AP//////AP///wD///////8AAP//AP///////wD///8A//////////////////////8A////AAD///////////////8A////////////AP////////8A////AP//AAD//wD///8AAP//////AP8A//////////////8AAP////8A/wD//////wD/AP//////AP8A////AP//AP8A/wD///////8A/wAA/wAA////AP///wAAAAD/AAAAAP8A//8A//////////////////8A//8A////AP//AP///////////////////////wD//////////////wAAAP////////////////8A//////////////////////8A////AP//AP///////wD///////////////////////8A//////8A/////////////////////////////////////wD/////AP///wD/////////AP///////wAA//8AAP///wD/////////////AP///wD/////AP8AAAD/AP////////////////////8A////AP///////wD/////////////AP///////wD/AP////////////////////////8A//8A/////wD/AP////8A/////////////////////wD//////wD///8A////AP////////////8A////////////AP////////8A////AP//AP////8AAP//AAAA////AAAAAAAAAAD/AAAAAP///////wAA//8A////////AP8A/wD///////8A/////wD/////AP////8AAP//AP///////wD///8A//8A////////AP////////////8A//////////8A/////wD///8A////////////////AP////////8A/////wD/AP8A/////////////////////////////////////////////wD/////////////////AP///wD/AP8A////AP8A/////////wD//wD//wAAAP///////wD/////AP///wD//wD/AP8A////////////////AP///////wD///////////8A//////////////////////////////8A//////8A//////8A/wD///////////////////8A//////////8A//////////8A//8A////////////////AAD//////////wAA/////wD///8A//////8AAP8A////////////AAAAAAD/AAAAAAAAAAAAAAAA//////8A//8AAAD///////8A////////////////AP///////////////wD//wD/////////AP///wD/////////////////////AP//AP8A//////////8A//////8A/wD//////////wAA////AAD/AP///////wD/AP///wD///8A/////////////////////wAA//8A/wAA/////////////////////wD//wD///////8A////AP8A/////wD///////8A//////////////////////////8A/////////wAA//8A//8A/////////wD///////////8A//8AAP///////////////wAA//8A////AP///wAA/////////////////////////wAAAP////////8A/////wD//////////////wD///8A//8A/////////wD/AP///////////wD/////////AP//////////////AP8AAAAAAAAAAP8AAAAAAAAA//8A//8AAP///wD/////AP//AP//AP//////AP//////AAD///////////////////////8AAP////////////////////////////////////////////////////////8AAP////////8AAP8A////AP//////////////////////AP///////////wD/////////AAD//////wD//////wD//////////////wD//wD/////AP///wD//wD///8AAP//AAD//////////////wAA/////////wD//////////////////wAA//////8A/wD//////////wD///////////////////////////8A//8A////////////AP//////////AP///////////////////////wD/////////////////////AP////////8A//8A//8AAP//////AP//////////AP//////////AP///////wD//wD/AAAAAAAAAAAAAAAAAAD/AAAA/wD/AAD//////////////////wD/////////////////////AP//AAD///////////8A//////8A//8A//////8A/////wD/AP///wD///8A////////////////////AP///////////////////wD///8A////////AAD//wD/AP////8A/wD///////////8A//////////////////////8AAP//////AP////8A/wD//wAAAP//AAD//wAA/////wAA/////wD/AP//////////AP8A//8A/wD///8A////////////////////////////////////////AAD/AP///////wD///////8A////////////////AP8A//8A////////AP//AP///wD///////8A//////////////////////////8A////////////////////AP///////wD/AP////8A//////////////////8A//8AAAAAAAD/AAD/AAD/AAAA/wAAAAD/AP//AP////////////////8A//8A/////////wD//////wD/////////////////AP8A//////////8A//////8A/////////wD/AP///wAA/wD//////////////////wD//////////////////////wD//wD///8A/////////wD/////AP////////////8AAP//////////////////////AAD/////////////////AP///wD//wD///8A////AAD///////////////////////8AAP///wD/AP8A////////////////AP////////////8A//////8AAP///////wD///////////8A////////AP////////////////////////////8A//8A////AP////////////////////////////////8AAP//AP////////8A////AP////8A/////////wD//wAA////////////AAD/AAAA/wAAAP8AAP8AAAAAAAAAAAAA//////8A////AP///wD/////AP////8AAP////////////////////8AAP//////////AP//////AAD//wD///////////8AAP8A/wD///////////8A////////////////AAD///////8A/////////////////////wD///8A////AAD//////////wAA//8AAP//////////////////AP///////wD/////AP////8A////AP///wD//////wD/////////////AP//AAD///8AAP8A/////////////////////////////wD///////////////////////8A//////////////8A/////////wD/////////AP//////AP///////wD///////////8A////AP///////////////////////////////////////////wD/////////////////////////////////////AAAA/wD/AAAAAAAAAAD//wAA/wAAAAAA/////wD/////////////////AP////////////////////8AAP//AP//AP///////////////////////wD//////////////////////wD///////////////////////////////8A//8A/wD///////8AAAD/////AAD///8A////////////////AP////8A/////////wD//wD//////////////////wD///8AAP////////////////8A//8AAP//AP////////////////8AAP//////////////////AP//////////AP////8A/////wD//////////////wAA/////////////////wD/////////////////////////////////////////////////////////////AP8A////AP///////////wD///////////////////////////////////////////8A//8A////AP8AAAAA//8AAAAAAAAAAP8AAAAA////////////////AP///////wD///////8AAP8AAP///////////wD/AP///////wD//////////wD/////////AP///////////////wD//////////////wD/////////////////////////////////AP8A/wD//////wAA/////////wD//wD/////////////AP//////AP////////////8A/wAA//8A/////////wD/////AP//AAAA/wAA//////////////////8A/////wD///////////8A////////////////////////AP///////wD/AP///////////////////wD/////////////////AP///////wAA//8A/wAA////AP//////AP///wD/////////AP8A/////wD/AP//////AP////////////////////////8A/wD/AP////8A/////////wAA//8A/wD//////wAAAP8AAAAAAP8A////////AAD///8A/wD//wD//////wD/////AP8AAP////8A/////wD///////////////8A////////////////////////AP//////////////AP//////////AP//////AP////////////////8A/////////wD/////AP8A/////////wD/////////AP8A/////////////////wD///////////////////////////8AAP////8AAP////8AAP///wD///8A/////wD///8A//////8A////AP//////////AP////////////////8A/////wD/AP///////////wAA//////8A/wD//////wAAAP//AAD/////////AP8AAP///////wD//wD//wD///////////////////////////8A//////////////////8A////AP///////////wD//wD/AP//////////////AP8A////AP///wAAAAAAAAAAAAD//wAA/wAAAP8AAAD/////////////////AP//AP///wD//wD/////////AP///wAA//8A/////wD//////wD//////////wAA////AP//////////////AP////8A//////////8A//////////////////////////8A/wD///8A//////8A//////////////////////////////8A/wD//wD/////////AP//////////////AP////////8A/wD//////wD//////////wD//////wD/////////////AAD//wAA//8A/////wD///////8A//////////////8A//////8A//////////////////////////8A//8A/////////wD///8A/////wD///////////8A////////AP//AAD/////////AP//AP////////////////////8A//////////////8A////////////AAAA//////////////8A/wAAAAAAAP//AAAA////AAAA/wAA//////////////////////////////8AAAD/////AAD///////8A/////////wD///8A////AP////////8A////////////////////////AAD/////AP///////wAA/wD/AP//////AP///wD/////////////AP8AAP///////wD///////////8AAAD//////wD/////AP///////////////wD///////////////////8A////////////////////////////////////////////AP8A/////////////////wD///8A/wD///////8A/wAAAP8A////AP///////////////wD//////////wD///8A//8A////////////AP////8A////AP////8A/wD///////////8A/wAA//////////////////////8AAP///wD///8AAAD//////wD//////wD///////////////8AAAAA////AAD//wAAAAAAAP8AAAD//////wD//////wD/////AP///wD///8A/////wD/AP///////wD///////8AAP8A/wD///8AAP///wD/AP////8A/////////////////////wD//////wD//wD/////////////AAD/AP////8A//////////////8A////AP//AP8AAAAA/wD///////////8A//8AAP///wD/////////AP8A/////wD///8A//8A//8A/////wAA////AP////////8A////AP////////8A/////////wD///8A/////wD//wD/AP8A/////wAAAP////////////////////////8A//////8A//8A//////////////8AAP///////////wD///////8A//////8A/wD/////////AP///////wD//wD/AP//////////////AAAAAP//AAAA/////wAA/////wD///////8AAP8A//////8AAP///////wD///8A/wAA/wAAAAAAAP8AAP////8A////////AP////8A////AP////8A//8A//8A////////AP//////AP///wD//////////////////wD///////////////////////////8A////////////////////AP////////////8A//////////////8A//////////8A//////8A/////wD/////////////////AP////8A/wD//////wD/AP////8A//8A//8A/wD///////////////////////////8A////AP////8A//////////////8A////AAD/AP///wD/AP///////wD/////////////////////////////////////////AP8A/////////////wD///////8A/////wD/////////////////////AP///wD//wD/AAAA/////////wD/////////AP8A////AP///////wD///////////8A////AP//////AAAAAAD/AAD/AP8AAAD/AP//AP8A//8A//8A////////AP//AP//////AP///wD///8A//8A////////////////////AAD//wD/////////////AP//////////////////////AP////////////8AAP////8A////AP8A/wD//wD///8A////AP8AAP///wAA/wAAAP//AP8A/wD//////wD///////////////////8A////////AP////8A/////wD///8A////////////////////////////////////////AP8AAP8A////////AP//////////AAD//////////////////////////////////wD///8AAP////////8A////////////AP////8A/////wD///////////////////////////8A/////////////wD//wD/AP///wD///8AAP//AP8A//////////8A//8A//8A////AP//AP///wD/////////////AAAAAAD//wAAAAAA/////////wD//////wAA//8A////AP//AP8A//8AAP///wD/AAD//////wAA/wAA//8AAP8A/wAAAAD/////////////AP////////////////////////8A////////////////////////AAD///////////8A/wD/////AP//AP8AAP///wD/AP//AP////////////////////////////////8AAP//AAAA//////////////////8A//8A////AAD/////////////////////AP//AP///wD//wAA/////////////////////////////////////////////////////////////wD///////////8A//8A////AP////////////8A/////////////////////////////wD/////////AP////////8A//8AAAD//////wD/AP//AP//AAD//wD/AP///wD//wAA////AAAA/wD/////////////AP///wAA/wAA////////AP///////////wD//////wD/AP//AAD/////////////AP//AAD//wAA/wAA/wAA////AP////8A/wAA//////////////////////////////8A//8A//////8A/wD///////////////8A/wD/////AAD//////wAAAAD/AP8A//8AAP///////////////////////////////////////wD//////////////////////wD/AP///wD//wD/////////AP////////////////8A/////////wD///////////////8A/////////////////////////////////////////////////////////////wD///8A/////wD/AAD///8AAP///////wD//////////wD/////////AP///////////////////wAA/wAA/wAA////AP//AAAA/////////////////////wD/////////////AP///////wAAAP8A////////AP//////AAAAAAD/////////AP//////AP////////8A//////8A/wAA////AP//AP//AP8A//8A////AP////////////////////////////////////8A////////AP////////////////////////////////////8AAAAA/wD/AP//////////////////////////////////////////////AP//AP8A/////////////wAA//////////////////8A////////////////////AP////8A//8A////AP//AP8A/wD/////////////AP////////8A////AP8A//////8A////////////////////////////////////////////////////AP////////////////8A////////AP//AP//////AP//////AP8A////////////AP//AAD/////////////AP////////////8A/////wD/AAD//wD//wD/////AAD///8A/////wD///8AAP//AP////////////8AAP//AAAA//////////8AAP8AAP8AAAD///8A/wD/////AP////8AAP////////////////////////////////8A//8AAP//////////////////////AP//////AP///wD///8A//8AAAD/AP///////////////wAA//8AAP//////////////AP//AP////8A////////////////AAD//wAA//////////////////////8A/////////wD/AP//////////AP//AP8A////////////AP8A/wD///8A/////////wD//////////wAA//////8A//////////////8A////////////////AP//AP///////////////wAAAAD//////wD//////////wD//////////////////wAA//////8A//////8A/////////////wD///8A////AAD///8A/////////////wD//wD///////////8A//8AAAAAAP//AP//AP////////////8A//8A////AP8A/wD/AP///wD///////8A/////wD/////////////////////////////////////////AP////////////////8A//8AAP///////wD/AP///wD///8AAAD/////////AP///////////////////////////wD/AAD/AP//////////////////AP8A/wD//////////////wD//wD//wD/////////AP////8A/////////wD/////AP8A/////////////wD///8A//////////////////////////8A//////8A//8A//////////////////////////////////8A/////////////////////////////wD/////AP////////////////////////8A//8A/////wD///8A/////wD///8A////AP///wD/AP//AP8A/wAA////AP//AAAAAP///wAA/////wD///////8A//////////8A////AAAA/wD/AAAAAP//AP//AP8AAAD/AP////8A////AP//////AP8A/wD///////////8A////////AP//////////////////AP//AP////////8A////////AP////8A////AP///wD/AP////////////8A//////////////////8A////////////////////////////AAAAAAD/AP8A//////8AAP//AP////8A////////////AP////////////////////8AAP//////////AP///////wD/AP///////////////////////////wD/AP//////////////////////////AP////////////////8A////////AP8A//////8A/wD///////////////////8A//8A////////AP////8AAP//////////AAD/////////AP8A////AP8A/wD/AAAA/////wAA/wD//wAA//////8A//////////8AAP///wD/AAD/////////AP///wD///8A////AP//AP8AAP///wD///////////////8A//////////////////8A/////wD/////////////////////////AP//AP//////AP8A////AP//AP//////////AP//////AP///////////wD/////////////////////////AAD/////AAD///8A////AAAA////////////////////////////////////////////AP8A/wD///////////8A/////////////////////wAA//////8A//8A/wAA//////////////////////////////////////8A//////8AAP//AP//////AP////////8A/////wD///////////////8A/wD//////////wD//////wD//////wD/////////////AP///////////////wD//////////wD/AP8A////AAD//////wD///////8A/////wD//wAAAP//////AP///wD///8A/wD//wAA////AP///wD///8A//////8A////////////AP////////8A/////wAAAP///////////wD///8A////////////////AAD/AP8A//8A/wD///8A/////////////////////////////////////////wD/AP////8A//////////////////8A//8A/wD//////////////wD//////////////////wAA////////AP8A/wD/AP///////////////////////wD///////////////////////////////8A////////////////////////////////////AP////////////8A//8A/////wD///////////////////8A/////wD//wD///8AAAD//////wD/////AP//////AAD//////wAA/////wAA/wD///8A//////////8A/////////wD//wD//wD/AAD//////wD/AP8A//8A////////////AP8A/wD//////wD//wD/AP//AAD///8A/wD/AP///wD//////////////////////////////////wAA////AP//////AP8A/////////wAA//8A/wAA//8A//////////////8A////////////////////////////AP////8A//8A/////////////////////////wD/////AP//////////////AP///wD//wD/////AP//////AP8A/wD/////AP///////////////////////////////////////wD/////////////////////AAD///////8A////AP////////8A////AP///wD/AP///////wD///////////////////8AAAAA/////wD///8AAAD/////AP//AP///wAA/wD//////////wD///8A//8A//8A//////////////8A/wD///8AAP///wD/////////AP///wD/////AAAAAP////8AAP///wD///////8A//8A//8AAAD/////AP///wAAAP//////////////////////////////////////////////AP////8A/wD//////wD/////////AP//AAD//wAAAAAA/wD///////////////////////////////////////8A//8A////AP////8A/////////////wD//////wD/AP//////////////AP////8A/////wD//////wD//////wAAAP///wD///////////////////////8A/wD///////8A//////8A//////8A////AP///wD///////8A/wD/AP///////////wD///////////////////////8AAP8AAP//AP//AP//AP///wAA/wAA//8AAP///////wAA//8A//8A//////8A/////wD/AP///wD///////8A/wAA////AP//AAD///////8A/////wD//wAA/wD///8A//8AAAD/AAAAAP8AAAD/////AAAA/wD/////AAD//wD///////8A//////////8AAP//////////////////AAD/////////////AAAAAAD/////AAD/////////////AP//AP//AAD/AP8A/wD//////wAA//////////////////////////////////////////////8AAP//AP//////////////AP///////////wD/////AP///////////////////wD//////////wD//////wD/////AP//AP//////////AP///////////////////////wD/////AP////////////////8A/wAA/////////////wD//////////wD//wD/AAD///8A//8AAAAA//8A//8A//////8A////AP8AAP//////AP//////////////AAD///8A////AP//////AAD/AP8A//////////8A////////AP//AP8A/wAAAAD/AAAA/wD//wD/////AAD//wD//wAAAP////////////////8A////////////////////////AAAA/wD//////////wD/////////AAD///////////////8A//////////////8A//////8A//8AAP8A/wAA/////////////////wD//////////////////////////////wD/////AAD/////////////////AAD//////wD//////////////////wD/AP////8A/////wD/////////////AP///////////////////////////////////wD///8A//////////////8A/////wD/////AP//AP////8AAP///////////wD/AP////////////////////8A//8AAP//////AP////8A/wAA/wD//wD//////wD/AP8A////////AP//AP8A//8AAAAAAP8A//8A/wD//wD///8A//8A/wD//wD/////AP//////AP8A//////////8A/wD/AP8AAP//AP//AP///////////wD///////////8A//////8A/wAA//////8A/wD/AP///////wD///////////8A////AP///wD/////AP8A/////wD//////wD//////////wD//////wAA/////////////////////////////////////////////////wD//////wD/////////////////////////////AP////8A//8A//8A/wD/AP///////wD//////////wD/////AP////////////8AAP///wD/////////////////////////////////////////////AP////8AAP///wD/////AP8A/////wD/////AP///wD//////wAAAP///wD/////////AP////8AAAD/////AAAA//8A////AP///////wD//wD//wD///8A//////8A//8A////////AP//AP////8A/wD//////////wAA////AP8AAP///////wD//////////////////////wD/AP//////AP///wAAAAD///8AAAD//wAA//////8A//8A//8A//////////8A//8A//8AAAD///8AAP8A//8A/////////wD/////AAAAAAD///////8A/////////wD//////////////////////wD/////AP////////////////////////8A/////////wD/////////AP//////////AP//////AP//////////AP////8A//////8A/wD///////////////////////8AAP///////wD//////////////wD/AAD//wD//////////////wD//wD/AP8AAP////8A/wD/////AP//AP8A//8A//8A/wD//wD//wD///////8A/wD/AP///////wD//wD/AP8A/wD/AP///////wD//wAA//////////8AAAD/AP//AP////8AAAAA//8AAP///wD//////wD//////wD///8A////AP//AP///wD//////////////////////wD//////wAAAAD/////AAAA/wD/AAD/////AP//AAD/AP///////////////wAA//8AAAD/AP////8AAP8A//8A/////wD//////wD/AAAA/////wAA/wD//wD/AP//////////AP///////////////////////////////////wAA/////wD//////////wD/////AP///////////wD//wD/////AP//////////AP///wD/AP//AP////////////////////8A////AP////////8A//////8A/////////////wAA////////AAD/AP//////AP////8A////AP//AAAA/wAAAP8A////////////AP8A//////////8A////////AP///////wAA/wAAAP///////wD//////////wD//wD///8AAP////8AAP8A/////wD/////////////////////////AP//AP//////////////////////AAD///////8AAP///wAA//////8A//////////8A/wAA//8A////AP///wAA/wD///////8A////AP//AP8A//////8A//8A/wD//wD//////wAA/wD/AP///wD///8AAP8A/////////////////wD//////////wD//////wD///////////8A/wD/AP////////////////////////////8A/wD//////////////wD//wAAAAD///8A/////////////wD//////wD///8A////AP//////////AP8A////////////////AP///////////////wAA/wD/////////////////AP///////wD/AP//AAD/AP8A/////wD//////wD///////////8A//8AAAAA//////8A//8A//////8A////AP//AP////8AAAAA////////AAD/AP///////////////wD///////////////8A/wD/////AP//AP//AP////////8A/wAA/////////////wAA/////////wAA/wAA/////wD///8AAP//AP//AAD//////////wAAAAD/////////AP//AP8A/wAAAP8A//////////8A////////AAD//////wD//////wD/AAD//////wD///////////////////////8A////////AP////////////8A/////////wD///////////////////////////8A/////wD///////////8A/wD/////////AP////8A/wD//wD///////////8A//////8A////////////////AP///////////////////wAA//8A////////AP8A/////////////////wD/AP///wD//wD/AP///wD//wD/AAD//wD//wD//wD/AAD/////////AAD//////////////////////wD//////////////wD//////wAA/////////wAA/////wD/AAD/AAD///8A////AP////8A//////8A/wD//wAAAAAA//8AAP////8A////////AP8AAAD/AP8A/wD//wD///8A/////wD///////////////8AAP8AAP//AP//AAD//wD//////wD//////wAAAAD///8A//8AAP////////////8A//////////////////////8A//////8A/wAAAAD//////wD/AAD///////////8A//8A//////////////////8AAP8AAP//AP////////8A////////////////AP////////////////////8A/wD///////////////8A//////////////8A//////8A//////8A//////////////////////8A/////wD/AAD//wD//wAAAP8A/wD//wD///////////8AAP////8AAP////8A/wAAAAAA/wD/AP///////////wD//////////wAA/wD/AP8A//8A/wD///8AAP///wAAAAD/AAAAAP////8AAAD//////wD//wD///////////8AAP///wD//wD//wD///8A/wD//wAAAP8AAAD/////AAD/AAD///8A//8AAP8A//8A/wD/////AAAA/wD//wAA/wD///8A//////////8A////////AP//AAAA////AP///////wD///////8A////////AP////8A/wD/////AP8A////////AP///////////wD/AAD//wD///8AAP///////wD//////wD/////AP//////////AAD/AP////8AAAD///8AAAAA/wAA/wAA/////wD/////////////AP//////////////////AP///////////wD/AP///////////wD//wD///8AAP///wAAAP///wD//wD/AP8AAP8AAAD///8A////AP//////AP///wD/AP8A//8A////////AP8A//8A/wAA//8A/wAAAP//////AAD/AP////////8A//////8A/////////wAA//8A//////8A//8A////AAAA/wD///////////8A/wD/AP//AAD//wD//wAAAAAAAP8A////AP//AAAA//////////8A/wAAAP//AP//AP8AAAD/AAD/AAAA////AP8A//8AAP///wD///8A/wD///8A/wD/////////AAD/////////////////////////////////AP////8A/wAA////////////AAD/////AP8AAP//AP////////////8A//8A/////wAAAP//////////////AAD/AP///////////////////////////////wD///8A/////wD//////////wD//////////wD/AP//AP////////8A////////AP//////AP//AP//////AAD/AP8A/wD///////////////8A/////wD/////////AAAAAP//////AP//////////AP///wD//////////wD/AAD/AP///////wD/AP8A////////////AP///////wD///8AAP///wAA/wD///8A//8AAAD/AP//AAD//wAAAP///wD/AP///wAA/wD//////wD/AAAAAAD/AP////////8A/wD//wD///8A/wAAAAD/AP///wAAAP///wD//////////wD///8AAP///wD//////wD///8AAP///wD/////AP//////////AAD///////8A/wAA//8A//8A//8A//8A/wD/AP8A////////////////AAD/////////AP//////////////////////AP////////8AAP////8A//////8AAP////////8A////////////////AAD//////wAAAP//AP//////AAD/////////AP////8A//8A////AP///////////wD/////AP8A////////AAD/////AP///wD//////////wD///8A/wD///8A////////AP////8A/wD///////8A/wD//////////wD/AP////8A/////wD/////////AP////8AAAAA////AP8A/////wD//wD/AAD//wD/AAD//////wD/AAD///8A/wD/////AP8A/wD/////////////AP//AAD//wAAAAD//wAAAP8AAP///wD/AP//AP///////wAA/wAAAP//////////////////AAAA/wD//wD/AP//////////AP//////////////////AP////////8AAP////////////////////8A/////wD/AP8A//////8AAP//////////AP//AP//AP8AAP//AAD/////AP8A////AP//////AP//////////////////////AP////8A/////////////wD//wD//wAA/////////wAA//////8AAAAA/////////////////////wD//wD/AAD///8A////////AP///wD/AP///wD/AAAA/wAA////AP8A/wAA/wAAAAD/AP////8A////AP//AP8A////////////////////////AP///wD//wAAAP8AAAD//wD/AAD//////wD/////AAD//wAAAP///wD/////////AP//AP8A//8A////////AP8AAP///wD//////////wD//////wD/AP///////////wD//////////wD//w==" +} \ No newline at end of file diff --git a/src/main/resources/static/js/JcPrinter/element-ui_lib_index.js b/src/main/resources/static/js/JcPrinter/element-ui_lib_index.js new file mode 100644 index 00000000..18c1c23d --- /dev/null +++ b/src/main/resources/static/js/JcPrinter/element-ui_lib_index.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("vue")):"function"==typeof define&&define.amd?define("ELEMENT",["vue"],t):"object"==typeof exports?exports.ELEMENT=t(require("vue")):e.ELEMENT=t(e.Vue)}("undefined"!=typeof self?self:this,function(e){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist/",n(n.s=51)}([function(t,n){t.exports=e},function(e,t,n){var i=n(4);e.exports=function(e,t,n){return void 0===n?i(e,t,!1):i(e,n,!1!==t)}},function(e,t,n){var i;!function(r){"use strict";var o={},s=/d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,a="[^\\s]+",l=/\[([^]*?)\]/gm,u=function(){};function c(e,t){for(var n=[],i=0,r=e.length;i3?0:(e-e%10!=10)*e%10]}};var g={D:function(e){return e.getDay()},DD:function(e){return d(e.getDay())},Do:function(e,t){return t.DoFn(e.getDate())},d:function(e){return e.getDate()},dd:function(e){return d(e.getDate())},ddd:function(e,t){return t.dayNamesShort[e.getDay()]},dddd:function(e,t){return t.dayNames[e.getDay()]},M:function(e){return e.getMonth()+1},MM:function(e){return d(e.getMonth()+1)},MMM:function(e,t){return t.monthNamesShort[e.getMonth()]},MMMM:function(e,t){return t.monthNames[e.getMonth()]},yy:function(e){return d(String(e.getFullYear()),4).substr(2)},yyyy:function(e){return d(e.getFullYear(),4)},h:function(e){return e.getHours()%12||12},hh:function(e){return d(e.getHours()%12||12)},H:function(e){return e.getHours()},HH:function(e){return d(e.getHours())},m:function(e){return e.getMinutes()},mm:function(e){return d(e.getMinutes())},s:function(e){return e.getSeconds()},ss:function(e){return d(e.getSeconds())},S:function(e){return Math.round(e.getMilliseconds()/100)},SS:function(e){return d(Math.round(e.getMilliseconds()/10),2)},SSS:function(e){return d(e.getMilliseconds(),3)},a:function(e,t){return e.getHours()<12?t.amPm[0]:t.amPm[1]},A:function(e,t){return e.getHours()<12?t.amPm[0].toUpperCase():t.amPm[1].toUpperCase()},ZZ:function(e){var t=e.getTimezoneOffset();return(t>0?"-":"+")+d(100*Math.floor(Math.abs(t)/60)+Math.abs(t)%60,4)}},y={d:["\\d\\d?",function(e,t){e.day=t}],Do:["\\d\\d?"+a,function(e,t){e.day=parseInt(t,10)}],M:["\\d\\d?",function(e,t){e.month=t-1}],yy:["\\d\\d?",function(e,t){var n=+(""+(new Date).getFullYear()).substr(0,2);e.year=""+(t>68?n-1:n)+t}],h:["\\d\\d?",function(e,t){e.hour=t}],m:["\\d\\d?",function(e,t){e.minute=t}],s:["\\d\\d?",function(e,t){e.second=t}],yyyy:["\\d{4}",function(e,t){e.year=t}],S:["\\d",function(e,t){e.millisecond=100*t}],SS:["\\d{2}",function(e,t){e.millisecond=10*t}],SSS:["\\d{3}",function(e,t){e.millisecond=t}],D:["\\d\\d?",u],ddd:[a,u],MMM:[a,h("monthNamesShort")],MMMM:[a,h("monthNames")],a:[a,function(e,t,n){var i=t.toLowerCase();i===n.amPm[0]?e.isPm=!1:i===n.amPm[1]&&(e.isPm=!0)}],ZZ:["[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z",function(e,t){var n,i=(t+"").match(/([+-]|\d\d)/gi);i&&(n=60*i[1]+parseInt(i[2],10),e.timezoneOffset="+"===i[0]?n:-n)}]};y.dd=y.d,y.dddd=y.ddd,y.DD=y.D,y.mm=y.m,y.hh=y.H=y.HH=y.h,y.MM=y.M,y.ss=y.s,y.A=y.a,o.masks={default:"ddd MMM dd yyyy HH:mm:ss",shortDate:"M/D/yy",mediumDate:"MMM d, yyyy",longDate:"MMMM d, yyyy",fullDate:"dddd, MMMM d, yyyy",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"},o.format=function(e,t,n){var i=n||o.i18n;if("number"==typeof e&&(e=new Date(e)),"[object Date]"!==Object.prototype.toString.call(e)||isNaN(e.getTime()))throw new Error("Invalid Date in fecha.format");t=o.masks[t]||t||o.masks.default;var r=[];return(t=(t=t.replace(l,function(e,t){return r.push(t),"@@@"})).replace(s,function(t){return t in g?g[t](e,i):t.slice(1,t.length-1)})).replace(/@@@/g,function(){return r.shift()})},o.parse=function(e,t,n){var i=n||o.i18n;if("string"!=typeof t)throw new Error("Invalid format in fecha.parse");if(t=o.masks[t]||t,e.length>1e3)return null;var r={},a=[],u=[];t=t.replace(l,function(e,t){return u.push(t),"@@@"});var c,h=(c=t,c.replace(/[|\\{()[^$+*?.-]/g,"\\$&")).replace(s,function(e){if(y[e]){var t=y[e];return a.push(t[1]),"("+t[0]+")"}return e});h=h.replace(/@@@/g,function(){return u.shift()});var d=e.match(new RegExp(h,"i"));if(!d)return null;for(var f=1;fe?u():!0!==t&&(r=setTimeout(i?function(){r=void 0}:u,void 0===i?e-a:e))}}},function(e,t,n){(function(e,i){var r;(function(){var o,s=200,a="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",l="Expected a function",u="__lodash_hash_undefined__",c=500,h="__lodash_placeholder__",d=1,f=2,p=4,m=1,v=2,g=1,y=2,b=4,_=8,w=16,x=32,C=64,k=128,S=256,D=512,E=30,$="...",T=800,M=16,N=1,P=2,O=1/0,I=9007199254740991,A=1.7976931348623157e308,F=NaN,L=4294967295,V=L-1,B=L>>>1,z=[["ary",k],["bind",g],["bindKey",y],["curry",_],["curryRight",w],["flip",D],["partial",x],["partialRight",C],["rearg",S]],R="[object Arguments]",H="[object Array]",j="[object AsyncFunction]",W="[object Boolean]",q="[object Date]",Y="[object DOMException]",K="[object Error]",U="[object Function]",G="[object GeneratorFunction]",X="[object Map]",Z="[object Number]",J="[object Null]",Q="[object Object]",ee="[object Proxy]",te="[object RegExp]",ne="[object Set]",ie="[object String]",re="[object Symbol]",oe="[object Undefined]",se="[object WeakMap]",ae="[object WeakSet]",le="[object ArrayBuffer]",ue="[object DataView]",ce="[object Float32Array]",he="[object Float64Array]",de="[object Int8Array]",fe="[object Int16Array]",pe="[object Int32Array]",me="[object Uint8Array]",ve="[object Uint8ClampedArray]",ge="[object Uint16Array]",ye="[object Uint32Array]",be=/\b__p \+= '';/g,_e=/\b(__p \+=) '' \+/g,we=/(__e\(.*?\)|\b__t\)) \+\n'';/g,xe=/&(?:amp|lt|gt|quot|#39);/g,Ce=/[&<>"']/g,ke=RegExp(xe.source),Se=RegExp(Ce.source),De=/<%-([\s\S]+?)%>/g,Ee=/<%([\s\S]+?)%>/g,$e=/<%=([\s\S]+?)%>/g,Te=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Me=/^\w*$/,Ne=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Pe=/[\\^$.*+?()[\]{}|]/g,Oe=RegExp(Pe.source),Ie=/^\s+|\s+$/g,Ae=/^\s+/,Fe=/\s+$/,Le=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ve=/\{\n\/\* \[wrapped with (.+)\] \*/,Be=/,? & /,ze=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Re=/\\(\\)?/g,He=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,je=/\w*$/,We=/^[-+]0x[0-9a-f]+$/i,qe=/^0b[01]+$/i,Ye=/^\[object .+?Constructor\]$/,Ke=/^0o[0-7]+$/i,Ue=/^(?:0|[1-9]\d*)$/,Ge=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Xe=/($^)/,Ze=/['\n\r\u2028\u2029\\]/g,Je="\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff",Qe="\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",et="[\\ud800-\\udfff]",tt="["+Qe+"]",nt="["+Je+"]",it="\\d+",rt="[\\u2700-\\u27bf]",ot="[a-z\\xdf-\\xf6\\xf8-\\xff]",st="[^\\ud800-\\udfff"+Qe+it+"\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde]",at="\\ud83c[\\udffb-\\udfff]",lt="[^\\ud800-\\udfff]",ut="(?:\\ud83c[\\udde6-\\uddff]){2}",ct="[\\ud800-\\udbff][\\udc00-\\udfff]",ht="[A-Z\\xc0-\\xd6\\xd8-\\xde]",dt="(?:"+ot+"|"+st+")",ft="(?:"+ht+"|"+st+")",pt="(?:"+nt+"|"+at+")"+"?",mt="[\\ufe0e\\ufe0f]?"+pt+("(?:\\u200d(?:"+[lt,ut,ct].join("|")+")[\\ufe0e\\ufe0f]?"+pt+")*"),vt="(?:"+[rt,ut,ct].join("|")+")"+mt,gt="(?:"+[lt+nt+"?",nt,ut,ct,et].join("|")+")",yt=RegExp("['’]","g"),bt=RegExp(nt,"g"),_t=RegExp(at+"(?="+at+")|"+gt+mt,"g"),wt=RegExp([ht+"?"+ot+"+(?:['’](?:d|ll|m|re|s|t|ve))?(?="+[tt,ht,"$"].join("|")+")",ft+"+(?:['’](?:D|LL|M|RE|S|T|VE))?(?="+[tt,ht+dt,"$"].join("|")+")",ht+"?"+dt+"+(?:['’](?:d|ll|m|re|s|t|ve))?",ht+"+(?:['’](?:D|LL|M|RE|S|T|VE))?","\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])","\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",it,vt].join("|"),"g"),xt=RegExp("[\\u200d\\ud800-\\udfff"+Je+"\\ufe0e\\ufe0f]"),Ct=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,kt=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],St=-1,Dt={};Dt[ce]=Dt[he]=Dt[de]=Dt[fe]=Dt[pe]=Dt[me]=Dt[ve]=Dt[ge]=Dt[ye]=!0,Dt[R]=Dt[H]=Dt[le]=Dt[W]=Dt[ue]=Dt[q]=Dt[K]=Dt[U]=Dt[X]=Dt[Z]=Dt[Q]=Dt[te]=Dt[ne]=Dt[ie]=Dt[se]=!1;var Et={};Et[R]=Et[H]=Et[le]=Et[ue]=Et[W]=Et[q]=Et[ce]=Et[he]=Et[de]=Et[fe]=Et[pe]=Et[X]=Et[Z]=Et[Q]=Et[te]=Et[ne]=Et[ie]=Et[re]=Et[me]=Et[ve]=Et[ge]=Et[ye]=!0,Et[K]=Et[U]=Et[se]=!1;var $t={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Tt=parseFloat,Mt=parseInt,Nt="object"==typeof e&&e&&e.Object===Object&&e,Pt="object"==typeof self&&self&&self.Object===Object&&self,Ot=Nt||Pt||Function("return this")(),It=t&&!t.nodeType&&t,At=It&&"object"==typeof i&&i&&!i.nodeType&&i,Ft=At&&At.exports===It,Lt=Ft&&Nt.process,Vt=function(){try{var e=At&&At.require&&At.require("util").types;return e||Lt&&Lt.binding&&Lt.binding("util")}catch(e){}}(),Bt=Vt&&Vt.isArrayBuffer,zt=Vt&&Vt.isDate,Rt=Vt&&Vt.isMap,Ht=Vt&&Vt.isRegExp,jt=Vt&&Vt.isSet,Wt=Vt&&Vt.isTypedArray;function qt(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}function Yt(e,t,n,i){for(var r=-1,o=null==e?0:e.length;++r-1}function Jt(e,t,n){for(var i=-1,r=null==e?0:e.length;++i-1;);return n}function wn(e,t){for(var n=e.length;n--&&ln(t,e[n],0)>-1;);return n}var xn=fn({"À":"A","Á":"A","Â":"A","Ã":"A","Ä":"A","Å":"A","à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","Ç":"C","ç":"c","Ð":"D","ð":"d","È":"E","É":"E","Ê":"E","Ë":"E","è":"e","é":"e","ê":"e","ë":"e","Ì":"I","Í":"I","Î":"I","Ï":"I","ì":"i","í":"i","î":"i","ï":"i","Ñ":"N","ñ":"n","Ò":"O","Ó":"O","Ô":"O","Õ":"O","Ö":"O","Ø":"O","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","Ù":"U","Ú":"U","Û":"U","Ü":"U","ù":"u","ú":"u","û":"u","ü":"u","Ý":"Y","ý":"y","ÿ":"y","Æ":"Ae","æ":"ae","Þ":"Th","þ":"th","ß":"ss","Ā":"A","Ă":"A","Ą":"A","ā":"a","ă":"a","ą":"a","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","ć":"c","ĉ":"c","ċ":"c","č":"c","Ď":"D","Đ":"D","ď":"d","đ":"d","Ē":"E","Ĕ":"E","Ė":"E","Ę":"E","Ě":"E","ē":"e","ĕ":"e","ė":"e","ę":"e","ě":"e","Ĝ":"G","Ğ":"G","Ġ":"G","Ģ":"G","ĝ":"g","ğ":"g","ġ":"g","ģ":"g","Ĥ":"H","Ħ":"H","ĥ":"h","ħ":"h","Ĩ":"I","Ī":"I","Ĭ":"I","Į":"I","İ":"I","ĩ":"i","ī":"i","ĭ":"i","į":"i","ı":"i","Ĵ":"J","ĵ":"j","Ķ":"K","ķ":"k","ĸ":"k","Ĺ":"L","Ļ":"L","Ľ":"L","Ŀ":"L","Ł":"L","ĺ":"l","ļ":"l","ľ":"l","ŀ":"l","ł":"l","Ń":"N","Ņ":"N","Ň":"N","Ŋ":"N","ń":"n","ņ":"n","ň":"n","ŋ":"n","Ō":"O","Ŏ":"O","Ő":"O","ō":"o","ŏ":"o","ő":"o","Ŕ":"R","Ŗ":"R","Ř":"R","ŕ":"r","ŗ":"r","ř":"r","Ś":"S","Ŝ":"S","Ş":"S","Š":"S","ś":"s","ŝ":"s","ş":"s","š":"s","Ţ":"T","Ť":"T","Ŧ":"T","ţ":"t","ť":"t","ŧ":"t","Ũ":"U","Ū":"U","Ŭ":"U","Ů":"U","Ű":"U","Ų":"U","ũ":"u","ū":"u","ŭ":"u","ů":"u","ű":"u","ų":"u","Ŵ":"W","ŵ":"w","Ŷ":"Y","ŷ":"y","Ÿ":"Y","Ź":"Z","Ż":"Z","Ž":"Z","ź":"z","ż":"z","ž":"z","IJ":"IJ","ij":"ij","Œ":"Oe","œ":"oe","ʼn":"'n","ſ":"s"}),Cn=fn({"&":"&","<":"<",">":">",'"':""","'":"'"});function kn(e){return"\\"+$t[e]}function Sn(e){return xt.test(e)}function Dn(e){var t=-1,n=Array(e.size);return e.forEach(function(e,i){n[++t]=[i,e]}),n}function En(e,t){return function(n){return e(t(n))}}function $n(e,t){for(var n=-1,i=e.length,r=0,o=[];++n",""":'"',"'":"'"});var In=function e(t){var n,i=(t=null==t?Ot:In.defaults(Ot.Object(),t,In.pick(Ot,kt))).Array,r=t.Date,Je=t.Error,Qe=t.Function,et=t.Math,tt=t.Object,nt=t.RegExp,it=t.String,rt=t.TypeError,ot=i.prototype,st=Qe.prototype,at=tt.prototype,lt=t["__core-js_shared__"],ut=st.toString,ct=at.hasOwnProperty,ht=0,dt=(n=/[^.]+$/.exec(lt&<.keys&<.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"",ft=at.toString,pt=ut.call(tt),mt=Ot._,vt=nt("^"+ut.call(ct).replace(Pe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),gt=Ft?t.Buffer:o,_t=t.Symbol,xt=t.Uint8Array,$t=gt?gt.allocUnsafe:o,Nt=En(tt.getPrototypeOf,tt),Pt=tt.create,It=at.propertyIsEnumerable,At=ot.splice,Lt=_t?_t.isConcatSpreadable:o,Vt=_t?_t.iterator:o,on=_t?_t.toStringTag:o,fn=function(){try{var e=Bo(tt,"defineProperty");return e({},"",{}),e}catch(e){}}(),An=t.clearTimeout!==Ot.clearTimeout&&t.clearTimeout,Fn=r&&r.now!==Ot.Date.now&&r.now,Ln=t.setTimeout!==Ot.setTimeout&&t.setTimeout,Vn=et.ceil,Bn=et.floor,zn=tt.getOwnPropertySymbols,Rn=gt?gt.isBuffer:o,Hn=t.isFinite,jn=ot.join,Wn=En(tt.keys,tt),qn=et.max,Yn=et.min,Kn=r.now,Un=t.parseInt,Gn=et.random,Xn=ot.reverse,Zn=Bo(t,"DataView"),Jn=Bo(t,"Map"),Qn=Bo(t,"Promise"),ei=Bo(t,"Set"),ti=Bo(t,"WeakMap"),ni=Bo(tt,"create"),ii=ti&&new ti,ri={},oi=hs(Zn),si=hs(Jn),ai=hs(Qn),li=hs(ei),ui=hs(ti),ci=_t?_t.prototype:o,hi=ci?ci.valueOf:o,di=ci?ci.toString:o;function fi(e){if($a(e)&&!ga(e)&&!(e instanceof gi)){if(e instanceof vi)return e;if(ct.call(e,"__wrapped__"))return ds(e)}return new vi(e)}var pi=function(){function e(){}return function(t){if(!Ea(t))return{};if(Pt)return Pt(t);e.prototype=t;var n=new e;return e.prototype=o,n}}();function mi(){}function vi(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=o}function gi(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=L,this.__views__=[]}function yi(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=t?e:t)),e}function Ai(e,t,n,i,r,s){var a,l=t&d,u=t&f,c=t&p;if(n&&(a=r?n(e,i,r,s):n(e)),a!==o)return a;if(!Ea(e))return e;var h=ga(e);if(h){if(a=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&ct.call(e,"index")&&(n.index=e.index,n.input=e.input),n}(e),!l)return no(e,a)}else{var m=Ho(e),v=m==U||m==G;if(wa(e))return Xr(e,l);if(m==Q||m==R||v&&!r){if(a=u||v?{}:Wo(e),!l)return u?function(e,t){return io(e,Ro(e),t)}(e,function(e,t){return e&&io(t,ol(t),e)}(a,e)):function(e,t){return io(e,zo(e),t)}(e,Ni(a,e))}else{if(!Et[m])return r?e:{};a=function(e,t,n){var i,r,o,s=e.constructor;switch(t){case le:return Zr(e);case W:case q:return new s(+e);case ue:return function(e,t){var n=t?Zr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)}(e,n);case ce:case he:case de:case fe:case pe:case me:case ve:case ge:case ye:return Jr(e,n);case X:return new s;case Z:case ie:return new s(e);case te:return(o=new(r=e).constructor(r.source,je.exec(r))).lastIndex=r.lastIndex,o;case ne:return new s;case re:return i=e,hi?tt(hi.call(i)):{}}}(e,m,l)}}s||(s=new xi);var g=s.get(e);if(g)return g;s.set(e,a),Oa(e)?e.forEach(function(i){a.add(Ai(i,t,n,i,e,s))}):Ta(e)&&e.forEach(function(i,r){a.set(r,Ai(i,t,n,r,e,s))});var y=h?o:(c?u?Po:No:u?ol:rl)(e);return Kt(y||e,function(i,r){y&&(i=e[r=i]),$i(a,r,Ai(i,t,n,r,e,s))}),a}function Fi(e,t,n){var i=n.length;if(null==e)return!i;for(e=tt(e);i--;){var r=n[i],s=t[r],a=e[r];if(a===o&&!(r in e)||!s(a))return!1}return!0}function Li(e,t,n){if("function"!=typeof e)throw new rt(l);return rs(function(){e.apply(o,n)},t)}function Vi(e,t,n,i){var r=-1,o=Zt,a=!0,l=e.length,u=[],c=t.length;if(!l)return u;n&&(t=Qt(t,gn(n))),i?(o=Jt,a=!1):t.length>=s&&(o=bn,a=!1,t=new wi(t));e:for(;++r-1},bi.prototype.set=function(e,t){var n=this.__data__,i=Ti(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this},_i.prototype.clear=function(){this.size=0,this.__data__={hash:new yi,map:new(Jn||bi),string:new yi}},_i.prototype.delete=function(e){var t=Lo(this,e).delete(e);return this.size-=t?1:0,t},_i.prototype.get=function(e){return Lo(this,e).get(e)},_i.prototype.has=function(e){return Lo(this,e).has(e)},_i.prototype.set=function(e,t){var n=Lo(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this},wi.prototype.add=wi.prototype.push=function(e){return this.__data__.set(e,u),this},wi.prototype.has=function(e){return this.__data__.has(e)},xi.prototype.clear=function(){this.__data__=new bi,this.size=0},xi.prototype.delete=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},xi.prototype.get=function(e){return this.__data__.get(e)},xi.prototype.has=function(e){return this.__data__.has(e)},xi.prototype.set=function(e,t){var n=this.__data__;if(n instanceof bi){var i=n.__data__;if(!Jn||i.length0&&n(a)?t>1?Wi(a,t-1,n,i,r):en(r,a):i||(r[r.length]=a)}return r}var qi=ao(),Yi=ao(!0);function Ki(e,t){return e&&qi(e,t,rl)}function Ui(e,t){return e&&Yi(e,t,rl)}function Gi(e,t){return Xt(t,function(t){return ka(e[t])})}function Xi(e,t){for(var n=0,i=(t=Yr(t,e)).length;null!=e&&nt}function er(e,t){return null!=e&&ct.call(e,t)}function tr(e,t){return null!=e&&t in tt(e)}function nr(e,t,n){for(var r=n?Jt:Zt,s=e[0].length,a=e.length,l=a,u=i(a),c=1/0,h=[];l--;){var d=e[l];l&&t&&(d=Qt(d,gn(t))),c=Yn(d.length,c),u[l]=!n&&(t||s>=120&&d.length>=120)?new wi(l&&d):o}d=e[0];var f=-1,p=u[0];e:for(;++f=a)return l;var u=n[i];return l*("desc"==u?-1:1)}}return e.index-t.index}(e,t,n)})}function yr(e,t,n){for(var i=-1,r=t.length,o={};++i-1;)a!==e&&At.call(a,l,1),At.call(e,l,1);return e}function _r(e,t){for(var n=e?t.length:0,i=n-1;n--;){var r=t[n];if(n==i||r!==o){var o=r;Yo(r)?At.call(e,r,1):Vr(e,r)}}return e}function wr(e,t){return e+Bn(Gn()*(t-e+1))}function xr(e,t){var n="";if(!e||t<1||t>I)return n;do{t%2&&(n+=e),(t=Bn(t/2))&&(e+=e)}while(t);return n}function Cr(e,t){return os(es(e,t,Ml),e+"")}function kr(e){return ki(fl(e))}function Sr(e,t){var n=fl(e);return ls(n,Ii(t,0,n.length))}function Dr(e,t,n,i){if(!Ea(e))return e;for(var r=-1,s=(t=Yr(t,e)).length,a=s-1,l=e;null!=l&&++ro?0:o+t),(n=n>o?o:n)<0&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var s=i(o);++r>>1,s=e[o];null!==s&&!Aa(s)&&(n?s<=t:s=s){var c=t?null:Co(e);if(c)return Tn(c);a=!1,r=bn,u=new wi}else u=t?[]:l;e:for(;++i=i?e:Mr(e,t,n)}var Gr=An||function(e){return Ot.clearTimeout(e)};function Xr(e,t){if(t)return e.slice();var n=e.length,i=$t?$t(n):new e.constructor(n);return e.copy(i),i}function Zr(e){var t=new e.constructor(e.byteLength);return new xt(t).set(new xt(e)),t}function Jr(e,t){var n=t?Zr(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)}function Qr(e,t){if(e!==t){var n=e!==o,i=null===e,r=e==e,s=Aa(e),a=t!==o,l=null===t,u=t==t,c=Aa(t);if(!l&&!c&&!s&&e>t||s&&a&&u&&!l&&!c||i&&a&&u||!n&&u||!r)return 1;if(!i&&!s&&!c&&e1?n[r-1]:o,a=r>2?n[2]:o;for(s=e.length>3&&"function"==typeof s?(r--,s):o,a&&Ko(n[0],n[1],a)&&(s=r<3?o:s,r=1),t=tt(t);++i-1?r[s?t[a]:a]:o}}function fo(e){return Mo(function(t){var n=t.length,i=n,r=vi.prototype.thru;for(e&&t.reverse();i--;){var s=t[i];if("function"!=typeof s)throw new rt(l);if(r&&!a&&"wrapper"==Io(s))var a=new vi([],!0)}for(i=a?i:n;++i1&&_.reverse(),d&&cl))return!1;var c=s.get(e);if(c&&s.get(t))return c==t;var h=-1,d=!0,f=n&v?new wi:o;for(s.set(e,t),s.set(t,e);++h-1&&e%1==0&&e1?"& ":"")+t[i],t=t.join(n>2?", ":" "),e.replace(Le,"{\n/* [wrapped with "+t+"] */\n")}(i,function(e,t){return Kt(z,function(n){var i="_."+n[0];t&n[1]&&!Zt(e,i)&&e.push(i)}),e.sort()}(function(e){var t=e.match(Ve);return t?t[1].split(Be):[]}(i),n)))}function as(e){var t=0,n=0;return function(){var i=Kn(),r=M-(i-n);if(n=i,r>0){if(++t>=T)return arguments[0]}else t=0;return e.apply(o,arguments)}}function ls(e,t){var n=-1,i=e.length,r=i-1;for(t=t===o?i:t;++n1?e[t-1]:o;return n="function"==typeof n?(e.pop(),n):o,Ps(e,n)});function Bs(e){var t=fi(e);return t.__chain__=!0,t}function zs(e,t){return t(e)}var Rs=Mo(function(e){var t=e.length,n=t?e[0]:0,i=this.__wrapped__,r=function(t){return Oi(t,e)};return!(t>1||this.__actions__.length)&&i instanceof gi&&Yo(n)?((i=i.slice(n,+n+(t?1:0))).__actions__.push({func:zs,args:[r],thisArg:o}),new vi(i,this.__chain__).thru(function(e){return t&&!e.length&&e.push(o),e})):this.thru(r)});var Hs=ro(function(e,t,n){ct.call(e,n)?++e[n]:Pi(e,n,1)});var js=ho(vs),Ws=ho(gs);function qs(e,t){return(ga(e)?Kt:Bi)(e,Fo(t,3))}function Ys(e,t){return(ga(e)?Ut:zi)(e,Fo(t,3))}var Ks=ro(function(e,t,n){ct.call(e,n)?e[n].push(t):Pi(e,n,[t])});var Us=Cr(function(e,t,n){var r=-1,o="function"==typeof t,s=ba(e)?i(e.length):[];return Bi(e,function(e){s[++r]=o?qt(t,e,n):ir(e,t,n)}),s}),Gs=ro(function(e,t,n){Pi(e,n,t)});function Xs(e,t){return(ga(e)?Qt:dr)(e,Fo(t,3))}var Zs=ro(function(e,t,n){e[n?0:1].push(t)},function(){return[[],[]]});var Js=Cr(function(e,t){if(null==e)return[];var n=t.length;return n>1&&Ko(e,t[0],t[1])?t=[]:n>2&&Ko(t[0],t[1],t[2])&&(t=[t[0]]),gr(e,Wi(t,1),[])}),Qs=Fn||function(){return Ot.Date.now()};function ea(e,t,n){return t=n?o:t,t=e&&null==t?e.length:t,So(e,k,o,o,o,o,t)}function ta(e,t){var n;if("function"!=typeof t)throw new rt(l);return e=Ra(e),function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=o),n}}var na=Cr(function(e,t,n){var i=g;if(n.length){var r=$n(n,Ao(na));i|=x}return So(e,i,t,n,r)}),ia=Cr(function(e,t,n){var i=g|y;if(n.length){var r=$n(n,Ao(ia));i|=x}return So(t,i,e,n,r)});function ra(e,t,n){var i,r,s,a,u,c,h=0,d=!1,f=!1,p=!0;if("function"!=typeof e)throw new rt(l);function m(t){var n=i,s=r;return i=r=o,h=t,a=e.apply(s,n)}function v(e){var n=e-c;return c===o||n>=t||n<0||f&&e-h>=s}function g(){var e=Qs();if(v(e))return y(e);u=rs(g,function(e){var n=t-(e-c);return f?Yn(n,s-(e-h)):n}(e))}function y(e){return u=o,p&&i?m(e):(i=r=o,a)}function b(){var e=Qs(),n=v(e);if(i=arguments,r=this,c=e,n){if(u===o)return function(e){return h=e,u=rs(g,t),d?m(e):a}(c);if(f)return Gr(u),u=rs(g,t),m(c)}return u===o&&(u=rs(g,t)),a}return t=ja(t)||0,Ea(n)&&(d=!!n.leading,s=(f="maxWait"in n)?qn(ja(n.maxWait)||0,t):s,p="trailing"in n?!!n.trailing:p),b.cancel=function(){u!==o&&Gr(u),h=0,i=c=r=u=o},b.flush=function(){return u===o?a:y(Qs())},b}var oa=Cr(function(e,t){return Li(e,1,t)}),sa=Cr(function(e,t,n){return Li(e,ja(t)||0,n)});function aa(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new rt(l);var n=function(){var i=arguments,r=t?t.apply(this,i):i[0],o=n.cache;if(o.has(r))return o.get(r);var s=e.apply(this,i);return n.cache=o.set(r,s)||o,s};return n.cache=new(aa.Cache||_i),n}function la(e){if("function"!=typeof e)throw new rt(l);return function(){var t=arguments;switch(t.length){case 0:return!e.call(this);case 1:return!e.call(this,t[0]);case 2:return!e.call(this,t[0],t[1]);case 3:return!e.call(this,t[0],t[1],t[2])}return!e.apply(this,t)}}aa.Cache=_i;var ua=Kr(function(e,t){var n=(t=1==t.length&&ga(t[0])?Qt(t[0],gn(Fo())):Qt(Wi(t,1),gn(Fo()))).length;return Cr(function(i){for(var r=-1,o=Yn(i.length,n);++r=t}),va=rr(function(){return arguments}())?rr:function(e){return $a(e)&&ct.call(e,"callee")&&!It.call(e,"callee")},ga=i.isArray,ya=Bt?gn(Bt):function(e){return $a(e)&&Ji(e)==le};function ba(e){return null!=e&&Da(e.length)&&!ka(e)}function _a(e){return $a(e)&&ba(e)}var wa=Rn||jl,xa=zt?gn(zt):function(e){return $a(e)&&Ji(e)==q};function Ca(e){if(!$a(e))return!1;var t=Ji(e);return t==K||t==Y||"string"==typeof e.message&&"string"==typeof e.name&&!Na(e)}function ka(e){if(!Ea(e))return!1;var t=Ji(e);return t==U||t==G||t==j||t==ee}function Sa(e){return"number"==typeof e&&e==Ra(e)}function Da(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=I}function Ea(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}function $a(e){return null!=e&&"object"==typeof e}var Ta=Rt?gn(Rt):function(e){return $a(e)&&Ho(e)==X};function Ma(e){return"number"==typeof e||$a(e)&&Ji(e)==Z}function Na(e){if(!$a(e)||Ji(e)!=Q)return!1;var t=Nt(e);if(null===t)return!0;var n=ct.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&ut.call(n)==pt}var Pa=Ht?gn(Ht):function(e){return $a(e)&&Ji(e)==te};var Oa=jt?gn(jt):function(e){return $a(e)&&Ho(e)==ne};function Ia(e){return"string"==typeof e||!ga(e)&&$a(e)&&Ji(e)==ie}function Aa(e){return"symbol"==typeof e||$a(e)&&Ji(e)==re}var Fa=Wt?gn(Wt):function(e){return $a(e)&&Da(e.length)&&!!Dt[Ji(e)]};var La=_o(hr),Va=_o(function(e,t){return e<=t});function Ba(e){if(!e)return[];if(ba(e))return Ia(e)?Pn(e):no(e);if(Vt&&e[Vt])return function(e){for(var t,n=[];!(t=e.next()).done;)n.push(t.value);return n}(e[Vt]());var t=Ho(e);return(t==X?Dn:t==ne?Tn:fl)(e)}function za(e){return e?(e=ja(e))===O||e===-O?(e<0?-1:1)*A:e==e?e:0:0===e?e:0}function Ra(e){var t=za(e),n=t%1;return t==t?n?t-n:t:0}function Ha(e){return e?Ii(Ra(e),0,L):0}function ja(e){if("number"==typeof e)return e;if(Aa(e))return F;if(Ea(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=Ea(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(Ie,"");var n=qe.test(e);return n||Ke.test(e)?Mt(e.slice(2),n?2:8):We.test(e)?F:+e}function Wa(e){return io(e,ol(e))}function qa(e){return null==e?"":Fr(e)}var Ya=oo(function(e,t){if(Zo(t)||ba(t))io(t,rl(t),e);else for(var n in t)ct.call(t,n)&&$i(e,n,t[n])}),Ka=oo(function(e,t){io(t,ol(t),e)}),Ua=oo(function(e,t,n,i){io(t,ol(t),e,i)}),Ga=oo(function(e,t,n,i){io(t,rl(t),e,i)}),Xa=Mo(Oi);var Za=Cr(function(e,t){e=tt(e);var n=-1,i=t.length,r=i>2?t[2]:o;for(r&&Ko(t[0],t[1],r)&&(i=1);++n1),t}),io(e,Po(e),n),i&&(n=Ai(n,d|f|p,$o));for(var r=t.length;r--;)Vr(n,t[r]);return n});var ul=Mo(function(e,t){return null==e?{}:function(e,t){return yr(e,t,function(t,n){return el(e,n)})}(e,t)});function cl(e,t){if(null==e)return{};var n=Qt(Po(e),function(e){return[e]});return t=Fo(t),yr(e,n,function(e,n){return t(e,n[0])})}var hl=ko(rl),dl=ko(ol);function fl(e){return null==e?[]:yn(e,rl(e))}var pl=uo(function(e,t,n){return t=t.toLowerCase(),e+(n?ml(t):t)});function ml(e){return Cl(qa(e).toLowerCase())}function vl(e){return(e=qa(e))&&e.replace(Ge,xn).replace(bt,"")}var gl=uo(function(e,t,n){return e+(n?"-":"")+t.toLowerCase()}),yl=uo(function(e,t,n){return e+(n?" ":"")+t.toLowerCase()}),bl=lo("toLowerCase");var _l=uo(function(e,t,n){return e+(n?"_":"")+t.toLowerCase()});var wl=uo(function(e,t,n){return e+(n?" ":"")+Cl(t)});var xl=uo(function(e,t,n){return e+(n?" ":"")+t.toUpperCase()}),Cl=lo("toUpperCase");function kl(e,t,n){return e=qa(e),(t=n?o:t)===o?function(e){return Ct.test(e)}(e)?function(e){return e.match(wt)||[]}(e):function(e){return e.match(ze)||[]}(e):e.match(t)||[]}var Sl=Cr(function(e,t){try{return qt(e,o,t)}catch(e){return Ca(e)?e:new Je(e)}}),Dl=Mo(function(e,t){return Kt(t,function(t){t=cs(t),Pi(e,t,na(e[t],e))}),e});function El(e){return function(){return e}}var $l=fo(),Tl=fo(!0);function Ml(e){return e}function Nl(e){return lr("function"==typeof e?e:Ai(e,d))}var Pl=Cr(function(e,t){return function(n){return ir(n,e,t)}}),Ol=Cr(function(e,t){return function(n){return ir(e,n,t)}});function Il(e,t,n){var i=rl(t),r=Gi(t,i);null!=n||Ea(t)&&(r.length||!i.length)||(n=t,t=e,e=this,r=Gi(t,rl(t)));var o=!(Ea(n)&&"chain"in n&&!n.chain),s=ka(e);return Kt(r,function(n){var i=t[n];e[n]=i,s&&(e.prototype[n]=function(){var t=this.__chain__;if(o||t){var n=e(this.__wrapped__);return(n.__actions__=no(this.__actions__)).push({func:i,args:arguments,thisArg:e}),n.__chain__=t,n}return i.apply(e,en([this.value()],arguments))})}),e}function Al(){}var Fl=go(Qt),Ll=go(Gt),Vl=go(rn);function Bl(e){return Uo(e)?dn(cs(e)):function(e){return function(t){return Xi(t,e)}}(e)}var zl=bo(),Rl=bo(!0);function Hl(){return[]}function jl(){return!1}var Wl=vo(function(e,t){return e+t},0),ql=xo("ceil"),Yl=vo(function(e,t){return e/t},1),Kl=xo("floor");var Ul,Gl=vo(function(e,t){return e*t},1),Xl=xo("round"),Zl=vo(function(e,t){return e-t},0);return fi.after=function(e,t){if("function"!=typeof t)throw new rt(l);return e=Ra(e),function(){if(--e<1)return t.apply(this,arguments)}},fi.ary=ea,fi.assign=Ya,fi.assignIn=Ka,fi.assignInWith=Ua,fi.assignWith=Ga,fi.at=Xa,fi.before=ta,fi.bind=na,fi.bindAll=Dl,fi.bindKey=ia,fi.castArray=function(){if(!arguments.length)return[];var e=arguments[0];return ga(e)?e:[e]},fi.chain=Bs,fi.chunk=function(e,t,n){t=(n?Ko(e,t,n):t===o)?1:qn(Ra(t),0);var r=null==e?0:e.length;if(!r||t<1)return[];for(var s=0,a=0,l=i(Vn(r/t));sr?0:r+n),(i=i===o||i>r?r:Ra(i))<0&&(i+=r),i=n>i?0:Ha(i);n>>0)?(e=qa(e))&&("string"==typeof t||null!=t&&!Pa(t))&&!(t=Fr(t))&&Sn(e)?Ur(Pn(e),0,n):e.split(t,n):[]},fi.spread=function(e,t){if("function"!=typeof e)throw new rt(l);return t=null==t?0:qn(Ra(t),0),Cr(function(n){var i=n[t],r=Ur(n,0,t);return i&&en(r,i),qt(e,this,r)})},fi.tail=function(e){var t=null==e?0:e.length;return t?Mr(e,1,t):[]},fi.take=function(e,t,n){return e&&e.length?Mr(e,0,(t=n||t===o?1:Ra(t))<0?0:t):[]},fi.takeRight=function(e,t,n){var i=null==e?0:e.length;return i?Mr(e,(t=i-(t=n||t===o?1:Ra(t)))<0?0:t,i):[]},fi.takeRightWhile=function(e,t){return e&&e.length?zr(e,Fo(t,3),!1,!0):[]},fi.takeWhile=function(e,t){return e&&e.length?zr(e,Fo(t,3)):[]},fi.tap=function(e,t){return t(e),e},fi.throttle=function(e,t,n){var i=!0,r=!0;if("function"!=typeof e)throw new rt(l);return Ea(n)&&(i="leading"in n?!!n.leading:i,r="trailing"in n?!!n.trailing:r),ra(e,t,{leading:i,maxWait:t,trailing:r})},fi.thru=zs,fi.toArray=Ba,fi.toPairs=hl,fi.toPairsIn=dl,fi.toPath=function(e){return ga(e)?Qt(e,cs):Aa(e)?[e]:no(us(qa(e)))},fi.toPlainObject=Wa,fi.transform=function(e,t,n){var i=ga(e),r=i||wa(e)||Fa(e);if(t=Fo(t,4),null==n){var o=e&&e.constructor;n=r?i?new o:[]:Ea(e)&&ka(o)?pi(Nt(e)):{}}return(r?Kt:Ki)(e,function(e,i,r){return t(n,e,i,r)}),n},fi.unary=function(e){return ea(e,1)},fi.union=$s,fi.unionBy=Ts,fi.unionWith=Ms,fi.uniq=function(e){return e&&e.length?Lr(e):[]},fi.uniqBy=function(e,t){return e&&e.length?Lr(e,Fo(t,2)):[]},fi.uniqWith=function(e,t){return t="function"==typeof t?t:o,e&&e.length?Lr(e,o,t):[]},fi.unset=function(e,t){return null==e||Vr(e,t)},fi.unzip=Ns,fi.unzipWith=Ps,fi.update=function(e,t,n){return null==e?e:Br(e,t,qr(n))},fi.updateWith=function(e,t,n,i){return i="function"==typeof i?i:o,null==e?e:Br(e,t,qr(n),i)},fi.values=fl,fi.valuesIn=function(e){return null==e?[]:yn(e,ol(e))},fi.without=Os,fi.words=kl,fi.wrap=function(e,t){return ca(qr(t),e)},fi.xor=Is,fi.xorBy=As,fi.xorWith=Fs,fi.zip=Ls,fi.zipObject=function(e,t){return jr(e||[],t||[],$i)},fi.zipObjectDeep=function(e,t){return jr(e||[],t||[],Dr)},fi.zipWith=Vs,fi.entries=hl,fi.entriesIn=dl,fi.extend=Ka,fi.extendWith=Ua,Il(fi,fi),fi.add=Wl,fi.attempt=Sl,fi.camelCase=pl,fi.capitalize=ml,fi.ceil=ql,fi.clamp=function(e,t,n){return n===o&&(n=t,t=o),n!==o&&(n=(n=ja(n))==n?n:0),t!==o&&(t=(t=ja(t))==t?t:0),Ii(ja(e),t,n)},fi.clone=function(e){return Ai(e,p)},fi.cloneDeep=function(e){return Ai(e,d|p)},fi.cloneDeepWith=function(e,t){return Ai(e,d|p,t="function"==typeof t?t:o)},fi.cloneWith=function(e,t){return Ai(e,p,t="function"==typeof t?t:o)},fi.conformsTo=function(e,t){return null==t||Fi(e,t,rl(t))},fi.deburr=vl,fi.defaultTo=function(e,t){return null==e||e!=e?t:e},fi.divide=Yl,fi.endsWith=function(e,t,n){e=qa(e),t=Fr(t);var i=e.length,r=n=n===o?i:Ii(Ra(n),0,i);return(n-=t.length)>=0&&e.slice(n,r)==t},fi.eq=fa,fi.escape=function(e){return(e=qa(e))&&Se.test(e)?e.replace(Ce,Cn):e},fi.escapeRegExp=function(e){return(e=qa(e))&&Oe.test(e)?e.replace(Pe,"\\$&"):e},fi.every=function(e,t,n){var i=ga(e)?Gt:Ri;return n&&Ko(e,t,n)&&(t=o),i(e,Fo(t,3))},fi.find=js,fi.findIndex=vs,fi.findKey=function(e,t){return sn(e,Fo(t,3),Ki)},fi.findLast=Ws,fi.findLastIndex=gs,fi.findLastKey=function(e,t){return sn(e,Fo(t,3),Ui)},fi.floor=Kl,fi.forEach=qs,fi.forEachRight=Ys,fi.forIn=function(e,t){return null==e?e:qi(e,Fo(t,3),ol)},fi.forInRight=function(e,t){return null==e?e:Yi(e,Fo(t,3),ol)},fi.forOwn=function(e,t){return e&&Ki(e,Fo(t,3))},fi.forOwnRight=function(e,t){return e&&Ui(e,Fo(t,3))},fi.get=Qa,fi.gt=pa,fi.gte=ma,fi.has=function(e,t){return null!=e&&jo(e,t,er)},fi.hasIn=el,fi.head=bs,fi.identity=Ml,fi.includes=function(e,t,n,i){e=ba(e)?e:fl(e),n=n&&!i?Ra(n):0;var r=e.length;return n<0&&(n=qn(r+n,0)),Ia(e)?n<=r&&e.indexOf(t,n)>-1:!!r&&ln(e,t,n)>-1},fi.indexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=null==n?0:Ra(n);return r<0&&(r=qn(i+r,0)),ln(e,t,r)},fi.inRange=function(e,t,n){return t=za(t),n===o?(n=t,t=0):n=za(n),function(e,t,n){return e>=Yn(t,n)&&e=-I&&e<=I},fi.isSet=Oa,fi.isString=Ia,fi.isSymbol=Aa,fi.isTypedArray=Fa,fi.isUndefined=function(e){return e===o},fi.isWeakMap=function(e){return $a(e)&&Ho(e)==se},fi.isWeakSet=function(e){return $a(e)&&Ji(e)==ae},fi.join=function(e,t){return null==e?"":jn.call(e,t)},fi.kebabCase=gl,fi.last=Cs,fi.lastIndexOf=function(e,t,n){var i=null==e?0:e.length;if(!i)return-1;var r=i;return n!==o&&(r=(r=Ra(n))<0?qn(i+r,0):Yn(r,i-1)),t==t?function(e,t,n){for(var i=n+1;i--;)if(e[i]===t)return i;return i}(e,t,r):an(e,cn,r,!0)},fi.lowerCase=yl,fi.lowerFirst=bl,fi.lt=La,fi.lte=Va,fi.max=function(e){return e&&e.length?Hi(e,Ml,Qi):o},fi.maxBy=function(e,t){return e&&e.length?Hi(e,Fo(t,2),Qi):o},fi.mean=function(e){return hn(e,Ml)},fi.meanBy=function(e,t){return hn(e,Fo(t,2))},fi.min=function(e){return e&&e.length?Hi(e,Ml,hr):o},fi.minBy=function(e,t){return e&&e.length?Hi(e,Fo(t,2),hr):o},fi.stubArray=Hl,fi.stubFalse=jl,fi.stubObject=function(){return{}},fi.stubString=function(){return""},fi.stubTrue=function(){return!0},fi.multiply=Gl,fi.nth=function(e,t){return e&&e.length?vr(e,Ra(t)):o},fi.noConflict=function(){return Ot._===this&&(Ot._=mt),this},fi.noop=Al,fi.now=Qs,fi.pad=function(e,t,n){e=qa(e);var i=(t=Ra(t))?Nn(e):0;if(!t||i>=t)return e;var r=(t-i)/2;return yo(Bn(r),n)+e+yo(Vn(r),n)},fi.padEnd=function(e,t,n){e=qa(e);var i=(t=Ra(t))?Nn(e):0;return t&&it){var i=e;e=t,t=i}if(n||e%1||t%1){var r=Gn();return Yn(e+r*(t-e+Tt("1e-"+((r+"").length-1))),t)}return wr(e,t)},fi.reduce=function(e,t,n){var i=ga(e)?tn:pn,r=arguments.length<3;return i(e,Fo(t,4),n,r,Bi)},fi.reduceRight=function(e,t,n){var i=ga(e)?nn:pn,r=arguments.length<3;return i(e,Fo(t,4),n,r,zi)},fi.repeat=function(e,t,n){return t=(n?Ko(e,t,n):t===o)?1:Ra(t),xr(qa(e),t)},fi.replace=function(){var e=arguments,t=qa(e[0]);return e.length<3?t:t.replace(e[1],e[2])},fi.result=function(e,t,n){var i=-1,r=(t=Yr(t,e)).length;for(r||(r=1,e=o);++iI)return[];var n=L,i=Yn(e,L);t=Fo(t),e-=L;for(var r=vn(i,t);++n=s)return e;var l=n-Nn(i);if(l<1)return i;var u=a?Ur(a,0,l).join(""):e.slice(0,l);if(r===o)return u+i;if(a&&(l+=u.length-l),Pa(r)){if(e.slice(l).search(r)){var c,h=u;for(r.global||(r=nt(r.source,qa(je.exec(r))+"g")),r.lastIndex=0;c=r.exec(h);)var d=c.index;u=u.slice(0,d===o?l:d)}}else if(e.indexOf(Fr(r),l)!=l){var f=u.lastIndexOf(r);f>-1&&(u=u.slice(0,f))}return u+i},fi.unescape=function(e){return(e=qa(e))&&ke.test(e)?e.replace(xe,On):e},fi.uniqueId=function(e){var t=++ht;return qa(e)+t},fi.upperCase=xl,fi.upperFirst=Cl,fi.each=qs,fi.eachRight=Ys,fi.first=bs,Il(fi,(Ul={},Ki(fi,function(e,t){ct.call(fi.prototype,t)||(Ul[t]=e)}),Ul),{chain:!1}),fi.VERSION="4.17.14",Kt(["bind","bindKey","curry","curryRight","partial","partialRight"],function(e){fi[e].placeholder=fi}),Kt(["drop","take"],function(e,t){gi.prototype[e]=function(n){n=n===o?1:qn(Ra(n),0);var i=this.__filtered__&&!t?new gi(this):this.clone();return i.__filtered__?i.__takeCount__=Yn(n,i.__takeCount__):i.__views__.push({size:Yn(n,L),type:e+(i.__dir__<0?"Right":"")}),i},gi.prototype[e+"Right"]=function(t){return this.reverse()[e](t).reverse()}}),Kt(["filter","map","takeWhile"],function(e,t){var n=t+1,i=n==N||3==n;gi.prototype[e]=function(e){var t=this.clone();return t.__iteratees__.push({iteratee:Fo(e,3),type:n}),t.__filtered__=t.__filtered__||i,t}}),Kt(["head","last"],function(e,t){var n="take"+(t?"Right":"");gi.prototype[e]=function(){return this[n](1).value()[0]}}),Kt(["initial","tail"],function(e,t){var n="drop"+(t?"":"Right");gi.prototype[e]=function(){return this.__filtered__?new gi(this):this[n](1)}}),gi.prototype.compact=function(){return this.filter(Ml)},gi.prototype.find=function(e){return this.filter(e).head()},gi.prototype.findLast=function(e){return this.reverse().find(e)},gi.prototype.invokeMap=Cr(function(e,t){return"function"==typeof e?new gi(this):this.map(function(n){return ir(n,e,t)})}),gi.prototype.reject=function(e){return this.filter(la(Fo(e)))},gi.prototype.slice=function(e,t){e=Ra(e);var n=this;return n.__filtered__&&(e>0||t<0)?new gi(n):(e<0?n=n.takeRight(-e):e&&(n=n.drop(e)),t!==o&&(n=(t=Ra(t))<0?n.dropRight(-t):n.take(t-e)),n)},gi.prototype.takeRightWhile=function(e){return this.reverse().takeWhile(e).reverse()},gi.prototype.toArray=function(){return this.take(L)},Ki(gi.prototype,function(e,t){var n=/^(?:filter|find|map|reject)|While$/.test(t),i=/^(?:head|last)$/.test(t),r=fi[i?"take"+("last"==t?"Right":""):t],s=i||/^find/.test(t);r&&(fi.prototype[t]=function(){var t=this.__wrapped__,a=i?[1]:arguments,l=t instanceof gi,u=a[0],c=l||ga(t),h=function(e){var t=r.apply(fi,en([e],a));return i&&d?t[0]:t};c&&n&&"function"==typeof u&&1!=u.length&&(l=c=!1);var d=this.__chain__,f=!!this.__actions__.length,p=s&&!d,m=l&&!f;if(!s&&c){t=m?t:new gi(this);var v=e.apply(t,a);return v.__actions__.push({func:zs,args:[h],thisArg:o}),new vi(v,d)}return p&&m?e.apply(this,a):(v=this.thru(h),p?i?v.value()[0]:v.value():v)})}),Kt(["pop","push","shift","sort","splice","unshift"],function(e){var t=ot[e],n=/^(?:push|sort|unshift)$/.test(e)?"tap":"thru",i=/^(?:pop|shift)$/.test(e);fi.prototype[e]=function(){var e=arguments;if(i&&!this.__chain__){var r=this.value();return t.apply(ga(r)?r:[],e)}return this[n](function(n){return t.apply(ga(n)?n:[],e)})}}),Ki(gi.prototype,function(e,t){var n=fi[t];if(n){var i=n.name+"";ct.call(ri,i)||(ri[i]=[]),ri[i].push({name:t,func:n})}}),ri[po(o,y).name]=[{name:"wrapper",func:o}],gi.prototype.clone=function(){var e=new gi(this.__wrapped__);return e.__actions__=no(this.__actions__),e.__dir__=this.__dir__,e.__filtered__=this.__filtered__,e.__iteratees__=no(this.__iteratees__),e.__takeCount__=this.__takeCount__,e.__views__=no(this.__views__),e},gi.prototype.reverse=function(){if(this.__filtered__){var e=new gi(this);e.__dir__=-1,e.__filtered__=!0}else(e=this.clone()).__dir__*=-1;return e},gi.prototype.value=function(){var e=this.__wrapped__.value(),t=this.__dir__,n=ga(e),i=t<0,r=n?e.length:0,o=function(e,t,n){for(var i=-1,r=n.length;++i=this.__values__.length;return{done:e,value:e?o:this.__values__[this.__index__++]}},fi.prototype.plant=function(e){for(var t,n=this;n instanceof mi;){var i=ds(n);i.__index__=0,i.__values__=o,t?r.__wrapped__=i:t=i;var r=i;n=n.__wrapped__}return r.__wrapped__=e,t},fi.prototype.reverse=function(){var e=this.__wrapped__;if(e instanceof gi){var t=e;return this.__actions__.length&&(t=new gi(this)),(t=t.reverse()).__actions__.push({func:zs,args:[Es],thisArg:o}),new vi(t,this.__chain__)}return this.thru(Es)},fi.prototype.toJSON=fi.prototype.valueOf=fi.prototype.value=function(){return Rr(this.__wrapped__,this.__actions__)},fi.prototype.first=fi.prototype.head,Vt&&(fi.prototype[Vt]=function(){return this}),fi}();Ot._=In,(r=function(){return In}.call(t,n,t,i))===o||(i.exports=r)}).call(this)}).call(this,n(37),n(89)(e))},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t){var n=/^(attrs|props|on|nativeOn|class|style|hook)$/;function i(e,t){return function(){e&&e.apply(this,arguments),t&&t.apply(this,arguments)}}e.exports=function(e){return e.reduce(function(e,t){var r,o,s,a,l;for(s in t)if(r=e[s],o=t[s],r&&n.test(s))if("class"===s&&("string"==typeof r&&(l=r,e[s]=r={},r[l]=!0),"string"==typeof o&&(l=o,t[s]=o={},o[l]=!0)),"on"===s||"nativeOn"===s||"hook"===s)for(a in o)r[a]=i(r[a],o[a]);else if(Array.isArray(r))e[s]=r.concat(o);else if(Array.isArray(o))e[s]=[r].concat(o);else for(a in o)r[a]=o[a];else e[s]=t[s];return e},{})}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){"use strict";t.__esModule=!0;var i,r=n(57),o=(i=r)&&i.__esModule?i:{default:i};t.default=o.default||function(e){for(var t=1;t0?i:n)(e)}},function(e,t,n){var i=n(30)("keys"),r=n(23);e.exports=function(e){return i[e]||(i[e]=r(e))}},function(e,t,n){var i=n(15),r=n(6),o=r["__core-js_shared__"]||(r["__core-js_shared__"]={});(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:i.version,mode:n(22)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){e.exports={}},function(e,t,n){var i=n(11).f,r=n(8),o=n(14)("toStringTag");e.exports=function(e,t,n){e&&!r(e=n?e:e.prototype,o)&&i(e,o,{configurable:!0,value:t})}},function(e,t,n){t.f=n(14)},function(e,t,n){var i=n(6),r=n(15),o=n(22),s=n(35),a=n(11).f;e.exports=function(e){var t=r.Symbol||(r.Symbol=o?{}:i.Symbol||{});"_"==e.charAt(0)||e in t||a(t,e,{value:s.f(e)})}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){e.exports=!n(12)&&!n(17)(function(){return 7!=Object.defineProperty(n(39)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var i=n(16),r=n(6).document,o=i(r)&&i(r.createElement);e.exports=function(e){return o?r.createElement(e):{}}},function(e,t,n){var i=n(8),r=n(13),o=n(63)(!1),s=n(29)("IE_PROTO");e.exports=function(e,t){var n,a=r(e),l=0,u=[];for(n in a)n!=s&&i(a,n)&&u.push(n);for(;t.length>l;)i(a,n=t[l++])&&(~o(u,n)||u.push(n));return u}},function(e,t,n){var i=n(42);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==i(e)?e.split(""):Object(e)}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var i=n(27);e.exports=function(e){return Object(i(e))}},function(e,t,n){"use strict";var i=n(22),r=n(25),o=n(45),s=n(10),a=n(33),l=n(70),u=n(34),c=n(73),h=n(14)("iterator"),d=!([].keys&&"next"in[].keys()),f=function(){return this};e.exports=function(e,t,n,p,m,v,g){l(n,t,p);var y,b,_,w=function(e){if(!d&&e in S)return S[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},x=t+" Iterator",C="values"==m,k=!1,S=e.prototype,D=S[h]||S["@@iterator"]||m&&S[m],E=D||w(m),$=m?C?w("entries"):E:void 0,T="Array"==t&&S.entries||D;if(T&&(_=c(T.call(new e)))!==Object.prototype&&_.next&&(u(_,x,!0),i||"function"==typeof _[h]||s(_,h,f)),C&&D&&"values"!==D.name&&(k=!0,E=function(){return D.call(this)}),i&&!g||!d&&!k&&S[h]||s(S,h,E),a[t]=E,a[x]=f,m)if(y={values:C?E:w("values"),keys:v?E:w("keys"),entries:$},g)for(b in y)b in S||o(S,b,y[b]);else r(r.P+r.F*(d||k),t,y);return y}},function(e,t,n){e.exports=n(10)},function(e,t,n){var i=n(19),r=n(71),o=n(31),s=n(29)("IE_PROTO"),a=function(){},l=function(){var e,t=n(39)("iframe"),i=o.length;for(t.style.display="none",n(72).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.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 bCanclePrint = false; +var base64Data = ""; +var readerPrintData = new FileReader(); +var readerPrinterInfo = new FileReader(); +var strPrintData; +var strPrinterInfo; +var allPrinters; +var pageIndex = 1; + + +var app = new Vue({ + el: '#app', + data: { + form: { + paperType: '1', + density: '3', + pageCount: '1', + quantityCount: '2', + printMode: '1' + }, + formLabelWidth: "120px", + options: [], + tags: [], + isInit: false, + isInitApi: false, + isDraw: false, + isEditTag: false, + editIndex: 0, + dialogInitDrawingBoardParam: false, + dialogDrawLableTextParam: false, + dialogDrawLableBarCodeParam: false, + dialogDrawLableQrCodeParam: false, + dialogDrawLableLineParam: false, + dialogDrawLableGraphParam: false, + dialogDrawLableImageParam: false, + value: '', + imgSrc: '', + initSdkParam: {//初始化数据 + "fontDir": "", + }, + InitDrawingBoardParam: { + "width": 50, + "height": 30, + "rotate": 0, + "path": "ZT001.ttf", + "verticalShift": 0, + "HorizontalShift": 0 + }, + DrawLableTextParam: { + "x": 1.0, + "y": 1.0, + "height": 10, + "width": 50, + "value": "", + "fontFamily": "宋体", + "rotate": 0, + "fontSize": 4.0, + "textAlignHorizonral": 0, + "textAlignVertical": 0, + "letterSpacing": 1.0, + "lineSpacing": 1.0, + "lineMode": 0, + "fontStyle": [false, false, false, false], + }, + DrawLableBarCodeParam: { + "x": 20.0, + "y": 10.0, + "height": 10, + "width": 50, + "value": document.getElementById("materialQrCode").value, + "codeType": 20, + "rotate": 0, + "fontSize": 4.0, + "textHeight": 0, + "textPosition": 0, + }, + DrawLableQrCodeParam: { + "x": 20.0, + "y": 10.0, + "height": 10, + "width": 10, + "value": document.getElementById("materialQrCode").value, + "rotate": 0, + "codeType": 31, + }, + DrawLableLineParam: { + "x": 2.0, + "y": 2.0, + "height": 2, + "width": 50, + "rotate": 0, + "lineType": 2, + "dashwidth": [1, 1], + }, + DrawLableGraphParam: { + "x": 2.0, + "y": 5.0, + "height": 30, + "width": 40, + "rotate": 0, + "graphType": 3, + "cornerRadius": 0, + "lineWidth": 4, + "lineType": 2, + "dashwidth": [1, 1], + }, + DrawLableImageParam: { + "x": 2.0, + "y": 2.0, + "height": 10, + "width": 50, + "rotate": 0, + "imageProcessingType": 0, + "imageProcessingValue": 127, + "imageData": "", + "imgSrc": '' + }, + DrawLableGraphParamDemo: { + "x": 2.0, + "y": 2.0, + "width": 46, + "height": 26, + "rotate": 0, + "graphType": 3, + "cornerRadius": 0, + "lineWidth": 0.5, + "lineType": 1, + "dashwidth": [1, 1], + }, + + }, + mounted() { + // 初始化打印服务 + getInstance(); + }, + methods: { + // 初始化 + initSdkApi() { + initSdk(this.initSdkParam); + this.isInitApi = true + }, + // 选择打印机 + selectPrinterApi() { + let printerName = ''; + for (let index = 0; index < this.options.length; index++) { + if (this.value === this.options[index].value) printerName = this.options[index].label + } + selectPrinter(printerName, parseInt(this.value), (data => { + var arrParse = JSON.parse(JSON.stringify(data)); + if (!arrParse.resultAck.result) { + return; + } else if (isJSON(arrParse.resultAck.info)) { + //选择成功,打印机连接成功 + console.log(data) + } + + })); + }, + // 重新获取打印机 + refreshPrinters() { + getAllPrinters(data => { + let arrParse = JSON.parse(JSON.stringify(data)); + if (isJSON(arrParse.resultAck.info)) { + allPrinters = JSON.parse(arrParse.resultAck.info); + let allPrintersName = Object.keys(allPrinters); + let allPrintersValue = Object.values(allPrinters); + this.options = []; + for (i = 0; i < allPrintersName.length; i++) { + let newopt = {}; + newopt.label = allPrintersName[i]; + newopt.value = allPrintersValue[i]; + this.options.push(newopt) + } + } + }); + }, + // 初始化画板 + InitDrawingBoardApi() { + this.dialogInitDrawingBoardParam = true; + this.isDraw = false; + this.imgSrc = ""; + }, + handleClose(index) { + this.tags.splice(index, 1); + }, + clickTag(tag, index) { + this.isEditTag = true; + this.editIndex = index; + switch (tag.name) { + case "文本": + this.DrawLableTextParam = {...tag}; + this.dialogDrawLableTextParam = true; + break; + case "一维码": + this.DrawLableBarCodeParam = {...tag}; + this.dialogDrawLableBarCodeParam = true; + break; + case "二维码": + this.DrawLableQrCodeParam = {...tag}; + this.dialogDrawLableQrCodeParam = true; + break; + case "线条": + this.DrawLableLineParam = {...tag}; + this.dialogDrawLableLineParam = true; + break; + case "形状": + this.DrawLableGraphParam = {...tag}; + this.dialogDrawLableGraphParam = true; + break; + case "图片": + this.DrawLableImageParam = {...tag}; + this.dialogDrawLableImageParam = true; + break; + } + }, + // 初始化画布 + InitDrawingBoardPar(callbackFunction) { + if (!this.InitDrawingBoardParam.width || !this.InitDrawingBoardParam.height) { + this.$message({ + message: '请选填写画板宽高', + type: 'warning' + }); + return + } + this.InitDrawingBoardParam.width = Number(this.InitDrawingBoardParam.width); + this.InitDrawingBoardParam.height = Number(this.InitDrawingBoardParam.height); + // 创建画板 + /** + * 1.绘制元素前,必须先初始化画板,否则会引起崩溃! + 2.初始化画板时会清空画板上次绘制的内容! + */ + InitDrawingBoard(this.InitDrawingBoardParam, callbackFunction); + this.dialogInitDrawingBoardParam = false; + this.isInit = true + }, + // 一维码 + DrawLableBarCodeApi() { + this.DrawLableBarCodeParam.width = Number(this.DrawLableBarCodeParam.width); + this.DrawLableBarCodeParam.height = Number(this.DrawLableBarCodeParam.height); + this.DrawLableBarCodeParam.x = Number(this.DrawLableBarCodeParam.x); + this.DrawLableBarCodeParam.y = Number(this.DrawLableBarCodeParam.y); + this.DrawLableBarCodeParam.name = "条形码"; + DrawLableBarCode(this.DrawLableBarCodeParam); + if (this.isEditTag) { + this.$set(this.tags, this.editIndex, this.DrawLableBarCodeParam); + } else { + this.tags.push(this.DrawLableBarCodeParam) + } + this.dialogDrawLableBarCodeParam = false; + this.isDraw = true + }, + // 二维码 + DrawLableQrCodeApi() { + + this.DrawLableQrCodeParam.width = Number(this.DrawLableQrCodeParam.width); + this.DrawLableQrCodeParam.height = Number(this.DrawLableQrCodeParam.width); + this.DrawLableQrCodeParam.x = Number(this.DrawLableQrCodeParam.x); + this.DrawLableQrCodeParam.y = Number(this.DrawLableQrCodeParam.y); + this.DrawLableQrCodeParam.name = "二维码"; + //DrawLableQrCode(this.DrawLableQrCodeParam); + if (this.isEditTag) { + this.$set(this.tags, this.editIndex, this.DrawLableQrCodeParam); + } else { + this.tags.push(this.DrawLableQrCodeParam) + } + this.dialogDrawLableQrCodeParam = false; + this.isDraw = true + }, + DragList(List) { + List.forEach(res => { + + }) + }, + // 预览时进行绘制 + generateImagePreviewImagepi() { + let List = [...this.tags]; + // 创建画布 + InitDrawingBoard(this.InitDrawingBoardParam, (data => { + List.forEach(res => { + switch (res.name) { + case "文本": + DrawLableText(res); + break; + case "条形码": + DrawLableBarCode(res); + break; + case "二维码": + DrawLableQrCode(res); + break; + case "线条": + DrawLableLine(res); + break; + case "形状": + DrawLableGraph(res); + break; + case "图片": + DrawLableImage(res); + break; + } + }); + // 标签预览 + generateImagePreviewImage(generateImagePreviewImageParam['displayScale'], + (data => { + var arrParse = JSON.parse(JSON.stringify(data)); + //var Epc = document.getElementById('searchRfidBox'); + var base64Data = arrParse.resultAck.info; + var obj = JSON.parse(base64Data); + var data = obj.ImageData; + var imgDisplay = document.getElementById('base64image'); + var errorCode = obj.errorCode; + + this.imgSrc = "data:image/jpeg;base64," + data; + // self.isInit = false + })) + })); + }, + //清空 + emptyImagePreviewImage() { + this.imgSrc = ""; + this.tags = []; + this.isDraw = false + }, + DrawLableTextApiDemo(DrawLableTextParamDemo, callbackFunction) { + DrawLableText(DrawLableTextParamDemo, callbackFunction); + }, + DrawLableGraphApiDemo(callbackFunction) { + DrawLableGraph(this.DrawLableGraphParamDemo, callbackFunction); + }, + + DrawLableLineApiDemo(DrawLableLineParamDemo, callbackFunction) { + DrawLableLine(DrawLableLineParamDemo, callbackFunction); + }, + DrawLableBarCodeApiDemo(drawLableBarCodeParamDemo, callableFunction) { + DrawLableBarCode(drawLableBarCodeParamDemo, callableFunction) + }, + + /** + * 开始打印任务 + * @param {*} pageCount 页数 + * @param {*} quantityCount 份数 + * @param {*} density 浓度 + * @param {*} paperType 纸张类型 + * @param {*} paperType 材质 + * @param {*} paperType 打印模式 + */ + startPrintJob(index) { + let { + pageCount = "1", + quantityCount = "1", + density = "3", + paperType = "1", + printMode = "1" + } = this.form; + const self = this; + switch (index) { + case 1: + quantityCount = 1; + break; + case 2: + quantityCount = 1; + pageCount = 2; + break; + case 4: + pageCount = 2; + break; + } + if (this.value === "") { + self.$message({ + message: '请选择连接打印机', + type: 'warning' + }); + return; + } + if (!this.form.quantityCount && (index === 3 || index === 4)) { + self.$message({ + message: '请选填写打印份数', + type: 'warning' + }); + return; + } + // 初始化画板 + InitDrawingBoard(this.InitDrawingBoardParam, (data1 => { + // 添加文字 + this.DrawLableBarCodeApiDemo(this.DrawLableBarCodeParam, (data => { + // 提交数据 + var totalCount = parseInt(pageCount) * parseInt(quantityCount); + startJob(parseInt(density), parseInt(paperType), parseInt(printMode), totalCount, function (data) { + bCanclePrint = false; + var arrParse = JSON.parse(JSON.stringify(data)); + if (arrParse.resultAck.result !== 0) { + self.$message({ + message: '打印失败!', + type: 'warning' + }); + return; + } + var intPageCount = parseInt(pageCount); + var intQuantityCount = parseInt(quantityCount); + self.sendCommitJob(self.DrawLableTextParamDemo, pageIndex, intPageCount, intQuantityCount); + }); + })) + })) + + + }, + /** + * 提交打印数据 + * @param {string} printData 打印数据 + * @param {string} printerInfo 打印机信息 + * @param {number} pageIndex 页序号 + * @param {number} pageCount 页数 + * @param {number} quantityCount 单页的份数 + */ + sendCommitJob(printData, pageIndex, pageCount, quantityCount) { + if (bCanclePrint) { + return; + } + const self = this; + var jsonObj = {"printerImageProcessingInfo": {"printQuantity": quantityCount}}; + commitJob(null, JSON.stringify(jsonObj), function (data) { + var arrParse = JSON.parse(JSON.stringify(data)); + var resultInfo = "commitJob ok"; + if (arrParse.resultAck.printQuantity === pageCount && arrParse.resultAck.onPrintPageCompleted === quantityCount) { + //所有⻚数据的所有份数打印完成 + endJob(function (data) { + // 停止打印 + var arrParse = JSON.parse(JSON.stringify(data)); + if (String(arrParse.resultAck.info).indexOf("endJob ok") > -1) { + // document.getElementById("printId").disabled = false; + } + }); + return; + } + + //异常导致打印取消 + if (arrParse.resultAck.errorCode !== 0 && (arrParse.resultAck.cacheStatus === "cancel")) { + // document.getElementById("printId").disabled = false; + return; + } + + //异常导致打印暂停 + if (arrParse.resultAck.errorCode !== 0 && (arrParse.resultAck.cacheStatus === "pause")) { + cancleJobApi(); + return; + } + + //当前⻚所有份数打印完成,但是未打印完所有⻚数据,继续发送下⼀⻚数据 + if (String(arrParse.resultAck.info).indexOf(resultInfo) > -1 && pageIndex !== pageCount) { + pageIndex++; + setTimeout(function () { + // 初始化画板 + InitDrawingBoard(self.InitDrawingBoardParam, (data1 => { + // 添加文字 + self.DrawLableBarCodeApiDemo(self.DrawLableBarCodeParam, (data => { + self.sendCommitJob(self.DrawLableTextParamDemo, pageIndex, pageCount, quantityCount); + })) + + }))// 提交数据 + }, 500); + } + }); + } + }, +}); \ No newline at end of file diff --git a/src/main/resources/static/js/JcPrinter/jcPrinterSdk_api_third.js b/src/main/resources/static/js/JcPrinter/jcPrinterSdk_api_third.js new file mode 100644 index 00000000..3323526a --- /dev/null +++ b/src/main/resources/static/js/JcPrinter/jcPrinterSdk_api_third.js @@ -0,0 +1,662 @@ +//websocket +var g_websocket; + +/* //响应数据 */ +var ackJsonData; + +/** websocket(打印服务)连接状态*/ +var websocketConnectStatus = false; +/**SDK初始化状态 */ +var initSdkStatus = false; +/**设备状态 */ +var deviceStatus = false; +/**消息列表 */ +var MessageList = {}; + +/**通过websocket发送消息 */ +function sendMsg(msg, callback) { + console.log('sendMsg', msg.apiName); + MessageList[msg.apiName] = callback; + var data = JSON.stringify(msg); + var tryTimes = 10; + for (var i = 0; i < tryTimes; i++) { + if (g_websocket.readyState === 1) { + g_websocket.send(data); + return; + } + } +} + +//初始化打印服务 +//1.1 获取接口实例JCAPI.getInstance(单例模式) +function getInstance() { + if ('WebSocket' in window) { + g_websocket = websocketLifePeriod(); + } else { + console.log('unsupported websocket'); + //return false; + g_websocket = null; + return false; + } + + //保持在线 + setInterval(function () { + if (g_websocket.readyState === 2 || g_websocket.readyState === 3) { + getInstance(); + } + }, 3000); + + return true; +} + +//1.1.1 打开链接及回调 +function websocketLifePeriod() { + + let websocket; + websocket = new WebSocket('ws://127.0.0.1:37989'); + //websocket.binaryType = 'arraybuffer'; + websocket.onerror = function (evt) {//since there is an error, sockets will close so... + sok.onclose = function (e) { + console.log("WebSocket Error: ", e); + } + }; + + websocket.proxy_read_timeout = 10000; + websocket.binaryType = "arraybuffer"; + + websocket.onopen = connectCallback; + + websocket.onclose = closeCallback; + + websocket.onmessage = readCallback; + + websocket.onerror = errorCallback; + + console.log(websocket); + + return websocket; +} + +//1.1.2 websocket连接回调 +function connectCallback(e) { + ackJsonData = ''; + console.log('websocket connect success'); + websocketConnectStatus = true; + init(); +} + +//1.1.3 关闭连接回调 +function closeCallback(e) { + websocketConnectStatus = false; + console.log( + 'websocket closed: ' + e.code + ' ' + e.reason + ' ' + e.wasClean + ); + // globalwebsocket = websocket; + g_websocket.close(); + //websocketLifePeriod(); + if (e.code === 1005) { + // globalwebsocket = websocket; + } + console.log('closed'); + ackJsonData = ''; +} + + +//1.1.4 读回调 +function readCallback(e) { + var callBackInfo = e.data; + console.log('readCallback', callBackInfo); + ackJsonData = callBackInfo; + + var callbackName; + + if (isJSON(ackJsonData)) { + var arrParse = JSON.parse(ackJsonData); + + //接口回调 + if (!!MessageList[arrParse.apiName]) { + + MessageList[arrParse.apiName](arrParse); + } + + //回调分发 + if (arrParse.apiName === 'printStatus') { + if (arrParse['resultAck']['online'] === 'online') { + deviceStatus = true; + } else { + deviceStatus = false; + } + } else { + if (arrParse['resultAck']['callback'] !== undefined) { + callbackName = arrParse['resultAck']['callback']['name']; + + if (callbackName === 'onConnectSuccess') { + var printerName = arrParse['resultAck']['callback']['printerName']; + onConnectSuccess(printerName); + } else if (callbackName === 'onDisConnect') { + var printerName = arrParse['resultAck']['callback']['printerName']; + onDisConnect(printerName); + } else if (callbackName === 'onCoverStatusChange') { + var coverStatus = arrParse['resultAck']['callback']['coverStatus']; + onCoverStatusChange(coverStatus); + } else if (callbackName === 'onElectricityChange') { + var powerLever = arrParse['resultAck']['callback']['powerLever']; + onElectricityChange(powerLever); + } else if (callbackName === 'onPaperStatusChange') { + var paperStatus = arrParse['resultAck']['callback']['paperStatus']; + onPaperStatusChange(paperStatus); + } else if (callbackName === 'onPrintPageCompleted') { + onPrintPageCompleted(); + } else if (callbackName === 'onPrintProgress') { + onPrintProgress(); + } else if (callbackName === 'onAbnormalResponse') { + onAbnormalResponse(); + } else { + console.log('unknow callback api!'); + } + } + } + + ackJsonData = ''; + } +} + +//1.1.5 错误回调 +function errorCallback(e) { + //如果出现连接、处理、接收、发送数据失败的时候触发onerror事件 + console.log(e.data); +} + +//封装初始化SDK/获取打印机列表/选择打印机 +function init() { + initSdk(this.initSdkParam, function (data) { + var arrParse = JSON.parse(JSON.stringify(data)); + if (arrParse.resultAck.result !== 0) { + // 如果初始化失败 + this.$message.error("初始化打印服务失败,请重试"); + setTimeout(function () { + var index = parent.layer.getFrameIndex(window.name); + parent.layer.close(index); + }, 500); + return; + } + + getAllPrinters((data) => { + let arrParse = JSON.parse(JSON.stringify(data)); + + if (!arrParse.resultAck.result) { + this.$message.error("打印机获取失败,请重试"); + setTimeout(function () { + var index = parent.layer.getFrameIndex(window.name); + parent.layer.close(index); + }, 500); + return; + } else if (isJSON(arrParse.resultAck.info)) { + allPrinters = JSON.parse(arrParse.resultAck.info); + let allPrintersName = Object.keys(allPrinters); + let allPrintersValue = Object.values(allPrinters); + this.options = []; + // 将其保存到数据中供前端展示 + for (i = 0; i < allPrintersName.length; i++) { + let newopt = {}; + newopt.label = allPrintersName[i]; + newopt.value = allPrintersValue[i]; + this.options.push(newopt) + } + // 选中打印机 + selectPrinter(allPrintersName[0], parseInt(allPrintersValue[0]), (data => { + initSdkStatus = true; + var arrParse = JSON.parse(JSON.stringify(data)); + if (!arrParse.resultAck.result) { + return; + } else if (isJSON(arrParse.resultAck.info)) { + //选择成功,打印机连接成功 + console.log(data) + } + })) + } + }) + + }) +} + +//1.2 断开websocket连接 +function unInitPrintInstance() { + g_websocket.close(); +} + +//2.1 打印机连接成功回调onConnectSuccess +function onConnectSuccess(printerName) { + console.log('打印机连接成功!'); + initSdkStatus = true; + deviceStatus = true; +} + +//2.2 打印机断开回调onDisConnect +function onDisConnect(printerName) { + console.log('打印机断开!'); + initSdkStatus = false; +} + +//2.3 打印机上盖变化回调onCoverStatusChange +function onCoverStatusChange(coverStatus) { + console.log('打印机盒盖有变化!'); +} + +//2.4 打印机电量变化回调onElectricityChange() +function onElectricityChange(powerLever) { + console.log('打印机电量有变化!'); +} + +//2.5 打印机纸张状态变化回调onPaperStatusChange +function onPaperStatusChange(paperStatus) { + console.log('打印机纸张状态有变化!'); +} + +//3.1 页打印成功回调onPrintPageCompleted +function onPrintPageCompleted() { + console.log('页打印状态有变化!'); +} + +//3.2 打印进度回调onPrintProgress +function onPrintProgress() { + console.log('打印进度有变化!'); +} + +//3.3 打印异常回调onAbnormalResponse +function onAbnormalResponse() { + console.log('打印异常!'); +} + +//获取所有当前PC上连接的精臣打印机 +//4.1 获取打印机列表getAllPrinters() +function getAllPrinters(callbackFunction) { + //刷新设备时,关闭设备 + //closePrinter(); + var jsonObj = {apiName: 'getAllPrinters'}; + var allDevice = {}; + + sendMsg(jsonObj, callbackFunction); +} + +//5. 图片打印 +/*base64Data--图片base64数据 +nPrintCount--打印数量 +bDenoise--降噪*/ +function picturePrint(base64Data, nPrintCount, bDenoise, callbackFunction) { + var jsonObj = { + apiName: 'picturePrint', + parameter: { + data: base64Data, + nPrintCount: nPrintCount, + bDenoise: bDenoise + } + }; + + sendMsg(jsonObj, callbackFunction); +} + +//6.选择并打开需要使用的打印机名称,及端口号 +function selectPrinter(printerName, port, callbackFunction) { + var jsonObj = { + apiName: 'selectPrinter', + parameter: {printerName: printerName, port: port} + }; + sendMsg(jsonObj, callbackFunction); +} + +//7.停止打印 +function stopPrint(callbackFunction) { + var jsonObj = {apiName: 'stopPrint'}; + sendMsg(jsonObj, callbackFunction); +} + +//8.关闭打印端口 +function closePrinter(callbackFunction) { + var jsonObj = {apiName: 'closePrinter'}; + sendMsg(jsonObj, callbackFunction); +} + +//9.设置打印浓度 +//nDensity--范围为getDensityScopeApi查询范围 +function setPrintDensity(nDensity, callbackFunction) { + var jsonObj = { + apiName: 'setPrintDensity', + parameter: {nDensity: nDensity} + }; + sendMsg(jsonObj, callbackFunction); +} + +//10.设置打印速度 +//nSpeed--范围为getSpeedScopeApi查询的范围 +function setPrintSpeed(nSpeed, callbackFunction) { + var jsonObj = {apiName: 'setPrintSpeed', parameter: {nSpeed: nSpeed}}; + sendMsg(jsonObj, callbackFunction); +} + +//11.设置打印标贴类型 +//nType--间隙:01,黑标:02,连续纸:03,定位孔:04,透明纸:05,随机打印:06 +function setPrintLabelType(nType, callbackFunction) { + var jsonObj = {apiName: 'setPrintLabelType', parameter: {nType: nType}}; + sendMsg(jsonObj, callbackFunction); +} + + +//12.设置关机时间 +//nType--1:15分钟,2:30分钟,3:60分钟,4:never +function setPrinterAutoShutDownTime(nType, callbackFunction) { + var jsonObj = { + apiName: 'setPrinterAutoShutDownTime', + parameter: {nType: nType} + }; + sendMsg(jsonObj, callbackFunction); +} + +//13.复位打印机 +function setPrinterReset(callbackFunction) { + var jsonObj = {apiName: 'setPrinterReset'}; + sendMsg(jsonObj, callbackFunction); +} + +//14. 纸张标定 +function setPrintPaperPos(nType, callbackFunction) { + var jsonObj = { + apiName: 'setPrintPaper', + parameter: {nType: nType} + }; + sendMsg(jsonObj, callbackFunction); +} + +//15.获取打印速度 +function getPrintSpeed(callbackFunction) { + var jsonObj = {apiName: 'getPrintSpeed'}; + sendMsg(jsonObj, callbackFunction); +} + +//15.获取打印机电量 +function getPower(callbackFunction) { + var jsonObj = {apiName: 'getPower'}; + sendMsg(jsonObj, callbackFunction); +} + +//16.获取标贴类型 +function getPrintLabelType(callbackFunction) { + var jsonObj = {apiName: 'getPrintLabelType'}; + + sendMsg(jsonObj, callbackFunction); +} + +//17.获取打印浓度 +function getPrintDensity(callbackFunction) { + var jsonObj = {apiName: 'getPrintDensity'}; + sendMsg(jsonObj, callbackFunction); +} + +//18.获取打印机语言 +function getPrinterLanguageType(callbackFunction) { + var jsonObj = {apiName: 'getPrinterLanguageType'}; + sendMsg(jsonObj, callbackFunction); +} + +//19.查询关机时间 +function getPrinterAutoShutDownTime(callbackFunction) { + var jsonObj = {apiName: 'getPrinterAutoShutDownTime'}; + sendMsg(jsonObj, callbackFunction); +} + +//20.获取打印机序列号 +function getPrinterSn(callbackFunction) { + var jsonObj = {apiName: 'getPrinterSn'}; + sendMsg(jsonObj, callbackFunction); +} + +//21.获取硬件版本 +function getPrinterHardwareVersion(callbackFunction) { + var jsonObj = {apiName: 'getPrinterHardwareVersion'}; + var responseData = {}; + sendMsg(jsonObj, callbackFunction); +} + +//22.获取软件版本 +function getPrinterSoftwareVersion(callbackFunction) { + var jsonObj = {apiName: 'getPrinterSoftwareVersion'}; + sendMsg(jsonObj, callbackFunction); +} + +//23. 获取打印机语言 +function setPrinterLanguageType(nType, callbackFunction) { + var jsonObj = { + apiName: 'setPrinterLanguageType', + parameter: {nType: nType} + }; + sendMsg(jsonObj, callbackFunction); +} + +//24.获取打速度印范围 +function getSpeedScope(callbackFunction) { + var jsonObj = {apiName: 'getSpeedScope'}; + sendMsg(jsonObj, callbackFunction); + return getResult(5, 'getSpeedScope', 'set printer language timeout!'); +} + +//25. 获取已开启的打印机 +function getConnectPrinter(callbackFunction) { + var jsonObj = {apiName: 'getConnectPrinter'}; + sendMsg(jsonObj, callbackFunction); + return getResult(5, 'getConnectPrinter', 'get connect printer timeout!'); +} + +//26.获取打印机型号 +function getPrinterType(callbackFunction) { + var jsonObj = {apiName: 'getPrinterType'}; + sendMsg(jsonObj, callbackFunction); +} + +//27.获取浓度范围 +function getDensityScope(callbackFunction) { + var jsonObj = {apiName: 'getDensityScope'}; + sendMsg(jsonObj, callbackFunction); +} + +//28. 获取打印模式 1-热敏 2-热转印 +function getPrinterMode(callbackFunction) { + var jsonObj = {apiName: 'getPrintMode'}; + sendMsg(jsonObj, callbackFunction); +} + +//29.获取打印机mac地址 +function getMacAddress(callbackFunction) { + var jsonObj = {apiName: 'getMacAddress'}; + sendMsg(jsonObj, callbackFunction); +} + +//30.设置打印模式 +//nType-1热敏,2碳带 +function setPrintMode(nType, callbackFunction) { + var jsonObj = {apiName: 'setPrintMode', parameter: {nType: nType}}; + sendMsg(jsonObj, callbackFunction); +} + +/** + * 31.开始打印任务 + * @param {number} printDensity 打印浓度 + * @param {number} printLabelType 纸张类型 + * @param {number} printMaterial 材质 + * @param {number} printMode 打印模式 + * @param {number} count 总打印张数 + * @param {*} callbackFunction 回调函数 + */ +function startJob(printDensity, printLabelType, printMode, count, callbackFunction) { + var jsonObj = { + apiName: 'startJob', + parameter: { + printDensity: printDensity, + printLabelType: printLabelType, + printMode: printMode, + count: count + } + }; + sendMsg(jsonObj, callbackFunction); +} + +//32.提交打印任务commitJob +function commitJob(printData, printerImageProcessingInfo, callbackFunction) { + var printDataJson = eval('(' + printData + ')'); + var printerImageProcessingInfoJson = eval('(' + printerImageProcessingInfo + ')'); + var jsonObj = { + apiName: 'commitJob', + parameter: { + printData: printDataJson, + printerImageProcessingInfo: printerImageProcessingInfoJson['printerImageProcessingInfo'], + } + }; + sendMsg(jsonObj, callbackFunction); +} + +//33.结束打印任务endJob +function endJob(callbackFunction) { + var jsonObj = {apiName: 'endJob'}; + sendMsg(jsonObj, callbackFunction); +} + +//33.取消打印任务cancleJob +function cancleJob(callbackFunction) { + var jsonObj = {apiName: 'stopPrint'}; + sendMsg(jsonObj, callbackFunction); +} + +//34.1 创建画板 +function InitDrawingBoard(json, callbackFunction) { + var jsonObj = { + apiName: 'InitDrawingBoard', + parameter: json + }; + console.log("画布宽度:" + json.width); + console.log("画布高度:" + json.height); + console.log("画布旋转角度:" + json.rotate); + sendMsg(jsonObj, callbackFunction); +} + +//34.2 绘制文本 +function DrawLableText(json, callbackFunction) { + var jsonObj = { + apiName: 'DrawLableText', + parameter: json + }; + + sendMsg(jsonObj, callbackFunction); +} + +//34.3 绘制一维码 +function DrawLableBarCode(json, callbackFunction) { + var jsonObj = { + apiName: 'DrawLableBarCode', + parameter: json + }; + + sendMsg(jsonObj, callbackFunction); +} + +//34.4 绘制二维码 +function DrawLableQrCode(json, callbackFunction) { + var jsonObj = { + apiName: 'DrawLableQrCode', + parameter: json + }; + + sendMsg(jsonObj, callbackFunction); +} + +//34.5 绘制线条 +function DrawLableLine(json, callbackFunction) { + var jsonObj = { + apiName: 'DrawLableLine', + parameter: json + }; + + sendMsg(jsonObj, callbackFunction); +} + +//34.6 绘制图形 +function DrawLableGraph(json, callbackFunction) { + var jsonObj = { + apiName: 'DrawLableGraph', + parameter: json + }; + + sendMsg(jsonObj, callbackFunction); +} + +//34.7 绘制图像 +function DrawLableImage(json, callbackFunction) { + var jsonObj = { + apiName: 'DrawLableImage', + parameter: json + }; + + sendMsg(jsonObj, callbackFunction); +} + +//34.8 生成预览图 +function generateImagePreviewImage(displayScale, callbackFunction) { + var jsonObj = { + apiName: 'generateImagePreviewImage', + displayScale: displayScale + }; + + sendMsg(jsonObj, callbackFunction); +} + +//35. 初始化SDK +function initSdk(json, callbackFunction) { + var jsonObj = { + apiName: 'initSdk', + parameter: json + }; + sendMsg(jsonObj, callbackFunction); +} + + +//36. 获取调用结果 +function getResult(tryTime, apiName, errInfo) { + tryTimes = tryTime; + + let result = {}; + while (tryTimes--) { + if (!isJSON(ackJsonData)) continue; + + var arrParse = JSON.parse(ackJsonData); + if (arrParse['apiName'] === apiName) { + result = arrParse['resultAck']; + break; + } + } + + if (tryTimes <= 0) { + result['result'] = false; + result['errorCode'] = 0x12; + result['info'] = errInfo; + } + return result; +} + +//37. 判断字符串是否为JSON +function isJSON(str) { + if (typeof str == 'string') { + try { + var obj = JSON.parse(str); + if (typeof obj == 'object' && obj) { + return true; + } else { + return false; + } + + } catch (e) { + //console.log('error:'+str+'!!!'+e); + return false; + } + + } + + console.log('It is not a string!'); +} diff --git a/src/main/resources/static/js/JcPrinter/jquery.js b/src/main/resources/static/js/JcPrinter/jquery.js new file mode 100644 index 00000000..b86de89a --- /dev/null +++ b/src/main/resources/static/js/JcPrinter/jquery.js @@ -0,0 +1,10993 @@ +/*! + * jQuery JavaScript Library v3.6.3 + * https://jquery.com/ + * + * Includes Sizzle.js + * https://sizzlejs.com/ + * + * Copyright OpenJS Foundation and other contributors + * Released under the MIT license + * https://jquery.org/license + * + * Date: 2022-12-20T21:28Z + */ +( function( global, factory ) { + + "use strict"; + + if ( typeof module === "object" && typeof module.exports === "object" ) { + + // For CommonJS and CommonJS-like environments where a proper `window` + // is present, execute the factory and get jQuery. + // For environments that do not have a `window` with a `document` + // (such as Node.js), expose a factory as module.exports. + // This accentuates the need for the creation of a real `window`. + // e.g. var jQuery = require("jquery")(window); + // See ticket trac-14549 for more info. + module.exports = global.document ? + factory( global, true ) : + function( w ) { + if ( !w.document ) { + throw new Error( "jQuery requires a window with a document" ); + } + return factory( w ); + }; + } else { + factory( global ); + } + +// Pass this if window is not defined yet +} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { + +// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 +// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode +// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common +// enough that all such attempts are guarded in a try block. +"use strict"; + +var arr = []; + +var getProto = Object.getPrototypeOf; + +var slice = arr.slice; + +var flat = arr.flat ? function( array ) { + return arr.flat.call( array ); +} : function( array ) { + return arr.concat.apply( [], array ); +}; + + +var push = arr.push; + +var indexOf = arr.indexOf; + +var class2type = {}; + +var toString = class2type.toString; + +var hasOwn = class2type.hasOwnProperty; + +var fnToString = hasOwn.toString; + +var ObjectFunctionString = fnToString.call( Object ); + +var support = {}; + +var isFunction = function isFunction( obj ) { + + // Support: Chrome <=57, Firefox <=52 + // In some browsers, typeof returns "function" for HTML elements + // (i.e., `typeof document.createElement( "object" ) === "function"`). + // We don't want to classify *any* DOM node as a function. + // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 + // Plus for old WebKit, typeof returns "function" for HTML collections + // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) + return typeof obj === "function" && typeof obj.nodeType !== "number" && + typeof obj.item !== "function"; + }; + + +var isWindow = function isWindow( obj ) { + return obj != null && obj === obj.window; + }; + + +var document = window.document; + + + + var preservedScriptAttributes = { + type: true, + src: true, + nonce: true, + noModule: true + }; + + function DOMEval( code, node, doc ) { + doc = doc || document; + + var i, val, + script = doc.createElement( "script" ); + + script.text = code; + if ( node ) { + for ( i in preservedScriptAttributes ) { + + // Support: Firefox 64+, Edge 18+ + // Some browsers don't support the "nonce" property on scripts. + // On the other hand, just using `getAttribute` is not enough as + // the `nonce` attribute is reset to an empty string whenever it + // becomes browsing-context connected. + // See https://github.com/whatwg/html/issues/2369 + // See https://html.spec.whatwg.org/#nonce-attributes + // The `node.getAttribute` check was added for the sake of + // `jQuery.globalEval` so that it can fake a nonce-containing node + // via an object. + val = node[ i ] || node.getAttribute && node.getAttribute( i ); + if ( val ) { + script.setAttribute( i, val ); + } + } + } + doc.head.appendChild( script ).parentNode.removeChild( script ); + } + + +function toType( obj ) { + if ( obj == null ) { + return obj + ""; + } + + // Support: Android <=2.3 only (functionish RegExp) + return typeof obj === "object" || typeof obj === "function" ? + class2type[ toString.call( obj ) ] || "object" : + typeof obj; +} +/* global Symbol */ +// Defining this global in .eslintrc.json would create a danger of using the global +// unguarded in another place, it seems safer to define global only for this module + + + +var + version = "3.6.3", + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + + // The jQuery object is actually just the init constructor 'enhanced' + // Need init if jQuery is called (just allow error to be thrown if not included) + return new jQuery.fn.init( selector, context ); + }; + +jQuery.fn = jQuery.prototype = { + + // The current version of jQuery being used + jquery: version, + + constructor: jQuery, + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + + // Return all the elements in a clean array + if ( num == null ) { + return slice.call( this ); + } + + // Return just the one element from the set + return num < 0 ? this[ num + this.length ] : this[ num ]; + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + each: function( callback ) { + return jQuery.each( this, callback ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map( this, function( elem, i ) { + return callback.call( elem, i, elem ); + } ) ); + }, + + slice: function() { + return this.pushStack( slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + even: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return ( i + 1 ) % 2; + } ) ); + }, + + odd: function() { + return this.pushStack( jQuery.grep( this, function( _elem, i ) { + return i % 2; + } ) ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); + }, + + end: function() { + return this.prevObject || this.constructor(); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: push, + sort: arr.sort, + splice: arr.splice +}; + +jQuery.extend = jQuery.fn.extend = function() { + var options, name, src, copy, copyIsArray, clone, + target = arguments[ 0 ] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + + // Skip the boolean and the target + target = arguments[ i ] || {}; + i++; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !isFunction( target ) ) { + target = {}; + } + + // Extend jQuery itself if only one argument is passed + if ( i === length ) { + target = this; + i--; + } + + for ( ; i < length; i++ ) { + + // Only deal with non-null/undefined values + if ( ( options = arguments[ i ] ) != null ) { + + // Extend the base object + for ( name in options ) { + copy = options[ name ]; + + // Prevent Object.prototype pollution + // Prevent never-ending loop + if ( name === "__proto__" || target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject( copy ) || + ( copyIsArray = Array.isArray( copy ) ) ) ) { + src = target[ name ]; + + // Ensure proper type for the source value + if ( copyIsArray && !Array.isArray( src ) ) { + clone = []; + } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { + clone = {}; + } else { + clone = src; + } + copyIsArray = false; + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend( { + + // Unique for each copy of jQuery on the page + expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), + + // Assume jQuery is ready without the ready module + isReady: true, + + error: function( msg ) { + throw new Error( msg ); + }, + + noop: function() {}, + + isPlainObject: function( obj ) { + var proto, Ctor; + + // Detect obvious negatives + // Use toString instead of jQuery.type to catch host objects + if ( !obj || toString.call( obj ) !== "[object Object]" ) { + return false; + } + + proto = getProto( obj ); + + // Objects with no prototype (e.g., `Object.create( null )`) are plain + if ( !proto ) { + return true; + } + + // Objects with prototype are plain iff they were constructed by a global Object function + Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; + return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; + }, + + isEmptyObject: function( obj ) { + var name; + + for ( name in obj ) { + return false; + } + return true; + }, + + // Evaluates a script in a provided context; falls back to the global one + // if not specified. + globalEval: function( code, options, doc ) { + DOMEval( code, { nonce: options && options.nonce }, doc ); + }, + + each: function( obj, callback ) { + var length, i = 0; + + if ( isArrayLike( obj ) ) { + length = obj.length; + for ( ; i < length; i++ ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } else { + for ( i in obj ) { + if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { + break; + } + } + } + + return obj; + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArrayLike( Object( arr ) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + return arr == null ? -1 : indexOf.call( arr, elem, i ); + }, + + // Support: Android <=4.0 only, PhantomJS 1 only + // push.apply(_, arraylike) throws on ancient WebKit + merge: function( first, second ) { + var len = +second.length, + j = 0, + i = first.length; + + for ( ; j < len; j++ ) { + first[ i++ ] = second[ j ]; + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, invert ) { + var callbackInverse, + matches = [], + i = 0, + length = elems.length, + callbackExpect = !invert; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + callbackInverse = !callback( elems[ i ], i ); + if ( callbackInverse !== callbackExpect ) { + matches.push( elems[ i ] ); + } + } + + return matches; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var length, value, + i = 0, + ret = []; + + // Go through the array, translating each of the items to their new values + if ( isArrayLike( elems ) ) { + length = elems.length; + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret.push( value ); + } + } + } + + // Flatten any nested arrays + return flat( ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // jQuery.support is not used in Core but other projects attach their + // properties to it so it needs to exist. + support: support +} ); + +if ( typeof Symbol === "function" ) { + jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; +} + +// Populate the class2type map +jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), + function( _i, name ) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); + } ); + +function isArrayLike( obj ) { + + // Support: real iOS 8.2 only (not reproducible in simulator) + // `in` check used to prevent JIT error (gh-2145) + // hasOwn isn't used here due to false negatives + // regarding Nodelist length in IE + var length = !!obj && "length" in obj && obj.length, + type = toType( obj ); + + if ( isFunction( obj ) || isWindow( obj ) ) { + return false; + } + + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj; +} +var Sizzle = +/*! + * Sizzle CSS Selector Engine v2.3.9 + * https://sizzlejs.com/ + * + * Copyright JS Foundation and other contributors + * Released under the MIT license + * https://js.foundation/ + * + * Date: 2022-12-19 + */ +( function( window ) { +var i, + support, + Expr, + getText, + isXML, + tokenize, + compile, + select, + outermostContext, + sortInput, + hasDuplicate, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + 1 * new Date(), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + nonnativeSelectorCache = createCache(), + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + } + return 0; + }, + + // Instance methods + hasOwn = ( {} ).hasOwnProperty, + arr = [], + pop = arr.pop, + pushNative = arr.push, + push = arr.push, + slice = arr.slice, + + // Use a stripped-down indexOf as it's faster than native + // https://jsperf.com/thor-indexof-vs-for/5 + indexOf = function( list, elem ) { + var i = 0, + len = list.length; + for ( ; i < len; i++ ) { + if ( list[ i ] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + + "ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + + // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram + identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + + // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + + + // Operator (capture 2) + "*([*^$|!~]?=)" + whitespace + + + // "Attribute values must be CSS identifiers [capture 5] + // or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + + whitespace + "*\\]", + + pseudos = ":(" + identifier + ")(?:\\((" + + + // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: + // 1. quoted (capture 3; capture 4 or capture 5) + "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + + + // 2. simple (capture 6) + "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + + + // 3. anything else (capture 2) + ".*" + + ")\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rwhitespace = new RegExp( whitespace + "+", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + + "*" ), + rdescend = new RegExp( whitespace + "|>" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + identifier + ")" ), + "CLASS": new RegExp( "^\\.(" + identifier + ")" ), + "TAG": new RegExp( "^(" + identifier + "|[*])" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rhtml = /HTML$/i, + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rsibling = /[+~]/, + + // CSS escapes + // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), + funescape = function( escape, nonHex ) { + var high = "0x" + escape.slice( 1 ) - 0x10000; + + return nonHex ? + + // Strip the backslash prefix from a non-hex escape sequence + nonHex : + + // Replace a hexadecimal escape sequence with the encoded Unicode code point + // Support: IE <=11+ + // For values outside the Basic Multilingual Plane (BMP), manually construct a + // surrogate pair + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }, + + // CSS string/identifier serialization + // https://drafts.csswg.org/cssom/#common-serializing-idioms + rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + fcssescape = function( ch, asCodePoint ) { + if ( asCodePoint ) { + + // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER + if ( ch === "\0" ) { + return "\uFFFD"; + } + + // Control characters and (dependent upon position) numbers get escaped as code points + return ch.slice( 0, -1 ) + "\\" + + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + } + + // Other potentially-special ASCII characters get backslash-escaped + return "\\" + ch; + }, + + // Used for iframes + // See setDocument() + // Removing the function wrapper causes a "Permission Denied" + // error in IE + unloadHandler = function() { + setDocument(); + }, + + inDisabledFieldset = addCombinator( + function( elem ) { + return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; + }, + { dir: "parentNode", next: "legend" } + ); + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + ( arr = slice.call( preferredDoc.childNodes ) ), + preferredDoc.childNodes + ); + + // Support: Android<4.0 + // Detect silently failing push.apply + // eslint-disable-next-line no-unused-expressions + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + pushNative.apply( target, slice.call( els ) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + + // Can't trust NodeList.length + while ( ( target[ j++ ] = els[ i++ ] ) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var m, i, elem, nid, match, groups, newSelector, + newContext = context && context.ownerDocument, + + // nodeType defaults to 9, since context defaults to document + nodeType = context ? context.nodeType : 9; + + results = results || []; + + // Return early from calls with invalid selector or context + if ( typeof selector !== "string" || !selector || + nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { + + return results; + } + + // Try to shortcut find operations (as opposed to filters) in HTML documents + if ( !seed ) { + setDocument( context ); + context = context || document; + + if ( documentIsHTML ) { + + // If the selector is sufficiently simple, try using a "get*By*" DOM method + // (excepting DocumentFragment context, where the methods don't exist) + if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + + // ID selector + if ( ( m = match[ 1 ] ) ) { + + // Document context + if ( nodeType === 9 ) { + if ( ( elem = context.getElementById( m ) ) ) { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + + // Element context + } else { + + // Support: IE, Opera, Webkit + // TODO: identify versions + // getElementById can match elements by name instead of ID + if ( newContext && ( elem = newContext.getElementById( m ) ) && + contains( context, elem ) && + elem.id === m ) { + + results.push( elem ); + return results; + } + } + + // Type selector + } else if ( match[ 2 ] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Class selector + } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && + context.getElementsByClassName ) { + + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // Take advantage of querySelectorAll + if ( support.qsa && + !nonnativeSelectorCache[ selector + " " ] && + ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && + + // Support: IE 8 only + // Exclude object elements + ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { + + newSelector = selector; + newContext = context; + + // qSA considers elements outside a scoping root when evaluating child or + // descendant combinators, which is not what we want. + // In such cases, we work around the behavior by prefixing every selector in the + // list with an ID selector referencing the scope context. + // The technique has to be used as well when a leading combinator is used + // as such selectors are not recognized by querySelectorAll. + // Thanks to Andrew Dupont for this technique. + if ( nodeType === 1 && + ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; + + // We can use :scope instead of the ID hack if the browser + // supports it & if we're not changing the context. + if ( newContext !== context || !support.scope ) { + + // Capture the context ID, setting it first if necessary + if ( ( nid = context.getAttribute( "id" ) ) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", ( nid = expando ) ); + } + } + + // Prefix every selector in the list + groups = tokenize( selector ); + i = groups.length; + while ( i-- ) { + groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + + toSelector( groups[ i ] ); + } + newSelector = groups.join( "," ); + } + + try { + + // `qSA` may not throw for unrecognized parts using forgiving parsing: + // https://drafts.csswg.org/selectors/#forgiving-selector + // like the `:has()` pseudo-class: + // https://drafts.csswg.org/selectors/#relational + // `CSS.supports` is still expected to return `false` then: + // https://drafts.csswg.org/css-conditional-4/#typedef-supports-selector-fn + // https://drafts.csswg.org/css-conditional-4/#dfn-support-selector + if ( support.cssSupportsSelector && + + // eslint-disable-next-line no-undef + !CSS.supports( "selector(:is(" + newSelector + "))" ) ) { + + // Support: IE 11+ + // Throw to get to the same code path as an error directly in qSA. + // Note: once we only support browser supporting + // `CSS.supports('selector(...)')`, we can most likely drop + // the `try-catch`. IE doesn't implement the API. + throw new Error(); + } + + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + nonnativeSelectorCache( selector, true ); + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {function(string, object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key + " " ) > Expr.cacheLength ) { + + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return ( cache[ key + " " ] = value ); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created element and returns a boolean result + */ +function assert( fn ) { + var el = document.createElement( "fieldset" ); + + try { + return !!fn( el ); + } catch ( e ) { + return false; + } finally { + + // Remove from its parent by default + if ( el.parentNode ) { + el.parentNode.removeChild( el ); + } + + // release memory in IE + el = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split( "|" ), + i = arr.length; + + while ( i-- ) { + Expr.attrHandle[ arr[ i ] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + a.sourceIndex - b.sourceIndex; + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( ( cur = cur.nextSibling ) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return ( name === "input" || name === "button" ) && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for :enabled/:disabled + * @param {Boolean} disabled true for :disabled; false for :enabled + */ +function createDisabledPseudo( disabled ) { + + // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable + return function( elem ) { + + // Only certain elements can match :enabled or :disabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled + // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled + if ( "form" in elem ) { + + // Check for inherited disabledness on relevant non-disabled elements: + // * listed form-associated elements in a disabled fieldset + // https://html.spec.whatwg.org/multipage/forms.html#category-listed + // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled + // * option elements in a disabled optgroup + // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled + // All such elements have a "form" property. + if ( elem.parentNode && elem.disabled === false ) { + + // Option elements defer to a parent optgroup if present + if ( "label" in elem ) { + if ( "label" in elem.parentNode ) { + return elem.parentNode.disabled === disabled; + } else { + return elem.disabled === disabled; + } + } + + // Support: IE 6 - 11 + // Use the isDisabled shortcut property to check for disabled fieldset ancestors + return elem.isDisabled === disabled || + + // Where there is no isDisabled, check manually + /* jshint -W018 */ + elem.isDisabled !== !disabled && + inDisabledFieldset( elem ) === disabled; + } + + return elem.disabled === disabled; + + // Try to winnow out elements that can't be disabled before trusting the disabled property. + // Some victims get caught in our net (label, legend, menu, track), but it shouldn't + // even exist on them, let alone have a boolean value. + } else if ( "label" in elem ) { + return elem.disabled === disabled; + } + + // Remaining elements are neither :enabled nor :disabled + return false; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction( function( argument ) { + argument = +argument; + return markFunction( function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ ( j = matchIndexes[ i ] ) ] ) { + seed[ j ] = !( matches[ j ] = seed[ j ] ); + } + } + } ); + } ); +} + +/** + * Checks a node for validity as a Sizzle context + * @param {Element|Object=} context + * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value + */ +function testContext( context ) { + return context && typeof context.getElementsByTagName !== "undefined" && context; +} + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Detects XML nodes + * @param {Element|Object} elem An element or a document + * @returns {Boolean} True iff elem is a non-HTML XML node + */ +isXML = Sizzle.isXML = function( elem ) { + var namespace = elem && elem.namespaceURI, + docElem = elem && ( elem.ownerDocument || elem ).documentElement; + + // Support: IE <=8 + // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes + // https://bugs.jquery.com/ticket/4833 + return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); +}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var hasCompare, subWindow, + doc = node ? node.ownerDocument || node : preferredDoc; + + // Return early if doc is invalid or already selected + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Update global variables + document = doc; + docElem = document.documentElement; + documentIsHTML = !isXML( document ); + + // Support: IE 9 - 11+, Edge 12 - 18+ + // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) + // Support: IE 11+, Edge 17 - 18+ + // IE/Edge sometimes throw a "Permission denied" error when strict-comparing + // two documents; shallow comparisons work. + // eslint-disable-next-line eqeqeq + if ( preferredDoc != document && + ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + + // Support: IE 11, Edge + if ( subWindow.addEventListener ) { + subWindow.addEventListener( "unload", unloadHandler, false ); + + // Support: IE 9 - 10 only + } else if ( subWindow.attachEvent ) { + subWindow.attachEvent( "onunload", unloadHandler ); + } + } + + // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, + // Safari 4 - 5 only, Opera <=11.6 - 12.x only + // IE/Edge & older browsers don't support the :scope pseudo-class. + // Support: Safari 6.0 only + // Safari 6.0 supports :scope but it's an alias of :root there. + support.scope = assert( function( el ) { + docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); + return typeof el.querySelectorAll !== "undefined" && + !el.querySelectorAll( ":scope fieldset div" ).length; + } ); + + // Support: Chrome 105+, Firefox 104+, Safari 15.4+ + // Make sure forgiving mode is not used in `CSS.supports( "selector(...)" )`. + // + // `:is()` uses a forgiving selector list as an argument and is widely + // implemented, so it's a good one to test against. + support.cssSupportsSelector = assert( function() { + /* eslint-disable no-undef */ + + return CSS.supports( "selector(*)" ) && + + // Support: Firefox 78-81 only + // In old Firefox, `:is()` didn't use forgiving parsing. In that case, + // fail this test as there's no selector to test against that. + // `CSS.supports` uses unforgiving parsing + document.querySelectorAll( ":is(:jqfake)" ) && + + // `*` is needed as Safari & newer Chrome implemented something in between + // for `:has()` - it throws in `qSA` if it only contains an unsupported + // argument but multiple ones, one of which is supported, are fine. + // We want to play safe in case `:is()` gets the same treatment. + !CSS.supports( "selector(:is(*,:jqfake))" ); + + /* eslint-enable */ + } ); + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties + // (excepting IE8 booleans) + support.attributes = assert( function( el ) { + el.className = "i"; + return !el.getAttribute( "className" ); + } ); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert( function( el ) { + el.appendChild( document.createComment( "" ) ); + return !el.getElementsByTagName( "*" ).length; + } ); + + // Support: IE<9 + support.getElementsByClassName = rnative.test( document.getElementsByClassName ); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programmatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert( function( el ) { + docElem.appendChild( el ).id = expando; + return !document.getElementsByName || !document.getElementsByName( expando ).length; + } ); + + // ID filter and find + if ( support.getById ) { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute( "id" ) === attrId; + }; + }; + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var elem = context.getElementById( id ); + return elem ? [ elem ] : []; + } + }; + } else { + Expr.filter[ "ID" ] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== "undefined" && + elem.getAttributeNode( "id" ); + return node && node.value === attrId; + }; + }; + + // Support: IE 6 - 7 only + // getElementById is not reliable as a find shortcut + Expr.find[ "ID" ] = function( id, context ) { + if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { + var node, i, elems, + elem = context.getElementById( id ); + + if ( elem ) { + + // Verify the id attribute + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + + // Fall back on getElementsByName + elems = context.getElementsByName( id ); + i = 0; + while ( ( elem = elems[ i++ ] ) ) { + node = elem.getAttributeNode( "id" ); + if ( node && node.value === id ) { + return [ elem ]; + } + } + } + + return []; + } + }; + } + + // Tag + Expr.find[ "TAG" ] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== "undefined" ) { + return context.getElementsByTagName( tag ); + + // DocumentFragment nodes don't have gEBTN + } else if ( support.qsa ) { + return context.querySelectorAll( tag ); + } + } : + + function( tag, context ) { + var elem, + tmp = [], + i = 0, + + // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( ( elem = results[ i++ ] ) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See https://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { + + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert( function( el ) { + + var input; + + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // https://bugs.jquery.com/ticket/12359 + docElem.appendChild( el ).innerHTML = "" + + ""; + + // Support: IE8, Opera 11-12.16 + // Nothing should be selected when empty strings follow ^= or $= or *= + // The test attribute must be unknown in Opera but "safe" for WinRT + // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section + if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !el.querySelectorAll( "[selected]" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ + if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { + rbuggyQSA.push( "~=" ); + } + + // Support: IE 11+, Edge 15 - 18+ + // IE 11/Edge don't find elements on a `[name='']` query in some cases. + // Adding a temporary attribute to the document before the selection works + // around the issue. + // Interestingly, IE 10 & older don't seem to have the issue. + input = document.createElement( "input" ); + input.setAttribute( "name", "" ); + el.appendChild( input ); + if ( !el.querySelectorAll( "[name='']" ).length ) { + rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + + whitespace + "*(?:''|\"\")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !el.querySelectorAll( ":checked" ).length ) { + rbuggyQSA.push( ":checked" ); + } + + // Support: Safari 8+, iOS 8+ + // https://bugs.webkit.org/show_bug.cgi?id=136851 + // In-page `selector#id sibling-combinator selector` fails + if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { + rbuggyQSA.push( ".#.+[+~]" ); + } + + // Support: Firefox <=3.6 - 5 only + // Old Firefox doesn't throw on a badly-escaped identifier. + el.querySelectorAll( "\\\f" ); + rbuggyQSA.push( "[\\r\\n\\f]" ); + } ); + + assert( function( el ) { + el.innerHTML = "" + + ""; + + // Support: Windows 8 Native Apps + // The type and name attributes are restricted during .innerHTML assignment + var input = document.createElement( "input" ); + input.setAttribute( "type", "hidden" ); + el.appendChild( input ).setAttribute( "name", "D" ); + + // Support: IE8 + // Enforce case-sensitivity of name attribute + if ( el.querySelectorAll( "[name=d]" ).length ) { + rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: IE9-11+ + // IE's :disabled selector does not pick up the children of disabled fieldsets + docElem.appendChild( el ).disabled = true; + if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Support: Opera 10 - 11 only + // Opera 10-11 does not throw on post-comma invalid pseudos + el.querySelectorAll( "*,:x" ); + rbuggyQSA.push( ",.*:" ); + } ); + } + + if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || + docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector ) ) ) ) { + + assert( function( el ) { + + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( el, "*" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( el, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + } ); + } + + if ( !support.cssSupportsSelector ) { + + // Support: Chrome 105+, Safari 15.4+ + // `:has()` uses a forgiving selector list as an argument so our regular + // `try-catch` mechanism fails to catch `:has()` with arguments not supported + // natively like `:has(:contains("Foo"))`. Where supported & spec-compliant, + // we now use `CSS.supports("selector(:is(SELECTOR_TO_BE_TESTED))")`, but + // outside that we mark `:has` as buggy. + rbuggyQSA.push( ":has" ); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); + + /* Contains + ---------------------------------------------------------------------- */ + hasCompare = rnative.test( docElem.compareDocumentPosition ); + + // Element contains another + // Purposefully self-exclusive + // As in, an element does not contain itself + contains = hasCompare || rnative.test( docElem.contains ) ? + function( a, b ) { + + // Support: IE <9 only + // IE doesn't have `contains` on `document` so we need to check for + // `documentElement` presence. + // We need to fall back to `a` when `documentElement` is missing + // as `ownerDocument` of elements within `