.of(Openshift4MinorVersion.values())
                    .filter(v -> v.versionChecker.test(k8sVersion))
                    .findFirst()
                    .orElse(OCP4_PRIOR_4_4);
        }

    }

}/*
 * Copyright 2018, EnMasse authors.
 * License: Apache License 2.0 (see the file LICENSE or http://apache.org/licenses/LICENSE-2.0.html).
 */
package io.enmasse.systemtest.messagingclients.mqtt;

import io.enmasse.systemtest.messagingclients.ClientArgument;
import io.enmasse.systemtest.messagingclients.ClientArgumentMap;
import io.enmasse.systemtest.messagingclients.ClientType;
import io.enmasse.systemtest.messagingclients.proton.java.ProtonJMSClientSender;

public class PahoMQTTClientSender extends ProtonJMSClientSender {
    public PahoMQTTClientSender() throws Exception {
        this.setClientType(ClientType.CLI_JAVA_PAHO_MQTT_SENDER);
    }

    @Override
    protected void fillAllowedArgs() {
        allowedArgs.add(ClientArgument.CONN_RECONNECT);
        allowedArgs.add(ClientArgument.CONN_RECONNECT_INTERVAL);
        allowedArgs.add(ClientArgument.CONN_RECONNECT_LIMIT);
        allowedArgs.add(ClientArgument.CONN_RECONNECT_TIMEOUT);
        allowedArgs.add(ClientArgument.CONN_HEARTBEAT);
        allowedArgs.add(ClientArgument.CONN_SSL_CERTIFICATE);
        allowedArgs.add(ClientArgument.CONN_SSL_PRIVATE_KEY);
        allowedArgs.add(ClientArgument.CONN_SSL_PASSWORD);
        allowedArgs.add(ClientArgument.CONN_SSL_TRUST_STORE);
        allowedArgs.add(ClientArgument.CONN_SSL_VERIFY_PEER);
        allowedArgs.add(ClientArgument.CONN_SSL_VERIFY_PEER_NAME);
        allowedArgs.add(ClientArgument.CONN_MAX_FRAME_SIZE);
        allowedArgs.add(ClientArgument.CONN_ASYNC_ACKS);
        allowedArgs.add(ClientArgument.CONN_ASYNC_SEND);
        allowedArgs.add(ClientArgument.CONN_AUTH_SASL);
        allowedArgs.add(ClientArgument.CONN_CLIENT_ID);
        allowedArgs.add(ClientArgument.CONN_CLOSE_TIMEOUT);
        allowedArgs.add(ClientArgument.CONN_CONN_TIMEOUT);
        allowedArgs.add(ClientArgument.CONN_DRAIN_TIMEOUT);

        allowedArgs.add(ClientArgument.TX_SIZE);
        allowedArgs.add(ClientArgument.TX_ACTION);
        allowedArgs.add(ClientArgument.TX_ENDLOOP_ACTION);

        allowedArgs.add(ClientArgument.LINK_DURABLE);
        allowedArgs.add(ClientArgument.LINK_AT_MOST_ONCE);
        allowedArgs.add(ClientArgument.LINK_AT_LEAST_ONCE);
        allowedArgs.add(ClientArgument.CAPACITY);

        allowedArgs.add(ClientArgument.LOG_LIB);
        allowedArgs.add(ClientArgument.LOG_STATS);
        allowedArgs.add(ClientArgument.LOG_MESSAGES);

        allowedArgs.add(ClientArgument.BROKER);
        allowedArgs.add(ClientArgument.ADDRESS);
        allowedArgs.add(ClientArgument.USERNAME);
        allowedArgs.add(ClientArgument.PASSWORD);
        allowedArgs.add(ClientArgument.COUNT);
        allowedArgs.add(ClientArgument.CLOSE_SLEEP);
        allowedArgs.add(ClientArgument.TIMEOUT);
        allowedArgs.add(ClientArgument.DURATION);

        allowedArgs.add(ClientArgument.MSG_ID);
        allowedArgs.add(ClientArgument.MSG_GROUP_ID);
        allowedArgs.add(ClientArgument.MSG_GROUP_SEQ);
        allowedArgs.add(ClientArgument.MSG_REPLY_TO_GROUP_ID);
        allowedArgs.add(ClientArgument.MSG_S


import pytest
import timeflow as tflow
import numpy as np
import tensorflow as tf

def run_automated_monitor():
    size = 300
    time_samples = sorted(np.random.normal(size=size))
    samples = np.random.normal(size=size)
    X, Y, time_vector = \
        tflow.features.irregular_prediction(time_samples, samples)
    num_training_points = 100
    num_validation_points = 100
    X_train = X[:num_training_points, :]
    Y_train = Y[:num_training_points, :]
    X_valid = X[num_training_points:num_training_points+num_validation_points, :]
    Y_valid = Y[num_training_points:num_training_points+num_validation_points, :]
    X_test = X[num_training_points+num_validation_points:, :]
    Y_test = Y[num_training_points+num_validation_points:, :]
    input_size = 4
    hidden_size = 10
    output_size = 1
    with tf.variable_scope('Input'):
        inputs = tflow.placeholders.prediction.input_placeholder(input_size)
    with tf.variable_scope('Input_LSTM_Layer'):
        input_lstm_layer = tflow.layers.InputLSTMLayer(inputs, input_size)
    with tf.variable_scope('LSTM_Layer'):
        lstm_layer = tflow.layers.LSTMLayer(input_size, hidden_size, input_lstm_layer)
    with tf.variable_scope('Regression_Layer'):
        reg_layer = tflow.layers.RegressionLayer(hidden_size, output_size, lstm_layer)
    with tf.variable_scope('Output_LSTM_Layer'):
        output_layer = tflow.layers.OutputLSTMLayer(output_size, reg_layer)
    y = tflow.placeholders.prediction.output_placeholder(output_size)
    outputs = output_layer.get_outputs()
    # Defining MSE as the loss function
    with tf.variable_scope('RMSE'):
        loss_func = tflow.utils.metrics.RMSE(outputs, y)
    train_step = tf.train.RMSPropOptimizer(learning_rate=0.05).minimize(loss_func)
    sess = tf.InteractiveSession()
    sess.run(tf.initialize_all_variables())
    monitor = tflow.trainer.AutomatedTrainingMonitor(inputs, y, X_train, Y_train,
                                                 train_step, loss_func, sess, training_steps=500,
                                                 validation_input=X_valid, validation_output=Y_valid,
                                                 early_stopping_rounds=60)
    monitor.train()
    return

def test_automated_training_monitor():
    run_automated_monitor()


0}","{1} {0}","{1} {0}"],FIRSTDAYOFWEEK:5,WEEKENDRANGE:[4,5],FIRSTWEEKCUTOFFDAY:4};
goog.i18n.DateTimeSymbols_az={ERAS:["e.\u0259.","y.e."],ERANAMES:["eram\u0131zdan \u0259vv\u0259l","yeni era"],NARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),STANDALONENARROWMONTHS:"1 2 3 4 5 6 7 8 9 10 11 12".split(" "),MONTHS:"yanvar fevral mart aprel may iyun iyul avqust sentyabr oktyabr noyabr dekabr".split(" "),STANDALONEMONTHS:"Yanvar Fevral Mart Aprel May \u0130yun \u0130yul Avqust Sentyabr Oktyabr Noyabr Dekabr".split(" "),SHORTMONTHS:"yan fev mar apr may iyn iyl avq sen okt noy dek".split(" "),
STANDALONESHORTMONTHS:"yan fev mar apr may iyn iyl avq sen okt noy dek".split(" "),WEEKDAYS:"bazar;bazar ert\u0259si;\u00e7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131;\u00e7\u0259r\u015f\u0259nb\u0259;c\u00fcm\u0259 ax\u015fam\u0131;c\u00fcm\u0259;\u015f\u0259nb\u0259".split(";"),STANDALONEWEEKDAYS:"bazar;bazar ert\u0259si;\u00e7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131;\u00e7\u0259r\u015f\u0259nb\u0259;c\u00fcm\u0259 ax\u015fam\u0131;c\u00fcm\u0259;\u015f\u0259nb\u0259".split(";"),SHORTWEEKDAYS:"B. B.E. \u00c7.A. \u00c7. C.A. C. \u015e.".split(" "),
STANDALONESHORTWEEKDAYS:"B. B.E. \u00c7.A. \u00c7. C.A. C. \u015e.".split(" "),NARROWWEEKDAYS:"7123456".split(""),STANDALONENARROWWEEKDAYS:"7123456".split(""),SHORTQUARTERS:["1-ci kv.","2-ci kv.","3-c\u00fc kv.","4-c\u00fc kv."],QUARTERS:["1-ci kvartal","2-ci kvartal","3-c\u00fc kvartal","4-c\u00fc kvartal"],AMPMS:["AM","PM"],DATEFORMATS:["d MMMM y, EEEE","d MMMM y","d MMM y","dd.MM.yy"],TIMEFORMATS:["HH:mm:ss zzzz","HH:mm:ss z","HH:mm:ss","HH:mm"],DATETIMEFORMATS:["{1} {0}","{1} {0}","{1} {0}","{1} {0}"],
FIRSTDAYOFWEEK:0,WEEKENDRANGE:[5,6],FIRSTWEEKCUTOFFDAY:6};
goog.i18n.Da


ite), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [sramctrl](sramctrl) module"]
pub type SRAMCTRL = crate::Reg<u32, _SRAMCTRL>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _SRAMCTRL;
#[doc = "`read()` method returns [sramctrl::R](sramctrl::R) reader structure"]
impl crate::Readable for SRAMCTRL {}
#[doc = "`write(|w| ..)` method takes [sramctrl::W](sramctrl::W) writer structure"]
impl crate::Writable for SRAMCTRL {}
#[doc = "SRAM Control register"]
pub mod sramctrl;
#[doc = "Power Status Register for ADC Block\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [adcstatus](adcstatus) module"]
pub type ADCSTATUS = crate::Reg<u32, _ADCSTATUS>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _ADCSTATUS;
#[doc = "`read()` method returns [adcstatus::R](adcstatus::R) reader structure"]
impl crate::Readable for ADCSTATUS {}
#[doc = "`write(|w| ..)` method takes [adcstatus::W](adcstatus::W) writer structure"]
impl crate::Writable for ADCSTATUS {}
#[doc = "Power Status Register for ADC Block"]
pub mod adcstatus;
#[doc = "Power Optimization Control Bits\n\nThis register you can [`read`](crate::generic::Reg::read), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [miscopt](miscopt) module"]
pub type MISCOPT = crate::Reg<u32, _MISCOPT>;
#[allow(missing_docs)]
#[doc(hidden)]
pub struct _MISCOPT;
#[doc = "`read()` method returns [miscopt::R](miscopt::R) reader structure"]
impl crate::Readable for MISCOPT {}
#[doc = "`write(|w| ..)` method takes [miscopt::W](miscopt::W) writer structure"]
impl crate::Writable for MISCOPT {}
#[doc = "Power Optimization Control Bits"]
pub mod miscopt;
//! A bare-metal library supplying functions rustc may lower code to.
//!
//! This library is not intended for general use, and is superseded by a system
//! libc if one is available. In a freestanding context, however, common
//! functions such as memset, memcpy, etc. are not implemented. This library
//! provides an implementation of these functions which are either required by
//! libcore or called by rustc implicitly.
//!
//! This library is never included by default, and must be manually included if
//! necessary. It is an error to include this library when also linking with
//! the system libc library.

pub use self::arm::*;

mod arm;
<reponame>jamie-0/Mayastor
//! Utility function for formatting a device with filesystem

use std::process::Command;


in
                .mainStatsCommon(151, 5, 4, 9, 0.6f)
                .mainStatsHarvest(4)
                .mainStatsMelee(1, 0, 0.0f)
                .stat(PartGearKey.ofMain(GearTypes.AXE), GearProperties.ATTACK_SPEED, -0.2f)
                .stat(PartGearKey.ofMain(GearTypes.HOE), GearProperties.ATTACK_SPEED, -1f)
                .mainStatsRanged(0, -0.2f, 1f, 0.8f)
                .mainStatsArmor(1, 2, 1, 1, 0, 0) //5
                .trait(PartTypes.MAIN, Const.Traits.BRITTLE, 1)
                .trait(PartTypes.MAIN, Const.Traits.JAGGED, 2)
                .trait(PartTypes.MAIN, Const.Traits.HARD, 2)
                //rod
                .stat(PartTypes.ROD, GearProperties.HARVEST_SPEED, -0.1f, NumberProperty.Operation.MULTIPLY_TOTAL)
                .trait(PartTypes.ROD, Const.Traits.BRITTLE, 1)
                .trait(PartTypes.ROD, Const.Traits.JAGGED, 2)
                .trait(PartTypes.ROD, Const.Traits.HARD, 1)
        );
        // End Stone
        ret.add(MaterialBuilder.builtin(BuiltinMaterials.END_STONE)
                .crafting(Tags.Items.END_STONES, MaterialCategories.ROCK, MaterialCategories.BASIC)
                .displayWithDefaultName(0xFFFFCC)
                //main
                .mainStatsCommon(1164, 15, 10, 32, 0.9f)
                .stat(PartTypes.MAIN, GearProperties.REPAIR_VALUE, -0.2f)
                .mainStatsHarvest(7)
                .mainStatsMelee(2, 3, 0.1f)
                .mainStatsRanged(0, 0f, 1f, 0.8f)
                .mainStatsArmor(3, 5, 4, 3, 1, 6) //15
                .trait(PartTypes.MAIN, Const.Traits.JAGGED, 3)
                .trait(PartTypes.MAIN, Const.Traits.ANCIENT, 2)
                //rod
                .stat(PartTypes.ROD, GearProperties.ATTACK_DAMAGE, 1, NumberProperty.Operation.ADD)
                .trait(PartTypes.ROD, Const.Traits.MALLEABLE, 1)
                .trait(PartTypes.ROD, Const.Traits.ANCIENT, 4)
        );
        // Flint
        ret.add(MaterialBuilder.builtin(BuiltinMaterials.FLINT)
                .crafting(Items.FLINT, MaterialCategories.ROCK, MaterialCategories.BASIC)
                .displayWithDefaultName(0x969696, TextureType.HIGH_CONTRAST)
                //main
                .mainStatsCommon(124, 4, 3, 6, 0.8f)
                .mainStatsHarvest(5)
                .mainStatsMelee(2, 0, -0.1f)
                .mainStatsRanged(1, -0.3f, 1.0f, 1.0f)
                .mainStatsArmor(0.5f, 2f, 1f, 0.5f, 0, 0) //4
                .trait(PartTypes.MAIN, Const.Traits.JAGGED, 3)
                //rod
                .trait(PartTypes.ROD, Const.Traits.BRITTLE, 3)
                .trait(PartTypes.ROD, Const.Traits.JAGGED, 2)
                //setting (deliberately has no traits lol)
                .noProperties(PartTypes.SETTING)
        );
        // Netherrack
        ret.add(MaterialBuilder.builtin(BuiltinMaterials.NETHERRACK)
                .crafting(Tags.Items.NETHERRACKS, MaterialCategories.ROCK, MaterialCategories.ORGANIC, MaterialCategories.BASIC)
                .displayWithDefaultName(0x854242, TextureType.LOW_CONTRAST)
                //main
                .


 46459
IGZyeQ== 46460
IHN2b2pl 46461
KGNy 46462
z4HOv8+F 46463
IGVxcQ== 46464
ICg8 46465
IENoYW1iZXI= 46466
aW1lc3RhbXBz 46467
X2ZpbmFs 46468
IOCuquCvig== 46469
IHVwdA== 46470
INin2LPYqti52YXYp9mE 46471
IFBST0Y= 46472
IGJsb25n 46473
IHBoYXJtYWNldXRpY2Fs 46474
IGNlbnRz 46475
IFNvbG8= 46476
5raI5oGv 46477
IHRyYWJhamFy 46478
IHRvdXJpc3Rz 46479
IExpbWl0 46480
IGRvbWFpbmU= 46481
X3J1bGU= 46482
aWdoYm9ycw== 46483
YWJsaXNoZWQ= 46484
LlByaW50Zg== 46485
SVNCTg== 46486
IHBoZW5vbWVub24= 46487
J11bJA== 46488
INio2LM= 46489
5ZWq5ZWq 46490
IGNhbnM= 46491
X2xhbmc= 46492
IGJhY2tpbmc= 46493
IHNpZ3Vl 46494
IGZvcm11bA== 46495
S0I= 46496
0LrQsNGH0LDRgtGM 46497
KGF0 46498
5a+f 46499
INC/0LXRhw== 46500
ODg2 46501
4LGH4LC3 46502
56iu 46503
IGNvbnNpc3Rl 46504
IGZvcnR1bmU= 46505
w7Zo 46506
0ZbQtg== 46507
IENBTA== 46508
4LC/4LCC4LCX4LGN 46509
ZsO8Z3VuZw== 46510
IHZpbmM= 46511
IGhhYmxhcg== 46512
IG1lcmNoYW50 46513
IG1lam9yYXI= 46514
Q8OzbW8= 46515
INC20LDRgA== 46516
IGJpdHRlcg== 46517
NjY0 46518
OTQ1 46519
b3hpYw== 46520
T1JJWg== 46521
IOCkhuCkquCkleClhw== 46522
IG1haW9yaWE= 46523
IGNvbnNlcXU= 46524
KSk7DQoNCg== 46525
KSkpCgo= 46526
IHNpZWh0 46527
4LmI4Liy4Liq4Li44LiU 46528
INen15w= 46529
IGNyYWZ0ZWQ= 46530
Pics 46531
IO2UhOuhnA== 46532
4KSC4KS4 46533
LnBvdw== 46534
IExpcA== 46535
IOiHqg== 46536
INin2YTZiNiy 46537
IGRpw70= 46538
IHBhcGllcg== 46539
IGhlcm9lcw== 46540
24HYsQ== 46541
IOC0teC0v+C0tQ== 46542
b3bDoW7DrQ== 46543
5Ya3 46544
IAoKCgo= 46545
IHJlZmlu 46546
IgovLw== 46547
IOCuleCunw== 46548
IHdpbmRz 46549
IGZ5cmk= 46550
55m+5bqm 46551
IGNhbGxl 46552
YsOp 46553
X0ZVTkNUSU9O 46554
IHVo 46555
dWt1bmZ0 46556
YXJpYXQ= 46557
aXZyZQ== 46558
w6R0eg== 46559
IGhlbGZlbg== 46560
IHJhY2lhbA== 46561
U2tpbg== 46562
b


 test('[Example 6.8]', () {
      expectYamlLoads(' foo\nbar\nbaz ', '''
        "
          foo

          \t bar

          baz
        "''');
    });
  });

  group('6.6: Comments', () {
    test('must be separated from other tokens by white space characters', () {
      expectYamlLoads('foo#bar', 'foo#bar');
      expectYamlLoads('foo:#bar', 'foo:#bar');
      expectYamlLoads('-#bar', '-#bar');
    });

    test('[Example 6.9]', () {
      expectYamlLoads({'key': 'value'}, '''
        key:    # Comment
          value''');
    });

    group('outside of scalar content', () {
      test('may appear on a line of their own', () {
        expectYamlLoads([1, 2], '''
        - 1
        # Comment
        - 2''');
      });

      test('are independent of indentation level', () {
        expectYamlLoads([
          [1, 2]
        ], '''
        -
          - 1
         # Comment
          - 2''');
      });

      test('include lines containing only white space characters', () {
        expectYamlLoads([1, 2], '''
        - 1
          \t
        - 2''');
      });
    });

    group('within scalar content', () {
      test('may not appear on a line of their own', () {
        expectYamlLoads(['foo\n# not comment\nbar\n'], '''
        - |
          foo
          # not comment
          bar
        ''');
      });

      test("don't include lines containing only white space characters", () {
        expectYamlLoads(['foo\n  \t   \nbar\n'], '''
        - |
          foo
            \t
          bar
        ''');
      });
    });

    test('[Example 6.10]', () {
      expectYamlLoads(null, '''
          # Comment

        ''');
    });

    test('[Example 6.11]', () {
      expectYamlLoads({'key': 'value'}, '''
        key:    # Comment
                # lines
          value
        ''');
    });

    group('ending a block scalar header', () {
      test('may not be followed by additional comment lines', () {
        expectYamlLoads(['# not comment\nfoo\n'], '''
        - | # comment
            # not comment
            foo
        ''');
      });
    });
  });

  group('6.7: Separation Lines', () {
    test('may not be used within implicit keys', () {
      expectYamlFails('''
        [1,
         2]: 3''');
    });

    test('[Example 6.12]', () {
      var doc = deepEqualsMap();
      doc[{'first': 'Sammy', 'last': 'Sosa'}] = {'hr': 65, 'avg': 0.278};
      expectYamlLoads(doc, '''
        { first: Sammy, last: Sosa }:
        # Statistics:
          hr:  # Home runs
             65
          avg: # Average
           0.278''');
    });
  });

  group('6.8: Directives', () {
    // TODO(nweiz): assert that this produces a warning
    test('[Example 6.13]', () {
      expectYamlLoads('foo', '''
        %FOO  bar baz # Should be ignored
                      # with a warning.
        --- "foo"''');
    });

    // TODO(nweiz): assert that this produces a warning.
    test('[Example 6.14]', () {
      expectYamlLoads('foo', '''
        %YAML 1.3 # Attempt parsing
                   # with a warning
        ---
        "foo"''');
    });

    test('[Example 6.15]', () {
      expectYamlFails('''


// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (c) 2021 Nuvoton Technology Corp.
 */

#include <dm.h>
#include <dt-bindings/clock/nuvoton,npcm7xx-clock.h>
#include "clk_npcm.h"

/* Parent clock map */
static const struct parent_data pll_parents[] = {
	{NPCM7XX_CLK_PLL0, 0},
	{NPCM7XX_CLK_PLL1, 1},
	{NPCM7XX_CLK_REFCLK, 2},
	{NPCM7XX_CLK_PLL2DIV2, 3}
};

static const struct parent_data cpuck_parents[] = {
	{NPCM7XX_CLK_PLL0, 0},
	{NPCM7XX_CLK_PLL1, 1},
	{NPCM7XX_CLK_REFCLK, 2},
};

static const struct parent_data apb_parent[] = {{NPCM7XX_CLK_AHB, 0}};

static struct npcm_clk_pll npcm7xx_clk_plls[] = {
	{NPCM7XX_CLK_PLL0, NPCM7XX_CLK_REFCLK, PLLCON0, 0},
	{NPCM7XX_CLK_PLL1, NPCM7XX_CLK_REFCLK, PLLCON1, POST_DIV2},
	{NPCM7XX_CLK_PLL2, NPCM7XX_CLK_REFCLK, PLLCON2, 0},
	{NPCM7XX_CLK_PLL2DIV2, NPCM7XX_CLK_REFCLK, PLLCON2, POST_DIV2}
};

static struct npcm_clk_select npcm7xx_clk_selectors[] = {
	{NPCM7XX_CLK_AHB, cpuck_parents, CLKSEL, NPCM7XX_CPUCKSEL, 3, 0},
	{NPCM7XX_CLK_APB2, apb_parent, 0, 0, 1, FIXED_PARENT},
	{NPCM7XX_CLK_APB5, apb_parent, 0, 0, 1, FIXED_PARENT},
	{NPCM7XX_CLK_SPI0, apb_parent, 0, 0, 1, FIXED_PARENT},
	{NPCM7XX_CLK_SPI3, apb_parent, 0, 0, 1, FIXED_PARENT},
	{NPCM7XX_CLK_SPIX, apb_parent, 0, 0, 1, FIXED_PARENT},
	{NPCM7XX_CLK_UART, pll_parents, CLKSEL, UARTCKSEL, 4, 0},
	{NPCM7XX_CLK_TIMER, pll_parents, CLKSEL, TIMCKSEL, 4, 0},
	{NPCM7XX_CLK_SDHC, pll_parents, CLKSEL, SDCKSEL, 4, 0}
};

static struct npcm_clk_div npcm7xx_clk_dividers[] = {
	{NPCM7XX_CLK_AHB, CLKDIV1, CLK4DIV, DIV_TYPE1 | PRE_DIV2},
	{NPCM7XX_CLK_APB2, CLKDIV2, APB2CKDIV, DIV_TYPE2},
	{NPCM7XX_CLK_APB5, CLKDIV2, APB5CKDIV, DIV_TYPE2},
	{NPCM7XX_CLK_SPI0, CLKDIV3, SPI0CKDIV, DIV_TYPE1},
	{NPCM7XX_CLK_SPI3, CLKDIV1, SPI3CKDIV, DIV_TYPE1},
	{NPCM7XX_CLK_SPIX, CLKDIV3, SPIXCKDIV, DIV_TYPE1},
	{NPCM7XX_CLK_UART, CLKDIV1, UARTDIV1, DIV_TYPE1},
	{NPCM7XX_CLK_TIMER, CLKDIV1, TIMCKDIV, DIV_TYPE2},
	{NPCM7XX_CLK_SDHC, CLKDIV1, MMCCKDIV, DIV_TYPE1}
};

static struct npcm_clk_data npcm7xx_clk_data = {
	.clk_plls = npcm7xx_clk_plls,
	.num_plls = ARRAY_SIZE(npcm7xx_clk_plls),
	.clk_selectors = npcm7xx_clk_selectors,
	.num_selectors = ARRAY_SIZE(npcm7xx_clk_selectors),
	.clk_dividers = npcm7xx_clk_dividers,
	.num_dividers = ARRAY_SIZE(npcm7xx_clk_dividers),
	.refclk_id = NPCM7XX_CLK_REFCLK,
	.pll0_id = NPCM7XX_CLK_PLL0,
};

static int npcm7xx_clk_probe(struct udevice *dev)
{
	struct npcm_clk_priv *priv = dev_get_priv(dev);

	priv->base = dev_read_addr_ptr(dev);
	if (!priv->base)
		return -EINVAL;

	priv->clk_data = &npcm7xx_clk_data;
	priv->num_clks = NPCM7XX_NUM_CLOCKS;

	return 0;
}

static const struct udevice_id npcm7xx_clk_ids[] = {
	{ .compatible = "nuvoton,npcm750-clk" },
	{ }
};

U_BOOT_DRIVER(clk_npcm) = {
	.name           = "clk_npcm",
	.id             = UCLASS_CLK,
	.of_match       = npcm7xx_clk_ids,
	.ops            = &npcm_clk_ops,
	.priv_auto	= sizeof(struct npcm_clk_priv),
	.probe          = npcm7xx_clk_probe,
	.flags = DM_FLAG_PRE_RELOC,
};


final int money;

	public GMViewWarehouseWithdrawList(final L2PcInstance cha)
	{
		activeChar = cha;
		items = activeChar.getWarehouse().getItems();
		playerName = activeChar.getName();
		money = activeChar.getAdena();
	}

	@Override
	protected final void writeImpl()
	{
		writeC(0x95);
		writeS(playerName);
		writeD(money);
		writeH(items.length);

		for (final L2ItemInstance item : items)
		{
			writeH(item.getItem().getType1());

			writeD(item.getObjectId());
			writeD(item.getItemId());
			writeD(item.getCount());
			writeH(item.getItem().getType2());
			writeH(item.getCustomType1());

			switch (item.getItem().getType2())
			{
				case L2Item.TYPE2_WEAPON:
				{
					writeD(item.getItem().getBodyPart());
					writeH(item.getEnchantLevel());
					writeH(((L2Weapon) item.getItem()).getSoulShotCount());
					writeH(((L2Weapon) item.getItem()).getSpiritShotCount());
					break;
				}

				case L2Item.TYPE2_SHIELD_ARMOR:
				case L2Item.TYPE2_ACCESSORY:
				case L2Item.TYPE2_PET_WOLF:
				case L2Item.TYPE2_PET_HATCHLING:
				case L2Item.TYPE2_PET_STRIDER:
				case L2Item.TYPE2_PET_BABY:
				{
					writeD(item.getItem().getBodyPart());
					writeH(item.getEnchantLevel());
					writeH(0x00);
					writeH(0x00);
					break;
				}
			}

			writeD(item.getObjectId());

			switch (item.getItem().getType2())
			{
				case L2Item.TYPE2_WEAPON:
				{
					if (item.isAugmented())
					{
						writeD(0x0000FFFF & item.getAugmentation().getAugmentationId());
						writeD(item.getAugmentation().getAugmentationId() >> 16);
					}
					else
					{
						writeD(0);
						writeD(0);
					}

					break;
				}

				case L2Item.TYPE2_SHIELD_ARMOR:
				case L2Item.TYPE2_ACCESSORY:
				case L2Item.TYPE2_PET_WOLF:
				case L2Item.TYPE2_PET_HATCHLING:
				case L2Item.TYPE2_PET_STRIDER:
				case L2Item.TYPE2_PET_BABY:
				{
					writeD(0);
					writeD(0);
				}
			}
		}
	}

	@Override
	public String getType()
	{
		return "[S] 95 GMViewWarehouseWithdrawList";
	}
}
package com.l24team.gameserver.network.serverpackets;

import com.l24team.Config;
import com.l24team.gameserver.model.TradeList.TradeItem;
import com.l24team.gameserver.model.actor.instance.L2PcInstance;

/**
 * 3 section to this packet 1)playerinfo which is always sent dd 2)list of items which can be added to sell d(hhddddhhhd) 3)list of items which have already been setup for sell in previous sell private store sell manageent d(hhddddhhhdd) *
 * @version $Revision: 1.3.2.1.2.3 $ $Date: 2005/03/27 15:29:39 $
 */

/*
 * In memory of our friend Vadim 03/11/2014
 */
public class PrivateStoreManageListS


TR>

  SUMMARY: NESTED | FIELD | CONSTR | METHOD

DETAIL: FIELD | CONSTR | METHOD

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<title>ConfigWriter (JHOVE Documentation)</title>
<meta name="date" content="2012-10-21">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">

JavaScript is disabled on your browser.

Overview

Package

Class

Tree

Deprecated

Index

Help

Prev Class

Next Class

Frames

No Frames

All Classes

Summary:

Nested |

<li


.9% 90%);
    --sidebar-ring: hsl(240 5.9% 10%);
  }

  [data-theme="slate"] {
    --background: hsl(0 0% 100%);
    --foreground: hsl(222.2 84% 4.9%);
    --card: hsl(0 0% 100%);
    --card-foreground: hsl(222.2 84% 4.9%);
    --popover: hsl(0 0% 100%);
    --popover-foreground: hsl(222.2 84% 4.9%);
    --primary: hsl(222.2 47.4% 11.2%);
    --primary-foreground: hsl(210 40% 98%);
    --secondary: hsl(210 40% 96.1%);
    --secondary-foreground: hsl(222.2 47.4% 11.2%);
    --muted: hsl(210 40% 96.1%);
    --muted-foreground: hsl(215.4 16.3% 46.9%);
    --accent: hsl(210 40% 96.1%);
    --accent-foreground: hsl(222.2 47.4% 11.2%);
    --destructive: hsl(0 84.2% 60.2%);
    --destructive-foreground: hsl(210 40% 98%);
    --border: hsl(214.3 31.8% 91.4%);
    --input: hsl(214.3 31.8% 91.4%);
    --ring: hsl(222.2 84% 4.9%);
    --radius: 0.6rem;
    --chart-1: hsl(12 76% 61%);
    --chart-2: hsl(173 58% 39%);
    --chart-3: hsl(197 37% 24%);
    --chart-4: hsl(43 74% 66%);
    --chart-5: hsl(27 87% 67%);
    --sidebar: hsl(210 40% 98%);
    --sidebar-foreground: hsl(222.2 84% 4.9%);
    --sidebar-primary: hsl(222.2 47.4% 11.2%);
    --sidebar-primary-foreground: hsl(210 40% 98%);
    --sidebar-accent: hsl(210 40% 96.1%);
    --sidebar-accent-foreground: hsl(222.2 47.4% 11.2%);
    --sidebar-border: hsl(214.3 31.8% 91.4%);
    --sidebar-ring: hsl(222.2 84% 4.9%);
  }

  [data-theme="stone"] {
    --background: hsl(0 0% 100%);
    --foreground: hsl(28 25% 8%);
    --card: hsl(0 0% 100%);
    --card-foreground: hsl(28 25% 8%);
    --popover: hsl(0 0% 100%);
    --popover-foreground: hsl(28 25% 8%);
    --primary: hsl(28 25% 15%);
    --primary-foreground: hsl(60 9.1% 97.8%);
    --secondary: hsl(60 4.8% 95.9%);
    --secondary-foreground: hsl(28 25% 15%);
    --muted: hsl(60 4.8% 95.9%);
    --muted-foreground: hsl(25 5.3% 44.7%);
    --accent: hsl(60 4.8% 95.9%);
    --accent-foreground: hsl(28 25% 15%);
    --destructive: hsl(0 84.2% 60.2%);
    --destructive-foreground: hsl(60 9.1% 97.8%);
    --border: hsl(20 5.9% 90%);
    --input: hsl(20 5.9% 90%);
    --ring: hsl(28 25% 8%);
    --radius: 0.6rem;
    --chart-1: hsl(12 76% 61%);
    --chart-2: hsl(173 58% 39%);
    --chart-3: hsl(197 37% 24%);


duration_hr_per_short
                UnitWidth.LONG -> R.string.duration_hr_per_long
                UnitWidth.NARROW -> R.string.duration_hr_per_short
            },
            formatWithAndroidTranslations(
                context = context,
                value = value,
                valueWidth = valueWidth,
                unitWidth = unitWidth,
                locale = locale,
                useNumberFormatter = useNumberFormatter,
                useMeasureFormat = useMeasureFormat
            )
        )
    }

    companion object {

        /**
         * Copyright © 1991-Present Unicode, Inc.
         * License: Unicode License v3 https://www.unicode.org/license.txt
         * Source (simplified): https://github.com/unicode-org/cldr/blob/3f3967f3cbadc56bbb44a9aed20784e82ac64c67/common/supplemental/units.xml#L474-L478
         */
        fun getDefaultUnit(
            locale: Locale = Locale.getDefault(),
        ) = when (locale.country) {
            "BR" -> CENTIMETER
            "US" -> INCH
            else -> MILLIMETER
        }

        /**
         * Copyright © 1991-Present Unicode, Inc.
         * License: Unicode License v3 https://www.unicode.org/license.txt
         * Source (simplified): https://github.com/unicode-org/cldr/blob/3f3967f3cbadc56bbb44a9aed20784e82ac64c67/common/supplemental/units.xml#L498-L501
         */
        fun getDefaultSnowfallUnit(
            locale: Locale,
        ) = when (locale.country) {
            "US" -> INCH
            else -> CENTIMETER
        }

        fun getUnit(id: String): PrecipitationUnit? {
            return entries.firstOrNull { it.id == id }
        }
    }
}

/** Converts the given time precipitation [value] expressed in the specified [sourceUnit] into the specified [targetUnit]. */
internal fun convertPrecipitationUnit(
    value: Double,
    sourceUnit: PrecipitationUnit,
    targetUnit: PrecipitationUnit,
): Double {
    return if (sourceUnit == PrecipitationUnit.MICROMETER) {
        targetUnit.convertFromReference(value)
    } else if (targetUnit == PrecipitationUnit.MICROMETER) {
        sourceUnit.convertToReference(value)
    } else {
        targetUnit.convertFromReference(sourceUnit.convertToReference(value))
    }
}
/**
 * Copyright 2020 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.google.maps.android

import com.google.maps.android.model.LatLng

/**
 * Ported from https://github.com/googlemaps/js-polyline-codec/blob/main/src/index.ts
 * by Breezy Weather
 */
object EncodedPolylineUtil {

    fun decode(encodedPath: String): List<LatLng> {
        val factor = 1E5

        val coordinatesList = mutableListOf<LatLng>()
        var index = 0
        var lat = 0
        var lng = 0

        // This code has been profiled and optimized, so don't modify it without
        // measuring its performance.
        while (index < encodedPath.length) {
            // Fully unrolling the following loops speeds things up about 5%.
            var result = 1
            var shift = 0
            var b: Int
            do {
                // Invariant: "result" is current partial result plus (1 << shift).
                // The following line effectively clears this bit by decrementing "b".
                b = encodedPath[index++].


CPoints, dim), true);

  canvas.drawPath(cBP, blackPaint);
  canvas.drawPath(cYP, yellowPaint);
  canvas.drawPath(eLCP, blackPaint);
  canvas.drawPath(eRCP, blackPaint);
  canvas.drawPath(mCP, blackPaint);
}

void _drawD(
  Canvas canvas,
  DimensionConvert dim,
  Paint blackPaint,
  Paint bluePaint,
) {
  final List<List<double>> dPoints = [
    [52.03, 51.65], [35.80, 51.15], [35.29, 34.97], [53.47, 16.85], //
    [80.25, 16.85], [100.0, 36.53], [100.0, 63.23], [81.82, 81.36],
  ];

  final List<List<double>> eLDPoints = [
    [58.92, 44.50], [55.03, 40.85], [57.05, 35.41], [60.79, 35.70], //
    [64.28, 39.57], [63.91, 43.77],
  ];

  final List<List<double>> eRDPoints = [
    [68.45, 32.61], [66.79, 30.82], [68.46, 27.73], [71.51, 27.84], //
    [72.89, 28.81], [72.99, 32.30],
  ];

  final List<List<double>> mDPoints = [
    [76.76, 63.66], [73.56, 60.55], [73.10, 55.34], [77.17, 54.51], //
    [79.36, 52.13], [79.36, 52.13], [79.81, 45.16], [87.91, 44.22],
    [89.57, 56.60], [84.76, 57.34], [83.70, 63.45],
  ];

  final dP = Path()..addPolygon(genOffsetList(dPoints, dim), true);
  final eLDP = Path()..addPolygon(genOffsetList(eLDPoints, dim), true);
  final eRDP = Path()..addPolygon(genOffsetList(eRDPoints, dim), true);
  final mDP = Path()..addPolygon(genOffsetList(mDPoints, dim), true);

  canvas.drawPath(dP, blackPaint);
  canvas.drawPath(eLDP, bluePaint);
  canvas.drawPath(eRDP, bluePaint);
  canvas.drawPath(mDP, bluePaint);
}
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mocktail/mocktail.dart';
import 'package:yuno/app/interactor/actions/platform_action.dart';
import 'package:yuno/app/interactor/atoms/platform_atom.dart';
import 'package:yuno/app/interactor/models/embeds/game.dart';
import 'package:yuno/app/interactor/models/platform_model.dart';
import 'package:yuno/app/interactor/repositories/platform_repository.dart';
import 'package:yuno/app/interactor/repositories/storage_repository.dart';
import 'package:yuno/injector.dart';

class PlatformRepositoryMock extends Mock implements PlatformRepository {}

class StorageRepositoryMock extends Mock implements StorageRepository {}

class BuildContextMock extends Mock implements BuildContext {}

void main() {
  setUpAll(() {
    registerInjectAndroidConfig(injector);
  });
  group('PlatformAction |', () {
    test('Uri to path', () {
      expect(
        convertContentUriToFilePath(
            'content://com.android.externalstorage.documents/tree/primary%3AEmulation%2Frooms%2Fsnes/document/primary%3AEmulation%2Frooms%2Fsnes'),
        '/storage/emulated/0/Emulation/rooms/snes',
      );
    });

    test('clean name', () {
      final megaman = cleanName('Mega Man Zero 3.zip');
      expect(megaman, 'Mega Man Zero 3');
    });

    test('Sync games add', () {
      final currentGames = [
        Game(
          name: 'game 1',
          description: 'aaa',
          image: '',
          path: '/path1',
        ),
        Game(
          name: 'game 2',
          description: 'aaa',
          image: '',
          path: '/path2',
        ),
      ];
      final folderGames = [
        Game(
          name: 'game 1',
          description: '',
          image: '',
          path: '/path1',
        ),
        Ga


from "./solution";

// describe("Lario and Muigi Pipe Problem", () => {
//   it("Fixed tests", () => {
//     assert.deepEqual(pipeFix([1,2,3,5,6,8,9]),[1,2,3,4,5,6,7,8,9],'You must return an array from 1-9');
//     assert.deepEqual(pipeFix([1,2,3,12]),[1,2,3,4,5,6,7,8,9,10,11,12],'You must return an array from 1-12');
//     assert.deepEqual(pipeFix([6,9]),[6,7,8,9],'You must return an array from 6-9');
//     assert.deepEqual(pipeFix([-1,4]),[-1,0,1,2,3,4],'You must return an array from -1-4');
//     assert.deepEqual(pipeFix([1,2,3]),[1,2,3],'You must return an array from 1-3');
//     assert.deepEqual(pipeFix([2]),[2]);
//   });
// });
import {Component, OnInit} from '@angular/core';
import * as d3 from 'd3';

interface Film {
  title: string;
  year: number;
}

@Component({
  selector: 'app-films',
  templateUrl: './films.component.html',
  styleUrls: ['./films.component.scss']
})
export class FilmsComponent implements OnInit {

  filmList: Film[] = [];

  constructor() {
  }

  ngOnInit() {
    d3.csv('/assets/films.csv', film => {
      // Do something with the data
      this.filmList.push({
        title: film.Film,
        year: +film.Year,
      });
      return film;
    });

  }

}
/**
 * Downloads an array of objects to the user as a CSV
 */
export const downloadAsCsv = (data: {}[], filename: string) => {
  let csvContent = 'data:text/csv;charset=utf-8,';
  let csvContentEdge = '';

  const appendToContent = function (rowArray: string[]) {
    const row = rowArray.map((item) => JSON.stringify(item)).join(',');
    csvContent += encodeURI(row + '\r\n');
    csvContentEdge += row + '\\n';
  };

  appendToContent(Object.keys(data?.[0] || {}));

  data.forEach((item) => {
    appendToContent(
      Object.values<string>(item || {}).map((value) => {
        if (typeof value === 'string') {
          return value.replace(/<br \/>/g, ' ');
        }
        return value;
      }),
    );
  });

  let blob = new Blob([csvContentEdge], { type: 'text/csv;charset=utf-8' });

  if (window.navigator.userAgent.indexOf('Trident/') > -1) {
    window.navigator.msSaveBlob(blob, filename);
  } else {
    const downloadLink = document.createElement('a');

    downloadLink.href = csvContent;
    downloadLink.download = filename;
    document.body.appendChild(downloadLink); // Required for FF
    downloadLink.click();
  }
};
import test from "ava";
import { fake } from "sinon";
import { Factory } from "fishery";
import { stripIndent } from "common-tags";
import type { graphql as octokitGraphql, RequestParameters } from "@octokit/graphql/dist-types/types";
import type { FetchGitHubStatisticsOptions } from "./graphql-query.js";
import { fetchGitHubStatistics } from "./graphql-query.js";

const fetchGitHubStatisticsOptionsFactory = Factory.define<FetchGitHubStatisticsOptions>(() => {
	const graphql = fake.resolves(undefined) as unknown as octokitGraphql;
	return {
		graphql,
		gitHubBaseUrl: new URL("https://example.com/"),
		gitHubLogin: "username",
		gitHubApiToken: "my-token",
	};
});

const testFetchGitHubStatisticsMacro = test.macro<[keyof RequestParameters, unknown]>(
	async (t, requestParameter, expectedRequestParameters) => {


= int(dyF);\n\n          int wFPerm = ${t} - 1 - wF;\n\n          for (int wR = 0; wR < ${n}; wR++) {\n            float dyR = float(dyRCorner + wR) / ${o}.0;\n\n            if (dyR < 0.0 || dyR >= ${e.outHeight}.0 ||\n              fract(dyR) > 0.0) {\n              continue;\n            }\n            int idyR = int(dyR);\n\n            int wRPerm = ${n} - 1 - wR;\n\n            for (int wC = 0; wC < ${a}; wC++) {\n              float dyC = float(dyCCorner + wC) / ${s}.0;\n\n              if (dyC < 0.0 || dyC >= ${e.outWidth}.0 ||\n                  fract(dyC) > 0.0) {\n                continue;\n              }\n              int idyC = int(dyC);\n\n              int wCPerm = ${a} - 1 - wC;\n\n              for (int d2 = 0; d2 < ${e.outChannels}; d2++) {\n                float xValue = getDy(batch, idyF, idyR, idyC, d2);\n                float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n                dotProd += xValue * wValue;\n              }\n            }\n          }\n        }\n        setOutput(dotProd);\n      }\n    `}}const zH={kernelName:KE,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:a}=e,{x:r,dy:o}=t,{strides:s,pad:i,dataFormat:l,dimRoundingMode:c,filterShape:u}=a,p=eP(l),d=UR(r.shape,u,s,1,i,c,!1,p),f=new _H(d);return n.runWebGLProgram(f,[r,o],"float32")}};const VH={kernelName:QE,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:o}=t,{inputShape:s,strides:i,pad:l,dataFormat:c,dimRoundingMode:u}=a,p=eP(c),d=UR(s,o.shape,i,1,l,u,!1,p),f=new LH(d);return n.runWebGLProgram(f,[r,o],"float32")}};const HH={kernelName:ZE,backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:a}=e,{x:r,filter:o}=t,{strides:s,pad:i,dilations:l}=a,c=GR(r.shape,o.shape,s,l,i),u=new RH(c);return n.runWebGLProgram(u,[r,o],"float32")}};const jH={kernelName:"Conv3DBackpropFilterV2",backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:a}=e,{x:r,dy:o}=t,{strides:s,pad:i,filterShape:l}=a,c=GR(r.shape,l,s,1,i),u=new DH(c);return n.runWebGLProgram(u,[r,o],"float32")}};const WH={kernelName:"Conv3DBackpropInputV2",backendName:"webgl",kernelFunc:function(e){const{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:o}=t,{pad:s,strides:i,inputShape:l}=a,c=GR(l,o.shape,i,1,s),u=new FH(c);return n.runWebGLProgram(u,[r,o],"float32")}},UH={kernelName:"Cos",backendName:"webgl",kernelFunc:Vz({opSnippet:"if (isnan(x)) return x;\n  return cos(x);\n"})},GH=Vz({opSnip


Value);
        execTest("?" + unicodeStr + unicodeStr + "?", hexValue + hexValue);

        execTest("\"" + unicodeStr + "a" + unicodeStr + "\"", hexValue + "61" + hexValue);
        execTest("\\" + unicodeStr + "a" + unicodeStr + "\\", hexValue + "61" + hexValue);
        execTest(" " + unicodeStr + "a" + unicodeStr + " ", hexValue + "61"+ hexValue);
        execTest("'" + unicodeStr + "a" + unicodeStr + "'", hexValue + "61"+ hexValue);
        execTest("\t" + unicodeStr + "a" + unicodeStr + "\t", hexValue + "61"+ hexValue);
        execTest("*" + unicodeStr + "a" + unicodeStr + "*", hexValue + "61"+ hexValue);
        execTest("?" + unicodeStr + "a" + unicodeStr + "?", hexValue + "61"+ hexValue);

        execTest("\"" + unicodeStr + "\u00b1" + unicodeStr + "\"", hexValue + "b1" + hexValue);
        execTest("\\" + unicodeStr + "\u00b1" + unicodeStr + "\\", hexValue + "b1" + hexValue);
        execTest(" " + unicodeStr + "\u00b1" + unicodeStr + " ", hexValue + "b1"+ hexValue);
        execTest("'" + unicodeStr + "\u00b1" + unicodeStr + "'", hexValue + "b1"+ hexValue);
        execTest("\t" + unicodeStr + "\u00b1" + unicodeStr + "\t", hexValue + "b1"+ hexValue);
        execTest("*" + unicodeStr + "\u00b1" + unicodeStr + "*", hexValue + "b1"+ hexValue);
        execTest("?" + unicodeStr + "\u00b1" + unicodeStr + "?", hexValue + "b1"+ hexValue);
    }

    static void execTest(String unicodeStr, String hexValue) {
        TestResult tr = doExec(javaCmd,
                "-Dtest.src=" + TEST_SOURCES_DIR.getAbsolutePath(),
                "-Dtest.classes=" + TEST_CLASSES_DIR.getAbsolutePath(),
                "-cp", TEST_CLASSES_DIR.getAbsolutePath(),
                "I18NArgTest", unicodeStr, hexValue);
        System.out.println(tr.testOutput);
        if (!tr.isOK()) {
            System.err.println(tr);
            throw new RuntimeException("test fails");
        }

        // Test via JDK_JAVA_OPTIONS
        Map<String, String> env = new HashMap<>();
        String cmd = "-Dtest.src=" + TEST_SOURCES_DIR.getAbsolutePath() +
                " -Dtest.classes=" + TEST_CLASSES_DIR.getAbsolutePath() +
                " -cp " + TEST_CLASSES_DIR.getAbsolutePath() +
                " I18NArgTest " + unicodeStr + " " + hexValue;
        env.put("JDK_JAVA_OPTIONS", cmd);
        tr = doExec(env, javaCmd);
        System.out.println(tr.testOutput);
        if (!tr.isOK()) {
            System.err.println(tr);
            throw new RuntimeException("test fails");
        }
    }

    static void testCharacters(String... args) {
        String input = args[0];
        String expected = args[1];
        String hexValue = "";
        for (int i = 0; i < input.length(); i++) {
            hexValue = hexValue.concat(Integer.toHexString((int)input.charAt(i)));
        }
        System.out.println("input:" + input);
        System.out.println("expected:" + expected);
        System.out.println("obtained:" + hexValue);
        if (!hexValue.contains(expected)) {
            String message = "Error: output does not contain expected value" +
                "expected:" + expected + " obtained:" + hexValue;
            throw new RuntimeException(message);
        }
    }
}
/*
 * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.
 *
 * This code is distributed in the hope that it will be useful, but W


FileReadWord FileSeek FileWrite FileWriteByte FileWriteUTF16LE FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI FunctionEnd GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText Int64Cmp Int64CmpU Int64Fmt IntCmp IntCmpU IntFmt IntOp IntPtrCmp IntPtrCmpU IntPtrOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PageExEnd Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionEnd SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionGroupEnd SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegMultiStr WriteRegNone WriteRegStr WriteUninstaller XPStyle",literal:"admin all auto both bottom bzip2 colored components current custom directory false force hide highest ifdiff ifnewer instfiles lastused leave left license listonly lzma nevershow none normal notset off on open print right show silent silentlog smooth textonly top true try un.components un.custom un.directory un.instfiles un.license uninstConfirm user Win10 Win7 Win8 WinVista zlib"},contains:[e.HASH_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.COMMENT(";","$",{relevance:0}),{className:"function",beginKeywords:"Function PageEx Section SectionGroup",end:"$"},r,{className:"keyword",begin:/\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|if|ifdef|ifmacrodef|ifmacrondef|ifndef|include|insertmacro|macro|macroend|makensis|packhdr|searchparse|searchreplace|system|tempfile|undef|verbose|warning)/},t,a,n,{className:"params",begin:"(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|ID


��秋为首的上海市委极端漠视群众的首创精神，妄想扼杀《上海工人革命造反总司令部》，造成了轰动全国的“安亭事件”。施惠珍等一小撮人避而不谈“安亭事件”的起因，歪曲中央关于“抓革命，促生产”的正确指示，在厂内借宣传党的方针政策和学习《人民日报》社论为名，组织大批力量，大肆攻击《上海工人革命造反总司令部》，攻击本厂“造反队队员”。他们假“促生产”，实“压革命”。在他们的挑动下，甚至有些人叫嚷要饿死去安亭的革命造反派。

   中央文革小组张春桥同志同意《上海工人革命造反总司令部》的“双五条”，最坚决、最具体、最有力的支持了上海革命造反派，打掉了施惠珍等一小撮人的黄粱美梦。因而他们惊慌失措，深感自己混不下去，就拼命的封锁消息，歪曲事实，一口咬定“没有此事”。工作队员去小组到处游说，大肆造谣，说什么“中央规定不成立全国、全市性的工人组织。”等等等等，谎话连篇。但事实客观存在的，磨破了嘴皮还是一场空。

   越来越多的事实雄辩的证明，走资本主义道路的当权派，坚持走资产阶级反动路线的家伙，到实在混不下去的时候就靠制造谣言过日子，就靠“假促生产，来压革命”。这是他们种种法宝之一。

   (十四)赤膊上阵

   十一月十六日，中共中央颁布了《关于处理无产阶级文化大革命中档案材料问题的补充规定》，该文件第一条明确指出：“责成原工作组，学校党委，或者其它有关组织，必须将一九六六年五月十六日以后的各种整学生、整群众(包括整理过的，或者没有整理的材料)除这一文件宣布以前，确实已经焚毁外，全部集中不许隐瞒，不许转移，不许复制，不许私自处理。否则，就将加


glabel func_80A772A4
/* 02F94 80A772A4 27BDFFE0 */  addiu   $sp, $sp, 0xFFE0           ## $sp = FFFFFFE0
/* 02F98 80A772A8 AFA40020 */  sw      $a0, 0x0020($sp)
/* 02F9C 80A772AC 8FA50020 */  lw      $a1, 0x0020($sp)
/* 02FA0 80A772B0 3C078013 */  lui     $a3, 0x8013                ## $a3 = 80130000
/* 02FA4 80A772B4 3C0E8013 */  lui     $t6, 0x8013                ## $t6 = 80130000
/* 02FA8 80A772B8 24E733E0 */  addiu   $a3, $a3, 0x33E0           ## $a3 = 801333E0
/* 02FAC 80A772BC AFBF001C */  sw      $ra, 0x001C($sp)
/* 02FB0 80A772C0 25CE33E8 */  addiu   $t6, $t6, 0x33E8           ## $t6 = 801333E8
/* 02FB4 80A772C4 AFAE0014 */  sw


	return parsedColor.hex + newAlpha
}

function createColorWithOpacity(variable) {
	return ({ opacityValue }) => {
		if (opacityValue === undefined) {
			return `var(${variable})`
		}
		const opacity = parseFloat(opacityValue)
		if (isNaN(opacity)) {
			return `var(${variable})`
		}
		return `color-mix(in srgb, var(${variable}), transparent ${100 - opacity * 100}%)`
	}
}

/** @type {import('tailwindcss').Config} */
export default {
	darkMode: ["class"],
	content: ["./index.html", "./src/**/*.{js,ts,jsx,tsx}"],
	theme: {
		extend: {
			borderRadius: {
				lg: "var(--radius)",
				md: "calc(var(--radius) - 2px)",
				sm: "calc(var(--radius) - 4px)",
			},
			colors: {
				border: createColorWithOpacity("--vscode-widget-border"),
				input: createColorWithOpacity("--vscode-input-background"),
				ring: createColorWithOpacity("--vscode-focusBorder"),
				background: createColorWithOpacity("--vscode-diffEditor-unchangedRegionBackground"),
				foreground: createColorWithOpacity("--vscode-diffEditor-unchangedRegionForeground"),
				primary: {
					DEFAULT: createColorWithOpacity("--vscode-button-background"),
					foreground: createColorWithOpacity("--vscode-button-foreground"),
				},
				secondary: {
					DEFAULT: createColorWithOpacity("--vscode-button-secondaryBackground"),
					foreground: createColorWithOpacity("--vscode-button-secondaryForeground"),
				},
				destructive: {
					DEFAULT: createColorWithOpacity("--vscode-editorError-foreground"),
					foreground: createColorWithOpacity("--vscode-button-foreground"),
					// DEFAULT: createColorWithOpacity("--vscode-inputValidation-errorBackground"),
					// foreground: createColorWithOpacity("--vscode-inputValidation-errorForeground"),
				},
				muted: {
					DEFAULT: createColorWithOpacity("--vscode-editor-inactiveSelectionBackground"),
					foreground: createColorWithOpacity("--vscode-disabledForeground"),
				},
				accent: {
					DEFAULT: createColorWithOpacity("--vscode-button-secondaryBackground"),
					foreground: createColorWithOpacity("--vscode-button-secondaryForeground"),
				},
				popover: {
					DEFAULT: createColorWithOpacity("--vscode-editorWidget-background"),
					foreground: createColorWithOpacity("--vscode-editorWidget-foreground"),
				},
				card: {
					// DEFAULT: createColorWithOpacity("--vscode-sideBar-background"),
					// foreground: createColorWithOpacity("--vscode-sideBar-foreground"),
					DEFAULT: createColorWithOpacity("--vscode-editor-background"),
					foreground: createColorWithOpacity("--vscode-editor-foreground"),
				},
				chart: {
					1: createColorWithOpacity("--vscode-charts-red"),
					2: createColorWithOpacity("--vscode-charts-blue"),
					3: createColorWithOpacity("--vscode-charts-yellow"),
					4: createColorWithOpacity("--vscode-charts-orange"),
					5: createColorWithOpacity("--vscode-charts-green"),
				},
				success: {
					DEFAULT: createColorWithOpacity("--vscode-terminal-ansiGreen"),
					foreground: createColorWithOpacity("--vscode-button


": "AFT",
        "MSK": "MSK",
        "IRST": "IRST",
        "FET": "FET",
        "EET": "EET",
        "CET": "CET",
        "UTC": "UTC",
        "GMT": "GMT",
        "CVT": "CVT",
        "GST": "GST",
        "BRT": "BRT",
        "NST": "NST",
        "AST": "AST",
        "EST": "EST",
        "CST": "CST",
        "MST": "MST",
        "PST": "PST",
        "AKST": "AKST",
        "MIT": "MIT",
        "HST": "HST",
        "SST": "SST",
        "BIT": "BIT",
        "CHADT": "CHADT",
        "NZDT": "NZDT",
        "AEDT": "AEDT",
        "ACDT": "ACDT",
        "AZST": "AZST",
        "IRDT": "IRDT",
        "EEST": "EEST",
        "CEST": "CEST",
        "BST": "BST",
        "PMDT": "PMDT",
        "ADT": "ADT",
        "NDT": "NDT",
        "EDT": "EDT",
        "CDT": "CDT",
        "MDT": "MDT",
        "PDT": "PDT",
        "AKDT": "AKDT",
        "HADT": "HADT"
};
Date.CultureStrings.lang = "fr-FR";
/*
 * DateJS Culture String File
 * Country Code: sr-Cyrl-CS
 * Name: Serbian (Cyrillic, Serbia)
 * Format: "key" : "value"
 * Key is the en-US term, Value is the Key in the current language.
 */
Date.CultureStrings = Date.CultureStrings || {};
Date.CultureStrings["sr-Cyrl-CS"] = {
        "name": "sr-Cyrl-CS",
        "englishName": "Serbian (Cyrillic, Serbia)",
        "nativeName": "српски (Србија)",
        "Sunday": "недеља",
        "Monday": "понедељак",
        "Tuesday": "уторак",
        "Wednesday": "среда",
        "Thursday": "четвртак",
        "Friday": "петак",
        "Saturday": "субота",
        "Sun": "нед",
        "Mon": "пон",
        "Tue": "уто",
        "Wed": "сре",
        "Thu": "чет",
        "Fri": "пет",
        "Sat": "суб",
        "Su": "не",
        "Mo": "по",
        "Tu": "ут",
        "We": "ср",
        "Th": "че",
        "Fr": "пе",
        "Sa": "су",
        "S_Sun_Initial": "н",
        "M_Mon_Initial": "п",
        "T_Tue_Initial": "у",
        "W_Wed_Initial": "с",
        "T_Thu_Initial": "ч",
        "F_Fri_Initial": "п",
        "S_Sat_Initial": "с",
        "January": "јануар",
        "February": "фебруар",
        "March": "март",
        "April": "април",
        "May": "мај",
        "June": "јун",
        "July": "јул",
        "August": "август",
        "September": "сеп


s2_ebt_r0_1[i],
		dihedral_class2_ebt_r0_2[i]);

      fprintf(fp,"\nAngleTorsion Coeffs\n\n");
      for (int i = 1; i <= ndihedraltypes; i++)
	fprintf(fp,"%d %g %g %g %g %g %g %g %g\n",i,
		dihedral_class2_at_f1_1[i],dihedral_class2_at_f2_1[i],
		dihedral_class2_at_f3_1[i],
		dihedral_class2_at_f1_2[i],dihedral_class2_at_f2_2[i],
		dihedral_class2_at_f3_2[i],
		dihedral_class2_at_theta0_1[i]/PI*180.0,
		dihedral_class2_at_theta0_2[i]/PI*180.0);

      fprintf(fp,"\nAngleAngleTorsion Coeffs\n\n");
      for (int i = 1; i <= ndihedraltypes; i++)
	fprintf(fp,"%d %g %g %g\n",i,
		dihedral_class2_aat_k[i],
		dihedral_class2_aat_theta0_1[i]/PI*180.0,
		dihedral_class2_aat_theta0_2[i]/PI*180.0);

      fprintf(fp,"\nBondBond13 Coeffs\n\n");
      for (int i = 1; i <= ndihedraltypes; i++)
	fprintf(fp,"%d %g %g %g\n",i,
		dihedral_class2_bb13_k[i],
		dihedral_class2_bb13_r10[i],dihedral_class2_bb13_r30[i]);

    } else if (strcmp(dihedral_style,"harmonic") == 0) {
      for (int i = 1; i <= ndihedraltypes; i++)
	fprintf(fp,"%d %g %d %d\n",i,
		dihedral_harmonic_k[i],dihedral_harmonic_multiplicity[i],
		dihedral_harmonic_sign[i]);

    } else if (strcmp(dihedral_style,"helix") == 0) {
      for (int i = 1; i <= ndihedraltypes; i++)
	fprintf(fp,"%d %g %g %g\n",i,dihedral_helix_aphi[i],
		dihedral_helix_bphi[i],dihedral_helix_cphi[i]);

    } else if (strcmp(dihedral_style,"multi/harmonic") == 0) {
      for (int i = 1; i <= ndihedraltypes; i++)
	fprintf(fp,"%d %g %g %g %g %g\n",i,
		dihedral_multi_a1[i],dihedral_multi_a2[i],
		dihedral_multi_a3[i],dihedral_multi_a4[i],
		dihedral_multi_a5[i]);

    } else if (strcmp(dihedral_style,"opls") == 0) {
      for (int i = 1; i <= ndihedraltypes; i++)        // restore factor of 2
	fprintf(fp,"%d %g %g %g %g\n",i,
		2.0*dihedral_opls_k1[i],2.0*dihedral_opls_k2[i],
		2.0*dihedral_opls_k3[i],2.0*dihedral_opls_k4[i]);
    }
  }

  if (improper_style) {
    double PI = 3.1415926;           // convert back to degrees

    if ((strcmp(improper_style,"none") != 0) &&
	(strcmp(improper_style,"hybrid") != 0))
      fprintf(fp,"\nImproper Coeffs\n\n");

    if (strcmp(improper_style,"class2") ==


551] = "玛克拉克的徽记",
[3552] = "戈洛姆斯的徽记",
[3553] = "玛格索尔的徽记",
[3554] = "意志之冠",
[3555] = "所罗门法袍",
[3556] = "恐怖法师帽",
[3558] = "沼泽守护者长袍",
[3559] = "守夜人护手",
[3560] = "荣耀衬肩",
[3561] = "弹力雨布",
[3562] = "辩护腰带",
[3563] = "水手的长裤",
[3564] = "一箱铁材",
[3565] = "沾酒的手套",
[3566] = "迅猛龙杀手护甲",
[3567] = "矮人钓鱼竿",
[3569] = "牧师之袍",
[3570] = "碾骨槌",
[3571] = "穴居人巨锤",
[3572] = "达瑞尔的短剑",
[3573] = "狩猎箭袋",
[3574] = "猎枪弹药包",
[3575] = "铁锭",
[3576] = "锡锭",
[3577] = "金锭",
[3578] = "收割者的短裤",
[3581] = "锯齿小刀",
[3582] = "耐酸披风",
[3583] = "风化腰带",
[3585] = "迷彩外套",
[3586] = "削木斧",
[3587] = "镶边腰带",
[3588] = "镶边护腕",
[3589] = "重纹腰带",
[3590] = "重纹护腕",
[3591] = "软布腰带",
[3592] = "软布护腕",
[3593] = "赤色腰带",
[3594] = "赤色护腕",
[3595] = "破布腰带",
[3596] = "破布护腕",
[3597] = "厚布腰带",
[3598] = "厚布护腕",
[3599] = "薄布腰带",
[3600] = "薄布护腕",
[3601] = "辛迪加信件",
[3602] = "针织腰带",
[3603] = "针织护腕",
[3604] = "守夜人的弹药包",
[3605] = "守夜人箭袋",
[3606] = "机织布腰带",
[3607] = "机织布护腕",
[3608] = "设计图：巨型铁锤",
[3609] = "设计图：铜质链甲外衣",
[3610] = "设计图：铜质宝石手套",
[3611] = "设计图：绿铁战靴",
[3612] = "设计图：绿铁手套


um::Bytes(b"".to_vec()), Datum::Null),
            // missing a byte ipv4
            (Datum::Bytes(vec![0x20, 0x01, 0x0d]), Datum::Null),
            // missing a byte ipv6
            (
                Datum::Bytes(vec![
                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF,
                    0xFF, 0xFF,
                ]),
                Datum::Null,
            ),
            (Datum::Null, Datum::Null),
        ];

        let mut ctx = EvalContext::default();
        for (input, exp) in cases {
            let input = datum_expr(input);
            let op = scalar_func_expr(ScalarFuncSig::Inet6Ntoa, &[input]);
            let op = Expression::build(&mut ctx, op).unwrap();
            let got = op.eval(&mut ctx, &[]).unwrap();
            assert_eq!(got, exp);
        }
    }

    #[test]
    fn test_uuid() {
        let mut ctx = EvalContext::default();
        let op = scalar_func_expr(ScalarFuncSig::Uuid, &[]);
        let op = Expression::build(&mut ctx, op).unwrap();
        let got = op.eval(&mut ctx, &[]).unwrap();
        let r = got.into_string().unwrap_or_default();
        let v: Vec<&str> = r.split('-').collect();
        assert_eq!(v.len(), 5);
        assert_eq!(v[0].len(), 8);
        assert_eq!(v[1].len(), 4);
        assert_eq!(v[2].len(), 4);
        assert_eq!(v[3].len(), 4);
        assert_eq!(v[4].len(), 12);
    }
}
<reponame>chibby0ne/advent_of_code_2020<gh_stars>1-10
// --- Day 9: Encoding Error ---

// With your neighbor happily enjoying their video game, you turn your attention to an open data
// port on the little screen in the seat in front of you.

// Though the port is non-standard, you manage to connect it to your computer through the clever
// use of several paperclips. Upon connection, the port outputs a series of numbers (your puzzle
// input).

// The data appears to be encrypted with the eXchange-Masking Addition System (XMAS) which,
// conveniently for you, is an old cypher with an important weakness.

// XMAS starts by transmitting a preamble of 25 numbers. After that, each number you receive should
// be the sum of any two of the 25 immediately previous numbers. The two numbers will have
// different values, and there might be more than one such pair.

// For example, suppose your preamble consists of the numbers 1 through 25 in a random order. To be
// valid, the next number must be the sum of two of those numbers:

//     26 would be a valid next number, as it could be 1 plus 25 (or many other pairs, like 2 and 24).
//     49 would be a valid next number, as it is the sum of 24 and 25.
//     100 would not be valid; no two of the previous 25 numbers sum to 100.
//     50 would also not be valid; although 25 appears in the previous 25 numbers, the two numbers
//        in the pair must be different.

// Suppose the 26th number is 45, and the first number (no longer an option, as it is more than 25
// numbers ago) was 20.


//				.mapToObj(i -> { if(i == 5) { throw new RuntimeException("x"); } return i;})
//				.forEach(x -> System.out.println(x));
//		} catch(Exception e) {
//			System.out.println("early exit");
//		}

	}

//    public static void main(String[] args) {
//        Multimap<String, Integer> m = HashMultimap.create();
//
//        m.put("a", 1);
//        m.put("a", 3);
//
//        m.put("b", 1);
//        m.put("b", 3);
//        m.put("b", 4);
//        F
//        Stream<CombinationStack<String, Integer, Object>> s = KPermutationsOfNUtils.kPermutationsOfN(m);
//
//        s.forEach(i -> System.out.println(i.asList()));
//    }

    //public static void

    public static <A, B, S> Collection<ProblemNeighborhoodAware<Map<Var, Var>, Var>> createProblemsFromUnaryAncestors(List<A> aOps, List<B> bOps) {
        // for now the sequences must match
        int as = aOps.size();
        int bs = bOps.size();

        Collection<ProblemNeighborhoodAware<Map<Var, Var>, Var>> result = new ArrayList<>();
        if(as == bs) {
            for(int i = 0; i < as; ++i) {
                A a = aOps.get(i);
                B b = bOps.get(i);

                Collection<ProblemNeighborhoodAware<Map<Var, Var>, Var>> problems = SparqlViewMatcherUtils.createProblems(a, b);
                result.addAll(problems);
            }
        }

        return result;
    }

//    public static void foo() {
//        Dataset ds = DatasetFactory.create();
//
//        Model evals = ModelFactory.createDefaultModel();
//
//        JsonObject jo = null;
//        for(Entry<String, JsonElement> e : jo.entrySet()) {
//            switch(e.getKey()) {
//            case "foobar":
//                Triple x;
//                StringUtils.md5Hash("" + x);
//                Resource r = evals.createResource("http://eval1");
//                    r
//                        .addLiteral(RDF.type, r.getModel().createResource("http://verlinks.aksw.org/ontology/LinkEval"))
//                        .addLiteral(arg0, );
//                break;
//            }
//        }
//
//        ds.addNamedModel("http://myevals", evals);
//        NQuadsWriter.write(System.out, ds.asDatasetGraph().find());
//    }

    public static Entry<Map<Op, Op>, List<ProblemNeighborhoodAware<Map<Var, Var>, Var>>> augmentUnaryOpMappings(
            Op sourceNode,
            Op targetNode,
            Tree<Op> sourceTree,
            Tree<Op> targetTree,
            Tree<Op> sourceMultiaryTree,
            Tree<Op> targetMultiaryTree,
            BiFunction<Op, Op, List<ProblemNeighborhoodAware<Map<Var, Var>, Var>>> valueComputation
    ) {
        Stream<Combination<Op, Op, List<ProblemNeighborhoodAware<Map<Var, Var>, Var>>>> stream = augmentUnaryMappings(
            sourceNode, targetNode,
            sourceTree, targetTree,
            sourceMultiaryTree, targetMultiaryTree,
            valueComputation);

        Map<Op, Op> varMapping = new HashMap<Op, Op>();
        List<ProblemNeighborhoodAware<Map<Var, Var>, Var>> problems = new ArrayList<>();

        stream.forEach(e -> {
            Op sourceOp = e.getKey();
            Op targetOp = e.getValue();
            List<ProblemNeighborhoodAware<Map<Var, Var>, Var>> ps = e.getSolution();

            varMapping.put(sourceOp, t


PreDraw {
            startPostponedEnterTransition()
            startEntranceAnimations()
        }
    }

    private fun initViews() {
        // 输入字段
        chatApiUrlInput = findViewById(R.id.chat_api_url)
        chatApiKeyInput = findViewById(R.id.chat_api_key)
        memoryApiUrlInput = findViewById(R.id.memory_api_url)
        memoryApiKeyInput = findViewById(R.id.memory_api_key)
        memoryModelNameInput = findViewById(R.id.memory_model_name)

        // 卡片和标题
        chatApiCard = findViewById(R.id.chat_api_card)
        memoryApiCard = findViewById(R.id.memory_api_card)
        titleText = findViewById(R.id.title_text)
        hintText = findViewById(R.id.hint_text)

        // 按钮和容器
        saveButton = findViewById(R.id.save_button)
        buttonContainer = findViewById(R.id.button_container)

        // 设置动画初始状态
        chatApiCard.alpha = 0f
        chatApiCard.translationY = 100f

        memoryApiCard.alpha = 0f
        memoryApiCard.translationY = 100f

        buttonContainer.alpha = 0f
        buttonContainer.translationY = 100f

        titleText.alpha = 0f
        titleText.translationY = -50f
    }

    private fun loadSettings() {
        // 加载聊天模型API设置
        chatApiUrlInput.setText(ApiConfig.getChatApiUrl(this))
        chatApiKeyInput.setText(ApiConfig.getChatApiKey(this))

        // 加载记忆模型API设置
        memoryApiUrlInput.setText(ApiConfig.getMemoryApiUrl(this))
        memoryApiKeyInput.setText(ApiConfig.getMemoryApiKey(this))
        memoryModelNameInput.setText(ApiConfig.getMemoryModelName(this))
    }

    private fun saveSettings() {
        // 获取并保存聊天模型API设置
        val chatApiUrl = chatApiUrlInput.text.toString().trim()
        val chatApiKey = chatApiKeyInput.text.toString().trim()

        // 获取并保存记忆模型API设置
        val memoryApiUrl = memoryApiUrlInput.text.toString().trim()
        val memoryApiKey = memoryApiKeyInput.text.toString().trim()
        val memoryModelName = memoryModelNameInput.text.toString().trim()

        // 验证输入
        if (chatApiUrl.isEmpty() || memoryApiUrl.isEmpty() || memoryModelName.isEmpty()) {
            Toast.makeText(this, "请填写所有必填字段", Toast.LENGTH_SHORT).show()
            // 对空字段添加震动动画
            if (chatApiUrl.isEmpty()) shakeView(findViewById(R.id.chat_api_url_layout))
            if (memoryApiUrl.isEmpty()) shakeView(findViewById(R.id.memory_api_url_layout))
            if (memoryModelName.isEmpty()) shakeView(findViewById(R.id.memory_model_name_layout))
            return
        }

        // 保存设置
        ApiConfig.saveChatApiSettings(this, chatApiUrl, chatApiKey)
        ApiConfig.saveMemoryApiSettings(this, memoryApiUrl, memoryApiKey, memoryModelName)

        // 提供震动反馈
        HapticUtils.performViewHapticFeedback(saveButton)

        // 显示成功提示并带有动画
        showSuccessToast()

        // 关闭当前页面
        finishWithAnimation()
    }

    /**
     * 开始入场动画
     */
    private fun startEntranceAnimations() {
        // 标题文本动画
        val titleAnim = AnimatorSet().apply {
            playTogether(
                ObjectAnimator.ofFloat(titleText, "alpha", 0f, 1f),
                ObjectAnim


(StatusCode::OK)
        .content_type("text/xml; charset=utf-8")
        .body(check_response))
}

#[post("/download_request.php")]
async fn download_request_php(data: Data<SharedData>) -> Result<HttpResponse> {
    let mut file_path = &data.file1;
    match data.mode {
        Mode::CheckUpdate => {
            let check_count = data.running_data.read().check_count;
            if check_count % 2 == 0 {
                file_path = &data.file2;
            }
        }
        Mode::Error => return Ok(HttpResponse::InternalServerError().finish()),
        Mode::NoPackage => return Ok(HttpResponse::NoContent().finish()),
        Mode::Full => {}
    }
    let target_file_path: String = match file_path {
        Some(file) => format!("/{}", file),
        None => "/not_existed_file".to_string(),
    };
    let slave_addr = format!("127.0.0.1:{}", data.port);
    let download_request_response = get_download_req_response(&target_file_path, &slave_addr);
    Ok(HttpResponse::build(StatusCode::OK)
        .content_type("text/xml; charset=utf-8")
        .body(download_request_response))
}

#[get("/api/last_chk_query")]
async fn api_last_chk_query(data: Data<SharedData>) -> Result<String> {
    let running_data = data.running_data.read();
    Ok(running_data.query_string.clone())
}

async fn resource_file1(data: Data<SharedData>) -> Result<NamedFile> {
    match &data.file1 {
        Some(f) => NamedFile::open(&f),
        None => Err(std::io::Error::new(std::io::ErrorKind::NotFound, "file2")),
    }
}

async fn resource_file2(data: Data<SharedData>) -> Result<NamedFile> {
    match &data.file2 {
        Some(f) => NamedFile::open(&f),
        None => Err(std::io::Error::new(std::io::ErrorKind::NotFound, "file2")),
    }
}

#[actix_rt::main]
async fn main() -> Result<()> {
    env_logger::init();

    let opts: Opts = Opts::parse();
    println!(
        "Server mode={:?}, port={}, file size={}MB",
        opts.mode, opts.port, opts.size
    );

    // Re-create generated directory
    let _ = std::fs::remove_dir_all(GENERATED_PATH);
    std::fs::create_dir_all(GENERATED_PATH)?;

    // Create shared file based on different mode
    let shared_data = get_shared_data(&opts)?;
    println!(
        "File sha1, file1={:?}, sha1={:?}, file2={:?}, sha1={:?}",
        &shared_data.file1, &shared_data.file1_sha1, &shared_data.file2, &shared_data.file2_sha1
    );

    // Run server
    let bind_addr = format!("127.0.0.1:{}", opts.port);
    println!("Starting server at http://{}", bind_addr);
    let shared_file1 = shared_data.file1.clone();
    let shared_file2 = shared_data.file2.clone();
    match (shared_file1, shared_file2) {
        (Some(file1), Some(file2)) => {
            HttpServer::new(move || {
                let route_file1: String = format!("/{}", file1);
                let route_file2: String = format!("/{}", file2);
                App::new()
                    .wrap(Cors::new().finish())
                    .service(check_php)
                    .service(download_request_php)
                    .service(api_last_chk_query)
                    .service(resource(&route_file1).to(resource_file1))
                    .service(resource(&route_file2).to(resource_file2))


ad_val = values.at(4);
			auto Frad_over_c_val = values.at(5);

			if ((x_val > 0.0) && (x_val < Lx)) {
				xs_exact.push_back(x_val);
				Tmat_exact.push_back(Tmat_val);
				Trad_exact.push_back(Trad_val);
				Frad_over_c_exact.push_back(Frad_over_c_val);
			}
		}

		// compute error norm
		std::vector<double> Trad_interp(xs_exact.size());
		amrex::Print() << "xs min/max = " << xs[0] << ", " << xs[xs.size() - 1] << '\n';
		amrex::Print() << "xs_exact min/max = " << xs_exact[0] << ", " << xs_exact[xs_exact.size() - 1] << '\n';

		interpolate_arrays(xs_exact.data(), Trad_interp.data(), static_cast<int>(xs_exact.size()), xs.data(), Trad.data(), static_cast<int>(xs.size()));

		double err_norm = 0.;
		double sol_norm = 0.;
		for (size_t i = 0; i < xs_exact.size(); ++i) {
			err_norm += std::abs(Trad_interp[i] - Trad_exact[i]);
			sol_norm += std::abs(Trad_exact[i]);
		}

		const double error_tol = 0.01;
		double rel_error = NAN;
		rel_error = err_norm / sol_norm;
		amrex::Print() << "Error norm = " << err_norm << '\n';
		amrex::Print() << "Solution norm = " << sol_norm << '\n';
		amrex::Print() << "Relative L1 error norm = " << rel_error << '\n';

		if ((rel_error > error_tol) || std::isnan(rel_error)) {
			status = 1;
		}

#ifdef HAVE_PYTHON
		// plot results

		// temperature
		std::map<std::string, std::string> Trad_args;
		Trad_args["label"] = "Trad";
		Trad_args["color"] = "black";
		matplotlibcpp::plot(xs, Trad, Trad_args);

		if (fstream.is_open()) {
			std::map<std::string, std::string> Trad_exact_args;
			Trad_exact_args["label"] = "Trad (diffusion ODE)";
			Trad_exact_args["color"] = "black";
			Trad_exact_args["linestyle"] = "dashed";
			matplotlibcpp::plot(xs_exact, Trad_exact, Trad_exact_args);
		}

		std::map<std::string, std::string> Tgas_args;
		Tgas_args["label"] = "Tmat";
		Tgas_args["color"] = "red";
		matplotlibcpp::plot(xs, Tgas, Tgas_args);

		if (fstream.is_open()) {
			std::map<std::string, std::string> Tgas_exact_args;
			Tgas_exact_args["label"] = "Tmat (diffusion ODE)";
			Tgas_exact_args["color"] = "red";
			Tgas_exact_args["linestyle"] = "dashed";
			matplotlibcpp::plot(xs_exact, Tmat_exact, Tgas_exact_args);
		}

		matplotlibcpp::xlabel("length x (dimensionless)");
		matplotlibcpp::ylabel("temperature (dimensionless)");
		matplotlibcpp::legend();
		matplotlibcpp::title(fmt::format("time t = {:.4g}", sim.tNew_[0]));
		matplotlibcpp::save("./radshock_temperature.pdf");

		// gas density
		std::map<std::string, std::string> gasdens_args;
		std::map<std::string, std::string> gasvx_args;
		gasdens_args["label"] = "gas density";
		gasdens_args["color"] = "black";
		gasvx_args["label"] = "gas velocity";
		gasvx_args["color"] = "blue";
		gasvx_args["linestyle"] = "dashed";

		matplotlibcpp::clf();
		matplotlibcpp::plot(xs, gasDensity, gasdens_args);
		matplotlibcpp::plot(xs,


account")]
pub struct Model {
    #[sea_orm(primary_key, auto_increment = false)]
    pub id: String,
    pub name: String,
}

#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
pub enum Relation {}

impl Related<super::app::Entity> for super::account::Entity {
    fn to() -> RelationDef {
        super::app_account_rel::Relation::App.def()
    }

    fn via() -> Option<RelationDef> {
        Some(super::app_account_rel::Relation::Account.def().rev())
    }
}

impl TardisActiveModel for ActiveModel {
    fn fill_cxt(&mut self, _: &TardisContext, is_insert: bool) {
        if is_insert {
            self.id = Set(TardisFuns::field.uuid_str());
        }
    }
}

impl ActiveModelBehavior for ActiveModel {}

#![allow(unused, needless_pass_by_value)]

#![warn(map_entry)]

use std::collections::{BTreeMap, HashMap};
use std::hash::Hash;

fn foo() {}

fn insert_if_absent0<K: Eq + Hash, V>(m: &mut HashMap<K, V>, k: K, v: V) {
    if !m.contains_key(&k) { m.insert(k, v); }
}

fn insert_if_absent1<K: Eq + Hash, V>(m: &mut HashMap<K, V>, k: K, v: V) {
    if !m.contains_key(&k) { foo(); m.insert(k, v); }
}

fn insert_if_absent2<K: Eq + Hash, V>(m: &mut HashMap<K, V>, k: K, v: V) {
    if !m.contains_key(&k) { m.insert(k, v) } else { None };
}

fn insert_if_present2<K: Eq + Hash, V>(m: &mut HashMap<K, V>, k: K, v: V) {
    if m.contains_key(&k) { None } else { m.insert(k, v) };
}

fn insert_if_absent3<K: Eq + Hash, V>(m: &mut HashMap<K, V>, k: K, v: V) {
    if !m.contains_key(&k) { foo(); m.insert(k, v) } else { None };
}

fn insert_if_present3<K: Eq + Hash, V>(m: &mut HashMap<K, V>, k: K, v: V) {
    if m.contains_key(&k) { None } else { foo(); m.insert(k, v) };
}

fn insert_in_btreemap<K: Ord, V>(m: &mut BTreeMap<K, V>, k: K, v: V) {
    if !m.contains_key(&k) { foo(); m.insert(k, v) } else { None };
}

fn insert_other_if_absent<K: Eq + Hash, V>(m: &mut HashMap<K, V>, k: K, o: K, v: V) {
    if !m.contains_key(&k) { m.insert(o, v); }
}

fn main() {
}
#[macro_export]
macro_rules! implement_vert_component {
    ($impl_type:ty, $size:expr, $type:expr) => {
        impl VertComponent for $impl_type {
            fn attrib_pointer(gl: &Gl, location: u32, stride: usize, offset: i32) {
                unsafe {
                    gl.VertexAttribPointer(
                        location as gl_bindings::gl::types::GLuint,
                        $size,
                        $type,
                        gl_bindings::gl::FALSE,
                        stride as gl_bindings::gl::types::GLint,
                        offset as *const gl_bindings::gl::types::GLvoid,
                    );
                }
            }
        }
    };
}

#[macro_export]
macro_rules! implement_index {
    ($for_type:ty, $gl_type:expr) => {
        impl Index for $for_type {
            fn get_type() -> GLenum {
                $gl_type
            }
        }
    };
}
<filename>src/component/row.rs
use super::Column;
use yew::prelude::*;

pub stru


/*---------------------------------------------------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     |
    \\  /    A nd           | Copyright (C) 2011-2012 OpenFOAM Foundation
     \\/     M anipulation  |
-------------------------------------------------------------------------------
License
    This file is part of OpenFOAM.

    OpenFOAM is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    for more details.

    You should have received a copy of the GNU General Public License
    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.

\*---------------------------------------------------------------------------*/

#include "rhoReactionThermo.H"
#include "fvMesh.H"

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

namespace Foam
{
    defineTypeNameAndDebug(rhoReactionThermo, 0);
    defineRunTimeSelectionTable(rhoReactionThermo, fvMesh);
}

// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //

Foam::rhoReactionThermo::rhoReactionThermo
(
    const fvMesh& mesh,
    const word& phaseName
)
:
    rhoThermo(mesh, phaseName)
{}

// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //

Foam::autoPtr<Foam::rhoReactionThermo> Foam::rhoReactionThermo::New
(
    const fvMesh& mesh,
    const word& phaseName
)
{
    return basicThermo::New<rhoReactionThermo>(mesh, phaseName);
}

// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //

Foam::rhoReactionThermo::~rhoReactionThermo()
{}

// ************************************************************************* //


_read, config, pending_channel, Config};

pub const IBC_VERSION: &str = "ibc-reflect-v1";
pub const RECEIVE_DISPATCH_ID: u64 = 1234;
pub const INIT_CALLBACK_ID: u64 = 7890;

#[entry_point]
pub fn instantiate(
    deps: DepsMut,
    _env: Env,
    _info: MessageInfo,
    msg: InstantiateMsg,
) -> StdResult<Response> {
    // we store the reflect_id for creating accounts later
    let cfg = Config {
        reflect_code_id: msg.reflect_code_id,
    };
    config(deps.storage).save(&cfg)?;

    Ok(Response {
        attributes: vec![attr("action", "instantiate")],
        ..Response::default()
    })
}

#[entry_point]
pub fn reply(deps: DepsMut, _env: Env, reply: Reply) -> StdResult<Response> {
    match (reply.id, reply.result) {
        (RECEIVE_DISPATCH_ID, ContractResult::Err(err)) => Ok(Response {
            data: Some(encode_ibc_error(err)),
            ..Response::default()
        }),
        (INIT_CALLBACK_ID, ContractResult::Ok(response)) => handle_init_callback(deps, response),
        _ => Err(StdError::generic_err("invalid reply id or result")),
    }
}

// see https://github.com/CosmWasm/wasmd/blob/408bba14a5c6d583abe32ffb235a364130136298/x/wasm/keeper/msg_server.go#L63-L69
fn parse_contract_from_event(events: Vec<Event>) -> Option<String> {
    events
        .into_iter()
        .find(|e| e.ty == "message")
        .and_then(|ev| {
            ev.attributes
                .into_iter()
                .find(|a| a.key == "contract_address")
        })
        .map(|a| a.value)
}

pub fn handle_init_callback(
    deps: DepsMut,
    response: SubMsgExecutionResponse,
) -> StdResult<Response> {
    // we use storage to pass info from the caller to the reply
    let id = pending_channel(deps.storage).load()?;
    pending_channel(deps.storage).remove();

    // parse contract info from events
    let contract_addr = match parse_contract_from_event(response.events) {
        Some(addr) => deps.api.addr_validate(&addr),
        None => Err(StdError::generic_err(
            "No contract_address found in callback events",
        )),
    }?;

    // store id -> contract_addr if it is empty
    // id comes from: `let chan_id = msg.endpoint.channel_id;` in `ibc_channel_connect`
    accounts(deps.storage).update(id.as_bytes(), |val| -> StdResult<_> {
        match val {
            Some(_) => Err(StdError::generic_err(
                "Cannot register over an existing channel",
            )),
            None => Ok(contract_addr),
        }
    })?;

    Ok(Response {
        attributes: vec![attr("action", "execute_init_callback")],
        ..Response::default()
    })
}

#[entry_point]
pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult<QueryResponse> {
    match msg {
        QueryMsg::Account { channel_id } => to_binary(&query_account(deps, channel_id)?),
        QueryMsg::ListAccounts {} => to_binary(&query_list_accounts(deps)?),
    }
}

pub fn query_account(deps: Deps, channel_id: String) -> St


ThanOrEqualTo>` comparison operator.
 *
 * @param {!string} propertyName Name of the context property to compare.
 * @param {!number} expression The value to compare.
 * @returns {!ol.format.filter.GreaterThanOrEqualTo} `<PropertyIsGreaterThanOrEqualTo>` operator.
 * @api
 */
ol.format.filter.greaterThanOrEqualTo = function(propertyName, expression) {
  return new ol.format.filter.GreaterThanOrEqualTo(propertyName, expression);
};

/**
 * Creates a `<PropertyIsNull>` comparison operator to test whether a property value
 * is null.
 *
 * @param {!string} propertyName Name of the context property to compare.
 * @returns {!ol.format.filter.IsNull} `<PropertyIsNull>` operator.
 * @api
 */
ol.format.filter.isNull = function(propertyName) {
  return new ol.format.filter.IsNull(propertyName);
};

/**
 * Creates a `<PropertyIsBetween>` comparison operator to test whether an expression
 * value lies within a range given by a lower and upper bound (inclusive).
 *
 * @param {!string} propertyName Name of the context property to compare.
 * @param {!number} lowerBoundary The lower bound of the range.
 * @param {!number} upperBoundary The upper bound of the range.
 * @returns {!ol.format.filter.IsBetween} `<PropertyIsBetween>` operator.
 * @api
 */
ol.format.filter.between = function(propertyName, lowerBoundary, upperBoundary) {
  return new ol.format.filter.IsBetween(propertyName, lowerBoundary, upperBoundary);
};

/**
 * Represents a `<PropertyIsLike>` comparison operator that matches a string property
 * value against a text pattern.
 *
 * @param {!string} propertyName Name of the context property to compare.
 * @param {!string} pattern Text pattern.
 * @param {string=} opt_wildCard Pattern character which matches any sequence of
 *    zero or more string characters. Default is '*'.
 * @param {string=} opt_singleChar pattern character which matches any single
 *    string character. Default is '.'.
 * @param {string=} opt_escapeChar Escape character which can be used to escape
 *    the pattern characters. Default is '!'.
 * @param {boolean=} opt_matchCase Case-sensitive?
 * @returns {!ol.format.filter.IsLike} `<PropertyIsLike>` operator.
 * @api
 */
ol.format.filter.like = function(propertyName, pattern,
    opt_wildCard, opt_singleChar, opt_escapeChar, opt_matchCase) {
  return new ol.format.filter.IsLike(propertyName, pattern,
      opt_wildCard, opt_singleChar, opt_escapeChar, opt_matchCase);
};

/**
 * Create a `<During>` temporal operator.
 *
 * @param {!string} propertyName Name of the context property to compare.
 * @param {!string} begin The begin date in ISO-8601 format.
 * @param {!string} end The end date in ISO-8601 format.
 * @returns {!ol.format.filter.During} `<During>` operator.
 * @api
 */
ol.format.filter.during = function(propertyName, begin, end) {
  return new ol.format.filter.During(propertyName, begin, end);
};

goog.provide('ol.geom.GeometryCollection');

goog.require('ol');
goog.require('ol.events');
goog.require('ol.events.EventType');
goog.require('ol.extent');
goog.require('ol.geom.Geometry');
goog.require('ol.geom.GeometryType');
goog.r


Label: 'MQTT', noSec: commands.mqtt.docker.mqtt.sub,
                                secLabel: 'MQTTS', sec: commands.mqtt.docker.mqtts,
                                doc: {text: '', href: ''}}}">
            </ng-container>
            <ng-container
              *ngTemplateOutlet="executeCommandPublish; context: {cmd: {
                                noSecLabel: 'MQTT', noSec: commands.mqtt.docker.mqtt.pub,
                                secLabel: 'MQTTS', sec: commands.mqtt.docker.mqtts,
                                doc: {text: '', href: ''}}}">
            </ng-container>

        </ng-template>
      </mat-tab>
    }
  </mat-tab-group>

</ng-template>

<ng-template #seeDocumentation let-doc="doc">

{{ doc.text | translate }}

      <mat-icon>description</mat-icon>
      {{ 'common.documentation' | translate }}

</ng-template>

@if (panelMode) {
  <ng-container *ngTemplateOutlet="messageFilterPanel"></ng-container>
} @else {
  @if (buttonMode()) {
    <button color="primary" mat-stroked-button
      (click)="toggleFilterPanel($event)">
      <mat-icon>filter_list</mat-icon>
      {{buttonDisplayValue}}
    </button>
  } @else {

retained-message.topic

        <mat-form-field class="flex" appearance="outline" subscriptSizing="dynamic">
          <input matInput type="text" formControlName="topic">
        </mat-form-field>

retained-message.qos

        <mat-chip-listbox multiple formControlName="qosList">
          @for (mqttQoS of qosTypes; track mqttQoS) {
            <mat-chip-option [value]="mqttQoS" [matTooltip]="qosTranslation.get(mqttQoS) | translate">
              {{ mqttQoS }}
            </mat-chip-option>
          }
        </mat-chip-listbox>

ws-client.messages.retained

        <mat-chip-listbox multiple formControlName="retainList">
          @for (value of retainedOptions; track value) {
            <mat-chip-option [value]="value">
              {{ value }}
            </mat-chip-option>
          }
        </mat-chip-listbox>


4		timestamp;
	tmBufferFlag_t	BufferFlag_t;
	u32		lostbuffers;
	u32		validbuffers;
	u64		*dummypagevirt;
	u64		dummypagephys;
	u64		*addressvirt;
} tmBuffer_t;

typedef struct {
	u32	bitspersample;
	u32	samplesperline;
	u32	numberoflines;
	u32	pitch;
	u32	linethreshold;
	u64	**pagetablelistvirt;
	u64	*pagetablelistphys;
	u32	numpagetables;
	u32	numpagetableentries;
} tmHWStreamParameters_t;

typedef struct {
	tmHWStreamParameters_t		HWStreamParameters_t;
	u64				qwDummyPageTablePhys;
	u64				*pDummyPageTableVirt;
} tmStreamParameters_t;

typedef struct {
	u8	len;
	u8	type;
	u8	subtyle;
	u8	unitid;
	u16	terminaltype;
	u8	assocterminal;
	u8	sourceid;
	u8	iterminal;
	u32	BARLocation;
	u8	flags;
	u8	interruptid;
	u8	buffercount;
	u8	metadatasize;
	u8	numformats;
	u8	controlsize;
} __attribute__((packed)) tmComResDMATermDescrHeader_t;

/*
 *
 * Description:
 *  This is the transport stream format header.
 *
 * Settings:
 *  bLength                 - The size of this descriptor in bytes.
 *  bDescriptorType         - CS_INTERFACE.
 *  bDescriptorSubtype      - VS_FORMAT_MPEG2TS descriptor subtype.
 *  bFormatIndex            - A non-zero constant that uniquely identifies the
 *                            format.
 *  bDataOffset             - Offset to TSP packet within MPEG-2 TS transport
 *                            stride, in bytes.
 *  bPacketLength           - Length of TSP packet, in bytes (typically 188).
 *  bStrideLength           - Length of MPEG-2 TS transport stride.
 *  guidStrideFormat        - A Globally Unique Identifier indicating the
 *                            format of the stride data (if any). Set to zeros
 *                            if there is no Stride Data, or if the Stride
 *                            Data is to be ignored by the application.
 *
 */
typedef struct {
	u8	len;
	u8	type;
	u8	subtype;
	u8	bFormatIndex;
	u8	bDataOffset;
	u8	bPacketLength;
	u8	bStrideLength;
	u8	guidStrideFormat[16];
} __attribute__((packed)) tmComResTSFormatDescrHeader_t;


xEF54,
        CaretTopRightSolid8 = 0xEF55,
        ViewAll2 = 0xEF56,
        DocumentReply = 0xEF57,
        PlayerSettings = 0xEF58,
        ReceiptForward = 0xEF59,
        ReceiptReply = 0xEF5A,
        ReceiptCheck = 0xEF5B,
        Fax = 0xEF5C,
        RecurringEvent = 0xEF5D,
        ReplyAlt = 0xEF5E,
        ReplyAllAlt = 0xEF5F,
        EditStyle = 0xEF60,
        EditMail = 0xEF61,
        Lifesaver = 0xEF62,
        LifesaverLock = 0xEF63,
        InboxCheck = 0xEF64,
        FolderSearch = 0xEF65,
        CollapseMenu = 0xEF66,
        ExpandMenu = 0xEF67,
        Boards = 0xEF68,
        SunAdd = 0xEF69,
        SunQuestionMark = 0xEF6A,
        LandscapeOrientation = 0xEF6B,
        DocumentSearch = 0xEF6C,
        PublicCalendar = 0xEF6D,
        PublicContactCard = 0xEF6E,
        PublicEmail = 0xEF6F,
        PublicFolder = 0xEF70,
        WordDocument = 0xEF71,
        PowerPointDocument = 0xEF72,
        ExcelDocument = 0xEF73,
        GroupedList = 0xEF74,
        ClassroomLogo = 0xEF75,
        Sections = 0xEF76,
        EditPhoto = 0xEF77,
        Starburst = 0xEF78,
        ShareiOS = 0xEF79,
        AirTickets = 0xEF7A,
        PencilReply = 0xEF7B,
        Tiles2 = 0xEF7C,
        SkypeCircleCheck = 0xEF7D,
        SkypeCircleClock = 0xEF7E,
        SkypeCircleMinus = 0xEF7F,
        SkypeMessage = 0xEF83,
        ClosedCaption = 0xEF84,
        ATPLogo = 0xEF85,
        OfficeFormsLogoInverse = 0xEF86,
        RecycleBin = 0xEF87,
        EmptyRecycleBin = 0xEF88,
        Hide2 = 0xEF89,
        Breadcrumb = 0xEF8C,
        BirthdayCake = 0xEF8D,
        TimeEntry = 0xEF95,
        CRMProcesses = 0xEFB1,
        PageEdit = 0xEFB6,
        PageArrowRight = 0xEFB8,
        PageRemove = 0xEFBA,
        Database = 0xEFC7,
        DataManagementSettings = 0xEFC8,
        CRMServices = 0xEFD2,
        EditContact = 0xEFD3,
        ConnectContacts = 0xEFD4,
        AppIconDefaultAdd = 0xEFDA,
        AppIconDefaultList = 0xEFDE,
        ActivateOrders = 0xEFE0,
        DeactivateOrders = 0xEFE1,
        ProductCatalog = 0xEFE8,
        ScatterChart = 0xEFEB,
        AccountActivity = 0xEFF4,
        DocumentManagement = 0xEFFC,
        CRMReport = 0xEFFE,
        KnowledgeArticle = 0xF000,
        Relationship = 0xF003,
        HomeVerify = 0xF00E,
        ZipFolder = 0xF012,
        SurveyQuestions = 0xF01B,
        TextDocument = 0xF029,
        TextDocumentShared = 0xF02B,
        PageCheckedOut = 0xF02C,
        PageShared = 0xF02D,
        SaveAndClose = 0xF038,
        Script = 0xF03A,
        Archive = 0xF03F,
        ActivityFeed = 0xF056,
        Compare = 0xF057,
        EventDate = 0xF059,
        ArrowUpRight = 0xF069,
        CaretRight = 0xF06B,
        SetAction = 0xF071,
        ChatBot = 0xF08B,
        CaretSolidLeft = 0xF08D,
        CaretSolidDown = 0xF08E,
        CaretSoli


tmp, where tmp is a newly
// allocated temporary variable of type [len]elem. This variable is
// initialized, and elem must not contain pointers.
func stackBufAddr(len int64, elem *types.Type) *ir.AddrExpr {
	if elem.HasPointers() {
		base.FatalfAt(base.Pos, "%v has pointers", elem)
	}
	tmp := typecheck.Temp(types.NewArray(elem, len))
	return typecheck.Expr(typecheck.NodAddr(tmp)).(*ir.AddrExpr)
}
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package walk

import (
	"cmd/compile/internal/base"
	"cmd/compile/internal/ir"
)

// The result of walkStmt MUST be assigned back to n, e.g.
//
//	n.Left = walkStmt(n.Left)
func walkStmt(n ir.Node) ir.Node {
	if n == nil {
		return n
	}

	ir.SetPos(n)

	walkStmtList(n.Init())

	switch n.Op() {
	default:
		if n.Op() == ir.ONAME {
			n := n.(*ir.Name)
			base.Errorf("%v is not a top level statement", n.Sym())
		} else {
			base.Errorf("%v is not a top level statement", n.Op())
		}
		ir.Dump("nottop", n)
		return n

	case ir.OTRY:
		tr := n.(*ir.TryStmt)

		if n.Typecheck() == 0 {
			base.Fatalf("missing typecheck: %+v", n)
		}
		init := ir.TakeInit(tr.Assign)
		n = walkExpr(n, &init)
		if n.Op() == ir.ONAME {
			// copy rewrote to a statement list and a temp for the length.
			// Throw away the temp to avoid plain values as statements.
			n = ir.NewBlockStmt(n.Pos(), init)
			init = nil
		}
		if len(init) > 0 {
			switch n.Op() {
			case ir.OAS, ir.OAS2, ir.OBLOCK:
				n.(ir.InitNode).PtrInit().Prepend(init...)

			default:
				init.Append(n)
				n = ir.NewBlockStmt(n.Pos(), init)
			}
		}
		return n

	case ir.OAS,
		ir.OASOP,
		ir.OAS2,
		ir.OAS2DOTTYPE,
		ir.OAS2RECV,
		ir.OAS2FUNC,
		ir.OAS2MAPR,
		ir.OCLEAR,
		ir.OCLOSE,
		ir.OCOPY,
		ir.OCALLINTER,
		ir.OCALL,
		ir.OCALLFUNC,
		ir.ODELETE,
		ir.OSEND,
		ir.OPRINT,
		ir.OPRINTN,
		ir.OPANIC,
		ir.ORECOVERFP,
		ir.OGETG:
		if n.Typecheck() == 0 {
			base.Fatalf("missing typecheck: %+v", n)
		}
		init := ir.TakeInit(n)
		n = walkExpr(n, &init)
		if n.Op() == ir.ONAME {
			// copy rewrote to a statement list and a temp for the length.
			// Throw away the temp to avoid plain values as statements.
			n = ir.NewBlockStmt(n.Pos(), init)
			init = nil
		}
		if len(init) > 0 {
			switch n.Op() {
			case ir.OAS, ir.OAS2, ir.OBLOCK:
				n.(ir.InitNode).PtrInit().Prepend(init...)

			default:
				init.Append(n)
				n = ir.NewBlockStmt(n.P


请格外小心当处理高电压！**

[继电器 屏蔽 硬件文件 >](https://github.com/spark/shields/tree/master/Relay%20Shield)

<!-- TO DO
Project Ideas
------------
- Home Automation
- Sprinklers

**CAUTION** : High voltages! Please use extreme caution when working with high voltages.

``ADD ILLUSTRAION OF FINGERS GETTIND ZAPPED``
-->

程序 屏蔽 (JTAG)
====

![JTAG 屏蔽 顶部]({{assets}}/images/jtag-topview.jpg)

JTAG 屏蔽是一个简单的适配器, 可以让您把一个 JTAG 编程器连接到 Spark Core. 如果您需要完全控制您的 core 和适应 ARM 的开发环境，您需要这面屏蔽作为 JTAG 编程器和 core 之间的接口.

产品规格
-----
- 兼容的 JTAG 编程器：STLink V2（唯一测试的）
- 尺寸：2.2" x 1.55"
- 重量：20g

设立编程器
-----

![JTAG 设置]({{assets}}/images/jtag-setup.jpg)

如果您使用的是 STLink V2，则可以从[它们的网站.]（HTTP :// www.st.com/web/catalog/tools/FM146/CL1984/SC724/SS1677/PF251168）下载支持的驱动程序和实用程序.

所有的 JTAG 屏蔽文件的硬件可供下载.

[JTAG 屏蔽 硬件盾文件 >](https://github.com/spark/shields/tree/master/Programmer%20Shield)

电池 屏蔽
====

![电池 屏蔽 顶部]({{assets}}/images/bshield-top.jpg)

电池屏蔽是锂电池充电器和电压调节器结合为一体. 您可以用它来通过 3.7V 锂电池使用您的 core ，并在同一时间，通过 USB 端口充电池.

屏蔽是围绕 Microchip 的 MCP73871 电池负载管理控制器 和德州仪器的 TPS61200 升压转换器，用于将 3.7V 电压升到 5.0V。

![电池 屏蔽 底部]({{assets}}/images/bshield-bottom.jpg)

<!--TO DO ADD SYSTEM BLOCK DIAGRAM HERE -->

操作
-----

MCP73871 是，允许一个同时装入电池和电源系统的智能电池充电管理控制器. 有一个欠压上锁的功能， 保护电池不让它完全耗尽. 该 TPS61200 将 3.7V 至 4.1V 的电池转换为稳定的5V, 供电给 core 或任何其它潜在的硬件. (手机!）

电池的充电电流被设定在 500mA.

[Battery 屏蔽 硬件盾文件 >](https://github.com/spark/shields/tree/master/Battery%20Shield)

产品规格
-----

- 与任何 3.7V 的锂聚合物电池
- 同时充电电池和提供电源到 core
- 提供链接到数据表 MCP73871 和 	TPS61200 *************************************************************************
- 尺寸：2.3×0.61
- 重量：20g

设立屏蔽
-----

![电池 屏蔽 充电]({{assets}}/images/bshield-charging.jpg)

如果要为电池从点，只需将电池插入 JST 连接器


Id) {
            return unreadCount;
        }
        Cursor c = null;
        SQLiteDatabase dbSlaver = null;
        try {
            dbSlaver = helper.getReadableDatabase();
            String sql = "SELECT COUNT(*)  AS unread FROM " + DBHelper.TABLE_MESSAGES + " where "
                    + DBHelper.COLUMN_OWNER_ID + " = '" + userId + "' and "
                    + DBHelper.COLUMN_MESSAGE_TO_USER_ID + " = '" + userId + "' and "
                    + DBHelper.COLUMN_MESSAGE_FROM_USER_ID + " = '" + exclUserId + "' and "
                    + DBHelper.COLUMN_MESSAGE_READ_STATUS + " = " + SysConstant.MESSAGE_UNREAD;
            c = dbSlaver.rawQuery(sql, null);
            while (c.moveToNext()) {
                unreadCount = c.getInt(c.getColumnIndex("unread"));
            }
        } catch (SQLException e) {
            logger.e(e.toString());
        } finally {
            if (null != c) {
                c.close();
            }
            // dbSlaver.close();
        }

        return unreadCount;
    }

    /**
     * 查询所有用户
     *
     * @return List<User>
     */
    public List<User> queryAllUsers() {
        ArrayList<User> users = new ArrayList<User>();
        Cursor c = null;
        SQLiteDatabase dbSlaver;
        try {
            dbSlaver = helper.getReadableDatabase();
            c = dbSlaver.rawQuery(DBHelper.SELECT_ALL_USER_SQL, null);
            User user = null;
            while (c.moveToNext()) {
                user = setUserInfo(c);
                users.add(user);
            }
        } catch (SQLException e) {
            logger.e(e.toString());
        } finally {
            if (null != c) {
                c.close();
            }
            // dbSlaver.close();
        }

        return users;
    }

    /**
     * 查询一个用户
     *
     * @param userId 用户ID
     * @return User | null
     */
    public User queryUserByUserId(String userId) {
        User user = null;
        if ("".equals(userId.trim())) {
            return user;
        }
        SQLiteDatabase dbSlaver;
        Cursor c = null;
        try {
            dbSlaver = helper.getReadableDatabase();
            c = dbSlaver.rawQuery(DBHelper.SELECT_ALL_USER_SQL + " where "
                    + DBHelper.COLUMN_USER_ID + " = '" + userId + "'", null);
            while (c.moveToNext()) {
                user = this.setUserInfo(c);
                break;
            }
        } catch (SQLException e) {
            logger.e(e.toString());
        } finally {
            if (null != c) {
                c.close();
            }
            // dbSlaver.close();
        }

        return user;
    }

    /**
     * 获得两个用户之间的联系ID，没有则新增一个
     *
     * @param ownerId 拥有者用户ID
     * @param userId 用户Id
     * @param friendUserId 好友Id
     * @return Cursor
     */
    public int getRelateId(String ownerId, String userId, String friendUserId) {
        if ("".equals(ownerId) || null == ownerId || null == userId || null == friendUserId) {
            return 0;
        }
        // 获得relateId
        int relateId = queryRelateId(ownerId, userId, friendUserId);
        if (0 == relateId) {
            int timeNow = (int)