{
		Delay = AdjustDelayForDifficulty(DateTime.Minutes(5)),
		AttackValuePerSecond = AdjustAttackValuesForDifficulty({ Min = 20, Max = 40 }),
		FollowLeader = true,
		ProducerActors = { Infantry = { GDISouthBarracks }, Vehicles = { GDISouthFactory } },
		Compositions = AdjustCompositionsForDifficulty(UnitCompositions.GDI),
		AttackPaths = GDIAttackPaths,
	},
	AlliedAir = {
		Delay = AdjustAirDelayForDifficulty(DateTime.Minutes(13)),
		AttackValuePerSecond = AdjustAttackValuesForDifficulty({ Min = 12, Max = 12 }),
		Compositions = AirCompositions.Allied,
	},
	GDIAir = {
		Delay = AdjustAirDelayForDifficulty(DateTime.Minutes(13)),
		AttackValuePerSecond = AdjustAttackValuesForDifficulty({ Min = 12, Max = 12 }),
		ActiveCondition = function()
			return (not GDIHelipad1.IsDead and GDIHelipad1.Owner == GDI) or (not GDIHelipad2.IsDead and GDIHelipad2.Owner == GDI) or (not GDIHelipad3.IsDead and GDIHelipad3.Owner == GDI)
		end,
		Compositions = AirCompositions.GDI,
	}
}

WorldLoaded = function()
	Scrin = Player.GetPlayer("Scrin")
	Greece = Player.GetPlayer("Greece")
	GDI = Player.GetPlayer("GDI")
	MissionPlayers = { Scrin }

	Camera.Position = PlayerStart.CenterPosition

	InitObjectives(Scrin)
	AdjustPlayerStartingCashForDifficulty()
	InitGreece()
	InitGDI()

	ObjectiveDestroyAdvComms = Scrin.AddObjective("Destroy GDI Advanced Communications Center.")
	ObjectiveDestroyWeatherControl = Scrin.AddObjective("Destroy Allied Weather Control Device.")

	Trigger.OnKilledOrCaptured(AdvancedComms, function()
		Scrin.MarkCompletedObjective(ObjectiveDestroyAdvComms)
	end)

	Trigger.OnKilledOrCaptured(WeatherControl, function()
		Scrin.MarkCompletedObjective(ObjectiveDestroyWeatherControl)
	end)

	Utils.Do(PowerGrids, function(grid)
		Trigger.OnAllKilledOrCaptured(grid.Providers, function()
			Utils.Do(grid.Consumers, function(consumer)
				if not consumer.IsDead then
					consumer.GrantCondition("disabled")
				end
			end)
		end)
	end)

	Utils.Do(ReinforcementGroups, function(group)
		Trigger.OnAllKilledOrCaptured(group.Targets, function()
			Trigger.AfterDelay(DateTime.Seconds(2), function()
				local wormhole = Actor.Create("wormhole", true, { Owner = Scrin, Location = group.Waypoint.Location })

				Trigger.AfterDelay(DateTime.Seconds(2), function()
					Media.PlaySpeechNotification(Scrin, "ReinforcementsArrived")
					Notification("Reinforcements have arrived.")
					Beacon.New(Scrin, group.Waypoint.CenterPosition)

					local reinforcements = Reinforcements.Reinforce(Scrin, group.Units, { group.Waypoint.Location }, 10, function(a)
						a.Scatter()
					end)
				end)

				Trigger.AfterDelay(DateTime.Seconds(10), function()
					wormhole.Kill()
				end)
			end)
		end)
	end)
end

Tick = function()
	OncePerSecondChecks()
	OncePerFiveSecondChecks()
	OncePerThirtySecondChecks()
end

OncePerSecondChe


f2ede.checksum"
			Expect(f.ValuesGet(key).String()).To(Equal("XXX_XXX_XXX"))
		})

		It("Values contain node group name from MachineDeployment", func() {
			key := valuesRoot + ".dev2-worker-391f2ede.nodeGroup"
			Expect(f.ValuesGet(key).String()).To(Equal("worker"))
		})
	})

	Context("Single MachineDeployment but no node groups", func() {
		f := HookExecutionConfigInit(`{"nodeManager":{"internal":{"cloudProvider":{"type":"openstack"}}}}`, `{}`)
		f.RegisterCRD("machine.sapcloud.io", "v1alpha1", "MachineDeployment", true)

		BeforeEach(func() {
			f.ValuesSetFromYaml("nodeManager.internal.nodeGroups", []byte(`[]`))
			f.KubeStateSet(`
---
apiVersion: machine.sapcloud.io/v1alpha1
kind: MachineDeployment
metadata:
  annotations:
    zone: nova
  labels:
    node-group: worker
  name: dev2-worker-391f2ede
  namespace: d8-cloud-instance-manager
spec:
  minReadySeconds: 300
  replicas: 3
  selector:
    matchLabels:
      instance-group: worker-nova
  template:
    metadata:
      creationTimestamp: null
      labels:
        instance-group: worker-nova
      annotations:
        checksum/machine-class: abracadabra
    spec:
      class:
        kind: OpenStackMachineClass
        name: worker-391f2ede
      nodeTemplate:
        metadata:
          creationTimestamp: null
          labels:
            node-role.kubernetes.io/worker: ""
            node.deckhouse.io/group: worker
            node.deckhouse.io/type: CloudEphemeral
        spec: {}
`)
			f.BindingContexts.Set(f.GenerateBeforeHelmContext())
			f.RunHook()
		})

		It("Does not fail", func() {
			Expect(f).To(ExecuteSuccessfully())
		})

		It("Cleans machineDeployment value", func() {
			Expect(f.ValuesGet(valuesRoot).String()).To(Equal("{}"))
		})
	})
})
// Copyright 2022 Flant JSC
//
// 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.

package hooks

import (
	"context"
	"fmt"

	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"
	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/apimachinery/pkg/runtime/schema"
	"sigs.k8s.io/yaml"

	. "github.com/deckhouse/deckhouse/testing/hooks"
)

var _ = Describe("Global hooks :: migrate :: add_control_plane_role_to_master_ng_test ::", func() {
	const initValues = `
global:
  clusterConfiguration:
    apiVersion: deckhouse.io/v1alpha1
    cloud:
      prefix: sandbox
      provider: OpenStack
    clusterDomain: cluster.local
    clusterType: Cloud
    defaultCRI: Containerd
    kind: ClusterConfiguration
    kubernetesVersion: "1.29"
    podSubnetCIDR: 10.111.0.0/16
    podSubnetNodeCIDRPrefix: "24"
    serviceSubnetCIDR: 10.222.0.0/16
`
	f := HookExecutionConfigInit(initValues, `{}`)

	var nodeGroup


,$A
	DC.B	' O -   416   *  608      256    8 * 8     52     38    TV 50 HZ       252928',$D,$A
	DC.B	' P -   416   *  608       TC    8 * 8     52     38    TV 50 HZ       505856',$D,$A,$D,$A,$D,$A,0
	EVEN
TAB_PAL_320
	DC.L	V384_304_2_TV_50
	DC.L	V416_304_4_TV_50
	DC.L	V416_304_16_TV_50
	DC.L	V416_304_256_TV_50
	DC.L	V416_304_TC_TV_50
	DC.L	V384_608_2_TV_50
	DC.L	V416_608_4_TV_50
	DC.L	V416_608_16_TV_50
	DC.L	V416_608_256_TV_50
	DC.L	V416_608_TC_TV_50
	DC.L	-1
V384_304_2_TV_50
	DC.L	384*304/8
	DC.W	$20
	DC.W	384-1,304-1,384/8,384,304,384*8/8,48-1,38-1
	DC.W	$F,$F,$271,$271,$26B,$271,$FE,$D7,$B1,$31,$28E,$2F,24,0
V416_304_4_TV_50
	DC.L	416*304/4
	DC.W	$21
	DC.W	416-1,304-1,416/4,416,304,416*8/4,52-1,38-1
	DC.W	$F,$F,$271,$271,$26B,$271,$3E,$31,$2F,$6,$22D,$27,52,0
V416_304_16_TV_50
	DC.L	416*304/2
	DC.W	$A2
	DC.W	416-1,304-1,416/2,416,304,416*8/2,52-1,38-1
	DC.W	$F,$F,$271,$271,$26B,$271,$3E,$34,$31,$8,$233,$28,104,0
V416_304_256_TV_50
	DC.L	416*304
	DC.W	$23
	DC.W	416-1,304-1,416,416,304,416*8,52-1,38-1
	DC.W	$F,$F,$271,$271,$26B,$271,$FE,$E3,$D3,$33,$0,$C1,208,0
V416_304_TC_TV_50
	DC.L	416*304*2
	DC.W	$24
	DC.W	416-1,304-1,416*2,416,304,416*8*2,52-1,38-1
	DC.W	$F,$F,$271,$271,$26B,$271,$FE,$D8,$C8,$25,$5,$C8,416,0
V384_608_2_TV_50
	DC.L	384*608/8
	DC.W	$120
	DC.W	384-1,608-1,384/8,384,608,384*16/8,48-1,38-1
	DC.W	$11,$F,$26B,$270,$26B,$270,$FE,$D7,$B1,$31,$28E,$2F,24,2
V416_608_4_TV_50
	DC.L	416*608/4
	DC.W	$121
	DC.W	416-1,608-1,416/4,416,608,416*16/4,52-1,38-1
	DC.W	$14,$11,$271,$271,$26E,$270,$3E,$31,$2F,$6,$22D,$27,52,2
V416_608_16_TV_50
	DC.L	416*608/2
	DC.W	$122
	DC.W	416-1,608-1,416/2,416,608,416*16/2,52-1,38-1


 2.02 6.61 3.05.71.33 1.55.26 2.19-.19Z' style='fill:%23aecace;stroke-width:0'/></svg>"); }
.fsico-fill-cake::before {  background-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' data-name='fill_cake' viewBox='0 0 128 128'><path d='M16.36 32.3c2.86-3.38 5.46-6.83 8.45-9.87 2.7-2.75 6.21-2.53 9.15-.03 1.74 1.48 3.54 2.91 5.83 4.79 7.32-.72 15.75-2.21 24.43-.78 8.41-1.51 16.91.2 25.41.8 1.33-1.19 2.82-2.55 4.33-3.9 3.14-2.8 6.84-2.92 9.77.11 2.69 2.78 5.03 5.9 7.38 8.71 3.05 1.56 6.25 2.86 9.07 4.73 4.21 2.79 6.51 6.77 6.21 12.06-.16 2.88-.12 5.78 0 8.66.14 3.75-.92 6.86-3.91 8.75 1.1 7.54 1.02 14.9.24 22.19-.46 4.31-3.87 7.03-7.41 9.23-5.33 3.32-11.25 5.14-17.34 6.35-23.87 4.75-47.72 4.72-71.46-.87-6.04-1.42-11.87-3.51-16.72-7.66-3.3-2.82-4.99-6.32-4.86-10.72.1-3.23-.06-6.46.05-9.68.06-1.82.42-3.64.72-6.08-5.72-6.57-3.88-15.16-3.75-23.36.07-3.97 2.85-6.88 6.07-8.96 2.74-1.77 5.75-3.1 8.34-4.47' style='fill:%234a3726;stroke-width:0'/><path d='M16.59 39.36c4.86 6.61 14.88 8.47 21.59 4.23 3.29-2.07 4.24-4.48 3.8-10.25 5.84-.41 11.68-.83 18.09-1.28-1.86 2.08-3.44 3.69-4.81 5.46-1.13 1.46-2.21 3.03-2.97 4.71-2.85 6.28-.02 12.03 6.8 13.19 3.27.56 6.84.67 10.05-.05 7.45-1.66 9.96-7.85 6.02-14.39-1.81-3.01-4.22-5.66-6.64-8.85 5.92.39 11.78.78 17.5 1.15.2.45.34.6.32.74-1.05 7.12 1.64 11.05 8.8 12.02 3.04.41 6.28.14 9.32-.42 3.31-.61 5.75-2.77 6.98-6 6.29 1.93 8.44 4.77 8.44 11.02 0 2.55.15 5.11-.08 7.64-.09.95-.93 2.43-1.68 2.6-2.75.62-4.38 2.39-5.88 4.51-.64.89-1.29 1.8-2.09 2.55-2.16 2.03-3.88 2.18-6.47.78-.86-.46-1.76-.83-2.


or-this⑧②">this.[[controller]],
  <var>view</var>).

4.9. Abstract operations

4.9.1. Working with readable streams

The following abstract operations operate on ReadableStream instances at a higher level.

 <dfn class="dfn-paneled" data-dfn-type="abstract-op" data-export data-lt="AcquireReadableStreamBYOBReader" id="acquire-readable-stream-byob-reader">AcquireReadableStreamBYOBReader(<var>stream</var>)</dfn> performs
 the following steps:

Let <var>reader</var> be a new ReadableStreamBYOBReader.

Perform ? SetUpReadableStreamBYOBReader(<var>reader</var>, <var>stream</var>).

Return <var>reader</var>.

 <dfn class="dfn-paneled" data-dfn-type="abstract-op" data-export data-lt="AcquireReadableStreamDefaultReader" id="acquire-readable-stream-reader">AcquireReadableStreamDefaultReader(<var>stream</var>)</dfn> performs the
 following steps:

Let <var>reader</var> be a new ReadableStreamDefaultReader.

Perform ? SetUpReadableStreamDefaultReader(<var>reader</var>, <var>stream</var>).

     <li data


luationScore) {
    *score -= piece.to_psqt(side, square);
}

#[inline(always)]
pub fn psqt_add_piece(piece: PieceType, square: usize, side: usize, score: &mut EvaluationScore) {
    *score += piece.to_psqt(side, square);
}
#![allow(missing_docs)]

#[warn(missing_docs)]
pub mod builder;

use crate::prelude::*;

use crate::control::callback::CallbackFn;
use crate::data::dirty;
use crate::data::dirty::traits::*;
use crate::debug::stats::Stats;
use crate::display::symbol::material::Material;
use crate::display::symbol::material::VarDecl;
use crate::display::symbol::shader;
use crate::display::symbol::ScopeType;
use crate::system::gpu::shader::Context;
use crate::system::gpu::shader::*;

use web_sys::WebGlProgram;

use enso_shapely::shared;

// ==================
// === VarBinding ===
// ==================

#[derive(Clone, Debug)]
pub struct VarBinding {
    pub name:  String,
    pub decl:  VarDecl,
    pub scope: Option<ScopeType>,
}

impl VarBinding {
    pub fn new<Name: Str>(name: Name, decl: VarDecl, scope: Option<ScopeType>) -> Self {
        let name = name.into();
        Self { name, decl, scope }
    }
}

// ==============
// === Shader ===
// ==============

pub type Dirty = dirty::SharedBool<Box<dyn Fn()>>;

shared! { Shader
/// Shader keeps track of a shader and related WebGL Program.
#[derive(Debug)]
pub struct ShaderData {
    context           : Option<Context>,
    geometry_material : Material,
    surface_material  : Material,
    program           : Option<WebGlProgram>,
    dirty             : Dirty,
    logger            : Logger,
    stats             : Stats,
}

impl {
    /// Set the WebGL context. See the main architecture docs of this library to learn more.
    pub fn set_context(&mut self, context:Option<&Context>) {
        if context.is_some() {
            self.dirty.set();
        }
        self.context = context.cloned();
    }

    pub fn program(&self) -> Option<WebGlProgram> {
        self.program.clone()
    }

    pub fn set_geometry_material<M:Into<Material>>(&mut self, material:M) {
        self.geometry_material = material.into();
        self.dirty.set();
    }

    pub fn set_material<M:Into<Material>>(&mut self, material:M) {
        self.surface_material = material.into();
        self.dirty.set();
    }

    /// Creates new shader with attached callback.
    pub fn new<OnMut:CallbackFn>(logger:Logger, stats:&Stats, on_mut:OnMut) -> Self {
        stats.inc_shader_count();
        let context           = default();
        let geometry_material = default();
        let surface_material  = default();
        let program           = default();
        let dirty_logger      = Logger::new_sub(&logger,"dirty");
        let dirty             = Dirty::new(dirty_logger,Box::new(on_mut));
        let stats             = stats.clone_ref();
        Self {context,geometry_material,surface_material,program,dirty,logger,stats}
    }

    /// Check dirty flags and update the state accordingly.
    pub fn update(&mut self, bindings:&[VarBinding]) {
        debug!(self.logger, "Updating.", || {
            if let Some(context) = &self.context {
                if self.dirty.check_all() {

                    self.


certain relationship to the document in question also includes different language versions of the same document, or different formats. You can do both by providing a link with a rel attribute value of alternate, indicating an alternative version.

Translations

Translations are a great candidate for document interlinking. It might for example be that one language version of a document is very successful and visitors who don’t speak that language would love to have that information available to them. By linking from the original to the alternative language version you’ll make it easier for readers of the alternative to understand and promote the content and possibly make the other language version as successful. The following example shows how you can define the other language versions (languageexample.html); note the syntax—it’s pretty intuitive:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 1//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title>Multiple Languages example</title>
  <link rel="contents" title="table of contents" href="toc.html">
  <link rel="next" title="next: chapter one" href="chapter1.html">
  <link rel="alternate" title="The course in Dutch" type="text/html" hreflang="nl" href="../nl/start.html">
  <link rel="alternate" title="The course in German" type="text/html" hreflang="de" href="../de/start.html">
</head>
<body>
  <h1>Course example</h1>
  <p>This would be the cover page of an article series or course</p>
  <ul>
    <li><a href="chapter1.html" rel="next">Let's start with Chapter One</a></li>
  </ul>
  <ul>
    <li>Other languages:
      <uL>
        <li><a href="../de/start.html" lang="de" hreflang="de">Deutsch</a></li>
        <li><a href="../de/start.html" lang="nl" hreflang="nl">Nederlands</a></li>
      </ul>
    </li>
  </ul>
</body>
</html>

There is much more to explore with offering an international version of a web site than this, and we are hoping to provide a dedicated tutorial on this subject later on in the course. You might have noticed the attributes hreflang and lang that you might not have seen before. The hreflang attribute on links and anchors defines the human language of the linked document and the lang attribute defines the language of the text inside the element that has this attribute. This is very important for accessibility as text-to-speech software needs to switch the pronounciation voice from language to language.

Different langu


printf("exiting before disk write.\n");
		goto out;
	}

	if (check_mtab_entry(mop.mo_device, mop.mo_device, NULL, NULL)) {
		fprintf(stderr, "%s: is currently mounted, exiting without any change\n",
			mop.mo_device);
		return EEXIST;
	}

	/* Create the loopback file */
	if (mop.mo_flags & MO_IS_LOOP) {
		ret = access(mop.mo_device, F_OK);
		if (ret != 0)
			ret = errno;

#ifndef TUNEFS
		/* Reformat the loopback file */
		if (ret != 0 || (mop.mo_flags & MO_FORCEFORMAT)) {
			ret = loop_format(&mop);
			if (ret != 0)
				goto out;
		}
#endif
		if (ret == 0)
			ret = loop_setup(&mop);
		if (ret != 0) {
			fatal();
			fprintf(stderr, "Loop device setup for %s failed: %s\n",
				mop.mo_device, strerror(ret));
			goto out;
		}
	}

#ifndef TUNEFS
	/* Check whether the disk has already been formatted by mkfs.lustre */
	if (!(mop.mo_flags & MO_FORCEFORMAT)) {
		ret = osd_is_lustre(mop.mo_device, &mount_type);
		if (ret != 0) {
			fatal();
			fprintf(stderr,
				"Device %s was previously formatted for lustre. Use --reformat to reformat it, or tunefs.lustre to modify.\n",
				mop.mo_device);
			goto out;
		}
	}

	/* Format the backing filesystem */
	ret = osd_make_lustre(&mop);
	if (ret != 0) {
		fatal();
		fprintf(stderr, "mkfs failed %d\n", ret);
		goto out;
	}
#else /* TUNEFS */
	/* update svname with '-' */
	if (replace) {
		struct mount_opts opts;

		opts.mo_ldd = *ldd;
		opts.mo_source = mop.mo_device;
		(void)osd_label_lustre(&opts);
	}

	/* update svname with '=' to refresh config */
	if (ldd->ldd_flags & LDD_F_WRITECONF) {
		struct mount_opts opts;

		opts.mo_ldd = *ldd;
		opts.mo_source = mop.mo_device;
		(void)osd_label_lustre(&opts);
	}

	/* update svname with '+' to force remote logs */
	if (ldd->ldd_flags & LDD_F_NO_LOCAL_LOGS) {
		struct mount_opts opts;

		opts.mo_ldd = *ldd;
		opts.mo_source = mop.mo_device;
		(void) osd_label_lustre(&opts);
	}

	/* Rename filesystem fsname */
	if (mop.mo_flags & MO_RENAME) {
		ret = osd_rename_fsname(&mop, old_fsname);
		if (ret)
			goto out;
	}

	/* Enable quota accounting */
	if (mop.mo_flags & MO_QUOTA) {
		ret = osd_enable_quota(&mop);
		goto out;
	}

write:

#endif /* !TUNEFS */

	/* Write our config files */
	ret = osd_write_ldd(&mop);
	if (ret != 0) {
		fatal();
		fprintf(stderr, "failed to write local files\n");
		goto out;
	}
out:
	osd_fini();
	ret2 = loop_cleanup(&mop);
	if (ret == 0)
		ret = ret2;

	/* Fix any crazy return values from system() */
	if (ret != 0 && ((ret & 255) == 0))
		return 1;

	if (ret != 0)
		verrprint("%s: exiting with %d (%s)\n",
			  progname, ret, strerror(ret));
	return ret;
}


#import "_MZEBackdropView.h"
#import <MPUFoundation/MPULayoutInterpolator.h>

typedef NS_ENUM(NSInteger, MZEMaterialStyle)
{
	MZEMaterialStyleNone,
    MZEMaterialStyleLight,
    MZEMaterialStyleDark,
    MZEMaterialStyleNormal
};

@interface MZEMaterialView : UIView {
	CGFloat _compactHeight;
	CGFloat _expandedHeight;
	CGFloat _compactCornerRadius;
	CGFloat _expandedCornerRadius;
	MPULayoutInterpolator *_cornerRadiusInterpolator;
}
@property (nonatomic, retain) _MZEBackdropView *backdropView;
@property (nonatomic, assign) CGFloat brightness;
@property (nonatomic, assign) CGFloat saturation;
@property (nonatomic, assign) CGFloat luminanceAlpha;
@property (nonatomic, retain) UIColor *colorMatrixColor;
@property (nonatomic, retain) UIColor *colorAddColor;
@property (nonatomic, retain) NSValue *forcedColorMatrix;
+ (instancetype)materialViewWithStyle:(MZEMaterialStyle)style;
- (id)initWithStyleDict:(NSDictionary *)styleDictionary;
//- (void)updateCornerRadius;
- (void)setCompactCornerRadius:(CGFloat)compactCornerRadius expandedCornerRadius:(CGFloat)expandedCornerRadius compactSize:(CGSize)compactSize expandedSize:(CGSize)expandedSize;
// - (void)_setCornerRadius:(CGFloat)cornerRadius;
@end


 编码
         * @param data
         */
        static encode(data) {
            BISON.enc = '';
            BISON._encode(data, true);
            return BISON.enc;
        }

        /**
         * 解码
         * @param data
         */
        static decode(data) {
            var p = 0, l = data.length;
            var stack = [], dec = undefined, f = null, t = 0, i = -1;
            var dict = false, set = false;
            var key = '', e = null, r = 0;
            while (p < l) {
                t = data.charCodeAt(p++);
                f = stack[i];

                // 密钥
                // Keys
                if (dict && set && t > 16) {
                    key = data.substring(p, p + t - 17);
                    p += t - 17;
                    set = false;

                // Array / Objects
                } else if (t === 8 || t === 10) {
                    e = t === 8 ? new Array() : new Object();
                    set = dict = t === 10;
                    dec !== undefined ? f instanceof Array ? f.push(e)
                                                           : f[key] = e : dec = e;

                    stack.push(e);
                    i++;

                } else if (t === 11 || t === 9) {
                    stack.pop();
                    set = dict = !(stack[--i] instanceof Array);

                // Fixed
                } else if (t > 16) {
                    t = t - 17;
                    t = t > 115 ? (0 - t + 116) : t + 1;
                    f instanceof Array ? f.push(t) : f[key] = t;
                    set = true;

                } else if (t > 0 && t < 5) {
                    if (((t - 1) / 2 | 0) === 0) {
                        e = data.charCodeAt(p);
                        p++;

                    } else {
                        e = (data.charCodeAt(p) << 16) + data.charCodeAt(p + 1);
                        p += 2;
                    }
                    e = t % 2 ? e + 1 : 0 - e;
                    f instanceof Array ? f.push(e) : f[key] = e;
                    set = true;

                // 浮点
                // Floats
                } else if (t > 12 && t < 17) {
                    if (((t - 13) / 2 | 0) === 0) {
                        r = data.charCodeAt(p);
                        if (r > 127) {
                            e = 0;
                            r -= 128;
                            p++;

                        } else {
                            e = data.charCodeAt(p + 1);
                            p += 2;
                        }

                    } else {
                        e = (data.charCodeAt(p) << 16) + data.charCodeAt(p + 1);
                        r = data.charCodeAt(p + 2);
                        p += 3;
                    }

                    e = t % 2 ? e + r * 0.01 : 0 - (e + r * 0.01);
                    f instanceof Array ? f.push(e) : f[key] = e;
                    set = true;

                // Booleans
                } else if (t > 4 && t < 7) {
                    f instanceof Array ? f.push(t === 5) : f[key] = t === 5;
                    set = true;

                // Null
                } else if (t === 0) {
                    f instanceof Array ? f.push(null) : f[key] = null;
                    set = true;

                // Strings
                } else if (t === 7) {
                    e = 0;
                    while (data.charCodeAt(p) === 65535) {


 f, de = d * e, df = d * f;

				te[ 0 ] = ce - df * b;
				te[ 4 ] = - a * f;
				te[ 8 ] = de + cf * b;

				te[ 1 ] = cf + de * b;
				te[ 5 ] = a * e;
				te[ 9 ] = df - ce * b;

				te[ 2 ] = - a * d;
				te[ 6 ] = b;
				te[ 10 ] = a * c;

			} else if ( euler.order === 'ZYX' ) {

				const ae = a * e, af = a * f, be = b * e, bf = b * f;

				te[ 0 ] = c * e;
				te[ 4 ] = be * d - af;
				te[ 8 ] = ae * d + bf;

				te[ 1 ] = c * f;
				te[ 5 ] = bf * d + ae;
				te[ 9 ] = af * d - be;

				te[ 2 ] = - d;
				te[ 6 ] = b * c;
				te[ 10 ] = a * c;

			} else if ( euler.order === 'YZX' ) {

				const ac = a * c, ad = a * d, bc = b * c, bd = b * d;

				te[ 0 ] = c * e;
				te[ 4 ] = bd - ac * f;
				te[ 8 ] = bc * f + ad;

				te[ 1 ] = f;
				te[ 5 ] = a * e;
				te[ 9 ] = - b * e;

				te[ 2 ] = - d * e;
				te[ 6 ] = ad * f + bc;
				te[ 10 ] = ac - bd * f;

			} else if ( euler.order === 'XZY' ) {

				const ac = a * c, ad = a * d, bc = b * c, bd = b * d;

				te[ 0 ] = c * e;
				te[ 4 ] = - f;
				te[ 8 ] = d * e;

				te[ 1 ] = ac * f + bd;
				te[ 5 ] = a * e;
				te[ 9 ] = ad * f - bc;

				te[ 2 ] = bc * f - ad;
				te[ 6 ] = b * e;
				te[ 10 ] = bd * f + ac;

			}

			// bottom row
			te[ 3 ] = 0;
			te[ 7 ] = 0;
			te[ 11 ] = 0;

			// last column
			te[ 12 ] = 0;
			te[ 13 ] = 0;
			te[ 14 ] = 0;
			te[ 15 ] = 1;

			return this;

		}

		makeRotationFromQuaternion( q ) {

			return this.compose( _zero, q, _one );

		}

		lookAt( eye, target, up ) {

			const te = this.elements;

			_z.subVectors( eye, target );

			if ( _z.lengthSq() === 0 ) {

				// eye and target are in the same position

				_z.z = 1;

			}

			_z.normalize();
			_x.crossVectors( up, _z );

			if ( _x.lengthSq() === 0 ) {

				// up and z are parallel

				if ( Math.abs( up.z ) === 1 ) {

					_z.x += 0.0001;

				} else {

					_z.z += 0.0001;

				}

				_z.normalize();
				_x.crossVectors( up, _z );

			}

			_x.normalize();
			_y.crossVectors( _z, _x );

			te[ 0 ] = _x.x; te[ 4 ] = _y.x; te[ 8 ] = _z.x;
			te[ 1 ] = _x.y; te[ 5 ] = _y.y; te[ 9 ] = _z.y;
			te[ 2 ] = _x.z; te[ 6 ] = _y.z; te[ 10 ] = _z.z;

			return thi


/directory_impl.dart";
part "../../../sdk/lib/io/file.dart";
part "../../../sdk/lib/io/file_impl.dart";
part "../../../sdk/lib/io/file_system_entity.dart";
part "../../../sdk/lib/io/link.dart";
part "../../../sdk/lib/io/http.dart";
part "../../../sdk/lib/io/http_impl.dart";
part "../../../sdk/lib/io/http_date.dart";
part "../../../sdk/lib/io/http_parser.dart";
part "../../../sdk/lib/io/http_headers.dart";
part "../../../sdk/lib/io/http_session.dart";
part "../../../sdk/lib/io/io_service.dart";
part "../../../sdk/lib/io/io_sink.dart";
part "../../../sdk/lib/io/platform.dart";
part "../../../sdk/lib/io/platform_impl.dart";
part "../../../sdk/lib/io/service_object.dart";
part "../../../sdk/lib/io/secure_socket.dart";
part "../../../sdk/lib/io/secure_server_socket.dart";
part "../../../sdk/lib/io/socket.dart";

void testMultiValue() {
  _HttpHeaders headers = new _HttpHeaders("1.1");
  Expect.isNull(headers[HttpHeaders.PRAGMA]);
  headers.add(HttpHeaders.PRAGMA, "pragma1");
  Expect.equals(1, headers[HttpHeaders.PRAGMA].length);
  Expect.equals(1, headers["pragma"].length);
  Expect.equals(1, headers["Pragma"].length);
  Expect.equals(1, headers["PRAGMA"].length);
  Expect.equals("pragma1", headers.value(HttpHeaders.PRAGMA));

  headers.add(HttpHeaders.PRAGMA, "pragma2");
  Expect.equals(2, headers[HttpHeaders.PRAGMA].length);
  Expect.throws(() => headers.value(HttpHeaders.PRAGMA),
                (e) => e is HttpException);

  headers.add(HttpHeaders.PRAGMA, ["pragma3", "pragma4"]);
  Expect.listEquals(["pragma1", "pragma2", "pragma3", "pragma4"],
                    headers[HttpHeaders.PRAGMA]);

  headers.remove(HttpHeaders.PRAGMA, "pragma3");
  Expect.equals(3, headers[HttpHeaders.PRAGMA].length);
  Expect.listEquals(["pragma1", "pragma2", "pragma4"],
                    headers[HttpHeaders.PRAGMA]);

  headers.remove(HttpHeaders.PRAGMA, "pragma3");
  Expect.equals(3, headers[HttpHeaders.PRAGMA].length);

  headers.set(HttpHeaders.PRAGMA, "pragma5");
  Expect.equals(1, headers[HttpHeaders.PRAGMA].length);

  headers.set(HttpHeaders.PRAGMA, ["pragma6", "pragma7"]);
  Expect.equals(2, headers[HttpHeaders.PRAGMA].length);

  headers.removeAll(HttpHeaders.PRAGMA);
  Expect.isNull(headers[HttpHeaders.PRAGMA]);
}

void testDate() {
  DateTime date1 = new DateTime.utc(1999, DateTime.JUNE, 11, 18, 46, 53, 0);
  String httpDate1 = "Fri, 11 Jun 1999 18:46:53 GMT";
  DateTime date2 = new DateTime.utc(2000, DateTime.AUGUST, 16, 12, 34, 56, 0);
  String httpDate2 = "Wed, 16 Aug 2000 12:34:56 GMT";

  _HttpHeaders headers = new _HttpHeaders("1.1");
  Expect.isNull(headers.date);
  headers.date = date1;
  Expect.equals(date1, headers.date);
  Expect.equals(httpDate1, headers.value(HttpHeaders.DATE));
  Expect.equals(1, headers[HttpHeaders.DATE].length);
  headers.add(HttpHeaders.DATE, httpDate2);
  E


[]]},"注音一式":{"zhu4 yin1 yi1 shi4":[[63716],[]]},"注音字母":{"zhu4 yin1 zi4 mu3":[[63717],[]]},"注音符號":{"zhu4 yin1 fu2 hao4":[[63718],[]]},"泩":{"sheng1":[[63719],[]]},"泫":{"xuan4":[[63720],[]]},"泭":{"fu1":[[63721],[]]},"泮":{"pan4":[[63722],[]]},"泯":{"min3":[[63723],[12761]]},"泯沒":{"min3 mo4":[[63724],[]]},"泯滅":{"min3 mie4":[[63725],[]]},"泰":{"Tai4":[[63726],[]],"tai4":[[63727],[]]},"泰來":{"Tai4 lai2":[[63728],[]]},"泰來縣":{"Tai4 lai2 Xian4":[[63729],[]]},"泰加林":{"tai4 jia1 lin2":[[63730],[]]},"泰勒":{"Tai4 le4":[[63731],[]]},"泰北":{"Tai4 bei3":[[63732],[]]},"泰半":{"tai4 ban4":[[63733],[]]},"泰和":{"Tai4 he2":[[63734],[]],"tai4 he2":[[63735],[]]},"泰和縣":{"Tai4 he2 Xian4":[[63736],[]]},"泰國":{"Tai4 guo2":[[63737],[]]},"泰坦":{"Tai4 tan3":[[63738],[]]},"泰坦尼克號":{"Tai4 tan3 ni2 ke4 Hao4":[[63739],[]]},"泰坦巨龍":{"tai4 tan3 ju4 long2":[[63740],[]]},"泰姬瑪哈陵":{"Tai4 ji1 Ma3 ha1 Ling2":[[63741],[]]},"泰姬陵":{"Tai4 ji1 ling2":[[63742],[]]},"泰安":{"Tai4 an1":[[63743],[]]},"泰安市":{"Tai4 an1 Shi4":[[63744],[]]},"泰安縣":{"Tai4 an1 xian4":[[63745],[]]},"泰安鄉":{"Tai4 an1 xiang1":[[63746],[]]},"泰寧":{"Tai4 ning2":[[63747],[]]},"泰寧縣":{"Tai4 ning2 Xian4":[[63748],[]]},"泰山":{"Tai4 Shan1":[[63749],[]],"Tai4 shan1":[[63750],[]]},"泰山北斗":{"Tai4 shan1 Bei3 dou3":[[63751],[]]},"泰山區":{"Tai4 shan1 qu1":[[63752],[]]},"泰山鄉":{"Tai4 shan1 xiang1":[[63753],[]]},"泰山鴻毛":{"Tai4 shan1 hong2 mao2":[[63754],[]]},"泰州":{"Tai4 zhou1":[[63755],[]]},"泰州市":{"Tai4 zhou1 Shi4":[[63756],[]]},"泰式":{"Tai4 shi4":[[63757],[]]},"泰戈爾":{"Tai4 ge1 er3":[[63758],[]]},"泰拳":{"Tai4 quan2":[[63759],[]]},"泰文":{"Tai4 wen2":[[63760],[]]},"泰斗":{"tai4 dou3":[[63761],[]]},"泰晤士":{"Tai4 wu4 shi4":[[63762],[]]},"泰晤士報":{"Tai4 wu4 shi


ator<S>(comparator);
  }

  private static class FirstComparator<E> implements Comparator<Pair<E, ?>> {
    private final Comparator<E> comparator;

    public FirstComparator(Comparator<E> comparator) {
      this.comparator = comparator;
    }

    public int compare(Pair<E, ?> object1, Pair<E, ?> object2) {
      return comparator.compare(object1.getFirst(), object2.getFirst());
    }
  }
}
// Copyright 2010 Google Inc.
//
// 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.

package com.google.android.stardroid.control;

import android.util.Log;

import com.google.android.stardroid.util.MiscUtil;

import java.util.Date;

/**
 * A clock that knows how to transition between a {@link TimeTravelClock}
 * and another {@link Clock}.  Usually this other
 * Clock will be a {@link RealClock}.
 *
 * @author John Taylor
 *
 */
public class TransitioningCompositeClock implements Clock {
  public static final long TRANSITION_TIME_MILLIS = 2500L;
  private static final String TAG = MiscUtil.getTag(TransitioningCompositeClock.class);
  private Clock realClock;
  private TimeTravelClock timeTravelClock;
  private enum Mode {REAL_TIME, TRANSITION, TIME_TRAVEL}
  private Mode mode = Mode.REAL_TIME;
  private long startTime;
  private long endTime;
  private long startTransitionWallTime;
  private Mode transitionTo;

  /**
   * Constructor.
   *
   * The realClock parameter serves two purposes - both as the clock to query
   * when in realtime mode, and also to count the beats during the transition
   * between realtime and timetravel modes to ensure a smooth transition.
   */
  public TransitioningCompositeClock(TimeTravelClock timeTravelClock,
                                     Clock realClock) {
    this.timeTravelClock = timeTravelClock;
    this.realClock = realClock;
  }

  public void goTimeTravel(Date targetDate) {
    startTime = getTimeInMillisSinceEpoch();
    endTime = targetDate.getTime();
    timeTravelClock.setTimeTravelDate(targetDate);
    mode = Mode.TRANSITION;
    transitionTo = Mode.TIME_TRAVEL;
    startTransitionWallTime = realClock.getTimeInMillisSinceEpoch();
  }

  public void returnToRealTime() {
    startTime = getTimeInMillisSinceEpoch();
    endTime = realClock.getTimeInMillisSinceEpoch() + TRANSITION_TIME_MILLIS;
    mode = Mode.TRANSITION;
    transitionTo = Mode.REAL_TIME;
    startTransitionWallTime = realClock.getTimeInMillisSinceEpoch();
  }

  @Override
  public long getTimeInMillisSinceEpoch() {
    if (mode == Mode.TRANSITION) {
      long elapsedTimeMillis = realClock.getTimeInMillisSinceEpoch() - startTransitionWallTime;
      if (elapsedTimeMillis > TRANSITION_TIME_MILLIS) {
        mode = transitionTo;
      } else {
        return (long) interpolate(startTime, endTime,
                                  ((double) elapsedTimeMillis) / TRANSITION_TIME_MILLIS);
      }
    }
    switch(mode) {
      case REAL_TIME:
        return realClock.getTimeInMillisSinceEpoch();
      case TIME_TRAVEL:
        return timeTravelClock.getTimeInMillisSinceEpoch();
    }
    Log.e(TAG, "Mode is neither r


intlconv_to_utf8safestr(charset_id, p, strlen(p)*2);
        htsmsg_add_str(item, "m3u-name", y ?: ".invalid.charset.");
        free(y);
      }
      continue;
    } else if (strncmp(data, "#EXT-X-VERSION:", 15) == 0) {
      htsmsg_add_s64(m, "version", strtoll(data + 15, NULL, 10));
      data = until_eol(data + 15);
      continue;
    } else if (strncmp(data, "#EXT-X-MEDIA-SEQUENCE:", 22) == 0) {
      htsmsg_add_s64(m, "media-sequence", strtoll(data + 22, NULL, 10));
      data = until_eol(data + 22);
      continue;
    } else if (strncmp(data, "#EXT-X-TARGETDURATION:", 22) == 0) {
      htsmsg_add_s64(m, "targetduration", strtoll(data + 22, NULL, 10));
      data = until_eol(data + 22);
      continue;
    } else if (strncmp(data, "#EXT-X-STREAM-INF:", 18) == 0) {
      data += 18;
      multi_name = "stream-inf";
multi:
      t = htsmsg_create_map();
      delim = 0;
      while (*data && delim != '\n' && delim != '\r') {
        while (*data && *data <= ' ') data++;
        p = data;
        while (*data && *data >= ' ' && *data != '=') data++;
        if (*data == '=') {
          *data = '\0';
          x = get_m3u_str(data + 1, &data, &delim);
          if (*x && *p)
            htsmsg_add_str(t, p, x);
          get_m3u_str_post(&data, delim);
        } else {
          while (*data && *data <= ' ' && *data != '\n' && *data != '\r') data++;
          if (*data != ',') break;
        }
      }
      if (strcmp(multi_name, "x-key") == 0) {
        htsmsg_destroy(key);
        key = t;
      } else {
        if (item == NULL)
          item = htsmsg_create_map();
        htsmsg_add_msg(item, multi_name, t);
      }
      data = until_eol(data);
      continue;
    } else if (strncmp(data, "#EXT-X-MEDIA:", 13) == 0) {
      data += 13;
      multi_name = "x-media";
      goto multi;
    } else if (strncmp(data, "#EXT-X-KEY:", 11) == 0) {
      data += 11;
      multi_name = "x-key";
      goto multi;
    } else if (strncmp(data, "#EXT-X-ENDLIST", 14) == 0) {
      htsmsg_add_bool(m, "x-endlist", 1);
      data = until_eol(data + 14);
      continue;
    } else if (strncmp(data, "#EXTVLCOPT:program=", 19) == 0) {
      if (item == NULL)
        item = htsmsg_create_map();
      htsmsg_add_s64(item, "vlc-program", strtoll(data + 19, NULL, 10));
      data = until_eol(data + 19);
    } else if (strncmp(data, "#EXT", 4) == 0) {
      data = until_eol(data + 4);
      continue;
    }
    while (*data && *data <= ' ') data++;
    p = data;
    data = until_eol(data);
    if (*p == '#')
      continue;
    if (*p && *p > ' ') {
      if (item == NULL)
        item = htsmsg_create_map();
      if (strncmp(p, "http://", 7) == 0 ||
          strncmp(p, "https://", 8) == 0) {
        delim = 0;
        x = p;
        while (*x && *x != ' ' && *x != '|') x++;
        if (*x) { delim = *x; *x = '\0'; x++; }
        t = NULL;
        while (*x) {
          while (*x && *x <= ' ') x++;
          y = x;
          while (*x && *x != delim && *x != '&') x++;
          if (*x) { *x = '\0'; x++; }
          if (*y) {
            if (t == NULL)
              t = htsmsg_create_list();
            htsmsg_add_str(t, NULL, y);
          }
        }
        if (t)
          htsmsg_add_msg(item, "m3u-http-headers", t);
      }

      htsmsg_add_str(item, "m3u-url", get_url(buf, sizeof(buf), p, url));
    } else if (item) {
      htsmsg_destroy(item);
      item = NULL;
    }

    if (item) {
      if (l == NULL)
        l = htsmsg_create_list();
      if (key)
        htsmsg_add_msg(item, "x-key", htsmsg_copy(key));
      htsmsg_add_msg(l, NULL, item);
      item = NULL;
    }
  }

  htsmsg_destroy(key);
  if (l == NULL)
    l = htsmsg_create_list();
  if (item != NULL)
    htsmsg_destroy(item);
  htsmsg_add_msg(m, "items", l);
  return m;
}


-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm118.9 64.7L160 289.3l41.1-128.6c3.2-9.9 12.4-16.7 22.9-16.7s19.7 6.7 22.9 16.7L288 289.3l41.1-128.6c4-12.6 17.5-19.6 30.2-15.5s19.6 17.5 15.5 30.2l-64 200c-3.2 9.9-12.4 16.7-22.9 16.7s-19.7-6.7-22.9-16.7L224 246.7 182.9 375.3c-3.2 9.9-12.4 16.7-22.9 16.7s-19.7-6.7-22.9-16.7l-64-200c-4-12.6 2.9-26.1 15.5-30.2s26.1 2.9 30.2 15.5z"],"arrows-split-up-and-left":[512,512,[],"e4bc","M241 137c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L303 7c9.4-9.4 24.6-9.4 33.9 0l96 96c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55L344 384l0 8c0 39.8 32.2 72 72 72l72 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0c-66.3 0-120-53.7-120-120l0-8c0-39.8-32.2-72-72-72L81.9 312l55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 305c-4.5-4.5-7-10.6-7-17s2.5-12.5 7-17l96-96c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55L224 264c27 0 51.9 8.9 72 24l0-206.1-55 55z"],lamp:[448,512,[],"f4ca","M2.5 211.7l80-192C87.4 7.8 99.1 0 112 0L336 0c12.9 0 24.6 7.8 29.5 19.7l80 192c4.1 9.9 3 21.2-2.9 30.1s-15.9 14.2-26.6 14.2L32 256c-10.7 0-20.7-5.3-26.6-14.2s-7-20.2-2.9-30.1zM56 208l336 0L325.3 48 122.7 48 56 208zm88 105.4l0-25.4 48 0 0 25.4c0 17-6.7 32-16.2 42.9C165.7 368 144 398.1 144 432c0 12.2 3.7 23.1 8.4 31.9c.6 .1 1.3 .1 2.1 .1l139 0c.8 0 1.5-.1 2.1-.1c4.6-8.8 8.4-19.7 8.4-31.9c0-32.3-22.1-63.8-32.6-76.4c-9.2-10.9-15.4-25.6-15.4-42l0-25.6 48 0 0 25.6c0 4.1 1.6 8 4.2 11.2c11.7 14 43.8 56.9 43.8 107.2c0 24.4-8.3 44.6-16.4 58.7c-8


using System.Security.Cryptography;
using System.Text;

namespace Certify.Providers.DNS.TransIP.Authentication
{
    internal class DigestCreator
    {
        private readonly SHA512Managed _sha512;
        private readonly byte[] _asn1Header = new byte[]{
                0x30, 0x51, 0x30, 0x0d, 0x06, 0x09, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x02, 0x03, 0x05, 0x00, 0x04, 0x40
        };

        public DigestCreator()
        {
            _sha512 = new SHA512Managed();
        }

        public byte[] Create(string data)
        {


表大地主大买办阶级的第一个北洋军阀政府，对内专制独裁，对外投降卖国。一九一五年五月接受日本企图灭亡中国的“二十一条”。同年十二月称帝。一九一六年三月在全国人民的反对下被迫取消帝制。

   [9]北洋军阀，是清末袁世凯在北方几省首先建立起来的封建军阀集团。一八九五年清政府命袁世凯在天津小站编练“新建陆军”，归北洋大臣节制。一九〇一年袁世凯任北洋大臣，所建军队称为北洋军。辛亥革命后，袁世凯任大总统，培植党羽，形成控制中央和地方政权的军事集团。一九一六年袁死后，北洋军在各帝国主义国家支持下分化为直、皖、奉三系。一九二六年皖系军阀段祺瑞下台，一九二七年直系军阀被国民革命军消灭，一九二八年奉系军阀政府垮台。至此，北洋军阀统治结束。

   [10]曹锟，北洋军阀直系首领之一。一九二三年以五千银元一票收买国会议员，被选为“大总统”。一九二四年第二次直奉战争中被所部将领冯玉祥囚禁。一九二六年获释，后寓居天津。

   [11]指曹锟一九二三年十月在贿选总统后颁布的由贿选议员所制定的《中华民国宪法》，当时被人们叫作“贿选宪法”。

   [12]见《孙中山选集》，人民出版社一九八一年十月第二版，第994页。

   [13]指蒋介石一九四六年十二月操纵“国民大会”通过的《中华民国宪法》。

   [14]中国青年党，一九二三年在法国成立。其成员主要是一些地主、资产阶级的政客和知识分子，它标榜国家主义、反对共产主义。抗日战争期间曾参加中国民主同盟，后又依附国民党，一九四六年十一月参加国民党包办的国民大会，拥护这次大会通过的《中华民国宪法》，支持蒋介石发动反共反人民的内


n ans;
         }
        */
        var ans = BigInteger.ONE
        a = a.remainder(c)
        while (b > 0) {
            if (b % 2 == 1) {
                ans = ans.multiply(a).remainder(c)
            }
            b /= 2
            a = a.pow(2).remainder(c)
        }
        return ans.toString(16)
    }

    /**
     * 将二进制转换成16进制字符串
     *
     * @param buf
     * @return
     */
    private fun parseByte2HexStr(buf: ByteArray): String {
        val sb = StringBuffer()
        for (i in buf.indices) {
            val hex = Integer.toHexString(buf[i].toInt())
            sb.append(hex.toUpperCase())
        }
        return sb.toString()
    }

    /**
     * 生成指定长度的随机字符串[a-zA-Z0-9]
     *
     * @param length
     * @return
     */
    private fun randomStr(length: Int): String {
        val all = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
        val l = all.length
        val builder = StringBuilder()
        val random = Random()
        for (i in 0 until length) {
            builder.append(all[random.nextInt(l)])
        }
        return builder.toString()
    }
}package com.dede.sonimei.util.extends.kson

import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.google.gson.JsonElement
import com.google.gson.TypeAdapter
import com.google.gson.reflect.TypeToken
import com.google.gson.stream.JsonReader
import com.google.gson.stream.JsonWriter
import java.io.Reader

inline fun <reified T : Any> Gson.getAdapter(): TypeAdapter<T> = getAdapter(object : TypeToken<T>() {})

inline fun <reified T : Any> Gson.getGenericAdapter(): TypeAdapter<T> = getAdapter(T::class.java)

inline fun <reified T : Any> Gson.fromJson(json: String): T = fromJson(json, typeToken<T>())

inline fun <reified T : Any> Gson.fromJson(json: Reader): T = fromJson(json, typeToken<T>())

inline fun <reified T : Any> Gson.fromJson(json: JsonReader): T = fromJson(json, typeToken<T>())

inline fun <reified T : Any> Gson.fromJson(json: JsonElement): T = fromJson(json, typeToken<T>())

inline fun <reified T : Any> String.fromJson(): T = Gson().fromJson(this, typeToken<T>())

inline fun <reified T : Any> String.fromExposeJson(): T = GsonBuilder()
        .excludeFieldsWithoutExposeAnnotation()
        .create()
        .fromJson(this, typeToken<T>())

inline fun <reified T : Any> Gson.toJson(src: T): String = toJson(src, typeToken<T>())

inline fun <reified T : Any> Gson.toJson(src: T, writer: Appendable): Unit = toJson(src, typeToken<T>(), writer)

inline fun <reified T : Any> Gson.toJson(src: T, writer: JsonWriter): Unit = toJson(src, typeToken<T>(), writer)

inline fun <reified T : Any> Gson.toJsonTree(src: T): JsonElement = toJsonTree(src, typeToken<T>())
package com.dede.sonimei.module.download

import android.app.Notification
import android.app.NotificationChannel
import android.app.NotificationManager
import android.app.Service
import android.content.BroadcastReceiver
import android.content.Context
import


5), Vector2(width * 0.25, height * 0.25))
      // lineTo(Vector2(width * 0.25, height * 0.5))
      // lineTo(Vector2(width * 0.75, height * 0.75))
      // lineTo(Vector2(width * 0.75, height * 0.5))
      // lineTo(Vector2(width * 0.25, height * 0.25))
      close()
    }

    val leaves = listOf(leaf1)

    // Credit: https://www.codeproject.com/Articles/5252711/Magic-Formula-of-the-Intersection-Point-of-Two-Lin
    fun wedgeProduct(a: Vector2, b: Vector2): Double =
      a.x * b.y - a.y * b.x

    // This works great for straight lines, but not curves
    fun intersection(a: Segment, b: LineSegment): Vector2 {
      val r_0 = a.end - a.start
      val r_1 = b.end - b.start
      val permissableError = 0.9
      val acceptable = abs(wedgeProduct(r_1, r_0)) / (r_1.length * r_0.length) > permissableError
      val result = (r_0 * wedgeProduct(b.end, b.start) - r_1 * wedgeProduct(a.end, a.start)) /
        wedgeProduct(r_1, r_0)
      if (acceptable) {
        println(
          """
          not acceptable!
          error: ${abs(wedgeProduct(r_1, r_0)) / (r_1.length * r_0.length)}
          result: $result
          """.trimIndent()
        )
      } else {
        println(
          """
          acceptable!
          error: ${abs(wedgeProduct(r_1, r_0)) / (r_1.length * r_0.length)}
          result: $result
          """.trimIndent()
        )
      }
      return result
    }

    /**
     * Based on ShapeContour.nearest
     * https://github.com/openrndr/openrndr/blob/e82f42e0a8679dda42348e8247a2b0f7416a1678/openrndr-core/src/main/kotlin/org/openrndr/shape/Shape.kt#L1199-L1209
     * @param shape the shape on which we want to find the nearest point
     * @param point the point we want to match to the contour
     * @param angle specifies the angle the matching segment must match to be considered valid
     */
    fun nearest(shape: ShapeContour, point: Vector2, angle: Double, acceptableError: Double = 0.1): Optional<Vector2> {
      val n = shape.segments
        .map { it.nearest(point) }
        .filter {
          var linearAngle = atan2(it.position.y - point.y, it.position.x - point.x)
          while (linearAngle < 0.0) {
            linearAngle += PI
          }
          println(
            """
              linearAngle: $linearAngle
              angle: $angle
              diff: ${abs(linearAngle - angle)}
            """.trimIndent()
          )
          abs(linearAngle - angle) < acceptableError ||
            abs(linearAngle + PI - angle) < acceptableError ||
            abs(linearAngle - PI - angle) < acceptableError
        }
        .minBy { it.position.distanceTo(point) }
        ?: return Optional.empty()
      return Optional.of(n.position)
    }

    fun nearestSegmentPoint(shape: ShapeContour, point: Vector2, angle: Double, acceptableError: Double = 0.1): Optional<SegmentPoint> {
      val n = shape.segments
        .map { it.nearest(point) }
        // .filter {
        //   var linear


UpdateFrameAlphaState(frame, isActionBarOverridenForFrame);
	end

	self:Layout();
	self.BottomManagedLayoutContainer:Layout();
end

function UIParentManagedFrameContainerMixin:UpdateManagedFramesAlphaState()
	local isActionBarOverriden = IsActionBarOverriden();
	for frame in pairs(self.showingFrames) do
		UpdateFrameAlphaState(frame, isActionBarOverriden);
	end
end

--Aubrie TODO determine if we want to actually apply a fade out for pet battles?
function UIParentManagedFrameContainerMixin:AnimOutManagedFrames()
	for frame in pairs(self.showingFrames) do
		frame:SetAlpha(0);
	end
end

function UIParentManagedFrameContainerMixin:AnimInManagedFrames()
	for frame in pairs(self.showingFrames) do
		frame:SetAlpha(1);
	end
end

-- Addons --

local FailedAddOnLoad = {};

function UIParentLoadAddOn(name)
	local loaded, reason = C_AddOns.LoadAddOn(name);
	if ( not loaded ) then
		if ( not FailedAddOnLoad[name] ) then
			SetBasicMessageDialogText(format(ADDON_LOAD_FAILED, name, _G["ADDON_"..reason]));
			FailedAddOnLoad[name] = true;
		end
	end
	return loaded;
end

function BattlefieldMap_LoadUI()
	UIParentLoadAddOn("Blizzard_BattlefieldMap");
end

function ClassTrainerFrame_LoadUI()
	UIParentLoadAddOn("Blizzard_TrainerUI");
end

function CombatLog_LoadUI()
	UIParentLoadAddOn("Blizzard_CombatLog");
end

function Commentator_LoadUI()
	UIParentLoadAddOn("Blizzard_Commentator");
end

function BarberShopFrame_LoadUI()
	UIParentLoadAddOn("Blizzard_BarberShopUI");
end

function InspectFrame_LoadUI()
	UIParentLoadAddOn("Blizzard_InspectUI");
end

function KeyBindingFrame_LoadUI()
	UIParentLoadAddOn("Blizzard_BindingUI");
end

function MacroFrame_LoadUI()
	UIParentLoadAddOn("Blizzard_MacroUI");
end
function MacroFrame_SaveMacro()
	-- this will be overwritten with the real thing when the addon is loaded
end

function RaidFrame_LoadUI()
	UIParentLoadAddOn("Blizzard_RaidUI");
end

function TimeManager_LoadUI()
	UIParentLoadAddOn("Blizzard_TimeManager");
end

function TokenFrame_LoadUI()
	UIParentLoadAddOn("Blizzard_TokenUI");
end

function GMChatFrame_LoadUI(...)
	if ( C_AddOns.IsAddOnLoaded("Blizzard_GMChatUI") ) then
		return;
	else
		UIParentLoadAddOn("Blizzard_GMChatUI");
		if ( select(1, ...) ) then
			GMChatFrame_OnEvent(GMChatFrame, ...);
		end
	end
end

function WowSurvey_LoadUI()
	UIParentLoadAddOn("Blizzard_WowSurveyUI");
end

function APIDocumentation_LoadUI()
	UIParentLoadAddOn("Blizzard_APIDocumentationGenerated");
end

function DeathRecap_LoadUI()
	UIParentLoadAddOn("Blizzard_DeathRecap");
end

function InClickBindingMode()
	return ClickBindingFrame and ClickBindingFrame:IsShown();
end

function ToggleRaidFrame()
	if (Kiosk.IsEnabled()) then
		return;
	end

	local factionGroup = UnitFactionGroup("player");
	if (factionGroup == "Neutral") then
		return;
	end

	ToggleFriendsFrame(FRIEND_TAB_RAID);
end

function CommunitiesFrame_IsEnabled()
	return C_Club.IsEnabled();
end

-- Time --

function RecentTimeDate(year, month,


 {
    type Exclusion = NoExclusion;

    fn exclusion(&self) -> Self::Exclusion {
        NoExclusion
    }

    type Priority = ();

    fn priority(&self) -> Self::Priority {}

    fn execute(self) {
        std::thread::sleep(Duration::from_secs(1));
        println!("Completed job {:?}", self);
    }
}

fn merge_jobs(this: MergeJob, that: &mut MergeJob) -> MergeResult<MergeJob> {
    if this.0[..this.0.len() - 1] == that.0[..that.0.len() - 1] {
        that.0 = format!("{}x", &that.0[..that.0.len() - 1]);
        MergeResult::Success
    } else {
        MergeResult::NotMerged(this)
    }
}
const DENOM: u64 = 20201227;

const PUB_KEY1: u64 = 17115212;
const PUB_KEY2: u64 = 3667832;

fn main() {
    let loop1 = find_loop_size(7, PUB_KEY1);
    let loop2 = find_loop_size(7, PUB_KEY2);
    let ek1 = find_encryption_key(PUB_KEY2, loop1);
    let ek2 = find_encryption_key(PUB_KEY1, loop2);
    assert_eq!(ek1, ek2);
    assert_eq!(15467093, ek2);

    println!("ALL DONE!");
}

fn find_loop_size(sub_num: u64, target: u64) -> u64 {
    let mut value = 1;
    let mut count = 0;
    while value != target {
        value *= sub_num;
        value %= DENOM;
        count += 1
    }
    count
}

fn find_encryption_key(sub_num: u64, loop_size: u64) -> u64 {
    let mut value = 1;
    for _ in 0..loop_size {
        value *= sub_num;
        value %= DENOM;
    }
    value
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_find_loop_size() {
        assert_eq!(8, find_loop_size(7, 5764801));
        assert_eq!(11, find_loop_size(7, 17807724));
    }

    #[test]
    fn test_find_encryption_key() {
        assert_eq!(14897079, find_encryption_key(17807724, 8));
        assert_eq!(14897079, find_encryption_key(5764801, 11));
    }
}
use serde_json::{Value};
use crate::ofn_typing::property_translation as property_translation;
use std::collections::HashMap;
use std::collections::HashSet;

pub fn translate(v : &Value, m : &HashMap<String, HashSet<String>>) -> Value {

    let owl_operator: String = v[0].to_string();

     match owl_operator.as_str() {
         "\"SomeValuesFrom\"" => translate_some_values_from(v,m),
         "\"AllValuesFrom\"" =>  translate_all_values_from(v,m),
         "\"HasValue\"" => translate_has_value(v,m),
         "\"MinCardinality\"" => translate_min_cardinality(v,m),
         "\"MaxCardinality\"" => translate_max_cardinality(v,m),
         "\"ExactCardinality\"" => translate_exact_cardinality(v,m),

         "\"ObjectSomeValuesFrom\"" => id(v,m),
         "\"ObjectAllValuesFrom\"" => id(v,m),
         "\"ObjectHasValue\"" =>  id(v,m),
         "\"ObjectMinCardinality\"" =>  id(v,m),
         "\"ObjectMinQualifiedCardinality\"" => id(v,m),
         "\"ObjectMaxCardinality\"" =>  id(v,m),
         "\"ObjectMaxQualifiedCardinality\"" => id(v,m),
         "\"ObjectExactCardinality\"" =>  id(v,m),
         "\"ObjectExactQualified


notifications( 'a_new_day_arrived', function( notification ) { ... } );
	 *
	 * @example
Add a warning notification.

	 * wp.customize.notifications.add( new wp.customize.Notification( 'midnight_almost_here', {
	 *     type: 'warning',
	 *     message: 'Midnight has almost arrived!',
	 *     dismissible: true
	 * } ) );
	 *
	 * @example
Remove a notification.

	 * wp.customize.notifications.remove( 'a_new_day_arrived' );
	 *
	 * @see {@link wp.customize.control} for further examples of how to interact with {@link wp.customize.Values} instances.
	 */
	api.notifications = new api.Notifications();

	api.PreviewFrame = api.Messenger.extend(/** @lends wp.customize.PreviewFrame.prototype */{
		sensitivity: null, // Will get set to api.settings.timeouts.previewFrameSensitivity.

		/**
		 * An object that fetches a preview in the background of the document, which
		 * allows for seamless replacement of an existing preview.
		 *
		 * @constructs wp.customize.PreviewFrame
		 * @augments   wp.customize.Messenger
		 *
		 * @param {Object} params.container
		 * @param {Object} params.previewUrl
		 * @param {Object} params.query
		 * @param {Object} options
		 */
		initialize: function( params, options ) {
			var deferred = $.Deferred();

			/*
			 * Make the instance of the PreviewFrame the promise object
			 * so other objects can easily interact with it.
			 */
			deferred.promise( this );

			this.container = params.container;

			$.extend( params, { channel: api.PreviewFrame.uuid() });

			api.Messenger.prototype.initialize.call( this, params, options );

			this.add( 'previewUrl', params.previewUrl );

			this.query = $.extend( params.query || {}, { customize_messenger_channel: this.channel() });

			this.run( deferred );
		},

		/**
		 * Run the preview request.
		 *
		 * @param {Object} deferred jQuery Deferred object to be resolved with
		 *                          the request.
		 */
		run: function( deferred ) {
			var previewFrame = this,
				loaded = false,
				ready = false,
				readyData = null,
				hasPendingChangesetUpdate = '{}' !== previewFrame.query.customized,
				urlParser,
				params,
				form;

			if ( previewFrame._ready ) {
				previewFrame.unbind( 'ready', previewFrame._ready );
			}

			previewFrame._ready = function( data ) {
				ready = true;
				readyData = data;
				previewFrame.container.addClass( 'iframe-ready' );
				if ( ! data ) {
					return;
				}

				if ( loaded ) {
					deferred.resolveWith( previewFrame, [ data ] );
				}
			};

			previewFrame.bind( 'ready', previewFrame._ready );

			urlParser = document.createElement( 'a' );
			urlParser.href = previewFrame.previewUrl();

			params = _.extend(
				api.utils.parseQueryString( urlParser.search.substr( 1 ) ),
				{
					customize_changeset_uuid: previewFrame.query.customize_changeset_uuid,
					customize_theme: previewFrame.query.customize_theme,
					customize_messenger_channel: previewFrame.query.customize_messenger_channel
				}
			);
			if ( api.settings.changeset.autosaved || ! api.state( 'saved' ).get() ) {
				params.customize_autosaved = 'on';
			}

			urlParser.search = $.param( params );
			previewFrame.iframe = $( '', {
				title: api.l10n.previewIframeTitle,
				name: 'customize-' + previewFrame.channel()
			} );
			previewFrame.iframe.attr( 'onmousewheel', '' ); // Workaround for Safari bug. See WP Trac #38149.
			previewFrame.iframe.attr( 'sandbox', 'allow-forms allow-modals allow-orientation-lock allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-presentation allow-same-origin allow-scripts' );

			if


 {
              correct: false,
              reason: `Performance improvements section must be a single list to fix it`,
            };
          }

          if (changedIdx === -1) {
            for (let j = i + 1; j < content.length; j++) {
              const curItem = content[j];
              if (curItem.type === 'heading') {
                if (curItem.depth < 3)
                  break;
                if (curItem.depth === 3 && curItem.children.length === 1 &&
                    curItem.children[0].type === 'text' && curItem.children[0].value === 'Changed') {
                  changedIdx = j;
                  break;
                }
              }
            }
          }

          if (changedIdx !== -1) {
            // Merge it into any already-seen changed section
            const toMerge = content[i + 1];
            content.splice(i, 2);
            content.splice(changedIdx + 1, 0, toMerge);
            changed = true;
          } else {
            // Otherwise rename to Changed
            item.children[0].value = 'Changed';
            changed = true;
          }
          continue;
        }

        if (![
            "Added",
            "Changed",
            "Deprecated",
            "Removed",
            "Fixed",
            "Security",
          ].includes(item.children[0].value)
        ) {
          console.log(
            `${path}:${item.children[0].position.start.line}:${item.children[0].position.start.column}`
          );
          return {
            correct: false,
            reason: `Level 3 headings should only be one of 'Added', 'Changed', 'Deprecated', 'Removed', 'Fixed', 'Security'`,
          };
        }

        if (item.children[0].value === 'Changed')
          changedIdx = i;

        // check that there is something other than a heading following it, which we have to presume describes the change
        if (!content[i + 1] || content[i + 1].type === "heading") {
          console.log(
            `${path}:${item.position.start.line}:${item.position.start.column}`
          );
          return {
            correct: false,
            reason:
              "Level 3 headings must be followed by something other than a heading to describe the change",
          };
        }
      }
    }

    if (changed) {
      // ...work around convoluted API...
      const wat = { data() {} };
      remarkStringify.call(wat);
      const output = wat.compiler(ast);
      writeFileSync(path, `# Changelog\n\n${output}`, "utf8");
    }

    return { correct: true, changed };
  } catch (err) {
    console.error("Must be an error in my checks: ", err);
    process.exit(1);
  }
}
import regexpuc from 'regexpu-core';
import { parse } from 'acorn';
import MagicString from 'magic-string';
import { simple as simpleWalk } from 'acorn-walk';

const PREAMBLE = `;{
  // Precompiled regular expressions
  const precompile = (r) => { r.exec('a'); r.exec('\\u1000'); };`;
const POSTAMBLE = '}';

/// Emit a block of javascript that will pre-compile the regular expressions given. As spidermonkey
/// will intern regular expressions, duplicating them at the top level and testing them with both
/// an ascii and utf8 string should ensure that they won't be re-compiled when run in the fetch
/// handler.
export function precompile(source, filename = '<input>', moduleMode = false) {
  const magicString = new MagicString(source, {
    filename,
  });

  const ast = parse(source, {
    ecmaVersion: 'latest',
    sourceType: moduleMode ? 'module' : 'script',
  });

  const precompileCal


: 30px;
  }
}
@media (min-width: 768px) {
  .bs-docs-featurette {
    padding-top: 100px;
    padding-bottom: 100px;
  }
  .bs-docs-featurette-title {
    font-size: 40px;
  }
  .bs-docs-featurette .lead {
    max-width: 80%;
    margin-right: auto;
    margin-left: auto;
  }
  .bs-docs-featurette .img-responsive {
    margin-top: 0;
  }
}

/*
 * Featured sites
 *
 * Homepage thumbnails from the Expo.
 */

.bs-docs-featured-sites {
  margin-right: -1px;
  margin-left: -1px;
}
.bs-docs-featured-sites .col-xs-6 {
  padding: 1px;
}
.bs-docs-featured-sites .img-responsive {
  margin-top: 0;
}

@media (min-width: 768px) {
  .bs-docs-featured-sites .col-sm-3:first-child img {
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
  }
  .bs-docs-featured-sites .col-sm-3:last-child img {
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
  }
}

/*
 * Examples
 *
 * Linked docs examples.
 */

.bs-examples .thumbnail {
  margin-bottom: 10px;
}
.bs-examples h4 {
  margin-bottom: 5px;
}
.bs-examples p {
  margin-bottom: 20px;
}

@media (max-width: 480px) {
  .bs-examples {
    margin-right: -10px;
    margin-left: -10px;
  }
  .bs-examples > [class^="col-"] {
    padding-right: 10px;
    padding-left: 10px;
  }
}

/*
 * Side navigation
 *
 * Scrollspy and affixed enhanced navigation to highlight sections and secondary
 * sections of docs content.
 */

/* By default it's not affixed in mobile views, so undo that */
.bs-docs-sidebar.affix {
  position: static;
}
@media (min-width: 768px) {
  .bs-docs-sidebar {
    padding-left: 20px;
  }
}

/* First level of nav */
.bs-docs-sidenav {
  margin-top: 20px;
  margin-bottom: 20px;
}

/* All levels of nav */
.bs-docs-sidebar .nav > li > a {
  display: block;
  padding: 4px 20px;
  font-size: 13px;
  font-weight: 500;
  color: #767676;
}
.bs-docs-sidebar .nav > li > a:hover,
.bs-docs-sidebar .nav > li > a:focus {
  padding-left: 19px;
  color: #563d7c;
  text-decoration: none;
  background-color: transparent;
  border-left: 1px solid #563d7c;
}
.bs-docs-sidebar .nav > .active > a,
.bs-docs-sidebar .nav > .active:hover > a,
.bs-docs-sidebar .nav > .active:focus > a {
  padding-left: 18px;
  font-weight: bold;
  color: #563d7c;
  background-color: transparent;
  border-left: 2px solid #563d7c;
}

/* Nav: second level (shown on .active) */
.bs-docs-sidebar .nav .nav {
  display: none; /* Hide by default, but at >768px, show it */
  padding-bottom: 10px;
}
.bs-docs-sidebar .nav .nav > li > a {
  padding-top: 1px;


fine) {
            aload_1
            invokevirtual(worldRenderer, "func_178979_i", int)
            bipush(7)
            if_icmpne(L["3"])
            invokestatic("Config", "isQuadsToTriangles", boolean)
            ifeq(L["3"])
            aload_1
            invokevirtual(worldRenderer, "quadsToTriangles", void)
            +L["3"]
        }

        aload_1
        invokevirtual(worldRenderer, "func_178973_g", vertexFormat)
        astore_2
        aload_2
        invokevirtual(vertexFormat, "func_177338_f", int)
        istore_3
        aload_1
        invokevirtual(worldRenderer, "func_178966_f", ByteBuffer::class)
        astore(4)
        aload_2
        invokevirtual(vertexFormat, "func_177343_g", List::class)
        astore(5)
        iconst_0
        istore(6)
        +L["9"]
        iload(6)
        aload(5)
        invokeinterface(List::class, "size", int)
        if_icmpge(L["10"])
        aload(5)
        iload(6)
        invokeinterface(List::class, "get", Object::class, int)
        checkcast(vertexFormatElement)
        astore(7)
        aload(7)
        invokevirtual(vertexFormatElement, "func_177375_c", "$vertexFormatElement\$EnumUsage" as TypeLike)
        aload(2)
        iload(6)
        iload(3)
        aload(4)
        invokevirtual("$vertexFormatElement\$EnumUsage", "preDraw", void, vertexFormat, int, int, ByteBuffer::class)
        iinc(6, 1)
        goto(L["9"])
        +L["10"]
        aload_1
        astore(6)
        aload(6)
        invokevirtual(worldRenderer, "isMultiTexture", boolean)
        ifeq(L["15"])
        aload(6)
        invokevirtual(worldRenderer, "drawMultiTexture", void)
        goto(L["17"])
        +L["15"]
        invokestatic("Config", "isShaders", boolean)
        ifeq(L["18"])
        aload_1
        invokevirtual(worldRenderer, "func_178979_i", int)
        iconst_0
        aload_1
        invokevirtual(worldRenderer, "func_178989_h", int)
        aload_1
        invokestatic(sVertexBuilder, "drawArrays", void, int, int, int, worldRenderer)
        goto(L["17"])
        +L["18"]
        aload_1
        invokevirtual(worldRenderer, "func_178979_i", int)
        iconst_0
        aload_1
        invokevirtual(worldRenderer, "func_178989_h", int)
        invokestatic(GL11::class, "glDrawArrays", void, int, int, int)
        +L["17"]
        iconst_0
        istore(7)
        aload(5)
        invokeinterface(List::class, "size", int)
        istore(8)
        +L["21"]
        iload(7)
        iload(8)
        if_icmpge(L["1"])
        aload(5)
        iload(7)
        invokeinterface(List::class, "get", Object::class, int)
        checkcast(vertexFormatElement)
        astore(9)
        aload(9)
        invokevirtual(vertexFormatElement, "func_177375_c", "$vertexFormatElement\$EnumUsage" as TypeLike)
        aload_2
        iload(7)
        iload_3
        aload(4)
        invokevirtual("$vertexFormatElement\$EnumUsage", "postDraw", void, vertexFormat, int, int, ByteBuffer::class)
        iinc(7, 1)
        goto(L["21"])
        +L["1"]
        aload_1
        invokevirtual(worldRenderer, "func_178965_a", void)
        _return
    }
}package io.github.skeptick.libres.plugin

import org.gradle.api.DefaultTask
import org.gradle.api.file.FileCollection
import org.gradle.api.tasks.*


nstead; L.pull() does not work well with mobx arrays",
      },
      {
        object: "req",
        property: "login",
        message: "Please use doLogin() instead",
      },
      {
        object: "req",
        property: "logIn",
        message: "Please use doLogin() instead",
      },
      {
        object: "req",
        property: "logout",
        message: "Please use doLogout() instead",
      },
      {
        object: "req",
        property: "logOut",
        message: "Please use doLogout() instead",
      },
      {
        object: "window",
        property: "prompt",
        message:
          "Please use reactPrompt() instead; window.prompt() does not work well with app hosting",
      },
      {
        property: "findOneOrFail",
        message:
          "Please prefer `findExactlyOne` instead, to ensure no more than one row will match",
      },
    ],
    "no-restricted-globals": [
      "error",
      {
        name: "prompt",
        message:
          "Please use reactPrompt() instead; window.prompt() does not work well with app hosting",
      },
    ],
    "no-restricted-imports": [
      "error",
      {
        name: "@plasmicapp/host",
        importNames: ["registerComponent"],
        message:
          "Please import from @plasmicapp/host/registerComponent instead",
      },
      {
        name: "antd",
        importNames: ["Modal"],
        message:
          "Please use drop-in replacement src/wab/client/components/widgets/Modal.tsx instead",
      },
      {
        name: "react-use",
        importNames: ["useAsync", "useAsyncRetry", "useAsyncFn"],
        message: "Please use useAsyncStrict()/useAsyncFnStrict() instead",
      },
      {
        name: "react-use/lib/useAsync",
        message: "Please use useAsyncStrict() instead",
      },
      {
        name: "react-use/lib/useAsyncRetry",
        message: "Please use useAsyncStrict() instead",
      },
      {
        name: "react-use/lib/useAsyncFn",
        message: "Please use useAsyncFnStrict() instead",
      },
    ],
    "no-restricted-syntax": [
      "warn",
      {
        selector: "CallExpression[callee.name='ensure'][arguments.length!=2]",
        message: "`ensure` must always be invoked with a message.",
      },
      {
        selector: "CallExpression[callee.name='assert'][arguments.length!=2]",
        message: "`assert` must always be invoked with a message.",
      },
      {
        selector: `CallExpression[callee.name='ensureInstance'][arguments.length=2] > Identifier[name=/\\b(${TYPES})\\b/]`,
        message:
          "ensureInstance cannot be called on model types. Use ensureKnownXXX instead.",
      },
      {
        selector: `BinaryExpression[operator='instanceof'] > Identifier[name=/\\b(${TYPES})\\b/]`,
        message:
          "instanceof cannot be used with model types. Use isKnownXXX instead.",
      },
    ],
    "react/forbid-elements": [
      "error",
      {
        forbid: [
          {
            element: "Link",
            message:
              "Please use <PublicLink> instead to make sure it works with app hosting",
          },
        ],
      },
    ],
    "no-shadow": "error",
    "no-debugger": "off",
    "no-redeclare": "off",
    "no-dupe-class-members": "off",
    "no-unused-vars": "off",
    "no-


uint nodeMask, CommandListType type, ref ID3D12CommandAllocator pCommandAllocator, ref ID3D12PipelineState pInitialState, ref Guid riid, ref void* ppCommandList)
    {
        var @this = thisVtbl.Handle;
        int ret = default;
        fixed (ID3D12CommandAllocator* pCommandAllocatorPtr = &pCommandAllocator)
        {
            fixed (ID3D12PipelineState* pInitialStatePtr = &pInitialState)
            {
                fixed (Guid* riidPtr = &riid)
                {
                    fixed (void** ppCommandListPtr = &ppCommandList)
                    {
                        ret = ((delegate* unmanaged[Stdcall]<ID3D12Device8*, uint, CommandListType, ID3D12CommandAllocator*, ID3D12PipelineState*, Guid*, void**, int>)@this->LpVtbl[12])(@this, nodeMask, type, pCommandAllocatorPtr, pInitialStatePtr, riidPtr, ppCommandListPtr);
                    }
                }
            }
        }
        return ret;
    }

    /// To be documented.
    public static unsafe int CheckFeatureSupport(this ComPtr<ID3D12Device8> thisVtbl, Feature Feature, void* pFeatureSupportData, uint FeatureSupportDataSize)
    {
        var @this = thisVtbl.Handle;
        int ret = default;
        ret = ((delegate* unmanaged[Stdcall]<ID3D12Device8*, Feature, void*, uint, int>)@this->LpVtbl[13])(@this, Feature, pFeatureSupportData, FeatureSupportDataSize);
        return ret;
    }

    /// To be documented.
    public static int CheckFeatureSupport<T0>(this ComPtr<ID3D12Device8> thisVtbl, Feature Feature, ref T0 pFeatureSupportData, uint FeatureSupportDataSize) where T0 : unmanaged
    {
        var @this = thisVtbl.Handle;
        int ret = default;
        fixed (void* pFeatureSupportDataPtr = &pFeatureSupportData)
        {
            ret = ((delegate* unmanaged[Stdcall]<ID3D12Device8*, Feature, void*, uint, int>)@this->LpVtbl[13])(@this, Feature, pFeatureSupportDataPtr, FeatureSupportDataSize);
        }
        return ret;
    }

    /// To be documented.
    public static unsafe int CreateDescriptorHeap(this ComPtr<ID3D12Device8> thisVtbl, [Flow(Silk.NET.Core.Native.FlowDirection.In)] DescriptorHeapDesc* pDescriptorHeapDesc, Guid* riid, void** ppvHeap)
    {
        var @this = thisVtbl.Handle;
        int ret = default;
        ret = ((delegate* unmanaged[Stdcall]<ID3D12Device8*, DescriptorHeapDesc*, Guid*, void**, int>)@this->LpVtbl[14])(@this, pDescriptorHeapDesc, riid, ppvHeap);
        return ret;
    }

    /// To be documented.
    public static unsafe int CreateDescriptorHeap(this ComPtr<ID3D12Device8> thisVtbl, [Flow(Silk.NET.Core.Native.FlowDirection.In)] DescriptorHeapDesc* pDescriptorHeapDesc, Guid* riid, ref void* ppvHeap)
    {
        var @this = thisVtbl.Handle;
        int ret = default;
        fixed (void** ppvHeapPtr = &ppvHeap)
        {
            ret = ((delegate* unmanaged[Stdcall]<ID3D12Device8*, DescriptorHeapDesc*, Guid*, void**, int>)@this->LpVtbl[14])(@this, pDescriptorHeapDesc, riid, ppvHeapPtr);
        }
        return ret;
    }

    /// To be documented.
    public static unsafe int CreateDescriptorHeap(this ComPtr<ID3D12Device8> th


bent Fel, kill Morbent Fel, then return Morbent\'s Bane to Sven at his camp.",
    ["T"] = "모벤트 펠",
  },
  [56] = {
    ["D"] = "어둠의 순찰대의 사령관으로서 어둠골의 주민을 보호하는 것은 내 본연의 임무요. 스톰윈드에서 이곳에 배치했던 경비병들을 철수했기 때문에 이젠 자체 병력만으로 싸워야 하는 상황이오.$B$B당신의 도움이 절실히 필요하오! 어둠골 정남 쪽에 있는 고요의 정원 묘지로 들어가 해골 전사 8마리, 해골 마법사 6마리를 처치해 준다면 어둠의 순찰대에 큰 도움이 될 것이오. 이 언데드 녀석들이 다시는 어둠골을 위협하지 못하도록 해야 하오!",
    ["O"] = "어둠골의 사령관 알시아 이본로크가 해골 전사 8마리와 해골 마법사 6마리를 처치해 달라고 했습니다.",
    ["T"] = "어둠의 순찰대",
  },
  [57] = {
    ["D"] = "$N, I\'m getting reports of an undead infestation in the forest!  If you\'re up to the job, journey to the Raven Hill graveyard and slay 15 of those vile Skeletal Fiends and 15 Skeletal Horrors.  There are also reports of skeletons just south of Darkshire, in and around Tranquil Gardens Cemetery.  The undead must be driven from Duskwood!",
    ["O"] = "Commander Althea Ebonlocke of Darkshire wants you to kill 15 Skeletal Fiends and 15 Skeletal Horrors.",
    ["T"] = "어둠의 순찰대",
  },
  [58] = {
    ["D"] = "까마귀 언덕의 상황은 여전히 나아지지 않고 있소. 마을의 안전을 책임질 순찰대원이 부족한 상황이니 이제 어둠골의 안녕은 당신 손에 달려있소. 다시 한번 까마귀 언덕으로 가서 묘지 동쪽에 있는 역병 걸린 시체 20마리를 처치해 주시오!",
    ["O"] = "어둠골의 사령관 알시아 이본로크가 까마귀 언덕 묘지 동쪽에 있는 역병 걸린 시체 20마리를 처치해 달라고 했습니다.",
    ["T"] = "어둠의 순찰대",
  },
  [59] = {
    ["D"] = "For your shrewdness and valor, I have a marker here that is good for one piece of armor.  I want you to take it to Sara Timberlain at the Eastvale Logging Camp.  Give her the marker, and she will fashion the armor for you.  And after you receive it, $N, use it in the defense of Elwynn.$B$BThe East


am\\gmon.out", (O_WRONLY | O_CREAT | O_TRUNC), 0, NULL);
	if (ret == 0)
	{
		struct gmon_hdr ghdr __attribute__ ((aligned (__alignof__ (long))));

		/* write gmon.out header: */
		mint_bzero (&ghdr, sizeof (struct gmon_hdr));
		memcpy (&ghdr.cookie[0], GMON_MAGIC, sizeof (ghdr.cookie));
		ghdr.version.l = GMON_VERSION;
		(*f->dev->write)(f, (const char *) &ghdr, sizeof (struct gmon_hdr));

		/* write PC histogram: */
		write_hist (f);

		/* write call-graph: */
		write_call_graph (f);

		/* write basic-block execution counts: */
		write_bb_counts (f);

		do_close (rootproc, f);
	}
	else
	{
		FP_FREE (f);
		ALERT (MSG_gmon_out_fail);
	}
}

void
write_profiling (void)
{
	struct gmonparam *p = &_gmonparam;
	long save = p->state;

	p->state = GMON_PROF_OFF;
	if (save == GMON_PROF_ON)
	{
		ALERT (MSG_gmon_out_written);
		write_gmon ();
	}

	p->state = save;
}

void
toogle_profiling (void)
{
	struct gmonparam *p = &_gmonparam;

	if (p->state == GMON_PROF_OFF)
	{
		moncontrol (1);
		ALERT (MSG_gmon_profiler_on);
	}
	else if (p->state == GMON_PROF_ON)
	{
		moncontrol (0);
		ALERT (MSG_gmon_profiler_off);
	}
	else
		ALERT (MSG_gmon_enable_error);
}

# endif /* PROFILING */


!0,longDateFormat:{LT:"H:mm",LTS:"H:mm:ss",L:"DD. MM. YYYY",LL:"D. MMMM YYYY",LLL:"D. MMMM YYYY H:mm",LLLL:"dddd, D. MMMM YYYY H:mm"},calendar:{sameDay:"[danes ob] LT",nextDay:"[jutri ob] LT",nextWeek:function(){switch(this.day()){case 0:return"[v] [nedeljo] [ob] LT";case 3:return"[v] [sredo] [ob] LT";case 6:return"[v] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[v] dddd [ob] LT"}},lastDay:"[v\u010deraj ob] LT",lastWeek:function(){switch(this.day()){case 0:return"[prej\u0161njo] [nedeljo] [ob] LT";case 3:return"[prej\u0161njo] [sredo] [ob] LT";case 6:return"[prej\u0161njo] [soboto] [ob] LT";case 1:case 2:case 4:case 5:return"[prej\u0161nji] dddd [ob] LT"}},sameElse:"L"},relativeTime:{future:"\u010dez %s",past:"pred %s",s:Ha,ss:Ha,m:Ha,mm:Ha,h:Ha,hh:Ha,d:Ha,dd:Ha,M:Ha,MM:Ha,y:Ha,yy:Ha},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:7}}),e.defineLocale("sq",{months:"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_N\xebntor_Dhjetor".split("_"),monthsShort:"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_N\xebn_Dhj".split("_"),weekdays:"E Diel_E H\xebn\xeb_E Mart\xeb_E M\xebrkur\xeb_E Enjte_E Premte_E Shtun\xeb".split("_"),weekdaysShort:"Die_H\xebn_Mar_M\xebr_Enj_Pre_Sht".split("_"),weekdaysMin:"D_H_Ma_M\xeb_E_P_Sh".split("_"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(e){return"M"===e.charAt(0)},meridiem:function(e,a,_){return e<12?"PD":"MD"},longDateFormat:{LT:"HH:mm",LTS:"HH:mm:ss",L:"DD/MM/YYYY",LL:"D MMMM YYYY",LLL:"D MMMM YYYY HH:mm",LLLL:"dddd, D MMMM YYYY HH:mm"},calendar:{sameDay:"[Sot n\xeb] LT",nextDay:"[Nes\xebr n\xeb] LT",nextWeek:"dddd [n\xeb] LT",lastDay:"[Dje n\xeb] LT",lastWeek:"dddd [e kaluar n\xeb] LT",sameElse:"L"},relativeTime:{future:"n\xeb %s",past:"%s m\xeb par\xeb",s:"disa sekonda",ss:"%d sekonda",m:"nj\xeb minut\xeb",mm:"%d minuta",h:"nj\xeb or\xeb",hh:"%d or\xeb",d:"nj\xeb dit\xeb",dd:"%d dit\xeb",M:"nj\xeb muaj",MM:"%d muaj",y:"nj\xeb vit",yy:"%d vite"},dayOfMonthOrdinalParse:/\d{1,2}\./,ordinal:"%d.",week:{dow:1,doy:4}});var ba={words:{ss:["\u0441\u0435\u043a\u0443


#
# SPDX-License-Identifier: MIT
#
# Copyright (c) 2025 Carsten Igel.
#
# This file is part of simplepycons
# (see https://github.com/carstencodes/simplepycons).
#
# This file is published using the MIT license.
# Refer to LICENSE for more information
#
""""""
# pylint: disable=C0302
# Justification: Code is generated

from typing import TYPE_CHECKING

from .base_icon import Icon

if TYPE_CHECKING:
    from collections.abc import Iterable

class HdfcBankIcon(Icon):
    """"""
    @property
    def name(self) -> "str":
        return "hdfcbank"

    @property
    def original_file_name(self) -> "str":
        return "hdfcbank.svg"

    @property
    def title(self) -> "str":
        return "HDFC Bank"

    @property
    def primary_color(self) -> "str":
        return "#004B8D"

    @property
    def raw_svg(self) -> "str":
        return ''' <svg xmlns="http://www.w3.org/2000/svg"
 role="img" viewBox="0 0 24 24">
    <title>HDFC Bank</title>
     <path d="M.572 0v10.842h3.712V4.485h6.381V0Zm12.413
 0v4.485h6.383v6.357h4.06V0Zm-4.64 8.53v6.938h6.963V8.53ZM.572
 13.153V24h10.093v-4.486h-6.38v-6.361zm18.796
 0v6.361h-6.383V24h10.443V13.153Z" />
</svg>'''

    @property
    def guidelines_url(self) -> "str | None":
        _value: "str" = ''''''
        if len(_value) > 0:
            return _value
        return None

    @property
    def source(self) -> "str":
        return ''''''

    @property
    def license(self) -> "tuple[str | None, str | None]":
        _type: "str | None" = ''''''
        _url: "str | None" = ''''''

        if _type is not None and len(_type) == 0:
            _type = None

        if _url is not None and len(_url) == 0:
            _url = None

        return _type, _url

    @property
    def aliases(self) -> "Iterable[str]":
        yield from [
            "HDB",
        ]


65|35|68|72|25.05|10.02",
				"|65|35|68.5|73.5|20.04|3.34",
				"|65|35|69|74|15.03|6.68",
				"|65|35|69|75|20.04|3.34",
				"|65|35|69|75.5|25.05|3.34",
				"|65|35|70|76|15.03|3.34"
			}
		}
	},
	[25811] = {
		["Quest"] = "Shuttin Her Down|0|28|26|0|0|0",
		["Start"] = "41276|65|32|72.0|75.9",
		["End"] = "41276|65|32|72.0|75.9",
		["Objectives"] = 	{
			[1] = 		{
				"|65|35|70.5|76|5.01|3.34"
			},
			[2] = 		{
				"|65|35|69.5|75|5.01|3.34"
			},
			[3] = 		{
				"|65|35|68.5|71|5.01|3.34"
			},
			[4] = 		{
				"|65|35|68|72|10.02|6.68"
			}
		}
	},
	[25815] = {
		["Quest"] = "The Third Fleet|1|22|20|25816|0|0",
		["Start"] = "1239|56|32|10.9|59.7",
		["End"] = "1239|56|32|10.9|59.7",
		["Objectives"] = 	{
			[1] = 		{
				"|56|35|10.5|61.5|5.01|3.34"
			}
		}
	},
	[25816] = {
		["Quest"] = "Cursed to Roam|1|22|20|25817|0|0",
		["Start"] = "1239|56|32|10.9|59.7",
		["End"] = "41307|56|32|15.2|29.4"
	},
	[25817] = {
		["Quest"] = "The Cursed Crew|1|22|20|25818|0|0",
		["Start"] = "41307|56|32|15.2|29.4",
		["End"] = "41307|56|32|15.2|29.4",
		["Objectives"] = 	{
			[1] = 		{
				"|56|35|13.5|27.5|15.03|10.02",
				"|56|35|13|29|20.04|3.34",
				"|56|35|12.5|29.5|25.05|3.34",
				"|56|35|12.5|30|20.04|6.68"
			},
			[2] = 		{
				"|56|35|14|23.5|15.03|6.68",
				"|56|35|13.5|24.5|20.04|3.34",
				"|56|35|13.5|25|15.03|3.34",
				"|56|35|13|25.5|20.04|6.68",
				"|56|35|12.5|26.5|25.05|3.34",
				"|56|35|12|27|30.06|3.34",
				"|56|35|11.5|27.5|35.07|6.68",
				"|56|35|11.5|28.5|30.06|13.36"
			}
		}
	},
	[25818] = {
		["Quest"] = "Lifting the Curse|1|23|20|25819|0|0",
		["Start"] = "41307|56|32|15.2|29.4",
		["End"] = "11


_write() {
                if let Err(e) = self.tls.write_tls(&mut self.tcp) {
                    return Err(std::io::Error::new(std::io::ErrorKind::Other, e));
                }
            }
        }

        debug!("Handshake done <<{}>>", self.channel);
        Ok(Async::Ready(()))
    }
}
#![feature(custom_inner_attributes)]
#![clippy::msrv = "1.40"]
#![clippy::msrv = "=1.35.0"]
#![clippy::msrv = "1.10.1"]

mod foo {
    #![clippy::msrv = "1"]
    #![clippy::msrv = "1.0.0"]
}

fn main() {}
use crate::project_repository::{
    from_project_attributes, from_project_category, to_project_attributes, to_project_category,
};

use anyhow::Result;
use futures::{
    future::{self, TryFutureExt},
    lock::Mutex,
    stream::TryStreamExt,
};
use ref_cast::RefCast;
use sos21_database::{command, model as data, query};
use sos21_domain::context::registration_form_repository::{
    PendingProjectRegistrationForm, RegistrationFormRepository,
};
use sos21_domain::model::{
    date_time::DateTime,
    pending_project::PendingProjectId,
    project::ProjectId,
    project_query::{ProjectQuery, ProjectQueryConjunction},
    registration_form::{
        RegistrationForm, RegistrationFormDescription, RegistrationFormId, RegistrationFormName,
    },
    user::UserId,
};
use sqlx::{Postgres, Transaction};

#[derive(Debug, RefCast)]
#[repr(transparent)]
pub struct RegistrationFormDatabase(Mutex<Transaction<'static, Postgres>>);

#[async_trait::async_trait]
impl RegistrationFormRepository for RegistrationFormDatabase {
    async fn store_registration_form(&self, registration_form: RegistrationForm) -> Result<()> {
        let mut lock = self.0.lock().await;

        let registration_form_id = registration_form.id.to_uuid();
        if query::find_registration_form(&mut *lock, registration_form_id)
            .await?
            .is_some()
        {
            let query = from_project_query(&registration_form.query);
            command::delete_registration_form_project_query_conjunctions(
                &mut *lock,
                registration_form_id,
            )
            .await?;
            command::insert_registration_form_project_query_conjunctions(
                &mut *lock,
                registration_form_id,
                query,
            )
            .await?;

            let registration_form = from_registration_form(registration_form)?;
            let input = command::update_registration_form::Input {
                id: registration_form.id,
                name: registration_form.name,
                description: registration_form.description,
                items: registration_form.items,
            };
            command::update_registration_form(&mut *lock, input).await?;
        } else {
            let query = from_project_query(&registration_form.query);
            let registration_form = from_registration_form(registration_form)?;

            command::insert_registration_form(&mut *lock, registration_form).await?;
            command::insert_registration_form_project_query_conjunctions(
                &mut *lock,
                registration_form_id,
                query,
            )
            .await?;
        }

        Ok(())
    }

    async fn get_registration_form(
        &self,
        id: RegistrationFormId,
    ) -> Result<Option<RegistrationForm>> {
        let mut lock = self.0.lock().await;

        query::find_registration_form(&mut *lock, id.to_uuid())
            .and_then(|data| future::ready(data.map(to_registration_form).transpo


 dynamic> getStyleSheet(Theme theme) {
    return {
      "messageContainer": BoxDecoration(
        color: Colors.transparent,
      ),
      "reply": BoxDecoration(
        color: Colors.transparent,
      ),
      "message": TextStyle(
        color: theme.centerChannelColor,
        ...typography('Body', 200),
        height: null, // remove line height, not needed and causes problems with md images
      ),
      "pendingPost": BoxDecoration(
        color: Colors.transparent.withOpacity(0.5),
      ),
    };
  }
}

const double SHOW_MORE_HEIGHT = 54;
const List<UserMentionKey> EMPTY_MENTION_KEYS = [];
const List<HighlightWithoutNotificationKey> EMPTY_HIGHLIGHT_KEYS = [];
import 'package:flutter/material.dart';
import 'package:mattermost_flutter/utils/theme.dart';
import 'package:mattermost_flutter/utils/typography.dart';
import 'package:mattermost_flutter/utils/change_opacity.dart';
import 'package:mattermost_flutter/actions/remote/channel.dart';
import 'package:mattermost_flutter/components/touchable_with_feedback.dart';
import 'package:mattermost_flutter/context/server.dart';
import 'package:mattermost_flutter/context/theme.dart';

class ChannelInfo extends StatefulWidget {
  final String channelId;
  final String channelName;
  final String teamName;
  final String? testID;

  const ChannelInfo({
    required this.channelId,
    required this.channelName,
    required this.teamName,
    this.testID,
    Key? key,
  }) : super(key: key);

  @override
  _ChannelInfoState createState() => _ChannelInfoState();
}

class _ChannelInfoState extends State<ChannelInfo> {
  bool isPressed = false;

  @override
  Widget build(BuildContext context) {
    final theme = useTheme(context);
    final serverUrl = useServerUrl(context);

    final styles = _getStyleSheet(theme);

    final channelNameStyle = [
      styles.channel,
      if (isPressed) TextStyle(color: theme.buttonBg),
    ];

    final teamContainerStyle = [
      styles.teamContainer,
      if (!isPressed) Border(
        left: BorderSide(width: 0.5, color: theme.centerChannelColor),
      ),
    ];

    void onChannelNamePressed() {
      if (widget.channelId.isNotEmpty) {
        switchToChannelById(serverUrl, widget.channelId);
      }
    }

    void togglePressed() {
      setState(() {
        isPressed = !isPressed;
      });
    }

    return Container(
      margin: const EdgeInsets.symmetric(vertical: 8),
      padding: const EdgeInsets.symmetric(horizontal: 8),
      child: Row(
        children: [
          Container(
            decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(4),
              overflow: Overflow.visible,
            ),
            child: TouchableWithFeedback(
              onPress: onChannelNamePressed,
              onPressIn: togglePressed,
              onPressOut: togglePressed,
              type: TouchableWithFeedbackType.native,
              underlayColor: changeOpacity(theme.buttonBg, 0.08),
              child: Text(
                widget.channelName,
                style: TextStyle(
                  fontSize: 75,
                  fontWeight: FontWeight.w600,
                  color: changeOpacity(theme.centerChannelColor, 0.72),
                ),
                maxLines: 1,
                overflow: TextOverflow.ellipsis,
              ),
            ),
          ),
          if (widget.teamName.isNotEmpty)
            Container(
              decoration: BoxDecoration(
                border: Border(


 20210330 svn commit: r1073146 [2/3] - in /websites/staging/httpd/trunk/content: ./ security/cvejsontohtml.py security/vulnerabilities-httpd.xml security/vulnerabilities_22.html security/vulnerabilities_24.html) / https://lists.apache.org/thread.html/r9f93cf6dde308d42a9c807784e8102600d0397f5f834890708bf6920%40%3Ccvs.httpd.apache.org%3E ([httpd-cvs] 20210330 svn commit: r1073149 [1/13] - in /websites/staging/httpd/trunk/content: ./ security/ security/json/) / https://lists.apache.org/thread.html/r064df0985779b7ee044d3120d71ba59750427cf53f57ba3384e3773f%40%3Ccvs.httpd.apache.org%3E ([httpd-cvs] 20210330 svn commit: r1888222 - in /httpd/site/trunk/content/security/json: CVE-2010-2068.json CVE-2010-2791.json CVE-2011-0419.json CVE-2011-3368.json) / https://lists.apache.org/thread.html/rad01d817195e6cc871cb1d73b207ca326379a20a6e7f30febaf56d24%40%3Ccvs.httpd.apache.org%3E ([httpd-cvs] 20210603 svn commit: r1075360 [2/3] - in /websites/staging/httpd/trunk/content: ./ security/json/CVE-2021-31618.json security/vulnerabilities_13.html security/vulnerabilities_20.html security/vulnerabilities_22.html security/vulnerabilities_24.html) / https://lists.apache.org/thread.html/r476d175be0aaf4a17680ef98c5153b4d336eaef76fb2224cc94c463a%40%3Ccvs.httpd.apache.org%3E ([httpd-cvs] 20210606 svn commit: r1075467 [2/2] - in /websites/staging/httpd/trunk/content: ./ security/json/CVE-2021-31618.json security/vulnerabilities_13.html security/vulnerabilities_20.html security/vulnerabilities_22.html security/vulnerabilities_24.html) / https://lists.apache.org/thread.html/r75cbe9ea3e2114e4271bbeca7aff96117b50c1b6eb7c4772b0337c1f%40%3Ccvs.httpd.apache.org%3E ([httpd-cvs] 20210606 svn commit: r1075470 [3/4] - in /websites/staging/httpd/trunk/content: ./ security/json/CVE-2020-13938.json security/vulnerabilities_13.html security/vulnerabilities_20.html security/vulnerabilities_22.html security/vulnerabilities_24.html) |
| cve-2010-1452 | extension | nan | nan | published | 2010-07-28T19:32:00 | 2024-08-07T01:21:19.170Z | the (1) mod cache and (2) mod dav modules in the apache http server 2.2.x before 2.2.16 allow remote attackers to cause a denial of service (process crash) via a request that lacks a path. | n/a:n/a (n/a) [affected] | nan | nan | https://issues.apache.org/bugzilla/show_bug.cgi?id=49246 / http://www.vupen.com/english/advisories/2011/0291 (ADV-2011-0291) / http://www.vupen.com/english/advisories/2010/30


.hentoid.util.network.getOnlineDocument
import org.jsoup.nodes.Element
import timber.log.Timber
import java.io.IOException

const val IMAGE_PATH = "https://static.hentaicdn.com/hentai"

class Hentai2ReadParser : BaseChapteredImageListParser() {
    companion object {
        @Throws(IOException::class)
        fun getDataFromScripts(scripts: List<Element>?): H2RInfo? {
            if (scripts != null) {
                for (e in scripts) {
                    if (e.childNodeSize() > 0 && e.childNode(0).toString().contains("'images' :")) {
                        val jsonStr = e.childNode(0).toString().replace("\n", "").trim { it <= ' ' }
                            .replace("var gData = ", "").replace("};", "}")
                        return jsonToObject(jsonStr, H2RInfo::class.java)
                    }
                }
            }
            return null
        }
    }

    data class H2RInfo(
        val title: String,
        val images: List<String>
    )

    override fun isChapterUrl(url: String): Boolean {
        val parts = url.split("/")
        var part = parts[parts.size - 1]
        if (part.isEmpty()) part = parts[parts.size - 2]
        return isNumeric(part)
    }

    override fun getChapterSelector(): ChapterSelector {
        return ChapterSelector(listOf(".nav-chapters a[href^=\$galleryUrl]"))
    }

    @Throws(Exception::class)
    override fun parseChapterImageFiles(
        content: Content,
        chp: Chapter,
        targetOrder: Int,
        headers: List<Pair<String, String>>?,
        fireProgressEvents: Boolean
    ): List<ImageFile> {
        getOnlineDocument(
            chp.url,
            headers ?: fetchHeaders(content),
            content.site.useHentoidAgent,
            content.site.useWebviewAgent
        )?.let { doc ->
            val scripts: List<Element> = doc.select("script")
            getDataFromScripts(scripts)?.let { info ->
                val imageUrls = info.images.map { s -> IMAGE_PATH + s }
                if (imageUrls.isNotEmpty()) return urlsToImageFiles(
                    imageUrls,
                    targetOrder,
                    StatusContent.SAVED,
                    1000,
                    chp
                )
            } ?: run { Timber.i("Chapter parsing failed for %s : no pictures found", chp.url) }
        } ?: run {
            Timber.i("Chapter parsing failed for %s : no response", chp.url)
        }
        return emptyList()
    }
}package me.devsaki.hentoid.parsers.images

import me.devsaki.hentoid.database.domains.Chapter
import me.devsaki.hentoid.database.domains.Content
import me.devsaki.hentoid.database.domains.ImageFile
import me.devsaki.hentoid.enums.StatusContent
import me.devsaki.hentoid.parsers.getImgSrc
import me.devsaki.hentoid.parsers.urlsToImageFiles
import me.devsaki.hentoid.util.network.getOnlineDocument

class AllPornComicParser : BaseChapteredImageListParser() {
    override fun isChapterUrl(url: String): Boolean {
        return url.split("/").filterNot { it.isEmpty() }.count() > 4
    }

    override fun getChapterSelector(): ChapterSelector {
        return ChapterSelector(listOf("[class^=wp-manga-chapter] a"))
    }

    @Throws(Exception::class)
    override fun parseChapterImageFiles(
        content: Content,
        chp: Chapter,
        targetOrder: Int,
        headers: List<Pair<String, String>>?,
        fireProgressEvents: Boolean
    ): List<ImageFile> {


setupTimerIrq:

    /* disable global interrupts */
    mfmsr   r7
    rlwinm  r4,r7,0,17,15
    mtmsr   r4
    isync

    /* disable decrementer interrupt and auto-reload */
    mfspr   r4,TCR
    addis   r5,0,(TCR_DIE | TCR_ARE)
    andc    r4,r4,r5
	mtspr	TCR,r4

    /* disable decrementer */
    xor     r6,r6,r6
	mtspr	DEC,r6

    /* clear decrementer interrupt status */
    addis   r5,0,TSR_DIS
    mtspr   TSR,r5

    /* setup decrementer counter registers */
	mtspr	DECAR,r3
    mtspr   DEC,r3

    /* enable auto-reload */
    oris    r4,r4,TCR_ARE
    mtspr   TCR,r4

    /* reenable global interrupts */
    mtmsr   r7

    blr

    ENDFUNC(p_asm_setupTimerIrq)

/*----------------------------------------------------------------------------
 |
 |  FUNCTION:
 |
 |    UVAR_t p_pos_findbit(const UVAR_t bitfield, UVAR_t rrOffset);
 |
 |    Returns the number of the first set bit.
 |
 |    Note:
 |      This code is optimized, it fits into 3 cache lines.
 |
 *--------------------------------------------------------------------------*/

    .align 5     /* align to even 32 byte boundary */
p_pos_findbit:   /* input:  r3 = bitmask, r4 = offset */

    /* rotate r3 right by r4, store result in r6 */
    subfic      r5,r4,32
    rlwnm       r6,r3,r5,0,31

    /* r5 = 1 */
    addi        r5,0,1

    /* if (r6 & 0x0000FFFF == 0) { r5 |= 16; r6 >>= 16 } */
    rlwinm.     r3,r6,0,16,31
    bne         ..nzero0
    rlwinm      r6,r6,16,16,31
    ori         r5,r5,16
..nzero0:

    /* if (r6 & 0x000000FF == 0) { r5 |= 8; r6 >>= 8 } */
    rlwinm.     r3,r6,0,24,31
    bne         ..nzero1
    rlwinm      r6,r6,24,24,31
    ori         r5,r5,8
..nzero1:

    /* if (r6 & 0x0000000F == 0) { r5 |= 4; r6 >>= 4 } */
    rlwinm.     r3,r6,0,28,31
    bne         ..nzero2
    rlwinm      r6,r6,28,28,31
    ori         r5,r5,4
..nzero2:

    /* if (r6 & 0x00000003 == 0) { r5 |= 2; r6 >>= 2 } */
    rlwinm.     r3,r6,0,30,31
    bne         ..nzero3
    rlwinm      r6,r6,30,30,31
    ori         r5,r5,2
..nzero3:

    /* if (r6 & 0x00000001 != 0) { r5 &= ~1; } */
    rlwinm      r3,r6,0,31,31
    xor         r5,r5,r3

    /* return (r5 + r4) & 31; */
    add         r6,r5,r4
    rlwinm      r3,r6,0,27,31

    blr

    ENDFUNC(p_pos_findbit)

/*----------------------------------------------------------------------------
 |
 |  FUNCTION:
 |
 |    void p_pos_startFirstContext(void);
 |
 |    Starts the first task.
 |
 *--------------------------------------------------------------------------*/

    .align  2
p_pos_startFirstContext:

    /* start decrementer timer interrupt: */

    /* 1) clear decrementer interrupt sta


m the auction house. |only if not selfmade
|tip Farm them with Herbalism. |only if selfmade
'|complete skill("Alchemy") >= 60 |or
step
talk Kor'geld##3348
|tip Inside the building.
buy 65 Empty Vial##3371 |goto Orgrimmar 56.06,34.15 |or
'|complete skill("Alchemy") >= 60 |or
step
Open Your Alchemy Crafting Panel:
_<Create 65 Minor Healing Potions>_
|tip Save these, you will need them later.
collect 65 Minor Healing Potion##118 |or
'|complete skill("Alchemy") >= 110 |or
step
Open Your Alchemy Crafting Panel:
_<Create Minor Healing Potions>_
|tip You may need to create a few more of these.
|tip Save 65 of these, you will need them later.
|tip Each additional one requires one Peacebloom, one Silverleaf, and one Empty Vial.
Reach Skill 60 in Alchemy |skill Alchemy,60
step
Reach Level 10 |ding 10
|tip You must be at least level 10 to train Journeyman professions.
|tip Use the leveling guides to accomplish this.
step
talk Yelmak##3347
|tip Inside the building.
Train Journeyman Alchemy |skillmax Alchemy,150 |goto Orgrimmar/0 56.84,33.05
step
talk Yelmak##3347
|tip Inside the building.
Train Lesser Healing Potion |learn Lesser Healing Potion##2337 |goto Orgrimmar/0 56.84,33.05
step
label "Collect_65_Briarthorn_Loop"
map Silverpine Forest
path follow smart; loop off; dist 20
path	49.04,32.38	49.42,35.61	49.42,37.96	49.76,40.18	50.52,43.34
path	52.66,43.16	54.51,44.07	52.79,45.65	51.98,49.91	52.04,52.85
path	51.86,56.81	52.43,59.23	51.75,62.42	54.26,63.98	55.27,61.88
path	56.68,60.37	58.05,62.07	56.16,64.50	54.77,66.89	54.34,71.81
path	54.65,74.35	56.82,76.43	59.65,77.20	61.93,77.46	64.26,78.75
path	66.96,79.79
Click herbs as you follow the path around this area
|tip Briarthorn can share a spawn with other herbs in the area, so pick them all.
|tip Track them on your minimap with "Find Herbs".
collect 65 Briarthorn##2450 |or
|tip Farm them with Herbalism or purchase them from the auction house. |only if not selfmade
|tip Farm them with Herbalism. |only if selfmade
'|complete skill("Alchemy") >= 110 |or
'|goto Silverpine Forest 66.96,79.79 < 20 |noway |c |or
step
map Silverpine Forest
path follow smart; loop off; dist 20
path	66.96,79.79	64.26,78.75	61.93,77.46	59.65,77.20	56.82,76.43
path	54.65,74.35	54.34,71.81	54.77,66.89	56.16,64.50	58.05,62.07
path	56.68,60.37	55.27,61.88	54.26,63.98	51.75,62.42	52.43,59.23
path	51.86,56.81	52.04,52.85	51.98,49.91	52.79,45.65	54.51,44.07
path	52.66,43.16	50.52,43