./WheelSliceButton";
import { WheelCenterButton } from "./WheelCenterButton";
import { Util } from "../Util";
import { IWheelConfig, IWheelConfigButton } from "./IWheelConfig";
import { DisabledSlice } from "./DisabledSlice";

export class Wheel {

    // Wheel constants
    public static readonly WHEEL_INNER_RADIUS = 120;
    public static readonly WHEEL_INNER_SEGMENTS = 64;
    public static readonly WHEEL_OUTER_RADIUS = 250;
    public static readonly WHEEL_OUTER_SEGMENTS = 128;
    public static readonly WHEEL_CENTER_RADIUS = 70;
    public static readonly WHEEL_ICON_SIZE = 50;
    public static readonly WHEEL_CENTER = new Vector2(Wheel.WHEEL_OUTER_RADIUS, Wheel.WHEEL_OUTER_RADIUS);

    private static readonly CLASS_NAME = "Wheel";
    private static serial = new Serial();
    private element: HTMLElement;
    private id: number;

    private config: IWheelConfig;
    public position: Vector2;

    private center:     WheelCenterButton|null = null;
    private north:      WheelSliceButton|DisabledSlice;
    private northEast:  WheelSliceButton|DisabledSlice;
    private east:       WheelSliceButton|DisabledSlice;
    private southEast:  WheelSliceButton|DisabledSlice;
    private south:      WheelSliceButton|DisabledSlice;
    private southWest:  WheelSliceButton|DisabledSlice;
    private west:       WheelSliceButton|DisabledSlice;
    private northWest:  WheelSliceButton|DisabledSlice;

    constructor(position:Vector2, config:IWheelConfig, parent:Node=Util.body) {

        this.id = Wheel.serial.next();
        this.element = <HTMLElement><unknown> document.createElementNS("http://www.w3.org/2000/svg", "svg");
        this.element.id = Wheel.CLASS_NAME +"-"+ this.id;
        this.element.classList.add(Wheel.CLASS_NAME);
        parent.appendChild(this.element);

        this.config = config;
        this.position = position;

        this.element.setAttribute("width", Wheel.WHEEL_OUTER_RADIUS * 2 +"px");
        this.element.setAttribute("height", Wheel.WHEEL_OUTER_RADIUS * 2 +"px");
        this.element.style['left'] = position.x +"px";
        this.element.style['top'] = position.y +"px";

        // Set all the buttons on this wheel
        // If necessary, set the back button on the wheels that the buttons lead to

        if (config.c)
            this.center = new WheelCenterButton( config.c, this, parent=this.element);

        if (config.n) {
            if (config.n.wheel && !config.n.wheel.s)
                config.n.wheel.s = this.backButton();
            this.north = new WheelSliceButton(0, config.n, this, this.element)
        } else
            this.north = new DisabledSlice(0, this.element);

        if (config.ne) {
            if (config.ne.wheel && !config.ne.wheel.sw)
                config.ne.wheel.sw = this.backButton();
            this.northEast = new WheelSliceButton(1, config.ne, this, this.element)
        } else
            this.northEast = new DisabledSlice(1, this.element);

        if (config.e) {
            if (config.e.wheel && !config.e.wheel.w)
                config.e.wheel.w = this.backButton();
            this.east = new WheelSliceButton(


le+'" data-toggle="dropdown" tabindex="-1"> </button>

'+a.style.normal+'

'+a.style.blockquote+'

'+a.style.pre+'

'+a.style.h1+'

'+a.style.h2+'

'+a.style.h3+'

'+a.style.h4+'

'+a.style.h5+'

'+a.style.h6+"

"},fontname:function(a){var b=["Serif","Sans","Arial","Arial Black","Courier","Courier New","Comic Sans MS","Helvetica","Impact","Lucida Grande","Lucida Sans","Tahoma","Times","Times New Roman","Verdana"],c='<button type="button" class="btn btn-default btn-sm btn-small dropdown-toggle" data-toggle="dropdown" title="'+a.font.name+'" tabindex="-1">Arial </button>';c+='
';for(var d=0;d<b.length;d++)c+='
 '+b[d]+"
";return c+="
"},fontsize:function(a){return'<button type="button" class="btn btn-default btn-sm btn-small dropdown-toggle" data-toggle="dropdown" title="'+a.font.size+'" tabindex="-1">11 </button>

 8

 9

 10

 11

 12

 14

 18

 24

 36

'},color:function(a){return'<button type="button" class="btn btn-default btn-sm btn-small note-recent-color" title="'+a.color


/// <summary>
        /// A pointer to a <see cref="COR_PRF_FUNCTION_ARGUMENT_RANGE"/> structure that contains the value that is returned from the function.<para/>
        /// To access return value information, the COR_PRF_ENABLE_FUNCTION_RETVAL flag must be set. The profiler can use the <see cref="CorProfilerInfo.EventMask"/> to set the event flags.
        /// </summary>
        public COR_PRF_FUNCTION_ARGUMENT_RANGE pRetvalRange { get; }

        public GetFunctionLeave3InfoResult(COR_PRF_FRAME_INFO pFrameInfo, COR_PRF_FUNCTION_ARGUMENT_RANGE pRetvalRange)
        {
            this.pFrameInfo = pFrameInfo;
            this.pRetvalRange = pRetvalRange;
        }
    }
}


�驞荓蓱蚲評軿郱鲆聠艵缾]'},
{'82967',	'(?i)[錫鏭隙隰饎騽鰼係傒僖吸喜喺嘻嚱媳嬉屭嵠巇席徙怸恓悉惁憘戏戱扢扸撕敼晞晰暿析栖槢歖汐洗淅溪漇焟煕熄熙熺燨牺犔犧玺皙睎瞦矽稀穸糦細縘细習膝茜蒠蓆蜥螅蟋袭襲西譆貕蹊邜郋郤釸鎴隟鱚鳛]jing?[品姘娦嬪拼榀瀕琕砏穦苹蘋貧頻频馪嚬娉嫔拚朩汖涄牝玭矉礗聘薲蠙贫顰颦驞荓蓱蚲評軿郱鲆聠艵缾]',	'(?i)[錫鏭隙隰饎騽鰼係傒僖吸喜喺嘻嚱媳嬉屭嵠巇席徙怸恓悉惁憘戏戱扢扸撕敼晞晰暿析栖槢歖汐洗淅溪漇焟煕熄熙熺燨牺犔犧玺皙睎瞦矽稀穸糦細縘细習膝茜蒠蓆蜥螅蟋袭襲西譆貕蹊邜郋郤釸鎴隟鱚鳛]jing?[品姘娦嬪拼榀瀕琕砏穦苹蘋貧頻频馪嚬娉嫔拚朩汖涄牝玭矉礗聘薲蠙贫顰颦驞荓蓱蚲評軿郱鲆聠艵缾]'},
{'82968',	'(?i)[錫鏭隙隰饎騽鰼係傒僖吸喜喺嘻嚱媳嬉屭嵠巇席徙怸恓悉惁憘戏戱扢扸撕敼晞晰暿析栖槢歖汐洗淅溪漇焟煕熄熙熺燨牺犔犧玺皙睎瞦矽稀穸糦細縘细習膝茜蒠蓆蜥螅蟋袭襲西譆貕蹊邜郋郤釸鎴隟鱚鳛]jing?[乒凴坪娉屛帡幈慿枰泙涄焩瓶甹砰竮簈聘胓苹萍蘋蛢评頩鮃鵧俜凭呯塀屏岼帲平憑檘洴淜玶甁砯秤箳]',	'(?i)[錫鏭隙隰饎騽鰼係傒僖吸喜喺嘻嚱媳嬉屭嵠巇席徙怸恓悉惁憘戏戱扢扸撕敼晞晰暿析栖槢歖汐洗淅溪漇焟煕熄熙熺燨牺犔犧玺皙睎瞦矽稀穸糦細縘细習膝茜蒠蓆蜥螅蟋袭襲西譆貕蹊邜郋郤釸鎴隟鱚鳛]jing?[乒凴坪娉屛帡幈慿枰泙涄焩瓶甹砰竮簈聘胓苹萍蘋蛢评頩鮃鵧俜凭呯塀屏岼帲平憑檘洴淜玶甁砯秤箳]'},
{'82969',	'c进苹围您',	'c进苹围您'},
{'82970',	'希jin评',


object, MaxWrapperInternal<T>, T>;
pub type MSPObjWrapper<T> = Wrapper<max_sys::t_pxobject, MSPWrapperInternal<T>, T>;

pub type FloatCBHash<T> = HashMap<usize, FloatCB<T>>;
pub type IntCBHash<T> = HashMap<usize, IntCB<T>>;

pub type DeferMethodWrapped<T> = extern "C" fn(
    wrapper: &T,
    sym: *mut max_sys::t_symbol,
    argc: c_long,
    argv: *const max_sys::t_atom,
);

//reexports
///trampoline for attribute getters
pub use median_macros::wrapped_attr_get_tramp as attr_get_tramp;
///trampoline for attribute setters
pub use median_macros::wrapped_attr_set_tramp as attr_set_tramp;
///trampoline for deffered calls
pub use median_macros::wrapped_defer_tramp as defer_tramp;
///trampoline for list methods (ditch selector)
pub use median_macros::wrapped_list_tramp as list_tramp;
///trampoline for seletor list methods
pub use median_macros::wrapped_sel_list_tramp as sel_list_tramp;
///general use trampoline
pub use median_macros::wrapped_tramp as tramp;

//we only use ClassMaxObjWrapper in CLASSES after we've registered the class, for max's usage this is
//Send
#[repr(transparent)]
struct ClassMaxObjWrapper(*mut max_sys::t_class);
unsafe impl Send for ClassMaxObjWrapper {}

/// A trait used by both Max and MSP objects.
///
/// # Remarks
/// If you're using the macro system to wrap your external and unless you need to override the
/// `ClassType` or `handle_notification`, you might not actually implement this explicitly.
pub trait ObjWrapped<T>: Sized + Sync + 'static {
    /// The name of your class, this is what you'll type into a box in Max if your class is a
    /// `ClassType::Box`.
    ///
    /// You can add additional aliases in the `class_setup` method.
    fn class_name() -> &'static str;

    /// The type of your class. Defaults to 'box' which creates visual objects in Max.
    fn class_type() -> ClassType {
        ClassType::Box
    }

    /// Handle notifications that your object gets
    fn handle_notification(&self, _notification: &Notification) {}
}

/// The trait to implement for your object to be wrapped as a Max object.
pub trait MaxObjWrapped<T>: ObjWrapped<T> {
    /// A constructor for your object.
    ///
    /// # Arguments
    ///
    /// * `builder` - A builder for constructing inlets/oulets/etc.
    fn new(builder: &mut dyn MaxWrappedBuilder<T>) -> Self;

    /// Register any methods you need for your class.
    fn class_setup(_class: &mut Class<MaxObjWrapper<Self>>) {
        //default, do nothing
    }
}

/// The trait to implement for your object to be wrapped as a MSP object.
pub trait MSPObjWrapped<T>: ObjWrapped<T> {
    /// A constructor for your object.
    ///
    /// # Arguments
    ///
    /// * `builder` - A builder for constructing inlets/oulets/etc.
    fn new(builder: &mut dyn MSPWrappedBuilder<T>) -> Self;

    /// Perform DSP.
    fn perform(&self, ins: &[&[f64]], outs: &mut [&mut [f64]], nframes: usize);

    /// Register any methods you need for your class.
    fn class_setup(_class: &mut Class<MSPObjWrapper<Self>>) {
        //default, do nothing
    }

    /// Optionally do any setup you need just before perform is called
    ///
    /// # Arguments
    /// * `sample_rate`: the audio sampling rate for the object in the DSP chain.


 = "M4";
        Mapping m5 = new Mapping();
        m5._package = "test";
        m5.name = "M5";
        Mapping m6 = new Mapping();
        m6._package = "test";
        m6.name = "M6";
        Mapping m7 = new Mapping();
        m7._package = "test";
        m7.name = "M7";

        MutableMap<DependencyManagement.PackageableElementPathPair, MutableSet<String>> elementPrerequisites = Maps.mutable.empty();
        elementPrerequisites.put(new DependencyManagement.PackageableElementPathPair(m1, m1.getPath()), Sets.fixedSize.empty());
        elementPrerequisites.put(new DependencyManagement.PackageableElementPathPair(m2, m2.getPath()), Sets.fixedSize.with(m1.getPath()));
        elementPrerequisites.put(new DependencyManagement.PackageableElementPathPair(m3, m3.getPath()), Sets.fixedSize.with(m1.getPath(), m7.getPath()));
        elementPrerequisites.put(new DependencyManagement.PackageableElementPathPair(m4, m4.getPath()), Sets.fixedSize.with(m3.getPath()));
        elementPrerequisites.put(new DependencyManagement.PackageableElementPathPair(m5, m5.getPath()), Sets.fixedSize.with(m3.getPath()));
        elementPrerequisites.put(new DependencyManagement.PackageableElementPathPair(m6, m6.getPath()), Sets.fixedSize.with(m4.getPath()));
        elementPrerequisites.put(new DependencyManagement.PackageableElementPathPair(m7, m7.getPath()), Sets.fixedSize.with(m4.getPath()));

        String expectedErrorMessage = "Detected a circular dependency in element prerequisites graph!\nCycle: test::M7 -> test::M4 -> test::M3 -> test::M7";
        try
        {
            dependencyManagement.topologicallySortElements(elementPrerequisites);
            Assert.fail("Expected compilation error with message: " + expectedErrorMessage + "; but no error occurred");
        }
        catch (EngineException e)
        {
            Assert.assertEquals(expectedErrorMessage, e.getMessage());
        }
    }
}
// Copyright 2020 Goldman Sachs
//
// 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 org.finos.legend.engine.language.pure.compiler.toPureGraph;

import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Type;
import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport;

public interface IPureModel
{
    CompiledExecutionSupport getExecutionSupport();

    Type getType(String s);

    org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Enum getEnumValue(String typeStr, String value);
}
// Copyright 2024 Goldman Sachs
//
// 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 org.finos.legend.engine.language.pure.compiler.toPureGraph;

import org.eclipse.collections.api.factory.Lists;
import org.eclipse.collections.api.list.MutableList;
import org


2b2b', endColorstr='#111', GradientType=0) !important;color:#fff}.bg-maroon-gradient{background:#D81B60 !important;background:-webkit-gradient(linear, left bottom, left top, color-stop(0, #D81B60), color-stop(1, #e73f7c)) !important;background:-ms-linear-gradient(bottom, #D81B60, #e73f7c) !important;background:-moz-linear-gradient(center bottom, #D81B60 0%, #e73f7c 100%) !important;background:-o-linear-gradient(#e73f7c, #D81B60) !important;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e73f7c', endColorstr='#D81B60', GradientType=0) !important;color:#fff}.description-block .description-icon{font-size:16px}.no-pad-top{padding-top:0}.position-static{position:static !important}.list-header{font-size:15px;padding:10px 4px;font-weight:bold;color:#666}.list-seperator{height:1px;background:#f4f4f4;margin:15px 0 9px 0}.list-link>a{padding:4px;color:#777}.list-link>a:hover{color:#222}.font-light{font-weight:300}.user-block:before,.user-block:after{content:" ";display:table}.user-block:after{clear:both}.user-block img{width:40px;height:40px;float:left}.user-block .username,.user-block .description,.user-block .comment{display:block;margin-left:50px}.user-block .username{font-size:16px;font-weight:600}.user-block .description{color:#999;font-size:13px}.user-block.user-block-sm .username,.user-block.user-block-sm .description,.user-block.user-block-sm .comment{margin-left:40px}.user-block.user-block-sm .username{font-size:14px}.img-sm,.img-md,.img-lg,.box-comments .box-comment img,.user-block.user-block-sm img{float:left}.img-sm,.box-comments .box-comment img,.user-block.user-block-sm img{width:30px !important;height:30px !important}.img-sm+.img-push{margin-left:40px}.img-md{width:60px;height:60px}.img-md+.img-push{margin-left:70px}.img-lg{width:100px;height:100px}.img-lg+.img-push{margin-left:110px}.img-bordered{border:3px solid #d2d6de;padding:3px}.img-bordered-sm{border:2px solid #d2d6de;padding:2px}.attachment-block{border:1px solid #f4f4f4;padding:5px;margin-bottom:10px;background:#f7f7f7}.attachment-block .attachment-img{max-width:100px;max-height:100px;height:auto;float:left}.attachment-block .attachment-pushed{margin-left:110px}.attachment-block .attachment-heading{margin:0}.attachment-block .attachment-text{color:#555}.connectedSortable{min-height:100px}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sort-highlight{background:#f4f4f4;border:1px dashed #ddd;margin-bottom:10px}.full-opacity-hover{opacity:.65;filter:alpha(opacity=65)}.full-opacity-hover:hover{opacity:1;filter:alpha(opacity=100)}.chart{position:relative;overflow:hidden;width:100%}.chart svg,.chart canvas{width:100% !important}hr{border-top:1px solid #555}#red .slider-selection{background:#f56954}#blue .s


) {
        result.write('${semicolon}filterQuality: $filterQuality');
        semicolon = '; ';
      }
      if (shader != null) {
        result.write('${semicolon}shader: $shader');
        semicolon = '; ';
      }
      if (imageFilter != null) {
        result.write('${semicolon}imageFilter: $imageFilter');
        semicolon = '; ';
      }
      if (invertColors) {
        result.write('${semicolon}invert: $invertColors');
      }
      result.write(')');
      resultString = result.toString();
      return true;
    }());

    return resultString;
  }
}
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

@DefaultAsset('skwasm')
library skwasm_impl;

import 'dart:ffi';

import 'package:ui/src/engine/skwasm/skwasm_impl.dart';

final class RawShader extends Opaque {}
typedef ShaderHandle = Pointer<RawShader>;

final class RawRuntimeEffect extends Opaque {}
typedef RuntimeEffectHandle = Pointer<RawRuntimeEffect>;

@Native<ShaderHandle Function(
  RawPointArray,
  RawColorArray,
  Pointer<Float>,
  Int,
  Int,
  RawMatrix33,
)>(symbol: 'shader_createLinearGradient', isLeaf: true)
external ShaderHandle shaderCreateLinearGradient(
  RawPointArray endPoints, // two points
  RawColorArray colors,
  Pointer<Float> stops, // Can be nullptr
  int count, // Number of stops/colors
  int tileMode,
  RawMatrix33 matrix, // Can be nullptr
);

@Native<ShaderHandle Function(
  Float,
  Float,
  Float,
  RawColorArray,
  Pointer<Float>,
  Int,
  Int,
  RawMatrix33,
)>(symbol: 'shader_createRadialGradient', isLeaf: true)
external ShaderHandle shaderCreateRadialGradient(
  double centerX,
  double centerY,
  double radius,
  RawColorArray colors,
  Pointer<Float> stops,
  int count,
  int tileMode,
  RawMatrix33 localMatrix,
);

@Native<ShaderHandle Function(
  RawPointArray,
  Float,
  Float,
  RawColorArray,
  Pointer<Float>,
  Int,
  Int,
  RawMatrix33,
)>(symbol: 'shader_createConicalGradient', isLeaf: true)
external ShaderHandle shaderCreateConicalGradient(
  RawPointArray endPoints, // Two points,
  double startRadius,
  double endRadius,
  RawColorArray colors,
  Pointer<Float> stops,
  int count,
  int tileMode,
  RawMatrix33 localMatrix,
);

@Native<ShaderHandle Function(
  Float,
  Float,
  RawColorArray,
  Pointer<Float>,
  Int,
  Int,
  Float,
  Float,
  RawMatrix33,
)>(symbol: 'shader_createSweepGradient', isLeaf: true)
external ShaderHandle shaderCreateSweepGradient(
  double centerX,
  double centerY,
  RawColorArray colors,
  Pointer<Float> stops,
  int count,
  int tileMode,
  double startAngle,
  double endAngle,
  RawMatrix33 localMatrix
);

@Native<Void Function(ShaderHandle)>(symbol: 'shader_dispose', isLeaf: true)
external void shaderDispose(ShaderHandle handle);

@Native<RuntimeEffectHandle Function(SkStringHandle)>(symbol: 'runtimeEffect_create', isLeaf: true)
external RuntimeEffectHandle runtimeEffectCreate(SkStringHandle source);

@Native<Void Function(RuntimeEffectHandle)>(symbol: 'runtimeEffect_dispose', isLeaf: true)


gedList", () => {
  it("can create an empty list", t => {
    let list = new ManagedList();
    t.test(list.count === 0);
  });

  it("can create a non-empty list", t => {
    let record1 = ManagedRecord.create({ foo: "bar" });
    let record2 = ManagedRecord.create({ foo: "baz" });
    let list = new ManagedList(record1, record2);
    t.test(list.count === 2 && list.get(0).foo === "bar" && list.get(1).foo === "baz");
  });

  it("can add items", t => {
    let list = new ManagedList();
    list.add(new ManagedObject());
    list.add(new ManagedObject());
    list.add(new ManagedObject());
    t.test(list.count === 3);
  });

  it("can remove items", t => {
    let list = new ManagedList();
    let o1 = new ManagedObject();
    let o2 = new ManagedObject();
    let o3 = new ManagedObject();
    list.add(o1, o2, o3);
    list.remove(o1);
    list.remove(o3);
    t.test(list.count === 1 && list.indexOf(o2) === 0);
  });

  it("can be observed", t => {
    let changes = 0;
    class Group extends ManagedObject {
      @managed list = new ManagedList();
      @observe static GroupObserver = class {
        onListChange() {
          changes++;
        }
      };
    }
    let g = new Group();
    let o1 = new ManagedObject();
    let o2 = new ManagedObject();
    g.list.add(o1, o2);
    g.list.remove(o1);
    t.test(changes === 4);
  });

  it("can propagate events", t => {
    class Group extends ManagedObject {
      @managed list = new ManagedList().propagateEvents();
    }
    class GroupObserver {
      @onPropertyEvent("list")
      handler(_list: ManagedList, e: ManagedEvent) {
        if (e.name === "Foo") t.count(3);
      }
    }
    Group.addObserver(GroupObserver);
    let g = new Group();
    g.list.add(new ManagedObject(), new ManagedObject(), new ManagedObject());
    g.list.forEach(item => item.emit("Foo"));
  });
});
import styled from "styled-components";

interface ISpinner {
  size?: string;
}

const Spinner = styled.div<ISpinner>`
  display: block;
  margin-top: ${(props) => (props.size === "large" ? "4em" : "2em")};
  margin-right: auto;
  margin-left: auto;
  width: 4em;
  height: 4em;
  padding: 7px;
  transform: ${(props) =>
    props.size === "large" ? "scale(1.5)" : "scale(0.7)"};
`;

const Wrapper = styled.div`
  position: relative;
  width: 4em;
  height: 4em;
  border-radius: 100%;
  left: calc(50% - 2em);

  &::after {
    content: "";
    background: white;
    border-radius: 50%;
    width: 3em;
    height: 3em;
    position: absolute;
    top: 0.5em;
    left: 0.5em;
  }
`;

const Rotator = styled.div`
  position: relative;
  width: 4em;
  border-radius: 4em;
  overflow: hidden;
  animation: rotate 2000ms infinite linear;

  &:before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: blue;
    border: 3px solid white;
    border-radius: 100%;
  }
`;

const InnerSpin = styled.div`
  background: white;
  height: 4em;
  width: 2em;
  animation: rotate-left 2500ms infinite cubic-


5.3'
    end

    local ARGS = T.args or ''
    local EXE
    if VALGRIND and T.valgrind~=false and type(T.run)=='number' then
        EXE = 'valgrind -q --leak-check=full --max-stackframe=4194320 '..OUT_DIR..'/ceu.exe '..ARGS..' 2>&1'
         --or 'valgrind -q --tool=helgrind ./ceu.exe 2>&1'
    else
        EXE = OUT_DIR..'/ceu.exe '..ARGS..' 2>&1'
    end
--DBG(CEU)
--DBG(GCC)

    local go = function (src, exp)
        local ceu = assert(io.open(OUT_DIR..'/_ceu_tmp.ceu', 'w'))
        ceu:write(src)
        ceu:close()
        local exec_ceu = os.execute(CEU)
        assert(exec_ceu==0 or exec_ceu==true)

        if T.gcc then
            local ret = assert(io.popen(GCC)):read'*a'
            assert( string.find(ret, T.gcc, nil, true), ret )
            return
        else
            local gcc = os.execute(GCC)
            assert(gcc==0 or gcc==true)
        end

        if exp == true then
            return  -- T.run==true, do not run
        end

        -- skip "threads" tests with VALGRIND on
        if PROPS.has_threads and VALGRIND then
            --return
        end

        if T.asr then
            local exe = os.execute(EXE)
            assert(exe ~= 256)  -- 256 = OK
        else
            -- test output
            local ret = io.popen(EXE):read'*a'
            assert(not string.find(ret, '==%d+=='), 'valgrind error')
            local v, n_go = string.match(ret, 'END: (.-) (.-)\n')
            v, n_go = tonumber(v), tonumber(n_go)

            if type(exp)=='number' then
                assert(v==exp, ret..' vs '..exp..' expected')
                STATS.n_go = STATS.n_go + n_go
            else
                assert( string.find(ret, exp, nil, true), ret )
            end
        end
    end

    -- T.run = N
    if type(T.run) ~= 'table' then
        print(source)
        go(source, T.run)
    else
        local par = 'par'--(T.awaits and T.awaits>0 and 'par') or 'par/or'
        source =
            par .. [[ do
                ]]..source..[[
            with
                await async do
                    `EVTS
                end
                await FOREVER;
            end
        ]]
        for input, ret2 in pairs(T.run) do
            input = string.gsub(input, '([^;]*)~>(%d[^;]*);?', 'emit %2;')
            input = string.gsub(input, '[ ]*(%d+)[ ]*~>([^;]*);?', 'emit %2(%1);')
            input = string.gsub(input, '~>([^;]*);?', 'emit %1;')
            local source = string.gsub(source, '`EVTS', input)
            go(source, ret2)
        end
    end
end

dofile 'tests.lua'

-- check if all translation messages were used
do
    loc


self.path) {
            Ok(f) => f,
            Err(_) => return Err(ConnectionError::UnableToWriteToFile),
        };
        let mut bytes = serialize(&self.vault, Infinite).expect("could not serialize");
        bytes = encrypt(&bytes, &self.password.get_text()).expect("could not encrypt");
        file.write(&bytes).expect("failed to write to file");
        Ok(())
    }
}
/*
 * @Description: https://leetcode-cn.com/problems/intersection-of-two-arrays/comments/
 * @Author: 鱼摆摆
 * @Email: <EMAIL>
 * @Github: https://github.com/FisherCloud
 * @Date: 2020-01-03 21:08:25
 * @LastEditTime: 2020-01-03 21:19:54
 */

 use std::collections::HashSet;

fn intersection(nums1: Vec<i32>, nums2: Vec<i32>) -> Vec<i32> {
    let mut set: HashSet<i32> = HashSet::new();
    for item in nums1 {
        if nums2.contains(&item) {
            set.insert(item);
        }
    }
    let mut ans: Vec<i32> = Vec::new();
    for item in set {
        ans.push(item);
    }
    (ans)
}

fn main() {
    println!("{:?}", intersection(vec![1, 2, 2, 3], vec![2, 2]));
}

mod color;
mod direction;
mod number;
mod token;
mod statement;
mod field;

pub use color::*;
pub use direction::*;
pub use number::*;
pub use token::*;
pub use statement::*;
pub use field::*;

use std::cmp::Ordering;

#[derive(Clone, Debug)]
pub enum Value {
    Num(i64),
    Arr(Vec<Value>),
    Bool(bool)
}

impl PartialEq for Value {
    fn eq(&self, rhs: &Value) -> bool {
        if !Value::same_type(self, rhs) {
            false
        } else {
            if self.is_num() {
                self.get_num() == rhs.get_num()
            } else if self.is_arr() {
                self.get_arr() == rhs.get_arr()
            } else {
                self.get_bool() == rhs.get_bool()
            }
        }
    }
}

impl PartialOrd for Value {
    fn partial_cmp(&self, rhs: &Value) -> Option<Ordering> {
        if !Value::same_type(self, rhs) {
            None
        } else {
            if self.is_bool() {
                None
            } else if self.is_arr() {
                self.get_arr().partial_cmp(&rhs.get_arr())
            } else {
                Some(self.get_num().cmp(&rhs.get_num()))
            }
        }
    }
}

impl Value {
    pub fn print_as_char(&self) {
        if self.is_num() {
            print!("{}", self.get_num() as u8 as char);
        } else if self.is_arr() {
            for c in self.get_arr() {
                c.print_as_char();
            }
        } else {
            print!("{}", self.get_bool());
        }
    }

    pub fn print_as_num(&self) {
        if self.is_num() {
            print!("{}", self.get_num());
        } else if self.is_arr() {
            print!("{:?}", self.get_arr());
        } else {
            print!("{}", self.get_bool());
        }
    }

    pub fn is_num(&self) -> bool {
        match self {
            &Value::Num(_) => true,
            _ => false
        }
    }

    pub fn is_arr(&self) -> bool {
        match self {
            &Value::Arr(_) => true


38698)

2015-06-12 15:28 [Angular范例程序](http://www.ngnice.com/showcase/#/home/home)

2015-06-12 16:00 [You have not concluded your merge (MERGE_HEAD exists) git拉取失败 一介布衣](http://yijiebuyi.com/blog/5b55eb51ad49ce41e2de9c85dd4513ca.html)

2015-06-15 10:01 [AngularJS中的Promise_小组_ThinkSAAS](http://www.thinksaas.cn/group/topic/264600/)

2015-06-15 10:12 [形象的讲解angular中的$q与promise - 前端开发 | HTML , CSS & JavaScript - 博客大巴](http://www.blogbus.com/monw3c-logs/272038628.html)

2015-06-15 10:52 [AngularJS的学习--$on、$emit和$broadcast的使用 - 疯狂的原始人 - 推酷](http://www.tuicool.com/articles/qIBNve)

2015-06-16 15:46 [ngCloak 实现 Angular 初始化闪烁最佳实践 - 破狼 - 博客园](http://www.cnblogs.com/whitewolf/p/3495822.html)

2015-06-16 15:58 [AngularJS 防止页面闪烁的方法 - I have a dream - 开源中国社区](http://my.oschina.net/tanweijie/blog/295255)

2015-06-17 15:33 [图灵社区 : 阅读 : 构建自己的AngularJS，第一部分：作用域和digest](http://www.ituring.com.cn/article/39865)

2015-06-17 16:21 [angularjs: ng-repeat 如何实现嵌套？ - SegmentFault](http://segmentfault.com/q/1010000000405730)

2015-06-18 16:38 [javascript - "Uncaught Error: [$injector:modulerr] Failed to instantiate module" when there are multiple "ng-app" directives - Stack Overflow](http://stackoverflow.com/questions/22295465/uncaught-error-injectormodulerr-failed-to-instantiate-module-when-there-a)

2015-09-21 18:31 [浅谈AngularJS的$interpolate服务 1 - SegmentFault](http://segmentfault.com/a/1190000002753321)

2015-09-28 11:36 [ng1.3+表单验证<AngularJs> - Halower - 博客园](http://www.cnblogs.com/rohelm/p/4039279.html)

2015-09-28 15:41 [AngularJS从构建项目开始 | 粉丝日志](http://blog.fens.me/angularjs-yeoman-project/)

2015-09-28 16:52 [AngularJS学习笔记 - YS.Zou](http://www.zouyesheng.com/angular.html#toc1)

2015-09-28 17:40 [如何解决跨域问题（调试期&发布后） - AngularJS Nice Things](http://www.ngnice.com/posts/76c4bd0f7a4cdc)

2015-09-28 18:26 [AngularJS ui-router (嵌套路由) - 技术


* LDA + o_abd];
            }
            // C
            // C        NOW SOLVE TRANS(L)*X = Y
            // C
            if (ML == 0) goto LABEL90;
            if (NM1 < 1) goto LABEL90;
            for (KB = 1; KB <= NM1; KB++)
            {
                K = N - KB;
                LM = Math.Min(ML, N - K);
                B[K + o_b] += this._ddot.Run(LM, ABD, M + 1+K * LDA + o_abd, 1, B, K + 1 + o_b, 1);
                L = IPVT[K + o_ipvt];
                if (L == K) goto LABEL70;
                T = B[L + o_b];
                B[L + o_b] = B[K + o_b];
                B[K + o_b] = T;
            LABEL70:;
            }
        LABEL90:;
        LABEL100:;
            return;
            #endregion
        }
    }

    #endregion

    #region The Class: DAXPY

    // *DECK DAXPY
    /// <summary>
    /// ***PURPOSE  Compute a constant times a vector plus a vector.
    /// ***CATEGORY  D1A7
    /// ***TYPE      DOUBLE PRECISION (SAXPY-S, DAXPY-D, CAXPY-C)
    /// ***KEYWORDS  BLAS, LINEAR ALGEBRA, TRIAD, VECTOR
    /// ***AUTHOR  Lawson, C. L., (JPL)
    /// Hanson, R. J., (SNLA)
    /// Kincaid, D. R., (U. of Texas)
    /// Krogh, F. T., (JPL)
    /// ***DESCRIPTION
    ///
    /// B L A S  Subprogram
    /// Description of Parameters
    ///
    /// --Input--
    /// N  number of elements in input vector(s)
    /// DA  double precision scalar multiplier
    /// DX  double precision vector with N elements
    /// INCX  storage spacing between elements of DX
    /// DY  double precision vector with N elements
    /// INCY  storage spacing between elements of DY
    ///
    /// --Output--
    /// DY  double precision result (unchanged if N .LE. 0)
    ///
    /// Overwrite double precision DY with double precision DA*DX + DY.
    /// For I = 0 to N-1, replace  DY(LY+I*INCY) with DA*DX(LX+I*INCX) +
    /// DY(LY+I*INCY),
    /// where LX = 1 if INCX .GE. 0, else LX = 1+(1-N)*INCX, and LY is
    /// defined in a similar way using INCY.
    ///
    /// ***REFERENCES  C. L. Lawson, R. J. Hanson, D. R. Kincaid and F. T.
    /// Krogh, Basic linear algebra subprograms for Fortran
    /// usage, Algorithm No. 539, Transactions on Mathematical
    /// Software 5, 3 (September 1979), pp. 308-323.
    /// ***ROUTINES CALLED  (NONE)
    /// ***REVISION HISTORY  (YYMMDD)
    /// 791001  DATE WRITTEN
    /// 890831  Modified array declarations.  (WRB)
    /// 890831  REVISION DATE from Version 3.2
    /// 891214  Prologue converted to Version 4.0 format.  (BAB)
    /// 920310  Corrected definition of LX in DESCRIPTION.  (WRB)
    /// 920501  Reformatted the REFERENCES section.  (WRB)
    /// ***END PROLOGUE  DAXPY
    /// ***FIRST EXECUTABLE STATEMENT  DAXPY
    ///</summary>
    public class DAXPY
    {

        public DAXPY()
        {

        }

        /// <summary>
        /// ***PURPOSE  Compute a constant times a vector plus a vector.
        /// ***CATEGORY  D1A7
        /// ***TYPE      DOUBLE PRECISION (SAXPY-S, DAXPY-D, CAXPY-C)
        /// ***KEYWORDS  BLAS, LINEAR ALGEBRA, TRIAD, VECTOR
        /// ***AUTHOR  Lawson, C. L., (JPL)
        ///


stance__f32.html" title="Instance structure for the floating-point matrix structure.">arm_matrix_instance_f32 srcA = {NUMSTUDENTS, NUMSUBJECTS, (float32_t *)testMarks_f32};

  arm_matrix_instance_f32 srcB = {NUMSUBJECTS, 1, (float32_t *)testUnity_f32};

  arm_matrix_instance_f32 dstC = {NUMSTUDENTS, 1, testOutput};

#endif

  /* ----------------------------------------------------------------------

  *Call the Matrix multiplication process function

  * ------------------------------------------------------------------- */

  arm_mat_mult_f32(&srcA, &srcB, &dstC);

  /* ----------------------------------------------------------------------

  ** Call the Max function to calculate max marks among numStudents

<span class="comment


from PyPDF2 import PdfReader

class ChunkHelpers:
    # Utility function: Extract paragraphs from a PDF
    @staticmethod
    def extract_paragraphs_from_pdf(pdf_file):
        reader = PdfReader(pdf_file)
        text = ""
        for page in reader.pages:
            text += page.extract_text()

        # Split text into paragraphs based on single newlines (adjust logic if needed)
        paragraphs = text.split("\n")
        return paragraphs

    # Utility function: Process PDF and generate chunks based on paragraphs
    @staticmethod
    def process_pdf_to_chunks(pdf_file, max_chunk_length=500):
        paragraphs = ChunkHelpers.extract_paragraphs_from_pdf(pdf_file)
        chunks = []
        current_chunk = []

        # Combine paragraphs into chunks of a reasonable size
        for paragraph in paragraphs:
            # If adding this paragraph exceeds max chunk length, start a new chunk
            if len(" ".join(current_chunk)) + len(paragraph) > max_chunk_length:
                chunks.append(" ".join(current_chunk))
                current_chunk = [paragraph]  # Start new chunk with the current paragraph
            else:
                current_chunk.append(paragraph)  # Add paragraph to the current chunk

        # Add the last chunk if it has content
        if current_chunk:
            chunks.append(" ".join(current_chunk))

        return chunks


/Cuban",
  "Mediterranean",
  "Korean",
  "Bottled beverages, including water, sodas, juices, etc.",
  "Russian",
  "Eastern European",
  "Middle Eastern",
  "Asian",
  "Ethiopian",
  "Vegetarian",
  "Barbecue",
  "Egyptian",
  "English",
  "Sandwiches",
  "Portuguese",
  "Indonesian",
  "Chinese/Japanese",
  "Filipino",
  "Juice, Smoothies, Fruit Salads",
  "Brazilian",
  "Afghan",
  "Vietnamese/Cambodian/Malaysia",
  "CafÃ©/Coffee/Tea",
  "Soups & Sandwiches",
  "Tapas",
  "Moroccan",
  "Pakistani",
  "Peruvian",
  "Bangladeshi",
  "Czech",
  "Salads",
  "Creole",
  "Fruits/Vegetables",
  "Iranian",
  "Cajun",
  "Scandinavian",
  "Polynesian",
  "Soups",
  "Australian",
  "Hotdogs/Pretzels",
  "Southwestern",
  "Nuts/Confectionary",
  "Hawaiian",
  "Creole/Cajun",
  "Californian",
  "Chilean"
]

## 3. Distinct por types na pokemons
sistemaon-VirtualBox(mongod-3.0.7) be-mean-pokemon> var query = "types"
sistemaon-VirtualBox(mongod-3.0.7) be-mean-pokemon> db.pokemons.distinct(query)
[
  "normal",
  "fire",
  "water",
  "bug",
  "flying",
  "poison",
  "electric",
  "steel",
  "ice",
  "ghost",
  "fighting",
  "psychic",
  "grass",
  "ground",
  "fairy",
  "rock",
  "dark",
  "dragon"
]

## 4. As primeiras 3 páginas com .limit() e .skip() de pokemons (5 em 5)
sistemaon-VirtualBox(mongod-3.0.7) be-mean-pokemon> var query = {}
sistemaon-VirtualBox(mongod-3.0.7) be-mean-pokemon> var field = {name: 1, _id: 0}
sistemaon-VirtualBox(mongod-3.0.7) be-mean-pokemon> db.pokemons.find(query, field).limit(5).skip(5 * 0)
{
  "name": "Rattata"
}
{
  "name": "Charmander"
}
{
  "name": "Charmeleon"
}
{
  "name": "Wartortle"
}
{
  "name": "Blastoise"
}

sistemaon-VirtualBox(mongod-3.0.7) be-mean-pokemon> db.pokemons.find(query, field).limit(5).skip(5 * 1)
{
  "name": "Caterpie"
}
{
  "name": "Metapod"
}
{
  "name": "Butterfree"
}
{
  "name": "Spearow"
}
{
  "name": "Kakuna"
}

sistemaon-VirtualBox(mongod-3.0.7) be-mean-pokemon> db.pokemons.find(query, field).limit(5).skip(5 * 2)
{
  "name": "Farfetchd"
}
{
  "name": "Magnemite"
}
{
  "name": "Magneton"
}
{
  "name": "Doduo"
}
{
  "name": "Seel"
}

## 5 . Group ou Aggregate contando a quantidade de pokemons de cada tipo
sistemaon-VirtualBox(mongod-3.0.7) be-mean-pokemon> var aggregate = [{$unwind: "$types"}, {$group: {_id: "$types


, soldier!\" ");
			//[player is corrupt]
			if (player.cor > 50) outputText("You eagerly cry out \"Yes, sir!\" and show yourself off to the best of your ability.  The whole act is extremely arousing.");
			//[player is not corrupt]
			else outputText("You have no idea why, but you promptly display yourself in the most provocative way possible.  After a moment you realize what you're doing and quickly stop, flushed with embarrassment and arousal.");
		}
		//Gimp gear;
		if (armorName == LEATHER_CLOTHES) {
			//The Zealot has taken on an appearance that seems more suitable for the level of perversion he exudes.  He is wearing a full-body suit of leather, with a cock case over his crotch; you can clearly see a large zipper on it.  The zipper handle is far bigger than you think is absolutely necessary.
			outputText("The Zealot turns around and gives you a full view of his tight leather clad body.  He smacks his ass and says \"You like what you see, don't you " + player.mf("stud","slut") + "?\"  You can't help but be incredibly aroused by the scene.");
		}
		//Well dressed and well groomed student in uniform;
		if (armorName == STUDENTS_CLOTHES) {
			//The Zealot seems to have taken on the appearance of a young adult wearing a student uniform of sorts; of course, this isn't any less perverted than any of the other costumes this man wears.  This one includes a number of loose straps that you're certain would cause large sections of his clothes to fall off if somebody pulled on them.
			outputText("The Zealot student looks at you a little shyly and sticks a pencil in his mouth while pushing a hand in front of his groin, trying to hide a rather obvious bulge.  The whole scene is rather cute, and you feel incredibly aroused afterwards.");
		}
		player.takeLustDamage((7+rand(player.lib/20+player.cor/20)), true);
		combatRoundOver();
	}
	//Special2: Lust transfer spell, it becomes more and
	//more likely that he will use this power as his lust gets
	//higher, but he can use it at any time (like the cultist).
	private  zealotSpecial2(): void {
		outputText("The zealot suddenly cries out and extends his arms towards you; your mind is suddenly overwhelmed with a massive wave of arousal as images of every kind of fetish you can imagine wash over you, all blended together.  After a moment you are able to recover, but you notice that the Zealot doesn't seem to be as aroused as before.");
		player.takeLustDamage(lust/2, true);
		lust /= 2;
		combatRoundOver();
	}

		protected  postAttack(damage: number): void
		{
			if (damage > 0){
				outputText("\nYou notice that some kind of unnatural heat is flowing into your body from the wound");
				if (player.inte > 50) outputText(", was there some kind of aphrodisiac on the knife?");
				else outputText(".");
				player.takeLustDamage((player.lib / 20 + 5), true);
			}
			super.postAttack(damage);
		}

		public  defeated(hpVictory: boolean): void
		{
			game.lake.fetishZealotScene.zealotDefeated();
		}

		public  won(hpVictory: boolean, pcCameWorms: boolean): void
		{
			if (pcCameWorms){
				outputText("\n\nThe fetish cultist ignores the perverse display and continues on as if nothing had happened...");
				player.orgasm('Gener


要求。"

祝贺刘晓波先生获得诺贝尔和平奖!望其能早日出狱,民主自由是不可逆的历史趋势,任何违背这一趋势的当局都终将自食其果。

中国政府肯定很恨诺贝尔,他妈的设立什么诺贝尔奖,有物理奖/化学奖不就好了吗?后人就不要设什么和平奖/文学奖?凡是华人拿到这两个奖都是亵渎诺贝尔奖。

他是中国人,他是中国版曼德拉,他曾经坐过监狱,后放出,再入狱,至今还在监狱里,他的名字叫 刘...晓...波

授予刘晓波诺贝尔和平奖是中国政府的失败,但对世界人权来说是一大胜利!

估计北京第一中级法院和北京市高级法院做梦也想不到,由他们判处的一个被告人竟然成为诺贝尔和平奖的获得者。这样的经典案例,值得载入司法审判史。

谷歌和诺奖委员会表明,这世界上,有一种最可贵的东西,叫道义,叫信念,利益在其面前,不值一提!

小波获奖,是对土共近年来花重金打造的国家形象毁灭性一击!别以为砸钱办了奥运世博人家就尊重你了,公道自在人心!

面对越维稳越不稳的国内局面,本次和平奖事件本来是一次很好的向国内外释放善意的机会,例如让刘晓波回家治病。
可惜当局用的还是60多年前的一套,以为武力能解决一切,在提名和公布后,竟然再一次反其道而行,不仅屏蔽消息还抓庆祝的百姓,彻头彻尾就是不懂公关的土包子。

以前某些人假装不知道刘晓波,现在他们还能继续假装吗?

刘晓波获奖了,由于信息封锁,大陆很多人还不知道刘晓波是谁,还不知道和平奖已经颁发。所以在欢庆之时,我们要让身边更多的人知道刘晓波,知道他获得了诺贝尔和平奖。

刘晓波在网上发表了自己的政治诉求,因此被判11年徒刑。而他的诉求大部分内容都能在中国宪法里面找到。现在他因为诺贝尔和平奖成了全世界最知名的囚犯之一,多么令人尴尬呀!

刘晓波得奖真是给中国


_FILESET_ENTRY);
			return hasPrelinkSegment && !hasFileSet;
		}
		catch (MachException | IOException e) {
			// Assume it's not a Mach-O PRELINK...fall through
		}
		return false;
	}

	/**
	 * Check to see if the given {@link ByteProvider} is a Mach-O file set
	 *
	 * @param provider The {@link ByteProvider} to check
	 * @return True if the given {@link ByteProvider} is a Mach-O file set; otherwise, false
	 */
	public static boolean isMachoFileset(ByteProvider provider) {
		try {
			return new MachHeader(provider).parseAndCheck(LoadCommandTypes.LC_FILESET_ENTRY);
		}
		catch (MachException | IOException e) {
			// Assume it's not a Mach-O file set...fall through
		}
		return false;
	}

	/**
	 * Parses the provider looking for PRELINK XML.
	 *
	 * @param provider The provider to parse.
	 * @param monitor A monitor.
	 * @return A list of discovered {@link MachoPrelinkMap}s.  An empty list indicates that the provider
	 *   did not represent valid Mach-O PRELINK binary.
	 * @throws IOException if there was an IO-related issue.
	 * @throws JDOMException if there was a issue parsing the PRELINK XML.
	 */
	public static List<MachoPrelinkMap> parsePrelinkXml(ByteProvider provider, TaskMonitor monitor)
			throws IOException, JDOMException {

		try {
			MachHeader mainHeader = new MachHeader(provider);
			mainHeader.parse(); // make sure first Mach-O header is valid....

			monitor.setMessage("Parsing PRELINK XML...");
			return new MachoPrelinkParser(mainHeader, provider).parse(monitor);
		}
		catch (NoPreLinkSectionException | MachException e) {
			return Collections.emptyList();
		}
	}

	/**
	 * Scans the provider looking for PRELINK Mach-O headers.
	 *

	 * NOTE: The "System" Mach-O at offset 0 is not considered a PRELINK Mach-O.
	 *

	 * NOTE: We used to scan on 0x1000, and then 0x10 byte boundaries.  Now iOS 12 seems to
	 * put them on 0x8-byte boundaries.
	 *
	 * @param provider The provider to scan.
	 * @param monitor A monitor.
	 * @return A list of provider offsets where PRELINK Mach-O headers start (not including the
	 *   "System" Mach-O at offset 0).
	 * @throws IOException If there was an IO-related issue searching for PRELINK Mach-O headers.
	 */
	public static List<Long> findPrelinkMachoHeaderOffsets(ByteProvider provider,
			TaskMonitor monitor) throws IOException {
		monitor.setMessage("Finding PRELINK Mach-O headers...");
		monitor.initialize((int) provider.length());

		List<Long> list = new ArrayList<>(); // This list must maintain ordering...don't sort it
		for (long offset = 0; offset < provider.length() - 4; offset += 8) {
			if (monitor.isCancelled()) {
				break;
			}
			monitor.setProgress((int) offset);

			if (getMachoLoadSpec(provider, offset) != null) {
				if (offset > 0) {
					// Don't put first "System" Mach-O in list
					list.add(offset);
				}
			}
			else if (offset == 0) {
				// if it doesn't start with a Mach-O, just quit
				break;
			}
		}
		return list;
	}

	/**
	 * Forms a bidirectional mapping of PRELINK XML to Mach-O header offset in the given provider.
	 *
	 * @param provider The PRELINK Mach-O provider.
	 * @param prelinkList A list of {@link MachoPrelinkMap}s.
	 * @param machoHeaderOffsets A list of provider offsets where PRELINK Mach-O headers start (not
	 *   including the "System" Mach-O at offset 0).
	 * @param monitor A monitor
	 * @r


SULT,
    fn add_SpellCheckerChanged(
        handler: *const ISpellCheckerChangedEventHandler,
        eventCookie: *mut DWORD,
    ) -> HRESULT,
    fn remove_SpellCheckerChanged(
        eventCookie: DWORD,
    ) -> HRESULT,
    fn GetOptionDescription(
        optionId: LPCWSTR,
        value: *mut *mut IOptionDescription,
    ) -> HRESULT,
    fn ComprehensiveCheck(
        text: LPCWSTR,
        value: *mut *mut IEnumSpellingError,
    ) -> HRESULT,
}}
RIDL!{#[uuid(0xe7ed1c71, 0x87f7, 0x4378, 0xa8, 0x40, 0xc9, 0x20, 0x0d, 0xac, 0xee, 0x47)]
interface ISpellChecker2(ISpellChecker2Vtbl): ISpellChecker(ISpellCheckerVtbl) {
    fn Remove(
        word: LPCWSTR,
    ) -> HRESULT,
}}
RIDL!{#[uuid(0x8e018a9d, 0x2415, 0x4677, 0xbf, 0x08, 0x79, 0x4e, 0xa6, 0x1f, 0x94, 0xbb)]
interface ISpellCheckerFactory(ISpellCheckerFactoryVtbl): IUnknown(IUnknownVtbl) {
    fn SupportedLanguages(
       value: *mut *mut IEnumString,
    ) -> HRESULT,
    fn IsSupported(
        languageTag: LPCWSTR,
        value: *mut BOOL,
    ) -> HRESULT,
    fn CreateSpellChecker(
        languageTag: LPCWSTR,
        value: *mut *mut ISpellChecker,
    ) -> HRESULT,
}}
RIDL!{#[uuid(0xaa176b85, 0x0e12, 0x4844, 0x8e, 0x1a, 0xee, 0xf1, 0xda, 0x77, 0xf5, 0x86)]
interface IUserDictionariesRegistrar(IUserDictionariesRegistrarVtbl): IUnknown(IUnknownVtbl) {
    fn RegisterUserDictionary(
        dictionaryPath: LPCWSTR,
        languageTag: LPCWSTR,
    ) -> HRESULT,
    fn UnregisterUserDictionary(
        dictionaryPath: LPCWSTR,
        languageTag: LPCWSTR,
    ) -> HRESULT,
}}
RIDL!{#[uuid(0x7ab36653, 0x1796, 0x484b, 0xbd, 0xfa, 0xe7, 0x4f, 0x1d, 0xb7, 0xc1, 0xdc)]
class SpellCheckerFactory;
}
<filename>src/storage/mod.rs<gh_stars>0
// Copyright 2022 RisingLight Project Authors. Licensed under Apache-2.0.

//! Traits and basic data structures for RisingLight's all storage engines.

mod memory;
pub use memory::InMemoryStorage;

mod secondary;
pub use secondary::{SecondaryStorage, StorageOptions as SecondaryStorageOptions};

mod error;
pub use error::{StorageError, StorageResult, TracedStorageError};

mod chunk;
use std::future::Future;
use std::sync::Arc;

use async_trait::async_trait;
pub use chunk::*;
use enum_dispatch::enum_dispatch;

use crate::array::{ArrayImpl, DataChunk};
use crate::binder::BoundExpr;
use crate::catalog::{ColumnCatalog, TableRefId};
use crate::types::{DatabaseId, SchemaId};

#[enum_dispatch(StorageDispatch)]
#[derive(Clone)]
pub enum StorageImpl {
    InMemoryStorage(Arc<InMemoryStorage>),
    Secondary


    const clientWidth = document.documentElement.clientWidth;

            if ((rtl && position.x < 200) || (!rtl && position.x < clientWidth - 200)) {
                this.tooltip.style.left = `${window.scrollX + position.left + options.x}px`;
                this.tooltip.style.right = 'auto';
                this.tooltip.classList.remove('tip--rtl');
            } else {
                this.tooltip.style.left = 'auto';
                this.tooltip.style.right = `${clientWidth - window.scrollX - position.right + options.x}px`;
                this.tooltip.classList.add('tip--rtl');
            }

            this.tooltip.innerHTML = `<div>${text}</div>`;
            this.tooltip.style.top = `${window.scrollY + position.top + options.y}px`;
            this.tooltip.style.display = 'block';
            this.tooltip.style.willChange = 'auto';
        }, delay);
    }

    _hideTooltip(el, delay = 0) {
        if (el.hasAttribute('data-original-title')) {
            if (!el.hasAttribute('title')) {
                el.setAttribute('title', el.getAttribute('data-original-title'));
            }

            el.removeAttribute('data-original-title');
        }

        clearTimeout(this.timer);
        this.tooltip.style.willChange = 'auto';

        if (this.tooltip.style.display === 'block') {
            this.activeTargets.delete(el);

            this.tooltip.style.willChange = 'display';
            this.timer = setTimeout(() => {
                this.tooltip.style.display = 'none';
                this.tooltip.style.willChange = 'auto';
            }, delay);
        }
    }

    _getOptionsForElement(el) {
        for (const [criteria, defaultOptions] of Object.entries(TooltipsController.defaultOptionsMap)) {
            if (el.match(criteria)) {
                return defaultOptions;
            }
        }

        return { x: -9, y: 30 };
    }

    /**
     * Migrate legacy targets to proper controller targets.
     */
    static afterLoad(identifier, application) {
        const targetSelectors = Object.keys(TooltipsController.defaultOptionsMap);

        const migrateTarget = (el) => {
            for (const target of targetSelectors) {
                if (!el.hasAttribute(`data-${identifier}-target`) && el.match(target)) {
                    el.setAttribute(`data-${identifier}-target`, 'tooltip');
                }

                for (const sel of el.querySelectorAll(target)) {
                    if (!sel.hasAttribute(`data-${identifier}-target`)) {
                        sel.setAttribute(`data-${identifier}-target`, 'tooltip');
                    }
                }
            }
        };

        new MutationObserver((mutationsList) => {
            for (const mutation of mutationsList) {
                if (mutation.type !== 'childList') {
                    continue;
                }

                for (const node of mutation.addedNodes) {
                    if (!(node instanceof HTMLElement)) {
                        continue;
                    }

                    migrateTarget(node);
                }
            }
        }).observe(document, {
            childList: true,
            subtree: true,
        });

        // Initially migrate all targets that are already in the DOM
        for (const el of document.querySelectorAll(targetSelectors.join(','))) {
            migrateTarget(el);
        }
    }
}
/*! respimage - v1.4.0 - 2015-04-17
 Licensed MIT */
!function(window, document, undefined) {
    "use strict";
    function trim(str) {
        return str.trim ?


#!/usr/bin/python3
"""no Modules"""

def isWinner(x, nums):
    """
    who will win
    """
    if x <= 0 or nums is None:
        return None
    if x != len(nums):
        return None
    ben = 0
    maria = 0
    a = [1 for x in range(sorted(nums)[-1] + 1)]
    a[0], a[1] = 0, 0
    for i in range(2, len(a)):
        rm_multiples(a, i)
    for i in nums:
        if sum(a[0:i + 1]) % 2 == 0:
            ben += 1
        else:
            maria += 1
    if ben > maria:
        return "Ben"
    if maria > ben:
        return "Maria"
    return None

def rm_multiples(ls, x):
    """rmove multiples"""
    for i in range(2, len(ls)):
        try:
            ls[i * x] = 0
        except (ValueError, IndexError):
            break


2k7SimpleSkin .mceToolbar {height:26px;}

/* Layout */
.o2k7SimpleSkin .mceToolbar .mceToolbarStart span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px; }
.o2k7SimpleSkin .mceToolbar .mceToolbarEnd span {display:block; background:url(img/button_bg.png) -22px 0; width:1px; height:22px}
.o2k7SimpleSkin span.mceIcon, .o2k7SimpleSkin img.mceIcon {display:block; width:20px; height:20px}
.o2k7SimpleSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}

/* Button */
.o2k7SimpleSkin .mceButton {display:block; background:url(img/button_bg.png); width:22px; height:22px}
.o2k7SimpleSkin a.mceButton span, .o2k7SimpleSkin a.mceButton img {margin:1px 0 0 1px}
.o2k7SimpleSkin a.mceButtonEnabled:hover {background-color:#B2BBD0; background-position:0 -22px}
.o2k7SimpleSkin a.mceButtonActive {background-position:0 -44px}
.o2k7SimpleSkin .mceButtonDisabled span {opacity:0.3; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=30)}

/* Separator */
.o2k7SimpleSkin .mceSeparator {display:block; background:url(img/button_bg.png) -22px 0; width:5px; height:22px}

/* Theme */
.o2k7SimpleSkin span.mce_bold {background-position:0 0}
.o2k7SimpleSkin span.mce_italic {background-position:-60px 0}
.o2k7SimpleSkin span.mce_underline {background-position:-140px 0}
.o2k7SimpleSkin span.mce_strikethrough {background-position:-120px 0}
.o2k7SimpleSkin span.mce_undo {background-position:-160px 0}
.o2k7SimpleSkin span.mce_redo {background-position:-100px 0}
.o2k7SimpleSkin span.mce_cleanup {background-position:-40px 0}
.o2k7SimpleSkin span.mce_insertunorderedlist {background-position:-20px 0}
.o2k7SimpleSkin span.mce_insertorderedlist {background-position:-80px 0}
/* Reset */
.o2k7Skin table, .o2k7Skin tbody, .o2k7Skin a, .o2k7Skin img, .o2k7Skin tr, .o2k7Skin div, .o2k7Skin td, .o2k7Skin iframe, .o2k7Skin span, .o2k7Skin *, .o2k7Skin .mceText {border:0; margin:0; padding:0; background:transparent; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; color:#000; vertical-align:baseline; width:auto; border-collapse:separate; text-align:left}
.o2k7Skin a:hover, .o2k7Skin a:link, .o2k7Skin a:visited, .o2k7Skin a:active {text-decoration:none; font-weight:normal; cursor:default; color:#000}
.o2k7Skin table td {vertical-align:middle}

/* Containers */
.o2k7Skin table {background:transparent}
.o2k7Skin iframe {display:block;}
.o2k7


 (super[key] += 2),

			await ++super.foo,
			await ++super[key],
			await super.foo++,
			await super[key]++,

			await super.foo.name,
			await super[key].name,
			await super.foo?.name,
			await super[key]?.name,

			await super.foo(1, 2),
			await super[key](1, 2),
			await super.foo?.(1, 2),
			await super[key]?.(1, 2),

			await (() => super.foo)(),
			await (() => super[key])(),
			await (() => super.foo())(),
			await (() => super[key]())(),

			await super.foo` + "``" + `,
			await super[key]` + "``" + `,
		]
	}
}

// This covers a bug that caused a compiler crash
let fn = async () => class extends Base {
	a = super.a
	b = () => super.b
	c() { return super.c }
	d() { return () => super.d }
}

// This covers a bug that generated bad code
class Derived2 extends Base {
	async a() { return class { [super.foo] = 123 } }
	b = async () => class { [super.foo] = 123 }
}

// This covers putting the generated temporary variable inside the loop
for (let i = 0; i < 3; i++) {
	objs.push({
		__proto__: {
			foo() { return i },
		},
		async bar() { return super.foo() },
	})
}(() => {
	var arguments;

	function foo(x = arguments) { return arguments }
	(function(x = arguments) { return arguments });
	({foo(x = arguments) { return arguments }});
	class Foo { foo(x = arguments) { return arguments } }
	(class { foo(x = arguments) { return arguments } });

	function foo(x = arguments) { var arguments; return arguments }
	(function(x = arguments) { var arguments; return arguments });
	({foo(x = arguments) { var arguments; return arguments }});

	(x => arguments);
	(() => arguments);
	(async () => arguments);
	((x = arguments) => arguments);
	(async (x = arguments) => arguments);

	x => arguments;
	() => arguments;
	async () => arguments;
	(x = arguments) => arguments;
	async (x = arguments) => arguments;

	(x => { return arguments });
	(() => { return arguments });
	(async () => { return arguments });
	((x = arguments) => { return arguments });
	(async (x = arguments) => { return arguments });

	x => { return arguments };
	() => { return arguments };
	async () => { return arguments };
	(x = arguments) => { return arguments };
	async (x = arguments) => { return arguments };
})()// @ts-check

class ModuleHotContext {
  /**
   * @type {{ deps: [string], fn: (moduleExports: Record<string, any>[]) => void }[]}
   */
  acceptCallbacks = [];
  /**
   * @param {string} moduleId
   * @param {DevRuntime} devRuntime
   */
  constructor(moduleId, devRuntime) {
    this.moduleId = moduleId;
    this.devRuntime = devRuntime;
  }

  /**
   * @overload
   * @param {(mod: Record<string, any>) => void} cb
   * @returns {void}
   */
  /**
   * @param {...any} args
   * @returns {void}
   */
  accept(...args) {
    if (args.length === 1) {
      const [cb] = /** @type {[(mod: Record<string, any>) => void]} */ (args);
      const acceptingPath = this.moduleId;
      this.acceptCallbacks.push({
        deps: [acceptingPath],
        fn: cb,
      });
    } else if (args.len


            {#onError: onError},
                ),
              ),
              (S v) => _i5.Future<S>.value(v),
            ) ??
            _FakeFuture_9<S>(
              this,
              Invocation.method(
                #then,
                [onValue],
                {#onError: onError},
              ),
            ),
        returnValueForMissingStub: _i6.ifNotNull(
              _i6.dummyValueOrNull<S>(
                this,
                Invocation.method(
                  #then,
                  [onValue],
                  {#onError: onError},
                ),
              ),
              (S v) => _i5.Future<S>.value(v),
            ) ??
            _FakeFuture_9<S>(
              this,
              Invocation.method(
                #then,
                [onValue],
                {#onError: onError},
              ),
            ),
      ) as _i5.Future<S>);

  @override
  _i5.Future<_i3.TaskSnapshot> whenComplete(
          _i5.FutureOr<dynamic> Function()? action) =>
      (super.noSuchMethod(
        Invocation.method(
          #whenComplete,
          [action],
        ),
        returnValue: _i5.Future<_i3.TaskSnapshot>.value(_FakeTaskSnapshot_8(
          this,
          Invocation.method(
            #whenComplete,
            [action],
          ),
        )),
        returnValueForMissingStub:
            _i5.Future<_i3.TaskSnapshot>.value(_FakeTaskSnapshot_8(
          this,
          Invocation.method(
            #whenComplete,
            [action],
          ),
        )),
      ) as _i5.Future<_i3.TaskSnapshot>);

  @override
  _i5.Future<_i3.TaskSnapshot> timeout(
    Duration? timeLimit, {
    _i5.FutureOr<_i3.TaskSnapshot> Function()? onTimeout,
  }) =>
      (super.noSuchMethod(
        Invocation.method(
          #timeout,
          [timeLimit],
          {#onTimeout: onTimeout},
        ),
        returnValue: _i5.Future<_i3.TaskSnapshot>.value(_FakeTaskSnapshot_8(
          this,
          Invocation.method(
            #timeout,
            [timeLimit],
            {#onTimeout: onTimeout},
          ),
        )),
        returnValueForMissingStub:
            _i5.Future<_i3.TaskSnapshot>.value(_FakeTaskSnapshot_8(
          this,
          Invocation.method(
            #timeout,
            [timeLimit],
            {#onTimeout: onTimeout},
          ),
        )),
      ) as _i5.Future<_i3.TaskSnapshot>);
}
// Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

import 'package:flutter/material.dart';

/// A widget that displays detection statistics (count and FPS)
class DetectionStatsDisplay extends StatelessWidget {
  const DetectionStatsDisplay({
    super.key,
    required this.detectionCount,
    required this.currentFps,
  });

  final int detectionCount;
  final double currentFps;

  @override
  Widget build(BuildContext context) {
    return IgnorePointer(
      child: Row(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Text(
            'DETECTIONS: $detectionCount',
            style: const TextStyle(
              color: Colors.white,
              fontWeight: FontWeight.w600,
            ),
          ),
          const SizedBox(width: 16),
          Text(
            'FPS: ${currentFps.toStringAsFixed(1)}',
            style: const TextStyle(
              color: Colors.white,
              fontWeight: FontWeight.w


#region File Description
//-----------------------------------------------------------------------------
// Validators you can attach to TextInput entities to manipulate and validate
// user input. These are used to create things like text input for numbers only,
// limit characters to english chars, etc.
//
// Author: Ronen Ness.
// Since: 2016.
//-----------------------------------------------------------------------------
#endregion

namespace GeonBit.UI.Entities.TextValidators
{
    /// <summary>
    /// Make sure input is a valid filename.
    /// </summary>
    [System.Serializable]
    public class FilenameValidator : ITextValidator
    {
        /// <summary>
        /// Static ctor.
        /// </summary>
        static FilenameValidator()
        {
            Entity.MakeSerializable(typeof(SlugValidator));
        }

        // the regex to use
        System.Text.RegularExpressions.Regex _regex;

        // regex for slug with spaces
        static readonly System.Text.RegularExpressions.Regex _filenameNoSpaces = new System.Text.RegularExpressions.Regex(@"^[^\\/:\*\?""<>\| ]+$");

        // regex for slug without spaces
        static readonly System.Text.RegularExpressions.Regex _filenameWithSpaces = new System.Text.RegularExpressions.Regex(@"^[^


h	w28, [x19, 12]
	ldrh	w0, [x19, 14]
	sub	w21, w0, w21
	add	w26, w21, w26
	strh	w26, [x19, 14]
.L1912:
	ldr	w0, [x19, 4]
	add	x1, x19, 49152
	ldr	x3, [x22, 4000]
	add	w0, w0, 1
	str	w0, [x19, 4]
	mov	x2, x19
	str	w0, [x1, 16380]
	mov	w1, 128
	ldrh	w0, [x19, 8]
	add	w0, w0, 1
	and	w0, w0, 65535
	cmp	w0, 1
	csel	w0, w0, wzr, ls
	strh	w0, [x19, 8]
	lsl	w0, w23, 7
	blr	x3
	mov	w0, 0
.L1895:
	ldp	x19, x20, [sp, 16]
	ldp	x21, x22, [sp, 32]
	ldp	x23, x24, [sp, 48]
	ldp	x25, x26, [sp, 64]
	ldp	x27, x28, [sp, 80]
	ldp	x29, x30, [sp], 128
	hint	29 // autiasp
	ret
.L1900:
	add	w25, w25, 1
	str	x5, [sp, 104]
	stp	w6, w7, [sp, 112]
	add	x1, x19, w25, uxtw 3
	str	x4, [sp, 120]
	ldrh	w0, [x1, 16]
	strh	w0, [x20, 8]
	ldrh	w0, [x1, 20]
	strh	w28, [x20, 10]
	strh	w0, [x20, 12]
	add	x0, x5, w6, uxtw
	ldrh	w2, [x1, 20]
	ldrh	w1, [x1, 18]
	add	w2, w2, 63
	and	w28, w2, -64
	add	x1, x5, x1
	and	x2, x2, 131008
	bl	memcpy
	ldp	w6, w7, [sp, 112]
	ldr	x5, [sp, 104]
	add	w6, w6, w28
	ldr	x4, [sp, 120]
	b	.L1899
.L1898:
	ldrh	w0, [x20, 18]
	uxtw	x2, w27
	mov	x1, x4
	add	x0, x5, x0
	bl	memcpy
	strh	w27, [x20, 20]
	b	.L1912
.L1908:
	mov	x20, x1
	b	.L1897
.L1910:
	mov	w0, -1
	b	.L1895
	.size	rk_sftl_vendor_write, .-rk_sftl_vendor_write
	.section	.rodata.str1.1
.LC134:
	.string	"copy_from_user error %d %p %p\n"
	.text
	.align	2
	.global	rk_sftl_vendor_storage_ioctl
	.type	rk_sftl_vendor_storage_ioctl, %function
rk_sftl_vendor_storage_ioctl:
	hint	34 // bti c
	.section	__patchable_function_entries
	.align	3
	.8byte	.LPFE141
	.text
.LPFE141:
	nop
	nop
	hint	25 // paciasp
	stp	x29, x30,


focus .count:before,.PromptFromSearch .prompt_action .AskQuestionButton:hover .count:before{background:#2865a1}.PromptFromSearch .prompt_action .go_to_feed_button,.PromptFromSearch .prompt_action .AskQuestionButton,.PromptFromSearch .prompt_action .follow_button.Button.QuestionSEOPrompt{font-size:15px;line-height:1.4;border-radius:3px;display:inline-block}.PromptFromSearch .prompt_action .AskQuestionButton,.PromptFromSearch .prompt_action .follow_button.Button.QuestionSEOPrompt{padding:8px 32px}.PromptFromSearch.fixed_prompt{position:fixed;bottom:0;right:0;width:400px;margin:16px;border:1px solid #e2e2e2;z-index:100}.ComponentSurvey{background-color:#fff;padding:16px;border-radius:3px;border:1px solid #e2e2e2;margin:8px 0;line-height:1.6;position:relative;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.ComponentSurvey .fade_in{-webkit-animation:fadeIn 250ms ease-out 0s 1 normal forwards;-o-animation:fadeIn 250ms ease-out 0s 1 normal forwards;animation:fadeIn 250ms ease-out 0s 1 normal forwards}.ComponentSurvey .inner{border-top:0}.ComponentSurvey .title_text{font-size:15px;line-height:1.4;color:#333;font-weight:500}.ComponentSurvey .question_wrapper{display:flex;justify-content:space-between}.ComponentSurvey .question_wrapper .flex_item{display:inline-flex;align-items:flex-start}.ComponentSurvey .question_wrapper .title_text{margin-left:8px}.ComponentSurvey .question_wrapper .button_group{margin-top:-2px}.ComponentSurvey .question_wrapper .button_group .survey_button{-webkit-user-select:none;-webkit-touch-callout:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;transition:opacity ease-in-out 100ms,color ease-in-out 100ms,background-color ease-in-out 100ms,border-color ease-in-out 100ms;border-radius:3px;box-shadow:0 1px 1px 0 rgba(200,200,200,0.2);display:inline-block;font-weight:500;outline:0;padding:3px 7px 4px 7px;text-align:center;text-decoration:none;cursor:pointer;color:#6d6d6d;border:1px solid #cbcbd8;background:#f6f6f9;min-width:80px;margin-left:8px;font-size:13px}.lang_ja .ComponentSurvey .question_wrapper .button_group .survey_button{font-weight:bold}.ComponentSurvey .question_wrapper .button_group .survey_button:active{opacity:.6;box-shadow:none}.action_item .ComponentSurvey .question_wrapper .button_group .survey_button:active{opacity:1}.ComponentSurvey .question_wrapper .button_group .survey_button:hover{text-decoration:none}.ComponentSurvey .question_wrapper .button_group .survey_button .count{background:0;padding:0;margin:0;margin-left:6px;padding-left:6px;transition:opacity ease-in-out 100ms,color ease-in-out 100ms,background-color ease-in-out 100ms,border-color ease-in-out 100ms;position:relative;border-radius:0 3px 3px 0}.ComponentSurvey .question_wrapper .button_group .survey_button .count:before{content:"";transition:opacity ease-in-out 100ms,color ease-in-out 100ms,background-color ease-in-out 100ms,border-color ease-in-out 100ms;width:1px;height:14.5px;


ds/20240823/d69485da0c08bf37c40c6c16f151d28a.webp" alt="动物医院的宗旨和目标（动物医院部门）">

动物医院的宗旨和目标（动物医院部门）

摘要：       本篇文章给大家谈谈动物医院的宗旨和目标，以及动物医院部门对应的知识点，希望对各位有所帮助，不要忘了收藏本站喔。本文目录一览：1、铁岭宠物医院哪家最好2、...        本篇文

人打的狂犬和动物打的狂犬一样吗 人打的狂犬和动物打的狂犬一样吗图片

摘要：       大家好，今天小编关注到一个比较有意思的话题，就是关于人打的狂犬和动物打的狂犬一样吗的问题，于是小编就整理了1个相关介绍人打的狂犬和动物打的狂犬一样吗的解答，让我们一起看看吧。动物细

「12月4日」最高速度19.1M/S，2024年Singbox每天更新免费机场订阅节点链接

这一次的节点更新覆盖了美国、新加坡、欧洲、韩国、日本、加拿大、香港等地区,最高速度可达19.1 M/S。只需复制下方的Clash/v2ray订阅链接,在客户端添加后即可正常使用。


h
    fmin v16.8h, v16.8h, v25.8h
    fmin v17.8h, v17.8h, v25.8h
    fmin v18.8h, v18.8h, v25.8h
    fmin v19.8h, v19.8h, v25.8h
    fmin v20.8h, v20.8h, v25.8h
    fmin v21.8h, v21.8h, v25.8h
    fmin v22.8h, v22.8h, v25.8h
    fmin v23.8h, v23.8h, v25.8h
    fmax v8.8h, v8.8h, v24.8h
    fmax v9.8h, v9.8h, v24.8h
    fmax v10.8h, v10.8h, v24.8h
    fmax v11.8h, v11.8h, v24.8h
    fmax v12.8h, v12.8h, v24.8h
    fmax v13.8h, v13.8h, v24.8h
    fmax v14.8h, v14.8h, v24.8h
    fmax v15.8h, v15.8h, v24.8h
    fmax v16.8h, v16.8h, v24.8h
    fmax v17.8h, v17.8h, v24.8h
    fmax v18.8h, v18.8h, v24.8h
    fmax v19.8h, v19.8h, v24.8h
    fmax v20.8h, v20.8h, v24.8h
    fmax v21.8h, v21.8h, v24.8h
    fmax v22.8h, v22.8h, v24.8h
    fmax v23.8h, v23.8h, v24.8h
KAI_ASM_LABEL(label_178)  // Height 4: No activation
    cmp x11, #0x20
    bge label_195
    tbz x11, #4, label_186
    st1 { v8.8h }, [x9], #0x10
    st1 { v9.8h }, [x9], #0x10
    st1 { v12.8h }, [x26], #0x10
    st1 { v13.8h }, [x26], #0x10
    st1 { v16.8h }, [x25], #0x10
    st1 { v17.8h }, [x25], #0x10
    st1 { v20.8h }, [x24], #0x10
    st1 { v21.8h }, [x24], #0x10
    tbz x11, #3, label_182
    st1 { v10.8h }, [x9], #0x10
    st1 { v14.8h }, [x26], #0x10
    st1 { v18.8h }, [x25], #0x10
    st1 { v22.8h }, [x24], #0x10
    tbz x11, #2, label_180
    str d11, [x9], #0x8
    str d15, [x26], #0x8
    str d19, [x25], #0x8
    str d23, [x24], #0x8
    tbz x11, #1, label_179
    st1 { v11.s }[2], [x9], #0x4
    st1 { v15.s }[2], [x26], #0x4
    st1 { v19.s }[2], [x25], #0x4
    st1 { v23.s }[2], [x24], #0x4
    tbz x11, #0, label_194
    st1 {


LiveMPA.send_invites(user_id, {
			xuid,
		}, true, invite_address)

		if async_block then
			Managers.xasync:wrap(async_block):catch(_error_report)
		else
			_error_report(error_code)
		end
	end
end

InvitesXboxLive.reset = function (self)
	table.clear(self._invites)

	self._has_invite = false
end

InvitesXboxLive.on_profile_signed_in = function (self, xuid)
	local my_xuid = xuid and XboxLive.xuid_hex_to_dec(xuid)
	local invites = self._invites

	for i = #invites, 1, -1 do
		local invite = invites[i]
		local invited_user = invite.invited_user
		local joiner_xuid = invite.joiner_xuid
		local recipient_xuid = invited_user ~= "0" and invited_user or joiner_xuid ~= "0" and joiner_xuid

		if recipient_xuid and my_xuid and recipient_xuid ~= my_xuid then
			Log.info("InvitesXboxLive", "Clearing invite lingering from previous profile. my_xuid: %s, invite: %s", my_xuid, table.tostring(invite))
			table.remove(invites, i)
		end
	end

	self._has_invite = #invites > 0
end

InvitesXboxLive.destroy = function (self)
	return
end

return InvitesXboxLive


    }

    #[test]
    fn test_display_record_no_desc_id_without_space_after() {
        let fq: &'static [u8] = b"@id\nACGT\n+\n!!!!\n";
        let mut records = Reader::new(fq).records().map(|r| r.unwrap());
        let record = records.next().unwrap();
        let mut actual = String::new();
        write!(actual, "{}", record).unwrap();

        let expected = std::str::from_utf8(fq).unwrap();

        assert_eq!(actual, expected)
    }

    #[test]
    fn test_display_record_with_desc_id_has_space_between_id_and_desc() {
        let fq: &'static [u8] = b"@id description\nACGT\n+\n!!!!\n";
        let mut records = Reader::new(fq).records().map(|r| r.unwrap());
        let record = records.next().unwrap();
        let mut actual = String::new();
        write!(actual, "{}", record).unwrap();

        let expected = std::str::from_utf8(fq).unwrap();

        assert_eq!(actual, expected)
    }

    #[test]
    fn test_fqread_trait() {
        let path = "reads.fq.gz";
        let mut fq_reader: Box<dyn FastqRead> = match path.ends_with(".gz") {
            true => Box::new(Reader::new(io::BufReader::new(FASTQ_FILE))),
            false => Box::new(Reader::new(FASTQ_FILE)),
        };
        // The read method can be called, since it is implemented by
        // `Read`. Right now, the records method would not work.
        let mut record = Record::new();
        fq_reader.read(&mut record).unwrap();
        // Check if the returned result is correct.
        assert_eq!(record.check(), Ok(()));
        assert_eq!(record.id(), "id");
        assert_eq!(record.desc(), Some("desc"));
        assert_eq!(record.seq(), b"ACCGTAGGCTGA");
        assert_eq!(record.qual(), b"IIIIIIJJJJJJ");
    }

    #[test]
    fn test_record_with_attrs() {
        let record = Record::with_attrs("id_str", Some("desc"), b"ATGCGGG", b"QQQQQQQ");
        assert_eq!(record.id(), "id_str");
        assert_eq!(record.desc(), Some("desc"));
        assert_eq!(record.seq(), b"ATGCGGG");
        assert_eq!(record.qual(), b"QQQQQQQ");
    }

    #[test]
    fn test_writer() {
        let mut writer = Writer::new(Vec::new());
        writer
            .write("id", Some("desc"), b"ACCGTAGGCTGA", b"IIIIIIJJJJJJ")
            .ok()
            .expect("Expected successful write");
        writer.flush().ok().expect("Expected successful write");
        assert_eq!(writer.writer.get_ref(), &FASTQ_FILE);
    }

    #[test]
    fn test_check_record_id_is_empty_raises_err() {
        let record = Record::with_attrs("", None, b"ACGT", b"!!!!");

        let actual = record.check().unwrap_err();
        let expected = "Expecting id for FastQ record.";

        assert_eq!(actual, expected)
    }

    #[test]
    fn test_check_record_seq_is_not_ascii_raises_err() {
        let record = Record::with_attrs("id", None, "Prüfung".as_ref(), b"!!!!");

        let actual = record.check().unwrap_err();
        let expected = "Non-ascii character found in sequence.";

        assert_eq!(actual, expected)
    }

    #[test]
    fn t


sting')
    print(f"Output shape: {output.shape}")  # Should be [B, future_timestamps, output_dim]

    output = model(x, target, task='imputation')
    print(f"Output shape: {output.shape}")  # Should be [B, future_timestamps, output_dim]

    output = model(x, target, task='outlier')
    print(f"Output shape: {output.shape}")  # Should be [B, history_timestamps, output_dim]

    output = model(x, target, task='classification')
    print(f"Output shape: {output.shape}")  # Should be [B, num_classes] (output_dim is num_classes in this case)


 {aEfficiency = Math.abs(aEfficiency); return Chat.YELLOW + get(EFFICIENCY) + ": " + Chat.WHITE + percent(aEfficiency) + "%";}

	public static final void addToolTipsEfficiency(List<String> aList, ItemStack aStack, boolean aF3_H, TE_Behavior_Energy_Converter aConverter) {
		addToolTipsEfficiency(aList, aStack, aF3_H, aConverter.mEnergyIN, aConverter.mEnergyOUT, aConverter.mMultiplier);
	}
	public static final void addToolTipsEfficiency(List<String> aList, ItemStack aStack, boolean aF3_H, TE_Behavior_Energy_Stats aEnergyIN, TE_Behavior_Energy_Stats aEnergyOUT, long aMultiplier) {
		if (TD.Energy.ALL_EU.contains(aEnergyIN.mType)) {
			if (TD.Energy.ALL_EU.contains(aEnergyOUT.mType)) {
				aList.add(LH.getToolTipEfficiency(UT.Code.units(10000, aEnergyIN.mRec, aEnergyOUT.mRec*aMultiplier, F)));
			} else {
				if (aEnergyOUT.mType == TD.Energy.RF  ) aList.add(LH.getToolTipEfficiency(UT.Code.units(10000, aEnergyIN.mRec*RF_PER_EU, aEnergyOUT.mRec*aMultiplier, F)));
			}
		} else {
			if (TD.Energy.ALL_EU.contains(aEnergyOUT.mType)) {
				if (aEnergyIN.mType == TD.Energy.RF   ) aList.add(LH.getToolTipEfficiency(UT.Code.units(10000, aEnergyIN.mRec, aEnergyOUT.mRec*aMultiplier*RF_PER_EU, F)));
				if (aEnergyIN.mType == TD.Energy.STEAM) aList.add(LH.getToolTipEfficiency(UT.Code.units(10000, aEnergyIN.mRec, aEnergyOUT.mRec*aMultiplier*STEAM_PER_EU, F)));
			}
		}
	}

	public static final void addToolTipsEfficiency(List<String> aList, ItemStack aStack, boolean aF3_H, TE_Behavior_Energy_Stats aEnergyIN, TE_Behavior_Energy_Stats aEnergyOUT, TE_Behavior_Energy_Stats aEnergyOUT2, long aMultiplier) {
		if (TD.Energy.ALL_EU.contains(aEnergyIN.mType)) {
			if (TD.Energy.ALL_EU.contains(aEnergyOUT.mType)) {
				aList.add(LH.getToolTipEfficiency(UT.Code.units(10000, aEnergyIN.mRec, aEnergyOUT.mRec, F)));
			} else {
				if (aEnergyOUT.mType == TD.Energy.RF) aList.add(LH.getToolTipEfficiency(UT.Code.units(10000, aEnergyIN.mRec*RF_PER_EU, aEnergyOUT.mRec, F)));
			}
			if (TD.Energy.ALL_EU.contains(aEnergyOUT2.mType)) {
				aList.add(LH.getToolTipEfficiency(UT.Code.units(10000, aEnergyIN.mRec, aEnergyOUT.mRec, F)));
			} else {
				if (aEnergyOUT2.mType == TD.Energy.RF) aList.add(LH.getToolTipEfficiency(UT.Code.units(10000, aEnergyIN.mRec*RF_PER_EU, aEnergyOUT.mRec, F)));
			}
		} else {
			if (TD.Energy.ALL_EU.contains(aEnergyOUT .mType) && aEnergyIN.mType == TD.Energy.RF) aList.add(LH.getToolTipEfficiency(UT.Code.units(10000, aEnergyIN.mRec, aEnergyOUT.mRec*8, F)));
			if (TD.Energy.ALL_EU.contains(aEnergyOUT2.mType) && aEnergyIN.mType == TD.Energy.RF) aList.add(LH.getToolTipEfficiency(UT.Code.units(10000, aEnergyIN.mRec,


eplace("~", "_"),
        account = account
      )
        // only consider images with tags and app version set properly
        .asSequence()
        .filter { image ->
          tagsExistForAllAmis(image.tagsByImageId) && image.hasAppVersion
        }
        // filter to images with the correct base os
        .filter { image ->
          // using the xxxxbase pattern means we won't get matches for base OS values that are
          // substrings of others -- e.g. bionic and bionic-classic
          image.baseImageName.startsWith("${baseOs}base")
        }
        // filter to images with matching app version
        .filter { image ->
          // TODO: Frigga and Rocket version parsing are not aligned. We should consolidate.
          image.appVersion.parseAppVersion().run {
            packageName == appVersion.packageName && version == appVersion.version && commit == appVersion.commit
          }
        }
        // filter to images in the correct account and the desired region
        .filter { image ->
          image.accounts.contains(account) && image.amis.containsKey(region)
        }
        // reduce to the newest images required to support all regions we want
        .sortedByDescending { it.creationDate }
        .firstOrNull()
    }

  /**
   * Find the latest properly tagged image in [account] and [region].
   *
   * As a side effect this method will prime the cache for any additional regions where the image is
   * available.
   *
   * @param baseOs if supplied only images with that base OS are considered.
   */
  suspend fun getLatestNamedImage(
    appVersion: AppVersion,
    account: String,
    region: String,
    baseOs: String
  ): NamedImage? {
    val key = NamedImageCacheKey(appVersion, account, region, baseOs)
    return namedImageCache.get(key).await()
      // prime the cache if the image is also in other regions
      ?.also { image ->
        (image.amis.keys - region).forEach { otherRegion ->
          namedImageCache.putIfMissingOrOlderThan(key.copy(region = otherRegion), image)
        }
      }
  }

  private fun AsyncCache<NamedImageCacheKey, NamedImage>.putIfMissingOrOlderThan(
    key: NamedImageCacheKey,
    image: NamedImage
  ) {
    synchronous().apply {
      val updateCache = getIfPresent(key)
        ?.let { it.creationDate < image.creationDate }
        ?: true
      if (updateCache) {
        put(key, image)
      }
    }
  }

  private val defaultImageAccount: String
    get() = springEnv.getProperty("images.default-account", String::class.java, "test")

  /**
   * Given a [baseImageId] this function returns its name.
   */
  suspend fun findBaseImageName(baseImageId: String, region: String): String =
    cloudDriverService.getImage(defaultImageAccount, region, baseImageId)
      .lastOrNull()
      ?.imageName
      ?: throw BaseAmiNotFound(baseImageId)

  private fun tagsExistForAllAmis(tagsByImageId: Map<String, Map<String, String?>?>): Boolean {
    tagsByImageId.keys.forEach { key ->
      val tags = tagsByImageId[key]
      if (tags == null || tags.isEmpty()) {
        return false
      }
    }
    return true
  }
}

/**
 * Find the latest properly tagged images in [account] for each of [regions] using
 * [ImageService.getLatestNamedImage] in parallel for each region.
 *
 * In many cases all the values in the resulting map will be the same [NamedImage] instance, but
 * this may not be the case if images were baked separately in each region.
 *
 * The resulting


/* Copyright (c) 2024 dr. ext (Vladimir Sigalkin) */

using UnityEngine;
using UnityEditor;

using System.Linq;

using extOSC.Core;

namespace extOSC.Editor
{
	public static class OSCEditorInterface
	{
		#region Static Private Vars

		private static readonly GUIContent _transmitterAddressContent = new GUIContent("OSC Transmitter Address:");

		private static readonly GUIContent _transmitterAddressContentSmall = new GUIContent("OSC Address:");

		private static readonly GUIContent _receiverAddressContent = new GUIContent("OSC Receiver Address:");

		private static readonly GUIContent _receiverAddressContentSmall = new GUIContent("OSC Address:");

		private static readonly GUIContent _transmitterContent = new GUIContent("OSC Transmitter:");

		private static readonly GUIContent _receiverContent = new GUIContent("OSC Receiver:");

		private static readonly GUIContent _emptyContent = new GUIContent("- Empty -");

		#endregion

		#region Static Public Methods

		public static void LogoLayout()
		{
			if (OSCEditorTextures.IronWall == null)
				return;

			GUILayout.Space(10);
			EditorGUILayout.Space();

			var rect = GUILayoutUtility.GetRect(0, 0);
			var width = OSCEditorTextures.IronWall.width * 0.2f;
			var height = OSCEditorTextures.IronWall.height * 0.2f;

			rect.x = rect.width * 0.5f - width * 0.5f;
			rect.y = rect.y + rect.height * 0.5f - height * 0.5f;
			rect.width = width;
			rect.height = height;

			GUI.DrawTexture(rect, OSCEditorTextures.IronWall);
			EditorGUILayout.Space();
			GUILayout.Space(5);
		}

		public static void DrawProperties(SerializedObject serializedObject, params string[] exceptionsNames)
		{
			var serializedProperty = serializedObject.GetIterator();
			var isEmpty = true;
			var enterChild = true;

			while (serializedProperty.NextVisible(enterChild))
			{
				enterChild = false;

				if (serializedProperty.name == "m_Script" ||


cing from followed db", "followedDB", followedDB.UID, "keeper", followedDB.Spec.KeeperUID)
	}

	if err := pgm.SyncFromFollowed(replConnParams, replSlot); err != nil {
		return fmt.Errorf("sync error: %v", err)
	}
	log.Infow("sync succeeded")

	pgm.SetRecoveryOptions(p.createRecoveryOptions(pg.RecoveryModeStandby, standbySettings, nil, nil))

	return nil
}

// TODO(sgotti) unify this with the sentinel one. They have the same logic but one uses *cluster.PostgresState while the other *cluster.DB
func (p *PostgresKeeper) isDifferentTimelineBranch(followedDB *cluster.DB, pgState *cluster.PostgresState) bool {
	if followedDB.Status.TimelineID < pgState.TimelineID {
		log.Infow("followed instance timeline < than our timeline", "followedTimeline", followedDB.Status.TimelineID, "timeline", pgState.TimelineID)
		return true
	}

	// if the timelines are the same check that also the switchpoints are the same.
	if followedDB.Status.TimelineID == pgState.TimelineID {
		if pgState.TimelineID <= 1 {
			// if timeline <= 1 then no timeline history file exists.
			return false
		}
		ftlh := followedDB.Status.TimelinesHistory.GetTimelineHistory(pgState.TimelineID - 1)
		tlh := pgState.TimelinesHistory.GetTimelineHistory(pgState.TimelineID - 1)
		if ftlh == nil || tlh == nil {
			// No timeline history to check
			return false
		}
		if ftlh.SwitchPoint == tlh.SwitchPoint {
			return false
		}
		log.Infow("followed instance timeline forked at a different xlog pos than our timeline", "followedTimeline", followedDB.Status.TimelineID, "followedXlogpos", ftlh.SwitchPoint, "timeline", pgState.TimelineID, "xlogpos", tlh.SwitchPoint)
		return true
	}

	// followedDB.Status.TimelineID > pgState.TimelineID
	ftlh := followedDB.Status.TimelinesHistory.GetTimelineHistory(pgState.TimelineID)
	if ftlh != nil {
		if ftlh.SwitchPoint < pgState.XLogPos {
			log.Infow("followed instance timeline forked before our current state", "followedTimeline", followedDB.Status.TimelineID, "followedXlogpos", ftlh.SwitchPoint, "timeline", pgState.TimelineID, "xlogpos", pgState.XLogPos)
			return true
		}
	}
	return false
}

func (p *PostgresKeeper) updateReplSlots(curReplSlots []string, uid string, followersUIDs, additionalReplSlots []string) error {
	internalReplSlots := map[string]struct{}{}

	// Create a list of the wanted internal replication slots
	for _, followerUID := range followersUIDs {
		if followerUID == uid {
			continue
		}
		internalReplSlots[common.StolonName(followerUID)] = struct{}{}
	}

	// Add AdditionalReplicationSlots
	for _, slot := range additionalReplSlots {
		internalReplSlots[common.StolonName(slot)] = struct{}{}
	}

	// Drop internal replication slots
	for _, slot := range curReplSlots {
		if !common.IsStolonName(slot) {
			continue
		}
		if _, ok := internalReplSlots[slot]; !ok {
			log.Infow("dropping replication slot", "slot", slot)
			if err := p.pgm.DropReplicationSlot(slot); err != nil {
				log.Errorw("failed to drop replication slot", "slot", slot, "err", err)
				// don't return the error but


a

dM@sndZddlZddlZddlZgdZeefZddZd@ddZ	dAd	d
Z
ddZd
dZe
ddZe
ddZddZddZdZdadaddZdBddZddZdCddZdadadZdZdDd d!Zddddd"d#d$Zddd%d&d'd(Zd)Z da!da"da#dEd*d+Z$d,d-Z%d.Z&e&d/d0Z'd1d2Z(d3d4Z)d5d6Z*d7d8Z+d9d:Z,d;d<Z-d=d>Z.e/d?krje-dS)FzDBase16, Base32, Base64 (RFC 3548), Base85 and Ascii85 data encodingsN)encodedecodeencodebytesdecodebytes	b64encode	b64decode	b32encode	b32decode	b16encode	b16decode	b85encode	b85decode	a85encode	a85decodestandard_b64encodestandard_b64decodeurlsafe_b64encodeurlsafe_b64decodecCsxt|tr2z|dWSty0tdYn0t|tr@|Szt|WStyrtd|j	j
dYn0dS)Nasciiz4string argument should contain only ASCII charactersz>argument should be a bytes-like object or ASCII string, not %r)
isinstancestrrUnicodeEncodeError
ValueErrorbytes_types
memoryviewtobytes	TypeError	__class____name__sr!M/home/tom/ab/renpy-build-fix/tmp/install.linux-x86_64/lib/python3.9/base64.py_bytes_from_decode_data"s

r#cCsDtj|dd}|dur@t|dks.Jt||td|S|S)a*Encode the bytes-like object s using Base64 and return a bytes object.

    Optional altchars should be a byte string of length 2 which specifies an
    alternative alphabet for the '+' and '/' characters.  This allows an
    application to e.g. generate url or filesystem safe Base64 strings.
    F)newlineN+/)binascii
b2a_base64lenrepr	translatebytes	maketrans)r altcharsencodedr!r!r"r3s
rFcCsft|}|durBt|}t|dks0Jt||t|d}|r\td|s\t	dt
|S)anDecode the Base64 encoded bytes-like object or ASCII string s.

    Optional altchars must be a bytes-like object or ASCII string of length 2
    which specifies the alternative alphabet used instead of the '+' and '/'
    characters.

    The result is returned as a bytes object.  A binascii.Error is raised if
    s is incorrectly padded.

    If validate is False (the default), characters that are neither in the
    normal base-64 alphabet nor the alternative alphabet are discarded prior
    to the padding check.  If validate is True, these non-alphabet characters
    in the input result in a binascii.Error.
    Nr%r&s[A-Za-z0-9+/]*={0,2}zNon-base64 digit found)r#r)r*r+r,r-re	fullmatchr'Error
a2b_base64)r r.validater!r!r"rAs
rcCst|S)zrEncode bytes-like object s using the standard Base64 alphabet.

    The result is returned as a bytes object.
    )rrr!r!r"rZsrcCst|S)aQDecode bytes encoded with the standard Base64 alphabet.

    Argument s is a bytes-like object or ASCII string to decode.  The result
    is returned as a bytes object.  A binascii.Error is raised if the input
    is incorrectly padded.  Characters that are not in the standard alphabet
    are discarded prior to the padding check.
    )rrr!r!r"rasrr&s-_cCst|tS)zEncode bytes using the URL- and filesystem-safe Base64 alphabet.

    Argument s is a bytes-like object to encode.  The result is returned as a
    bytes object.  The alphabet uses '-' instead of '+' and '_' instead of
    '/'.
    )rr+_urlsafe_encode_translationrr!r!r"rosrcCst|}|t}t|S)aDecode bytes using the URL- and filesystem-safe Base64 alphabet.

    Argument s is a bytes-like object or ASCII string to decode.  The result
    is returned as a bytes object.  A binascii.Error is raised if the input
    is incorrectly padded.  Characters that are not in the URL-safe base-64
    alphabet, and are not a plus '+' or slash '/', are discarded prior to the
    padding check.

    The alphabet uses '-' instead of '+' and '_' instead of '/'.
    )r#r+_urlsafe_decode_translationrrr!r!r"rxs
rs ABCDEFGHIJKLMNOPQRSTUVWXYZ234567cs>tdur,ddtDfddDadt|tsBt|}t|d}|rb|dd|}t}tj	}t}t
dt|dD]V}||||dd}||


 this message translates to:
  /// **'授权白板互动'**
  String get participantWhiteBoardInteract;

  /// No description provided for @participantWhiteBoardInteractFail.
  ///
  /// In zh, this message translates to:
  /// **'授权白板互动失败'**
  String get participantWhiteBoardInteractFail;

  /// No description provided for @participantUndoWhiteBoardInteract.
  ///
  /// In zh, this message translates to:
  /// **'撤回白板互动'**
  String get participantUndoWhiteBoardInteract;

  /// No description provided for @participantUndoWhiteBoardInteractFail.
  ///
  /// In zh, this message translates to:
  /// **'撤回白板互动失败'**
  String get participantUndoWhiteBoardInteractFail;

  /// No description provided for @participantUserHasBeenAssignCoHostRole.
  ///
  /// In zh, this message translates to:
  /// **'已被设为联席主持人'**
  String get participantUserHasBeenAssignCoHostRole;

  /// No description provided for @participantUserHasBeenRevokeCoHostRole.
  ///
  /// In zh, this message translates to:
  /// **'已被取消联席主持人'**
  String get participantUserHasBeenRevokeCoHostRole;

  /// No description provided for @participantInMeeting.
  ///
  /// In zh, this message translates to:
  /// **'会议中'**
  String get participantInMeeting;

  /// No description provided for @participantNotJoined.
  ///
  /// In zh, this message translates to:
  /// **'未入会'**
  String get participantNotJoined;

  /// No description provided for @participantJoining.
  ///
  /// In zh, this message translates to:
  /// **'加入中...'**
  String get participantJoining;

  /// No description provided for @participantAttendees.
  ///
  /// In zh, this message translates to:
  /// **'成员管理'**
  String get participantAttendees;

  /// No description provided for @participantAdmit.
  ///
  /// In zh, this message translates to:
  /// **'准入'**
  String get participantAdmit;

  /// No description provided for @participantWaitingTimePrefix.
  ///
  /// In zh, this message translates to:
  /// **'已等待'**
  String get participantWaitingTimePrefix;

  /// No description provided for @participantPutInWaitingRoom.
  ///
  /// In zh, this message translates to:
  /// **'移至等候室'**
  String get participantPutInWaitingRoom;

  /// No description provided for @participantDisallowMemberRejoinMeeting.
  ///
  /// In zh, this message translates to:
  /// **'不允许用户再次加入该会议'**
  String get participantDisallowMemberRejoinMeeting;

  /// No description provided for @participantVideoIsPinned.
  ///
  /// In zh, this message translates to:
  /// **'画面已锁定，点击{corner}取消锁定'**
  String participantVideoIsPinned(Object corner);

  /// No description provided for @participantVideoIsUnpinned.
  ///
  /// In zh, this message translates to:
  /// **'画面已解锁'**
  String get participantVideoIsUnpinned;

  /// No description provided for @participantNotFound.
  ///
  /// In zh, this message translates to:
  /// **'未找到相关成员'**
  String get participantNotFound;

  /// No description provided for @participantSetHost.


uid-fat-image-link-v2_style_fluidImageContainer__2SOMr">

Jetzt kaufen

<div id="desktop-grid-5" data-gwi="{"visible":"desktop-grid-5-visible","active":"desktop-grid-5-active"}" data-display-at="smws" data-order-ws="6" class="gw-col csm-placement-id-1c1cafab-7192-437e-8d9c-8a133e700a06 desktop-gateway-atf_f61c9171-1e08-4235-9d61-6636b50cfd15 celwidget pd_rd_wg-hnSv8 pd_rd_w-pObMP pd_rd_r-eb298665-6f75-4b82-93cd-9ebf3893d457" data-order-sm="7" data-pf_rd_p="1c1cafab-7192-437e-8d9c-8a133e700a06" data-pd_rd_wg="hnSv8" data-pd_rd_w="pObMP" data-pd_rd_r="eb298665-6f75-4b82-93cd-9ebf3893d457" data-ref_="pd_hp_d_atf_unk" data-cid="f61c9171-1e08-4235-9d61-6636b50cfd15" data-csa-op-log-render="" data-csa-c-type="widget" data-csa-c-slot-id="desktop-grid-5" data-csa-c-content-id="amzn1.sym.1c1cafab-7192-437e-8d9c-8a133e700a06" data-csa-c-painter="fluid-fat-image-link-v2"><div class="a-cardui _fluid-fat-image-link-v2_style_fluidFatImageLink__1nw4J" data-a-card-


@/*
@ ** Copyright 2003-2010, VisualOn, 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.
@ */
@
@static void Norm_Corr (Word16 exc[],                    /* (i)     : excitation buffer          */
@                       Word16 xn[],                     /* (i)     : target vector              */
@                       Word16 h[],                      /* (i) Q15 : impulse response of synth/wgt filters */
@                       Word16 L_subfr,                  /* (i)     : sub-frame length */
@                       Word16 t_min,                    /* (i)     : minimum value of pitch lag.   */
@                       Word16 t_max,                    /* (i)     : maximum value of pitch lag.   */
@                       Word16 corr_norm[])              /* (o) Q15 : normalized correlation    */
@

@ r0 --- exc[]
@ r1 --- xn[]
@ r2 --- h[]
@ r3 --- L_subfr
@ r4 --- t_min
@ r5 --- t_max
@ r6 --- corr_norm[]

	.section  .text
        .global    Norm_corr_asm
        .extern    Convolve_asm
        .extern    Isqrt_n
@******************************
@ constant
@******************************
.equ    EXC               , 0
.equ    XN                , 4
.equ    H                 , 8
.equ    L_SUBFR           , 12
.equ    voSTACK           , 172
.equ    T_MIN             , 212
.equ    T_MAX             , 216
.equ    CORR_NORM         , 220

Norm_corr_asm:

        STMFD          r13!, {r4 - r12, r14}
        SUB            r13, r13, #voSTACK

        ADD            r8, r13, #20                 @get the excf[L_SUBFR]
        LDR            r4, [r13, #T_MIN]            @get t_min
        RSB            r11, r4, #0                  @k = -t_min
        ADD            r5, r0, r11, LSL #1          @get the &exc[k]

        @transfer Convolve function
        STMFD          sp!, {r0 - r3}
        MOV            r0, r5
        MOV            r1, r2
        MOV            r2, r8                       @r2 --- excf[]
        BL             Convolve_asm
        LDMFD          sp!, {r0 - r3}

        @ r8 --- excf[]

	MOV            r14, r1                       @copy xn[] address
        MOV            r7, #1
	VLD1.S16       {Q0, Q1}, [r14]!
	VLD1.S16       {Q2, Q3}, [r


) ∨ C`。
        - 再看右边式子 `(A → C) ∨ (B → C)`，等价于 `(¬A ∨ C) ∨ (¬B ∨ C)` ，整理后也是 `(¬A ∨ ¬B) ∨ C`。
        - 可以发现左右两边式子是逻辑等价的，那么必然满足逻辑后承关系，因为只要左边为真右边肯定为真（它们真值始终一样）。
    - **答案**：正确。
- **g. `(C ∨ (¬A ∧ ¬B)) ≡ ((A → C) ∧ (B → C))`**：
    - **分析**：
        - 左边式子 `(C ∨ (¬A ∧ ¬B))` 等价于 `C ∨ ¬(A ∨ B)`。
        - 右边式子 `((A → C) ∧ (B → C))` 等价于 `((¬A ∨ C) ∧ (¬B ∨ C))`，进一步可整理为 `(¬A ∧ ¬B) ∨ C`，也就是 `C ∨ (¬A ∧ ¬B)` 。
        - 左右两边式子逻辑等价，所以满足逻辑后承关系，因为在所有使左边式子为真的解释下，右边式子必然也为真（二者真值相同）。
    - **答案**：正确。
- **h. `(A ∨ B) ∧ (¬C ∨ ¬D ∨ E) |= (A ∨ B)`**：
    - **分析**：对于逻辑后承关系，如果左边式子 `(A ∨ B) ∧ (¬C ∨ ¬D ∨ E)` 为真，由于逻辑与的性质，就要求 `(A ∨ B)` 和 `(¬C ∨ ¬D ∨ E)` 都为真，那必然意味着 `(A ∨ B)` 为真呀，所以满足逻辑后承定义。
    - **答案**：正确。
- **i. `(A ∨ B) ∧ (¬C ∨ ¬D ∨ E) |= (A ∨ B) ∧ (¬D ∨ E)`**：
    - **分析**：当左边式子 `(A ∨ B) ∧ (¬C ∨ ¬D ∨ E)` 为真时，只能保证 `(A ∨ B)` 和 `(¬C ∨ ¬D ∨ E)` 为真，但不能必然保证 `(A ∨ B) ∧ (¬D ∨ E)` 一定为真，比如存在 `C` 为假，`D` 为真等情况使得左边为真但右边的 `(¬D ∨ E)` 部分不一定满足，不满足逻辑后承要求。
    - **答案**：不正确。
- **j. `(A ∨ B) ∧ ¬(A → B)` 是可满足的**：
    - **分析**：式子 `(A ∨ B) ∧ ¬(A → B)` 中，`¬(A → B)` 等价于 `A ∧ ¬B`，那么原式子就相当于 `(A ∨ B) ∧ (A ∧ ¬B)`，当 `A` 为真且 `B` 为假时，这个式子为真，所以它是可满足的，存在使其成立的赋值情况。
    - **答案**：正确。
- **k. `(A ⇔ B) ∧ ¬(A ∨ B)` 是可满足的**：
    - **分析**：式子 `(A ⇔ B) ∧ ¬(A ∨ B)` 中，`¬(A ∨ B)` 等价于 `¬A ∧ ¬B`，原式子就变为 `(A ⇔ B) ∧ (¬A ∧ ¬B)`，当 `A` 和 `B` 都为假时，该式子为真，所以存在使其满足的赋值情况，是可满足的。
    - **答案**：正确。
- **l. `(A ⇔ B) ⇔ C` 与包含固定集合命题符号 `A`、`B`、`C` 的 `(A ⇔ B)` 的模型数相等**：
    - **分析**：
        - 对于 `(A ⇔ B)` ，其有 4 种不同的真值组合情况（`A` 真 `B` 真、`A` 真 `B` 假、`A` 假 `B` 真、`A` 假 `B` 假）。
        - 而对于 `(A ⇔ B) ⇔ C` ，它一共有 8 种不同的真值组合情况，因为涉及到三个命题的取值组合了。
        - 显然二者的模型数（也就是使其为真的不同赋值情况数量）是不相等的。
    - **答案**：不正确。

**总


],
                        "paper_doi": paper['externalIds'],
                        "paper_journal": paper['journal'],
                        "paper_pdf_url": paper['openAccessPdf'],
                        "paper_language": "en"
                    })

                    # 保存查询数据到数据库
                    mysql_result2 = ScienceResearchMapper.update_paper_search_set_paper_id({
                        "paper_id": paper_id,
                        "search_id": self.knowledge_finding_config['search_id_list'][i]
                    })

                except Exception as e:
                    ScienceResearchProgress.update_log(user_id=self.knowledge_finding_config['user_id'],
                                                       new_message=f"{i}: {paper['title']} 保存出错: {e}")
            else:

                paper_id = mysql_result.get_data_on_results()[0]['paper_id']

                # 保存查询数据到数据库
                mysql_result3 = ScienceResearchMapper.update_paper_search_set_paper_id({
                    "paper_id": paper_id,
                    "search_id": self.knowledge_finding_config['search_id_list'][i]
                })

                ScienceResearchProgress.update_log(user_id=self.knowledge_finding_config['user_id'],
                                                   new_message=f"{i}: {paper['title']} 已存在")

            ScienceResearchProgress.update_log(user_id=self.knowledge_finding_config['user_id'], new_message=f"{i}: {paper['title']} 保存完成")

            del paper

        ScienceResearchProgress.update_log(user_id=self.knowledge_finding_config['user_id'], new_message="全部保存完成")

    def download_paper_pdf(self):

        ScienceResearchProgress.update_log(user_id=self.knowledge_finding_config['user_id'], new_message="开始下载pdf")

        if self.knowledge_finding_config['task_type'] != 'retrieval':
            ScienceResearchProgress.update_log(user_id=self.knowledge_finding_config['user_id'], new_message="已存在pdf文件无需下载")
            return

        # TODO: 无VPN，一般网络下载PDF非常慢

        # 查询数据库获取所有论文
        mysql_result = ScienceResearchMapper.select_paper_search_where_user_id_and_task_id({
            "user_id": self.knowledge_finding_config['user_id'],
            "task_id": self.knowledge_finding_config['task_id']
        })
        paper_result_list = mysql_result.get_data_on_results()

        # 下载论文pdf
        for paper in paper_result_list:
            # 对论文名称进行哈希加密
            try:
                hashed_paper_title = HashParser.hash_encode(paper['paper_title'])
                pdf_file_path = f"{self.knowledge_finding_config['paper_pdf_path']}/{hashed_paper_title}.pdf"

                # 若该论文pdf已下载，则跳过
                if os.path.exists(pdf_file_path):
                    continue
            except Exception as e:
                print(e)
                continue

            status, message = RequestSender.download_pdf_file(
                pdf_url=paper['paper_pdf_url'],
                file_path=pdf_file_path
            )

            ScienceResearchProgress.update_log(user_id=self.knowledge_finding_config['user_id'], new_message=message)

            del message
            del paper

        # 删除无效的pdf文件
        for file_name in os.listdir(self.knowledge_finding_config['paper_pdf_path']):
            file_path = f"{self.knowledge_finding_config['paper_pdf_path']}/{file_name}"
            if not file_name.endswith(".pdf"):
                # 删除非pdf后缀的文件
                os.remove(file_path)
            elif os.path.getsize(file_path) / 1024 < 20:
                # 删除文件内存小于20KB的文件
                os.remove(file_path)

        ScienceResearchProgress.update_log(user_id=self.knowledge_finding_config['user_id'], new_message="下载完成")

    def summarize_paper_pdf(self):

        print("开始总结论文")

        # 解析pdf获取论文文本
        try:
            for m, file_name in enumerate(os.listdir(self.knowledge_finding_config['paper_pdf_path'])):
                try:

                    pdf_file_path = f"{self.knowledge_finding_config['paper_pdf_path']}/{file_name}"
                    paper_text = PDFParser.load(pdf_file_path)

                    print(f"已读取pdf文件: {file_name}")

                    # 分割文本为段落

                    paragraph_list = []
                    max_str = 4000
                    current_paragraph = ""
                    for sentence in paper_text.split("\n"):
                        if len(current_paragraph) + len(sentence) > max_str:
                            paragraph_list.append(cu