- flowable 适配gbase8s
gbase_lmax
数据库
版本flowable6.4.2以下方案仅代表个人观点修改方案1增加gbase支持org.flowable.common.engine.impl.AbstractEngineConfiguration.javagetDefaultDatabaseTypeMappings()方法添加databaseTypeMappings.setProperty("GBase8sServer","gbase8s");
- Flowable获取下一个节点审批人和审批组
R-sz
java
@OverridepublicvoidgetNextStepList(StringtaskId,StringprocessInstanceId)throwsIllegalAccessException{//taskService、repositoryService等容器对象获取省略...//存储当前节点的下一环节的所有用户节点ArrayListuserTaskList=newArrayListus
- Flowable DataObject的使用(flowable自定义流程标题)
骑驴追地瓜
1.DataObject可以做什么在流程定义的时候可以设置数据对象,数据对象的名称会成为流程变量的key,flowable还提供了一个扩展属性value来为数据对象赋值。也就是说在流程定义阶段我们就可以在全局定义一些流程变量(官网解释)。一个比较简单的使用场景就是自定义流程标题,下面我们将以自定义流程标题为例子,讲解DataObject的使用方式。定义方法如下图:图1:image.png图2:im
- java springcloud 微服务设计方案
IT祖师爷
springcloud+springcloudAlibaba+flowable流程引擎1.代码生成器:[正反双向](单表、主表、明细表、树形表,快速开发利器)freemaker模版技术,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块2.多数据源:(支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源3.阿里数据库连接池druid,安
- flowable 控制台打印出自带表的 sql 语句
IT祖师爷
想要在控制台看到flowable自己内部表执行的sql语句其实很简单1.在application.properties添加一句配置logging.level.org.flowable.ui.modeler.domain.Model=debug2.logback.xml%d{yyyy-MM-ddHH:mm:ss.SSS}[%thread]%-5level%logger{50}-%msg%n${LOG
- 流程引擎activiti、flowable、camunda简单介绍
A尘埃
流程引擎
市场上比较有名的开源流程引擎有osworkflow、jbpm、activiti、flowable、camunda。其中:Jbpm4、Activiti、Flowable、camunda四个框架同宗同源,祖先都是Jbpm4,开发者只要用过其中一个框架,基本上就会用其它三个。推荐使用camunda(流程引擎)+bpmn-js(流程设计器)组合,笔者在公司项目中经过实战验证,camunda在功能方面比fl
- 主流工作流引擎 flowable 三种方式部署流程
IT祖师爷
/**部署流程定义(根据ui.modeler的modelId部署)*@parammodelId模型ID*@fromfhadmin.cn*/protectedStringdeploymentProcessDefinitionFromUIModelId(StringmodelId)throwsException{Modelmodel=modelService.getModel(modelId);Bpm
- flowable流程引擎通过模型ID部署流程
IT祖师爷
/**部署流程定义*/@RequestMapping(value="/deployment")@RequiresPermissions("fhmodel:edit")@ResponseBodypublicObjectdeployment(){Mapmap=newHashMap();Stringresult="success";PageDatapd=newPageData();pd=this.get
- bpmn.js一个基于Bpmn 2.0的前端工作流展示和绘制工具
胖蔡
Web技术开发bpmn-js流程编辑器实战前端javascript开发语言bpmn-js流程编辑器flowable
bpmn.js是由开源工作流引擎camunda内部组织BPMN.IO组织开发的一款基于BPMN2.0的工作流展示、编辑的web端工具库。由于工作流引擎activiti、flowable、camunda属于同宗分流,其工作流定义格式大致相同,所以我们可以使用bpmn.js完美融合其中任一工作流引擎。什么是工作流引擎?这里引用咖啡兔在《Activiti实战》一书中对于工作流的描述:工作流(WorkFl
- [AIGC] 开源流程引擎哪个好,如何选型?
程序员三木
AIAIGC开源
开源流程引擎是指一种自动化的工作流解决方案,它可以帮助你管理和协调你的业务流程和决策。但是,在开源世界里,有许多不同的流程引擎可以选择。因此,如何选择适合你的开源流程引擎,是一个具有挑战性和价值的话题。文章目录哪些开源流程引擎值得考虑?1.Activiti2.jBPM3.Camunda4.Flowable5.Bonita如何选择开源流程引擎?1.评估你的需求2.研究开源流程引擎的特点3.试用开源流
- SpringBoot集成Flowable工作流
要加油!
springbootjavaFlowable
文章目录一、了解Flowable1.什么是Flowable2.Flowable基本流程3.Flowable主要几张表介绍二、SpringBoot集成Flowable1.在idea中安装Flowable插件2.SpringBoot集成Flowable3.SpringBoot集成Flowable前端页面三、创建流程模版(以请假为例)提示:以下是本篇文章正文内容,下面案例可供参考一、了解Flowable
- Springboot集成flowable工作流
快乐的木子李
#工作流技术栈springboot后端
文章目录概要包依赖问题小结概要Spirngboot集成flowable3.1.5包依赖org.flowableflowable-spring-boot-starter7.0.1使用7.0.1版本问题项目启动初始化flowable表结构异常.原因如下:mysql8.xxx以上驱动会出现这个问题mysql使用schema标识库名而不是catalog,因此mysql会扫描所有的库来找表,如果其他库中有相
- SpringBoot整合Flowable最新教程(一)Flowable介绍
陆慢慢
SpringBoot系列springboot后端java
一、Flowable入门介绍代码实现文章:SpringBoot整合Flowable最新教程(二) 官网地址:https://www.flowable.org/ Flowable6.3中文教程:中文教程地址 可以在官网下载对应的jar包在本地部署运行,官方提供了下面的五个应用程序: FlowableModeler:流程定义管理 FlowableTask:用户任务管理 FlowableID
- Flowable工作流 实现多实例任务(会签或签)
1telescope
Javajava开发语言后端
版本:Flowable6.7.0配置完成条件会签:${nrOfCompletedInstances==nrOfInstances}或签:${nrOfCompletedInstances>=1}固定集合、变量参数为approverList、approver自定义多实例并行行为解析类packagecom.twqc.modules.lowcode.bpm.framework.flowable.core.
- flowable多实例任务注意事项
我不是彭于晏灬
java
在flowableUI中设置多实例时,需设置如下几个参数流程设计器参数说明:多实例类型:Parallel->并行多实例指分配给多个用户之后,只要其中一个用户完成即可下一步Sequential->串行多实例,值分配给多个用户之后,必须一个一个去完成才能进入下一步节点配置信息:collection(集合):传入List参数,一般为用户ID集合elementVariable(元素变量):List中单个参
- 记录通过Aop实现 记录系统操作日志功能
我不是彭于晏灬
javaspringspringboot
通过Aop实现的方式比较简单:步骤:1.自定义一个注解,让它可用于想要记录日志的方法上;2.通过Aop统一处理这些标记了自定义注解的类;3.在Aop通知中添加逻辑,获取操作日志想要记录的信息,最后添加到自己设计的操作日志表里去;功能完成;具体实现:1.自定义一个注解,让它可用于想要记录日志的方法上;packagecom.lance.flowable.operationLog;importjava.
- SpringBoot+flowable快速实现工作流
姓王名礼
springbootjava后端
文章目录1.使用flowable-ui绘制流程图1.1网关2.SpringBoot集成flowable2.1添加Maven依赖2.2添加配置2.3添加代理类2.4流程开发2.5测试1.创建流程2.查询待办列表3.同意4.生成流程图最近在一个开源项目里见到有使用另一个工做流框架:flowable。在简单了解flowable后与activiti框架相比的第一感觉就是开发方便快速,易与springBoo
- Spring Boot + Flowable 快速实现工作流
bst@微胖子
Activiti+Flowablespringbootjavatomcat
总览使用flowable自带的flowable-ui制作流程图使用springboot开发流程使用的接口完成流程的业务功能一、flowable-ui部署运行flowable-6.6.0运行官方demo参考文档:https://flowable.com/open-source/docs/bpmn/ch14-Applications/1、从官网下载flowable-6.6.0:https://gith
- Spring Boot + flowable 完美结合,快速实现工作流
码农code之路
javamysql数据库activitispring
来源:blog.csdn.net/zhan107876/article/details/120815560总览一、flowable-ui部署运行二、绘制流程图绘图细节:三、后台项目搭建四、数据库五、流程引擎API与服务代码五、参考资料今天分享一个不错的工作流引擎flowable!1.flowable-ui部署运行flowable-6.6.0运行官方demo参考文档:“https://flowabl
- Spring Boot + flowable 快速实现工作流
森火123
开发技术总结springboot后端java
背景使用flowable自带的flowable-ui制作流程图使用springboot开发流程使用的接口完成流程的业务功能文章来源:https://blog.csdn.net/zhan107876/article/details/120815560一、flowable-ui部署运行flowable-6.6.0运行官方demo参考文档:https://flowable.com/open-source
- 工作流引擎怎么选?
記億揺晃着的那天
java
工作流引擎怎么选?工作流引擎有很多,具体要看你应用的场景和需求来选择合适的引擎。这里介绍一些主流的开源和商业工作流引擎,希望能给你一些参考:开源Activiti:轻量级、易于使用,功能强大,社区活跃,是常用的开源工作流引擎之一。Flowable:基于Activiti5forked而成,兼容Activiti,功能更丰富,扩展性更强,也是热门选择。Camunda:功能全面,扩展性强,安全性高,但相对复
- 三大工作流引擎技术Activiti、Camunda、Flowable选型指南
地瓜伯伯
工具javajava-eespringbootspringcloud
在企业的数字化转型浪潮中,业务流程管理(BPM)和自动化成为了许多企业追求的目标。为了实现这一目标,选择一个合适的工作流引擎至关重要。在众多的开源工作流引擎中,Activiti、Camunda和Flowable是备受瞩目的三个选项。本博客将从技术原理、易用性、功能以及其他选型参数等方面,为您详细解析这三个引擎的特点,帮助您做出明智的技术选型。一、技术发展史Activiti、Camunda、Flow
- Flowable引擎节点流转工作原理
张杰jay
1.背景介绍当我们部署一个流程并启动后,Flowable会按照既定流程定义及进行节点处理以及自动流转,从一个节点执行到下一个节点,直至结束。在此过程中,系统如何处理BPMNXML文件?节点如何进行流转?本文对flowable内部源码进行解析,挖掘其引擎原理。文章末尾,会通过一个简单流程执行实例进行讲解,还原其执行步骤。注意:本文源码基于Flowable6.4.0版本,gitthub地址:https
- flowable 设置自定义属性教程
vegetari
命令模式状态模式
概述由于工作需要给flowable工作流设计器添加自定义属性,以满足功能实现。所以这篇文章介绍下用flowable开源的的flowable-ui前端添加自定义属性,后端解析属性值的例子。技术栈序号技术点名称版本1Flowable6.8.0使用的是flowable6.8.0版的代码GitHub-flowable/flowable-engineatflowable-release-6.8.0https
- SpringBoot整合Flowable最新教程(二)启动流程
陆慢慢
springboot后端java
介绍 文章主要从SpringBoot整合Flowable讲起,关于Flowable是什么?数据库表解读以及操作的Service请查看xxxxx; 其他说明:Springboot版本是2.6.13,java版本是1.8。如果你使用的是一些开源项目如:ruoyi里面已经集成了这些无须自己手动引入。 pom文件引入org.flowableflowable-spring-boot-starter6.
- Flowable入门(一)
凌康ACG
一、什么是flowableFlowable是用Java编写的轻量级业务流程引擎。Flowable流程引擎允许您部署BPMN2.0流程定义(用于定义流程的行业XML标准),创建这些流程定义的流程实例,运行查询,访问活动或历史流程实例以及相关数据。二、它和activiti的关系flowable是Activiti的一个分支三、springboot下初始化2019年12月6日最新版flowable是6.4
- centos7 离线安装字体fontconfig
weixin_34268843
运维操作系统python
2019独角兽企业重金招聘Python工程师标准>>>起因:最近做了个flowable然而linux下乱码,发现需要安装字体包在线:直接yum-yinstallfontconfig;yum-yinstallttmkfdir;配置下即可。拓展:离线所需rpm包如何获取?百度不好找,找个可上网的服务器yuminstallyum-utils然后yumdownloader即可。这个很好用想要其他rpm包同
- springcloud Alibaba 微服务 flowable 工作流 自定义表单 vue.js前后分离
IT祖师爷
功能模块设计方案1.代码生成器:[正反双向](单表、主表、明细表、树形表,快速开发利器)freemaker模版技术,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块2.多数据源:(支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源3.阿里数据库连接池druid,安全权限框架shiro(菜单权限和按钮权限),缓存框架ehcache4.
- AbstractFlowableVariableExpressionFunction类在Flowable流程引擎中的作用
舒一笑
JavaFlowableflowableJava
AbstractFlowableVariableExpressionFunction在Flowable流程引擎中扮演着一个关键角色。Flowable是一个强大的、轻量级的工作流和业务流程管理(BPM)平台。在这个上下文中,这个类似乎是用于处理和扩展流程中的表达式函数,特别是与变量相关的函数。下面是它的主要职责和特点:处理表达式函数:该类似乎是为了处理在流程定义中使用的表达式函数,特别是那些涉及变量
- springboot集成flowable创建请假流程实例
晚安1024
activitijavaspringspringboothadoop
springboot如何集成flowable,如何部署flowable在线编辑器画bpm图以及bpm图的画法,我在上一篇博客中写了,这里直接上代码(源码地址:晚安/flowable_holiday(gitee.com))。这是我画的请假流程bpm图。然会到代码部分。首先,先写一个config类,避免生成的bpm图中文乱码。packagecom.example.config;importorg.fl
- java短路运算符和逻辑运算符的区别
3213213333332132
java基础
/*
* 逻辑运算符——不论是什么条件都要执行左右两边代码
* 短路运算符——我认为在底层就是利用物理电路的“并联”和“串联”实现的
* 原理很简单,并联电路代表短路或(||),串联电路代表短路与(&&)。
*
* 并联电路两个开关只要有一个开关闭合,电路就会通。
* 类似于短路或(||),只要有其中一个为true(开关闭合)是
- Java异常那些不得不说的事
白糖_
javaexception
一、在finally块中做数据回收操作
比如数据库连接都是很宝贵的,所以最好在finally中关闭连接。
JDBCAgent jdbc = new JDBCAgent();
try{
jdbc.excute("select * from ctp_log");
}catch(SQLException e){
...
}finally{
jdbc.close();
- utf-8与utf-8(无BOM)的区别
dcj3sjt126com
PHP
BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符"ZERO WIDTH NO-BREAK SPACE"。这样如
- JAVA Annotation之定义篇
周凡杨
java注解annotation入门注释
Annotation: 译为注释或注解
An annotation, in the Java computer programming language, is a form of syntactic metadata that can be added to Java source code. Classes, methods, variables, pa
- tomcat的多域名、虚拟主机配置
g21121
tomcat
众所周知apache可以配置多域名和虚拟主机,而且配置起来比较简单,但是项目用到的是tomcat,配来配去总是不成功。查了些资料才总算可以,下面就跟大家分享下经验。
很多朋友搜索的内容基本是告诉我们这么配置:
在Engine标签下增面积Host标签,如下:
<Host name="www.site1.com" appBase="webapps"
- Linux SSH 错误解析(Capistrano 的cap 访问错误 Permission )
510888780
linuxcapistrano
1.ssh -v
[email protected] 出现
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
错误
运行状况如下:
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuratio
- log4j的用法
Harry642
javalog4j
一、前言: log4j 是一个开放源码项目,是广泛使用的以Java编写的日志记录包。由于log4j出色的表现, 当时在log4j完成时,log4j开发组织曾建议sun在jdk1.4中用log4j取代jdk1.4 的日志工具类,但当时jdk1.4已接近完成,所以sun拒绝使用log4j,当在java开发中
- mysql、sqlserver、oracle分页,java分页统一接口实现
aijuans
oraclejave
定义:pageStart 起始页,pageEnd 终止页,pageSize页面容量
oracle分页:
select * from ( select mytable.*,rownum num from (实际传的SQL) where rownum<=pageEnd) where num>=pageStart
sqlServer分页:
 
- Hessian 简单例子
antlove
javaWebservicehessian
hello.hessian.MyCar.java
package hessian.pojo;
import java.io.Serializable;
public class MyCar implements Serializable {
private static final long serialVersionUID = 473690540190845543
- 数据库对象的同义词和序列
百合不是茶
sql序列同义词ORACLE权限
回顾简单的数据库权限等命令;
解锁用户和锁定用户
alter user scott account lock/unlock;
//system下查看系统中的用户
select * dba_users;
//创建用户名和密码
create user wj identified by wj;
identified by
//授予连接权和建表权
grant connect to
- 使用Powermock和mockito测试静态方法
bijian1013
持续集成单元测试mockitoPowermock
实例:
package com.bijian.study;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import or
- 精通Oracle10编程SQL(6)访问ORACLE
bijian1013
oracle数据库plsql
/*
*访问ORACLE
*/
--检索单行数据
--使用标量变量接收数据
DECLARE
v_ename emp.ename%TYPE;
v_sal emp.sal%TYPE;
BEGIN
select ename,sal into v_ename,v_sal
from emp where empno=&no;
dbms_output.pu
- 【Nginx四】Nginx作为HTTP负载均衡服务器
bit1129
nginx
Nginx的另一个常用的功能是作为负载均衡服务器。一个典型的web应用系统,通过负载均衡服务器,可以使得应用有多台后端服务器来响应客户端的请求。一个应用配置多台后端服务器,可以带来很多好处:
负载均衡的好处
增加可用资源
增加吞吐量
加快响应速度,降低延时
出错的重试验机制
Nginx主要支持三种均衡算法:
round-robin
l
- jquery-validation备忘
白糖_
jquerycssF#Firebug
留点学习jquery validation总结的代码:
function checkForm(){
validator = $("#commentForm").validate({// #formId为需要进行验证的表单ID
errorElement :"span",// 使用"div"标签标记错误, 默认:&
- solr限制admin界面访问(端口限制和http授权限制)
ronin47
限定Ip访问
solr的管理界面可以帮助我们做很多事情,但是把solr程序放到公网之后就要限制对admin的访问了。
可以通过tomcat的http基本授权来做限制,也可以通过iptables防火墙来限制。
我们先看如何通过tomcat配置http授权限制。
第一步: 在tomcat的conf/tomcat-users.xml文件中添加管理用户,比如:
<userusername="ad
- 多线程-用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
bylijinnan
java多线程
public class IncDecThread {
private int j=10;
/*
* 题目:用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1
* 两个问题:
* 1、线程同步--synchronized
* 2、线程之间如何共享同一个j变量--内部类
*/
public static
- 买房历程
cfyme
2015-06-21: 万科未来城,看房子
2015-06-26: 办理贷款手续,贷款73万,贷款利率5.65=5.3675
2015-06-27: 房子首付,签完合同
2015-06-28,央行宣布降息 0.25,就2天的时间差啊,没赶上。
首付,老婆找他的小姐妹接了5万,另外几个朋友借了1-
- [军事与科技]制造大型太空战舰的前奏
comsci
制造
天气热了........空调和电扇要准备好..........
最近,世界形势日趋复杂化,战争的阴影开始覆盖全世界..........
所以,我们不得不关
- dateformat
dai_lm
DateFormat
"Symbol Meaning Presentation Ex."
"------ ------- ------------ ----"
"G era designator (Text) AD"
"y year
- Hadoop如何实现关联计算
datamachine
mapreducehadoop关联计算
选择Hadoop,低成本和高扩展性是主要原因,但但它的开发效率实在无法让人满意。
以关联计算为例。
假设:HDFS上有2个文件,分别是客户信息和订单信息,customerID是它们之间的关联字段。如何进行关联计算,以便将客户名称添加到订单列表中?
&nbs
- 用户模型中修改用户信息时,密码是如何处理的
dcj3sjt126com
yii
当我添加或修改用户记录的时候对于处理确认密码我遇到了一些麻烦,所有我想分享一下我是怎么处理的。
场景是使用的基本的那些(系统自带),你需要有一个数据表(user)并且表中有一个密码字段(password),它使用 sha1、md5或其他加密方式加密用户密码。
面是它的工作流程: 当创建用户的时候密码需要加密并且保存,但当修改用户记录时如果使用同样的场景我们最终就会把用户加密过的密码再次加密,这
- 中文 iOS/Mac 开发博客列表
dcj3sjt126com
Blog
本博客列表会不断更新维护,如果有推荐的博客,请到此处提交博客信息。
本博客列表涉及的文章内容支持 定制化Google搜索,特别感谢 JeOam 提供并帮助更新。
本博客列表也提供同步更新的OPML文件(下载OPML文件),可供导入到例如feedly等第三方定阅工具中,特别感谢 lcepy 提供自动转换脚本。这里有导入教程。
- js去除空格,去除左右两端的空格
蕃薯耀
去除左右两端的空格js去掉所有空格js去除空格
js去除空格,去除左右两端的空格
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g
- SpringMVC4零配置--web.xml
hanqunfeng
springmvc4
servlet3.0+规范后,允许servlet,filter,listener不必声明在web.xml中,而是以硬编码的方式存在,实现容器的零配置。
ServletContainerInitializer:启动容器时负责加载相关配置
package javax.servlet;
import java.util.Set;
public interface ServletContainer
- 《开源框架那些事儿21》:巧借力与借巧力
j2eetop
框架UI
同样做前端UI,为什么有人花了一点力气,就可以做好?而有的人费尽全力,仍然错误百出?我们可以先看看几个故事。
故事1:巧借力,乌鸦也可以吃核桃
有一个盛产核桃的村子,每年秋末冬初,成群的乌鸦总会来到这里,到果园里捡拾那些被果农们遗落的核桃。
核桃仁虽然美味,但是外壳那么坚硬,乌鸦怎么才能吃到呢?原来乌鸦先把核桃叼起,然后飞到高高的树枝上,再将核桃摔下去,核桃落到坚硬的地面上,被撞破了,于是,
- JQuery EasyUI 验证扩展
可怜的猫
jqueryeasyui验证
最近项目中用到了前端框架-- EasyUI,在做校验的时候会涉及到很多需要自定义的内容,现把常用的验证方式总结出来,留待后用。
以下内容只需要在公用js中添加即可。
使用类似于如下:
<input class="easyui-textbox" name="mobile" id="mobile&
- 架构师之httpurlconnection----------读取和发送(流读取效率通用类)
nannan408
1.前言.
如题.
2.代码.
/*
* Copyright (c) 2015, S.F. Express Inc. All rights reserved.
*/
package com.test.test.test.send;
import java.io.IOException;
import java.io.InputStream
- Jquery性能优化
r361251
JavaScriptjquery
一、注意定义jQuery变量的时候添加var关键字
这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下:
$loading = $('#loading'); //这个是全局定义,不知道哪里位置倒霉引用了相同的变量名,就会郁闷至死的
二、请使用一个var来定义变量
如果你使用多个变量的话,请如下方式定义:
. 代码如下:
var page
- 在eclipse项目中使用maven管理依赖
tjj006
eclipsemaven
概览:
如何导入maven项目至eclipse中
建立自有Maven Java类库服务器
建立符合maven代码库标准的自定义类库
Maven在管理Java类库方面有巨大的优势,像白衣所说就是非常“环保”。
我们平时用IDE开发都是把所需要的类库一股脑的全丢到项目目录下,然后全部添加到ide的构建路径中,如果用了SVN/CVS,这样会很容易就 把
- 中国天气网省市级联页面
x125858805
级联
1、页面及级联js
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
&l