text:
package gw.lang.parser;

import gw.lang.parser.resources.ResourceKey;
import gw.lang.reflect.IType;

public interface IParseIssue
{
  /**
   * @return the parsed element that this issue is associated with
   */
  IParsedElement getSource();

  /**
   * @return the message for this parse issue formatted for printing out to a console
   */
  String getConsoleMessage();

  /**
   * @return the raw message for this parse issue, with no formatting
   */
  String getPlainMessage();

  /**
   * @return the message formatted for use by an IDE
   */
  String getUIMessage();

  /**
   * Returns true if this issue is relevant to the given position
   */
  boolean appliesToPosition( int iPos );

  /**
   * @return the line that this issue is on
   */
  int getLine();

  /**
   * @return the symbol table state at the creation of this issue.  Can return null if no symbol table is present.
   */
  ISymbolTable getSymbolTable();

  /**
   * @return the resource key for this ParseIssue, which can be used as a kind of identifier for the
   *         type of issue.
   */
  ResourceKey getMessageKey();

  void resolve( IParserPart scriptPart );

  void resetPositions();

  Integer getTokenStart();

  Integer getTokenEnd();

  void printStackTrace();

  Object[] getMessageArgs();

  IType getExpectedType();

  void setExpectedType(IType argType);

  int getColumn();
}


text:
define("d3/src/layout/histogram", ["dojo","dijit","dojox"], function(dojo,dijit,dojox){
import "../arrays/bisect";
import "../arrays/min";
import "../arrays/max";
import "../core/functor";
import "layout";

d3.layout.histogram = function() {
  var frequency = true,
      valuer = Number,
      ranger = d3_layout_histogramRange,
      binner = d3_layout_histogramBinSturges;

  function histogram(data, i) {
    var bins = [],
        values = data.map(valuer, this),
        range = ranger.call(this, values, i),
        thresholds = binner.call(this, range, values, i),
        bin,
        i = -1,
        n = values.length,
        m = thresholds.length - 1,
        k = frequency ? 1 : 1 / n,
        x;

    // Initialize the bins.
    while (++i < m) {
      bin = bins[i] = [];
      bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
      bin.y = 0;
    }

    // Fill the bins, ignoring values outside the range.
    if (m > 0) {
      i = -1; while(++i < n) {
        x = values[i];
        if (x >= range[0] && x <= range[1]) {
          bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
          bin.y += k;
          bin.push(data[i]);
        }
      }
    }

    return bins;
  }

  // Specifies how to extract a value from the associated data. The default
  // value function is `Number`, which is equivalent to the identity function.
  histogram.value = function(x) {
    if (!arguments.length) return valuer;
    valuer = x;
    return histogram;
  };

  // Specifies the range of the histogram. Values outside the specified range
  // will be ignored. The argument `x` may be specified either as a two-element
  // array representing the minimum and maximum value of the range, or as a
  // function that returns the range given the array of values and the current
  // index `i`. The default range is the extent (minimum and maximum) of the
  // values.
  histogram.range = function(x) {
    if (!arguments.length) return ranger;
    ranger = d3_functor(x);
    return histogram;
  };

  // Specifies how to bin values in the histogram. The argument `x` may be
  // specified as a number, in which case the range of values will be split
  // uniformly into the given number of bins. Or, `x` may be an array of
  // threshold values, defining the bins; the specified array must contain the
  // rightmost (upper) value, thus specifying n + 1 values for n bins. Or, `x`
  // may be a function which is evaluated, being passed the range, the array of
  // values, and the current index `i`, returning an array of thresholds. The
  // default bin function will divide the values into uniform bins using
  // Sturges' formula.
  histogram.bins = function(x) {
    if (!arguments.length) return binner;
    binner = typeof x === "number"
        ? function(range) { return d3_layout_histogramBinFixed(range, x); }
        : d3_functor(x);
    return histogram;
  };

  // Specifies whether the histogram's `y` value is a count (frequency) or a
  // probability (density). The default value is true.
  histogram.frequency = function(x) {
    if (!arguments.length) return frequency;
    frequency = !!x;
    return histogram;
  };

  return histogram;
};

function d3_layout_histogramBinSturges(range, values) {
  return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
}

function d3_layout_histogramBinFixed(range, n) {
  var x = -1,
      b = +range[0],
      m = (range[1] - b) / n,
      f = [];
  while (++x <= n) f[x] = m * x + b;
  return f;
}

function d3_layout_histogramRange(values) {
  return [d3.min(values), d3.max(values)];
}

});

redpajama_set_name: RedPajamaGithub


text:
#include "lib.h"
#include "array.h"
#include "mail-storage-private.h"
#include "fail-mail-storage.h"

extern struct mail_vfuncs fail_mail_vfuncs;

struct mail *
fail_mailbox_mail_alloc(struct mailbox_transaction_context *t,
			enum mail_fetch_field wanted_fields ATTR_UNUSED,
			struct mailbox_header_lookup_ctx *wanted_headers ATTR_UNUSED)
{
	struct mail_private *mail;
	pool_t pool;

	pool = pool_alloconly_create("fail mail", 1024);
	mail = p_new(pool, struct mail_private, 1);
	mail->mail.box = t->box;
	mail->mail.transaction = t;
	mail->v = fail_mail_vfuncs;
	mail->pool = pool;
	p_array_init(&mail->module_contexts, pool, 5);
	return &mail->mail;
}

static void fail_mail_free(struct mail *mail)
{
	struct mail_private *pmail = (struct mail_private *)mail;

	pool_unref(&pmail->pool);
}

static void fail_mail_set_seq(struct mail *mail, uint32_t seq, bool saving)
{
	mail->seq = seq;
	mail->uid = seq;
	mail->saving = saving;

	mail->expunged = TRUE;
	mail->has_nuls = FALSE;
	mail->has_no_nuls = FALSE;
}

static bool fail_mail_set_uid(struct mail *mail, uint32_t uid)
{
	fail_mail_set_seq(mail, uid, FALSE);
	return TRUE;
}

static void fail_mail_set_uid_cache_updates(struct mail *mail ATTR_UNUSED,
					    bool set ATTR_UNUSED)
{
}

static bool fail_mail_prefetch(struct mail *mail ATTR_UNUSED)
{
	return TRUE;
}

static void fail_mail_precache(struct mail *mail ATTR_UNUSED)
{
}

static void
fail_mail_add_temp_wanted_fields(struct mail *mail ATTR_UNUSED,
				 enum mail_fetch_field fields ATTR_UNUSED,
				 struct mailbox_header_lookup_ctx *headers ATTR_UNUSED)
{
}

static enum mail_flags fail_mail_get_flags(struct mail *mail ATTR_UNUSED)
{
	return 0;
}

static const char *const *
fail_mail_get_keywords(struct mail *mail ATTR_UNUSED)
{
	return t_new(const char *, 1);
}

static const ARRAY_TYPE(keyword_indexes) *
fail_mail_get_keyword_indexes(struct mail *mail ATTR_UNUSED)
{
	ARRAY_TYPE(keyword_indexes) *kw_indexes;

	kw_indexes = t_new(ARRAY_TYPE(keyword_indexes), 1);
	t_array_init(kw_indexes, 1);
	array_append_zero(kw_indexes);
	return kw_indexes;
}

static uint64_t fail_mail_get_modseq(struct mail *mail ATTR_UNUSED)
{
	return 0;
}

static int
fail_mail_get_parts(struct mail *mail ATTR_UNUSED,
		    struct message_part **parts_r ATTR_UNUSED)
{
	return -1;
}

static int
fail_mail_get_date(struct mail *mail ATTR_UNUSED,
		   time_t *date_r ATTR_UNUSED, int *timezone_r ATTR_UNUSED)
{
	return -1;
}

static int
fail_mail_get_received_date(struct mail *mail ATTR_UNUSED,
			    time_t *date_r ATTR_UNUSED)
{
	return -1;
}

static int
fail_mail_get_save_date(struct mail *mail ATTR_UNUSED,
			time_t *date_r ATTR_UNUSED)
{
	return -1;
}

static int
fail_mail_get_fail_mail_size(struct mail *mail ATTR_UNUSED,
			     uoff_t *size_r ATTR_UNUSED)
{
	return -1;
}

static int
fail_mail_get_physical_size(struct mail *mail ATTR_UNUSED,
			    uoff_t *size_r ATTR_UNUSED)
{
	return -1;
}

static int
fail_mail_get_first_header(struct mail *mail ATTR_UNUSED,
			   const char *field ATTR_UNUSED,
			   bool decode_to_utf8 ATTR_UNUSED,
			   const char **value_r)
{
	*value_r = NULL;
	return 0;
}

static int
fail_mail_get_headers(struct mail *mail ATTR_UNUSED,
		      const char *field ATTR_UNUSED,
		      bool decode_to_utf8 ATTR_UNUSED,
		      const char *const **value_r)
{
	*value_r = NULL;
	return 0;
}

static int
fail_mail_get_header_stream(struct mail *mail ATTR_UNUSED,
			    struct mailbox_header_lookup_ctx *headers ATTR_UNUSED,
			    struct istream **stream_r ATTR_UNUSED)
{
	return -1;
}

static int
fail_mail_get_stream(struct mail *mail ATTR_UNUSED, bool get_body ATTR_UNUSED,
		     struct message_size *hdr_size ATTR_UNUSED,
		     struct message_size *body_size ATTR_UNUSED,
		     struct istream **stream_r ATTR_UNUSED)
{
	return -1;
}

static int
fail_mail_get_binary_stream(struct mail *_mail ATTR_UNUSED,
			    const struct message_part *part ATTR_UNUSED,
			    bool include_hdr ATTR_UNUSED,
			    uoff_t *size_r ATTR_UNUSED,
			    unsigned int *body_lines_r ATTR_UNUSED,
			    bool *binary_r ATTR_UNUSED,
			    struct istream **stream_r ATTR_UNUSED)
{
	return -1;
}

static int
fail_mail_get_special(struct mail *mail ATTR_UNUSED,
		      enum mail_fetch_field field ATTR_UNUSED,
		      const char **value_r ATTR_UNUSED)
{
	return -1;
}

static struct mail *fail_mail_get_real_mail(struct mail *mail)
{
	return mail;
}

static void
fail_mail_update_flags(struct mail *mail ATTR_UNUSED,
		       enum modify_type modify_type ATTR_UNUSED,
		       enum mail_flags flags ATTR_UNUSED)
{
}

static void
fail_mail_update_keywords(struct mail *mail ATTR_UNUSED,
			  enum modify_type modify_type ATTR_UNUSED,
			  struct mail_keywords *keywords ATTR_UNUSED)
{
}

static void fail_mail_update_modseq(struct mail *mail ATTR_UNUSED,
				    uint64_t min_modseq ATTR_UNUSED)
{
}

static void fail_mail_expunge(struct mail *mail ATTR_UNUSED)
{
}

static void
fail_mail_set_cache_corrupted(struct mail *mail ATTR_UNUSED,
			      enum mail_fetch_field field ATTR_UNUSED)
{
}

struct mail_vfuncs fail_mail_vfuncs = {
	NULL,
	fail_mail_free,
	fail_mail_set_seq,
	fail_mail_set_uid,
	fail_mail_set_uid_cache_updates,
	fail_mail_prefetch,
	fail_mail_precache,
	fail_mail_add_temp_wanted_fields,

	fail_mail_get_flags,
	fail_mail_get_keywords,
	fail_mail_get_keyword_indexes,
	fail_mail_get_modseq,
	fail_mail_get_modseq,
	fail_mail_get_parts,
	fail_mail_get_date,
	fail_mail_get_received_date,
	fail_mail_get_save_date,
	fail_mail_get_fail_mail_size,
	fail_mail_get_physical_size,
	fail_mail_get_first_header,
	fail_mail_get_headers,
	fail_mail_get_header_stream,
	fail_mail_get_stream,
	fail_mail_get_binary_stream,
	fail_mail_get_special,
	fail_mail_get_real_mail,
	fail_mail_update_flags,
	fail_mail_update_keywords,
	fail_mail_update_modseq,
	fail_mail_update_modseq,
	NULL,
	fail_mail_expunge,
	fail_mail_set_cache_corrupted,
	NULL
};


text:
module CacheDebugging
  class Railtie < Rails::Railtie
    config.cache_debugging = ActiveSupport::OrderedOptions.new

    # raise exceptions if templates aren't in the dependency tree
    config.cache_debugging.strict_dependencies = false

    # [0,1] - decimal (percent) of cache hits to check
    config.cache_debugging.view_sampling = 0

    initializer "cache_debugging.setup", :before => 'cache_digests' do |app|
      ActiveSupport.on_load(:action_view) do
        include CacheDebugging::CacheBlocks
        include CacheDebugging::StrictDependencies
        include CacheDebugging::ViewSampling
      end
    end
  end
end


text:
#pragma once
#include <algorithm>
#include <datalib/detail/flat_linear_map.hpp>

namespace datalib {

// If the key do not exist in at least one custom store BUT exists in the default store, just remove the value (return null)
static const int flag_RemoveIfNotExistInOneCustomButInDefault   = 0x0001;
// If the key do not exist in any of the custom store, remove the value (return null)
static const int flag_RemoveIfNotExistInAnyCustom               = 0x0002;

/*
 *  find_dominant_data
 *      This algorithm finds the dominant element at a specific key in a bunch of storers objects
 *      Returns a pointer to the found dominant element or nullptr if none found.
 *
 *      first, last -> The range of storers to search the key in
 *      key         -> The key to be searched in each storer, to determine which storer contains the dominant value
 *      flags       -> Flags to act in the search as conditions
 *
 *      The dominant element is based on a serie of rules:
 *          [*] Elements at custom storers (where 'storer::is_default == false') are dominant over default storers
 *          [*] The less common the element is, the more dominant it is
 *          [*] Elements different from the element at the default store are more dominant
 *          [*] When two or more custom storers have elements of the same dominance weight (i.e. differents), the element returned is from the store nearest to the 'first' iterator.
 *
 *          When the flag_RemoveIfNotExistInOneCustomButInDefault is in effect:
 *              [*] If the element is not present in at least one custom store but is present in the default store, nullptr is returned.
 *          When the flag_RemoveIfNotExistInAnyCustom is in effect:
 *              [*] If the element is not present in any custom store, nullptr is returned.
 *
 *
 */
template<typename Key, typename ForwardIterator> inline
auto find_dominant_data(ForwardIterator first, ForwardIterator last, const Key& key, int flags) ->
    typename std::decay<decltype(*first)>::type::mapped_type*   // CXX14 HELP-ME
{
    using store_type  = typename std::decay<decltype(*first)>::type;
    using key_type    = typename store_type::key_type;
    using mapped_type = typename store_type::mapped_type;

    //static_assert(std::is_same<key_type, typename std::decay<Key>::type>::value, "type of 'key' parameter is not the same as store_type::key_type");

    //
    //  Don't remove those checks, they're important
    //
    if(first == last)           // nope
        return nullptr;
    else if(std::next(first) == last)  // if have only 1 item, just search on it and that's it
    {
        if(first->ready())
        {
            auto it = first->container().find(key);
            if(it != first->container().end())
                return &it->second;
        }
        return nullptr;
    }

    // must store the key-value pairs in the same order as they were inserted because of the rule of this algorithm
    // that if many different elements are present the first found is returned
    using map_counter_type = flat_linear_map<
                                std::reference_wrapper<mapped_type>,    // ref to the element; must be a ref because of the implicit conversion into 'type&'
                                std::pair<uint32_t, bool>,              // .first is quantity, .second tells whether the element is present in the default store
                                std::equal_to<mapped_type>              // pred for the key, remember about the implicit conversion?
                               >;

    map_counter_type counter;
    bool has_any_custom         = false;    // Whether there's any element from a custom store in the first-last range of storers
    bool key_isnt_in_one_custom = false;    // Whether the element has not been found in at least one custom storer
    bool key_is_in_default      = false;    // Whether the element is present in the default storer

    for(auto st = first; st != last; ++st)
    {
        bool is_default = st->default();

        if(st->ready())
        {
            has_any_custom |= !is_default;

            auto& map = st->container();
            auto kv = map.find(key);
            if(kv != map.end())
            {
                auto& count = counter[std::ref(kv->second)];
                ++count.first;
                count.second |= is_default;
                key_is_in_default |= is_default;
            }
            else
            {
                if(is_default == false)
                {
                    key_isnt_in_one_custom = true;
                    if(flags & flag_RemoveIfNotExistInAnyCustom)
                        return nullptr;
                }
            }
        }
    }

    if(counter.size())
    {
        if(flags & flag_RemoveIfNotExistInOneCustomButInDefault)
        {
            if(has_any_custom)
            {
                if(key_is_in_default && key_isnt_in_one_custom)
                    return nullptr;
            }
        }

        // Find the dominant based on the information gathered in the iteration over there
        // Remember the 'if all elements are dominant, the first one is returned'? well, std::min_element has this rule too :)
        auto dom = std::min_element(counter.begin(), counter.end(), [](const map_counter_type::value_type& a, const map_counter_type::value_type& b)
        {
            // Because the dominant element cannot be the default one, returns 'a' if 'b' is default and returns 'b' if 'a' is the default.
            // Otherwise returns the less commmon element, which should be the dominant.
            auto &av = a.second, &bv = b.second;
            return ((av.second || bv.second)? bv.second : (av.first < bv.first));
        });

        return (dom != counter.end()? &dom->first.get() : nullptr);
    }

    return nullptr;
}

template<int Flags>
struct domflags_fn
{
    template<class Key>
    int operator()(const Key&) const { return Flags; }
};

} // namespace datalib


text:
FactoryBot.define do
  factory :faq_part_search, class: Faq::Part::Search, traits: [:cms_part] do
    route { "faq/search" }
  end
end


text:
set -euxo pipefail

echo "Building Goliath core."

echo "Compiling protobufs."
protoc -I admin/ admin/admin.proto --go_out=plugins=grpc:admin

buildTimestamp=`date +%s`
buildHash=`git rev-parse HEAD`
ldFlags="-X main.buildTimestamp=$buildTimestamp -X main.buildHash=$buildHash"
echo "Compling Goliath core."
go build -x -v -mod=mod -ldflags "$ldFlags" .

echo "Compiling Goliath frontend."
cd frontend/
npm run build
cd ..

echo "Putting outputs in 'out/' folder."
if [[ -d ./out/ ]]; then
    rm -rf ./out/
fi
mkdir -p out/public

cp ./goliath ./out/
cp -R frontend/build/* ./out/public/

cd ./out/
ln -s ../frontend/node_modules/@postlight/mercury-parser/cli.js mercury-parser
ln -s ../config.ini .


text:
using namespace std;

int main(){
cout << "Enter the Value you want to square root: ";

int x;

cin>> x;

cout << " The spuare root of "<< x<< " = "<< sqrt(x)<<endl;
}


text:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
  <data-sources />
  <form-beans >
    <form-bean name="loginForm" type="com.icss.hit.struts.form.LoginForm" />
    <form-bean name="userInfoUpdatedForm" type="com.icss.hit.struts.form.UserInfoUpdatedForm" />
    <form-bean name="cardTypeAddForm" type="com.icss.hit.struts.form.CardTypeAddForm" />
    <form-bean name="searchOtherInfoForm" type="com.icss.hit.struts.form.SearchOtherInfoForm" />

    <form-bean name="searchCardForm" type="com.icss.hit.struts.form.SearchCardForm" />

    <form-bean name="modifyCardForm" type="com.icss.hit.struts.form.ModifyCardForm" />
    <form-bean name="modifyPasswordForm" type="com.icss.hit.struts.form.ModifyPasswordForm" />
    <form-bean name="searchShareUserForm" type="com.icss.hit.struts.form.SearchShareUserForm" />
    <form-bean name="searchShareCardUserForm" type="com.icss.hit.struts.form.SearchShareCardUserForm" />

    <form-bean name="addWordConfigForm" type="com.icss.hit.struts.form.AddWordConfigForm" />
    <form-bean name="addWorkConfigForm" type="com.icss.hit.struts.form.AddWorkConfigForm" />

    <form-bean name="allSearchWorkForm" type="com.icss.hit.struts.form.AllSearchWorkForm" />
    <form-bean name="modifyWorkConfigForm" type="com.icss.hit.struts.form.ModifyWorkConfigForm" />

	<form-bean name="addressInfoForm" type="com.icss.hit.struts.form.addressInfoForm" />
    <form-bean name="searchInBoxForm" type="com.icss.hit.struts.form.SearchInBoxForm" />

    <form-bean name="newUserMessageForm" type="com.icss.hit.struts.form.NewUserMessageForm" />

    <form-bean name="addCardForm" type="com.icss.hit.struts.form.AddCardForm" />

    <form-bean name="draftMessageForm" type="com.icss.hit.struts.form.DraftMessageForm" />

    <form-bean name="fileUploadForm" type="com.icss.hit.struts.form.FileUploadForm" />

    <form-bean name="addMeetingRoomForm" type="com.icss.hit.struts.form.AddMeetingRoomForm" />
    <form-bean name="searchAvailableRoomForm" type="com.icss.hit.struts.form.SearchAvailableRoomForm" />

    <form-bean name="roomRegistForm" type="com.icss.hit.struts.form.RoomRegistForm" />

    <form-bean name="addDeptForm" type="com.icss.hit.struts.form.AddDeptForm" />
    <form-bean name="modifyDeptForm" type="com.icss.hit.struts.form.ModifyDeptForm" />

    <form-bean name="folderFunctionForm" type="com.icss.hit.struts.form.FolderFunctionForm" />

	<form-bean name="addSysPowerTypeForm" type="com.icss.hit.struts.form.AddSysPowerTypeForm" />

    <form-bean name="searchShareFileForm" type="com.icss.hit.struts.form.SearchShareFileForm" />
    <form-bean name="launchMeetingForm" type="com.icss.hit.struts.form.LaunchMeetingForm" />

    <form-bean name="addSysRoleForm" type="com.icss.hit.struts.form.AddSysRoleForm" />

    <form-bean name="manageAllRoomsForm" type="com.icss.hit.struts.form.ManageAllRoomsForm" />
    <form-bean name="alterRoomForm" type="com.icss.hit.struts.form.AlterRoomForm" />
    <form-bean name="graphOutputForm" type="com.icss.hit.struts.form.GraphOutputForm" />

	<form-bean name="cardTypeDelForm" type="com.icss.hit.struts.form.CardTypeDelForm" />
    <form-bean name="deleteDeptForm" type="com.icss.hit.struts.form.DeleteDeptForm" />

    <form-bean name="changeInfoForm" type="com.icss.hit.struts.form.ChangeInfoForm" />
    <form-bean name="confirmAddWorkerForm" type="com.icss.hit.struts.form.ConfirmAddWorkerForm" />

    <form-bean name="deleteSysPowerForm" type="com.icss.hit.struts.form.DeleteSysPowerForm" />

  </form-beans>

  <global-exceptions />
  <global-forwards>
  	<forward name="NullLogin" path="/login.jsp"/>
  </global-forwards>
  <action-mappings >
    <action
      attribute="loginForm"
      input="/login.jsp"
      name="loginForm"
      path="/Login"
      scope="request"
      type="com.icss.hit.struts.action.LoginAction">
      <forward name="Login.error" path="/login.jsp" />
      <forward
        name="Login.succeed"
        path="/Home.do"
        redirect="true" />
    </action>
    <action path="/UserInfo" type="com.icss.hit.struts.action.UserInfoAction">
      <forward name="UserInfo.error" path="/login/login.jsp" />
      <forward name="UserInfo.succeed" path="/info/UserInfo.jsp" />
    </action>

	<action path="/OtherInfo" type="com.icss.hit.struts.action.OtherInfoAction">
      <forward name="OtherInfo.error" path="/info/OtherInfo.jsp" />
      <forward name="OtherInfo.succeed" path="/info/OtherInfo.jsp" />
    </action>

    <action path="/userInfoUpdateAction" type="com.icss.hit.struts.action.UserInfoUpdateActionAction">
      <forward name="userInfoUpdateAction.successd" path="/info/userInfoUpdated.jsp" />
    </action>
    <action
      attribute="userInfoUpdatedForm"
      input="/userInfoUpdateAction.do"
      name="userInfoUpdatedForm"
      path="/userInfoUpdated"
      scope="request"
      type="com.icss.hit.struts.action.UserInfoUpdatedAction">
      <forward
        name="userInfoUpdated.successd"
        path="/UserInfo.do"
        redirect="true" />
      <forward
        name="userInfoUpdatdfaild"
        path="/info/UserInfo.jsp"
        redirect="true" />
    </action>

    <action path="/otherUserDetail" type="com.icss.hit.struts.action.OtherUserDetailAction">
      <forward name="otherUserDetail.error" path="/login.jsp" />
      <forward name="otherUserDetail.success" path="/info/otherUserDetail.jsp" />
    </action>

    <action path="/CardType" type="com.icss.hit.struts.action.CardTypeAction">
      <forward name="cardType.error" path="/login.jsp" />
      <forward name="cardType.success" path="/card/cardType.jsp" />
    </action>
    <action
      attribute="cardTypeAddForm"
      input="/CardType.do"
      name="cardTypeAddForm"
      path="/CardTypeAdd"
      scope="request"
      type="com.icss.hit.struts.action.CardTypeAddAction">
      <forward
        name="CardTypeAdd.error"
        path="/CardType.do"
        redirect="true" />
      <forward
        name="CardTypeAdd.success"
        path="/CardType.do"
        redirect="true" />
    </action>

    <action
      attribute="searchOtherInfoForm"
      input="/OtherInfo.do"
      name="searchOtherInfoForm"
      path="/SearchOtherInfo"
      scope="request"
      type="com.icss.hit.struts.action.SearchOtherInfoAction">
      <forward name="SearchOtherInfo.succeed" path="/OtherInfo.do" />
    </action>

    <action
      attribute="searchCardForm"
      input="/selfCard.do"
      name="searchCardForm"
      path="/searchCard"
      scope="request"
      type="com.icss.hit.struts.action.SearchCardAction" >
      <forward name="SearchCard.succeed" path="/selfCard.do" />
      </action>
    <action path="/selfCard" type="com.icss.hit.struts.action.SelfCardAction">
      <forward name="selfCard.succeed" path="/card/selfCard.jsp" />
    </action>

    <action path="/toModifyCard" type="com.icss.hit.struts.action.ToModifyCardAction">
      <forward name="ToModifyCard.Null" path="/login.jsp" />
      <forward name="ToModifyCard.succeed" path="/card/modifyCard.jsp" />
      <forward name="ToModifyCard.faild" path="/card/selfCard.jsp" />
    </action>
    <action
      attribute="modifyCardForm"
      input="/toModifyCard.do"
      name="modifyCardForm"
      path="/modifyCard"
      scope="request"
      type="com.icss.hit.struts.action.ModifyCardAction">
      <forward name="ModifyCard.faild" path="/toModifyCard.do" />
      <forward name="ModifyCard.succeed" path="/selfCard.do" />
    </action>
    <action
      attribute="modifyPasswordForm"
      input="/Password.do"
      name="modifyPasswordForm"
      path="/ModifyPassword"
      scope="request"
      type="com.icss.hit.struts.action.ModifyPasswordAction">
      <forward name="ModifyPassword.fail" path="/Password.do" />
      <forward
        name="ModifyPassword.succeed"
        path="/UserInfo.do"
        redirect="true" />
      <forward name="ModifyPassword.error" path="/login.jsp" />
    </action>
    <action path="/Password" type="com.icss.hit.struts.action.PasswordAction">
      <forward name="Password.succeed" path="/info/modifyPassword.jsp" />
      <forward name="Password.error" path="/login.jsp" />
    </action>

    <action
      attribute="searchShareCardUserForm"
      input="/shareCard.do"
      name="searchShareCardUserForm"
      path="/searchShareCardUser"
      scope="request"
      type="com.icss.hit.struts.action.SearchShareCardUserAction">
      <forward name="searchShareCardUser.succeed" path="/shareCard.do" />
    </action>
    <action path="/shareCard" type="com.icss.hit.struts.action.ShareCardAction">
      <forward name="shareCard.succeed" path="/card/shareCard.jsp" />
    </action>
    <action path="/getShareCardById" input="/shareCard.do" type="com.icss.hit.struts.action.GetShareCardByIdAction">
      <forward name="getShareCardById.succeed" path="/card/shareCardList.jsp" />
    </action>
    <action path="/Home" type="com.icss.hit.struts.action.HomeAction">
      <forward name="Home.error" path="/login.jsp" />
      <forward name="Home.succeed" path="/home/home.jsp" />
    </action>

    <action path="/newWorkConfig" type="com.icss.hit.struts.action.NewWorkConfigAction">
      <forward name="NewWorkConfig.succeed" path="/work/addWorkConfig.jsp" />
    </action>
    <action
      attribute="addWorkConfigForm"
      input="/newWorkConfig.do"
      name="addWorkConfigForm"
      path="/addWorkConfig"
      scope="request"
      type="com.icss.hit.struts.action.AddWorkConfigAction">
      <forward name="AddWorkConfig.succeed" path="/WorkPlan.do" />
      <forward name="AddWorkConfig.faild" path="/newWorkConfig.do" />
    </action>

    <action path="/authorizedUser" type="com.icss.hit.struts.action.AuthorizedUserAction">
      <forward name="authorizedUser.succeed" path="/work/authorizedUser.jsp" />
    </action>
    <action path="/deleteAuthorizedUser" type="com.icss.hit.struts.action.DeleteAuthorizedUserAction">
      <forward name="deleteAuthorizedUser.succeed" path="/work/authorizedUser.jsp" />
    </action>
    <action path="/configWork" type="com.icss.hit.struts.action.ConfigWorkAction">
      <forward name="configWork.succeed" path="/work/configWork.jsp" />
    </action>
    <action path="/authorize" type="com.icss.hit.struts.action.AuthorizeAction">
      <forward name="authorize.succeed" path="/work/configWork.jsp" />
    </action>

    <action path="/WorkPlan" type="com.icss.hit.struts.action.WorkPlanAction">
      <forward name="WorkPlan.succeed" path="/work/workPlan.jsp" />
    </action>
    <action path="/WorkPlanDetail" type="com.icss.hit.struts.action.WorkPlanDetailAction">
      <forward name="WorkPlanDetail.error" path="/work/workPlan.jsp" />
      <forward name="WorkPlanDetail.succeed" path="/work/planDetail.jsp" />
    </action>
    <action path="/canlenderSearch" type="com.icss.hit.struts.action.CanlenderSearchAction">
      <forward name="canlenderSearch.successd" path="/work/workPlanSchedule.jsp" />
      <forward name="canlenderSearch.fail" path="/work/canlenderSearch.jsp" />
    </action>
    <action path="/monthSearch" type="com.icss.hit.struts.action.MonthSearchAction">
      <forward name="monthSearch.successd" path="/work/monthWorkSchedule.jsp" />
      <forward name="monthSearch.fail" path="/work/canlenderSearch.jsp" />
    </action>

    <action path="/DeleteWorkPlan" type="com.icss.hit.struts.action.DeleteWorkPlanAction">
      <forward
        name="DeleteWorkPlan.succeed"
        path="/WorkPlan.do"
        redirect="true" />
    </action>
    <action
      attribute="allSearchWorkForm"
      input="/SearchPlan.do"
      name="allSearchWorkForm"
      path="/AllSearchWork"
      scope="request"
      type="com.icss.hit.struts.action.AllSearchWorkAction">
      <forward name="SearchWork.succeed" path="/SearchPlan.do" />
    </action>
    <action path="/SearchPlan" type="com.icss.hit.struts.action.SearchPlanAction">
      <forward name="SearchPlan.succeed" path="/work/allSearchWork.jsp" />
    </action>

    <action path="/workList" type="com.icss.hit.struts.action.WorkListAction">
      <forward name="workList.succeed" path="/work/workList.jsp" />
    </action>
    <action path="/planList" type="com.icss.hit.struts.action.PlanListAction">
      <forward name="planList.succeed" path="/work/planList.jsp" />
    </action>
    <action path="/planListMore" type="com.icss.hit.struts.action.PlanListMoreAction">
      <forward name="planListMore.succeed" path="/work/planListMore.jsp" />
    </action>
    <action path="/readPlan" type="com.icss.hit.struts.action.ReadPlanAction">
      <forward name="readPlan.succeed" path="/work/planDetails.jsp" />
      <forward name="readPlan.failed" path="/work/planDetails.jsp" />
    </action>

    <action path="/toModifyWorkConfig" type="com.icss.hit.struts.action.ToModifyWorkConfigAction">
      <forward name="ToModifyWorkConfig.faild" path="/WorkPlan.do" />
      <forward name="ToModifyWorkConfig.succeed" path="/work/modifyWorkConfig.jsp" />
    </action>
    <action
      attribute="modifyWorkConfigForm"
      input="/toModifyWorkConfig.do"
      name="modifyWorkConfigForm"
      path="/modifyWorkConfig"
      scope="request"
      type="com.icss.hit.struts.action.ModifyWorkConfigAction">
      <forward name="ModifyWorkConfig.faild" path="/toModifyWorkConfig.do" />
      <forward name="ModifyWorkConfig.succeed" path="/WorkPlan.do" />
    </action>

    <action path="/addressInfo" type="com.icss.hit.struts.action.AddressInfoAction">
      <forward name="addressInfo.successd" path="/address/address.jsp" />
      <forward name="addressInfo.fail" path="/address/address.jsp" />
    </action>
    <action
      attribute="addressInfoForm"
      input="/addressInfo.do"
      name="addressInfoForm"
      path="/addressinfoSend"
      scope="request"
      type="com.icss.hit.struts.action.AddressinfoSendAction">
      <forward name="addressinfoSend.successd" path="/addressInfo.do" />
    </action>
    <action
      attribute="searchOtherInfoForm"
      input="/OtherInfo.do"
      name="searchOtherInfoForm"
      path="/OtherInfoPDF"
      scope="request"
      type="com.icss.hit.struts.action.OtherInfoPDFAction">
      <forward
        name="OtherInfoPDF.error"
        path="/OtherInfo.do"
        redirect="true" />
      <forward
        name="OtherInfoPDF.succeed"
        path="/OtherInfo.do"
        redirect="true" />
    </action>
    <action
      attribute="addressInfoForm"
      input="/addressInfo.do"
      name="addressInfoForm"
      path="/excelExport"
      scope="request"
      type="com.icss.hit.struts.action.ExcelExportAction">
      <forward name="ExcelExport.succussd" path="/addressInfo.do" />
      <forward name="ExcelExport.fail" path="/addressInfo.do" />
    </action>
    <action path="/NewMessage" type="com.icss.hit.struts.action.NewMessageAction">
      <forward name="NewMessage.succeed" path="/message/newMessage.jsp" />
    </action>

    <action path="/completePlan" type="com.icss.hit.struts.action.CompletePlanAction">
      <forward name="completePlan.planListMore.succeed" path="/work/planListMore.jsp" />
      <forward name="completePlan.planList.succeed" path="/work/planList.jsp" />
    </action>
    <action path="/deletePlan" type="com.icss.hit.struts.action.DeletePlanAction">
      <forward name="deletePlan.planList.succeed" path="/work/planList.jsp" />
      <forward name="deletePlan.planListMore.succeed" path="/work/planListMore.jsp" />
    </action>
    <action path="/inBox" type="com.icss.hit.struts.action.InBoxAction">
      <forward name="inBox.succeed" path="/message/inBox.jsp" />
      <forward name="inbox.succeed" path="/message/inBox.jsp" />
    </action>
    <action
      attribute="searchInBoxForm"
      input="/form/searchInBox.jsp"
      name="searchInBoxForm"
      path="/searchInBox"
      scope="request"
      type="com.icss.hit.struts.action.SearchInBoxAction">
      <forward name="searchInBox.succeed" path="/inBox.do" />
      <forward name="searchInBox.failed" path="/inBox.do" />
    </action>
    <action path="/inBoxDetails" type="com.icss.hit.struts.action.InBoxDetailsAction">
      <forward name="inBoxDetails.succeed" path="/message/inBoxDetails.jsp" />
      <forward name="inBoxDetails.failed" path="/message/inBoxDetails.jsp" />
    </action>

    <action
      attribute="newUserMessageForm"
      input="/NewMessage.do"
      name="newUserMessageForm"
      path="/newUserMessage"
      scope="request"
      type="com.icss.hit.struts.action.NewUserMessageAction">
      <forward
        name="newUserMessage.succeed"
        path="/outbox.do"
        redirect="true" />
    </action>

    <action path="/newCard" type="com.icss.hit.struts.action.NewCardAction">
      <forward name="NewCard.succeed" path="/card/addCard.jsp" />
    </action>
    <action
      attribute="addCardForm"
      input="/newCard.do"
      name="addCardForm"
      path="/addCard"
      scope="request"
      type="com.icss.hit.struts.action.AddCardAction">
      <forward name="AddCard.succeed" path="/selfCard.do" />
      <forward name="AddCard.faild" path="/newCard.do" />
    </action>

    <action path="/draftBox" type="com.icss.hit.struts.action.DraftBoxAction">
      <forward name="draftBox.successd" path="/message/draftBox.jsp" />
      <forward name="draftBox.fail" path="/message/draftBox.jsp" />
    </action>

    <action path="/MyFile" type="com.icss.hit.struts.action.MyFileAction">
      <forward name="MyFile.succeed" path="/filepage/myFile.jsp" />
    </action>

    <action path="/outbox" type="com.icss.hit.struts.action.OutboxAction">
      <forward name="Outbox.succeed" path="/message/outbox.jsp" />
    </action>

    <action path="/deleteInBoxMessage" type="com.icss.hit.struts.action.DeleteInBoxMessageAction">
      <forward name="deleteInBoxMessage.failed" path="/inBox.do" />
      <forward name="deleteInBoxMessage.succeed" path="/inBox.do" />
    </action>

    <action path="/FolderDetail" type="com.icss.hit.struts.action.FolderDetailAction">
      <forward
        name="FolderDetail.error"
        path="/MyFile.do"
        redirect="true" />
      <forward name="FolderDetail.succeed" path="/filepage/folderDetail.jsp" />
    </action>
    <action path="/FileUpload" type="com.icss.hit.struts.action.FileUploadAction">
      <forward name="FileUpload.succeed" path="/filepage/fileUpload.jsp" />
      <forward
        name="FileUpload.error"
        path="/MyFile.do"
        redirect="true" />
    </action>
    <action path="/FileUploadProcess" type="com.icss.hit.struts.action.FileUploadProcessAction">
      <forward
        name="FileUploadProcess.error"
        path="/FileUpload.do"
        redirect="true" />
      <forward name="FileUploadProcess.succeed" path="/FolderDetail.do" />
    </action>

    <action path="/DeleteFile" type="com.icss.hit.struts.action.DeleteFileAction">
      <forward
        name="DeleteFile.succeed"
        path="/FolderDetail.do"
        redirect="true" />
      <forward
        name="DeleteFile.error"
        path="/MyFile.do"
        redirect="true" />
    </action>

    <action
      attribute="draftMessageForm"
      input="/draftBox.do"
      name="draftMessageForm"
      path="/draftMessage"
      scope="request"
      type="com.icss.hit.struts.action.DraftMessageAction">
      <forward name="draftMessage.fail" path="/draftBox.do" />
      <forward name="draftMessage.Asuccessd" path="/message/alertDraftMessage.jsp" />
      <forward name="draftMessage.Dsuccessd" path="/draftBox.do" />
    </action>
    <action
      attribute="newUserMessageForm"
      input="/draftMessage.do"
      name="newUserMessageForm"
      path="/messageAfterAlter"
      scope="request"
      type="com.icss.hit.struts.action.MessageAfterAlterAction">
      <forward name="messageAfterAlter.succussd" path="/draftBox.do" />
      <forward name="messageAfterAlter.fail" path="/draftBox.do" />
    </action>

    <action
      attribute="roomRegistForm"
      input="/roomRedirect.do"
      name="roomRegistForm"
      path="/roomRegist"
      scope="request"
      type="com.icss.hit.struts.action.RoomRegistAction">
      <forward name="roomRegist.fail" path="/registerMeetingRoomLog.do" />
      <forward name="roomRegist.successd" path="/registerMeetingRoomLog.do" />
    </action>
    <action path="/roomRedirect" type="com.icss.hit.struts.action.RoomRedirectAction">
      <forward name="roomRedirect.fail" path="/login.jsp" />
      <forward name="roomRedirect.successd" path="/meeting/roomRegist.jsp" />
    </action>

    <action path="/newDept" type="com.icss.hit.struts.action.NewDeptAction">
      <forward name="NewDept.succeed" path="/dept/addDept.jsp" />
    </action>
    <action
      attribute="addDeptForm"
      input="/newDept.do"
      name="addDeptForm"
      path="/addDept"
      scope="request"
      type="com.icss.hit.struts.action.AddDeptAction">
      <forward name="AddDept.succeed" path="/deptList.do" />
      <forward name="AddDept.faild" path="/newDept.do" />
    </action>
    <action path="/deptList" type="com.icss.hit.struts.action.DeptListAction">
      <forward name="DeptList.succeed" path="/dept/deptList.jsp" />
    </action>
    <action path="/toModifyDept" type="com.icss.hit.struts.action.ToModifyDeptAction">
      <forward name="ToModifyDept.succeed" path="/dept/modifyDept.jsp" />
      <forward name="ToModifyDept.error" path="/modifyDept.do" />
    </action>
    <action
      attribute="modifyDeptForm"
      input="/dept/modifyDept.jsp"
      name="modifyDeptForm"
      path="/modifyDept"
      scope="request"
      type="com.icss.hit.struts.action.ModifyDeptAction">
      <forward name="ModifyDept.succeed" path="/deptList.do" />
      <forward name="ModifyDept.faild" path="/toModifyDept.do" />
    </action>
    <action
      attribute="deleteDeptForm"
      input="/deptList.do"
      name="deleteDeptForm"
      path="/deleteDept"
      scope="request"
      type="com.icss.hit.struts.action.DeleteDeptAction">
      <forward name="DeleteDept.succeed" path="/deptList.do" />
      <forward name="DeleteDept.faild" path="/deptList.do" />
    </action>

    <action
      attribute="folderFunctionForm"
      input="/FolderDetail.do"
      name="folderFunctionForm"
      path="/FolderFunction"
      scope="request"
      type="com.icss.hit.struts.action.FolderFunctionAction">
      <forward
        name="FolderFunction.succeed"
        path="/FolderDetail.do"
        redirect="true" />
    </action>

    <action path="/registerMeetingRoomLog" type="com.icss.hit.struts.action.RegisterMeetingRoomLogAction">
      <forward name="registerMeetingRoomLog.succeed" path="/meeting/registerMeetingRoomLog.jsp" />
      <forward name="registerMeetingRoomLog.failed" path="/meeting/registerMeetingRoomLog.jsp" />
    </action>
    <action path="/cancilReg" type="com.icss.hit.struts.action.CancilRegAction">
      <forward name="cancilReg.succeed" path="/registerMeetingRoomLog.do" redirect="true"/>
      <forward name="cancilReg.failed" path="//registerMeetingRoomLog.do" />
    </action>
    <action path="/registerMeetingRoomLogDetails" type="com.icss.hit.struts.action.RegisterMeetingRoomLogDetailsAction">
      <forward name="registerMeetingRoomLogDetails.succeed" path="/meeting/registerMeetingRoomLogDetails.jsp" />
      <forward name="registerMeetingRoomLogDetails.failed" path="/meeting/registerMeetingRoomLogDetails.jsp" />
    </action>

    <action
      path="/NewMeetingRoom"
      type="com.icss.hit.struts.action.NewMeetingRoomAction"
      validate="false">
      <forward name="newMeetingRoom.success" path="/meeting/addMeetingRoom.jsp" />
      <forward name="newMeetingRoom.error" path="/login.jsp" />
    </action>
    <action
      attribute="addMeetingRoomForm"
      input="/NewMeetingRoom.do"
      name="addMeetingRoomForm"
      path="/AddMeetingRoom"
      scope="request"
      type="com.icss.hit.struts.action.AddMeetingRoomAction">
      <forward name="addMeetingRoom.success" path="/meeting/addMeetingRoom.jsp" />
      <forward name="addMeetingRoom.error" path="/meeting/addMeetingRoom.jsp" />
    </action>

    <action path="/newSysPowerType" type="com.icss.hit.struts.action.NewSysPowerTypeAction">
      <forward name="NewSysPowerType.succeed" path="/power/addSysPowerType.jsp" />
    </action>
    <action
      attribute="addSysPowerTypeForm"
      input="/newSysPowerType.do"
      name="addSysPowerTypeForm"
      path="/addSysPowerType"
      scope="request"
      type="com.icss.hit.struts.action.AddSysPowerTypeAction">
      <forward name="AddSysPower.succeed" path="/sysPowerList.do" />
    </action>
    <action path="/sysPowerList" type="com.icss.hit.struts.action.SysPowerListAction">
      <forward name="SysPowerList.succeed" path="/power/sysPowerList.jsp" />
    </action>
    <action
      attribute="deleteSysPowerForm"
      input="/sysPowerList.do"
      name="deleteSysPowerForm"
      path="/deleteSysPower"
      scope="request"
      type="com.icss.hit.struts.action.DeleteSysPowerAction">
      <forward name="DeleteSysPower.succeed" path="/sysPowerList.do" />
      <forward name="DeleteSysPower.faild" path="/sysPowerList.do" />
    </action>

    <action
      attribute="searchShareFileForm"
      input="/ShareFile.do"
      name="searchShareFileForm"
      path="/SearchShareFile"
      scope="request"
      type="com.icss.hit.struts.action.SearchShareFileAction">
      <forward
        name="SearchShareFile.succeed"
        path="/ShareFile.do"
        redirect="true" />
      <forward
        name="SearchShareFile.error"
        path="/ShareFile.do"
        redirect="true" />
    </action>
    <action path="/ShareFile" type="com.icss.hit.struts.action.ShareFileAction">
      <forward name="ShareFile.succeed" path="/filepage/searchShareFile.jsp" />
    </action>

    <action path="/meetingOrder" type="com.icss.hit.struts.action.MeetingOrderAction">
      <forward name="meetingOrder.failed" path="/meeting/meetingOrder.jsp" />
      <forward name="meetingOrder.succeed" path="/meeting/meetingOrder.jsp" />
    </action>
    <action
      attribute="searchAvailableRoomForm"
      input="/meetingOrder.do"
      name="searchAvailableRoomForm"
      path="/searchAvailableRoom"
      scope="request"
      type="com.icss.hit.struts.action.SearchAvailableRoomAction">
      <forward name="searchAvailableRoom.fail" path="/meetingOrder.do" />
      <forward name="searchAvailableRoom.succeed" path="/meetingOrder.do" />
    </action>

   <action path="/deleteSendMes" type="com.icss.hit.struts.action.DeleteSendMesAction">
	  <forward name="deleteSendMes.fail" path="/outbox.do" />
      <forward name="deleteSendMes.successd" path="/outbox.do" />
    </action>
    <action path="/meetingAttend" type="com.icss.hit.struts.action.MeetingAttendAction">
      <forward name="meetingAttend.succeed" path="/meeting/meetingAttend.jsp" />
      <forward name="meetingAttend.failed" path="/meeting/meetingAttend.jsp" />
    </action>
    <action path="/meetingDetails" type="com.icss.hit.struts.action.MeetingDetailsAction">
      <forward name="meetingDetails.failed" path="/meeting/meetingDetails.jsp" />
      <forward name="meetingDetails.succeed" path="/meeting/meetingDetails.jsp" />
    </action>
    <action path="/meetingLaunch" type="com.icss.hit.struts.action.MeetingLaunchAction">
      <forward name="meetingLaunch.fail" path="/meeting/noRoomReg.jsp" />
      <forward name="meetingLaunch.successd" path="/meeting/meetingLaunch.jsp" />
    </action>
    <action
      attribute="launchMeetingForm"
      input="/meetingLaunch.do"
      name="launchMeetingForm"
      path="/launchMeeting"
      scope="request"
      type="com.icss.hit.struts.action.LaunchMeetingAction" >
      <forward name="launchMeeting.successd" path="/meetingAttend.do"/>
      <forward name="launchMeeting.fail" path="/meetingAttend.do"/>
    </action>

    <action path="/manageRoom" type="com.icss.hit.struts.action.ManageRoomAction">
      <forward name="manageRoom.successd" path="/adminmeeting/managerroom.jsp" />
    </action>
    <action
      attribute="manageAllRoomsForm"
      input="/manageRoom.do"
      name="manageAllRoomsForm"
      path="/manageAllRooms"
      scope="request"
      type="com.icss.hit.struts.action.ManageAllRoomsAction">
      <forward name="manageAllRooms.redirect" path="/roomAlter.do" />
      <forward name="manageAllRooms.fail" path="/manageRoom.do" />
      <forward name="manageAllRooms.successd" path="/manageRoom.do" />
    </action>
    <action
      attribute="alterRoomForm"
      input="/roomAlter.do"
      name="alterRoomForm"
      path="/alterRoom"
      scope="request"
      type="com.icss.hit.struts.action.AlterRoomAction">
      <forward name="alterRoom.successd" path="/manageRoom.do" />
      <forward name="alterRoom.fail" path="/manageRoom.do" />
    </action>
    <action path="/roomAlter" type="com.icss.hit.struts.action.RoomAlterAction">
      <forward name="roomAlter.successd" path="/adminmeeting/alterRoom.jsp" />
    </action>

    <action path="/Logout" type="com.icss.hit.struts.action.LogoutAction">
      <forward
        name="Logout.succeed"
        path="/login.jsp"
        redirect="true" />
    </action>
    <action path="/newSysRole" type="com.icss.hit.struts.action.NewSysRoleAction">
      <forward name="NewSysRole.succeed" path="/role/addSysRole.jsp" />
    </action>
    <action
      attribute="addSysRoleForm"
      input="/newSysRole.do"
      name="addSysRoleForm"
      path="/addSysRole"
      scope="request"
      type="com.icss.hit.struts.action.AddSysRoleAction" >
      <forward
        name="AddSysRole.succeed"
        path="showRoles.do"
        redirect="true" />
    </action>

    <action path="/UploadMeetingRecord" type="com.icss.hit.struts.action.UploadMeetingRecordAction">
      <forward
        name="UploadMeetingRecord.succeed"
        path="meetingDetails.do"
        redirect="true" />
    </action>
    <action path="/manageMeetingRoom" type="com.icss.hit.struts.action.ManageMeetingRoomAction">
      <forward name="manageMeetingRoom.failed" path="/meeting/manageMeetingRoom.jsp" />
      <forward name="manageMeetingRoom.succeed" path="/meeting/manageMeetingRoom.jsp" />
    </action>
    <action path="/handleUnsettledRoom" type="com.icss.hit.struts.action.HandleUnsettledRoomAction">
      <forward name="handleUnsettledRoom.succeed" path="manageMeetingRoom.do" />
    </action>
    <action path="/meetingRegDetails" type="com.icss.hit.struts.action.MeetingRegDetailsAction">
      <forward name="meetingRegDetails.succeed" path="/meeting/meetingRegDetails.jsp" />
    </action>

    <action path="/outputGraph" type="com.icss.hit.struts.action.OutputGraphAction">
      <forward name="outputGraph.successd" path="/adminmeeting/outputGraph.jsp" />
    </action>
    <action
      attribute="graphOutputForm"
      input="/outputGraph.do"
      name="graphOutputForm"
      path="/graphOutput"
      scope="request"
      type="com.icss.hit.struts.action.GraphOutputAction">
      <forward name="graphOutput.successd" path="/outputGraph.do" />
    </action>
    <action
      attribute="graphOutputForm"
      input="/outputGraph.do"
      name="graphOutputForm"
      path="/roomExcelExport"
      scope="request"
      type="com.icss.hit.struts.action.RoomExcelExportAction">
      <forward name="roomExcelExport.successd" path="/outputGraph.do" />
      <forward name="roomExcelExport.fail" path="/outputGraph.do" />
    </action>

    <action path="/AddNewFolder" type="com.icss.hit.struts.action.AddNewFolderAction">
      <forward
        name="AddNewFolder.error"
        path="/MyFile.do"
        redirect="true" />
      <forward
        name="AddNewFolder.succeed"
        path="/MyFile.do"
        redirect="true" />
    </action>
    <action
      attribute="cardTypeDelForm"
      input="/CardType.do"
      name="cardTypeDelForm"
      path="/cardTypeDel"
      scope="request"
      type="com.icss.hit.struts.action.CardTypeDelAction">
      <forward name="CardTypeDel.fail" path="/CardType.do" />
      <forward name="CardTypeDel.successd" path="/CardType.do" />
    </action>
    <action path="/roleArrange" type="com.icss.hit.struts.action.RoleArrangeAction">
      <forward name="roleArrange.succeed" path="/role/roleArrange.jsp" />
    </action>
    <action path="/setUpRole" type="com.icss.hit.struts.action.SetUpRoleAction">
      <forward name="setUpRole.succeed" path="/role/setUpRole.jsp" />
      <forward name="setUpRole.failed" path="/roleArrage.do" />
    </action>
    <action path="/changeRole" type="com.icss.hit.struts.action.ChangeRoleAction">
      <forward name="changeRole.failed" path="/roleArrange.do" />
      <forward name="changeRole.succeed" path="/roleArrange.do" />
    </action>

    <action path="/setUpInfo" type="com.icss.hit.struts.action.SetUpInfoAction">
      <forward name="setUpInfo.succeed" path="/role/setUpInfo.jsp" />
    </action>
    <action
      attribute="changeInfoForm"
      input="/form/changeInfo.jsp"
      name="changeInfoForm"
      path="/changeInfo"
      scope="request"
      type="com.icss.hit.struts.action.ChangeInfoAction" >
      <forward name="changeInfo.succeed" path="/roleArrange.do" />
      <forward name="changeInfo.failed" path="/roleArrange.do" />
      </action>
    <action path="/addWorker" type="com.icss.hit.struts.action.AddWorkerAction">
      <forward name="addWorker.succeed" path="/role/addWorker.jsp" />
    </action>
    <action
      attribute="confirmAddWorkerForm"
      input="/addWorker.do"
      name="confirmAddWorkerForm"
      path="/confirmAddWorker"
      scope="request"
      type="com.icss.hit.struts.action.ConfirmAddWorkerAction">
      <forward name="confirmAddWorker.succeed" path="/roleArrange.do" />
    </action>

    <action path="/readOutMessage" type="com.icss.hit.struts.action.ReadOutMessageAction">
      <forward name="readOutMessage.fail" path="/outbox.do" />
      <forward name="readOutMessage.successd" path="/message/outBoxDetails.jsp" />
    </action>

    <action path="/showRoles" type="com.icss.hit.struts.action.ShowRolesAction">
      <forward name="ShowRoles.successd" path="/role/roleList.jsp" />
      <forward name="ShowRoles.fail" path="/role/roleList.jsp" />
    </action>

  </action-mappings>

  <message-resources parameter="com.icss.hit.struts.ApplicationResources" />
</struts-config>


text:
package de.codecentric.boot.admin.services;

import java.util.Collections;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;

import de.codecentric.boot.admin.config.AdminClientProperties;
import de.codecentric.boot.admin.config.AdminProperties;
import de.codecentric.boot.admin.model.Application;

/**
 * Registers the client application at spring-boot-admin-server
 */
public class ApplicationRegistrator {

	private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationRegistrator.class);

	private static HttpHeaders HTTP_HEADERS = createHttpHeaders();

	private final AtomicReference<String> registeredId = new AtomicReference<>();

	private AdminClientProperties client;

	private AdminProperties admin;

	private final RestTemplate template;

	public ApplicationRegistrator(RestTemplate template, AdminProperties admin,
			AdminClientProperties client) {
		this.client = client;
		this.admin = admin;
		this.template = template;
	}

	private static HttpHeaders createHttpHeaders() {
		HttpHeaders headers = new HttpHeaders();
		headers.setContentType(MediaType.APPLICATION_JSON);
		headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
		return HttpHeaders.readOnlyHttpHeaders(headers);
	}

	/**
	 * Registers the client application at spring-boot-admin-server.
	 *
	 * @return true if successful registration on at least one admin server
	 */
	public boolean register() {
		boolean isRegistrationSuccessful = false;
		Application self = createApplication();
		for (String adminUrl : admin.getAdminUrl()) {
			try {
				@SuppressWarnings("rawtypes")
				ResponseEntity<Map> response = template.postForEntity(adminUrl,
						new HttpEntity<>(self, HTTP_HEADERS), Map.class);

				if (response.getStatusCode().equals(HttpStatus.CREATED)) {
					if (registeredId.compareAndSet(null, response.getBody().get("id").toString())) {
						LOGGER.info("Application registered itself as {}", response.getBody());
					} else {
						LOGGER.debug("Application refreshed itself as {}", response.getBody());
					}

					isRegistrationSuccessful = true;
					if (admin.isRegisterOnce()) {
						break;
					}
				} else {
					LOGGER.warn("Application failed to registered itself as {}. Response: {}", self,
							response.toString());
				}
			} catch (Exception ex) {
				LOGGER.warn("Failed to register application as {} at spring-boot-admin ({}): {}",
						self, admin.getAdminUrl(), ex.getMessage());
			}
		}

		return isRegistrationSuccessful;
	}

	public void deregister() {
		String id = registeredId.get();
		if (id != null) {
			for (String adminUrl : admin.getAdminUrl()) {
				try {
					template.delete(adminUrl + "/" + id);
					registeredId.compareAndSet(id, null);
					if (admin.isRegisterOnce()) {
						break;
					}
				} catch (Exception ex) {
					LOGGER.warn(
							"Failed to deregister application (id={}) at spring-boot-admin ({}): {}",
							id, adminUrl, ex.getMessage());
				}
			}
		}
	}

	protected Application createApplication() {
		return Application.create(client.getName()).withHealthUrl(client.getHealthUrl())
				.withManagementUrl(client.getManagementUrl()).withServiceUrl(client.getServiceUrl())
				.build();
	}
}


text:
module ActiveModel

  module Warnings
    VERSION = "2.0.0"
  end

end


text:
/*
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */
/*
 * This code was generated by https://github.com/googleapis/google-api-java-client-services/
 * Modify at your own risk.
 */

package com.google.api.services.eventarc.v1.model;

/**
 * Represents a GKE destination.
 *
 *
 This is the Java data model class that specifies how to parse/serialize into the JSON that is
 * transmitted over HTTP when working with the Eventarc API. For a detailed explanation see:
 * https://developers.google.com/api-client-library/java/google-http-java-client/json
 *

 *
 * @author Google, Inc.
 */
@SuppressWarnings("javadoc")
public final class GKE extends com.google.api.client.json.GenericJson {

  /**
   * Required. The name of the cluster the GKE service is running in. The cluster must be running in
   * the same project as the trigger being created.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String cluster;

  /**
   * Required. The name of the Google Compute Engine in which the cluster resides, which can either
   * be compute zone (for example, us-central1-a) for the zonal clusters or region (for example, us-
   * central1) for regional clusters.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String location;

  /**
   * Required. The namespace the GKE service is running in.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String namespace;

  /**
   * Optional. The relative path on the GKE service the events should be sent to. The value must
   * conform to the definition of a URI path segment (section 3.3 of RFC2396). Examples: "/route",
   * "route", "route/subroute".
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String path;

  /**
   * Required. Name of the GKE service.
   * The value may be {@code null}.
   */
  @com.google.api.client.util.Key
  private java.lang.String service;

  /**
   * Required. The name of the cluster the GKE service is running in. The cluster must be running in
   * the same project as the trigger being created.
   * @return value or {@code null} for none
   */
  public java.lang.String getCluster() {
    return cluster;
  }

  /**
   * Required. The name of the cluster the GKE service is running in. The cluster must be running in
   * the same project as the trigger being created.
   * @param cluster cluster or {@code null} for none
   */
  public GKE setCluster(java.lang.String cluster) {
    this.cluster = cluster;
    return this;
  }

  /**
   * Required. The name of the Google Compute Engine in which the cluster resides, which can either
   * be compute zone (for example, us-central1-a) for the zonal clusters or region (for example, us-
   * central1) for regional clusters.
   * @return value or {@code null} for none
   */
  public java.lang.String getLocation() {
    return location;
  }

  /**
   * Required. The name of the Google Compute Engine in which the cluster resides, which can either
   * be compute zone (for example, us-central1-a) for the zonal clusters or region (for example, us-
   * central1) for regional clusters.
   * @param location location or {@code null} for none
   */
  public GKE setLocation(java.lang.String location) {
    this.location = location;
    return this;
  }

  /**
   * Required. The namespace the GKE service is running in.
   * @return value or {@code null} for none
   */
  public java.lang.String getNamespace() {
    return namespace;
  }

  /**
   * Required. The namespace the GKE service is running in.
   * @param namespace namespace or {@code null} for none
   */
  public GKE setNamespace(java.lang.String namespace) {
    this.namespace = namespace;
    return this;
  }

  /**
   * Optional. The relative path on the GKE service the events should be sent to. The value must
   * conform to the definition of a URI path segment (section 3.3 of RFC2396). Examples: "/route",
   * "route", "route/subroute".
   * @return value or {@code null} for none
   */
  public java.lang.String getPath() {
    return path;
  }

  /**
   * Optional. The relative path on the GKE service the events should be sent to. The value must
   * conform to the definition of a URI path segment (section 3.3 of RFC2396). Examples: "/route",
   * "route", "route/subroute".
   * @param path path or {@code null} for none
   */
  public GKE setPath(java.lang.String path) {
    this.path = path;
    return this;
  }

  /**
   * Required. Name of the GKE service.
   * @return value or {@code null} for none
   */
  public java.lang.String getService() {
    return service;
  }

  /**
   * Required. Name of the GKE service.
   * @param service service or {@code null} for none
   */
  public GKE setService(java.lang.String service) {
    this.service = service;
    return this;
  }

  @Override
  public GKE set(String fieldName, Object value) {
    return (GKE) super.set(fieldName, value);
  }

  @Override
  public GKE clone() {
    return (GKE) super.clone();
  }

}


text:
package router

import "github.com/AlexanderChen1989/xrest"

type SubRouter struct {
	prefix   string
	pipeline *xrest.Pipeline
	father   *Router
}

func (sr *SubRouter) SubRouter(prefix string) *SubRouter {
	return sr.father.subRouter(sr, prefix)
}

func (sr *SubRouter) handle(method string, path string, h xrest.Handler) {
	sr.father.handle(sr, method, path, h)
}

func (sr *SubRouter) Plug(plug ...xrest.Plugger) {
	sr.father.plug(sr, plug...)
}

func (sr *SubRouter) Get(path string, h xrest.Handler) {
	sr.handle(GET, path, h)
}

func (sr *SubRouter) Post(path string, h xrest.Handler) {
	sr.handle(POST, path, h)
}

func (sr *SubRouter) Put(path string, h xrest.Handler) {
	sr.handle(PUT, path, h)
}

func (sr *SubRouter) Patch(path string, h xrest.Handler) {
	sr.handle(PATCH, path, h)
}

func (sr *SubRouter) Options(path string, h xrest.Handler) {
	sr.handle(OPTIONS, path, h)
}

func (sr *SubRouter) Delete(path string, h xrest.Handler) {
	sr.handle(DELETE, path, h)
}


text:
<?php

namespace Drupal\Tests\path\Functional;

use Drupal\Component\Utility\Unicode;
use Drupal\Core\Cache\Cache;
use Drupal\Core\Database\Database;

/**
 * Add, edit, delete, and change alias and verify its consistency in the
 * database.
 *
 * @group path
 */
class PathAliasTest extends PathTestBase {

  /**
   * Modules to enable.
   *
   * @var array
   */
  public static $modules = ['path'];

  protected function setUp() {
    parent::setUp();

    // Create test user and log in.
    $web_user = $this->drupalCreateUser(['create page content', 'edit own page content', 'administer url aliases', 'create url aliases']);
    $this->drupalLogin($web_user);
  }

  /**
   * Tests the path cache.
   */
  public function testPathCache() {
    // Create test node.
    $node1 = $this->drupalCreateNode();

    // Create alias.
    $edit = [];
    $edit['source'] = '/node/' . $node1->id();
    $edit['alias'] = '/' . $this->randomMachineName(8);
    $this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));

    // Check the path alias whitelist cache.
    $whitelist = \Drupal::cache('bootstrap')->get('path_alias_whitelist');
    $this->assertTrue($whitelist->data['node']);
    $this->assertFalse($whitelist->data['admin']);

    // Visit the system path for the node and confirm a cache entry is
    // created.
    \Drupal::cache('data')->deleteAll();
    // Make sure the path is not converted to the alias.
    $this->drupalGet(trim($edit['source'], '/'), ['alias' => TRUE]);
    $this->assertTrue(\Drupal::cache('data')->get('preload-paths:' . $edit['source']), 'Cache entry was created.');

    // Visit the alias for the node and confirm a cache entry is created.
    \Drupal::cache('data')->deleteAll();
    // @todo Remove this once https://www.drupal.org/node/2480077 lands.
    Cache::invalidateTags(['rendered']);
    $this->drupalGet(trim($edit['alias'], '/'));
    $this->assertTrue(\Drupal::cache('data')->get('preload-paths:' . $edit['source']), 'Cache entry was created.');
  }

  /**
   * Tests alias functionality through the admin interfaces.
   */
  public function testAdminAlias() {
    // Create test node.
    $node1 = $this->drupalCreateNode();

    // Create alias.
    $edit = [];
    $edit['source'] = '/node/' . $node1->id();
    $edit['alias'] = '/' . $this->getRandomGenerator()->word(8);
    $this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));

    // Confirm that the alias works.
    $this->drupalGet($edit['alias']);
    $this->assertText($node1->label(), 'Alias works.');
    $this->assertResponse(200);
    // Confirm that the alias works in a case-insensitive way.
    $this->assertTrue(ctype_lower(ltrim($edit['alias'], '/')));
    $this->drupalGet($edit['alias']);
    $this->assertText($node1->label(), 'Alias works lower case.');
    $this->assertResponse(200);
    $this->drupalGet(Unicode::strtoupper($edit['alias']));
    $this->assertText($node1->label(), 'Alias works upper case.');
    $this->assertResponse(200);

    // Change alias to one containing "exotic" characters.
    $pid = $this->getPID($edit['alias']);

    $previous = $edit['alias'];
    // Lower-case letters.
    $edit['alias'] = '/alias' .
      // "Special" ASCII characters.
      "- ._~!$'\"()*@[]?&+%#,;=:" .
      // Characters that look like a percent-escaped string.
      "%23%25%26%2B%2F%3F" .
      // Characters from various non-ASCII alphabets.
      "中國書۞";
    $connection = Database::getConnection();
    if ($connection->databaseType() != 'sqlite') {
      // When using LIKE for case-insensitivity, the SQLite driver is
      // currently unable to find the upper-case versions of non-ASCII
      // characters.
      // @todo fix this in https://www.drupal.org/node/2607432
      $edit['alias'] .= "ïвβéø";
    }
    $this->drupalPostForm('admin/config/search/path/edit/' . $pid, $edit, t('Save'));

    // Confirm that the alias works.
    $this->drupalGet(Unicode::strtoupper($edit['alias']));
    $this->assertText($node1->label(), 'Changed alias works.');
    $this->assertResponse(200);

    $this->container->get('path.alias_manager')->cacheClear();
    // Confirm that previous alias no longer works.
    $this->drupalGet($previous);
    $this->assertNoText($node1->label(), 'Previous alias no longer works.');
    $this->assertResponse(404);

    // Create second test node.
    $node2 = $this->drupalCreateNode();

    // Set alias to second test node.
    $edit['source'] = '/node/' . $node2->id();
    // leave $edit['alias'] the same
    $this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));

    // Confirm no duplicate was created.
    $this->assertRaw(t('The alias %alias is already in use in this language.', ['%alias' => $edit['alias']]), 'Attempt to move alias was rejected.');

    $edit_upper = $edit;
    $edit_upper['alias'] = Unicode::strtoupper($edit['alias']);
    $this->drupalPostForm('admin/config/search/path/add', $edit_upper, t('Save'));
    $this->assertRaw(t('The alias %alias could not be added because it is already in use in this language with different capitalization: %stored_alias.', [
      '%alias' => $edit_upper['alias'],
      '%stored_alias' => $edit['alias'],
    ]), 'Attempt to move upper-case alias was rejected.');

    // Delete alias.
    $this->drupalGet('admin/config/search/path/edit/' . $pid);
    $this->clickLink(t('Delete'));
    $this->assertRaw(t('Are you sure you want to delete path alias %name?', ['%name' => $edit['alias']]));
    $this->drupalPostForm(NULL, [], t('Confirm'));

    // Confirm that the alias no longer works.
    $this->drupalGet($edit['alias']);
    $this->assertNoText($node1->label(), 'Alias was successfully deleted.');
    $this->assertResponse(404);

    // Create a really long alias.
    $edit = [];
    $edit['source'] = '/node/' . $node1->id();
    $alias = '/' . $this->randomMachineName(128);
    $edit['alias'] = $alias;
    // The alias is shortened to 50 characters counting the ellipsis.
    $truncated_alias = substr($alias, 0, 47);
    $this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));
    $this->assertNoText($alias, 'The untruncated alias was not found.');
    // The 'truncated' alias will always be found.
    $this->assertText($truncated_alias, 'The truncated alias was found.');

    // Create third test node.
    $node3 = $this->drupalCreateNode();

    // Create absolute path alias.
    $edit = [];
    $edit['source'] = '/node/' . $node3->id();
    $node3_alias = '/' . $this->randomMachineName(8);
    $edit['alias'] = $node3_alias;
    $this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));

    // Create fourth test node.
    $node4 = $this->drupalCreateNode();

    // Create alias with trailing slash.
    $edit = [];
    $edit['source'] = '/node/' . $node4->id();
    $node4_alias = '/' . $this->randomMachineName(8);
    $edit['alias'] = $node4_alias . '/';
    $this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));

    // Confirm that the alias with trailing slash is not found.
    $this->assertNoText($edit['alias'], 'The absolute alias was not found.');
    // The alias without trailing flash is found.
    $this->assertText(trim($edit['alias'], '/'), 'The alias without trailing slash was found.');

    // Update an existing alias to point to a different source.
    $pid = $this->getPID($node4_alias);
    $edit = [];
    $edit['alias'] = $node4_alias;
    $edit['source'] = '/node/' . $node2->id();
    $this->drupalPostForm('admin/config/search/path/edit/' . $pid, $edit, t('Save'));
    $this->assertText('The alias has been saved.');
    $this->drupalGet($edit['alias']);
    $this->assertNoText($node4->label(), 'Previous alias no longer works.');
    $this->assertText($node2->label(), 'Alias works.');
    $this->assertResponse(200);

    // Update an existing alias to use a duplicate alias.
    $pid = $this->getPID($node3_alias);
    $edit = [];
    $edit['alias'] = $node4_alias;
    $edit['source'] = '/node/' . $node3->id();
    $this->drupalPostForm('admin/config/search/path/edit/' . $pid, $edit, t('Save'));
    $this->assertRaw(t('The alias %alias is already in use in this language.', ['%alias' => $edit['alias']]));

    // Create an alias without a starting slash.
    $node5 = $this->drupalCreateNode();

    $edit = [];
    $edit['source'] = 'node/' . $node5->id();
    $node5_alias = $this->randomMachineName(8);
    $edit['alias'] = $node5_alias . '/';
    $this->drupalPostForm('admin/config/search/path/add', $edit, t('Save'));

    $this->assertUrl('admin/config/search/path/add');
    $this->assertText('The source path has to start with a slash.');
    $this->assertText('The alias path has to start with a slash.');
  }

  /**
   * Tests alias functionality through the node interfaces.
   */
  public function testNodeAlias() {
    // Create test node.
    $node1 = $this->drupalCreateNode();

    // Create alias.
    $edit = [];
    $edit['path[0][alias]'] = '/' . $this->randomMachineName(8);
    $this->drupalPostForm('node/' . $node1->id() . '/edit', $edit, t('Save'));

    // Confirm that the alias works.
    $this->drupalGet($edit['path[0][alias]']);
    $this->assertText($node1->label(), 'Alias works.');
    $this->assertResponse(200);

    // Confirm the 'canonical' and 'shortlink' URLs.
    $elements = $this->xpath("//link[contains(@rel, 'canonical') and contains(@href, '" . $edit['path[0][alias]'] . "')]");
    $this->assertTrue(!empty($elements), 'Page contains canonical link URL.');
    $elements = $this->xpath("//link[contains(@rel, 'shortlink') and contains(@href, 'node/" . $node1->id() . "')]");
    $this->assertTrue(!empty($elements), 'Page contains shortlink URL.');

    $previous = $edit['path[0][alias]'];
    // Change alias to one containing "exotic" characters.
    // Lower-case letters.
    $edit['path[0][alias]'] = '/alias' .
      // "Special" ASCII characters.
      "- ._~!$'\"()*@[]?&+%#,;=:" .
      // Characters that look like a percent-escaped string.
      "%23%25%26%2B%2F%3F" .
      // Characters from various non-ASCII alphabets.
      "中國書۞";
    $connection = Database::getConnection();
    if ($connection->databaseType() != 'sqlite') {
      // When using LIKE for case-insensitivity, the SQLite driver is
      // currently unable to find the upper-case versions of non-ASCII
      // characters.
      // @todo fix this in https://www.drupal.org/node/2607432
      $edit['path[0][alias]'] .= "ïвβéø";
    }
    $this->drupalPostForm('node/' . $node1->id() . '/edit', $edit, t('Save'));

    // Confirm that the alias works.
    $this->drupalGet(Unicode::strtoupper($edit['path[0][alias]']));
    $this->assertText($node1->label(), 'Changed alias works.');
    $this->assertResponse(200);

    // Make sure that previous alias no longer works.
    $this->drupalGet($previous);
    $this->assertNoText($node1->label(), 'Previous alias no longer works.');
    $this->assertResponse(404);

    // Create second test node.
    $node2 = $this->drupalCreateNode();

    // Set alias to second test node.
    // Leave $edit['path[0][alias]'] the same.
    $this->drupalPostForm('node/' . $node2->id() . '/edit', $edit, t('Save'));

    // Confirm that the alias didn't make a duplicate.
    $this->assertText(t('The alias is already in use.'), 'Attempt to moved alias was rejected.');

    // Delete alias.
    $this->drupalPostForm('node/' . $node1->id() . '/edit', ['path[0][alias]' => ''], t('Save'));

    // Confirm that the alias no longer works.
    $this->drupalGet($edit['path[0][alias]']);
    $this->assertNoText($node1->label(), 'Alias was successfully deleted.');
    $this->assertResponse(404);

    // Create third test node.
    $node3 = $this->drupalCreateNode();

    // Set its path alias to an absolute path.
    $edit = ['path[0][alias]' => '/' . $this->randomMachineName(8)];
    $this->drupalPostForm('node/' . $node3->id() . '/edit', $edit, t('Save'));

    // Confirm that the alias was converted to a relative path.
    $this->drupalGet(trim($edit['path[0][alias]'], '/'));
    $this->assertText($node3->label(), 'Alias became relative.');
    $this->assertResponse(200);

    // Create fourth test node.
    $node4 = $this->drupalCreateNode();

    // Set its path alias to have a trailing slash.
    $edit = ['path[0][alias]' => '/' . $this->randomMachineName(8) . '/'];
    $this->drupalPostForm('node/' . $node4->id() . '/edit', $edit, t('Save'));

    // Confirm that the alias was converted to a relative path.
    $this->drupalGet(trim($edit['path[0][alias]'], '/'));
    $this->assertText($node4->label(), 'Alias trimmed trailing slash.');
    $this->assertResponse(200);

    // Create fifth test node.
    $node5 = $this->drupalCreateNode();

    // Set a path alias.
    $edit = ['path[0][alias]' => '/' . $this->randomMachineName(8)];
    $this->drupalPostForm('node/' . $node5->id() . '/edit', $edit, t('Save'));

    // Delete the node and check that the path alias is also deleted.
    $node5->delete();
    $path_alias = \Drupal::service('path.alias_storage')->lookupPathAlias('/node/' . $node5->id(), $node5->language()->getId());
    $this->assertFalse($path_alias, 'Alias was successfully deleted when the referenced node was deleted.');
  }

  /**
   * Returns the path ID.
   *
   * @param string $alias
   *   A string containing an aliased path.
   *
   * @return int
   *   Integer representing the path ID.
   */
  public function getPID($alias) {
    return db_query("SELECT pid FROM {url_alias} WHERE alias = :alias", [':alias' => $alias])->fetchField();
  }

  /**
   * Tests that duplicate aliases fail validation.
   */
  public function testDuplicateNodeAlias() {
    // Create one node with a random alias.
    $node_one = $this->drupalCreateNode();
    $edit = [];
    $edit['path[0][alias]'] = '/' . $this->randomMachineName();
    $this->drupalPostForm('node/' . $node_one->id() . '/edit', $edit, t('Save'));

    // Now create another node and try to set the same alias.
    $node_two = $this->drupalCreateNode();
    $this->drupalPostForm('node/' . $node_two->id() . '/edit', $edit, t('Save'));
    $this->assertText(t('The alias is already in use.'));
    $this->assertFieldByXPath("//input[@name='path[0][alias]' and contains(@class, 'error')]", $edit['path[0][alias]'], 'Textfield exists and has the error class.');

    // Behavior here differs with the inline_form_errors module enabled.
    // Enable the inline_form_errors module and try this again. This module
    // improves validation with a link in the error message(s) to the fields
    // which have invalid input.
    $this->assertTrue($this->container->get('module_installer')->install(['inline_form_errors'], TRUE), 'Installed inline_form_errors.');
    // Attempt to edit the second node again, as before.
    $this->drupalPostForm('node/' . $node_two->id() . '/edit', $edit, t('Preview'));
    // This error should still be present next to the field.
    $this->assertSession()->pageTextContains(t('The alias is already in use.'), 'Field error found with expected text.');
    // The validation error set for the page should include this text.
    $this->assertSession()->pageTextContains(t('1 error has been found: URL alias'), 'Form error found with expected text.');
    // The text 'URL alias' should be a link.
    $this->assertSession()->linkExists('URL alias');
    // The link should be to the ID of the URL alias field.
    $this->assertSession()->linkByHrefExists('#edit-path-0-alias');
  }

}


text:
"use strict";
var fs = require("fs");
var async = require("async");

var config = require('../config');

/**
 * Remove all files created before "olderThan" date
 */
module.exports = function cleanFolder(olderThan, cb) {
  fs.readdir(config.storageDir, function(err, files) {
    if(err) {
      return cb(err);
    }

    files = files.map(function(file) {
      return config.storageDir + "/" + file;
    });
    async.eachSeries(files, function(file, cb) {
      fs.stat(file, function(err, stat) {
        if(err) {
          return cb(err);
        }

        // Is it older than specified date? If so, remove.
        if(stat.mtime.getTime() < olderThan.getTime()) {
          fs.unlink(file, cb);
        }
        else {
          cb();
        }
      });
    }, cb);
  });

};


text:
"""
AMPLPY
------

AMPL API is an interface that allows developers to access the features of the
AMPL interpreter from within a programming language. All model generation and
solver interaction is handled directly by AMPL, which leads to great stability
and speed; the library just acts as an intermediary, and the added overhead
(in terms of memory and CPU usage) depends mostly on how much data is read
back from AMPL, the size of the model as such is irrelevant. Functions for
directly assigning data to AMPL parameters and sets are provided, which can
be used instead of the normal AMPL data reading procedures.  AMPL API has been
written with usability in mind, and it is easy to access its functionalities
from C++, Java, C#, MATLAB, R and Python.

The AMPL API can function as an add-on to any existing AMPL installation. If
you do not yet have an AMPL installation on the computer where you will be
working with the API, see our
`demo page <http://ampl.com/try-ampl/download-a-free-demo/>`_
or
`trial page <http://ampl.com/try-ampl/request-a-full-trial/>`_
to download a working version that can be installed quickly.

Documentation:
``````````````

* http://amplpy.readthedocs.io
* http://ampl.com/api/nightly/python/

Repositories:
`````````````

* GitHub Repository: https://github.com/ampl/amplpy
* PyPI Repository: https://pypi.python.org/pypi/amplpy
"""
from setuptools import setup, Extension
import platform
import sys
import os

OSTYPE = platform.system()
ARCH = platform.processor() or platform.machine()
x64 = platform.architecture()[0] == "64bit"

if ARCH == "ppc64le":
    LIBRARY = "ppc64le"
elif ARCH == "aarch64":
    LIBRARY = "aarch64"
else:  # 'AMD64', 'x86_64', 'i686', 'i386'
    LIBRARY = "amd64" if x64 else "intel32"

if OSTYPE == "Darwin":
    LIBRARY_EXT = ".dylib"
elif OSTYPE == "Linux":
    LIBRARY_EXT = ".so"
else:
    LIBRARY_EXT = ".dll"

CPP_BASE = os.path.join("amplpy", "amplpython", "cppinterface")
LIBRARY_BASE = os.path.join(CPP_BASE, "lib")
LIBRARY_DIR = os.path.join(LIBRARY_BASE, LIBRARY)

def ls_dir(base_dir):
    """List files recursively."""
    return [
        os.path.join(dirpath, fname)
        for (dirpath, dirnames, files) in os.walk(base_dir)
        for fname in files
    ]

def package_content():
    all_files = ls_dir("amplpy/")
    if "sdist" in sys.argv:
        lst = all_files
    else:
        source_only = [
            fpath for fpath in all_files if not fpath.startswith(LIBRARY_BASE)
        ]
        library_only = [
            fpath
            for fpath in all_files
            if fpath.startswith(LIBRARY_DIR)
            if fpath.endswith(LIBRARY_EXT)
        ]
        lst = source_only + library_only
    return [fpath.replace("amplpy/", "", 1) for fpath in lst]

def compile_args():
    if OSTYPE == "Windows":
        return ["/TP", "/EHa"]
    elif OSTYPE == "Linux":
        ignore_warnings = [
            "-Wno-stringop-truncation",
            "-Wno-catch-value",
            "-Wno-unused-variable",
        ]
        return ["-std=c++11"] + ignore_warnings
    elif OSTYPE == "Darwin":
        ignore_warnings = [
            "-Wno-unused-variable",
        ]
        return ["-std=c++11", "-mmacosx-version-min=10.9"] + ignore_warnings
    else:
        return []

def link_args():
    rpath = os.path.join(LIBRARY_BASE, LIBRARY)
    if OSTYPE == "Darwin":
        return ["-Wl,-rpath,@loader_path/" + rpath]
    elif OSTYPE == "Linux":
        return ["-Wl,-rpath,$ORIGIN/" + rpath]
    else:
        # Return [] instead of [''] for Windows in order to avoid:
        #  cannot open input file '.obj' in build on distutils from Python 3.9
        # https://github.com/pypa/setuptools/issues/2417
        return []

setup(
    name="amplpy",
    version="0.8.5",
    description="Python API for AMPL",
    long_description=__doc__,
    license="BSD-3",
    platforms="any",
    author="Filipe Brandão",
    author_email="fdabrandao@ampl.com",
    url="http://ampl.com/",
    download_url="https://github.com/ampl/amplpy",
    classifiers=[
        "Development Status :: 4 - Beta",
        "Environment :: Console",
        "Topic :: Software Development",
        "Topic :: Scientific/Engineering",
        "Intended Audience :: Developers",
        "Intended Audience :: Science/Research",
        "License :: OSI Approved :: BSD License",
        "Operating System :: POSIX",
        "Operating System :: Unix",
        "Operating System :: MacOS",
        "Operating System :: Microsoft :: Windows",
        "Programming Language :: C++",
        "Programming Language :: Python",
        "Programming Language :: Python :: 2",
        "Programming Language :: Python :: 2.7",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.5",
        "Programming Language :: Python :: 3.6",
        "Programming Language :: Python :: 3.7",
        "Programming Language :: Python :: 3.8",
        "Programming Language :: Python :: 3.9",
        "Programming Language :: Python :: Implementation :: CPython",
    ],
    packages=["amplpy"],
    ext_modules=[
        Extension(
            "_amplpython",
            libraries=["ampl"],
            library_dirs=[os.path.join(LIBRARY_BASE, LIBRARY)],
            include_dirs=[os.path.join(CPP_BASE, "include")],
            extra_compile_args=compile_args(),
            extra_link_args=link_args(),
            sources=[os.path.join(CPP_BASE, "amplpythonPYTHON_wrap.cxx")],
        )
    ],
    package_data={"": package_content()},
    install_requires=["future >= 0.15.0", "ampltools"],
)


text:
${APP_HOME}/util/truncate_table.sh ${DBNAME} hgvs_hpo

cat ${APP_HOME}/onto/data/hgvs_to_hpo.tsv | deepdive sql """COPY hgvs_hpo FROM STDIN DELIMITER '	' """

${APP_HOME}/util/uniq_table.sh ${DBNAME} hgvs_hpo


text:
namespace Example.Data
{
    using System;
    using System.Collections.Generic;
    using System.Data.Entity;

    using Example.Common.Repository;
    using Example.Models;

    public class ExampleData
    {
        private DbContext context;
        private IDictionary<Type, object> repositories;

        public ExampleData()
            : this(new ExampleDbContext())
        {
        }

        public ExampleData(DbContext context)
        {
            this.context = context;
            this.repositories = new Dictionary<Type, object>();
        }

        public IRepository<Person> People
        {
            get { return this.GetRepository<Person>(); }
        }

        public IRepository<Kid> Kids
        {
            get { return this.GetRepository<Kid>(); }
        }

        public IRepository<Store> Stores
        {
            get { return this.GetRepository<Store>(); }
        }

        public int SaveChanges()
        {
            return this.context.SaveChanges();
        }

        private IRepository<T> GetRepository<T>() where T : class
        {
            var typeOfRepository = typeof(T);
            if (!this.repositories.ContainsKey(typeOfRepository))
            {
                var newRepository = Activator.CreateInstance(typeof(GenericRepository<T>), this.context);
                this.repositories.Add(typeOfRepository, newRepository);
            }

            return (IRepository<T>)this.repositories[typeOfRepository];
        }
    }
}


text:
package xxx;

class AccessingProtectedMembersNotFromSubclass {
  void foo() {
    ProtectedMembers aClass = new ProtectedMembers();
    aClass.<warning descr="Method ProtectedMembers.method() is protected and used not through a subclass here, but declared in a different module 'dep'">method</warning>();
    ProtectedMembers.<warning descr="Method ProtectedMembers.staticMethod() is protected and used not through a subclass here, but declared in a different module 'dep'">staticMethod</warning>();
  }
}

class AccessingProtectedMembersFromSubclass extends ProtectedMembers {
  void foo() {
    method();
    staticMethod();
    ProtectedMembers.staticMethod();

    ProtectedMembers aClass = new ProtectedMembers();
    aClass.<warning descr="Method ProtectedMembers.method() is protected and used not through a subclass here, but declared in a different module 'dep'">method</warning>();
    AccessingProtectedMembersFromSubclass myInstance = new AccessingProtectedMembersFromSubclass();
    myInstance.method();

    ProtectedMembers.StaticInner inner1;
    StaticInner inner2;
  }

  public static class StaticInnerImpl1 extends ProtectedMembers.StaticInner {
  }

  public static class StaticInnerImpl2 extends StaticInner {
  }
}


text:
NS_IDMLIB_QC_BEGIN

class CnQueryCorrection
{

    typedef idmlib::util::MTrie<Ngram , uint32_t, double> TrieType;
    typedef boost::tuple<uint32_t, uint32_t, izenelib::util::UString> QueryLogType;
    typedef std::pair<uint32_t, izenelib::util::UString> PropertyLabelType;
    struct TransProbType
    {
        boost::unordered_map<Unigram, double> u_trans_prob_;
        boost::unordered_map<Bigram, double> b_trans_prob_;
        boost::unordered_map<Trigram, double> t_trans_prob_;
        void clear()
        {
            u_trans_prob_.clear();
            b_trans_prob_.clear();
            t_trans_prob_.clear();
        }
        bool empty() const
        {
            return u_trans_prob_.empty() && b_trans_prob_.empty() && t_trans_prob_.empty();
        }
    };

public:
    explicit CnQueryCorrection(const std::string& collection_dir = "");

    bool Load();

    bool LoadFromDb(const std::list<QueryLogType>& queryList);

    bool ForceReload();

    bool Update(const std::list<QueryLogType>& queryList, const std::list<PropertyLabelType>& labelList, bool forceMode = false);

    bool GetResult(const izenelib::util::UString& input, std::vector<izenelib::util::UString>& output);

    void GetPinyin(const izenelib::util::UString& cn_chars, std::vector<std::string>& result_list);

    void GetPinyin2(const izenelib::util::UString& cn_chars2, std::vector<std::string>& result_list);
    void GetRelativeList(const izenelib::util::UString& hanzi,std::vector<std::pair<izenelib::util::UString,uint32_t> >& ResultList);

    void Segment(const std::string& pinyin_str, std::vector<PinyinSegmentResult>& result_list)
    {
        pinyin_.Segment(pinyin_str, result_list);
    }

    void SegmentRaw(const std::string& pinyin_str, std::vector<std::string>& result_list)
    {
        pinyin_.SegmentRaw(pinyin_str, result_list);
    }

    void FuzzySegmentRaw(const std::string& pinyin_str, std::vector<std::pair<double, std::string> >& result_list)
    {
        pinyin_.FuzzySegmentRaw(pinyin_str, result_list);
    }

    void FuzzySegmentRaw(const std::string& pinyin_str, std::vector<std::string>& result_list)
    {
        pinyin_.FuzzySegmentRaw(pinyin_str, result_list);
    }

private:
    void LoadRawTextTransProb_(TransProbType& trans_prob, const std::string& file);

    void LoadQueryList_(TransProbType& trans_prob, const std::list<QueryLogType>& queryList);

    void FlushRawTextTransProb_(const std::string& file, const TransProbType& trans_prob);

    double TransProb_(const izenelib::util::UCS2Char& from, const izenelib::util::UCS2Char& to);

    void UpdateItem_(TransProbType& trans_prob, const uint32_t df, const izenelib::util::UString& text);

    //trigram version only
    double TransProbT_(const izenelib::util::UString& from, const izenelib::util::UCS2Char& to);

    int GetInputType_(const izenelib::util::UString& input);

    bool GetResultWithScore_(const izenelib::util::UString& input, int type, std::vector<CandidateResult>& output);

    void GetResultByPinyin_(const std::string& pinyin, double pinyin_score, std::vector<CandidateResult>& output);

    //trigram LM
    void GetResultByPinyinT_(const std::string& pinyin, double pinyin_score, std::vector<CandidateResult>& output);

    void GetResultByPinyinTRecur_(const std::string& pinyin, double base_score, const std::pair<double, izenelib::util::UString>& mid_result, std::vector<CandidateResult>& output);

    double GetScore_(const izenelib::util::UString& text, double ori_score, double pinyin_score);

    bool IsCandidate_(const izenelib::util::UString& text, double ori_score, double pinyin_score, double& score);

    bool IsCandidateResult_(const izenelib::util::UString& text, double ori_score, double pinyin_score, double& score);

public:
    static std::string res_dir_;

private:
    static FuzzyPinyinSegmentor pinyin_;

    static TransProbType global_trans_prob_;
    TransProbType collection_trans_prob_;

    std::string collection_dir_;
    double threshold_;
    double mid_threshold_;
    uint16_t max_pinyin_term_;

    bool fromDb_;

    boost::mutex mutex_;
};

NS_IDMLIB_QC_END

#endif


text:
import {
  attempt,
  cond,
  flow,
  identity,
  isError,
  matchesProperty,
  overSome,
  partial,
  stubTrue
} from 'lodash';

import * as Babel from '@babel/standalone';
import presetEnv from '@babel/preset-env';
import presetReact from '@babel/preset-react';
import protect from 'loop-protect';

import * as vinyl from '../utils/polyvinyl.js';

const protectTimeout = 100;
Babel.registerPlugin('loopProtection', protect(protectTimeout));

const babelOptions = {
  plugins: ['loopProtection'],
  presets: [presetEnv, presetReact]
};
const babelTransformCode = code => Babel.transform(code, babelOptions).code;

// const sourceReg =
//  /(<!-- fcc-start-source -->)([\s\S]*?)(?=<!-- fcc-end-source -->)/g;
const NBSPReg = new RegExp(String.fromCharCode(160), 'g');

const isJS = matchesProperty('ext', 'js');
const testHTML = matchesProperty('ext', 'html');
const testHTMLJS = overSome(isJS, testHTML);
export const testJS$JSX = overSome(isJS, matchesProperty('ext', 'jsx'));

export const replaceNBSP = cond([
  [
    testHTMLJS,
    partial(vinyl.transformContents, contents =>
      contents.replace(NBSPReg, ' ')
    )
  ],
  [stubTrue, identity]
]);

function tryTransform(wrap = identity) {
  return function transformWrappedPoly(source) {
    const result = attempt(wrap, source);
    if (isError(result)) {
      console.error(result);
      // note(Bouncey): Error thrown here to collapse the build pipeline
      // At the minute, it will not bubble up
      // We collapse the pipeline so the app doesn't fall over trying
      // parse bad code (syntax/type errors etc...)
      throw result;
    }
    return result;
  };
}

export const babelTransformer = cond([
  [
    testJS$JSX,
    flow(
      partial(
        vinyl.transformHeadTailAndContents,
        tryTransform(babelTransformCode)
      ),
      partial(vinyl.setExt, 'js')
    )
  ],
  [stubTrue, identity]
]);

const htmlSassTransformCode = file => {
  let doc = document.implementation.createHTMLDocument();
  doc.body.innerHTML = file.contents;
  let styleTags = [].filter.call(
    doc.querySelectorAll('style'),
    style => style.type === 'text/sass'
  );
  if (styleTags.length === 0 || typeof Sass === 'undefined') {
    return vinyl.transformContents(() => doc.body.innerHTML, file);
  }
  return Promise.all(styleTags.map(style => (
    new Promise(resolve => {
      window.Sass.compile(style.innerHTML, function(result) {
        style.type = 'text/css';
        style.innerHTML = result.text;
        resolve();
      });
    })
  ))).then(() => (
    vinyl.transformContents(() => doc.body.innerHTML, file)
  ));
};

export const htmlSassTransformer = cond([
  [testHTML, htmlSassTransformCode],
  [stubTrue, identity]
]);

export const transformers = [
  replaceNBSP,
  babelTransformer,
  htmlSassTransformer
];


text:
% Script for testing the writeC3D.m function
%

% Kjartan Halvorsen
% 2004-08-19

olddir = pwd;
[pth,name] = fileparts(mfilename('fullpath'));
cd(pth);

filename_in = '..\kinematik\jc\4ms0001.c3d';
filename_out = '..\kinematik\jc\4ms0001_out.c3d';

[Markers,VideoFrameRate,AnalogSignals,AnalogFrameRate,Event, ...
 ParameterGroup,CameraInfo,ResidualError] = readC3D(filename_in);

writeC3D(Markers,VideoFrameRate, ...
	 AnalogSignals, AnalogFrameRate, ...
	 Event,ParameterGroup,CameraInfo, ...
	 ResidualError, filename_out)

%eval(['!diff --binary ', filename_in, ' ', filename_out])

[Markers2,VideoFrameRate2,AnalogSignals2,AnalogFrameRate2,Event2, ...
 ParameterGroup2,CameraInfo2,ResidualError2] = ...
    readC3D(filename_out);

cd(olddir);