存档

‘java’ 分类的存档

java播放声音文件

2010年9月2日 wasw100 没有评论

使用sun.audio.*可以很方便的使用java播放声音文件,例如下面这个简单的例子就可以播放声音了

package test;

import java.io.FileInputStream;

import sun.audio.AudioPlayer;
import sun.audio.AudioStream;

public class AudioTest {
	public static void main(String[] args) throws Exception {

		AudioStream as = new AudioStream(new FileInputStream("sound.wav"));
		AudioPlayer.player.start(as);

	}
}

声音文件的停止也很简单
AudioPlayer.player.stop(as);

如果循环播放和循环停止可以这么写
AudioData ad = as.getData();
ContinuousAudioDataStream cads = new ContinuousAudioDataStream(ad);
//循环播放开始哦
AudioPlayer.player.start(cads);

//循环播放停止
AudioPlayer.player.stop(cads);

分类: java 标签: ,

使用解析html中使用&#五位数字;表示的汉字

2010年8月31日 wasw100 没有评论

html中可以使用&#五位数字;形式表示汉字,例如 你好 用html可表示为

你好

使用java如何解析这种类型的字符串成为汉字呢?
1.下载java解析html的第三方jar包,下载地址
http://sourceforge.net/projects/jentities/

2.将jar包导入我们的工程,然后就可以使用这个jar包解析&#五位数字;形式的汉字了,下面是一个简单的例子就会输出你好

package test;

import com.csam.jentities.Entities;

public class Test2 {

	public static void main(String[] args) {

		Entities e = new Entities();
		String s = e.parseText("你好");
		System.out.println(s);
	}

}
分类: java 标签: ,

java解析amf数据

2010年8月6日 wasw100 没有评论

java解析使用blazeds下的两个jar包解析amf,需要的这两个jar包分别是
flex-messaging-common.jar
flex-messaging-core.jar

写了个很简单的例子,只是说明白如何解析,以解析如下amf数据为例(HttpAnalyzer截图)
amf数据

代码如下

import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Array;
import java.util.List;

import flex.messaging.io.SerializationContext;
import flex.messaging.io.amf.ASObject;
import flex.messaging.io.amf.ActionContext;
import flex.messaging.io.amf.ActionMessage;
import flex.messaging.io.amf.AmfMessageDeserializer;
import flex.messaging.io.amf.MessageBody;

public class AmfTest {

	public static void main(String[] args) throws ClassNotFoundException, IOException {
		byte[] bb = {0x00, 0x00, 0x00, 0x01, 0x00, 0x12, 0x41, 0x70, 0x70, 0x65, 0x6E, 0x64, 0x54, 0x6F, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x55, 0x72, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x28, 0x11, 0x06, 0x4B, 0x3F, 0x50, 0x48, 0x50, 0x53, 0x45, 0x53, 0x53, 0x49, 0x44, 0x3D, 0x63, 0x66, 0x35, 0x6B, 0x37, 0x30, 0x74, 0x32, 0x6F, 0x63, 0x66, 0x72, 0x64, 0x63, 0x6E, 0x63, 0x38, 0x32, 0x6C, 0x65, 0x6B, 0x38, 0x67, 0x38, 0x6E, 0x36, 0x00, 0x01, 0x00, 0x0C, 0x2F, 0x31, 0x39, 0x2F, 0x6F, 0x6E, 0x52, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x00, 0x04, 0x6E, 0x75, 0x6C, 0x6C, 0x00, 0x00, 0x0D, 0xFFFFFFF7, 0x11, 0x0A, 0x0B, 0x01, 0x0D, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x04, 0x01, 0x0F, 0x65, 0x72, 0x72, 0x63, 0x6F, 0x64, 0x65, 0x04, 0x00, 0x0B, 0x66, 0x6C, 0x69, 0x73, 0x74, 0x09, 0x25, 0x01, 0x0A, 0x0B, 0x01, 0x05, 0x69, 0x64, 0x06, 0x0B, 0x37, 0x32, 0x31, 0x31, 0x32, 0x07, 0x75, 0x69, 0x64, 0x06, 0x13, 0x32, 0x30, 0x30, 0x37, 0x37, 0x38, 0x35, 0x36, 0x31, 0x07, 0x66, 0x69, 0x64, 0x06, 0x13, 0x32, 0x34, 0x36, 0x37, 0x31, 0x30, 0x36, 0x35, 0x37, 0x0B, 0x66, 0x6E, 0x61, 0x6D, 0x65, 0x06, 0x21, 0xFFFFFFE6, 0xFFFFFF9D, 0xFFFFFF8E, 0xFFFFFFE7, 0xFFFFFF88, 0xFFFFFFBD, 0xFFFFFFEF, 0xFFFFFFBC, 0xFFFFFFB3, 0xFFFFFFC2, 0xFFFFFFB7, 0xFFFFFFEF, 0xFFFFFFBD, 0xFFFFFF8F, 0x6E, 0x65, 0x0D, 0x66, 0x6C, 0x65, 0x76, 0x65, 0x6C, 0x06, 0x05, 0x32, 0x35, 0x0B, 0x66, 0x61, 0x74, 0x74, 0x72, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0x10, 0x09, 0x6E, 0x61, 0x6D, 0x65, 0x06, 0x14, 0x0B, 0x65, 0x6E, 0x61, 0x6D, 0x65, 0x06, 0x25, 0x6C, 0x69, 0x73, 0x68, 0x75, 0x61, 0x6E, 0x67, 0xFFFFFFEF, 0xFFFFFFBC, 0xFFFFFFB3, 0xFFFFFFC2, 0xFFFFFFB7, 0xFFFFFFEF, 0xFFFFFFBD, 0xFFFFFF8F, 0x6E, 0x65, 0x0D, 0x69, 0x6D, 0x67, 0x75, 0x72, 0x6C, 0x06, 0xFFFFFF81, 0x17, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x6E, 0x2E, 0x78, 0x6E, 0x69, 0x6D, 0x67, 0x2E, 0x63, 0x6E, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x6E, 0x32, 0x32, 0x31, 0x2F, 0x32, 0x30, 0x31, 0x30, 0x30, 0x36, 0x31, 0x34, 0x2F, 0x32, 0x33, 0x34, 0x35, 0x2F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x30, 0x54, 0x6C, 0x72, 0x5F, 0x31, 0x30, 0x31, 0x39, 0x30, 0x31, 0x6E, 0x30, 0x31, 0x39, 0x31, 0x31, 0x37, 0x2E, 0x6A, 0x70, 0x67, 0x0B, 0x61, 0x76, 0x61, 0x74, 0x61, 0x06, 0x37, 0x31, 0x30, 0x3A, 0x31, 0x30, 0x3A, 0x31, 0x31, 0x3A, 0x31, 0x30, 0x3A, 0x35, 0x3A, 0x31, 0x3A, 0x31, 0x31, 0x3A, 0x35, 0x3A, 0x35, 0x3A, 0x35, 0x3A, 0x31, 0x31, 0x0B, 0x6C, 0x65, 0x76, 0x65, 0x6C, 0x06, 0x18, 0x06, 0x06, 0x09, 0x34, 0x30, 0x37, 0x39, 0x09, 0x73, 0x74, 0x61, 0x72, 0x04, 0x01, 0x07, 0x65, 0x78, 0x70, 0x06, 0x09, 0x37, 0x36, 0x31, 0x38, 0x09, 0x67, 0x6F, 0x6C, 0x64, 0x06, 0x0D, 0x37, 0x30, 0x37, 0x37, 0x37, 0x37, 0x0B, 0x73, 0x74, 0x6F, 0x6E, 0x65, 0x06, 0x07, 0x33, 0x34, 0x33, 0x0F, 0x72, 0x6F, 0x6F, 0x6D, 0x6E, 0x75, 0x6D, 0x06, 0x03, 0x33, 0x0B, 0x6F, 0x70, 0x6E, 0x75, 0x6D, 0x06, 0x07, 0x31, 0x30, 0x38, 0x0D, 0x6C, 0x65, 0x73, 0x73, 0x6F, 0x6E, 0x06, 0x03, 0x31, 0x0D, 0x67, 0x75, 0x65, 0x73, 0x74, 0x73, 0x06, 0x2B, 0x3A, 0x31, 0x32, 0x32, 0x3A, 0x31, 0x30, 0x32, 0x3A, 0x31, 0x38, 0x35, 0x3A, 0x31, 0x30, 0x34, 0x3A, 0x31, 0x30, 0x35, 0x3A, 0x05, 0x69, 0x70, 0x06, 0x15, 0x31, 0x39, 0x39, 0x39, 0x39, 0x30, 0x31, 0x32, 0x35, 0x32, 0x11, 0x73, 0x69, 0x74, 0x65, 0x64, 0x61, 0x74, 0x61, 0x06, 0x01, 0x11, 0x65, 0x76, 0x65, 0x6E, 0x74, 0x6E, 0x75, 0x6D, 0x06, 0x03, 0x30, 0x05, 0x63, 0x74, 0x06, 0x27, 0x32, 0x30, 0x31, 0x30, 0x2D, 0x30, 0x33, 0x2D, 0x32, 0x35, 0x20, 0x32, 0x31, 0x3A, 0x35, 0x35, 0x3A, 0x32, 0x38, 0x0F, 0x6C, 0x6F, 0x67, 0x69, 0x6E, 0x63, 0x74, 0x06, 0x15, 0x31, 0x32, 0x38, 0x30, 0x39, 0x36, 0x32, 0x39, 0x32, 0x31, 0x0D, 0x63, 0x75, 0x72, 0x72, 0x63, 0x74, 0x05, 0x41, 0xFFFFFFD3, 0x16, 0xFFFFFF88, 0x52, 0x00, 0x00, 0x00, 0x09, 0x73, 0x69, 0x74, 0x65, 0x09, 0x01, 0x01, 0x01, 0x0B, 0x66, 0x66, 0x6C, 0x61, 0x67, 0x06, 0x54, 0x56, 0x06, 0x27, 0x32, 0x30, 0x31, 0x30, 0x2D, 0x30, 0x37, 0x2D, 0x31, 0x35, 0x20, 0x31, 0x39, 0x3A, 0x34, 0x39, 0x3A, 0x30, 0x36, 0x01, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x37, 0x32, 0x31, 0x37, 0x38, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x13, 0x32, 0x33, 0x39, 0x31, 0x37, 0x38, 0x37, 0x38, 0x36, 0x12, 0x06, 0x1B, 0xFFFFFFE5, 0xFFFFFFBC, 0xFFFFFFA0, 0xFFFFFFE6, 0xFFFFFFA2, 0xFFFFFFA6, 0xFFFFFFE5, 0xFFFFFFA9, 0xFFFFFF95, 0x4E, 0x69, 0x6E, 0x69, 0x16, 0x06, 0x05, 0x32, 0x33, 0x1A, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0x68, 0x1C, 0x06, 0x6A, 0x1E, 0x06, 0x21, 0x7A, 0x68, 0x61, 0x6E, 0x67, 0x6D, 0x65, 0x6E, 0x67, 0x6A, 0x69, 0x65, 0x4E, 0x69, 0x6E, 0x69, 0x22, 0x06, 0xFFFFFF81, 0x15, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x6E, 0x2E, 0x78, 0x6E, 0x69, 0x6D, 0x67, 0x2E, 0x63, 0x6E, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x6E, 0x31, 0x32, 0x31, 0x2F, 0x32, 0x30, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x2F, 0x31, 0x36, 0x30, 0x35, 0x2F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x45, 0x76, 0x64, 0x62, 0x5F, 0x32, 0x36, 0x38, 0x39, 0x37, 0x64, 0x30, 0x31, 0x39, 0x31, 0x31, 0x36, 0x2E, 0x6A, 0x70, 0x67, 0x26, 0x06, 0x28, 0x2A, 0x06, 0x6C, 0x01, 0x62, 0x06, 0x54, 0x56, 0x06, 0x27, 0x32, 0x30, 0x31, 0x30, 0x2D, 0x30, 0x37, 0x2D, 0x31, 0x35, 0x20, 0x32, 0x32, 0x3A, 0x32, 0x39, 0x3A, 0x30, 0x39, 0x01, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x38, 0x30, 0x33, 0x38, 0x36, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x13, 0x33, 0x30, 0x39, 0x30, 0x39, 0x39, 0x37, 0x35, 0x39, 0x12, 0x06, 0x13, 0xFFFFFFE6, 0xFFFFFF9E, 0xFFFFFF97, 0xFFFFFFE6, 0xFFFFFFBC, 0xFFFFFFA2, 0xFFFFFFE5, 0xFFFFFF81, 0xFFFFFF89, 0x16, 0x06, 0x05, 0x31, 0x33, 0x1A, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0x76, 0x1C, 0x06, 0x78, 0x1E, 0x06, 0x13, 0x6C, 0x69, 0x6E, 0x68, 0x61, 0x6E, 0x77, 0x65, 0x69, 0x22, 0x06, 0xFFFFFF81, 0x15, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x6E, 0x2E, 0x78, 0x6E, 0x69, 0x6D, 0x67, 0x2E, 0x63, 0x6E, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x6E, 0x34, 0x32, 0x31, 0x2F, 0x32, 0x30, 0x31, 0x30, 0x30, 0x33, 0x32, 0x38, 0x2F, 0x31, 0x34, 0x31, 0x30, 0x2F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x55, 0x37, 0x70, 0x4F, 0x5F, 0x31, 0x31, 0x39, 0x33, 0x38, 0x64, 0x30, 0x31, 0x39, 0x31, 0x31, 0x38, 0x2E, 0x6A, 0x70, 0x67, 0x26, 0x06, 0x37, 0x31, 0x30, 0x3A, 0x31, 0x30, 0x3A, 0x31, 0x31, 0x3A, 0x31, 0x30, 0x3A, 0x35, 0x3A, 0x31, 0x3A, 0x31, 0x31, 0x3A, 0x35, 0x3A, 0x35, 0x3A, 0x35, 0x3A, 0x31, 0x30, 0x2A, 0x06, 0x7A, 0x01, 0x62, 0x06, 0x54, 0x56, 0x06, 0x27, 0x32, 0x30, 0x31, 0x30, 0x2D, 0x30, 0x38, 0x2D, 0x30, 0x34, 0x20, 0x31, 0x35, 0x3A, 0x33, 0x34, 0x3A, 0x33, 0x36, 0x01, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x37, 0x33, 0x31, 0x39, 0x31, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x13, 0x32, 0x32, 0x34, 0x37, 0x34, 0x31, 0x31, 0x33, 0x33, 0x12, 0x06, 0x0D, 0xFFFFFFE9, 0xFFFFFFA9, 0xFFFFFFAC, 0xFFFFFFE6, 0xFFFFFF95, 0xFFFFFF8F, 0x16, 0x06, 0x03, 0x37, 0x1A, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0xFFFFFF81, 0x06, 0x1C, 0x06, 0xFFFFFF81, 0x08, 0x1E, 0x06, 0x0B, 0x6D, 0x61, 0x6D, 0x69, 0x6E, 0x22, 0x06, 0xFFFFFF81, 0x15, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x6E, 0x2E, 0x78, 0x6E, 0x69, 0x6D, 0x67, 0x2E, 0x63, 0x6E, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x6E, 0x32, 0x32, 0x31, 0x2F, 0x32, 0x30, 0x30, 0x39, 0x31, 0x30, 0x32, 0x37, 0x2F, 0x32, 0x31, 0x33, 0x35, 0x2F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x51, 0x77, 0x41, 0x51, 0x5F, 0x31, 0x35, 0x34, 0x33, 0x36, 0x6B, 0x30, 0x31, 0x39, 0x31, 0x31, 0x38, 0x2E, 0x6A, 0x70, 0x67, 0x26, 0x06, 0x28, 0x2A, 0x06, 0xFFFFFF81, 0x0A, 0x06, 0x06, 0x0B, 0x33, 0x39, 0x30, 0x34, 0x36, 0x2E, 0x04, 0x00, 0x30, 0x06, 0x07, 0x33, 0x32, 0x39, 0x34, 0x06, 0x09, 0x33, 0x34, 0x37, 0x32, 0x38, 0x06, 0x54, 0x3C, 0x06, 0x3E, 0x40, 0x06, 0x05, 0x32, 0x31, 0x44, 0x06, 0x46, 0x48, 0x06, 0x2B, 0x3A, 0x31, 0x32, 0x31, 0x3A, 0x31, 0x37, 0x32, 0x3A, 0x31, 0x37, 0x39, 0x3A, 0x31, 0x30, 0x37, 0x3A, 0x31, 0x30, 0x35, 0x3A, 0x4C, 0x06, 0x54, 0x50, 0x06, 0x01, 0x52, 0x06, 0x54, 0x56, 0x06, 0x27, 0x32, 0x30, 0x31, 0x30, 0x2D, 0x30, 0x36, 0x2D, 0x30, 0x32, 0x20, 0x31, 0x37, 0x3A, 0x30, 0x33, 0x3A, 0x31, 0x39, 0x5A, 0x06, 0x15, 0x31, 0x32, 0x37, 0x39, 0x34, 0x31, 0x36, 0x34, 0x32, 0x31, 0x5E, 0x05, 0x41, 0xFFFFFFD3, 0x16, 0xFFFFFF88, 0x66, 0x00, 0x00, 0x00, 0x60, 0x09, 0x01, 0x01, 0x01, 0x62, 0x06, 0x54, 0x56, 0x06, 0x27, 0x32, 0x30, 0x31, 0x30, 0x2D, 0x30, 0x37, 0x2D, 0x31, 0x38, 0x20, 0x30, 0x39, 0x3A, 0x32, 0x36, 0x3A, 0x33, 0x35, 0x01, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x38, 0x30, 0x33, 0x38, 0x33, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x13, 0x32, 0x37, 0x30, 0x30, 0x32, 0x38, 0x38, 0x31, 0x34, 0x12, 0x06, 0x13, 0xFFFFFFE5, 0xFFFFFFAD, 0xFFFFFF99, 0xFFFFFFE8, 0xFFFFFF99, 0xFFFFFFB9, 0xFFFFFFE8, 0xFFFFFF94, 0xFFFFFF9A, 0x16, 0x06, 0x03, 0x32, 0x1A, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0xFFFFFF81, 0x22, 0x1C, 0x06, 0xFFFFFF81, 0x24, 0x1E, 0x06, 0x15, 0x73, 0x75, 0x6E, 0x68, 0x6F, 0x6E, 0x67, 0x77, 0x65, 0x69, 0x22, 0x06, 0xFFFFFF81, 0x17, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x6E, 0x2E, 0x78, 0x6E, 0x69, 0x6D, 0x67, 0x2E, 0x63, 0x6E, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x6E, 0x34, 0x32, 0x31, 0x2F, 0x32, 0x30, 0x31, 0x30, 0x30, 0x36, 0x31, 0x37, 0x2F, 0x31, 0x33, 0x30, 0x35, 0x2F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x45, 0x61, 0x41, 0x34, 0x5F, 0x31, 0x31, 0x37, 0x31, 0x38, 0x32, 0x6E, 0x30, 0x31, 0x39, 0x31, 0x31, 0x38, 0x2E, 0x6A, 0x70, 0x67, 0x26, 0x06, 0x28, 0x2A, 0x06, 0xFFFFFF81, 0x26, 0x01, 0x62, 0x06, 0x54, 0x56, 0x06, 0xFFFFFF81, 0x02, 0x01, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x38, 0x30, 0x33, 0x38, 0x34, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x13, 0x32, 0x38, 0x37, 0x31, 0x30, 0x38, 0x32, 0x39, 0x30, 0x12, 0x06, 0x13, 0xFFFFFFE5, 0xFFFFFFB4, 0xFFFFFF94, 0xFFFFFFE7, 0xFFFFFFBE, 0xFFFFFFBD, 0xFFFFFFE9, 0xFFFFFFB9, 0xFFFFFFAD, 0x16, 0x06, 0xFFFFFF81, 0x26, 0x1A, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0xFFFFFF81, 0x2E, 0x1C, 0x06, 0xFFFFFF81, 0x30, 0x1E, 0x06, 0x0F, 0x63, 0x75, 0x69, 0x79, 0x75, 0x6C, 0x75, 0x22, 0x06, 0xFFFFFF81, 0x15, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x6E, 0x2E, 0x78, 0x6E, 0x69, 0x6D, 0x67, 0x2E, 0x63, 0x6E, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x6E, 0x33, 0x32, 0x31, 0x2F, 0x32, 0x30, 0x31, 0x30, 0x30, 0x34, 0x31, 0x30, 0x2F, 0x31, 0x38, 0x30, 0x35, 0x2F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x6F, 0x52, 0x38, 0x51, 0x5F, 0x38, 0x30, 0x32, 0x32, 0x33, 0x6A, 0x30, 0x31, 0x39, 0x31, 0x31, 0x37, 0x2E, 0x6A, 0x70, 0x67, 0x26, 0x06, 0x28, 0x2A, 0x06, 0xFFFFFF81, 0x26, 0x01, 0x62, 0x06, 0x54, 0x56, 0x06, 0xFFFFFF81, 0x02, 0x01, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x0C, 0x12, 0x06, 0x19, 0xFFFFFFE7, 0xFFFFFF8E, 0xFFFFFF8B, 0xFFFFFFE4, 0xFFFFFFBC, 0xFFFFFF9F, 0xFFFFFFE4, 0xFFFFFFBC, 0xFFFFFF9F, 0x5E, 0x2D, 0x5E, 0x16, 0x06, 0xFFFFFF81, 0x26, 0x1A, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x34, 0x37, 0x33, 0x33, 0x31, 0x0A, 0x06, 0x0C, 0x1C, 0x06, 0xFFFFFF81, 0x36, 0x1E, 0x06, 0x1B, 0x77, 0x61, 0x6E, 0x67, 0x77, 0x65, 0x69, 0x77, 0x65, 0x69, 0x5E, 0x2D, 0x5E, 0x2E, 0x04, 0x00, 0x22, 0x06, 0xFFFFFF81, 0x21, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x6E, 0x2E, 0x78, 0x6E, 0x69, 0x6D, 0x67, 0x2E, 0x63, 0x6E, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x6E, 0x33, 0x32, 0x31, 0x2F, 0x32, 0x30, 0x31, 0x30, 0x30, 0x34, 0x32, 0x36, 0x2F, 0x30, 0x39, 0x33, 0x35, 0x2F, 0x68, 0x5F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x68, 0x4B, 0x53, 0x35, 0x5F, 0x36, 0x36, 0x66, 0x34, 0x30, 0x30, 0x30, 0x30, 0x64, 0x38, 0x62, 0x34, 0x32, 0x66, 0x37, 0x34, 0x2E, 0x6A, 0x70, 0x67, 0x26, 0x06, 0x28, 0x2A, 0x06, 0xFFFFFF81, 0x26, 0x30, 0x06, 0x05, 0x31, 0x34, 0x34, 0x06, 0x07, 0x38, 0x31, 0x30, 0x38, 0x06, 0x05, 0x34, 0x35, 0x3C, 0x06, 0x3E, 0x40, 0x06, 0x05, 0x31, 0x30, 0x44, 0x06, 0x46, 0x48, 0x06, 0x2B, 0x3A, 0x31, 0x31, 0x33, 0x3A, 0x31, 0x30, 0x32, 0x3A, 0x31, 0x30, 0x33, 0x3A, 0x31, 0x30, 0x34, 0x3A, 0x31, 0x30, 0x35, 0x3A, 0x4C, 0x06, 0x54, 0x50, 0x06, 0x01, 0x52, 0x06, 0x54, 0x56, 0x06, 0x27, 0x32, 0x30, 0x31, 0x30, 0x2D, 0x30, 0x37, 0x2D, 0x31, 0x35, 0x20, 0x31, 0x34, 0x3A, 0x35, 0x31, 0x3A, 0x34, 0x36, 0x5A, 0x06, 0x15, 0x31, 0x32, 0x38, 0x30, 0x39, 0x37, 0x35, 0x30, 0x34, 0x31, 0x5E, 0x05, 0x41, 0xFFFFFFD3, 0x16, 0xFFFFFF88, 0xFFFFFF81, 0x40, 0x00, 0x00, 0x60, 0x09, 0x01, 0x01, 0x01, 0x62, 0x04, 0x00, 0x01, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x38, 0x30, 0x33, 0x38, 0x32, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x13, 0x32, 0x36, 0x39, 0x34, 0x33, 0x36, 0x38, 0x38, 0x30, 0x12, 0x06, 0x1F, 0xFFFFFFE5, 0xFFFFFF88, 0xFFFFFF98, 0xFFFFFFE5, 0xFFFFFFB0, 0xFFFFFF8F, 0xFFFFFFE5, 0xFFFFFFAE, 0xFFFFFF81, 0x6C, 0xFFFFFFE2, 0xFFFFFF99, 0xFFFFFFA1, 0x76, 0x65, 0x16, 0x06, 0xFFFFFF81, 0x26, 0x1A, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0xFFFFFF81, 0x4E, 0x1C, 0x06, 0xFFFFFF81, 0x50, 0x1E, 0x06, 0x23, 0x6C, 0x69, 0x75, 0x78, 0x69, 0x61, 0x6F, 0x6E, 0x69, 0x6E, 0x67, 0x6C, 0xFFFFFFE2, 0xFFFFFF99, 0xFFFFFFA1, 0x76, 0x65, 0x22, 0x06, 0xFFFFFF81, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x6E, 0x2E, 0x78, 0x6E, 0x69, 0x6D, 0x67, 0x2E, 0x63, 0x6E, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x6E, 0x33, 0x31, 0x31, 0x2F, 0x32, 0x30, 0x30, 0x39, 0x30, 0x36, 0x32, 0x36, 0x2F, 0x30, 0x31, 0x33, 0x35, 0x2F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x34, 0x36, 0x33, 0x34, 0x5F, 0x33, 0x36, 0x33, 0x39, 0x63, 0x32, 0x30, 0x34, 0x32, 0x33, 0x35, 0x2E, 0x6A, 0x70, 0x67, 0x26, 0x06, 0x28, 0x2A, 0x06, 0xFFFFFF81, 0x26, 0x01, 0x62, 0x06, 0x54, 0x56, 0x06, 0xFFFFFF81, 0x02, 0x01, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x38, 0x30, 0x33, 0x38, 0x37, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x13, 0x37, 0x32, 0x37, 0x31, 0x37, 0x38, 0x38, 0x33, 0x32, 0x12, 0x06, 0x0D, 0xFFFFFFE8, 0xFFFFFFB5, 0xFFFFFFB5, 0xFFFFFFE4, 0xFFFFFFBC, 0xFFFFFF9F, 0x16, 0x06, 0xFFFFFF81, 0x26, 0x1A, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0xFFFFFF81, 0x58, 0x1C, 0x06, 0xFFFFFF81, 0x5A, 0x1E, 0x06, 0x0F, 0x7A, 0x68, 0x61, 0x6F, 0x77, 0x65, 0x69, 0x22, 0x06, 0xFFFFFF81, 0x1F, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x6E, 0x31, 0x30, 0x31, 0x2E, 0x72, 0x72, 0x69, 0x6D, 0x67, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x6E, 0x31, 0x30, 0x31, 0x2F, 0x32, 0x30, 0x30, 0x39, 0x30, 0x38, 0x30, 0x38, 0x2F, 0x31, 0x30, 0x2F, 0x32, 0x30, 0x2F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x57, 0x53, 0x6D, 0x46, 0x5F, 0x37, 0x37, 0x35, 0x39, 0x30, 0x68, 0x32, 0x30, 0x36, 0x31, 0x33, 0x33, 0x2E, 0x6A, 0x70, 0x67, 0x26, 0x06, 0x28, 0x2A, 0x06, 0xFFFFFF81, 0x26, 0x01, 0x62, 0x06, 0x54, 0x56, 0x06, 0xFFFFFF81, 0x02, 0x01, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x38, 0x30, 0x33, 0x38, 0x35, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x13, 0x32, 0x39, 0x39, 0x38, 0x31, 0x36, 0x37, 0x30, 0x39, 0x12, 0x06, 0x0D, 0xFFFFFFE5, 0xFFFFFF88, 0xFFFFFF98, 0xFFFFFFE8, 0xFFFFFFB6, 0xFFFFFF85, 0x16, 0x06, 0xFFFFFF81, 0x26, 0x1A, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0xFFFFFF81, 0x62, 0x1C, 0x06, 0xFFFFFF81, 0x64, 0x1E, 0x06, 0x0F, 0x6C, 0x69, 0x75, 0x63, 0x68, 0x61, 0x6F, 0x22, 0x06, 0x5F, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x65, 0x61, 0x64, 0x2E, 0x78, 0x69, 0x61, 0x6F, 0x6E, 0x65, 0x69, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x30, 0x2F, 0x30, 0x2F, 0x6D, 0x65, 0x6E, 0x5F, 0x74, 0x69, 0x6E, 0x79, 0x2E, 0x67, 0x69, 0x66, 0x26, 0x06, 0x28, 0x2A, 0x06, 0xFFFFFF81, 0x26, 0x01, 0x62, 0x06, 0x54, 0x56, 0x06, 0xFFFFFF81, 0x02, 0x01, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x38, 0x30, 0x33, 0x38, 0x30, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x13, 0x32, 0x36, 0x31, 0x38, 0x36, 0x31, 0x38, 0x33, 0x38, 0x12, 0x06, 0x13, 0xFFFFFFE8, 0xFFFFFFB5, 0xFFFFFFB5, 0xFFFFFFE4, 0xFFFFFFB8, 0xFFFFFF9C, 0xFFFFFFE6, 0xFFFFFF96, 0xFFFFFFB9, 0x16, 0x06, 0xFFFFFF81, 0x26, 0x1A, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0xFFFFFF81, 0x6C, 0x1C, 0x06, 0xFFFFFF81, 0x6E, 0x1E, 0x06, 0x19, 0x7A, 0x68, 0x61, 0x6F, 0x64, 0x6F, 0x6E, 0x67, 0x66, 0x61, 0x6E, 0x67, 0x22, 0x06, 0xFFFFFF81, 0x13, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x6E, 0x2E, 0x78, 0x6E, 0x69, 0x6D, 0x67, 0x2E, 0x63, 0x6E, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x6E, 0x33, 0x30, 0x31, 0x2F, 0x32, 0x30, 0x30, 0x39, 0x30, 0x31, 0x31, 0x33, 0x2F, 0x30, 0x38, 0x2F, 0x33, 0x35, 0x2F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x61, 0x64, 0x61, 0x67, 0x5F, 0x31, 0x33, 0x34, 0x65, 0x32, 0x30, 0x34, 0x30, 0x39, 0x36, 0x2E, 0x6A, 0x70, 0x67, 0x26, 0x06, 0x28, 0x2A, 0x06, 0xFFFFFF81, 0x26, 0x01, 0x62, 0x06, 0x54, 0x56, 0x06, 0xFFFFFF81, 0x02, 0x01, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x38, 0x30, 0x33, 0x37, 0x34, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x13, 0x32, 0x32, 0x38, 0x30, 0x34, 0x39, 0x37, 0x36, 0x32, 0x12, 0x06, 0x13, 0xFFFFFFE5, 0xFFFFFFBC, 0xFFFFFFA0, 0xFFFFFFE6, 0xFFFFFF96, 0xFFFFFF87, 0xFFFFFFE6, 0xFFFFFF99, 0xFFFFFFB6, 0x16, 0x06, 0xFFFFFF81, 0x26, 0x1A, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0xFFFFFF81, 0x76, 0x1C, 0x06, 0xFFFFFF81, 0x78, 0x1E, 0x06, 0x19, 0x7A, 0x68, 0x61, 0x6E, 0x67, 0x77, 0x65, 0x6E, 0x6A, 0x69, 0x6E, 0x67, 0x22, 0x06, 0xFFFFFF81, 0x15, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x6E, 0x2E, 0x78, 0x6E, 0x69, 0x6D, 0x67, 0x2E, 0x63, 0x6E, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x6E, 0x34, 0x32, 0x31, 0x2F, 0x32, 0x30, 0x31, 0x30, 0x30, 0x33, 0x31, 0x33, 0x2F, 0x31, 0x39, 0x31, 0x35, 0x2F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x37, 0x58, 0x45, 0x66, 0x5F, 0x33, 0x37, 0x34, 0x32, 0x32, 0x65, 0x30, 0x31, 0x39, 0x31, 0x31, 0x38, 0x2E, 0x6A, 0x70, 0x67, 0x26, 0x06, 0x28, 0x2A, 0x06, 0xFFFFFF81, 0x26, 0x01, 0x62, 0x06, 0x54, 0x56, 0x06, 0xFFFFFF81, 0x02, 0x01, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x37, 0x35, 0x39, 0x37, 0x30, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x13, 0x32, 0x36, 0x39, 0x35, 0x33, 0x35, 0x37, 0x35, 0x31, 0x12, 0x06, 0x0D, 0xFFFFFFE5, 0xFFFFFFBC, 0xFFFFFFA0, 0xFFFFFFE7, 0xFFFFFF90, 0xFFFFFF9B, 0x16, 0x06, 0xFFFFFF81, 0x26, 0x1A, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0xFFFFFF82, 0x00, 0x1C, 0x06, 0xFFFFFF82, 0x02, 0x1E, 0x06, 0x13, 0x7A, 0x68, 0x61, 0x6E, 0x67, 0x63, 0x68, 0x65, 0x6E, 0x22, 0x06, 0xFFFFFF81, 0x15, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x6E, 0x2E, 0x78, 0x6E, 0x69, 0x6D, 0x67, 0x2E, 0x63, 0x6E, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x6E, 0x33, 0x32, 0x31, 0x2F, 0x32, 0x30, 0x30, 0x39, 0x31, 0x31, 0x31, 0x38, 0x2F, 0x31, 0x33, 0x35, 0x35, 0x2F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x36, 0x4C, 0x72, 0x50, 0x5F, 0x34, 0x30, 0x33, 0x30, 0x34, 0x6E, 0x30, 0x31, 0x39, 0x31, 0x31, 0x38, 0x2E, 0x6A, 0x70, 0x67, 0x26, 0x06, 0x28, 0x2A, 0x06, 0xFFFFFF81, 0x26, 0x01, 0x62, 0x06, 0x54, 0x56, 0x06, 0x27, 0x32, 0x30, 0x31, 0x30, 0x2D, 0x30, 0x37, 0x2D, 0x32, 0x34, 0x20, 0x31, 0x30, 0x3A, 0x30, 0x35, 0x3A, 0x33, 0x37, 0x01, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x38, 0x30, 0x33, 0x38, 0x31, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x13, 0x32, 0x36, 0x36, 0x32, 0x33, 0x34, 0x37, 0x38, 0x31, 0x12, 0x06, 0x0D, 0xFFFFFFE6, 0xFFFFFFB2, 0xFFFFFF88, 0xFFFFFFE6, 0xFFFFFF99, 0xFFFFFF97, 0x16, 0x06, 0xFFFFFF81, 0x26, 0x1A, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0xFFFFFF82, 0x0C, 0x1C, 0x06, 0xFFFFFF82, 0x0E, 0x1E, 0x06, 0x0F, 0x73, 0x68, 0x65, 0x6E, 0x68, 0x61, 0x6E, 0x22, 0x06, 0xFFFFFF81, 0x17, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x6E, 0x2E, 0x78, 0x6E, 0x69, 0x6D, 0x67, 0x2E, 0x63, 0x6E, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x6E, 0x33, 0x31, 0x31, 0x2F, 0x32, 0x30, 0x30, 0x39, 0x30, 0x32, 0x31, 0x30, 0x2F, 0x32, 0x31, 0x2F, 0x32, 0x35, 0x2F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x6C, 0x73, 0x39, 0x76, 0x5F, 0x38, 0x36, 0x34, 0x30, 0x37, 0x61, 0x32, 0x30, 0x34, 0x32, 0x33, 0x34, 0x2E, 0x6A, 0x70, 0x67, 0x26, 0x06, 0x28, 0x2A, 0x06, 0xFFFFFF81, 0x26, 0x01, 0x62, 0x06, 0x54, 0x56, 0x06, 0xFFFFFF81, 0x02, 0x01, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x38, 0x30, 0x33, 0x37, 0x35, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x13, 0x32, 0x34, 0x32, 0x30, 0x32, 0x37, 0x38, 0x31, 0x37, 0x12, 0x06, 0x0D, 0xFFFFFFE5, 0xFFFFFF88, 0xFFFFFF98, 0xFFFFFFE4, 0xFFFFFFB8, 0xFFFFFF9B, 0x16, 0x06, 0xFFFFFF81, 0x26, 0x1A, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0xFFFFFF82, 0x16, 0x1C, 0x06, 0xFFFFFF82, 0x18, 0x1E, 0x06, 0x0F, 0x6C, 0x69, 0x75, 0x63, 0x6F, 0x6E, 0x67, 0x22, 0x06, 0xFFFFFF81, 0x15, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x6E, 0x2E, 0x78, 0x6E, 0x69, 0x6D, 0x67, 0x2E, 0x63, 0x6E, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x6E, 0x31, 0x32, 0x31, 0x2F, 0x32, 0x30, 0x31, 0x30, 0x30, 0x36, 0x30, 0x35, 0x2F, 0x32, 0x32, 0x33, 0x30, 0x2F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x4C, 0x4B, 0x53, 0x43, 0x5F, 0x35, 0x31, 0x36, 0x33, 0x36, 0x65, 0x30, 0x31, 0x39, 0x31, 0x31, 0x37, 0x2E, 0x6A, 0x70, 0x67, 0x26, 0x06, 0x28, 0x2A, 0x06, 0xFFFFFF81, 0x26, 0x01, 0x62, 0x06, 0x54, 0x56, 0x06, 0xFFFFFF81, 0x02, 0x01, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x38, 0x30, 0x33, 0x37, 0x36, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x13, 0x32, 0x34, 0x33, 0x37, 0x32, 0x30, 0x36, 0x35, 0x32, 0x12, 0x06, 0x13, 0xFFFFFFE6, 0xFFFFFF9D, 0xFFFFFF8E, 0xFFFFFFE6, 0xFFFFFF96, 0xFFFFFF87, 0xFFFFFFE5, 0xFFFFFFA8, 0xFFFFFF9F, 0x16, 0x06, 0xFFFFFF81, 0x26, 0x1A, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0xFFFFFF82, 0x20, 0x1C, 0x06, 0xFFFFFF82, 0x22, 0x1E, 0x06, 0x13, 0x6C, 0x69, 0x77, 0x65, 0x6E, 0x6A, 0x75, 0x61, 0x6E, 0x22, 0x06, 0xFFFFFF81, 0x09, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x31, 0x35, 0x2E, 0x78, 0x69, 0x61, 0x6F, 0x6E, 0x65, 0x69, 0x2E, 0x63, 0x6F, 0x6D, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x31, 0x35, 0x2F, 0x32, 0x30, 0x30, 0x38, 0x30, 0x35, 0x33, 0x31, 0x2F, 0x32, 0x30, 0x2F, 0x34, 0x31, 0x2F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x37, 0x39, 0x39, 0x38, 0x65, 0x31, 0x35, 0x30, 0x2E, 0x6A, 0x70, 0x67, 0x26, 0x06, 0x28, 0x2A, 0x06, 0xFFFFFF81, 0x26, 0x01, 0x62, 0x06, 0x54, 0x56, 0x06, 0xFFFFFF81, 0x02, 0x01, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x38, 0x30, 0x33, 0x37, 0x38, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x13, 0x32, 0x35, 0x30, 0x35, 0x30, 0x30, 0x36, 0x34, 0x39, 0x12, 0x06, 0x1B, 0xFFFFFFE9, 0xFFFFFF92, 0xFFFFFF9F, 0xFFFFFFE6, 0xFFFFFF81, 0xFFFFFF92, 0xFFFFFFE6, 0xFFFFFF98, 0xFFFFFFA5, 0x40, 0xFFFFFFE8, 0xFFFFFF82, 0xFFFFFF89, 0x16, 0x06, 0xFFFFFF81, 0x26, 0x1A, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0xFFFFFF82, 0x2A, 0x1C, 0x06, 0xFFFFFF82, 0x2C, 0x1E, 0x06, 0x23, 0x7A, 0x68, 0x6F, 0x6E, 0x67, 0x68, 0x65, 0x6E, 0x67, 0x63, 0x68, 0x75, 0x6E, 0x40, 0x72, 0x6F, 0x75, 0x22, 0x06, 0xFFFFFF81, 0x17, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x6E, 0x2E, 0x78, 0x6E, 0x69, 0x6D, 0x67, 0x2E, 0x63, 0x6E, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x6E, 0x32, 0x31, 0x31, 0x2F, 0x32, 0x30, 0x30, 0x39, 0x30, 0x32, 0x32, 0x33, 0x2F, 0x31, 0x37, 0x2F, 0x30, 0x30, 0x2F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x45, 0x4D, 0x68, 0x78, 0x5F, 0x32, 0x39, 0x39, 0x33, 0x37, 0x62, 0x32, 0x30, 0x34, 0x32, 0x33, 0x38, 0x2E, 0x6A, 0x70, 0x67, 0x26, 0x06, 0x28, 0x2A, 0x06, 0xFFFFFF81, 0x26, 0x01, 0x62, 0x06, 0x54, 0x56, 0x06, 0xFFFFFF81, 0x02, 0x01, 0x0A, 0x0B, 0x01, 0x06, 0x06, 0x0B, 0x38, 0x30, 0x33, 0x37, 0x37, 0x0A, 0x06, 0x0C, 0x0E, 0x06, 0x13, 0x32, 0x34, 0x34, 0x39, 0x35, 0x32, 0x32, 0x39, 0x38, 0x12, 0x06, 0x21, 0xFFFFFFE7, 0xFFFFFF8E, 0xFFFFFF8B, 0xFFFFFFE6, 0xFFFFFF98, 0xFFFFFFB1, 0xFFFFFFE6, 0xFFFFFF99, 0xFFFFFF93, 0xFFFFFFE2, 0xFFFFFF9D, 0xFFFFFFA4, 0x50, 0x69, 0x6E, 0x6B, 0x16, 0x06, 0x46, 0x1A, 0x0A, 0x0B, 0x01, 0x0A, 0x06, 0xFFFFFF82, 0x34, 0x1C, 0x06, 0xFFFFFF82, 0x36, 0x1E, 0x06, 0x23, 0x77, 0x61, 0x6E, 0x67, 0x79, 0x75, 0x78, 0x69, 0x61, 0x6F, 0xFFFFFFE2, 0xFFFFFF9D, 0xFFFFFFA4, 0x50, 0x69, 0x6E, 0x6B, 0x22, 0x06, 0xFFFFFF81, 0x15, 0x68, 0x74, 0x74, 0x70, 0x3A, 0x2F, 0x2F, 0x68, 0x64, 0x6E, 0x2E, 0x78, 0x6E, 0x69, 0x6D, 0x67, 0x2E, 0x63, 0x6E, 0x2F, 0x70, 0x68, 0x6F, 0x74, 0x6F, 0x73, 0x2F, 0x68, 0x64, 0x6E, 0x33, 0x32, 0x31, 0x2F, 0x32, 0x30, 0x31, 0x30, 0x30, 0x32, 0x31, 0x34, 0x2F, 0x32, 0x33, 0x30, 0x30, 0x2F, 0x74, 0x69, 0x6E, 0x79, 0x5F, 0x37, 0x63, 0x58, 0x57, 0x5F, 0x38, 0x34, 0x35, 0x39, 0x36, 0x68, 0x30, 0x31, 0x39, 0x31, 0x31, 0x36, 0x2E, 0x6A, 0x70, 0x67, 0x26, 0x06, 0x28, 0x2A, 0x06, 0x46, 0x01, 0x62, 0x06, 0x54, 0x56, 0x06, 0xFFFFFF81, 0x02, 0x01, 0x01};
		InputStream in = new ByteArrayInputStream(bb);

		ActionMessage am = new ActionMessage();
		AmfMessageDeserializer amd = new AmfMessageDeserializer();
		amd.initialize(new SerializationContext(), in, null);
		amd.readMessage(am, new ActionContext());
		List l = am.getBodies();

		ASObject ao = (ASObject) l.get(0).getData();
		Object o = ao.get("flist");
		System.out.println(Array.get(o, 0));
	}

}
分类: java 标签: ,

使用javamail发送邮件的简单例子

2010年5月29日 wasw100 没有评论

发送一个邮件需要做些什么?我们可以列一下
a.登陆邮箱(1.用户名,2.密码,3.发邮件需要它的smtp)
b.写邮件时需要 4.收件人邮箱地址,5.邮件标题,6.邮件内容

有了上面6个变量,我们就可以用javamail中的mail.jar发邮件了。

用下面这个简单的例子就可以发邮件了

package com.wasw100.mail;

import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;

/**
 * 邮件发送类
 * @author wasw100
 */
public class MailSend {

    private String host = "smtp.gmail.com";
    private String userName = "你邮箱的登录名";
    private String password = "你邮箱的登陆密码";

    private String mail_to = "wasw100@gmail.com";
    private String mail_subject = "邮件标题";
    private String mail_body = "邮件内容";

    public void send(){
    	Properties props = new Properties(); // 获取系统环境
        Authenticator auth = new MailAuthenticator(userName, password); // 进行邮件服务器用户认证
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.auth", "true");
        Session session = Session.getDefaultInstance(props, auth);
        // 设置session,和邮件服务器进行通讯。
        MimeMessage message = new MimeMessage(session);
        try {
			message.setSubject(mail_subject);
			message.setText(mail_body); // 设置邮件正文
	        Address toAddress = new InternetAddress(mail_to); // 设置邮件接收方的地址
	        message.addRecipient(Message.RecipientType.TO, toAddress);
	        Transport.send(message); // 发送邮件
	        System.out.println("send ok!");
		} catch (MessagingException e) {
			e.printStackTrace();
		}
    }
    /**
     * 测试
     * @param args
     */
    public static void main(String[] args) {
		new MailSend().send();
	}
}

/**
 * 用于进行邮箱的验证
 * @author wasw100
 */
class MailAuthenticator extends Authenticator {
	private String userName;
	private String password;

	public MailAuthenticator(String userName, String password) {
		super();
		this.userName = userName;
		this.password = password;
	}

	@Override
	protected PasswordAuthentication getPasswordAuthentication() {
		return new PasswordAuthentication(userName, password);
	}
}

一些复杂的邮件根据上面就可以简单的改出来,例如群发把Message的addRecipients(Message.RecipientType type, Address[] addresses)代替为addRecipient(Message.RecipientType type, Address address) 就可以了。

参考:JavaMail发送邮件的一个例子(全)

–EOF–

分类: java 标签: ,

java中Swing图片显示

2010年3月31日 wasw100 没有评论

参考:
1.http://topic.csdn.net/u/20090914/15/689b5bb2-1bfd-4455-9599-8116fa42c2ef.html
2.How to Use Icons

swing显示图片的方法有好几种,因为JLabel用于短文本字符串或图像或二者的显示区,所以也可以使用JLabel的icon显示,或者JLabel支持html的特性显示图片。可以使用图片重绘显示图片。

下面是两个JLabel显示图片的很简单的例子。

例子1:使用JLabel支持html的特性显示图片

package test;

import javax.swing.JFrame;
import javax.swing.JLabel;

/**
 * 使用JLabel支持html显示图片
 * @author wasw100
 */
public class DisplayImageHtml extends JFrame {

	private JLabel lblImg;

	public DisplayImageHtml() {

		setTitle("swing显示图片");
		setSize(200, 140);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);

		lblImg = new JLabel();
		add(lblImg);
		setVisible(true);

		lblImg.setText("<html><img src='http://www.wasw100.com/wp-content/themes/inove/img/logo.gif' /><html>");
	}

	public static void main(String[] args) {
		new DisplayImageHtml();
	}
}

例2:使用JLabel的setIcon显示图片

package test;

import java.net.MalformedURLException;
import java.net.URL;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class DisplayImageIcon extends JFrame {

	private JLabel lblImg;
	private Icon icon;

	public DisplayImageIcon() {

		setTitle("swing显示图片");
		setSize(200, 140);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);

		lblImg = new JLabel();
		add(lblImg);
		setVisible(true);

		try {
			icon = new ImageIcon(new URL("http://www.wasw100.com/wp-content/themes/inove/img/logo.gif"));
		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
		lblImg.setIcon(icon);

	}

	public static void main(String[] args) {
		new DisplayImageIcon();
	}
}

–EOF–

分类: java 标签: ,

java swing程序最小化到托盘区

2010年3月28日 wasw100 1 条评论

很多桌面程序需要长时间运行,我们不想一直占用宝贵的任务栏,这时我们需要最小化时把程序放到托盘区,以下就是java中swing程序最小化到托盘区的例子,注释很详细:

package com.wasw100;

import java.awt.AWTException;
import java.awt.Image;
import java.awt.MenuItem;
import java.awt.PopupMenu;
import java.awt.SystemTray;
import java.awt.Toolkit;
import java.awt.TrayIcon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class TrayTest extends JFrame{

	private JLabel lbHello = new JLabel("Hello World");

	private Image icon;// 托盘图标
	private TrayIcon trayIcon;
	private SystemTray systemTray;// 系统托盘
	private PopupMenu pop = new PopupMenu(); // 构造一个右键弹出式菜单
	private MenuItem exit = new MenuItem("退出程序");
	private MenuItem show = new MenuItem("显示窗口");

	public TrayTest(){

		//托盘图标部分结束
		// icon初始化
		icon = Toolkit.getDefaultToolkit().getImage(
				this.getClass().getResource("icon.gif"));//托盘图标显示的图片

		if (SystemTray.isSupported()) {
			systemTray = SystemTray.getSystemTray();// 获得系统托盘的实例
			trayIcon = new TrayIcon(icon, "鼠标放到托盘图标上的文字", pop);
			// wasw100
			pop.add(show);
			pop.add(exit);

			try {
				systemTray.add(trayIcon); // 设置托盘的图标
			} catch (AWTException e1) {
				e1.printStackTrace();
			}
			addWindowListener(new WindowAdapter() {
				public void windowIconified(WindowEvent e) {
					dispose();// 窗口最小化时dispose该窗口
				}
			});

			trayIcon.addMouseListener(new MouseAdapter() {
				public void mouseClicked(MouseEvent e) {
					if (e.getClickCount() == 1
							&& e.getButton() != MouseEvent.BUTTON3) {// 左击击托盘窗口再现,如果是双击就是e.getClickCount() == 2
						setVisible(true);
						setExtendedState(JFrame.NORMAL);//设置此 frame 的状态。
					}
				}
			});

			show.addActionListener(new ActionListener() { // 点击"显示窗口"菜单后将窗口显示出来

						public void actionPerformed(ActionEvent e) {
							// systemTray.remove(trayIcon); // 从系统的托盘实例中移除托盘图标
							setVisible(true); // 显示窗口
							setExtendedState(JFrame.NORMAL);
						}
					});
			exit.addActionListener(new ActionListener() { // 点击“退出演示”菜单后推出程序

						public void actionPerformed(ActionEvent e) {
							//这里可以写执行退出时执行的操作
							System.exit(0); // 退出程序
						}
					});
		}// 托盘图标部分结束

		//以下是swing程序
		setIconImage(icon);//更改程序图标

		add(lbHello);
		setTitle("hello");
		setSize(200, 150);
		//自动确定窗口位置
		setLocationByPlatform(true);
		//点击关闭按钮能够自动退出
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}

	public static void main(String[] args) {
		new TrayTest();
	}
}

–EOF–

分类: java 标签: , ,

MyEclipse右击Run As出现Eclipse Application解决

2010年3月20日 wasw100 没有评论

自己写的一个程序运行的时候,右击,鼠标放到Run As后,右侧出现Eclipse Application,总是点错,打开一个新的Eclipse,如图

--Run As
	--Eclipse Application 	Alt+Shift+X, E
	--Java Application 		Alt+Shift+X, J
	--OSGi Framework		Alt+Shift+X, O
	-------------------------------------------
	--Open Run Dialog...

以下是解决方案:

打开你工程所在的位置,使用文本工具(记事本、UltraEdit、EditPlus等)打开.project文件改为如下就可以了

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>rrdogpro</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
			<name>org.eclipse.jdt.core.javabuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
	<natures>
		<nature>org.eclipse.jdt.core.javanature</nature>
	</natures>
</projectDescription>

也就是把多余的<buildCommand>和<natures>删除,只剩下上面那两个,重启MyEclipse,再右击Run As,Eclipse Application,OSGi Framework就不见踪影了。

–EOF–

分类: java 标签: ,

Eclipse使用link方式安装svn插件

2010年3月19日 wasw100 没有评论

svn插件下载页面:http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240

最新版本地址:http://subclipse.tigris.org/files/documents/906/47423/site-1.6.10.zip

下载后解压到一个文件夹(我的:D:\tools\eclipseplugin\svn\),在svn下如下文件目录

--svn
	--eclipse
		--features
		--plugins

然后在MyEclipse—>eclipse->links文件夹下建一个以link为扩展名的文件(org.tigris.subversion.link),内容如下:

path=D:\\tools\\eclipseplugin\\svn

删除D:\tools\MyEclipse 6.0\eclipse\configuration下的org.eclipse.update文件夹,重启MyEclipse。

–EOF–

分类: java 标签: , , , ,

MyEclipse恢复误删文件

2010年3月18日 wasw100 没有评论

方法:
在要恢复的工程上右击->Restore from Locle History…
选中要恢复的,点Resotre就可以了

这个功能不紧能够恢复误删文件,而且还能查看以前的某个时间点文章的内容。方法:选中你查看的文件,右侧就会出现一些时间,选中后在下面就能看到这个时间时文件的内容了,但只能查看7天内(为验证)。

–EOF–

分类: java 标签:

java中Queue和BlockingQueue的区别

2010年3月16日 wasw100 没有评论

内容主要来自jdk的api,大家可参考jdkapi
1.BlockingQueue:支持两个附加操作的 Queue,这两个操作是:检索元素时等待队列变为非空,以及存储元素时等待空间变得可用。
2.BlockingQueue 不接受 null 元素。
3.BlockingQueue 可以是限定容量的。
4.BlockingQueue 实现是线程安全的。Queue不是线程安全的。因此可以将Blockingqueue用于用于生产者-使用者队列。

根据Api修改的一个例子,大家可以修改自己体验BlockingQueue的使用

package test;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;

/**
 * 生产者
 * @author wasw100
 */
class Producer implements Runnable {
	private final BlockingQueue queue;

	Producer(BlockingQueue q) {
		queue = q;
	}

	public void run() {
		try {
			for (int i = 0; i < 3; i++) {
				queue.put(produce());
				System.out.println("生产后:"+queue.peek());
			}
		} catch (InterruptedException ex) {
			ex.printStackTrace();
		}
	}

	Character produce() {
		char c = (char) (Math.random() * 26 + 'A');
		System.out.println("生产前:" + c);
		return c;
	}
}

/**
 * 消费者
 * @author wasw100
 */
class Consumer implements Runnable {
	private final BlockingQueue queue;

	Consumer(BlockingQueue q) {
		queue = q;
	}

	public void run() {
		try {
			while (true) {
				consume(queue.take());
				//Thread.sleep(100);
			}
		} catch (InterruptedException ex) {
			ex.printStackTrace();
		}
	}

	void consume(Character c) {
		System.out.println("消费:" + c);
	}
}

/**
 * 一个生产者、两个消费者
 *
 * @author wasw100
 */
class Setup {
	public static void main(String[] args) {
		BlockingQueue q = new ArrayBlockingQueue(1);
		Producer p = new Producer(q);
		Consumer c1 = new Consumer(q);
		Consumer c2 = new Consumer(q);
		new Thread(p).start();
		new Thread(c1).start();
		new Thread(c2).start();
	}
}

–EOF–

分类: java 标签: