ETTABLEKS R18 R17 K14 ["OnDelete"]
  CALL R15 2 1
  SETTABLE R15 R7 R13
  JUMP [+56]
  GETUPVAL R16 1
  GETTABLEKS R15 R16 K7 ["createElement"]
  GETUPVAL R16 7
  DUPTABLE R17 K18 [{"LabelColumnWidth", "LayoutOrder", "Text"}]
  GETTABLEKS R18 R2 K10 ["LabelColumnWidth"]
  SETTABLEKS R18 R17 K10 ["LabelColumnWidth"]
  NAMECALL R18 R4 K16 ["getNextOrder"]
  CALL R18 1 1
  SETTABLEKS R18 R17 K11 ["LayoutOrder"]
  LOADK R20 K19 ["TerrainDetails"]
  MOVE R21 R13
  NAMECALL R18 R3 K20 ["getText"]
  CALL R18 3 1
  SETTABLEKS R18 R17 K17 ["Text"]
  NEWTABLE R18 0 1
  GETUPVAL R20 1
  GETTABLEKS R19 R20 K7 ["createElement"]
  GETUPVAL R20 8
  DUPTABLE R21 K25 [{"Size", "Text", "TextXAlignment", "OnClick", "Style"}]
  GETTABLEKS R22 R2 K26 ["DialogColumnSize"]
  SETTABLEKS R22 R21 K21 ["Size"]
  LOADK R24 K19 ["TerrainDetails"]
  LOADK R25 K27 ["ButtonCreate"]
  NAMECALL R22 R3 K20 ["getText"]
  CALL R22 3 1
  SETTABLEKS R22 R21 K17 ["Text"]
  GETIMPORT R22 K30 [Enum.TextXAlignment.Center]
  SETTABLEKS R22 R21 K22 ["TextXAlignment"]
  NEWCLOSURE R22 P1
  CAPTURE VAL R0
  CAPTURE VAL R13
  SETTABLEKS R22 R21 K23 ["OnClick"]
  LOADK R22 K31 ["Round"]
  SETTABLEKS R22 R21 K24 ["Style"]
  CALL R19 2 -1
  SETLIST R18 R19 -1 [1]
  CALL R15 3 1
  SETTABLE R15 R7 R13
  FORGLOOP R8 2 [inext] [-88]
  GETUPVAL R9 1
  GETTABLEKS R8 R9 K7 ["createElement"]
  GETUPVAL R9 9
  DUPTABLE R10 K36 [{"LayoutOrder", "ContentPadding", "ContentSpacing", "Text", "Style", "Expanded", "OnExpandedChanged"}]
  GETTABLEKS R11 R1 K11 ["LayoutOrder"]
  SETTABLEKS R11 R10 K11 ["LayoutOrder"]
  GETTABLEKS R11 R2 K32 ["ContentPadding"]
  SETTABLEKS R11 R10 K32 ["ContentPadding"]
  GETTABLEKS R11 R2 K37 ["ItemSpacing"]
  SETTABLEKS R11 R10 K33 ["ContentSpacing"]
  LOADK R13 K19 ["TerrainDetails"]
  LOADK R14 K19 ["TerrainDetails"]
  NAMECALL R11 R3 K20 ["getText"]
  CALL R11 3 1
  SETTABLEKS R11 R10 K17 ["Text"]
  GETTABLEKS R11 R2 K38 ["CustomExpandablePane"]
  SETTABLEKS R11 R10 K24 ["Style"]
  GETTABLEKS R11 R1 K39 ["ExpandedPane"]
  SETTABLEKS R11 R10 K34 ["Expanded"]
  GETTABLEKS R11 R0 K40 ["onExpandedChanged"]
  SETTABLEKS R11 R10 K35 ["OnExpandedChanged"]
  MOVE R11 R7
  CALL R8 3 -1
  RETURN R8 -1

PROTO_7:
  DUPTABLE R2 K2 [{"Material", "ExpandedPane"}]
  GETTABLEKS R3 R1 K3 ["MockMaterial"]
  JUMPIF R3 [+4]
  GETTABLEKS R4 R0 K4 ["MaterialBrowserReducer"]
  GETTABLEKS R3 R4 K


 {
        children.clear();
        if (lookupTable != null) {
            children.add(lookupTable);
        }
    }

    @Override
    public LookupTable<?,?> create(final String qtiClassName) {
        if (qtiClassName.equals(MatchTable.QTI_CLASS_NAME)) {
            return new MatchTable(getParent());
        }
        else if (qtiClassName.equals(InterpolationTable.QTI_CLASS_NAME)) {
            return new InterpolationTable(getParent());
        }
        else {
            throw new QtiIllegalChildException(getParent(), qtiClassName);
        }
    }
}
/* Copyright (c) 2012-2013, University of Edinburgh.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * * Redistributions of source code must retain the above copyright notice, this
 *   list of conditions and the following disclaimer.
 *
 * * Redistributions in binary form must reproduce the above copyright notice, this
 *   list of conditions and the following disclaimer in the documentation and/or
 *   other materials provided with the distribution.
 *
 * * Neither the name of the University of Edinburgh nor the names of its
 *   contributors may be used to endorse or promote products derived from this
 *   software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 *
 * This software is derived from (and contains code from) QTItools and MathAssessEngine.
 * QTItools is (c) 2008, University of Southampton.
 * MathAssessEngine is (c) 2010, University of Edinburgh.
 */
package uk.ac.ed.ph.jqtiplus.group.item.response.processing;

import uk.ac.ed.ph.jqtiplus.group.SimpleSingleNodeGroup;
import uk.ac.ed.ph.jqtiplus.node.item.response.processing.ResponseCondition;
import uk.ac.ed.ph.jqtiplus.node.item.response.processing.ResponseElse;

/**
 * Group of responseElse child.
 *
 * @author Jonathon Hare
 */
public final class ResponseElseGroup extends SimpleSingleNodeGroup<ResponseCondition,ResponseElse> {

    private static final long serialVersionUID = 2103491746328094206L;

    public ResponseElseGroup(final ResponseCondition parent) {
        super(parent, ResponseElse.QTI_CLASS_NAME, false);
    }

    public ResponseElse getResponseElse() {
        return getChild();
    }

    public void setResponseElse(final ResponseElse responseElse) {
        setChild(responseElse);
    }

    @Override
    public ResponseElse create() {
        return new ResponseElse(getParent());
    }
}
/* Copyright (c) 2012-2013, University of Edinburgh.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * * Redistributions of source code must retain the above copyright notice, this
 *   list of conditions and the following disclaimer.
 *
 * * Redistributions in binary form must reproduce the above copyright notice, this
 *   list of conditions and the following disclaimer in the documentation and/or
 *   other materials


 RCURLY )
            // AS3_ex.g3:3535:9: L= LCURLY ( propertyNameAndValueList )? R= RCURLY
            {
                root_0 = adaptor.GetNilNode();

                L=(IToken)Match(input,LCURLY,FOLLOW_LCURLY_in_objectLiteral14946); if (state.failed) return retval;
                if ( state.backtracking == 0 )
                {L_tree = adaptor.Create(L);
                    adaptor.AddChild(root_0, L_tree);
                }
                if ( state.backtracking == 0 )
                {
                  emit(L);insertWS(mPrinter.getAdvancedSpacesInsideObjectBraces());
                      pushIndent(true);

                }
                // AS3_ex.g3:3537:7: ( propertyNameAndValueList )?
                int alt163 = 2;
                int LA163_0 = input.LA(1);

                if ( (LA163_0 == NATIVE || LA163_0 == TO || (LA163_0 >= EACH && LA163_0 <= NAMESPACE) || (LA163_0 >= DYNAMIC && LA163_0 <= STATIC) || (LA163_0 >= SINGLE_QUOTE_LITERAL && LA163_0 <= DOUBLE_QUOTE_LITERAL) || LA163_0 == HEX_NUMBER_LITERAL || LA163_0 == DEC_NUMBER_LITERAL || LA163_0 == IDENTIFIER) )
                {
                    alt163 = 1;
                }
                switch (alt163)
                {
                    case 1 :
                        // AS3_ex.g3:0:0: propertyNameAndValueList
                        {
                            PushFollow(FOLLOW_propertyNameAndValueList_in_objectLiteral14950);
                            propertyNameAndValueList345 = propertyNameAndValueList();
                            state.followingStackPointer--;
                            if (state.failed) return retval;
                            if ( state.backtracking == 0 ) adaptor.AddChild(root_0, propertyNameAndValueList345.Tree);

                        }
                        break;

                }

                R=(IToken)Match(input,RCURLY,FOLLOW_RCURLY_in_objectLiteral14955); if (state.failed) return retval;
                if ( state.backtracking == 0 )
                {R_tree = adaptor.Create(R);
                    adaptor.AddChild(root_0, R_tree);
                }
                if ( state.backtracking == 0 )
                {

                      popIndent();
                      insertWS(mPrinter.getAdvancedSpacesInsideObjectBraces());emit(R);
                }

            }

            retval.Stop = input.LT(-1);

            if ( state.backtracking==0 )
            {   retval.Tree = adaptor.RulePostProcessing(root_0);
                adaptor.SetTokenBoundaries(retval.Tree, (IToken) retval.Start, (IToken) retval.Stop);}
        }
        catch (RecognitionException re)
        {
            ReportError(re);
            Recover(input,re);
        // Conversion of the second argument necessary, but harmless
        retval.Tree = adaptor.ErrorNode(input, (IToken) retval.Start, input.LT(-1), re);

        }
        finally
        {
            if ( state.backtracking > 0 )
            {
                Memoize(input, 143, objectLiteral_StartIndex);
            }
        }
        return retval;
    }
    // $ANTLR end "objectLiteral"

    public class propertyNameAndValueList_return : ParserRuleReturnScope
    {
        private object tree;
        override public object Tree
        {
            get => tree;
            set => tree = value;
        }
    };

    // $ANTLR start "propertyNameAndValueList"
    // AS3_ex.g3:3542:1: propertyNameAndValueList : propertyNameAndValue (C= COMMA propertyNameAndValue )* ;
    public propertyNameAndValueList_return propertyNameAndValueList() // throws RecognitionException [1]
    {
        propertyNameAndValueList_return retval = new propertyNameAndValueList_return();
        retval.Start = input.LT(1);
        int propertyNameAndValueList_StartIndex = input.Index();
        object root_0 = null;

        IToken C = null;


services = _services
            .AsValueEnumerable()
            .OrderByDescending(service => service.AverageTime)
            .ThenByDescending(service => service.LastTime)
            .ToArray();

        for (var i = 0; i < Services.Length; i++)
        {
            var service = Services[i];
            if (_repliesMinimumTimeValues[i] != service.MinimumTime) _repliesMinimumTimeValues[i] = service.MinimumTime;
            if (_repliesTimeValues[i] != service.LastTime) _repliesTimeValues[i] = service.LastTime;
            if (_repliesAvgTimeValues[i] != service.AverageTime) _repliesAvgTimeValues[i] = service.AverageTime;
            if (_repliesMaximumTimeValues[i] != service.MaximumTime) _repliesMaximumTimeValues[i] = service.MaximumTime;

            var label = string.IsNullOrWhiteSpace(service.HostName) ? service.IpEndPointStr : service.HostName;
            if (RepliesYAxesCollection[i] != label) _repliesYAxes[i] = label;
        }
    }

    private void OnBaseThemeChanged(ThemeVariant theme)
    {
        var color = App.SukiTextResource;
        var paint = new SolidColorPaint(new SKColor(color.R, color.G, color.B, color.A));

        foreach (var axis in _singleGraphXAxes)
        {
            axis.LabelsPaint = paint;
            axis.NamePaint = paint;
        }

        foreach (


", 35, true, false);
            LineFollowToIntersection("l", 35, false, true);
        } else if (SKARTING_SIDE == "RIGHT") {
            LineFollowToIntersection("r", 35, true, false);
            LineFollowToIntersection("r", 35, true, false);
            LineFollowToIntersection("l", 35, false, true);
        } else return; // Не верно указано SKARTING_SIDE
        */
    }

    ///////////////////////
    /*
    if (ledColor == 4) { // Солнце слева
        LineFollowToIntersection("l", 35, true);
        EncTurn("c", -90, 40); //TurnToLine("l", true, 40);
        LineFollowToDist(380, 30, "2s", true);
        Grab(false)
        pause(100);
        DistMove(50, -50, true);
        pause(100);
        EncTurn("c", 180, 40); //TurnToLine("l", true, 40);
        //AlignmentOnLine(500);
        pause(100);
        LineFollowToIntersection("x", 40, true);
        LineAlignment(false, 30, 500);
        DistMove(20, 40, true);
        pause(100);
        EncTurn("c", 91, 40); //TurnToLine("r", false, 40);
        AlignmentOnLine(300);
        pause(100);
        LineFollowToDist(110, 50, "2s", true);
    } else { // Солнце справа
        LineFollowToIntersection("l", 35, true, false);
        LineFollowToDist(460, 35, "ls", false);
        LineFollowToIntersection("r", 35, true, true);
        EncTurn("c", 90, 40);
        LineFollowToDist(370, 35, "2s", true);
        Grab(false);
        pause(100);
        DistMove(-40, 30);
        pause(100);
        EncTurn("c", 180, 40);
        LineFollowToIntersection("x", 50, true, true);
        EncTurn("c", -90, 40);
        LineFollowToDist(50, 35, "2s", false);
        LineFollowToDist(410, 30, "rs", false);
        LineFollowToDist(230, 35, "2s", false);
        LineFollowToIntersection("l", 35, false, true);
    }
    ledColor = СheckСolor("l");
    brick.showValue("ledColor", ledColor, 11);
    if (ledColor == 5) { // Первая лампочка красная
        kRedLampTaken++;
        DistMove(20, 40, true);
        EncTurn("c", -90, 40);
        control.runInParallel(function () {
            Grab(false);
        });
        DistMove(120, 40, true);
        Grab(true);
        EncTurn("c", 180, 40);
        LineFollowToIntersection("x", 35, true, true);
        EncTurn("c", 90, 40);
        LineFollowToIntersection("l", 35, true, false);
        LineFollowToIntersection("l", 35, false, true);
    } else { // Первая лампочка жёлтая
        EncTurn("c", 180, 40);
        LineFollowToIntersection("r", 40, true, true);
        EncTurn("c", 90, 40);
        control.runInParallel(function () {
            Grab(false);
        });
        LineFollowToDist(200, 35, "2s", true); //DistMove(200, 40, true);
        Grab(true);
        k


			\
noinline void trace_zfs_##name(uintptr_t arg1) { }		\
EXPORT_SYMBOL(trace_zfs_##name)

#define	FUNC_DTRACE_PROBE2(name)				\
PROTO_DTRACE_PROBE2(name);					\
noinline void trace_zfs_##name(uintptr_t arg1,			\
    uintptr_t arg2) { }						\
EXPORT_SYMBOL(trace_zfs_##name)

#define	FUNC_DTRACE_PROBE3(name)				\
PROTO_DTRACE_PROBE3(name);					\
noinline void trace_zfs_##name(uintptr_t arg1,			\
    uintptr_t arg2, uintptr_t arg3) { }				\
EXPORT_SYMBOL(trace_zfs_##name)

#define	FUNC_DTRACE_PROBE4(name)				\
PROTO_DTRACE_PROBE4(name);					\
noinline void trace_zfs_##name(uintptr_t arg1,			\
    uintptr_t arg2, uintptr_t arg3, uintptr_t arg4) { }		\
EXPORT_SYMBOL(trace_zfs_##name)

#undef	DEFINE_DTRACE_PROBE
#define	DEFINE_DTRACE_PROBE(name)	FUNC_DTRACE_PROBE(name)

#undef	DEFINE_DTRACE_PROBE1
#define	DEFINE_DTRACE_PROBE1(name)	FUNC_DTRACE_PROBE1(name)

#undef	DEFINE_DTRACE_PROBE2
#define	DEFINE_DTRACE_PROBE2(name)	FUNC_DTRACE_PROBE2(name)

#undef	DEFINE_DTRACE_PROBE3
#define	DEFINE_DTRACE_PROBE3(name)	FUNC_DTRACE_PROBE3(name)

#undef	DEFINE_DTRACE_PROBE4
#define	DEFINE_DTRACE_PROBE4(name)	FUNC_DTRACE_PROBE4(name)

#else /* CREATE_TRACE_POINTS */

#define	DEFINE_DTRACE_PROBE(name)	PROTO_DTRACE_PROBE(name)
#define	DEFINE_DTRACE_PROBE1(name)	PROTO_DTRACE_PROBE1(name)
#define	DEFINE_DTRACE_PROBE2(name)	PROTO_DTRACE_PROBE2(name)
#define	DEFINE_DTRACE_PROBE3(name)	PROTO_DTRACE_PROBE3(name)
#define	DEFINE_DTRACE_PROBE4(name)	PROTO_DTRACE_PROBE4(name)

#endif /* CREATE_TRACE_POINTS */
#endif /* HAVE_DECLARE_EVENT_CLASS */
#endif /* _KERNEL */


15,vs7,vs9
  xxmrghd  vs7,vs15,vs14
  stxv	vs7,	(\LOFFSET)(\BASE_REG)
.endm
/**********************************************************************************************
*

.macros for N=2 and M=8
**********************************************************************************************/

.macro Zero2x8
	xxlxor	vs32,	vs32,	vs32
	xxlxor	vs33,	vs33,	vs33
	xxlxor	vs34,	vs34,	vs34
	xxlxor	vs35,	vs35,	vs35
	xxlxor	vs36,	vs36,	vs36
	xxlxor	vs37,	vs37,	vs37
	xxlxor	vs38,	vs38,	vs38
	xxlxor	vs39,	vs39,	vs39
	xxlxor	vs40,	vs40,	vs40
	xxlxor	vs41,	vs41,	vs41
	xxlxor	vs42,	vs42,	vs42
	xxlxor	vs43,	vs43,	vs43
	xxlxor	vs44,	vs44,	vs44
	xxlxor	vs45,	vs45,	vs45
	xxlxor	vs46,	vs46,	vs46
	xxlxor	vs47,	vs47,	vs47
	xxlxor	vs48,	vs48,	vs48
	xxlxor	vs49,	vs49,	vs49
	xxlxor	vs50,	vs50,	vs50
	xxlxor	vs51,	vs51,	vs51
	xxlxor	vs52,	vs52,	vs52
	xxlxor	vs53,	vs53,	vs53
	xxlxor	vs54,	vs54,	vs54
	xxlxor	vs55,	vs55,	vs55
	xxlxor	vs56,	vs56,	vs56
	xxlxor	vs57,	vs57,	vs57
	xxlxor	vs58,	vs58,	vs58
	xxlxor	vs59,	vs59,	vs59
	xxlxor	vs60,	vs60,	vs60
	xxlxor	vs61,	vs61,	vs61
	xxlxor	vs62,	vs62,	vs62
	xxlxor	vs63,	vs63,	vs63
.endm

.macro LOAD2x8
	LOAD2x8O 0,0
.endm

.macro LOAD2x8O  OffsetA,OffsetB
	lxv	vs16,(\OffsetB+	0)(BO)	// load real imag from B
	lxv	vs18,	(\OffsetB+16)(BO)	// load real,imag from B
	xxswapd	vs17, vs16
	xxswapd	vs19, vs18
	lxv	vs0,	(0+\OffsetA)(AO)	// load real,imag from A
	lxv	vs1,	(16+\OffsetA)(AO)	// load real,imag from A
	lxv	vs2,	(32+\OffsetA)(AO)	// load real,imag from A
	lxv	vs3,	(48+\OffsetA)(AO)	// load real,imag from A
	lxv	vs4,	(64+\OffsetA)(AO)	// load real,imag from A
	lxv	vs5,	(80+\OffsetA)(AO)	// load real,imag from A
	lxv	vs6,	(96+\OffsetA)(AO)	// load real,imag from A
	lxv	vs7,	(112+\OffsetA)(AO)	// load real,imag from A

.endm

.macro END2x8_NORMAL
	END2x8 AO,BO,128,32
.endm

.macro


r())
            },
            Time::T1Time43 {coarse_time, fine_time} => {
                format!("T1Time43({},{})", coarse_time.dump_str(), fine_time.dump_str())
            },
            Time::T2Time40 {coarse_time, fine_time} => {
                format!("T2Time40({},{})", coarse_time.dump_str(), fine_time.dump_str())
            },
            Time::T2Time41 {coarse_time, fine_time} => {
                format!("T2Time41({},{})", coarse_time.dump_str(), fine_time.dump_str())
            },
            Time::T2Time42 {coarse_time, fine_time} => {
                format!("T2Time42({},{})", coarse_time.dump_str(), fine_time.dump_str())
            },
            Time::T2Time43 {coarse_time, fine_time} => {
                format!("T2Time43({},{})", coarse_time.dump_str(), fine_time.dump_str())
            },
        }
    }
}
// trait implementation
impl fmt::Display for Time {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "{}", self.dump_str())
    }
}
<filename>src/api/node.rs
use pomelo::pomelo;
use super::ast::*;
use crate::error::*;
use crate::types::Number;
use super::ast::Assignment;
use crate::zstring::ZBytes;
use crate::types::ZString;
#[repr(transparent)]
#[derive(Debug, Clone, PartialEq,Eq,Default)]
pub struct ParserError {
    pub err:String,
}

impl ParserError {
    #[inline]
    pub fn err<T:std::string::ToString>(err:T)->ParserError {
        ParserError{err:err.to_string()}
    }
}
pomelo!{
     //%verbose;
      //%verbose;

    %include {
        use super::*;

    }
    %error ParserError;
    %syntax_error{
        Err(ParserError::err(format!("syntax {:?}",token)))
    }
    %parse_fail {
        ParserError::err("unkown (maybe missing a semicolon)".to_string())
    }

    %token #[derive(Debug)] pub enum Token {};
    %type Ident ZString;
    %type Type ZString;
    %type Num Number;
    %type String ZString;
    %type Access Vec<ZString>;
    %type expr Expression;
    %type mme Expression;
    %type expr_list Vec<Box<Expression>>;
    %type hard_list Vec<Box<Expression>>;
    %type stmt Statement;
    %type input Option<Box<Statement>>;
    %type block Vec<Box<Statement>>;
    %type function Statement;
    %type decl_list Vec<Box<Statement>>;
    %type stmt_list Vec<Box<Statement>>;
    %type func_list Vec<Box<Statement>>;
    %type arg_list Vec<ZString>;
    %type map_list Vec<(Box<Expression>,Box<Expression>)>;
    %type obj_list Vec<(ZString,Box<Expression>)>;
    %type type_list Vec<ZString>;
    %type package ZString;
    %type f_decl Statement;
    %type Bool bool;
    %type type_t Vec<Box<Statement>>;
    %type type_s Vec<Box<Statement>>;
    %type decl Vec<Box<Statement>>;
    %type assignment (Box<Expression>,Box<Expression>);
    %type arg_assignment Assignment;
    %type ByteString ZBytes;
    %right RParen Else Comma RBracket;
    %right Equal Neq Not;
    %left Exp LParen Or Xor BOr BXor LBracket;
    %left And BAnd Less LessEq Greater GreaterEq Dot At OrDefault Range;
    %nonassoc Eq QuickAssign;
    %left Add Sub Shl Shr Str Bytes Len;
    %left Mul Div;


4 12T288 -4T246 -11Q199 -11 153 12L129 -85Q108 -167 104 -180T92 -202Q76 -216 58 -216Z"></path><path stroke-width="0" id="E70-MJMAIN-3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path><path stroke-width="0" id="E70-MJMAIN-30" d="M96 585Q152 666 249 666Q297 666 345 640T423 548Q460 465 460 320Q460 165 417 83Q397 41 362 16T301 -15T250 -22Q224 -22 198 -16T137 16T82 83Q39 165 39 320Q39 494 96 585ZM321 597Q291 629 250 629Q208 629 178 597Q153 571 145 525T137 333Q137 175 145 125T181 46Q209 16 250 16Q290 16 318 46Q347 76 354 130T362 333Q362 478 354 524T321 597Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><use xlink:href="#E70-MJMATHI-3BC" x="0" y="0"></use><use xlink:href="#E70-MJMAIN-3D" x="880" y="0"></use><use xlink:href="#E70-MJMAIN-30" x="1936" y="0"></use></g></svg>

<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="5.587ex" height="1.945ex" viewBox="0 -731.2 2405.6 837.3" role="img" focusable="false" style="vertical-align: -0.247ex;"><defs><path stroke-width="0" id="E71-MJMATHI-3C3" d="M184 -11Q116 -11 74 34T31 147Q31 247 104 333T274 430Q275 431 414 431H552Q553 430 555 429T559 427T562 425T565 422T567 420T569 416T570 412T571 407T572 401Q572 357 507 357Q500 357 490 357T476 358H416L421 348Q439 310 439 263Q439 153 359 71T184 -11ZM361 278Q361 358 276 358Q152 358 115 184Q114 180 114 178Q106 141 106 117Q106 67 131 47T188 26Q242 26 287 73Q316 103 334 153T356 233T361 278Z"></path><path stroke-width="0" id="E71-MJMAIN-3D" d="M56 347Q56 360 70 367H707Q722 359 722 347Q722 336 708 328L390 327H72Q56 332 56 347ZM56 153Q56 168 72 173H708Q722 163 722 153Q722 140 707 133H70Q56 140 56 153Z"></path><path stroke-width="0" id="E71-MJMAIN-31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path></defs><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="matrix(1 0 0 -1 0 0)"><use xlink:href="#E71-MJMATHI-3C3" x="0" y="0"></use><use xlink:href="#E71-MJMAIN-3D" x="849" y="0"></use><use xlink:href


wp-content/plugins/google-language-translator/css/../images/flags.png) -145px -322px no-repeat}#flags.size24 a[title=Turkish],.tool-container .tool-items a[title=Turkish],a.single-language[title=Turkish] span.size24{background:url(//gizmeo.eu/wp-content/plugins/google-language-translator/css/../images/flags.png) -29px -351px no-repeat}#flags.size24 a[title=Ukrainian],.tool-container .tool-items a[title=Ukrainian],a.single-language[title=Ukrainian] span.size24{background:url(//gizmeo.eu/wp-content/plugins/google-language-translator/css/../images/flags.png) -58px -351px no-repeat}#flags.size24 a[title=Urdu],.tool-container .tool-items a[title=Urdu],a.single-language[title=Urdu] span.size24{background:url(//gizmeo.eu/wp-content/plugins/google-language-translator/css/../images/flags.png) -145px -351px no-repeat}#flags.size24 a[title=Uzbek],.tool-container .tool-items a[title=Uzbek],a.single-language[title=Uzbek] span.size24{background:url(//gizmeo.eu/wp-content/plugins/google-language-translator/css/../images/flags.png) -58px -438px no-repeat}#flags.size24 a[title=Vietnamese],.tool-container .tool-items a[title=Vietnamese],a.single-language[title=Vietnamese] span.size24{background:url(//gizmeo.eu/wp-content/plugins/google-language-translator/css/../images/flags.png) 0 -380px no-repeat}#flags.size24 a[title=Welsh],.tool-container .tool-items a[title=Welsh],a.single-language[title=Welsh] span.size24{background:url(//gizmeo.eu/wp-content/plugins/google-language-translator/css/../images/flags.png) -29px -380px no-repeat}#flags.size24 a[title=Xhosa],.tool-container .tool-items a[title=Xhosa],a.single-language[title=Xhosa] span.size24{background:url(//gizmeo.eu/wp-content/plugins/google-language-translator/css/../images/flags.png) 0 -3px no-repeat}#flags.size24 a[title=Yiddish],.tool-container .tool-items a[title=Yiddish],a.single-language[title=Yiddish] span.size24{background:url(//gizmeo.eu/wp-content/plugins/google-language-translator/css/../images/flags.png) -58px -380px no-repeat}#flags.size24 a[title=Yoruba],.tool-container .tool-items a[title=Yoruba],a.single-language[title=Yoruba] span.size24{background:url(//gizmeo.eu/wp-content/plugins/google-


 Str;
            "12.3".to_owned()   "2.3TRUE".to_owned()   "TRUEFoo".to_owned()   "1Foo".to_owned()
        )),
        "SELECT
            id || rate,
            rate || flag,
            flag || text,
            id || text
        FROM
            Concat;"
    );

    test!(
        Ok(select!(
            int_float         | float_bool           | bool_text             | int_text
            Str               | Str                  | Str                   | Str;
            "12.3".to_owned()   "2.3TRUE".to_owned()   "FALSEFoo".to_owned()   "1Bar".to_owned()
        )),
        r#"SELECT
            1 || 2.3 AS int_float,
            2.3 || TRUE AS float_bool,
            FALSE || "Foo" AS bool_text,
            1 || "Bar" AS int_text
        FROM
            Concat;"#
    );

    test!(
        Ok(select_with_null!(
            Case1                      | Case2                         | Case3;
            Str("112.3Bar".to_owned())   Str("1TRUE3.5Foo".to_owned())   Null
        )),
        r#"SELECT
            1 || id || rate || "Bar" AS Case1,
            id || flag || 3.5 || text AS Case2,
            flag || "wow" || null_value AS Case3
        FROM
            Concat;"#
    );
});
use crossbeam_skiplist::SkipSet;

#[test]
fn smoke() {
    let m = SkipSet::new();
    m.insert(1);
    m.insert(5);
    m.insert(7);
}

#[test]
fn iter() {
    let s = SkipSet::new();
    for &x in &[4, 2, 12, 8, 7, 11, 5] {
        s.insert(x);
    }

    assert_eq!(
        s.iter().map(|e| *e).collect::<Vec<_>>(),
        &[2, 4, 5, 7, 8, 11, 12]
    );

    let mut it = s.iter();
    s.remove(&2);
    assert_eq!(*it.next().unwrap(), 4);
    s.remove(&7);
    assert_eq!(*it.next().unwrap(), 5);
    s.remove(&5);
    assert_eq!(*it.next().unwrap(), 8);
    s.remove(&12);
    assert_eq!(*it.next().unwrap(), 11);
    assert!(it.next().is_none());
}
<filename>leetcode/leetcode_1734/src/lib.rs<gh_stars>1-10
/**
给你一个整数数组 perm ，它是前 n 个正整数的排列，且 n 是个 奇数 。

它被加密成另一个长度为 n - 1 的整数数组 encoded ，满足 encoded[i] = perm[i] XOR perm[i + 1] 。比方说，如果 perm = [1,3,2] ，那么 encoded = [2,1] 。

给你 encoded 数组，请你返回原始数组 perm 。题目保证答案存在且唯一。

示例 1：
输入：encoded = [3,1]
输出：[1,2,3]
解释：如果 perm = [1,2,3] ，那么 encoded = [1 XOR 2,2 XOR 3] = [3,1]

示例 2：
输入：encoded = [6,5,4,6]
输出：[2,4,1,5,3]

提示：
3 <= n < 105
n 是奇数。
encoded.length == n - 1

来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/decode-xored-permutation
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
*/

pub fn decode(encoded: Vec<i32>) -> Vec<i32> {
    let n = encoded.len();
    let mut perm = vec![0; n + 1];

    let mut all = 0;
    for i in 1..=n as i32 + 1 {
        all ^= i;
    }
    let mut all_but_first = 0;
    for i in (1..n).step_b


, s ->
                                //查找文件名不以.temp结尾的文件
                                !s.endsWith(".temp") && !s.endsWith(".xml")
                            }?.size
                            animeCoverList.add(
                                animeCoverList.size, AnimeCoverBean(
                                    Const.ViewHolderTypeString.ANIME_COVER_7,
                                    Const.ActionUrl.ANIME_ANIME_DOWNLOAD_EPISODE + "/" + file.name,
                                    "",
                                    file.name,
                                    null,
                                    "",
                                    size = getFormatSize(getDirectorySize(file).toDouble()),
                                    episodeCount = episodeCount.toString() + "P",
                                    path = if (i == 0) 0 else 1
                                )
                            )
                        }
                    }
                }
            }
            mldAnimeCoverList.postValue(true)
        }
    }

    fun getAnimeCoverEpisode(directoryName: String, path: Int = 0) {
        //不支持重命名文件
        viewModelScope.launch(Dispatchers.IO) {
            val animeFilePath = if (path == 0) Const.DownloadAnime.animeFilePath
            else {
                Const.DownloadAnime.new = false
                val p = Const.DownloadAnime.animeFilePath
                Const.DownloadAnime.new = true
                p
            }
            val files = File(animeFilePath + directoryName).listFiles()
            animeCoverList.clear()
            files?.let {
                val animeList = getAnimeFromXml(directoryName, animeFilePath)

                // xml里的文件名
                val animeFilesName: MutableList<String?> = ArrayList()
                // 文件夹下的文件名
                val filesName: MutableList<String> = ArrayList()
                // 获取文件夹下的文件名
                for (file in it) filesName.add(file.name)
                //数据库中的数据
                val animeMd5InDB = getAppDataBase().animeDownloadDao().getAnimeDownloadMd5List()
                // 先删除xml里被用户删除的视频，再获取xml里的文件名（保证xml里的文件名都是存在的文件）
                val iterator: MutableIterator<AnimeDownloadEntity> = animeList.iterator()
                while (iterator.hasNext()) {
                    val anime = iterator.next()
                    if (anime.fileName !in filesName) {
                        deleteAnimeFromXml(directoryName, anime, animeFilePath)
                        iterator.remove()
                    } else {
                        // 如果不在数据库中，则加入数据库
                        if (anime.md5 !in animeMd5InDB) {
                            getAppDataBase().animeDownloadDao().insertAnimeDownload(anime)
                        }
                        animeFilesName.add(anime.fileName)
                    }
                }
                // 没有在xml里的视频
                for (file in it) {
                    if (file.name !in animeFilesName) {
                        // 试图从数据库中取出不在xml里的视频的数据，如果没找到则是null
                        val unsavedAnime: AnimeDownloadEntity? =
                            getAppDataBase().animeDownloadDao()
                                .getAnimeDownload(getMD5(file) ?: "")
                        if (unsavedAnime != null && unsavedAnime.fileName == null) {
                            unsavedAnime.fileName = file.name
                            getAppDataBase().animeDownloadDao()
                                .updateFileNameByMd5(unsavedAnime.md5, file.name)
                        }
                        if (unsavedAnime != null) {
                            save2Xml(directoryName, unsavedAnime, animeFilePath)
                            animeList.add(unsavedAnime)
                        }
                    }
                }

                for (anime in animeList) {
                    val fileName =


5px}.nvd3.nv-bullet .nv-range.nv-s0{fill:#eee}.nvd3.nv-bullet .nv-range.nv-s1{fill:#ddd}.nvd3.nv-bullet .nv-range.nv-s2{fill:#ccc}.nvd3.nv-bullet .nv-title{font-size:14px;font-weight:700}.nvd3.nv-bullet .nv-subtitle{fill:#999}.nvd3.nv-bullet .nv-range{fill:#bababa;fill-opacity:.4}.nvd3.nv-bullet .nv-range:hover{fill-opacity:.7}.nvd3.nv-candlestickBar .nv-ticks .nv-tick{stroke-width:1px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.hover{stroke-width:2px}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.positive rect{stroke:#2ca02c;fill:#2ca02c}.nvd3.nv-candlestickBar .nv-ticks .nv-tick.negative rect{stroke:#d62728;fill:#d62728}.with-transitions .nv-candlestickBar .nv-ticks .nv-tick{transition:stroke-width .25s linear,stroke-opacity .25s linear}.nvd3.nv-candlestickBar .nv-ticks line{stroke:#333}.nv-force-node{stroke:#fff;stroke-width:1.5px}.nv-force-link{stroke:#999;stroke-opacity:.6}.nv-force-node text{stroke-width:0px}.nvd3 .nv-check-box .nv-box{fill-opacity:0;stroke-width:2}.nvd3 .nv-check-box .nv-check{fill-opacity:0;stroke-width:4}.nvd3 .nv-series.nv-disabled .nv-check-box .nv-check{fill-opacity:0;stroke-opacity:0}.nvd3 .nv-controlsWrap .nv-legend .nv-check-box .nv-check{opacity:0}.nvd3.nv-linePlusBar .nv-bar rect{fill-opacity:.75}.nvd3.nv-linePlusBar .nv-bar rect:hover{fill-opacity:1}.nvd3 .nv-groups path.nv-line{fill:none}.nvd3 .nv-groups path.nv-area{stroke:none}.nvd3.nv-line .nvd3.nv-scatter .nv-groups .nv-point{fill-opacity:0;stroke-opacity:0}.nvd3.nv-scatter.nv-single-point .nv-groups .nv-point{fill-opacity:.5!important;stroke-opacity:.5!important}.with-transitions .nvd3 .nv-groups .nv-point{transition:stroke-width .25s linear,stroke-opacity .25s linear}.nvd3 .nv-groups .nv-point.hover,.nvd3.nv-scatter .nv-groups .nv-point.hover{stroke-width:7px;fill-opacity:.95!important;stroke-opacity:.95!important}.nvd3 .nv-point-paths path{stroke:#aaa;stroke-opacity:0;fill:#eee;fill-opacity:0}.nvd3 .nv-indexLine{cursor:ew-resize}svg.nvd3-svg{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;width:100%;height:100%}.nvtooltip.with-3d-shadow,.with-3d-shadow .nvtooltip{box-shadow:0 5px 10px rgba(0,0,0,.2);border-radius:5px}.nvd3 text{font:normal 12px Arial,sans-serif}.nvd3 .title{font:700 14px Arial,sans-serif}.nvd3 .nv-background{fill:#fff;fill-opacity:0}.nvd3.nv-noData{font-size:18px;font-weight:700}.nv-brush .extent{fill-opacity:.125;shape-rendering:crispEdges}.nv-brush .resize path{fill:#eee;stroke:#666}.nvd3 .nv-legend .


Sleep(time.Second)
		vol.updateViewCache(server.cluster)
	}
}
// Copyright 2018 The CubeFS Authors.
//
// 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 master

import (
	"fmt"
	"math"
	"math/rand"
	"sort"
	"strings"
	"sync"
	"time"

	"github.com/cubefs/cubefs/proto"
	"github.com/cubefs/cubefs/util"
	"github.com/cubefs/cubefs/util/log"
)

const RoundRobinNodeSelectorName = "RoundRobin"

const CarryWeightNodeSelectorName = "CarryWeight"

const AvailableSpaceFirstNodeSelectorName = "AvailableSpaceFirst"

const StrawNodeSelectorName = "Straw"

const DefaultNodeSelectorName = CarryWeightNodeSelectorName

func (ns *nodeSet) getNodes(nodeType NodeType) *sync.Map {
	switch nodeType {
	case DataNodeType:
		return ns.dataNodes
	case MetaNodeType:
		return ns.metaNodes
	default:
		panic("unknown node type")
	}
}

type NodeSelector interface {
	GetName() string
	Select(ns *nodeSet, excludeHosts []string, replicaNum int) (newHosts []string, peers []proto.Peer, err error)
}

type weightedNode struct {
	Carry  float64
	Weight float64
	Ptr    Node
	ID     uint64
}

// Node defines an interface that needs to be implemented by weightedNode
type Node interface {
	SelectNodeForWrite()
	GetID() uint64
	GetAddr() string
	GetHeartbeatPort() string
	GetReplicaPort() string
	PartitionCntLimited() bool
	IsActiveNode() bool
	IsWriteAble() bool
	GetPartitionLimitCnt() uint64
	GetTotal() uint64
	GetUsed() uint64
	GetAvailableSpace() uint64
	GetStorageInfo() string
	IsOffline() bool
	GetZoneName() string
}

// SortedWeightedNodes defines an array sorted by carry
type SortedWeightedNodes []*weightedNode

func (nodes SortedWeightedNodes) Len() int {
	return len(nodes)
}

func (nodes SortedWeightedNodes) Less(i, j int) bool {
	return nodes[i].Carry > nodes[j].Carry
}

func (nodes SortedWeightedNodes) Swap(i, j int) {
	nodes[i], nodes[j] = nodes[j], nodes[i]
}

func canAllocPartition(node Node) bool {
	return node.IsWriteAble() && node.PartitionCntLimited()
}

func asNodeWrap(node interface{}, nodeType NodeType) Node {
	switch nodeType {
	case DataNodeType:
		dataNode := node.(*DataNode)
		return dataNode
	case MetaNodeType:
		metaNode := node.(*MetaNode)
		return metaNode
	default:
		panic("unknown node type")
	}
}

type CarryWeightNodeSelector struct {
	nodeType NodeType

	carry map[uint64]float64
}

func (s *CarryWeightNodeSelector) GetName() string {
	return CarryWeightNodeSelectorName
}

func (s *CarryWeightNodeSelector) prepareCarry(n


indent number contains recursive type ( #249 )
* Fix encoding of using empty interface as map key ( #244 )

### Fix decoder

* Fix decoding fields containing escaped characters ( #237 )

### Refactor

* Move some tests to subdirectory ( #243 )
* Refactor package layout for decoder ( #238 )

# v0.6.1 - 2021/06/02

### Fix encoder

* Fix value of totalLength for encoding ( #236 )

# v0.6.0 - 2021/06/01

### Support Colorize option for encoding (#233)

```go
b, err := json.MarshalWithOption(v, json.Colorize(json.DefaultColorScheme))
if err != nil {
  ...
}
fmt.Println(string(b)) // print colored json
```

### Refactor

* Fix opcode layout - Adjust memory layout of the opcode to 128 bytes in a 64-bit environment ( #230 )
* Refactor encode option ( #231 )
* Refactor escape string ( #232 )

# v0.5.1 - 2021/5/20

### Optimization

* Add type addrShift to enable bigger encoder/decoder cache ( #213 )

### Fix decoder

* Keep original reference of slice element ( #229 )

### Refactor

* Refactor Debug mode for encoding ( #226 )
* Generate VM sources for encoding ( #227 )
* Refactor validator for null/true/false for decoding ( #221 )

# v0.5.0 - 2021/5/9

### Supports using omitempty and string tags at the same time ( #216 )

### Fix decoder

* Fix stream decoder for unicode char ( #215 )
* Fix decoding of slice element ( #219 )
* Fix calculating of buffer length for stream decoder ( #220 )

### Refactor

* replace skipWhiteSpace goto by loop ( #212 )

# v0.4.14 - 2021/5/4

### Benchmark

* Add valyala/fastjson to benchmark ( #193 )
* Add benchmark task for CI ( #211 )

### Fix decoder

* Fix decoding of slice with unmarshal json type ( #198 )
* Fix decoding of null value for interface type that does not implement Unmarshaler ( #205 )
* Fix decoding of null value to []byte by json.Unmarshal ( #206 )
* Fix decoding of backslash char at the end of string ( #207 )
* Fix stream decoder for null/true/false value ( #208 )
* Fix stream decoder for slow reader ( #211 )

### Performance

* If cap of slice is enough, reuse slice data for compatibility with encoding/json ( #200 )

# v0.4.13 - 2021/4/20

### Fix json.Compact and json.Indent

* Support validation the input buffer for json.Compact and json.Indent ( #189 )
* Optimize json.Compact and json.Indent ( improve memory footprint ) ( #190 )

# v0.4.12 - 2021/4/15

### Fix encoder

* Fix unnecessary indent for empty slice type ( #181 )
* Fix encoding of omitempty feature for the slice or interface type ( #183 )
* Fix encoding custom types zero values with omitempty when marshaller exists ( #187 )

### Fix decoder

* Fix decoder for invalid top level value ( #184 )
* Fix decoder for invalid number value ( #185 )

# v0.4.11 - 2021/4/3

* Improve decoder performance for interface type

# v0.4.10 - 2021/4/2

### Fix encoder

* Fixed a bug when encoding slice and map containing recursive structures
* Fixed a logic to determine if indirect reference

# v0.4.9 - 2021/3/29

### Add debug mode

If you use `json.MarshalWithOption(v, json.Debug())` and `panic` occurred in `go-json`, produces debug information to console.

### Support a new feature to compatible with encoding/json

- invalid UTF-8 is coerced to valid UTF-8 ( without performance down )

### Fix encoder

- Fixed handling of MarshalJSON of function type

### Fix decoding of slice of pointer type

If there is a pointer value, go-


teOnEnter<PelagicCleaver>()
            .ActivateOnEnter<TidalGuillotine>()
            .ActivateOnEnter<TidalGuillotineMarker>()
            .ActivateOnEnter<PetalodusProgeny>()
            .ActivateOnEnter<OpenWater>()
            .ActivateOnEnter<Hydrocleave>();
    }
}

[ModuleInfo(BossModuleInfo.Maturity.Verified, GroupType = BossModuleInfo.GroupType.CFC, GroupID = 1018, NameID = 13717)]
public class NymianPetalodus(WorldState ws, Actor primary) : BossModule(ws, primary, new(-117, -850), new ArenaBoundsCircle(20))
{
    public override bool DrawAllPlayers => true;
}


un sourceFileHasWritableComment(call: CallStack): Boolean
  /** Indicates that the following value should be written into test sourcecode. */
  fun writeInline(literalValue: LiteralValue<*>, call: CallStack)
  /** Writes the given bytes to the given file, checking for duplicate writes. */
  fun writeToBeFile(path: TypedPath, data: ByteArray, call: CallStack)
  /** Returns the DiskStorage for the test associated with this thread, else error. */
  fun diskThreadLocal(): DiskStorage
}

/** Represents the disk storage for a specific test. */
interface DiskStorage {
  /** Reads the given snapshot from disk. */
  fun readDisk(sub: String, call: CallStack): Snapshot?
  /** Writes the given snapshot to disk. */
  fun writeDisk(actual: Snapshot, sub: String, call: CallStack)
  /**
   * Marks that the following sub snapshots should be kept, null means to keep all snapshots for the
   * currently executing class.
   */
  fun keep(subOrKeepAll: String?)
}

expect fun initSnapshotSystem(): SnapshotSystem

interface SnapshotFileLayout {
  val rootFolder: TypedPath
  val fs: FS
  val allowMultipleEquivalentWritesToOneLocation: Boolean
  val javaDontUseTripleQuoteLiterals: Boolean
  fun sourcePathForCall(call: CallLocation): TypedPath
  fun sourcePathForCallMaybe(call: CallLocation): TypedPath?
  fun checkForSmuggledError()
  fun parseSourceFile(file: TypedPath): SourceFile {
    var language = Language.fromFilename(file.name)
    if (language == Language.JAVA && javaDontUseTripleQuoteLiterals) {
      language = Language.JAVA_PRE15
    }
    return SourceFile(file.name, fs.fileRead(file), language)
  }
}
/**
 * Whisper v1.0.0 - https://github.com/Digidemic/whisper
 * (c) 2024 DIGIDEMIC, LLC - All Rights Reserved
 * Whisper developed by Adam Steinberg of DIGIDEMIC, LLC
 * License: Apache License 2.0
 *
 * ====
 *
 * Copyright 2024 DIGIDEMIC, LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.digidemic.whisper.hardware

import android.annotation.SuppressLint
import android.app.Activity
import android.media.MediaPlayer
import android.media.RingtoneManager
import com.digidemic.whisper.Constants.RAW_DIRECTORY_NAME
import com.digidemic.whisper.ProfileTemplate
import com.digidemic.whisper.Whisper
import java.util.concurrent.ConcurrentHashMap

/**
 * Sound functions for Whisper to consume internally.
 */
internal object WhisperSound {

    /** Any sound identifier retrieved is cached here for quicker future use. */
    private val soundCache = ConcurrentHashMap<String, Int>()

    /**
     * The device's set [RingtoneManager.TYPE_NOTIFICATION] sound cached.
     * Used when [ProfileTemplate.SoundTemplate.trigger] is
     * [Whisper.Enums.TriggerSound.DEVICE_EVERY_WHISPER]
     * or [Whisper.Enums.TriggerSound.DEVICE_SOLE_WHISPER].
     */
    private val ringtoneUri by lazy {
        RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)
    }


deExcludedFile()

String
packageVerificationCodeValue()

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail

VerificationCodeContext

public VerificationCodeContext(<a href="../../../org/spdx/rdfparser/SpdxPackageVerificationCode.html" title="class


 pixels.
      "subs        %w2, %w2, #16                 \n"  // 16 processed per loop.
      "umull       v0.8h, v2.8b, v6.8b           \n"  // B
      "umull2      v1.8h, v2.16b, v6.16b         \n"
      "prfm        pldl1keep, [%0, 448]          \n"
      "umlal       v0.8h, v3.8b, v7.8b           \n"  // G
      "umlal2      v1.8h, v3.16b, v7.16b         \n"
      "umlal       v0.8h, v4.8b, v16.8b          \n"  // R
      "umlal2      v1.8h, v4.16b, v16.16b        \n"
      "addhn       v0.8b, v0.8h, v17.8h          \n"  // 16 bit to 8 bit Y
      "addhn       v1.8b, v1.8h, v17.8h          \n"
      "st1         {v0.8b, v1.8b}, [%1], #16     \n"  // store 16 pixels Y.
      "b.gt        1b                            \n"
      : "+r"(src_argb),    // %0
        "+r"(dst_y),       // %1
        "+r"(width)        // %2
      : "r"(rgbconstants)  // %3
      : "cc", "memory", "v0", "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v16",
        "v17");
}

void ARGBToYRow_NEON(const uint8_t* src_argb, uint8_t* dst_y, int width) {
  ARGBToYMatrixRow_NEON(src_argb, dst_y, width, &kRgb24I601Constants);
}

void ARGBToYJRow_NEON(const uint8_t* src_argb, uint8_t* dst_yj, int width) {
  ARGBToYMatrixRow_NEON(src_argb, dst_yj, width, &kRgb24JPEGConstants);
}

void ABGRToYRow_NEON(const uint8_t* src_abgr, uint8_t* dst_y, int width) {
  ARGBToYMatrixRow_NEON(src_abgr, dst_y, width, &kRawI601Constants);
}

void ABGRToYJRow_NEON(const uint8_t* src_abgr, uint8_t* dst_yj, int width) {
  ARGBToYMatrixRow_NEON(src_abgr, dst_yj, width, &kRawJPEGConstants);
}

// RGBA expects first value to be A and ignored, then 3 values to contain RGB.
// Same code as ARGB, except the LD4
void RGBAToYMatrixRow_NEON(const uint8_t* src_rgba,
                           uint8_t* dst_y,
                           int width,
                           const struct RgbConstants* rgbconstants) {
  asm volatile(
      "ldr         d0, [%3]                      \n"  // load rgbconstants
      "dup         v6.16b, v0.b[0]               \n"
      "dup         v7.16b, v0.b[1]               \n"
      "dup         v16.16b, v0.b[2]              \n"
      "dup         v17.8h,  v0.h[2]              \n"
      "1:                                        \n"
      "ld4         {v1.16b,v2.16b,v3.16b,v4.16b}, [%0], #64 \n"  // load 16
                                                                 // pixels.
      "subs        %w2, %w2, #16                 \n"  // 16 processed per loop.
      "umull       v0.8h, v2.8b, v6.8b           \n"  // B
      "umull2      v1.8h, v2.16b, v6.16b         \n"
      "prfm        pldl1keep, [%0, 448]          \n"
      "um


"""empty message

Revision ID: 74b67b392f32
Revises: 19fb9265b8c1
Create Date: 2023-11-17 11:10:54.352020

"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy import inspect

# revision identifiers, used by Alembic.
revision = '74b67b392f32'
down_revision = '19fb9265b8c1'
branch_labels = None
depends_on = None

def upgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    # Check if columns exist before adding
    bind = op.get_bind()
    inspector = inspect(bind)

    # Check cluster table
    cluster_columns = [col['name'] for col in inspector.get_columns('cluster')]
    if 'exclude' not in cluster_columns:
        op.add_column('cluster', sa.Column('exclude', sa.Boolean(), nullable=True))
    if 'tag' not in cluster_columns:
        op.add_column('cluster', sa.Column('tag', sa.String(), nullable=True))

    # Check galaxy table
    galaxy_columns = [col['name'] for col in inspector.get_columns('galaxy')]
    if 'exclude' not in galaxy_columns:
        op.add_column('galaxy', sa.Column('exclude', sa.Boolean(), nullable=True))

    # ### end Alembic commands ###

def downgrade():
    # ### commands auto generated by Alembic - please adjust! ###
    with op.batch_alter_table('galaxy', schema=None) as batch_op:
        batch_op.drop_column('exclude')

    with op.batch_alter_table('cluster', schema=None) as batch_op:
        batch_op.drop_column('tag')
        batch_op.drop_column('exclude')

    # ### end Alembic commands ###


% 0.227 252.05;--su:85.72% 0.266 158.53;--wa:91.01% 0.212 100.5;--er:64.84% 0.293 29.349188;--rounded-box:1.25rem;--rounded-btn:1rem;--rounded-badge:1rem;--tab-radius:0.7rem}:root:has(input.theme-controller[value=acid]:checked){color-scheme:light;--b2:91.6146% 0 0;--b3:84.7189% 0 0;--bc:19.7021% 0 0;--pc:14.38% 0.0714 330.759573;--sc:14.674% 0.0448 48.250878;--ac:18.556% 0.0528 122.962951;--nc:84.262% 0.0256 278.68;--inc:12.144% 0.0454 252.05;--suc:17.144% 0.0532 158.53;--wac:18.202% 0.0424 100.5;--erc:12.968% 0.0586 29.349188;--animation-btn:0.25s;--animation-input:.2s;--btn-focus-scale:0.95;--border-btn:1px;--tab-border:1px;--p:71.9% 0.357 330.759573;--s:73.37% 0.224 48.250878;--a:92.78% 0.264 122.962951;--n:21.31% 0.128 278.68;--b1:98.5104% 0 0;--in:60.72% 0.227 252.05;--su:85.72% 0.266 158.53;--wa:91.01% 0.212 100.5;--er:64.84% 0.293 29.349188;--rounded-box:1.25rem;--rounded-btn:1rem;--rounded-badge:1rem;--tab-radius:0.7rem}[data-theme=lemonade]{color-scheme:light;--b2:91.8003% 0.0186 123.72;--b3:84.8906% 0.0172 123.72;--bc:19.742% 0.004 123.72;--pc:11.784% 0.0398 134.6;--sc:15.55% 0.0392 111.09;--ac:17.078% 0.0402 100.73;--nc:86.196% 0.015 108.6;--inc:17.238% 0.0094 224.14;--suc:17.238% 0.0094 157.85;--wac:17.238% 0.0094 102.15;--erc:17.238% 0.0094 25.85;--rounded-box:1rem;--rounded-btn:0.5rem;--rounded-badge:1.9rem;--animation-btn:0.25s;--animation-input:.2s;--btn-focus-scale:0.95;--border-btn:1px;--tab-border:1px;--tab-radius:0.5rem;--p:58.92% 0.199 134.6;--s:77.75% 0.196 111.09;--a:85.39% 0.201 100.73;--n:30.98% 0.075 108.6;--b1:98.71% 0.02 123.72;--in:86.19% 0.047 224.14;--su:86.19% 0.047 157.85;--wa:86.19% 0.047 102.15;--er:86.19% 0.047 25.85}:root:has(input.theme-controller[value=lemonade]:checked){color-scheme:light;--b2:91.8003% 0.0186 123.72;--b3:84.8906% 0.0172 123.72;--bc:19.742% 0.004 123.72;--pc:11.784% 0.0398 134.6;--sc:15.55% 0.0392 111.09;--ac:17.078% 0.0402 100.73;--nc:86.196% 0


ityById(id);
        }

        //TODO:ǸBUGתܣȷ
        public override UIElementCollection GetInnerElement()
        {
            return (UIElementCollection)this.DataColumns;
        }

        /// <summary>
        /// shellдԷExβ
        /// </summary>
        /// <returns></returns>
        public virtual UIElementDataListRowEntity NewRow()
        {
            UIElementDataListRowEntity row = new UIElementDataListRowEntity(this);
            return row;
        }

        #endregion

        #region IEventSupport Ա

        private static UIElementDataListEventTimes _eventTimes;
        public override List<EventTimeAbstract> EventTimeProvide
        {
            get
            {
                if (_eventTimes == null)
                {
                    _eventTimes = new UIElementDataListEventTimes();
                }

                return _eventTimes.Times;
            }
        }

        public override string GetEventTimeName(int code)
        {
            if (_eventTimes == null)
            {
                _eventTimes = new UIElementDataListEventTimes();
            }

            return _eventTimes.GetEventName(code);
        }

        #endregion
    }
}


ières en thorium",
  [12415] = "Cuirasse radieuse",
  [12416] = "Ceinture radieuse",
  [12417] = "Diadème radieux",
  [12418] = "Gantelets radieux",
  [12419] = "Bottes radieuses",
  [12420] = "Jambières radieuses",
  [12421] = "Monstre - Bâton, bâton à joyaux",
  [12422] = "Pansière impériale",
  [12423] = "Imperial Plate Helmet",
  [12424] = "Ceinture impériale en plaques",
  [12425] = "Brassards impériaux en plaques",
  [12426] = "Bottes impériales en plaques",
  [12427] = "Heaume impérial en plaques",
  [12428] = "Epaulières impériales en plaques",
  [12429] = "Jambières impériales en plaques",
  [12430] = "E\'ko de sabre-de-givre",
  [12431] = "E\'ko des Tombe-hiver",
  [12432] = "E\'ko de Croc acéré",
  [12433] = "E\'ko d\'Indomptable",
  [12434] = "E\'ko de Noroît",
  [12435] = "E\'ko de Chardon de glace",
  [12436] = "E\'ko de Cognegivre",
  [12437] = "Caisse de Ridgewell",
  [12438] = "Lettre de Tinkee",
  [12440] = "Articulation magique (DND)",
  [12442] = "Sacoche de charmes (DND)",
  [12443] = "Sacoche d\'articulations (DND)",
  [12444] = "Corne intacte de Noroît",
  [12445] = "Paquet de Felnok",
  [12446] = "Mousquet d\'Anvilmar",
  [12447] = "Arc des chardons",
  [12448] = "Carabine de chasse légère",
  [12449] = "Arc primitif",
  [12450] = "Rafale de Juju",
  [12451] = "Pouvoir de Juju",
  [12452] = "Monstre - Bouclier, Horde A02 Argent",
  [12453] = "Monstre - Bouclier, Horde A03 Triangle",
  [12454] = "Monstre - Bouclier, Horde B01 Marron",
  [12455] = "Braise de Juju",
  [12456] = "Monstre - Bouclier, Horde B02 Marron",
  [12457] = "Frisson de Juju",
  [12458] = "Fourberie de Juju",
  [12459] = "Fuite de Juju",
  [12460] = "Puissance de Juju",
  [12461] = "Monstre - Hache, 2M Horde Marron Pierre tombale",
  [12462] = "Etreinte du serpent des vents",
  [12463] = "Boucher drakecroc",
  [12464] = "Serres du Sang igné",
  [12465] = "Drapé crépusculaire",
  [12466] = "Corde Cime-de-l\'aube",
  [12467] = "Oeuf étrange",
  [12468] = "Baguette de Chilton",
  [12469] = "Mutilateur",
  [12470] = "Protège-chevilles de traqueuse des sables",
  [12471] = "Cane du marcheur du désert",
  [12472] = "Thermomètre de Krakle",
  [12482] = "Monstre - Vouge, chasseur de démon noir",
  [12502] = "Monstre -Vouge, chasseur de démon noir main gauch


5-48-48zm176 48l-16 0 0-80 64 0 0 32c0 26.5-21.5 48-48 48zm48-144l0 32-80 0-48 0 0-80 80 0c26.5 0 48 21.5 48 48z"],transgender:[512,512,[9895,"transgender-alt"],"f225","M128 24c0-13.3-10.7-24-24-24L24 0C10.7 0 0 10.7 0 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-22.1L78.1 112l-7 7c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l7-7 15.2 15.2C107.6 187.7 96 220.5 96 256c0 80.2 59 146.6 136 158.2l0 17.8-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0-17.8c77-11.6 136-78 136-158.2c0-35.5-11.6-68.3-31.2-94.9L464 81.9l0 22.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24L408 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l22.1 0-79.2 79.2C324.3 107.6 291.5 96 256 96s-68.3 11.6-94.9 31.2L145.9 112l7-7c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-7 7L81.9 48 104 48c13.3 0 24-10.7 24-24zM256 368c-61.9 0-112-50.1-112-112c0-29.8 11.7-56.9 30.7-77c.8-.6 1.6-1.3 2.3-2s1.4-1.5 2-2.3c20.1-19 47.2-30.7 77-30.7s56.9 11.7 77 30.7c.6 .8 1.3 1.6 2 2.3s1.5 1.4 2.3 2c19 20.1 30.7 47.2 30.7 77c0 61.9-50.1 112-112 112z"],mercury:[384,512,[9791],"f223","M73 5.3C83.3-3 98.4-1.4 106.7 9c18.5 23.1 51.4 38.9 84.9 39l.3 0 .3 0c33.5-.1 66.4-15.9 84.9-39C285.6-1.4 300.7-3 311 5.3s12 23.4 3.7 33.7c-9.9 12.4-22.2 23.1-36 31.8C332 101.1 368 158.3 368 224c0 89.1-66.2 162.7-152 174.4l0 25.6 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0 0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l32 0 0-25.6C82.2 386.7 16 313.1 16 224c0-65.7 36-122.9 89.3-153.2C91.5 62.1 79.2 51.4 69.3 39C61 28.7 62.6 13.6 73 5.3zM192 96l-.3 0C121.1 96.2 64 153.4 64 224c


ormat_length=function(t){switch(t){case 1:case 2:case 6:case 7:return 1;case 3:case 8:return 2;case 4:case 9:case 11:return 4;case 5:case 10:case 12:return 8;default:return 0}},n.prototype.exif_format_read=function(t,e){var r;switch(t){case 1:case 2:return this.input[e];case 6:return(r=this.input[e])|33554430*(128&r);case 3:return this.read_uint16(e);case 8:return(r=this.read_uint16(e))|131070*(32768&r);case 4:return this.read_uint32(e);case 9:return 0|this.read_uint32(e);default:return null}},n.prototype.scan_ifd=function(t,n,i){var a=this.read_uint16(n);n+=2;for(var o=0;o<a;o++){var s=this.read_uint16(n),l=this.read_uint16(n+2),u=this.read_uint32(n+4),c=this.exif_format_length(l),f=u*c,h=f<=4?n+8:this.read_uint32(n+8),p=!1;if(h+f>this.input.length)throw e("unexpected EOF","EBADDATA");for(var d=[],v=h,g=0;g<u;g++,v+=c){var y=this.exif_format_read(l,v);if(null===y){d=null;break}d.push(y)}if(Array.isArray(d)&&2===l&&(d=r(String.fromCharCode.apply(null,d)))&&"\0"===d[d.length-1]&&(d=d.slice(0,-1)),this.is_subifd_link(t,s)&&Array.isArray(d)&&Number.isInteger(d[0])&&d[0]>0&&(this.ifds_to_read.push({id:s,offset:d[0]}),p=!0),!1===i({is_big_endian:this.big_endian,ifd:t,tag:s,format:l,count:u,entry_offset:n+this.start,data_length:f,data_offset:h+this.start,value:d,is_subifd_link:p}))return void(this.aborted=!0);n+=12}0===t&&this.ifds_to_read.push({id:1,offset:this.read_uint32(n)})},t.exports.ExifParser=n,t.exports.get_orientation=function(t){var e=0;try{return new n(t,0,t.length).each((function(t){if(0===t.ifd&&274===t.tag&&Array.isArray(t.value))return e=t.value[0],!1})),e}catch(t){return-1}}},44600:function(t,e,r){"use strict";var n=r(9696).eW,i=r(9696).eI;function a(t,e){if(t.length<4+e)return null;var r=i(t,e);return t.length<r+e||r<8?null:{boxtype:String.fromCharCode.apply(null,t.slice(e+4,e+8)),data:t.slice(e+8,e+r),end:e+r}}function o(t,e){for(var r=0;;){var n=a(t,r);if(!n)break;switch(n.boxtype){case"ispe":e.sizes.push({width:i(n.data,4),height:i(n.data,8)});break;case"irot":e.transforms.push({type:"irot",value:3&n.data[0]});break;case"imir":e.transforms.push({type:"imir",value:1&n.data[0]})}r


	20,11,7
	andi.	30,30,4*8-1
	mullw	21,12,7
	addc	22,22,18
	mullw	18,14,7
	adde	23,23,19
	mullw	19,15,7
	adde	24,24,20
	mullw	20,16,7
	adde	25,25,21
	mullw	21,17,7
	adde	26,26,18
	mulhwu	18,9,7
	adde	27,27,19
	mulhwu	19,10,7
	adde	28,28,20
	mulhwu	20,11,7
	adde	29,29,21
	mulhwu	21,12,7
	addze	31,31
	stwu	22,4(5)
	addc	22,23,18
	mulhwu	18,14,7
	adde	23,24,19
	mulhwu	19,15,7
	adde	24,25,20
	mulhwu	20,16,7
	adde	25,26,21
	mulhwu	21,17,7
	lwzx	7,3,30
	adde	26,27,18
	adde	27,28,19
	adde	28,29,20
	adde	29,31,21

	bne	.Lsqr8x_mul

	.long	0x7c043040
	beq	.Lsqr8x_break

	lwz	9,4*1(5)
	lwz	10,4*2(5)
	lwz	11,4*3(5)
	lwz	12,4*4(5)
	lwz	14,4*5(5)
	lwz	15,4*6(5)
	lwz	16,4*7(5)
	lwz	17,4*8(5)
	addc	22,22,9
	lwz	9,4*1(4)
	adde	23,23,10
	lwz	10,4*2(4)
	adde	24,24,11
	lwz	11,4*3(4)
	adde	25,25,12
	lwz	12,4*4(4)
	adde	26,26,14
	lwz	14,4*5(4)
	adde	27,27,15
	lwz	15,4*6(4)
	adde	28,28,16
	lwz	16,4*7(4)
	adde	29,29,17
	lwzu	17,4*8(4)

	b	.Lsqr8x_mul

.align	5
.Lsqr8x_break:
	lwz	9,4*8(3)
	addi	4,3,4*15
	lwz	10,4*9(3)
	sub.	18,6,4
	lwz	11,4*10(3)
	sub	19,5,18
	lwz	12,4*11(3)
	lwz	14,4*12(3)
	lwz	15,4*13(3)
	lwz	16,4*14(3)
	lwz	17,4*15(3)
	beq	.Lsqr8x_outer_loop

	stw	22,4*1(5)
	lwz	22,4*1(19)
	stw	23,4*2(5)
	lwz	23,4*2(19)
	stw	24,4*3(5)
	lwz	24,4*3(19)
	stw	25,4*4(5)
	lwz	25,4*4(19)
	stw	26,4*5(5)
	lwz	26,4*5(19)
	stw	27,4*6(5)
	lwz	27,4*6(19


Marshal(tr.Spec.InitProvider)
	if err != nil {
		return nil, err
	}
	base := map[string]any{}
	return base, json.TFParser.Unmarshal(p, &base)
}

// GetInitParameters of this UserPolicyAttachment
func (tr *UserPolicyAttachment) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) {
	params, err := tr.GetParameters()
	if err != nil {
		return nil, errors.Wrapf(err, "cannot get parameters for resource \"%s/%s\"", tr.GetNamespace(), tr.GetName())
	}
	if !shouldMergeInitProvider {
		return params, nil
	}

	initParams, err := tr.GetInitParameters()
	if err != nil {
		return nil, errors.Wrapf(err, "cannot get init parameters for resource \"%s/%s\"", tr.GetNamespace(), tr.GetName())
	}

	// Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the
	// slices from the initProvider to forProvider. As it also sets
	// overwrite to true, we need to set it back to false, we don't
	// want to overwrite the forProvider fields with the initProvider
	// fields.
	err = mergo.Merge(&params, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) {
		c.Overwrite = false
	})
	if err != nil {
		return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource \"%s/%s\"", tr.GetNamespace(), tr.GetName())
	}

	return params, nil
}

// LateInitialize this UserPolicyAttachment using its observed tfState.
// returns True if there are any spec changes for the resource.
func (tr *UserPolicyAttachment) LateInitialize(attrs []byte) (bool, error) {
	params := &UserPolicyAttachmentParameters{}
	if err := json.TFParser.Unmarshal(attrs, params); err != nil {
		return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization")
	}
	opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)}

	li := resource.NewGenericLateInitializer(opts...)
	return li.LateInitialize(&tr.Spec.ForProvider, params)
}

// GetTerraformSchemaVersion returns the associated Terraform schema version
func (tr *UserPolicyAttachment) GetTerraformSchemaVersion() int {
	return 0
}
// SPDX-FileCopyrightText: 2024 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0

// Code generated by upjet. DO NOT EDIT.

package v1beta1

import (
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/apimachinery/pkg/runtime/schema"

	v1 "github.com/crossplane/crossplane-runtime/v2/apis/common/v1"
)

type UserGroupMembershipInitParameters struct {

	// References to Group in iam to populate groups.
	// +kubebuilder:validation:Optional
	GroupRefs []v1.Reference `json:"groupRefs,omitempty" tf:"-"`

	// Selector for a list of Group in iam to populate groups.
	// +kubebuilder:validation:Optional
	GroupSelector *v1.Selector `json:"groupSelector,omitempty" tf:"-"`

	// A list of IAM Groups to add the user to
	// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/cluster/iam/v1beta1.Group
	// +crossplane:generate:reference:refFieldName=GroupRefs
	// +crossplane:generate:reference:selectorFieldName=GroupSelector
	// +listType=set
	Groups []*string `json:"groups,omitempty" tf:"groups,omitempty"`

	// The name of the IAM User to add to groups
	// +crossplane:generate:reference:type=github.com/upbound/prov


.png" alt="QQ截图20210215111849.png" title="QQ截图20210215111849.png" />

</ignore_js_op>

<ignore_js_op>

</ignore_js_op>

不再回帖，请勿打扰

----------------------------------------------

对了补充一点 贴主您的签名档也是商业宣传呢
<ignore_js_op>

</ignore_js_op>

<ignore_js_op>

</ignore_js_op>

作者: 薯咕咕    时间: 2021-2-15 11:29

冰冷冷 发表于 2021-2-15 11:24

我就随便翻了两个个版主的签名帖 现在就建议您把几位版主全举报了呢

不再回帖，请勿打扰

版主好像是可以的但普通用户不行，不过yumc是艺术家的组，看管理怎么处理了

作者: 郁离子    时间: 2021-2-15 11:29

第四个举报的

作者: William_Shi    时间: 2021-2-15 11:30

 本帖最后由 William_Shi 于 2021-2-15 11:31 编辑

第一，有多少用户多少版主都在签名档宣传自己的主机、各种各样的云、服务商的宣传有多少？<


om == null)) { obj.SendCommandEndResponse(1, 0x02, dev, 0x3a, 0x00); return -1; }
                obj.SendCommandEndResponse(1, 0x00, dev, 0x00, 0x00);
                break;
            case 0x23: // READ_FORMAT_CAPACITIES (Floppy only)

                debug('SCSI: READ_FORMAT_CAPACITIES', dev);

                var buflen = ReadShort(cdb, 7);
                var mediaStatus = 0, sectors;
                var mcSize = buflen / 8; // Capacity descriptor size is 8

                switch (dev) {
                    case 0xA0: // DEV_FLOPPY
                        if ((obj.floppy == null) || (obj.floppy.size == 0)) { obj.SendCommandEndResponse(0, 0x05, dev, 0x24, 0x00); return -1; }
                        sectors = (obj.floppy.size >> 9) - 1;
                        break;
                    case 0xB0: // DEV_CDDVD
                        if ((obj.cdrom == null) || (obj.cdrom.size == 0)) { obj.SendCommandEndResponse(0, 0x05, dev, 0x24, 0x00); return -1; }
                        sectors = (obj.cdrom.size >> 11) - 1; // Number 2048 byte blocks
                        break;
                    default:

                        debug('SCSI Internal error 4', dev);

                        return -1;
                }

                obj.SendDataToHost(dev, true, IntToStr(8) + String.fromCharCode(0x00, 0x00, 0x0b, 0x40, 0x02, 0x00, 0x02, 0x00), featureRegister & 1);
                break;
            case 0x25: // READ_CAPACITY

                debug('SCSI: READ_CAPACITY', dev);

                var len = 0;
                switch(dev)
                {
                    case 0xA0: // DEV_FLOPPY
                        if ((obj.floppy == null) || (obj.floppy.size == 0)) { obj.SendCommandEndResponse(0, 0x02, dev, 0x3a, 0x00); return -1; }
                        if (obj.floppy != null) { len = (obj.floppy.size >> 9) - 1; }

                        debug('DEV_FLOPPY', len); // Number 512 byte blocks

                        break;
                    case 0xB0: // DEV_CDDVD
                        if ((obj.cdrom == null) || (obj.cdrom.size == 0)) { obj.SendCommandEndResponse(0, 0x02, dev, 0x3a, 0x00); return -1; }
                        if (obj.cdrom != null) { len = (obj.cdrom.size >> 11) - 1; } // Number 2048 byte blocks

                        debug('DEV_CDDVD', len);

                        break;
                    default:

                        debug('SCSI Internal error 4', dev);

                        return -1;
                }
                //if (dev == 0xA0) { dev = 0x00; } else { dev = 0x10; } // Weird but seems to work.

                debug('SCSI: READ_CAPACITY2', dev, deviceFlags);

                obj.SendDataToHost(deviceFlags, true, IntToStr(len) + String.fromCharCode(0, 0, ((dev == 0xB0) ? 0x08 : 0x02), 0), featureRegister & 1);
                break;
            case 0x28: // READ_10
                lba = ReadInt(cdb, 2);
                len = ReadShort(cdb, 7);

                debug('SCSI: READ_10', dev, lba, len);

                sendDiskData(dev, lba, len, featureRegister);
                break;
            case 0x2a: // WRITE_10 (Floppy only)
            case 0x2e: // WRITE_AND_VERIFY


/******************************************************************************
**
** Copyright (C) 2009-2011 Kyle Lutz <kyle.r.lutz@gmail.com>
** All rights reserved.
**
** This file is a part of the chemkit project. For more information
** see <http://www.chemkit.org>.
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions
** are met:
**
**   * Redistributions of source code must retain the above copyright
**     notice, this list of conditions and the following disclaimer.
**   * Redistributions in binary form must reproduce the above copyright
**     notice, this list of conditions and the following disclaimer in the
**     documentation and/or other materials provided with the distribution.
**   * Neither the name of the chemkit project nor the names of its
**     contributors may be used to endorse or promote products derived
**     from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**
******************************************************************************/

#ifndef QUATERNIONTEST_H
#define QUATERNIONTEST_H

#include <QtTest>

class QuaternionTest : public QObject
{
    Q_OBJECT

    private slots:
        void basic();
        void multiply();
        void conjugate();
};

#endif // QUATERNIONTEST_H


using NServiceBus.Persistence.Sql;

#region AllSqlScripts
[assembly: SqlPersistenceSettings(
    MsSqlServerScripts = true,
    MySqlScripts = true,
    OracleScripts = true,
    PostgreSqlScripts = true)]
#endregion
/**

#region SqlServerScripts
[assembly: SqlPersistenceSettings(MsSqlServerScripts = true)]
#endregion

#region MySqlScripts
[assembly: SqlPersistenceSettings(MySqlScripts = true)]
#endregion

#region PostgresSqlScripts
[assembly: SqlPersistenceSettings(PostgreSqlScripts = true)]
#endregion

#region OracleScripts
[assembly: SqlPersistenceSettings(OracleScripts = true)]
#endre


#endif /*VK_USE_PLATFORM_WIN32_KHR*/

    Result getFenceFdKHR( const FenceGetFdInfoKHR* pGetFdInfo, int* pFd ) const;
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
    ResultValueType<int>::type getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo ) const;
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/

    Result importFenceFdKHR( const ImportFenceFdInfoKHR* pImportFenceFdInfo ) const;
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
    ResultValueType<void>::type importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo ) const;
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/

    Result displayPowerControlEXT( DisplayKHR display, const DisplayPowerInfoEXT* pDisplayPowerInfo ) const;
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
    ResultValueType<void>::type displayPowerControlEXT( DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo ) const;
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/

    Result registerEventEXT( const DeviceEventInfoEXT* pDeviceEventInfo, const AllocationCallbacks* pAllocator, Fence* pFence ) const;
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
    ResultValueType<Fence>::type registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional<const AllocationCallbacks> allocator = nullptr ) const;
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/

    Result registerDisplayEventEXT( DisplayKHR display, const DisplayEventInfoEXT* pDisplayEventInfo, const AllocationCallbacks* pAllocator, Fence* pFence ) const;
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
    ResultValueType<Fence>::type registerDisplayEventEXT( DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional<const AllocationCallbacks> allocator = nullptr ) const;
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/

    Result getSwapchainCounterEXT( SwapchainKHR swapchain, SurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue ) const;
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
    ResultValue<uint64_t> getSwapchainCounterEXT( SwapchainKHR swapchain, SurfaceCounterFlagBitsEXT counter ) const;
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/

    void getGroupPeerMemoryFeaturesKHX( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, PeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures ) const;
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
    PeerMemoryFeatureFlagsKHX getGroupPeerMemoryFeaturesKHX( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex ) const;
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/

    Result bindBufferMemory2KHR( uint32_t bindInfoCount, const BindBufferMemoryInfoKHR* pBindInfos ) const;
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
    ResultValueType<void>::type bindBufferMemory2KHR( ArrayProxy<const BindBufferMemoryInfoKHR> bindInfos ) const;
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/

    Result bindImageMemory2KHR( uint32_t bindInfoCount, const BindImageMemoryInfoKHR* pBindInfos ) const;
#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
    ResultValueType<void>::type bindImageMemory2KHR( ArrayProxy<const BindImageMemoryInfoKHR> bindInfos ) const;
#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/

    Result getGroupPresentCapabilitiesKHX( DeviceGroupPresentCapabil


7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z"/></g>
<g id="stumbleupon-circle"><path d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z"/></g>
<g id="stripe"><path d="M640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3.6-11.6.6-15.9m-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4h-45.9zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4.1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6.1-51.6-29.3-79.7-60.5-79.7m-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4.1 23.9-10.9 41.8-27.4 41.8M346.4 124v36.2l-44.6 9.5v-36.2l44.6-9.5m-44.5 59.2h44.6v153.2h-44.6V183.2zm-47.8 13.1c10.4-19.1 31.1-15.2 37.1-13.1V224c-5.7-1.8-23.4-4.5-33.9 9.3v103.1H213V183.2h38.4l2.7 13.1m-89-13.1h33.7V221h-33.7v63.2c0 26.2 28 18 33.7 15.7v33.8c-5.9 3.2-16.6 5.9-31.2 5.9-26.3 0-46.1-17-46.1-43.3l.2-142.4 43.3-9.2.1 38.5zM44.9 228.3c0 20 67.9 10.5 67.9


step_type: "create_file"
    depends_on: ["analysis_a", "analysis_b", "analysis_c"]
    parameters:
      path: "final_report.md"
      content: "# Analysis Complete\nAll analysis steps finished."
```

### Error Handling Workflow

```yaml
name: "Robust Error Handling"
version: "1.0"

config:
  fail_fast: false
  retry_attempts: 3
  retry_delay_ms: 1000

steps:
  - id: "risky_operation"
    name: "Operation That Might Fail"
    step_type: "command"
    continue_on_error: true
    parameters:
      command: "test"
      args: ["-f", "nonexistent_file.txt"]

  - id: "fallback_operation"
    name: "Fallback When Primary Fails"
    step_type: "create_file"
    depends_on: ["risky_operation"]
    parameters:
      path: "fallback.txt"
      content: "Fallback executed"

  - id: "always_execute"
    name: "Critical Final Step"
    step_type: "create_file"
    depends_on: ["fallback_operation"]
    parameters:
      path: "completion.log"
      content: "Mission attempted completion"
```

### AI/ML Workflow

```yaml
name: "AI Document Processing"
version: "1.0"

steps:
  - id: "load_document"
    name: "Load Source Document"
    step_type: "read_file"
    parameters:
      path: "source_document.txt"

  - id: "generate_summary"
    name: "AI Summarization"
    step_type: "llm"
    depends_on: ["load_document"]
    parameters:
      provider: "openai"
      model: "gpt-4"
      prompt: "Summarize the document content"
      max_tokens: 500

  - id: "extract_keywords"
    name: "Keyword Extraction"
    step_type: "llm"
    depends_on: ["load_document"]
    parameters:
      provider: "openai"
      model: "gpt-3.5-turbo"
      prompt: "Extract key terms and topics"

  - id: "generate_embeddings"
    name: "Vector Embeddings"
    step_type: "generate_embedding"
    depends_on: ["load_document"]
    parameters:
      text_source: "file"
      file_path: "source_document.txt"
      model: "text-embedding-ada-002"

  - id: "store_in_rag"
    name: "Store in RAG System"
    step_type: "rag_add"
    depends_on: ["generate_embeddings", "generate_summary"]
    parameters:
      id: "doc_001"
      content_file: "source_document.txt"
      metadata: {
        "summary": "{{summary_result}}",
        "keywords": "{{keywords_result}}"
      }
```

## Step Parameter Examples

### File Operations

```yaml
# Create File
step_type: "create_file"
parameters:
  path: "output.txt"
  content: "File content here"
  mode: "644"  # Optional file permissions

# Edit File
step_type: "edit_file"
parameters:
  path: "existing.txt"
  content: "New content"
  append: false  # Replace vs append
  backup: true   # Create backup before editing
```

### Database Operations

```yaml
# SQL Query
step_type: "sql_query"
parameters:
  connection: "postgresql://user:pass@host:5432/db"
  query: "SELECT * FROM users WHERE created_at >= $1"
  parameters: ["2024-01-01"]
  output_format: "jso


t_KeysSize
    // skipped _PyDict_SizeOf
    // skipped _PyDict_Pop
    // skipped _PyDict_Pop_KnownHash
    // skipped _PyDict_FromKeys
    // skipped _PyDict_HasSplitTable
    // skipped _PyDict_MergeEx
    // skipped _PyDict_SetItemId
    // skipped _PyDict_DelItemId
    // skipped _PyDict_DebugMallocStats
    // skipped _PyObjectDict_SetItem
    // skipped _PyDict_LoadGlobal
    // skipped _PyDict_GetItemHint
    // skipped _PyDictViewObject
    // skipped _PyDictView_New
    // skipped _PyDictView_Intersect
    #[cfg(not(Py_3_10))]
    pub fn _PyDict_Contains(mp: *mut PyObject, key: *mut PyObject, hash: Py_ssize_t) -> c_int;
}
<gh_stars>0
// Copyright (c) The Move Contributors
// SPDX-License-Identifier: Apache-2.0

use crate::{context::Context, yul_functions::YulFunction, Generator};
use move_model::{
    emitln,
    model::{QualifiedInstId, StructId},
    ty::Type,
};

impl Generator {
    /// Move resource from memory to storage.
    pub(crate) fn move_to(
        &mut self,
        ctx: &Context,
        struct_id: QualifiedInstId<StructId>,
        signer_ref: String,
        value: String,
    ) {
        let addr = self.call_builtin_str(ctx, YulFunction::LoadU256, std::iter::once(signer_ref));
        self.move_to_addr(ctx, struct_id, addr, value)
    }

    /// Move resource from memory to storage, with direct address.
    pub(crate) fn move_to_addr(
        &mut self,
        ctx: &Context,
        struct_id: QualifiedInstId<StructId>,
        addr: String,
        value: String,
    ) {
        ctx.emit_block(|| {
            emitln!(
                ctx.writer,
                "let $base_offset := {}",
                self.type_storage_base(
                    ctx,
                    &struct_id.to_type(),
                    "${RESOURCE_STORAGE_CATEGORY}",
                    addr,
                )
            );
            let base_offset = "$base_offset";

            // At the base offset we store a boolean indicating whether the resource exists. Check this
            // and if it is set, abort. Otherwise set this bit.
            let exists_call = self.call_builtin_str(
                ctx,
                YulFunction::AlignedStorageLoad,
                std::iter::once(base_offset.to_string()),
            );
            let abort_call =
                self.call_builtin_str(ctx, YulFunction::AbortBuiltin, std::iter::empty());
            emitln!(ctx.writer, "if {} {{\n  {}\n}}", exists_call, abort_call);
            self.call_builtin(
                ctx,
                YulFunction::AlignedStorageStore,
                vec![base_offset.to_string(), "true".to_string()].into_iter(),
            );

            // Move the struct to storage.
            ctx.emit_block(|| {
                // The actual resource data starts at base_offset + 32. Set the destination address
                // to this.
                emitln!(
                    ctx.writer,
                    "let $dst := add({}, ${{RESOURCE_EXISTS_FLAG_SIZE}})",
                    base_offset
                );
                emitln!(ctx.writer, "let $src := {}", value);
                // Perform the move.
                self.move_struct_to_storage(


node.setSourceContent(
  "module-one.scm",
  fs.readFileSync("path/to/module-one.scm")
);
```

#### SourceNode.prototype.walk(fn)

Walk over the tree of JS snippets in this node and its children. The walking
function is called once for each snippet of JS and is passed that snippet and
the its original associated source's line/column location.

- `fn`: The traversal function.

```js
var node = new SourceNode(1, 2, "a.js", [
  new SourceNode(3, 4, "b.js", "uno"),
  "dos",
  ["tres", new SourceNode(5, 6, "c.js", "quatro")],
]);

node.walk(function (code, loc) {
  console.log("WALK:", code, loc);
});
// WALK: uno { source: 'b.js', line: 3, column: 4, name: null }
// WALK: dos { source: 'a.js', line: 1, column: 2, name: null }
// WALK: tres { source: 'a.js', line: 1, column: 2, name: null }
// WALK: quatro { source: 'c.js', line: 5, column: 6, name: null }
```

#### SourceNode.prototype.walkSourceContents(fn)

Walk over the tree of SourceNodes. The walking function is called for each
source file content and is passed the filename and source content.

- `fn`: The traversal function.

```js
var a = new SourceNode(1, 2, "a.js", "generated from a");
a.setSourceContent("a.js", "original a");
var b = new SourceNode(1, 2, "b.js", "generated from b");
b.setSourceContent("b.js", "original b");
var c = new SourceNode(1, 2, "c.js", "generated from c");
c.setSourceContent("c.js", "original c");

var node = new SourceNode(null, null, null, [a, b, c]);
node.walkSourceContents(function (source, contents) {
  console.log("WALK:", source, ":", contents);
});
// WALK: a.js : original a
// WALK: b.js : original b
// WALK: c.js : original c
```

#### SourceNode.prototype.join(sep)

Like `Array.prototype.join` except for SourceNodes. Inserts the separator
between each of this source node's children.

- `sep`: The separator.

```js
var lhs = new SourceNode(1, 2, "a.rs", "my_copy");
var operand = new SourceNode(3, 4, "a.rs", "=");
var rhs = new SourceNode(5, 6, "a.rs", "orig.clone()");

var node = new SourceNode(null, null, null, [lhs, operand, rhs]);
var joinedNode = node.join(" ");
```

#### SourceNode.prototype.replaceRight(pattern, replacement)

Call `String.prototype.replace` on the very right-most source snippet. Useful
for trimming white space from the end of a source node, etc.

- `pattern`: The pattern to replace.

- `replacement`: The thing to replace the pattern with.

```js
// Trim trailing white space.
node.replaceRight(/\s*$/, "");
```

#### SourceNode.prototype.toString()

Return the string representation of this source node. Walks over the tree and
concatenates all the various snippets together to one string.

```js
var node = new SourceNode(1, 2, "a.js", [
  new SourceNode(3, 4, "b.js", "uno"),
  "dos",
  ["tres", new SourceNode(5, 6, "c.js", "quatro")],
]);

node.toString();
// 'unodostresquatro'
```

#### SourceNode.prototype.toStringWithSourceMap([startOfSourceMap])

Returns the string representation of this tree of source nodes, plus a
SourceMapGenerator which contains all the mappings between the generated and
original sources.

The arguments are the same as those to `new SourceMapGenerator`.

```js
var node = new SourceNode(1, 2, "a.js", [
  new SourceNode(3, 4, "b.js", "uno"),
  "dos",
  ["tres",


 @author  Maurizio Cimadamore
 * @run main LambdaScope01
 */

public class LambdaScope01 {

    static int assertionCount = 0;

    static void assertTrue(boolean cond) {
        assertionCount++;
        if (!cond)
            throw new AssertionError();
    }

    interface TU<T, U> {
        public T foo(U u);
    }

    public static <T, U> T exec(TU<T, U> lambda, U x) {
        return lambda.foo(x);
    }

    public int n = 5;

    public int hashCode() {
        throw new RuntimeException();
    }

    public void test1() {
        try {
            int res = LambdaScope01.<Integer,Integer>exec((Integer x) -> x * hashCode(), 3);
        }
        catch (RuntimeException e) {
            assertTrue(true); //should throw
        }
    }

    public void test2() {
        final int n = 10;
        int res = LambdaScope01.<Integer,Integer>exec((Integer x) -> x + n, 3);
        assertTrue(13 == res);
    }

    public static void main(String[] args) {
        LambdaScope01 t = new LambdaScope01();
        t.test1();
        t.test2();
        assertTrue(assertionCount == 2);
    }
}
/*
 * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

/*
 * @test
 * @bug 8003280
 * @summary Add lambda tests
 *  check that SAM conversion handles covarinat return types correctly
 * @author  Peter Levart
 * @author  Maurizio Cimadamore
 * @run main LambdaConv08
 */

public class LambdaConv08 {

    static int assertionCount = 0;

    static void assertTrue(boolean cond) {
        assertionCount++;
        if (!cond)
            throw new AssertionError();
    }

    public interface ObjectF { Object invoke(); }
    public interface StringF extends ObjectF { String invoke(); }

    public static void call(StringF stringFunc) {
        assertTrue(true);
    }

    public static void call(ObjectF objectFunc) {  }

    public static void main(String[] args)   {
        call(()-> "Hello");
        assertTrue(assertionCount == 1);
    }
}
/*
 * @test /nodynamiccopyright/
 * @bug 8003280
 * @summary Add lambda tests
 *  check that code generation handles void-compatibility correctly
 * @compile/fail/ref=LambdaConv21.out -XDrawDiagnostics LambdaConv21.java
 */

class LambdaConv21 {

    interface SAM_void<X> {
        void m();
    }

    interface SAM_java_lang_Void {
        Void m();
    }

    static void m_void() { }

    static Void m_java_lang_Void() { return null; }

    static void testExpressionLambda() {
        SAM_void s1 = ()->m_void(); //ok
        SAM_java_lang_Void s2 = ()->m_void(); //no - incompatible target
        SAM_void s3 = ()->m_java_lang_Void(); //ok - expres


>InsertMsgs, von denen drei von Proxy1 und die übrigen von Proxy2 stammen.

     msgstream

Die Zeitstempel der drei InsertMsgs von Proxy1 sind inkrementell, ebenso wie die der beiden InsertMsgs von Proxy2. Es gibt jedoch keine bestimmte Reihenfolge zwischen Proxy1 und Proxy2 InsertMsgs .

Ein mögliches Szenario ist, dass Milvus beim Lesen einer Nachricht mit dem Zeitstempel 110 von Proxy2 feststellt, dass sich die Nachricht mit dem Zeitstempel 80 von Proxy1 noch im MsgStream befindet. Daher führt Milvus ein Zeitsynchronisationssystem, timetick, ein, um sicherzustellen, dass beim Lesen einer Nachricht von MsgStream alle Nachrichten mit kleineren Zeitstempelwerten konsumiert werden müssen.

     time_synchronisation

Wie in der Abbildung oben dargestellt,

Jeder Proxy meldet in regelmäßigen Abständen (standardmäßig alle 200 ms) den größten Zeitstempelwert der letzten InsertMsg in der MsgStreaman root coord.

Root Coord identifiziert den minimalen Zeitstempelwert auf dieser Msgstream, unabhängig davon, zu welchem Proxy die InsertMsgs gehört. Dann fügt Root Coord diesen minimalen Zeitstempel in die Msgstream ein. Dieser Zeitstempel wird auch Timetick genannt.

Wenn die Verbraucherkomponenten den von Root Coord eingefügten Timetick lesen, verstehen sie, dass alle Einfüge-Nachrichten mit kleineren Timestamp-Werten verbraucht wurden. Daher können die entsprechenden Anfragen sicher ausgeführt werden, ohne dass der Auftrag unterbrochen wird.

Die folgende Abbildung ist ein Beispiel für die Msgstream mit einem eingefügten Zeitstempel.

    <img translate="no" src="/docs/v2.4.x/assets/timetick.png" alt="timetick


abase.GetAssetPath(ms);
            string scriptDirectoryPath = System.IO.Path.GetDirectoryName(scriptFilePath);
            string[] findResultGUID = AssetDatabase.FindAssets("t:ShaderVariantCollectionToolConfig", new string[] { scriptDirectoryPath });

            if (findResultGUID.Length == 0)
            {
                ShaderVariantCollectionToolConfig newConfig = ScriptableObject.CreateInstance<ShaderVariantCollectionToolConfig>();

                AssetDatabase.CreateAsset(newConfig, scriptDirectoryPath +"\\Default ShaderVariantCollection Tool Config.asset");
                AssetDatabase.SaveAssets();

                mConfig = newConfig;
            }
            else
            {
                mConfig = AssetDatabase.LoadAssetAtPath<ShaderVariantCollectionToolConfig>(
                    AssetDatabase.GUIDToAssetPath(findResultGUID[0]));
            }
        }

        private void SplitCollectionFile()
        {
            List<ShaderVariantCollection.ShaderVariant[]> splitItems =
                new List<ShaderVariantCollection.ShaderVariant[]>();

            bool splitFileNoSplitShader = mSplitFileNoSplitShader;
            bool splitFileNoSplitPass = mSplitFileNoSplitPass;

            //固定输出文件数量下，可以自由切割变体
            if (mSplitMode == SplitMode.FixedFileCount)
            {
                splitFileNoSplitShader = false;
                splitFileNoSplitPass = false;
            }

            //将收集文件拆分成最小的不可分割项
            foreach (Shader shader in collectionMapper.shaders)
            {
                var variants = collectionMapper.GetShaderVariants(shader);
                //如果Shader不可拆分，则Shader作为一个分割整体
                if (splitFileNoSplitShader)
                {
                    splitItems.Add(variants.ToArray());
                }
                else
                {
                    var passes = variants.GroupBy(variant => variant.passType);

                    foreach (var pass in passes)
                    {
                        //如果Pass不可拆分，则Pass作为一个分割整体
                        if (splitFileNoSplitPass)
                        {
                            splitItems.Add(pass.ToArray());
                        }
                        else
                        {
                            foreach (var variant in pass)
                            {
                                splitItems.Add(new ShaderVariantCollection.ShaderVariant[1] { variant });
                            }
                        }
                    }
                }
            }

            //根据长度排序
            splitItems.Sort((itemX, itemY) => itemX.Length.CompareTo(itemY.Length));

            int splitFileMaxVariantLimit = mSplitFileMaxVariantLimit;
            if (mSplitMode == SplitMode.FixedFileCount)
            {
                splitFileMaxVariantLimit = Mathf.CeilToInt((float)splitItems.Count / (float)mSplitFileFixedCount);
            }

            List<ShaderVariantCollection> outputList = new List<ShaderVariantCollection>();
            ShaderVariantCollection currentCollection = null;

            void CreateCollection()
            {
                outputList.Add(new ShaderVariantCollection());
                currentCollection = outputList.Last();
            }

            void AddToCollection(ShaderVariantCollection.ShaderVariant[] variants)
            {
                foreach (var variant in variants)
                {
                    currentCollection.Add(variant);
                }
            }

            ShaderVariantCollection.ShaderVariant[] PopItem(int index)
            {
                var item = splitItems[index];
                splitItems.RemoveAt(index);
                return item;
            }

            while (splitItems.Count > 0)
            {
                if (outputList.Count == 0)
                {
                    CreateCollection();
                }

                //如果当前收集文件是空的，将最长的不可分割项加入收集文件
                if (outputList.Last().variantCount == 0)
                {
                    //Pop last item
                    var item = PopItem(splitItems.Count - 1);
                    AddToCollection(item);
                }
                else
                {


r most exception codes the array elements are undefined, but for access violations
    /// the array will contain two elements: a read/write flag in the first element and
    /// the virtual address whose access caused the exception in the second element.
    pub exception_information: [u64; 15], // EXCEPTION_MAXIMUM_PARAMETERS
}

/// Values for [`MINIDUMP_EXCEPTION::exception_code`] for crashes on Windows
///
/// These values primarily come from WinBase.h and WinNT.h, with a few additions.
#[repr(u32)]
#[derive(Copy, Clone, PartialEq, Debug, Primitive)]
pub enum ExceptionCodeWindows {
    DBG_CONTROL_C = 0x40010005,
    EXCEPTION_GUARD_PAGE = 0x80000001,
    EXCEPTION_DATATYPE_MISALIGNMENT = 0x80000002,
    EXCEPTION_BREAKPOINT = 0x80000003,
    EXCEPTION_SINGLE_STEP = 0x80000004,
    EXCEPTION_ACCESS_VIOLATION = 0xc0000005,
    EXCEPTION_IN_PAGE_ERROR = 0xc0000006,
    EXCEPTION_INVALID_HANDLE = 0xc0000008,
    EXCEPTION_ILLEGAL_INSTRUCTION = 0xc000001d,
    EXCEPTION_NONCONTINUABLE_EXCEPTION = 0xc0000025,
    EXCEPTION_INVALID_DISPOSITION = 0xc0000026,
    EXCEPTION_BOUNDS_EXCEEDED = 0xc000008c,
    EXCEPTION_FLT_DENORMAL_OPERAND = 0xc000008d,
    EXCEPTION_FLT_DIVIDE_BY_ZERO = 0xc000008e,
    EXCEPTION_FLT_INEXACT_RESULT = 0xc000008f,
    EXCEPTION_FLT_INVALID_OPERATION = 0xc0000090,
    EXCEPTION_FLT_OVERFLOW = 0xc0000091,
    EXCEPTION_FLT_STACK_CHECK = 0xc0000092,
    EXCEPTION_FLT_UNDERFLOW = 0xc0000093,
    EXCEPTION_INT_DIVIDE_BY_ZERO = 0xc0000094,
    EXCEPTION_INT_OVERFLOW = 0xc0000095,
    EXCEPTION_PRIV_INSTRUCTION = 0xc0000096,
    EXCEPTION_STACK_OVERFLOW = 0xc00000fd,
    EXCEPTION_POSSIBLE_DEADLOCK = 0xc0000194,
    STATUS_STACK_BUFFER_OVERRUN = 0xc0000409,
    STATUS_HEAP_CORRUPTION = 0xc0000374,
    /// Exception thrown by Chromium allocators to indicate OOM
    ///
    /// See base/process/memory.h in Chromium for rationale.
    OUT_OF_MEMORY = 0xe0000008,
    /// Per <http://support.microsoft.com/kb/185294>, generated by Visual C++ compiler
    UNHANDLED_CPP_EXCEPTION = 0xe06d7363,
    /// Fake exception code used by Crashpad
    SIMULATED = 0x0517a7ed,
}

/// Values for [`MINIDUMP_EXCEPTION::exception_code`] for crashes on Linux
///
/// These are primarily signal numbers from bits/signum.h.
#[repr(u32)]
#[derive(Copy, Clone, PartialEq, Debug, Primitive)]
pub enum ExceptionCodeLinux {
    /// Hangup (POSIX)
    SIGHUP = 0x1,
    /// Interrupt (ANSI)
    SIGINT = 0x2,
    /// Quit (POSIX)
    SIGQUIT = 0x3,
    /// Illegal instruction (ANSI)
    SIGILL = 0x4,
    /// Trace trap (POSIX)
    SIGTRAP = 0x5,
    /// Abort (ANSI)
    SIGABRT = 0x6,
    /// BUS error (4.2 BSD)
    SIGBUS = 0x7,
    /// Floating-point exception (ANSI)
    SIGFPE = 0x8,
    /// Kill, unblockable (POSIX)
    SIGKILL = 0x9,
    /// User-defined signal 1 (POSIX)
    SIGUSR1 = 0xa,
    /// Segmentation violation (ANSI)
    SIGSEGV = 0xb,
    /// User-defined signal 2 (POSIX)
    SIGUSR2 = 0xc,
    /// Broken pipe (POSIX)
    SIGPIPE = 0xd,
    /// Alarm clock (POSIX)
    SIGALRM = 0xe,
    /// Termination (ANSI)
    SIGTERM = 0xf,
    /// Stack fault
    SIGSTKFLT = 0x10,


using NUnit.Framework;
using Assert = ModestTree.Assert;

namespace Zenject.Tests.Conditions
{
    [TestFixture]
    public class TestConditionsBasic : ZenjectUnitTestFixture
    {
        public interface IFoo
        {
        }

        class Foo1 : IFoo
        {
        }

        class Foo2 : IFoo
        {
        }

        class Bar1
        {
            public IFoo Foo;

            public Bar1(IFoo foo)
            {
                Foo = foo;
            }
        }

        class Bar2
        {
            public IFoo Foo;

            public Bar2(IFoo foo)
            {
                Foo = foo;
            }
        }

        [Test]
        public void Test1()
        {
            Container.Bind<Bar1>().AsSingle().NonLazy();
            Container.


 ├── urls.py
│   └── wsgi.py
├── medications/
│   ├── __init__.py
│   ├── models.py
│   ├── serializers.py
│   ├── views.py
│   ├── urls.py
│   └── tests.py
├── prescriptions/
│   ├── __init__.py
│   ├── models.py
│   ├── serializers.py
│   ├── views.py
│   ├── urls.py
│   └── tests.py
└── inventory/
    ├── __init__.py
    ├── models.py
    ├── serializers.py
    ├── views.py
    ├── urls.py
    └── tests.py
```

#### Các thành phần chính

1. **medications**: Quản lý thông tin thuốc
2. **prescriptions**: Quản lý đơn thuốc
3. **inventory**: Quản lý tồn kho thuốc

#### Các endpoints chính

- `/api/medications`: Quản lý thuốc (CRUD)
- `/api/medications/search`: Tìm kiếm thuốc
- `/api/medications/interactions`: Kiểm tra tương tác thuốc
- `/api/prescriptions`: Quản lý đơn thuốc (CRUD)
- `/api/prescriptions/{id}/verify`: Xác minh đơn thuốc
- `/api/prescriptions/{id}/dispense`: Cấp phát thuốc
- `/api/inventory`: Quản lý tồn kho thuốc
- `/api/inventory/low-stock`: Danh sách thuốc sắp hết

### 2.1.5 Laboratory Service

#### Tổng quan

Laboratory Service quản lý xét nghiệm, mẫu xét nghiệm, và kết quả xét nghiệm. Service này cung cấp các API cho phép yêu cầu xét nghiệm, ghi nhận kết quả, và truy vấn kết quả xét nghiệm.

#### Cấu trúc thư mục

```
laboratory-service/
├── Dockerfile
├── requirements.txt
├── manage.py
├── laboratory_service/
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── test_types/
│   ├── __init__.py
│   ├── models.py
│   ├── serializers.py
│   ├── views.py
│   ├── urls.py
│   └── tests.py
├── lab_tests/
│   ├── __init__.py
│   ├── models.py
│   ├── serializers.py
│   ├── views.py
│   ├── urls.py
│   └── tests.py
└── results/
    ├── __init__.py
    ├── models.py
    ├── serializers.py
    ├── views.py
    ├── urls.py
    └── tests.py
```

#### Các thành phần chính

1. **test_types**: Quản lý các loại xét nghiệm
2. **lab_tests**: Quản lý các yêu cầu xét nghiệm
3. **results**: