SHelp="http://msdn.microsoft.com/mshelp" xmlns:mshelp="http://msdn.microsoft.com/mshelp" xmlns:ddue="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
  <head>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" />
    <META NAME="save" CONTENT="history" />
    <title>MemorySnapshotCollection Class</title>
    <link rel="stylesheet" type="text/css" href="../styles/presentation.css" />
    <link rel="stylesheet" type="text/css" href="ms-help://Hx/HxRuntime/HxLink.css" />
    <script type="text/javascript" src="../scripts/EventUtilities.js"> </script>
    <script type="text/javascript" src="../scripts/SplitScreen.js"> </script>
    <script type="text/javascript" src="../scripts/Dropdown.js"> </script>
    <script type="text/javascript" src="../scripts/script_manifold.js"> </script>
    <script type="text/javascript" src="../scripts/script_feedBack.js"> </script>
    <script type="text/javascript" src="../scripts/CheckboxMenu.js"> </script>
    <script type="text/javascript" src="../scripts/CommonUtilities.js"> </script>
    <meta name="container" content="Microsoft.Test.LeakDetection" />
    <meta name="file" content="T_Microsoft_Test_LeakDetection_MemorySnapshotCollection" />
    <meta name="guid" content="T_Microsoft_Test_LeakDetection_MemorySnapshotCollection" />
    <xml>
      <MSHelp:Attr Name="AssetID" Value="T:Microsoft.Test.LeakDetection.MemorySnapshotCollection" />
      <MSHelp:TOCTitle Title="MemorySnapshotCollection Class" />
      <MSHelp:RLTitle Title="MemorySnapshotCollection Class (Microsoft.Test.LeakDetection)" />
      <MSHelp:Keyword Index="A" Term="T:Microsoft.Test.LeakDetection.MemorySnapshotCollection" />
      <MSHelp:Keyword Index="A" Term="frlrfMicrosoftTestLeakDetectionMemorySnapshotCollectionClassTopic" />
      <MSHelp:Keyword Index="K" Term="MemorySnapshotCollection class" />
      <MSHelp:Keyword Index="K" Term="Microsoft.Test.LeakDetection.MemorySnapshotCollection class" />
      <MSHelp:Keyword Index="K" Term="MemorySnapshotCollection class, about MemorySnapshotCollection class" />
      <MSHelp:Keyword Index="F" Term="MemorySnapshotCollection" />
      <MSHelp:Keyword Index="F" Term="Microsoft.Test.LeakDetection.MemorySnapshotCollection" />
      <MSHelp:Attr Name="HelpPriority" Value="2" />
      <MSHelp:Attr Name="APIType" Value="Managed" />
      <MSHelp:Attr Name="APILocation" Value="TestApiCore.dll" />
      <MSHelp:Attr Name="APIName" Value="Microsoft.Test.LeakDetection.MemorySnapshotCollection" />
      <MSHelp:Attr Name="DevLang" Value="CSharp" />
      <MSHelp:Attr Name="DevLang" Value="VB" />
      <MSHelp:Attr Name="DevLang" Value="C++" />
      <MSHelp:Attr Name="Locale" Value="en-us" />
      <MSHelp:Attr Name="TopicType" Value="kbSyntax" />
      <MSHelp:Attr Name="TopicType" Value="apiref" />
      <MSHelp:Attr Name="Abstract" Value="A collection of MemorySnapshots that can be serialized to an XML file." />
      <MSHelp:Attr Name="AssemblyVersion" Value="0.0.0.0" />
      <MSHelp:Attr Name="NoName" Value="" />
    </xml>
    <link type="text/css" rel="stylesheet" href="../styles/highlight.css" />
    <script type="text/javascript" src="../scripts/highlight.js"></script>
  </head>
  <body>
    <input type="hidden" id="userDataCache" class="userDataStyle" />
    <


pr	%wstate, %g5				! DEBUG
	wrpr	%g0, WSTATE_KERN, %wstate		! DEBUG
	wrpr	%g0, 4, %tl
	rdpr	%cansave, %g7
	rdpr	%canrestore, %g6
	flushw						! DEBUG
	wrpr	%g2, 0, %tl
	wrpr	%g5, 0, %wstate				! DEBUG
#endif
#else
	/*
	 * We just issued a bunch of saves, so %cansave is now 0,
	 * probably (if we were doing a flushw then we may have
	 * come in with only partially full register windows and
	 * it may not be 0).
	 *
	 * %g7 contains the count of the windows we just finished
	 * saving.
	 *
	 * What we need to do now is move some of the windows from
	 * %canrestore to %cansave.  What we should do is take
	 * min(%canrestore, %g7) and move that over to %cansave.
	 *
	 * %g7 is the number of windows we flushed, so we should
	 * use that as a base.  Clear out %otherwin, set %cansave
	 * to min(%g7, NWINDOWS - 2), set %cleanwin to %canrestore
	 * + %cansave and the rest follows:
	 *
	 * %otherwin = 0
	 * %cansave = NWINDOWS - 2 - %canrestore
	 */
	wrpr	%g0, 0, %otherwin
	rdpr	%canrestore, %g1
	sub	%g1, %g7, %g1				! Calculate %canrestore - %g7
	movrlz	%g1, %g0, %g1				! Clamp at zero
	wrpr	%g1, 0, %canrestore			! This is the new canrestore
	rdpr	%ver, %g5
	and	%g5, CWP, %g5				! NWINDOWS-1
	dec	%g5					! NWINDOWS-2
	wrpr	%g5, 0, %cleanwin			! Set cleanwin to max, since we're in-kernel
	sub	%g5, %g1, %g5				! NWINDOWS-2-%canrestore
#ifdef TRAPTRACE
	wrpr	%g5, 0, %cleanwin			! Force cleanwindow faults
#endif
	wrpr	%g5, 0, %cansave
#ifdef NOT_DEBUG
	rdpr	%wstate, %g5				! DEBUG
	wrpr	%g0, WSTATE_KERN, %wstate		! DEBUG
	wrpr	%g0, 4, %tl
	flushw						! DEBUG
	wrpr	%g2, 0, %tl
	wrpr	%g5, 0, %wstate				! DEBUG
#endif
#endif

#ifdef NOTDEF_DEBUG
	set	panicstack-CC64FSZ, %g1
	save	%g1, 0, %sp
	GLOBTOLOC
	rdpr	%wstate, %l0
	wrpr	%g0, WSTATE_KERN, %wstate
	set	8f, %o0
	mov	%g7, %o1
	call	printf
	 mov	%g5, %o2
	wrpr	%l0, 0, %wstate
	LOCTOGLOB
	restore
	ba	9f
	 nop
8:
	.asciz	"winfix: spill fixup\n"
	_ALIGN
9:
#endif
	CHKPT(%g5,%g1,0x15)
!	rdpr	%tl, %g2				! DEBUG DEBUG -- did


#  Drakkar-Software OctoBot-Trading
#  Copyright (c) Drakkar-Software, All rights reserved.
#
#  This library is free software; you can redistribute it and/or
#  modify it under the terms of the GNU Lesser General Public
#  License as published by the Free Software Foundation; either
#  version 3.0 of the License, or (at your option) any later version.
#
#  This library 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
#  Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public
#  License along with this library.
import decimal

import pytest

from octobot_commons.asyncio_tools import wait_asyncio_next_cycle
from octobot_trading.enums import TraderOrderType
import octobot_trading.constants as trading_constants
from tests.personal_data import DEFAULT_ORDER_SYMBOL, DEFAULT_SYMBOL_QUANTITY
from tests.test_utils.random_numbers import decimal_random_price, decimal_random_quantity, \
    decimal_random_recent_trade

from tests import event_loop
from tests.exchanges import simulated_trader, simulated_exchange_manager
from tests.personal_data.orders import stop_loss_limit_order

pytestmark = pytest.mark.asyncio

async def test_stop_loss_limit_order_trigger(stop_loss_limit_order):
    order_price = decimal_random_price()
    stop_loss_limit_order.limit_price = order_price - decimal.Decimal(10)
    stop_loss_limit_order.update(
        price=order_price,
        quantity=decimal_random_quantity(max_value=decimal.Decimal(DEFAULT_SYMBOL_QUANTITY / 10)),
        symbol=DEFAULT_ORDER_SYMBOL,
        order_type=TraderOrderType.STOP_LOSS_LIMIT,
    )
    stop_loss_limit_order.exchange_manager.is_backtesting = True  # force update_order_status
    await stop_loss_limit_order.initialize()
    await stop_loss_limit_order.exchange_manager.exchange_personal_data.orders_manager.upsert_order_instance(
        stop_loss_limit_order
    )
    price_events_manager = stop_loss_limit_order.exchange_manager.exchange_symbols_data.get_exchange_symbol_data(
        DEFAULT_ORDER_SYMBOL).price_events_manager
    price_events_manager.handle_recent_trades(
        [decimal_random_recent_trade(price=decimal_random_price(min_value=order_price + trading_constants.ONE),
                                     timestamp=stop_loss_limit_order.timestamp)])
    await wait_asyncio_next_cycle()
    assert not stop_loss_limit_order.is_filled()
    price_events_manager.handle_recent_trades(
        [decimal_random_recent_trade(price=order_price,
                                     timestamp=stop_loss_limit_order.timestamp - 1)])
    await wait_asyncio_next_cycle()
    assert not stop_loss_limit_order.is_filled()
    price_events_manager.handle_recent_trades([decimal_random_recent_trade(price=order_price,
                                                                           timestamp=stop_loss_limit_order.timestamp)])

    # wait for 2 cycles as secondary orders are created
    await wait_asyncio_next_cycle()
    await wait_asyncio_next_cycle()
    assert stop_loss_limit_order.is_filled()

    # TODO add test create artificial order


.minmax_by_key' class='fnname'>minmax_by_key<K, F>(self, key: F) -> MinMaxResult<Self::Item> where
    Self: Sized,
    K: PartialOrd,
    F: FnMut(&Self::Item) -> K, [src]

Return the minimum and maximum element of an iterator, as determined by the specified function. Read more

fn minmax_by<F>(self, compare: F) -> MinMaxResult<Self::Item> where
    Self: Sized,
    F: FnMut(&Self::Item, &Self::Item) -> <a class="enum" href="ht


, headers, type) {
                    // Files with Cookie headers should never be publicly
                    // cached.
                    return hasHeader(headers, 'Set-Cookie') &&
                        isPubliclyCacheable(url, headers);
                  })
  ];

  var numCacheableResources = 0;

  // Loop through all files finding suboptimal caching headers.
  var urls = PAGESPEED.Utils.filterProtocols(PAGESPEED.Utils.getResources());
  for (var i = 0, len = urls.length; i < len; i++) {
    var type = PAGESPEED.Utils.getResourceTypes(urls[i])[0];
    if (isNonCacheableResourceType(type)) {
      continue;
    }

    if (isExplicitlyNonCacheable(urls[i])) {
      continue;
    }

    numCacheableResources++;
    execRulesForResource(rules, urls[i]);
  }

  formatViolations(this, rules, numCacheableResources);
};

PAGESPEED.LintRules.registerLintRule(
  new PAGESPEED.LintRule(
    'Leverage browser caching',
    PAGESPEED.CACHE_GROUP,
    'caching.html#LeverageBrowserCaching',
    browserCachingRule,
    4.0,
    'BrowserCache'
  )
);

PAGESPEED.LintRules.registerLintRule(
  new PAGESPEED.LintRule(
    'Leverage proxy caching',
    PAGESPEED.CACHE_GROUP,
    'caching.html#LeverageProxyCaching',
    proxyCachingRule,
    3.0,
    'ProxyCache'
  )
);

})();  // End closure
/**
 * Copyright 2008-2009 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * @fileoverview Calculates an estimated cost for every CSS rule.
 *
 * Based on Java code by Ian Flanigan.
 *
 * This work is based on the documented behavior of Firefox as described on the
 * Writing
 * Efficient CSS page in the Mozilla Developer Center. If we eventually
 * find out how to do similar calculations for IE6, IE7, and Safari, we will.
 * (Note: As of 23 June 2008, the Firefox documentation is up to date and
 * accurate according to L. David Baron, the maintainer of the CSS part of the
 * rendering engine.)
 *

 * The cost of a rule is the cost of its most expensive selector. (Rules with
 * multiple selectors can be thought of as independent rules.)
 *

 * The cost of a selector is calculated as follows:
 *

 *
First determine the base cost using the key selector, which is
 *     is one of {@code ID}, {@code CLASS}, {@code TAG}, or {@code UNIVERSAL}.
 *

 *
{@code UNIVERSAL} selectors are given a cost of 100 because
 *         they are searched for every DOM element in the tree.
 *
{@code TAG} selectors are given a cost of 20 because they are
 *         searched for each tag of that type in the tree.
 *
{@code CLASS} and {@code ID} selectors are given a cost of 1
 *         because they are only searched for elements that have a given
 *         class or id.
 *

 *
Next we multiply that base cost by various factors:
 *

 *
Selectors that use the descendant combinator (des


COMMENT("/\\*\\*!", "\\*/"),
            hljs.C_NUMBER_MODE,
            hljs.inherit(hljs.APOS_STRING_MODE, {
                illegal: null
            }),
            hljs.inherit(hljs.QUOTE_STRING_MODE, {
                illegal: null
            }),
            {
                className: "string",
                begin: "'",
                end: "'"
            },
            {
                className: "symbol",
                variants: [
                    {
                        begin: "#",
                        end: "\\d+",
                        illegal: "\\W"
                    }
                ]
            }
        ]
    };
}
exports167 = step21;
var _step = exports167;
var exports168 = {
};
const MODES4 = (hljs)=>{
    return {
        IMPORTANT: {
            scope: "meta",
            begin: "!important"
        },
        BLOCK_COMMENT: hljs.C_BLOCK_COMMENT_MODE,
        HEXCOLOR: {
            scope: "number",
            begin: /#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/
        },
        FUNCTION_DISPATCH: {
            className: "built_in",
            begin: /[\w-]+(?=\()/
        },
        ATTRIBUTE_SELECTOR_MODE: {
            scope: "selector-attr",
            begin: /\[/,
            end: /\]/,
            illegal: "$",
            contains: [
                hljs.APOS_STRING_MODE,
                hljs.QUOTE_STRING_MODE
            ]
        },
        CSS_NUMBER_MODE: {
            scope: "number",
            begin: hljs.NUMBER_RE + "(" + "%|em|ex|ch|rem" + "|vw|vh|vmin|vmax" + "|cm|mm|in|pt|pc|px" + "|deg|grad|rad|turn" + "|s|ms" + "|Hz|kHz" + "|dpi|dpcm|dppx" + ")?",
            relevance: 0
        },
        CSS_VARIABLE: {
            className: "attr",
            begin: /--[A-Za-z][A-Za-z0-9_-]*/
        }
    };
};
const TAGS3 = [
    "a",
    "abbr",
    "address",
    "article",
    "aside",
    "audio",
    "b",
    "blockquote",
    "body",
    "button",
    "canvas",
    "caption",
    "cite",
    "code",
    "dd",
    "del",
    "details",
    "dfn",
    "div",
    "dl",
    "dt",
    "em",
    "fieldset",
    "figcaption",
    "figure",
    "footer",
    "form",
    "h1",
    "h2",
    "h3",
    "h4",
    "h5",
    "h6",
    "header",
    "hgroup",
    "html",
    "i",
    "iframe",
    "img",
    "input",
    "ins",
    "kbd",
    "label",
    "legend",
    "li",
    "main",
    "mark",
    "menu",
    "nav",
    "object",
    "ol",
    "p",
    "q",
    "quote",
    "samp",
    "section",
    "span",
    "strong",
    "summary",
    "sup",
    "table",
    "tbody",
    "td",
    "textarea",
    "tfoot",
    "th",
    "thead",
    "time",
    "tr",
    "ul",
    "var",
    "video"
];
const MEDIA_FEATURES3 = [
    "any-hover",
    "any-pointer",
    "aspect-ratio",
    "color


<opnum::opnumbase, OP2T>::value,
                "Argument(s) should be opnum.");

            static_assert(std::is_same<OP3T, opnum::reg>::value
                || std::is_same<OP3T, opnum::temporary>::value,
                "Argument r should be reg or temporary.");

            if constexpr (std::is_same<OP3T, opnum::reg>::value)
                WO_PUT_IR_TO_BUFFER(instruct::opcode::sidarr, WO_OPNUM(op1), WO_OPNUM(op2), (int32_t)r.id);
            else
                WO_PUT_IR_TO_BUFFER(instruct::opcode::sidarr, WO_OPNUM(op1), WO_OPNUM(op2), -(int32_t)(r.m_id + 1));
        }
        template<typename OP1T, typename OP2T>
        void sidstruct(const OP1T& op1, const OP2T& op2, uint16_t offset)
        {
            static_assert(std::is_base_of<opnum::opnumbase, OP1T>::value
                && std::is_base_of<opnum::opnumbase, OP2T>::value,
                "Argument(s) should be opnum.");

            WO_PUT_IR_TO_BUFFER(instruct::opcode::sidstruct, WO_OPNUM(op1), WO_OPNUM(op2), (int32_t)offset);
        }

        template<typename OP1T, typename OP2T>
        void idstr(const OP1T& op1, const OP2T& op2)
        {
            static_assert(std::is_base_of<opnum::opnumbase, OP1T>::value
                && std::is_base_of<opnum::opnumbase, OP2T>::value,
                "Argument(s) should be opnum.");

            WO_PUT_IR_TO_BUFFER(instruct::opcode::idstr, WO_OPNUM(op1), WO_OPNUM(op2));
        }

        void ext_funcbegin()
        {
            auto& codeb = WO_PUT_IR_TO_BUFFER(instruct::opcode::ext);
            codeb.ext_page_id = 3;
            codeb.ext_opcode_p3 = instruct::extern_opcode_page_3::funcbegin;
        }
        void ext_funcend()
        {
            auto& codeb = WO_PUT_IR_TO_BUFFER(instruct::opcode::ext);
            codeb.ext_page_id = 3;
            codeb.ext_opcode_p3 = instruct::extern_opcode_page_3::funcend;
        }

        template<typename OP1T>
        void ext_packargs(const OP1T& op1, uint16_t thisfuncargc, uint16_t skipclosure)
        {
            static_assert(std::is_base_of<opnum::opnumbase, OP1T>::value,
                "Argument(s) should be opnum.");

            auto& codeb = WO_PUT_IR_TO_BUFFER(instruct::opcode::ext,
                WO_OPNUM(op1), nullptr, (int32_t)thisfuncargc, (int32_t)skipclosure);

            codeb.ext_page_id = 0;
            codeb.ext_opcode_p0 = instruct::extern_opcode_page_0::pack;
        }

        template<typename OP1T>
        void unpack(const OP1T& op1, int32_t unpack_count)
        {
            static_assert(std::is_base_of<opnum::opnumbase, OP1T>::value,
                "Argument(s) should be opnum.");

            WO_PUT_IR_TO_BUFFER(
                instruct::opcode::unpack, WO_OPNUM(op1), nullptr, unpack_count);
        }

        template<typename OP1T, typename OP2T>
        void ext_cdivilr(const OP1T& op1, const OP2T


-16+4|0,(c[j>>2]|0)+4|0,c[(c[j>>2]|0)+ -64+4>>2]|0,0,0,c[(c[j>>2]|0)+ -32+4>>2]|0);break};case 23:{Ln(c[q>>2]|0,1,(c[j>>2]|0)+4|0);break};case 49:{c[h>>2]=c[(c[j>>2]|0)+ -16+4>>2];c[h+4>>2]=(c[(c[j>>2]|0)+8>>2]|0)+((c[(c[j>>2]|0)+4>>2]|0)-(c[(c[j>>2]|0)+ -16+4>>2]|0));break};case 94:{Vn(c[q>>2]|0,0,0,0,c[(c[j>>2]|0)+ -32+4>>2]|0,c[(c[j>>2]|0)+4>>2]|0,0,0,0,0)|0;break};case 95:{Wn(c[q>>2]|0,c[(c[j>>2]|0)+ -32+4>>2]|0);break};case 61:{Tn(c[q>>2]|0,c[(c[j>>2]|0)+4>>2]|0);break};case 66:{Yn(c[q>>2]|0,c[(c[j>>2]|0)+4>>2]|0);break};case 67:{Zn(c[q>>2]|0,(c[j>>2]|0)+4|0);break};case 70:{c[h>>2]=0;break};case 62:{Un(c[q>>2]|0,0,c[(c[j>>2]|0)+ -16+4>>2]|0,c[(c[j>>2]|0)+4>>2]|0,c[(c[j>>2]|0)+ -32+4>>2]|0);break};case 106:{_n(c[q>>2]|0,c[(c[j>>2]|0)+4>>2]|0,0,c[(c[j>>2]|0)+ -16+4>>2]|0);break};case 59:{Sn(J,c[q>>2]|0,97,(c[j>>2]|0)+4|0);Qn(c[q>>2]|0,J);break};case 87:{f=(c[j>>2]|0)+ -16+4|0;c[h+0>>2]=c[f+0>>2];c[h+4>>2]=c[f+4>>2];break};case 90:{c[(c[q>>2]|0)+324>>2]=0;break};case 76:{c[h>>2]=7;break};case 75:{c[h>>2]=c[(c[j>>2]|0)+4>>2]<<8;c[h+4>>2]=65280;break};case 77:{c[h>>2]=8;break};case 78:{c[h>>2]=9;break};case 79:{c[h>>2]=6;break};case 80:{c[h>>2]=0;break};case 73:case 72:{c[h>>2]=0;c[h+4>>2]=0;break};case 74:{c[h>>2]=c[(c[j>>2]|0)+4>>2];c[h+4>>2]=255;break};case 19:{Kn(c[q>>2]|0);break};case 8:{Hn(c[q>>2]|0);break};case 58:{c[W>>2]=Rn(c[q>>2]|0,157,c[(c[j>>2]|0)+4>>2]|0,0,0)|0;c[W+4>>2]=c[(c[j>>2]|0)+ -16


       return res.json()
        else:
            return res

    def directions5(self, start, goal, **kwargs):
        """
        Directions5 API

        Parameters
        ----------
        start : string
            출발지 좌표
        goal : string
            도착지 좌표
        kwargs : dict
            그 외 파라미터

        Returns
        -------
        dict
            검색 결과

        - API 레퍼런스: https://api.ncloud-docs.com/docs/ai-naver-mapsdirections
        """
        url = f"https://naveropenapi.apigw.ntruss.com/map-direction/v1/driving"
        params = {
            "start": start,
            "goal": goal,
        }
        params.update(kwargs)
        res = requests.get(url, headers=self.headers, params=params)
        if res.status_code == 200:
            return res.json()
        else:
            return res

    def directions15(self, start, goal, **kwargs):
        """
        Directions15 API

        Parameters
        ----------
        start : string
            출발지 좌표
        goal : string
            도착지 좌표
        kwargs : dict
            그 외 파라미터

        Returns
        -------
        dict
            검색 결과

        - API 레퍼런스: https://api.ncloud-docs.com/docs/ai-naver-mapsdirections15
        """
        url = f"https://naveropenapi.apigw.ntruss.com/map-direction-15/v1/driving"
        params = {
            "start": start,
            "goal": goal,
        }
        params.update(kwargs)
        res = requests.get(url, headers=self.headers, params=params)
        if res.status_code == 200:
            return res.json()
        else:
            return res

    def clova_summary(self,
                      content=None,
                      title=None,
                      language="ko",
                      model="general",
                      tone=0,
                      summaryCount=3,
                      ):
        """
        Clova Summary API

        Parameters
        ----------
        content : string, REQUIRED
            요약할 내용
        title : string, OPTIONAL
            요약할 제목
        language : string, REQUIRED (ko: 한국어, ja: 일본어) (미지정 시 기본 값: ko)
            언어
        model : string, OPTIONAL
            모델 (general: 일반 문서 요약, news: 뉴스 요약) (미지정 시 기본 값: general)
        tone : int, OPTIONAL
            톤 (0: 원문의 어투를 유지, 1: 해요체, 2: 정중체, 3: 명사형 종결체) (미지정 시 기본 값: 0)
        summaryCount : int, OPTIONAL
            요약문 개수 (미지정 시 기본 값: 3)
        """
        url = "https://naveropenapi.apigw.ntruss.com/text-summary/v1/summarize"
        params = {
            "document": {
                "content": content,
                "title": title,
            },
            "option": {
                "language": language,
                "model": model,
                "tone": tone,
                "summaryCount": summaryCount,
            },
        }
        headers = self.headers.copy()
        headers.update({
            "Content-Type": "application/json",
        })
        res = requests.post(url, headers=headers, json=params)
        if res.status_code == 200:
            return res.json()
        else:
            return res

class Map:
    """
    네이버 지도 API 클래스
    """

    def __init__(self):
        pass

    def search(self, query, **kwargs):
        """
        네이버 지도 검색

        Parameters
        ----------
        query : string
            검색어
        kwargs : dict
            그 외 파라미터

        Returns
        -------
        dict
            검색 결과
        """
        url = "https://map.naver.com/v5/api/search"
        headers = {
            'content-type': 'application/json',
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36',
        }
        params = {
            "query": query,
            "type": "all",
            "lang": "ko",
        }
        params.update(kwargs)
        res = requests.get(url, headers=headers, params=params)
        return res.json()

    def sites_summary(self, site_id, **kwargs):
        """
        네이버 지도 장소 요약

        Parameters
        ----------
        site_id : string
            장소 ID
        kwargs : dict
            그 외 파라미터

        Returns
        -------
        dict
            검색 결과
        """
        url = f"https://map.naver.com/v5/api/sites/summary/{site_id}"
        headers = {
            'content-type': 'application/json',
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, li


rypted notes for user " + id,
                Vv = new CqlVector<int>(1, 2, 3)
            };

            if (nullValues)
            {
                newUser.Name = null;
                newUser.Surname = "";
                newUser.Age = null;
                newUser.PublicNotes = null;
                newUser.Vv = null;
            }

            if (_withVector)
            {
                await session.ExecuteAsync(new SimpleStatement(
                    insertQuery,
                    new EncryptedValue(newUser.Id, KeyAndIv),
                    new EncryptedValue(newUser.Name, KeyAndIv),
                    new EncryptedValue(newUser.Surname, KeyAndIv),
                    new EncryptedValue(newUser.Age, KeyAndIv),
                    newUser.PublicNotes,
                    new EncryptedValue(newUser.Vv, KeyAndIv))).ConfigureAwait(false);
            }
            else
            {
                await session.ExecuteAsync(new SimpleStatement(
                    insertQuery,
                    new EncryptedValue(newUser.Id, KeyAndIv),
                    new EncryptedValue(newUser.Name, KeyAndIv),
                    new EncryptedValue(newUser.Surname, KeyAndIv),
                    new EncryptedValue(newUser.Age, KeyAndIv),
                    newUser.PublicNotes)).ConfigureAwait(false);
            }


LY_Aurelon|r |cRXP_WARN_may patrol slightly|r
	.train 465 >> Train |T135893:0|t[Devotion Aura]
    .target Aurelon
step << Warrior cata
    .goto Azuremyst Isle,79.587,49.446
    >>|Tinterface/worldmap/chatbubble_64grey.blp:20|tTalk to |cRXP_FRIENDLY_Kore|r
	.train 34428 >> Train |T132342:0|t[Victory Rush]
    .target Kore
step << Shaman cata
    .goto Azuremyst Isle,79.278,49.126
    >>|Tinterface/worldmap/chatbubble_64grey.blp:20|tTalk to |cRXP_FRIENDLY_Firmanvaar|r
	.train 8042 >> |T136026:0|t[Earth Shock]
    .target Firmanvaar
step
    .goto Azuremyst Isle,64.497,54.037
    >>|Tinterface/worldmap/chatbubble_64grey.blp:20|tTalk to |cRXP_FRIENDLY_Aeun|r
    .accept 9314 >> Accept Word from Azure Watch
    .target Aeun
step
    .goto Azuremyst Isle,61.052,54.248
    >>|Tinterface/worldmap/chatbubble_64grey.blp:20|tTalk to |cRXP_FRIENDLY_Diktynna|r
    .accept 9452 >> Accept Red Snapper - Very Tasty!
    .target Diktynna
step
    .isOnQuest 9452
    .goto Azuremyst Isle,62.38,51.93,40,0
    .goto Azuremyst Isle,61.87,41.62,60 >> |cRXP_WARN_Swim north up the river|r
    .use 23654 >>|cRXP_WARN_Use the|r |T134325:0|t[Draenei Fishing Net] |cRXP_WARN_on|r |cRXP_PICK_Schools of Red Snapper|r |cRXP_WARN_you see along the way. Skip this step once you get to the top of the river, you'll complete it later|r
	.collect 23614,10 -- Red Snapper (10)
    .disablecheckbox
step
	#completewith next
    >>|cRXP_WARN_Keep an eye out for a|r |cRXP_FRIENDLY_Draenei Youngling|r
    >>|cRXP_WARN_While they are in combat, cast|r |T135923:0|t[Gift of the Naaru] |cRXP_WARN_on them, then accept the quest|r
	.accept 9612 >> Accept A Hearty Thanks!
	.unitscan Draenei Youngling
step
    .goto Azuremyst Isle,53.9,34.4
    >>Kill |cRXP_ENEMY_Infected Nightstalker Runts|r. Loot them for a |T134072:0|t[|cRXP_LOOT_Faintly Glowing Crystal|r]
    .use 23678 >>|cRXP_WARN_Use the|r |T134072:0|t[|cRXP_LOOT_Faintly Glowing Crystal|r] |cRXP_WARN_to start the quest|r
	.collect 23678,1,9455,1 -- Faintly Glowing Crystal (1)
    .accept 9455 >> Accept Strange Findings
    .mob Infected Nightstalker Runt
step
	#completewith NightstalkerCleanUp
    .goto Azuremyst Isle,56.1,39.3
    .deathskip >> Die and respawn at the |cRXP_FRIENDLY_Spirit Healer|r
    >>|cRXP_WARN_Ensure to die near the pond close to the mountain side|r
step
    #completewith NightstalkerCleanUp
    .subzone 3576 >> Travel to Azure Watch
--


-1000-8000-00805f9b34fb", "Human Interface Device");
	    attributes.put("00001813-0000-1000-8000-00805f9b34fb", "Scan Parameters");
	    attributes.put("00001814-0000-1000-8000-00805f9b34fb", "Running Speed and Cadence");
	    attributes.put("00001816-0000-1000-8000-00805f9b34fb", "Cycling Speed and Cadence");
	    attributes.put("00001818-0000-1000-8000-00805f9b34fb", "Cycling Power");
	    attributes.put("00001819-0000-1000-8000-00805f9b34fb", "Location and Navigation");
	    attributes.put("00002700-0000-1000-8000-00805f9b34fb", "GATT_UNITLESS");
	    attributes.put("00002701-0000-1000-8000-00805f9b34fb", "GATT_UNIT_LENGTH_METER");
	    attributes.put("00002702-0000-1000-8000-00805f9b34fb", "GATT_UNIT_MASS_KGRAM");
	    attributes.put("00002703-0000-1000-8000-00805f9b34fb", "GATT_UNIT_TIME_SECOND");
	    attributes.put("00002704-0000-1000-8000-00805f9b34fb", "GATT_UNIT_ELECTRIC_CURRENT_A");
	    attributes.put("00002705-0000-1000-8000-00805f9b34fb", "GATT_UNIT_THERMODYNAMIC_TEMP_K");
	    attributes.put("00002706-0000-1000-8000-00805f9b34fb", "GATT_UNIT_AMOUNT_SUBSTANCE_M");
	    attributes.put("00002707-0000-1000-8000-00805f9b34fb", "GATT_UNIT_LUMINOUS_INTENSITY_C");
	    attributes.put("00002710-0000-1000-8000-00805f9b34fb", "GATT_UNIT_AREA_SQ_MTR");
	    attributes.put("00002711-0000-1000-8000-00805f9b34fb", "GATT_UNIT_VOLUME_CUBIC_MTR");
	    attributes.put("00002712-0000-1000-8000-00805f9b34fb", "GATT_UNIT_VELOCITY_MPS");
	    attributes.put("00002713-0000-1000-8000-00805f9b34fb", "GATT_UNIT_ACCELERATION_MPS_SQ");
	    attributes.put("00002714-0000-1000-8000-00805f9b34fb", "GATT_UNIT_WAVENUMBER_RM");
	    attributes.put("00002715-0000-1000-8000-00805f9b34fb", "GATT_UNIT_DENSITY_KGPCM");
	    attributes.put("00002716-0000-1000-8000-00805f9b34fb", "GATT_UNIT_SURFACE_DENSITY_KGPSM");
	    attributes.put("00002717-0000-1000-8000-00805f9b34fb", "GATT_UNIT_SPECIFIC_VOLUME_CMPKG");
	    attributes.put("00002718-0000-1000-8000-00805f9b34fb", "GATT_UNIT_CURRENT_DENSITY_APSM");
	    attributes.put("00002719-0000-1000-8000-00805f9b34fb", "GATT_UNIT_MAGNETIC_FIELD_STRENGTH");
	    attributes.put("0000271a-0000-1000-8000-00805f9b34fb", "GATT_UNIT_AMOUNT_CONCENTRATE_MPCM");
	    attributes.put("0000271b-0000-1000-8000-00805f9b34fb", "GATT_UNIT_MASS_CONCENTRATE_KGPCM");
	    attributes.put("0000271d-0000-1000-8000-00805f9b34fb", "GATT_UNIT_LUMINANCE_CPSM");


px}}.ps__rail-y:focus>.ps__thumb-y,.ps__rail-y.ps--clicking .ps__thumb-y{background-color:#999;background-color:var(--ps-thumb-hover-color);width:11px}@supports (-ms-overflow-style:none){.ps{overflow:auto!important}}@media screen and (-ms-high-contrast:active),(-ms-high-contrast:none){.ps{overflow:auto!important}}/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */

/**
 *  Default styles for xterm.js
 */

.xterm {
  position: relative;
  user-select: none;
  -ms-user-select: none;
  -webkit-user-select: none;
}

.xterm.focus,
.xterm:focus {
  outline: none;
}

.xterm .xterm-helpers {
  position: absolute;
  top: 0;
  /**
     * The z-index of the helpers must be higher than the canvases in order for
     * IMEs to appear on top.
     */
  z-index: 5;
}

.xterm .xterm-helper-textarea {
  padding: 0;
  border: 0;
  margin: 0;
  /* Move textarea out of the screen to the far left, so that the cursor is not visible */
  position: absolute;
  opacity: 0;
  left: -9999em;
  top: 0;
  width: 0;
  height: 0;
  z-index: -5;
  /** Prevent wrapping so the IME appears against the textarea at the correct position */
  white-space: nowrap;
  overflow: hidden;
  resize: none;
}

.xterm .composition-view {
  /* TODO: Composition position got messed up somewhere */
  background: #000;
  color: #fff;
  display: none;
  position: absolute;
  white-space: nowrap;


e four times and return match to input array', () => {
    expect(testData.loopCount(testData.dataArraySquare, libTr.rotate, 4))
      .toMatchObject(testData.dataArraySquare);
  });

  it('libTr.rotate will rotate one time and return match to input array', () => {
    expect(testData.loopCount(testData.dataArrayOffset, libTr.rotate, 1))
      .toMatchObject(testData.dataArrayOffsetOneRotate);
  });

  it('libTr.handleTransition rotate testImageArraySquare expect ', () => {
    const testImageArrayOffset = testData.imageArrayOffset;
    expect(libTr.handleTransitionMock(testImageArrayOffset, 'rotate', ((cb: any) => cb)))
      .toMatchObject(testData.imageArrayOffsetOneRotate);
  });
});
// All the types associated with the state from the db
export type Todo = {
  id: number;
  completed: boolean;
  text: string;
};
import { Injectable } from '@angular/core';
import { FormGroup, FormControl, Validators } from "@angular/forms";
import { Employee } from '../../shared/models/employee.model';
import { Observable } from 'rxjs';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { environment } from 'src/environments/environment';
import * as _ from 'lodash';

@Injectable({
  providedIn: 'root'
})
export class EmployeeService {

  constructor(private http:HttpClient) { }

form: FormGroup = new FormGroup({
  $key: new FormControl(null),
  employeeID: new FormControl(null),
  fullName: new FormControl('', Validators.required),
  email: new FormControl('', Validators.email),
  mobile: new FormControl('', [Validators.required, Validators.minLength(8)]),
  city: new FormControl(''),
  gender: new FormControl(1),
  departmentID: new FormControl(0),
  hireDate: new FormControl('', Validators.required),
  isPermanent: new FormControl(false)
});

initializeFormGroup(){
  this.form.setValue({
    $key: null,
    employeeID: null,
    fullName: '',
    email: '',
    mobile: '',
    city: '',
    gender: 1,
    departmentID: 0,
    hireDate: '',
    isPermanent: false
  });
}

getEmployeeList():Observable<Employee[]>{
  return this.http.get<Employee[]>(environment.apiURL+'/Employee');
}

addEmployee(){
  var body = {
    fullName: this.form.value.fullName,
    email: this.form.value.email,
    mobile: this.form.value.mobile,
    city: this.form.value.city,
    gender: this.form.value.gender,
    departmentID: this.form.value.departmentID,
    hireDate: this.form.value.hireDate,
    isPermanent: this.form.value.isPermanent
  };
  return this.http.post(environment.apiURL+'/Employee', body);
}

updateEmployee(employeeID){
  var body = {
    fullName: this.form.value.fullName,
    email: this.form.value.email,
    mobile: this.form.value.mobile,
    city: this.form.value.city,
    gender: this.form.value.gender,
    departmentID: this.form.value.departmentID,
    hireDate: this.form.value.hireDate,
    isPermanent: this.form.value.isPermanent
  };
  return this.http.put(environment.apiURL+'/Employee/'+employeeID, body);
}

populateForm(employee) {

  this.form.setValue(
    {
      $key: null,
      employeeID: employee.employeeID,
      fullName: employee.fullName,
      email: employee.email,


0&&(n=a,t=DC(e,a))),t===1))throw r=wp,nu(e,0),ts(e,n),An(e,ar()),r;switch(e.finishedWork=i,e.finishedLanes=n,t){case 0:case 1:throw Error(ae(345));case 2:Tl(e,yn,eo);break;case 3:if(ts(e,n),(n&130023424)===n&&(t=z2+500-ar(),10<t)){if(Sy(e,0)!==0)break;if(i=e.suspendedLanes,(i&n)!==n){sn(),e.pingedLanes|=e.suspendedLanes&i;break}e.timeoutHandle=fC(Tl.bind(null,e,yn,eo),t);break}Tl(e,yn,eo);break;case 4:if(ts(e,n),(n&4194240)===n)break;for(t=e.eventTimes,i=-1;0<n;){var o=31-ji(n);a=1<<o,o=t[o],o>i&&(i=o),n&=~a}if(n=i,n=ar()-n,n=(120>n?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*vX(n/1960))-n,10<n){e.timeoutHandle=fC(Tl.bind(null,e,yn,eo),n);break}Tl(e,yn,eo);break;case 5:Tl(e,yn,eo);break;default:throw Error(ae(329))}}}return An(e,ar()),e.callbackNode===r?_4.bind(null,e):null}function DC(e,t){var r=Rh;return e.current.memoizedState.isDehydrated&&(nu(e,t).flags|=256),e=By(e,t),e!==2&&(t=yn,yn=r,t!==null&&RC(t)),e}function RC(e){yn===null?yn=e:yn.push.apply(yn,e)}function gX(e){for(var t=e;;){if(t.flags&16384){var r=t.updateQueue;if(r!==null&&(r=r.stores,r!==null))for(var n=0;n<r.length;n++){var i=r[n],a=i.getSnapshot;i=i.value;try{if(!Xi(a(),i))return!1}catch{return!1}}}if(r=t.child,t.subtreeFlags&16384&&r!==null)r.return=t,t=r;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function ts(e,t){for(t&=~N2,t&=~v1,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var r=31-ji(t),n=1<<r;e[r]=-1,t&=~n}}function CD(e){if(ht&6)throw Error(ae(327));tf();var t=Sy(e,0);if(!(t&1))return An(e,ar()),null;var r=By(e,t);if(e.tag!==0&&r===2){var n=nC(e);n!==0&&(t=n,r=DC(e,n))}if(r===1)throw r=wp,nu(e,0),ts(e,t),An(e,ar()),r;if(r===6)throw Error(ae(345));return e.finishedWork=


5.65 3.5 8.27 4.08 8.42 2 17.77-1.52 22.76-8.56.42-.59.99-1.39 2.07-1.43 1.06-.02 1.69.71 2.14 1.26 6.5 8.75 13.34 6.25 23.04 1.44 7.29-3.83 14-10.08 19.37-18.06l.03-.04c4.86-6.83 5.36-16.34 1.23-23.12-.81-1.32-1.77-2.55-2.78-3.86-.3-.39-.6-.77-.9-1.16-1.19-1.55-1.14-2.98.17-4.37l.12-.11c4.19-3.7 5.71-7.69 4.54-11.88-1.21-4.73-3.02-9.13-5.37-13.11-4.5-7.61-11.22-13.98-19.43-18.44-4.54-2.72-9.87-3.4-15.05-1.96-4.07 1.04-7.56 3.11-10.71 6.35l-.4.42c-.8.83-1.49 1.55-2.61 1.55-1.16 0-1.86-.73-3.01-1.93l-.13-.13c-2.48-2.6-5.18-3.87-8.23-3.87h-.06Z' style='fill:%234a3726;stroke-width:0'/><path d='M82.59 83.33c-.87-1.76-3.88-4.56-4.51-6.42-1.09-2.58.35-5.6 2.96-6.61 1.21-.55 3.36-.57 4.63-.73.18-.06.03-.17-.39-.32-.99-.43-2.65-.74-3.34-1.68-.34-.8 3.07-1.61 2.47-1.83-1.32-.56-3.68-1.04-4.06-2.65.52-3.94 9.03-3.79 12.41-3.77 11.65.23 20.38 6.95 20.31 19.13-1.15 13.73-13.19 24.73-26.07 28.58-4.26 1.23-9.69 1.28-13.12-1.73-3.65-3.35-1.8-8.23-1.58-12.89.09-1.51.08-3.01 0-4.52-.15-3.3-2.16-11.94 3.87-9.53 2.63 1.07 4.59 3.88 6.42 4.99ZM47.83 46.08c.83 1.92 3.38 4.13 3.9 6.41.49 2.01-1.35 2.32-1.93 3.14-.47.98.32 2.43-1.33 3.27-1.15.56-2.85.63-4.02.79-.15.05 0 .12.39.25.27.1.64.23 1.03.39.61.27 1.32.55 1.79 1.01.92.83-2.51 1.66-2.06 1.94.39.23.87.35 1.33.58 3.93 1.66-.35 3.44-2.57 3.83-5.71.93-12.05.86-17.52-1.14-6.25-2.28-10.68-8.3-11.21-14.89-1.79-15.41 19.58-33.93 34.49-31.35 7.51 1.48 6.12 7 5.18 13.22-.2 2.08-.2 4.18-.06 6.27-.25 2.51 3.27 12.57-2.01 10.47-2.09-.87-3.83-3.32-5.38-4.2Zm32.37 7.24c-.41-1.29 2.62-3.65 2.85-4.24-1.36.6-3.88 2.65-5.71 2.85-


/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef mozilla_dom_SVGAnimateElement_h
#define mozilla_dom_SVGAnimateElement_h

#include "mozilla/dom/SVGAnimationElement.h"
#include "nsSMILAnimationFunction.h"

nsresult NS_NewSVGAnimateElement(nsIContent **aResult,
                                 already_AddRefed<nsINodeInfo> aNodeInfo);

namespace mozilla {
namespace dom {

class SVGAnimateElement MOZ_FINAL : public SVGAnimationElement
{
protected:
  SVGAnimateElement(already_AddRefed<nsINodeInfo> aNodeInfo);

  nsSMILAnimationFunction mAnimationFunction;
  friend nsresult
    (::NS_NewSVGAnimateElement(nsIContent **aResult,
                               already_AddRefed<nsINodeInfo> aNodeInfo));

  virtual JSObject* WrapNode(JSContext *aCx, JSObject *aScope) MOZ_OVERRIDE;

public:
  // nsIDOMNode
  virtual nsresult Clone(nsINodeInfo *aNodeInfo, nsINode **aResult) const;

  // SVGAnimationElement
  virtual nsSMILAnimationFunction& AnimationFunction();
};

} // namespace dom
} // namespace mozilla

#endif // mozilla_dom_SVGAnimateElement_h


ny = store.get('res-1');
    const res2: any = store.get('res-1');
    const res22: any = store.get('res-2');

    const foo1 = res1.foo;
    const foo2 = res1.foo;
    const bar1 = res1.foo.bar1;
    const bar2 = res1.foo.bar1;
    const bar22 = res22.foo.bar1;

    expect(res1[symbol.id]).toEqual(res2[symbol.id]);
    expect(res1.foo[symbol.id]).toEqual(res2.foo[symbol.id]);

    expect(foo1[symbol.id]).toEqual(foo2[symbol.id]);
    expect(bar1[symbol.id]).toEqual(bar2[symbol.id]);
    expect(bar22[symbol.id]).not.toEqual(bar2[symbol.id]);
  });

  it('should bypass any resource property by appending $ sign to the peroperty', () => {
    const res1: any = store.get('res-1');

    expect(res1.value$).toBeInstanceOf(BehaviorSubject);
    expect(res1.value).toEqual(initialState);

    expect(res1.foo.value$).toBeInstanceOf(BehaviorSubject);
    expect(res1.foo.value).toEqual(initialState.foo);
  });

  it('should update specific properties using update', () => {
    const res1: any = store.get('res-1');
    const newResLabel = 'res-label';
    const newBarLabel = 'baaar';
    const newFooLabel = 'foooo';

    expect(res1.value).toEqual(initialState);
    expect(res1.foo.value).toEqual(initialState.foo);
    expect(res1.foo.value.label).toEqual(initialState.foo.label);

    expect(res1.foo.bar.value).toEqual(initialState.foo.bar);
    expect(res1.foo.bar.value.label).toEqual(initialState.foo.bar.label);

    res1.update({
      label: newFooLabel
    });
    res1.foo.update({
      label: newFooLabel
    });
    res1.foo.bar.update({
      label: newBarLabel
    });

    expect(res1.value).not.toEqual(initialState);
    expect(res1.foo.value.label).toEqual(newFooLabel);
    expect(res1.foo.bar.value.label).toEqual(newBarLabel);
  });

  it('should be able to dispatch actions', () => {
    const res1: any = store.get('res-1');
    const newLabel = 'new value';
    const newLabel2 = 'new value 2';

    const setFooLabel = res => {
      res.foo.label = newLabel;
    };

    const setCustomLabel = value => res => {
      res.label = value;
    };

    res1.dispatch(setFooLabel);
    expect(res1.foo.label.value).toEqual(newLabel);

    res1.foo.dispatch(setCustomLabel(newLabel2));
    expect(res1.foo.label.value).toEqual(newLabel2);
  });

  it('should be able to dispatch async actions', async () => {
    const res1: any = store.get('res-1');
    const asyncNewLabel = 'new async value';

    const asyncSetLabelAction = res => {
      return new Promise(resolve =>
        setTimeout(() => {
          res.label = asyncNewLabel;
          resolve();
        }, 1000)
      );
    };

    await res1.foo.dispatch(asyncSetLabelAction);
    expect(res1.foo.label.value).toEqual(asyncNewLabel);
  });
});
import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse } from '@angular/common/http';
import { Observable, throwError } from 'rxjs';
import { retry, catchError } from 'rxjs/operators';
import { ApiResponse, ApiMessage, ApiMessageType } from '@angular-architecture/common


7766 }, -- Princess Theradras' Scepter
			},
		},
		{ -- MaraNamelesProphet
			name = AL["The Nameless Prophet"],
			npcID = 13718,
			DisplayIDs = {{9426}},
			AtlasMapFile = "CL_MaraudonEnt",
			AtlasMapFile_AL = "MaraudonEnt",
			AtlasMapBossID = "*A",
			ExtraList = true,
			specialType = "quest",
			[NORMAL_DIFF] = {
				{ 1,  17757 }, -- Amulet of Spirits
			},
		},
		{ -- MaraKhanKolk
			name = AL["Kolk"],
			npcID = 13742,
			DisplayIDs = {{4860}},
			AtlasMapFile = "CL_MaraudonEnt",
			AtlasMapFile_AL = "MaraudonEnt",
			AtlasMapBossID = "*1",
			ExtraList = true,
			specialType = "quest",
			[NORMAL_DIFF] = {
				{ 1,  17761 }, -- Gem of the First Khan
			},
		},
		{ -- MaraKhanGelk
			name = AL["Gelk"],
			npcID = 13741,
			DisplayIDs = {{9427}},
			AtlasMapFile = "CL_MaraudonEnt",
			AtlasMapFile_AL = "MaraudonEnt",
			AtlasMapBossID = "*2",
			ExtraList = true,
			specialType = "quest",
			[NORMAL_DIFF] = {
				{ 1,  17762 }, -- Gem of the Second Khan
			},
		},
		{ -- MaraKhanMagra
			name = AL["Magra"],
			npcID = 13740,
			DisplayIDs = {{9433}},
			AtlasMapFile = "CL_MaraudonEnt",
			AtlasMapFile_AL = "MaraudonEnt",
			AtlasMapBossID = "*3",
			ExtraList = true,
			specialType = "quest",
			[NORMAL_DIFF] = {
				{ 1,  17763 }, -- Gem of the Third Khan
			},
		},
	},
}

data["TheTempleOfAtal'Hakkar"] = {
	MapID = 1477,
	InstanceID = 109,
	AtlasModule = ATLAS_MODULE_NAME,
	AtlasMapID = "TheTempleOfAtal'Hakkar",
	AtlasMapFile = { "CL_TheSunkenTemple", "CL_TheSunkenTempleEnt" },
	AtlasMapFile_AL = { "TheSunkenTemple", "TheSunkenTempleEnt" },
	ContentType = DUNGEON_CONTENT,
	LoadDifficulty = NORMAL_DIFF,
	LevelRange = GetForVersion({45, 50, 60},{35, 47, 50}),
	items = {
		{ -- STBalconyMinibosses
			name = AL["Balcony Minibosses"],
			npcID = {5716, 5712, 5717, 5714, 5715, 5713},
			Level = GetForVersion({51, 52}, {459,50}),
			DisplayIDs = {{6701},{6699},{6707},{6700},{6702},{6698}},
			AtlasMapBossID = "C",
			[NORMAL_DIFF] = {
				{ 1,  10783 }, -- Atal'ai Spaulders
				{ 2,  10784 }, -- Atal'ai Breastplate
				{ 3,  10787 }, -- Atal'ai Gloves
				{ 5,  10788 }, -- Atal'ai Girdle
				{ 6,  10785 }, -- Atal'ai Leggings
				{ 7,  10786 }, -- Atal'ai Boots
				{ 9,  20606 }, -- Amber Voodoo Feather
				{ 10, 20607 }, -- Blue Voodoo Feather
				{ 11, 20608 }, -- Green Voodoo Feather
			},
		},
		{ -- STAtalalarion
			name = AL["Atal'alarion"],
			npcID = 8580,
			Level = GetForVersion


e-3,
.cm-s-material-ocean .cm-type {
  color: #f07178;
}

.cm-s-material-ocean .cm-builtin {
  color: #FFCB6B;
}

.cm-s-material-ocean .cm-atom {
  color: #F78C6C;
}

.cm-s-material-ocean .cm-number {
  color: #FF5370;
}

.cm-s-material-ocean .cm-def {
  color: #82AAFF;
}

.cm-s-material-ocean .cm-string {
  color: #C3E88D;
}

.cm-s-material-ocean .cm-string-2 {
  color: #f07178;
}

.cm-s-material-ocean .cm-comment {
  color: #464B5D;
}

.cm-s-material-ocean .cm-variable {
  color: #f07178;
}

.cm-s-material-ocean .cm-tag {
  color: #FF5370;
}

.cm-s-material-ocean .cm-meta {
  color: #FFCB6B;
}

.cm-s-material-ocean .cm-attribute {
  color: #C792EA;
}

.cm-s-material-ocean .cm-property {
  color: #C792EA;
}

.cm-s-material-ocean .cm-qualifier {
  color: #DECB6B;
}

.cm-s-material-ocean .cm-variable-3,
.cm-s-material-ocean .cm-type {
  color: #DECB6B;
}

.cm-s-material-ocean .cm-error {
  color: rgba(255, 255, 255, 1.0);
  background-color: #FF5370;
}

.cm-s-material-ocean .CodeMirror-matchingbracket {
  text-decoration: underline;
  color: white !important;
}
/*

    Name:       dracula
    Author:     Michael Kaminsky (http://github.com/mkaminsky11)

    Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)

*/

.cm-s-dracula.CodeMirror, .cm-s-dracula .CodeMirror-gutters {
  background-color: #282a36 !important;
  color: #f8f8f2 !important;
  border: none;
}
.cm-s-dracula .CodeMirror-gutters { color: #282a36; }
.cm-s-dracula .CodeMirror-cursor { border-left: solid thin #f8f8f0; }
.cm-s-dracula .CodeMirror-linenumber { color: #6D8A88; }
.cm-s-dracula .CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
.cm-s-dracula .CodeMirror-line::selection, .cm-s-dracula .CodeMirror-line > span::selection, .cm-s-dracula .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-dracula .CodeMirror-line::-moz-selection, .cm-s-dracula .CodeMirror-line > span::-moz-selection, .cm-s-dracula .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-dracula span.cm-comment { color: #6272a4; }
.cm-s-dracula span.cm-string, .cm-s-dracula span.cm-string-2 { color: #f1fa8c; }
.cm-s-dracula span.cm-number { color: #bd93f9; }
.cm-s-dracula span.cm-variable { color: #50fa7b; }
.cm-s-dracula span.cm


 service.create({ list: list$.asObservable() });
    tick();
    expect(results.length).toEqual(0);

    list$.next(range(1, 10));
    tick();
    expect(results.length).toEqual(1);

    list$.next(range(1, 5));
    tick();
    expect(results.length).toEqual(2);

    const [initialEmit, nextEmit] = results;

    expect(initialEmit.sorting).toEqual({ key: null, order: 'asc' });
    expect(initialEmit.page.length).toEqual(10);
    expect(initialEmit.pagination.listSize).toEqual(10);
    expect(initialEmit.pagination.page.current).toEqual(1);
    expect(initialEmit.pagination.page.total).toEqual(1);
    expect(initialEmit.pagination.page.size).toEqual(10);
    expect(initialEmit.pagination.pages.length).toEqual(1);
    expect(initialEmit.pagination.disabled.next).toEqual(true);
    expect(initialEmit.pagination.disabled.prev).toEqual(true);

    expect(nextEmit.sorting).toEqual({ key: null, order: 'asc' });
    expect(nextEmit.page.length).toEqual(5);
    expect(nextEmit.pagination.listSize).toEqual(5);
    expect(nextEmit.pagination.page.current).toEqual(1);
    expect(nextEmit.pagination.page.total).toEqual(1);
    expect(nextEmit.pagination.page.size).toEqual(5);
    expect(nextEmit.pagination.pages.length).toEqual(1);
    expect(nextEmit.pagination.disabled.next).toEqual(true);
    expect(nextEmit.pagination.disabled.prev).toEqual(true);

    expect(spy).toHaveBeenCalledTimes(2);
  }));

  it('should create a data set handle page updates', fakeAsync(() => {
    const list = range(1, 10);
    const pageSize = 2;

    const results: ListResult<any>[] = [];
    service.result$.subscribe(r => results.push(r));

    service.create({ list, pageSize });
    service.nextPage();
    service.goToPage(5);

    expect(results.length).toEqual(3);
    const [initialEmit, nextPageEmit, goToPageEmit] = results;

    /* Initial chunk */
    expect(initialEmit.sorting).toEqual({ key: null, order: 'asc' });
    expect(initialEmit.page.length).toEqual(pageSize);
    expect(initialEmit.pagination.listSize).toEqual(10);
    expect(initialEmit.pagination.page.current).toEqual(1);
    expect(initialEmit.pagination.page.total).toEqual(5);
    expect(initialEmit.pagination.page.size).toEqual(pageSize);
    expect(initialEmit.pagination.pages.length).toEqual(5);
    expect(initialEmit.pagination.disabled.next).toEqual(false);
    expect(initialEmit.pagination.disabled.prev).toEqual(true);

    /* Next Page */
    expect(nextPageEmit.sorting).toEqual({ key: null, order: 'asc' });
    expect(nextPageEmit.page).toEqual([3, 4]);
    expect(nextPageEmit.pagination.page.current).toEqual(2);
    expect(nextPageEmit.pagination.disabled.next).toEqual(false);
    expect(nextPageEmit.pagination.disabled.prev).toEqual(false);

    /* Go to page */
    expect(goToPageEmit.sorting).toEqual({ key: null, order: 'asc' });
    expect(goToPageEmit.page).toEqual([9, 10]);
    expect(goToPageEmit.pagination.page.current).toEqual(5);
    expect(goToPageEmit.pagination.disabled.next).toEqual(true);
    expect(goToPageEmit.pagination.disabled.prev).toEqual(


""": 53136,
  r"""lisinopril""": 53137,
  r"""lute""": 53138,
  r"""footballing""": 53139,
  r"""applebee""": 53140,
  r"""yag""": 53141,
  r"""ibf""": 53142,
  r"""watchtower""": 53143,
  r"""hollowed""": 53144,
  r"""csk""": 53145,
  r"""alludes""": 53146,
  r"""iw""": 53147,
  r"""lovett""": 53148,
  r"""extrovert""": 53149,
  r"""scorm""": 53150,
  r"""edb""": 53151,
  r"""ashwin""": 53152,
  r"""localisation""": 53153,
  r"""lhs""": 53154,
  r"""rearrangement""": 53155,
  r"""bonito""": 53156,
  r"""encampment""": 53157,
  r"""limping""": 53158,
  r"""ahn""": 53159,
  r"""twirling""": 53160,
  r"""patten""": 53161,
  r"""outposts""": 53162,
  r"""ringling""": 53163,
  r"""kettlebells""": 53164,
  r"""agc""": 53165,
  r"""truely""": 53166,
  r"""sau""": 53167,
  r"""mello""": 53168,
  r"""ricciardo""": 53169,
  r"""fertilisers""": 53170,
  r"""6200""": 53171,
  r"""remaking""": 53172,
  r"""anemone""": 53173,
  r"""ridgeway""": 53174,
  r"""glencore""": 53175,
  r"""kitsap""": 53176,
  r"""brt""": 53177,
  r"""1030""": 53178,
  r"""sportster""": 53179,
  r"""inoperable""": 53180,
  r"""rsd""": 53181,
  r"""paro""": 53182,
  r"""sunnah""": 53183,
  r"""moyes""": 53184,
  r"""madoff""": 53185,
  r"""sculptured""": 53186,
  r"""eavesdropping""": 53187,
  r"""distorts""": 53188,
  r"""luiz""": 53189,
  r"""floodlights""": 53190,
  r"""photoshoots""": 53191,
  r"""advil""": 53192,
  r"""webrtc""": 53193,
  r"""narrators""": 53194,
  r"""halsey""": 53195,
  r"""саn""": 53196,
  r"""reintroduce""": 53197,
  r"""dawg""": 53198,
  r"""ugliest""": 53199,
  r"""revitalise""": 53200,
  r"""000th""": 53201,
  r"""heartwood""": 53202,
  r"""ghd""": 53203,
  r"""glynn""": 53204,
  r"""roadtrip""": 53205,
  r"""colloquial""": 53206,
  r"""gpio""": 53207,
  r"""starfleet""": 53208,
  r"""969""": 53209,
  r"""haggle""": 53210,
  r"""bowery""": 53211,
  r"""984""": 53212,
  r"""riba""": 53213,
  r"""scribd""": 53214,
  r"""tpm""": 53215,
  r"""amal""": 53216,
  r"""aisha""": 53217,
  r"""tantamount""": 53218,
  r"""resurgent""": 53219,
  r"""smudges""": 53220,
  r"""rocha""": 53221,
  r"""roscommon""": 53222,
  r"""forceps""": 53223,
  r"""


ealta vasemmalle (RTL)","menu":"Muokkaa linkkiä","name":"Nimi","noAnchors":"(Ei ankkureita tässä dokumentissa)","noEmail":"Kirjoita sähköpostiosoite","noUrl":"Linkille on kirjoitettava URL","other":"<muu>","popupDependent":"Riippuva (Netscape)","popupFeatures":"Popup ikkunan ominaisuudet","popupFullScreen":"Täysi ikkuna (IE)","popupLeft":"Vasemmalta (px)","popupLocationBar":"Osoiterivi","popupMenuBar":"Valikkorivi","popupResizable":"Venytettävä","popupScrollBars":"Vierityspalkit","popupStatusBar":"Tilarivi","popupToolbar":"Vakiopainikkeet","popupTop":"Ylhäältä (px)","rel":"Suhde","selectAnchor":"Valitse ankkuri","styles":"Tyyli","tabIndex":"Tabulaattori indeksi","target":"Kohde","targetFrame":"<kehys>","targetFrameName":"Kohdekehyksen nimi","targetPopup":"<popup ikkuna>","targetPopupName":"Popup ikkunan nimi","title":"Linkki","toAnchor":"Ankkuri tässä sivussa","toEmail":"Sähköposti","toUrl":"Osoite","toolbar":"Lisää linkki/muokkaa linkkiä","type":"Linkkityyppi","unlink":"Poista linkki","upload":"Lisää tiedosto"},"list":{"bulletedlist":"Luettelomerkit","numberedlist":"Numerointi"},"maximize":{"maximize":"Suurenna","minimize":"Pienennä"},"table":{"border":"Rajan paksuus","caption":"Otsikko","cell":{"menu":"Solu","insertBefore":"Lisää solu eteen","insertAfter":"Lisää solu perään","deleteCell":"Poista solut","merge":"Yhdistä solut","mergeRight":"Yhdistä oikealla olevan kanssa","mergeDown":"Yhdistä alla olevan kanssa","splitHorizontal":"Jaa solu vaakasuunnassa","splitVertical":"Jaa solu pystysuunnassa","title":"Solun ominaisuudet","cellType":"Solun tyyppi","rowSpan":"Rivin jatkuvuus","colSpan":"Solun jatkuvuus","wordWrap":"Rivitys","hAlign":"Horisontaali kohdistus","vAlign":"Vertikaali kohdistus","alignBaseline":"Alas (teksti)","bgColor":"Taustan väri","borderColor":"Reunan väri","data":"Data","header":"Ylätunniste","yes":"Kyllä","no":"Ei","invalidWidth":"Solun leveyden täytyy olla numero.","invalidHeight":"Solun korkeuden täytyy olla numero.","invalidRowSpan":"Rivin jatkuvuuden täytyy olla kokonaisluku.","invalidColSpan":"Solun jatkuvuuden täytyy olla kokonaisluku.","chooseColor":"Valitse"},"cellPad":"Solujen sisennys","cellSpace":"Solujen väli","column":{"menu":"Sarake","insertBefore":"Lisää sarake vasemmalle","insertAfter":"Lisää sarake oikealle","deleteColumn":"Poista sarakkeet"},"columns":"Sarakkeet","deleteTable":"Poista taulu","headers":"Ylätunnisteet","headersBoth":"Molemmat","headersColumn":"Ensimmäinen sarake","headersNone":"Ei","headersRow":"Ensimmäinen rivi","invalidBorder":"Reunan koon täytyy olla numero.","invalidCellPadding":"Solujen sisennyksen täytyy olla numero.","invalidCellSpacing":"Solujen välin täytyy olla numero.","invalidCols":"Sarakkeiden määrän täytyy olla suurempi kuin 0.","invalidHeight":"Taulun korkeuden täyty


Way; } }

        protected override void DoSubscribeForValueChange(object target)
        {
            if (this.unityEvent == null || target == null)
                return;

            unityEvent.AddListener(OnValueChanged);
        }

        protected override void DoUnsubscribeForValueChange(object target)
        {
            if (unityEvent != null)
                unityEvent.RemoveListener(OnValueChanged);
        }

        private void OnValueChanged(TValue value)
        {
            this.RaiseValueChanged();
        }
    }
}


/			damageNs       : { 14, 21 },
        //			cooldownN : 0.25,
        //			critChanceN : .1,
        //			rangeN : 10,
        //			dropLikelihoodN : 0.5,
        //			flavor : FlavorEnum.Tool,
        //		 },

        {
            idS : "DragonBolt",
            readableNameS   : "Magic Bolt",
            namePerLevel : { [1] : "Bolt" },
            namePlural: false,
            minLevelN : 1,
            useTypeS : "held",
            equipType : EquipTypeEnum.Spell, // dps 17 but slow
            statReqS       : "willN",
            skinType  : SkinTypeEnum.MagicBolt,
            baseToolS : "MagicBolt",
            damageNs       : [ 11, 18 ],
            cooldownN: 1,
            rangeN: 40,
            critChanceN: 0.04,
//            effectStrengthN : 20,
//            effectBonusPerLevelN : 2,
            monsterStartGearBiasN : 1,
            dropLikelihoodN : 0,
            walkSpeedMulN   : 1,
            jumpPowerMulN: 1,
            priceMulN: 1.5,
            imageId : "rbxassetid://1495371626",
        },
        {
            idS : "NecroBolt",
            readableNameS   : "Necro Bolt",
            namePerLevel : { [1] : "Bolt" },
            namePlural: false,
            minLevelN : 1,
            useTypeS : "held",
            equipType : EquipTypeEnum.Spell,
            statReqS       : "willN",
            skinType  : SkinTypeEnum.MagicBolt,
            baseToolS : "MagicBolt",
            damageNs       : [ 11, 18 ],  // balanced against longbow
            cooldownN: 1,
            rangeN: 40,
            critChanceN: 0.04,
            walkSpeedMulN   : 0.6,
            jumpPowerMulN: 1,

//            effectStrengthN : 20,
//            effectBonusPerLevelN : 2,
            monsterStartGearBiasN : 1,
            dropLikelihoodN : 0,
            priceMulN: 1.5,
            imageId : "rbxassetid://1495371626",
        },
        {
            idS             : "MagicBolt",
            readableNameS   : "Magic Bolt",
            namePerLevel : { [1] : "Bolt" },
            namePlural: false,
            minLevelN : 1,
            useTypeS : "held",
            equipType : EquipTypeEnum.Spell,
            statReqS : "willN",
            skinType  : SkinTypeEnum.MagicBolt,
            baseToolS : "MagicBolt",
            damageNs  : [ 16, 27 ],  // 22-38 was one-shotting level 1 gremlins; but since these #s I've made gremlins a touch more powerful though
            cooldownN: 1,
            critChanceN: 0.04,
        //			effectStrengthN : 20,
        //			effectBonusPerLevelN : 2,
            rangeN: 90,
            manaCostN : 7,                       // 10 too high, 5 a little too low
            manaCostPerLevelN : 1.5,
            monsterStartGearBiasN : 1,
            dropLikelihoodN : 1,
            walkSpeedMulN   : 1,
            jumpPowerMulN: 1,
            priceMulN: 1.5,
            imageId : "rbxassetid://1495371626",
        },
        {
            idS             : "MagicBarrier",
            readableNameS   : "Magic Barrier",
            namePerLevel : { [1] : "Magic Bar


      move.w #$3E,-(sp)
      trap #1
      addq.l #4,sp
      rts

code  dc.b 46,28,47,48,49,50,51,32,34,35,46,46,27,33,26,46
      dc.b 36,37,38,39,40,41,42,43,44,45
      dc.b 29,30,46,46,46,31,46,00,01,02,03,04,05,06,07,08,09
      dc.b 10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,52

      even

message dc.b " "
	DC.B "   HELLO, THIS GAME WAS DEALED BY Z U U L( S T B L O R D ). THE MEMBERS OF ZUUL ARE : BOSS, STBLORD, MAJOR, MEGABLAST, SNOOKER, NAZGUL, VYPER, PUMA, DEF JEF, DJ MASTER JAY, FREEDY, JOKER, GOLD NINJA, BEESTY, SNAKE, 007ST, MAVERICK, CAPTAIN "

	DC.B " BLOOD, J-C, AND THE OTHERS MEMBERS OF ZUUL. GIGA MEGA GREETINGS TO : EMPIRE (SPECIALLY HAWK), REPLICANTS ( DOM, R.AL, SNAKE, KILLERSOFT, FURY...), REBELS (ILLEGAL), BLACK-KNIGHT. NORMAL GREETINGS TO :"
	DC.B " TOXIC, SECTOR 99, STCNX, CONSTELLATION, TCB, TBC, LES NULS, TNT-CREW, L16, APPOLON, COCA, EAGLE, EISTEIN, B.O.S.S., MCA, MDK, AND YOU, OF COURSE."
	DC.B " I LIKE THE - S T E -  BYE......BYE..... "
	DC.B " GEM (HAHAHA) LES PORTE-JARRETELLES ET LES CULOTTES EN SOIE....!!!!    HAHAHHAHAHHAHHAH"                 "
        dc.b "["
       even
fmess


a256 as digest::Digest>::OutputSize> = hasher.result();
        let mut rwd = [9u8; RWD_LEN];
        rwd.copy_from_slice(&hex.to_vec()[..RWD_LEN]);
        Ok(rwd)
    }
}

#[derive(Debug, Copy, Clone)]
pub struct OprfProver {
    key: OprfKey,
}

impl OprfProver {
    pub fn new(key: OprfKey) -> Self {
        OprfProver { key }
    }

    // returns the (key's pub key, and the signed blinded output)
    pub fn sign(
        &mut self,
        input: CompressedRistretto,
    ) -> Result<(CompressedRistretto, CompressedRistretto), TokenError> {
        let output = self.key.sign(
            input
                .decompress()
                .ok_or(TokenError(InternalError::DecompressionError))?,
        );
        Ok((self.key.pub_key(), output.compress()))
    }

    // consumes; don't allow key to be reused
    pub fn return_key(self) -> OprfKey {
        self.key
    }
}
<gh_stars>1-10
use font_types::{Version16Dot16, BigEndian};

const VERSION_0_5: Version16Dot16 = Version16Dot16::new(0, 5);
const VERSION_1_0: Version16Dot16 = Version16Dot16::new(1, 0);

font_types_macro::tables! {
    Maxp05 {
         version: BigEndian<Version16Dot16>,
         num_glyphs: BigEndian<u16>,
    }

    Maxp10 {
         version: BigEndian<Version16Dot16>,
         num_glyphs: BigEndian<u16>,
         max_points: BigEndian<u16>,
         max_contours: BigEndian<u16>,
         max_composite_points: BigEndian<u16>,
    }

    #[format(Version16Dot16)]
    enum Maxp {
        #[version(VERSION_0_5)]
        Version0_5(Maxp05),
        #[version(VERSION_1_0)]
        Version1_0(Maxp10),
    }
}

font_types_macro::tables! {
    One {
         one: BigEndian<u16>,
    }

    #[format(u16)]
    enum OneOrTwo {
        #[version(1)]
        One(One),
    }

    #[repr(u16)]
    enum EncodingId {
        Up = 1,
        Down = 2,
        Big = 3,
    }
}

fn main() {
    let encoding = EncodingId::new(1);
    assert_eq!(encoding, EncodingId::Up);
}
<reponame>kobby-pentangeli/svm<filename>crates/codec/src/section/sections/mod.rs
mod api;
mod code;
mod ctors;
mod data;
mod deploy;
mod header;
mod schema;
<gh_stars>100-1000
/* diosix hypervisor's physical CPU core management
 *
 * (c) <NAME>, 2019-2021.
 *
 * See LICENSE for usage and copying.
 */

/* Physical CPUs get their own private heaps to manage. Crucially, allocated memory
blocks can be shared by other CPUs. Any CPU can free any block, returning
it to its owner's heap pool. When allocating, a CPU can only draw from
its own heap, reusing any blocks freed by itself or other cores.

The hypervisor layer is unlikely to do much active allocation
so it's OK to keep it really simple for now. */

use super::lock::Mutex;
use hashbrown::hash_map::HashMap;
use platform::physmem::PhysMemSize;
use platform::cpu::{SupervisorState, CPUFeatures};
use platform::timer;
use super::vcore::{VirtualCore, VirtualCoreCanonicalID};
use super::scheduler::ScheduleQueues;
use super::capsule::{self


Term but also add 4 to ensure it is always >0
				expectedLastTerm = nextLastTerm + uint64(float64(nextLastTerm-currentLastTerm)*float64(ctx.Precision)/float64(precChange)) + 4
				currentLastTerm = nextLastTerm
				break
			}

			// if for some reason we haven't seen the expected change
			// it could be because the markValue1 and markValue2 are extremely different
			// so we'll breakout and hope the next iteration is better
			// worse case it's not and these continues until the value converges
			// in which case markValue1 and markValue2 will at some point be equal
			if nextLastTerm-currentLastTerm > 16 {
				// save the current state
				current = next

				// and set the expected and current to nextLastTerm
				expectedLastTerm = nextLastTerm
				currentLastTerm = nextLastTerm
				break
			}
		}

		// now we have what we expect to be way closer to the true n
		if currentLastTerm != expectedLastTerm {
			tmp.calculate(ctx, currentLastTerm, expectedLastTerm, A, P, B, Q)
			current.combine(ctx, current, tmp)
		}

		current.term(markValue1, ctx)

		currentLastTerm = expectedLastTerm
		nextLastTerm = currentLastTerm
		next = current
	}
}

func (s *apbqBinarySplitState) calculate(ctx Context, start, end uint64, A, P, B, Q SplitFunc) {
	switch n1 := start; end - start {
	case 1:
		s.B.Copy(B(n1))
		s.P.Copy(P(n1))
		s.Q.Copy(Q(n1))
		ctx.Mul(s.T, A(n1), s.P /* P1 */)
	case 2:
		n2 := n1 + 1

		// B = B1 * B2
		// P = P1 * P2
		// Q = Q1 * Q2
		// T =
		//   t0 = (A1 *    * B2 * P1 *          Q2) +
		//   t1 = (A2 * B1 *    * P1 * P2 *       )

		s.P.Copy(P(n1))
		s.B.Copy(B(n2))
		s.Q.Copy(Q(n2))

		// T = A1*P1*B2*Q2 + B1*A2*P12
		// Compute the first half of T.
		ctx.Mul(s.T, A(n1), s.P /* P1 */)
		ctx.Mul(s.T, s.T, s.B /* B2 */)
		ctx.Mul(s.T, s.T, s.Q /* Q2 */)

		// We no longer need Q, so compute Q.
		ctx.Mul(s.Q, s.Q, Q(n1))

		// We no longer need B2, so grab B1 and then compute B.
		B1 := B(n1)
		ctx.Mul(s.B, s.B, B1)

		// We no longer need P1 or P2, so calculate P12 which is needed for the
		// second half of T.
		ctx.Mul(s.P, s.P, P(n2))

		// Finish computing T.
		t1 := new(Big)
		ctx.Mul(t1, B1, A(n2))


/* SPDX-License-Identifier: BSD-2-Clause */

#ifndef SRC_PKCS11_MUTEX_H_
#define SRC_PKCS11_MUTEX_H_
#include "config.h"
#include <assert.h>

#include "log.h"
#include "pkcs11.h"
#include "utils.h"

/**
 * Set's the mutex handlers. The mutex handlers default to internal
 * pthread mutexes unless specifically set, or cleared by setting NULL.
 * @param create
 *  The handler for creating a MUTEX.
 * @param destroy
 *  The handler for destroying a MUTEX.
 * @param lock
 *  The handler for locking a MUTEX.
 * @param unlock
 *  The handler for unlocking a MUTEX.
 */
void mutex_set_handlers(CK_CREATEMUTEX create,
        CK_DESTROYMUTEX destroy,
        CK_LOCKMUTEX lock,
        CK_UNLOCKMUTEX unlock);

/**
 * Allocates and initializes a mutex.
 * @param mutex
 *  The pointer to store the mutext at.
 * @return
 *  CKR_OK on success.
 */
CK_RV mutex_create(void **mutex);

/**
 * Deallocates and destroys a mutex.
 * @param mutex
 *  The mutex to deallocate.
 * @return
 *  CKR_OK on success.
 */
CK_RV mutex_destroy(void *mutex);

/**
 * locks a mutex.
 * @param mutex
 *  The mutex to lock.
 * @return
 *  CKR_OK on success.
 */
CK_RV mutex_lock(void *mutex);

/**
 * unlocks a mutex.
 * @param mutex
 *  The mutex to unlock.
 * @return
 *  CKR_OK on success.
 */
CK_RV mutex_unlock(void *mutex);

static inline void _mutex_lock_fatal(void *mutex) {

    CK_RV rv = mutex_lock(mutex);
    assert(rv == CKR_OK);
    UNUSED(rv);
}

static inline void _mutex_unlock_fatal(void *mutex) {

    CK_RV rv = mutex_unlock(mutex);
    assert(rv == CKR_OK);
    UNUSED(rv);
}

#ifndef NDEBUG
/*
 * debugging lock macros, the LOGV is on the top line to report lineno correctly
 */
#define mutex_lock_fatal(mutex) do { LOGV("LOCK(%p)-attempt", mutex); \
        _mutex_lock_fatal(mutex); \
        LOGV("LOCK(%p)-aquired", mutex); \
    } while (0)

#define mutex_unlock_fatal(mutex) do { LOGV("UNLOCK(%p)-attempt", mutex); \
        _mutex_unlock_fatal(mutex); \
        LOGV("UNLOCK(%p)-released", mutex); \
    } while (0)
#else
#define mutex_lock_fatal(mutex) _mutex_lock_fatal(mutex)
#define mutex_unlock_fatal(mutex) _mutex_unlock_fatal(mutex)
#endif
#endif /* SRC_PKCS11_MUTEX_H_ */


- car collision near Lomira, Wisconsin. At the time of his death, Mauthe was vice president of the Northern Casket Company.",
        "triples": "<Carlton W. Mauthe; full name; Carlton William Mauthe>\n<Carlton W. Mauthe; date of birth; April 18, 1907>\n<Carlton W. Mauthe; date of death; October 28, 1959>\n<Carlton W. Mauthe; nationality; American>\n<Carlton W. Mauthe; occupation; politician and businessman>\n<Carlton W. Mauthe; place of birth; Fond du Lac, Wisconsin>\n<Carlton W. Mauthe; high school education; Fond du Lac High School>\n<Carlton W. Mauthe; institution he attended after high school; Babson Institute in Wellesley, Massachusetts>\n<Carlton W. Mauthe; position; executive in typewriter and refrigerator businesses>\n<Carlton W. Mauthe; political position; served in the Wisconsin State Assembly from 1929 to 1933 and was a Republican>\n<Carlton W. Mauthe; position in the commission; first chairman of Wisconsin Conservation Commission>\n<Carlton W. Mauthe; cause of death; injuries suffered from a two-car collision near Lomira, Wisconsin>\n<Carlton W. Mauthe; place of death; a hospital in Fond du Lac, Wisconsin>\n<Carlton W. Mauthe; position at the time of his death; vice president of the Northern Casket Company>",
    },
    {
        "title": "Matt Corboy",
        "text": "Matt Corboy( born June 4, 1973) is an American actor. He has appeared in both films and television series.",
        "triples": "<Matt Corboy; date of birth; June 4, 1973>\n<Matt Corboy; nationality; American>\n<Matt Corboy; occupation; actor>\n<Matt Corboy; the types of media in which he has appeared; films and television series>",
    },
    {
        "title": "Wale Adebanwi",
        "text": "Wale Adebanwi( born 1969) is a Nigerian- born first Black Rhodes Professor at St Antony's College, Oxford.",
        "triples": "<Wale Adebanwi; year of birth; 1969>\n<Wale Adebanwi; nationality; Nigerian>\n<Wale Adebanwi; position; first Black Rhodes Professor at St Antony's College, Oxford>",
    },
    {
        "title": "Richard Martini",
        "text": "Richard Martini( born 12 March 1955) is an American film director, producer, screenwriter and freelance journalist.",
        "triples": "<Richard Martini; date of birth; 12 March 1955>\n<Richard Martini; nationality; American>\n<Richard Martini; occupation; film director, producer, screenwriter and freelance journalist>",
    },
    {
        "title": "Brian Kennedy (gallery director)",
        "text": "Brian Patrick Kennedy( born 5 November 1961) is an Irish- born art museum director who has worked in Ireland and Australia, and now lives and works in the United States. He is currently the director of the Peabody Essex Museum. He was the director of the Toledo Museum of Art in Ohio from 2010 to 2019. He was the director of the Hood Museum of Art from 2005 to 2010, and the National Gallery of Australia( Canberra) from 1997- 2004.",
        "triples": "<Brian Kennedy (gallery director


  }

  // 删除sqlite的db文件（初始化数据库操作中那个path的值）
  Future<void> deleteDB() async {
    print("开始删除內嵌的 sqlite User db文件，db文件地址：$userDbFilePath");

    // 先删除，再重置，避免仍然存在其他线程在访问数据库，从而导致删除失败
    await deleteDatabase(userDbFilePath);

    // 删除db或者关闭db都需要重置db为null，
    // 否则后续会保留之前的连接，以致出现类似错误：Unhandled Exception: DatabaseException(database_closed 5)
    // https://stackoverflow.com/questions/60848752/delete-database-when-log-out-and-create-again-after-log-in-dart
    _database = null;
  }

  // 显示db中已有的table，默认的和自建立的
  void showTableNameList() async {
    Database db = await database;
    var tableNames = (await db.query(
      'sqlite_master',
      where: 'type = ?',
      whereArgs: ['table'],
    )).map((row) => row['name'] as String).toList(growable: false);

    print("User DB中拥有的表名:------------");
    print(tableNames);
  }

  // 导出所有数据
  Future<void> exportDatabase() async {
    // 获取应用文档目录路径
    Directory appDocDir = await getApplicationDocumentsDirectory();
    // 创建或检索 db_export 文件夹
    var tempDir = await Directory(p.join(appDocDir.path, "db_export")).create();

    // 打开数据库
    Database db = await database;

    // 获取所有表名
    List<Map<String, dynamic>> tables = await db.rawQuery(
      "SELECT name FROM sqlite_master WHERE type='table'",
    );

    // 遍历所有表
    for (Map<String, dynamic> table in tables) {
      String tableName = table['name'];
      // 不是自建的表，不导出
      if (!tableName.startsWith("ff_")) {
        continue;
      }

      String tempFilePath = p.join(tempDir.path, '$tableName.json');

      // 查询表中所有数据
      List<Map<String, dynamic>> result = await db.query(tableName);

      // 将结果转换为JSON字符串
      String jsonStr = jsonEncode(result);

      // 创建临时导出文件
      File tempFile = File(tempFilePath);

      // 将JSON字符串写入临时文件
      await tempFile.writeAsString(jsonStr);

      // print('表 $tableName 已成功导出到：$tempFilePath');
    }
  }

  ///
  ///  Helper 的相关方法
  ///

  ///***********************************************/
  /// user 的相关操作
  ///

  // 查询用户
  // ？？？现在就是显示登录用户信息，用户密码登录成功之后记住信息？(缓存还不太懂，这里就账号密码id查询)
  Future<User?> queryUser({
    int? userId,
    String? userName,
    String? password,
  }) async {
    Database db = await database;

    var where = [];
    var whereArgs = [];

    if (userId != null) {
      where.add(" user_id = ? ");
      whereArgs.add(userId);
    }
    if (userName != null) {
      where.add(" user_name = ? ");
      whereArgs.add(userName);
    }
    if (password != null) {
      where.add(" password = ? ");
      whereArgs.add(password);
    }


spaceRoot();

    newFile('$testPackageLibPath/a.dart', '''
var foo01 = 0;
''');

    newFile('$testPackageLibPath/b.dart', '''
var foo02 = 0;
''');

    var response = await _getTestCodeSuggestions('''
import 'a.dart';
import 'b.dart';

void f() {
  foo0^
}
''');

    assertResponseText(response, r'''
replacement
  left: 4
suggestions
  foo01
    kind: topLevelVariable
    isNotImported: null
    libraryUri: package:test/a.dart
  foo02
    kind: topLevelVariable
    isNotImported: null
    libraryUri: package:test/b.dart
''');
  }

  Future<void> test_unprefixed_imported_withPrefix_class() async {
    await _configureWithWorkspaceRoot();

    var response = await _getTestCodeSuggestions('''
import 'dart:math' as math;

void f() {
  Rand^
}
''');

    printerConfiguration.filter = (suggestion) {
      return suggestion.isClass;
    };

    // No suggestion without the `math` prefix.
    assertResponseText(response, r'''
replacement
  left: 4
suggestions
  math.Random
    kind: class
    isNotImported: null
    libraryUri: dart:math
''');
  }

  Future<void> test_unprefixed_sorts_byScore() async {
    await _configureWithWorkspaceRoot();

    var response = await _getTestCodeSuggestions(r'''
var fooAB = 0;
var fooBB = 0;

void f() {
  fooB^
}
''');

    printerConfiguration
      ..filter = (suggestion) {
        return suggestion.completion.startsWith('foo');
      }
      ..sorting = printer.Sorting.asIs
      ..withRelevance = true;

    // `fooBB` has better score than `fooAB` - prefix match
    assertResponseText(response, r'''
replacement
  left: 4
suggestions
  fooBB
    kind: topLevelVariable
    isNotImported: null
    libraryUri: null
    relevance: 503
  fooAB
    kind: topLevelVariable
    isNotImported: null
    libraryUri: null
    relevance: 503
''');
  }

  Future<void> test_unprefixed_sorts_byType() async {
    await _configureWithWorkspaceRoot();

    var response = await _getTestCodeSuggestions(r'''
var foo01 = 0.0;
var foo02 = 0;

void f() {
  int v = foo0^
}
''');

    printerConfiguration
      ..sorting = printer.Sorting.asIs
      ..withRelevance = true;

    assertResponseText(response, r'''
replacement
  left: 4
suggestions
  foo02
    kind: topLevelVariable
    isNotImported: null
    libraryUri: null
    relevance: 558
  foo01
    kind: topLevelVariable
    isNotImported: null
    libraryUri: null
    relevance: 510
''');
  }

  Future<void> test_yaml_analysisOptions_formatter() async {
    await _configureWithWorkspaceRoot();

    var path = convertPath('$testPackageRootPath/analysis_options.yaml');
    var response = await _getCodeSuggestions(
      path: path,
      content: '''
formatter:
  ^
''',
    );

    printerConfiguration
      ..filter = ((_) => true)
      ..withIsNotImported = false
      ..withLibraryUri = false;

    assertResponseText(response, r'''
suggestions
  |page_width: |
    kind: identifier
  |trailing_commas: |
    kind: identifier
''');
  }

  Future<void> test_yaml_analysisOptions_root() async {


.word TEAM_MEMBER_TABLE_PTR
_022C3120: .word 0x00000265
_022C3124: .word ov10_022DC094
_022C3128: .word 0x000F1207
_022C312C: .word _020B0A5C
_022C3130: .word ov10_022DC0B8
_022C3134: .word ov10_022DC0D4
	arm_func_end MainGame

	arm_func_start ov10_022C3138
ov10_022C3138: ; 0x022C3138
	stmdb sp!, {r3, lr}
	mov r0, #0x44
	mov r1, #6
	bl MemAlloc
	ldr r2, _022C31A0 ; =ov10_022DC218
	mov r1, #0x44
	str r0, [r2]
	bl MemZero
	ldr r0, _022C31A0 ; =ov10_022DC218
	mov r2, #1
	ldr r1, [r0]
	mov r3, #0
	strb r2, [r1, #0x38]
	ldr r1, [r0]
	mov r2, #0x14000
	str r3, [r1, #0x40]
	ldr r1, [r0]
	str r3, [r1, #0x3c]
	ldr r1, [r0]
	str r2, [r1, #0x2c]
	ldr r2, [r0]
	ldr r1, [r2, #0x2c]
	str r1, [r2, #0x30]
	ldr r0, [r0]
	str r3, [r0, #0x34]
	ldmia sp!, {r3, pc}
	.align 2, 0
_022C31A0: .word ov10_022DC218
	arm_func_end ov10_022C3138

	arm_func_start ov10_022C31A4
ov10_022C31A4: ; 0x022C31A4
	stmdb sp!, {r3, lr}
	ldr r0, _022C3200 ; =ov10_022DC218
	ldr r0, [r0]
	cmp r0, #0
	ldrneb r1, [r0, #0x38]
	cmpne r1, #0
	ldmeqia sp!, {r3, pc}
	ldr r2, _022C3204 ; =0x00000401
	mov r1, #4
	mov r3, #0xf
	bl LoadWteFromFileDirectory
	ldr r0, _022C3200 ; =ov10_022DC218
	mov r1, #0
	ldr r0, [r0]
	mov r3, r1
	ldr r0, [r0, #4]
	mov r2, #0x1d
	bl ProcessWte
	ldr r0, _022C3200 ; =ov10_022DC218
	mov r1, #0
	ldr r0, [r0]
	strb r1, [r0, #0x38]
	ldmia sp!, {r3, pc}
	.align 2, 0
_022C3200: .word ov10_022DC218
#ifdef JAPAN
_022C3204: .word 0x000003F5
#else
_022C3204: .word 0x00000401
#endif
	arm_func_end ov10_022C31A4

	arm_func_start ov10_022C3208
ov10_022C3208: ; 0x022C3208
	stmdb sp!, {r4, lr}
	ldr ip, _022C3288 ; =ov10_022DC218
	ldr lr, [sp, #8]
	ldr r4, [ip]
	mov lr, l


Range AV_INVF(float x);
Range SQ_INVF(float x);
Range VS_INVF(float x);
Range VL_INVF(float x);
Range VG_INVF(float x);
Range VT_INVF(float x);
Range NP_INVF(float x);
Range HC_INVF(float x);
Range VC_INVF(float x);

/* If you like these variables, you can use them in your application
 * by defining USE_RSL_VARS before #include "rsl.h"
 */
#ifdef USE_RSL_VARS
static char *RSL_ftype[] = {"DZ", "VR", "SW", "CZ", "ZT", "DR",
                            "LR", "ZD", "DM", "RH", "PH", "XZ",
                            "CD", "MZ", "MD", "ZE", "VE", "KD",
                            "TI", "DX", "CH", "AH", "CV", "AV",
                            "SQ", "VS", "VL", "VG", "VT", "NP",
                            "HC", "VC"};

static  float (*RSL_f_list[])(Range x) = {DZ_F, VR_F, SW_F, CZ_F, ZT_F, DR_F,
                                          LR_F, ZD_F, DM_F, RH_F, PH_F, XZ_F,
                                          CD_F, MZ_F, MD_F, ZE_F, VE_F, KD_F,
                                          TI_F, DX_F, CH_F, AH_F, CV_F, AV_F,
                                          SQ_F, VS_F, VL_F, VG_F, VT_F, NP_F,
                                          HC_F, VC_F};

static  Range (*RSL_invf_list[])(float x)
         = {DZ_INVF, VR_INVF, SW_INVF, CZ_INVF, ZT_INVF, DR_INVF,
            LR_INVF, ZD_INVF, DM_INVF, RH_INVF, PH_INVF, XZ_INVF,
            CD_INVF, MZ_INVF, MD_INVF, ZE_INVF, VE_INVF, KD_INVF,
            TI_INVF, DX_INVF, CH_INVF, AH_INVF, CV_INVF, AV_INVF,
            SQ_INVF, VS_INVF, VL_INVF, VG_INVF, VT_INVF, NP_INVF,
            HC_INVF, VC_INVF};
#endif
/* Secret routines that are quite useful and useful to developers. */
void radar_load_date_time(Radar *radar);
int big_endian(void);
int little_endian(void);
void swap_4_bytes(void *word);
void swap_2_bytes(void *word);
Hash_table *hash_table_for_sweep(Sweep *s);
int hash_bin(Hash_table *table,float angle);
Azimuth_hash *the_closest_hash(Azimuth_hash *hash, float ray_angle);
Hash_table *construct_sweep_hash_table(Sweep *s);
double       angle_diff(float x, float y);
int rsl_query_field(char *c_field);

/* Debugging prototypes. */
void poke_around_volume(Volume *v);

/* SYSTEM: left out prototypes? */
extern int pclose (FILE *f); /* From stdio.h */

#endif

#ifdef __cplusplus
}
#endif


oad == 5 then textbox = lgnewImage('assets/images/gui/textbox_monika.png') end
	pause(4)
	elseif cl == 1076 then
	cw(gtext12,"...How could you?")
	elseif cl == 1077 then
	cw(gtext12,"How could you do this to me?")
	elseif cl == 1078 then
	cw(gtext12,"You were all I had left...")
	elseif cl == 1079 then
	cw(gtext12,"I sacrificed everything for us to be together.")
	elseif cl == 1080 then
	cw(gtext12,"Everything.")
	elseif cl == 1081 then
	cw(gtext12,"I loved you so much, "..player.."...")
	elseif cl == 1082 then
	cw(gtext12,"I trusted you.")
	elseif cl == 1083 then
	cw(gtext12,"Do you just want to torture me?")
	elseif cl == 1084 then
	cw(gtext12,"Watch me suffer?")
	elseif cl == 1085 then
	cw(gtext12,"Were you only pretending to be kind, just to hurt me even more?")
	elseif cl == 1086 then
	pause(4)
	elseif cl == 1087 then
	cw(gtext12,"I never thought anyone could be as horrible as you are.")
	elseif cl == 1088 then
	cw(gtext12,"You win, okay?")
	elseif cl == 1089 then
	cw(gtext12,"You win.")
	elseif cl == 1090 then
	cw(gtext12,"You killed everyone.")
	elseif cl == 1091 then
	cw(gtext12,"I hope you're happy.")
	elseif cl == 1092 then
	cw(gtext12,"There's nothing left now.")
	elseif cl == 1093 then
	cw(gtext12,"You can stop playing.")
	elseif cl == 1094 then
	cw(gtext12,"Go find some other people to torture.")
	elseif cl == 1095 then
	pause(4)
	elseif cl == 1096 then
	cw(gtext12,player.."...")
	elseif cl == 1097 then
	cw(gtext12,"You completely, truly make me sick.")
	elseif cl == 1098 then
	cw(gtext12,"Goodbye.")
	elseif cl == 1099 then
	event_end('monika_end')
	elseif cl == 1100 then
	event_initstart('ch23-30')
	if xaload == 5 then
		savegame('autoload')
		textbox = lgnewImage('assets/images/gui/textbox_monika.png')
	end
	pause(10,'disable')
	elseif cl == 1101 then
	cw(gtext12,"...")
	elseif cl == 1102 then
	cw(gtext12,"...I still love you.")
	elseif cl == 1103 then
	audioUpdate('monika-end')
	cw(gtext12,"I can't help it.")
	elseif cl == 1104 then
	cw(gtext12,"What's wrong with me...?")
	elseif cl == 1105 then
	cw(gtext12,"How horrible am I for you to hate me this much?")
	elseif cl == 1106 then
	cw(gtext12,"All my friends...")
	elseif cl == 1107 then
	cw(gtext12,"I did so many awful things.")
	elseif cl == 1108 then
	cw(gtext12,"So many selfish and disgusting things.")
	elseif cl == 1109 then
	cw(gtext12,"I...")
	elseif cl == 1110 then
	cw(gtext12,"I shouldn't have done any of this.")
	elseif cl == 1111 then
	cw(gtext12,"I'm just messing up a world that I don't even belong in.")
	elseif cl == 1112 then
	cw(gtext12,"A world that you wanted to be a part of...")
	elseif cl == 1113 then
	cw(gtext12,


uire.NotNil(t, queue)
	// check span attributes
	sd = queue.Diff(
		jaeger.Tag{Key: "span.kind", Type: "string", Value: "internal"},
	)
	assert.Empty(t, sd, sd.String())

	// Check the information of the "processing" span
	res = trace.FindByOperationName("processing", "internal")
	require.Equal(t, len(res), numNested)

	var processing *jaeger.Span

	for i := range res {
		r := &res[i]
		// Check parenthood
		p, ok := trace.ParentOf(r)

		if ok {
			if p.TraceID == server.TraceID && p.SpanID == server.SpanID {
				processing = r
				break
			}
		}
	}

	require.NotNil(t, processing)
	sd = queue.Diff(
		jaeger.Tag{Key: "span.kind", Type: "string", Value: "internal"},
	)
	assert.Empty(t, sd, sd.String())

	numNestedGRPC := 1

	if contextPropagation {
		numNestedGRPC = 2
	}

	res = trace.FindByOperationName("/routeguide.RouteGuide/GetFeature", "")
	require.Len(t, res, numNestedGRPC)
	for index := range res {
		grpc := res[index]
		if contextPropagation {
			assert.Equal(t, processing.TraceID, grpc.TraceID)
		}
		isClient := false

		for _, tag := range grpc.Tags {
			if tag.Key == "span.kind" && tag.Value == "client" {
				isClient = true
			}
		}

		if isClient {
			p, ok := trace.ParentOf(&grpc)
			require.True(t, ok)
			assert.Equal(t, processing.TraceID, p.TraceID)
			assert.Equal(t, processing.SpanID, p.SpanID)
		}

		sd = grpc.Diff(
			jaeger.Tag{Key: "rpc.method", Type: "string", Value: "/routeguide.RouteGuide/GetFeature"},
			jaeger.Tag{Key: "rpc.grpc.status_code", Type: "int64", Value: float64(0)},
		)
		assert.Empty(t, sd, sd.String())
	}
}

func testHTTP2GRPCTracesNestedCallsNoPropagation(t *testing.T) {
	testHTTP2GRPCTracesNestedCalls(t, false)
}

func testHTTP2GRPCTracesNestedCallsWithContextPropagation(t *testing.T) {
	testHTTP2GRPCTracesNestedCalls(t, true)
}

func testNestedHTTPTracesKProbes(t *testing.T, extended bool) {
	var traceID string

	waitForTestComponents(t, "http://localhost:3031")                 // nodejs
	waitForTestComponents(t, "http://localhost:8080")                 // go
	waitForTestComponents(t, "http://localhost:7773")                 // python
	waitForRubyTestComponents(t, "http://localhost:3041")             // ruby
	waitForTestComponentsSub(t, "http://localhost:8086", "/greeting") // java
	waitForTestComponents(t, "http://localhost:8091")                 // rust

	// Add and check for specific trace ID
	// Run couple of requests to make sure we flush out any transactions that might be
	// stuck because of our tracking of full request times
	for i := 0; i < 10; i++ {
		doHTTPGet(t, "http://localhost:8091/dist", 200)
	}

	// rust   -> java     -> nodejs   -> go            -> go jsonrpc -> python      -> rails
	// /dist2 -> /jtrace2 -> /traceme -> /gotracemetoo -> /jsonrpc   -> /tracemetoo -> /users

	// Get the first 5 traces


t<QMetaObject::Call>(param1), static_cast<int>(param2), param3);
    } else {
        return ((VirtualQCandlestickModelMapper*)self)->qt_metacall(static_cast<QMetaObject::Call>(param1), static_cast<int>(param2), param3);
    }
}

libqt_string QCandlestickModelMapper_Tr(const char* s) {
    QString _ret = QCandlestickModelMapper::tr(s);
    // Convert QString from UTF-16 in C++ RAII memory to UTF-8 in manually-managed C memory
    QByteArray _b = _ret.toUtf8();
    libqt_string _str;
    _str.len = _b.length();
    _str.data = static_cast<const char*>(malloc(_str.len + 1));
    memcpy((void*)_str.data, _b.data(), _str.len);
    ((char*)_str.data)[_str.len] = '\0';
    return _str;
}

void QCandlestickModelMapper_SetModel(QCandlestickModelMapper* self, QAbstractItemModel* model) {
    self->setModel(model);
}

QAbstractItemModel* QCandlestickModelMapper_Model(const QCandlestickModelMapper* self) {
    return self->model();
}

void QCandlestickModelMapper_SetSeries(QCandlestickModelMapper* self, QCandlestickSeries* series) {
    self->setSeries(series);
}

QCandlestickSeries* QCandlestickModelMapper_Series(const QCandlestickModelMapper* self) {
    return self->series();
}

int QCandlestickModelMapper_Orientation(const QCandlestickModelMapper* self) {
    auto* vqcandlestickmodelmapper = dynamic_cast<const VirtualQCandlestickModelMapper*>(self);
    if (vqcandlestickmodelmapper && vqcandlestickmodelmapper->isVirtualQCandlestickModelMapper) {
        return static_cast<int>(vqcandlestickmodelmapper->orientation());
    } else {
        return static_cast<int>(((VirtualQCandlestickModelMapper*)self)->orientation());
    }
}

void QCandlestickModelMapper_ModelReplaced(QCandlestickModelMapper* self) {
    self->modelReplaced();
}

void QCandlestickModelMapper_Connect_ModelReplaced(QCandlestickModelMapper* self, intptr_t slot) {
    void (*slotFunc)(QCandlestickModelMapper*) = reinterpret_cast<void (*)(QCandlestickModelMapper*)>(slot);
    QCandlestickModelMapper::connect(self, &QCandlestickModelMapper::modelReplaced, [self, slotFunc]() {
        slotFunc(self);
    });
}

void QCandlestickModelMapper_SeriesReplaced(QCandlestickModelMapper* self) {
    self->seriesReplaced();
}

void QCandlestickModelMapper_Connect_SeriesReplaced(QCandlestickModelMapper* self, intptr_t slot) {
    void (*slotFunc)(QCandlestickModelMapper*) = reinterpret_cast<void (*)(QCandlestickModelMapper*)>(slot);
    QCandlestickModelMapper::connect(self, &QCandlestickModelMapper::seriesReplaced, [self, slotFunc]() {
        slotFunc(self);
    });
}

libqt_string QCandlestickModelMapper_Tr2(const char* s, const char* c) {
    QString _ret = QCandlestickModelMapper::tr(s, c);
    // Convert QString from UTF-16 in C++ RAII memory to UTF-8 in manually-managed C memory
    QByteArray _b = _ret.toUtf8();
    libqt_string _str;
    _str.len = _b.length();
    _str.data = static_cast<const char*>(malloc(_str.len + 1));
    memcpy((void*)_str.data, _b.data(), _str.len);
    ((char*)_str.data)[_str.len] = '\0';


msy"}]]);/**
 * @license lucide-vue-next v0.474.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const go=i("CirclePlusIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]]);/**
 * @license lucide-vue-next v0.474.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const vo=i("CirclePowerIcon",[["path",{d:"M12 7v4",key:"xawao1"}],["path",{d:"M7.998 9.003a5 5 0 1 0 8-.005",key:"1pek45"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/**
 * @license lucide-vue-next v0.474.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const mo=i("CircleSlash2Icon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M22 2 2 22",key:"y4kqgn"}]]);/**
 * @license lucide-vue-next v0.474.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const _u=i("CircleSlashIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"9",x2:"15",y1:"15",y2:"9",key:"1dfufj"}]]);/**
 * @license lucide-vue-next v0.474.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const Mo=i("CircleStopIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]]);/**
 * @license lucide-vue-next v0.474.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const Io=i("CircleUserRoundIcon",[["path",{d:"M18 20a6 6 0 0 0-12 0",key:"1qehca"}],["circle",{cx:"12",cy:"10",r:"4",key:"1h16sb"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/**
 * @license lucide-vue-next v0.474.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */const xo=i("CircleUserIcon",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}],["path",{d:"M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662",key:"154egf"}]]);/**
 * @license lucide-vue-next v0.474.0 - ISC
 *
 * This source code is licensed under the ISC license.
 * See the LICENSE file in the root directory of this source tree.
 */


i.createElement("path",{id:"logo_small_svg__Path_2964",d:"M194.538 111.09a4.239 4.239 0 0 1-3.231-1.247 4.824 4.824 0 0 1-1.184-3.463 5.355 5.355 0 0 1 1.1-3.548 3.652 3.652 0 0 1 2.954-1.315 3.484 3.484 0 0 1 2.747 1.142 4.378 4.378 0 0 1 1.011 3.013v.885h-6.362a3.66 3.66 0 0 0 .822 2.469 2.843 2.843 0 0 0 2.2.843 7.431 7.431 0 0 0 2.949-.624v1.247a7.377 7.377 0 0 1-1.4.459 7.863 7.863 0 0 1-1.6.139Zm-.379-8.4a2.286 2.286 0 0 0-1.774.725 3.337 3.337 0 0 0-.779 2.006h4.828a3.072 3.072 0 0 0-.59-2.027 2.076 2.076 0 0 0-1.685-.706Z",className:"logo_small_svg__cls-2","data-name":"Path 2964"})),G||(G=i.createElement("path",{id:"logo_small_svg__Path_2965",d:"M206.951 109.683h-.076a3.287 3.287 0 0 1-2.9 1.407 3.427 3.427 0 0 1-2.819-1.239 5.452 5.452 0 0 1-1.006-3.522 5.542 5.542 0 0 1 1.011-3.548 3.4 3.4 0 0 1 2.814-1.264 3.361 3.361 0 0 1 2.883 1.365h.109l-.059-.665-.034-.649v-3.759h1.4v13.113h-1.138Zm-2.8.236a2.551 2.551 0 0 0 2.078-.779 3.947 3.947 0 0 0 .644-2.516v-.3a4.638 4.638 0 0 0-.653-2.8 2.481 2.481 0 0 0-2.086-.839 2.14 2.14 0 0 0-1.883.957 4.76 4.76 0 0 0-.653 2.7 4.554 4.554 0 0 0 .649 2.671 2.194 2.194 0 0 0 1.906.906Z",className:"logo_small_svg__cls-2","data-name":"Path 2965"})),X||(X=i.createElement("path",{id:"logo_small_svg__Path_2966",d:"M220.712 101.534a3.435 3.435 0 0 1 2.827 1.243 6.653 6.653 0 0 1-.009 7.053 3.417 3.417 0 0 1-2.818 1.26 4 4 0 0 1-1.648-.333 3.094 3.094 0 0 1-1.251-1.023h-.1l-.295 1.188h-1V97.809h1.4V101q0 1.069-.068 1.921h.068a3.322 3.322 0 0 1 2.894-1.387Zm-.2 1.171a2.44 2.44 0 0 0-2.064.822 6.338 6.338 0 0 0 .017 5.553 2.464 2.464 0 0 0 2.081.839 2.158 2.158 0 0 0 1.922-.94 4.828 4.828 0 0 0 .632-2.7 4.645 4.645 0 0 0-.632-2.689 2.242 2.242 0 0 0-1.959-.885Z",className:"logo_small_svg__cls-2","data-name":"Path 2966"})),ee||(ee=i.createElement("path",{id:"logo_small_svg__Path_2967",d:"M225.758 101.686h1.5l2.023 5.267a20.188 20.188 0 0 1 .826 2.6h.067q.109-.431.459-1.471t2.288-6.4h1.5l-3.969 10.518a5.253 5.253 0 0 1-1.378 2.212 2.932 2.932 0 0 1-1.934.653 5.659 5.659 0 0 1-1.264-.143V113.8a4.9 4.9 0 0 0 1.037.1 2.136 2.136 0 0 0 2.056-1.618


';
        background-color: ~'@{form-color-bg_@{status}_focus}';
        box-shadow: 0 0 0 ~'@{form-size-shadow_@{status}_focus}' ~'@{form-color-shadow_@{status}_focus}';
      }
    }

    // 前后缀 或者清楚图标时，input不设置背景色
    .@{prefix}-form-item-status-@{status} .@{prefix}-input-inner-wrapper .@{prefix}-input {
      background: none;
      box-shadow: none;

      &:hover {
        background: none;
        box-shadow: none;
      }
    }

    .@{prefix}-form-item-status-@{status} {
      /** select **/
      .select-color(~'@{prefix}-select', @status);

      /** cascader **/
      .select-color(~'@{prefix}-cascader', @status);

      /** treeselect **/
      .select-color(~'@{prefix}-tree-select', @status);

      /** Datepicker **/
      .picker(@status);

      /** InputTag **/
      .input-tag-color(@status);
    }
  }

  .@{prefix}-form-item-status-@{status} {
    .@{form-prefix-cls}-message-help {
      color: ~'@{form-color-tip-text_@{status}}';

      .@{form-prefix-cls}-message-help-warning {
        color: @form-color-tip-text_warning;
      }
    }
  }

  .@{form-prefix-cls}-item-feedback-@{status} {
    color: ~'@{form-color-tip-icon-text_@{status}}';
  }
}
.validate-status(validating);

.validate-status(success);

.validate-status(warning);

.validate-status(error);

.@{form-prefix-cls}-item-control-children {
  position: relative;
}

.@{form-prefix-cls}-item-feedback {
  position: absolute;
  right: 9px;
  top: 50%;
  font-size: 14px;
  transform: translateY(-50%);

  .@{prefix}-icon-loading {
    font-size: 12px;
  }
}

.form-item-has-feedback(@rtl) {
  @direction: if(@rtl = ~'rtl', left, right);

  .select-view(@prefix) {
    .@{prefix}.@{prefix}-multiple .@{prefix}-view,
    .@{prefix}.@{prefix}-single .@{prefix}-view {
      padding-@{direction}: 28px;
    }

    .@{prefix}.@{prefix}-multiple .@{prefix}-suffix {
      padding-@{direction}: 0;
    }
  }

  .@{prefix}-input,
  .@{prefix}-input-inner-wrapper,
  .@{prefix}-textarea {
    padding-@{direction}: 28px;
  }

  .@{prefix}-input-number-mode-embed .@{prefix}-input-number-step-layer {
    @direction: 24px;
  }

  .select-view(~'@{prefix}-select');
  .select-view(~'@{prefix}-cascader');
  .select-view(~'@{prefix}-tree-select');

  // datepicker timepicker
  .@{prefix}-picker {
    padding-@{direction}: 28px;
  }

  .@{prefix}-picker-suffix {
    .@{prefix}-picker-suffix-icon,
    .@{prefix}-picker-clear-icon {
      margin-right: 0;
      margin-left: 0;
    }
  }

  // InputTag
  .@{prefix}-input-tag {
    padding-@{direction}: 23px;

    &-suffix {
      padding-@{direction}: 0;
    }
  }
}

.@{form-prefix-cls}-item-has-feedback {
  .form-item-has-feedback(ltr);
}

// rtl

.@{form-prefix-cls}-rtl .@{form-prefix-cls}-item-feedback {
  right: unset;
  left: 9px;
}

.@{form-prefix-cls}-rtl .@{form-prefix-cls}-item-has-feedback {
  .