arkit.git"
$ cd jvarkit
$ ./gradlew bamstats02
```

The java jar file will be installed in the `dist` directory.

## Source code

[https://github.com/lindenb/jvarkit/tree/master/src/main/java/com/github/lindenb/jvarkit/tools/bamstats01/BamStats02.java](https://github.com/lindenb/jvarkit/tree/master/src/main/java/com/github/lindenb/jvarkit/tools/bamstats01/BamStats02.java)

## Contribute

- Issue Tracker: [http://github.com/lindenb/jvarkit/issues](http://github.com/lindenb/jvarkit/issues)
- Source Code: [http://github.com/lindenb/jvarkit](http://github.com/lindenb/jvarkit)

## License

The project is licensed under the MIT license.

## Citing

Should you cite **bamstats02** ? [https://github.com/mr-c/shouldacite/blob/master/should-I-cite-this-software.md](https://github.com/mr-c/shouldacite/blob/master/should-I-cite-this-software.md)

The current reference is:

[http://dx.doi.org/10.6084/m9.figshare.1425030](http://dx.doi.org/10.6084/m9.figshare.1425030)

> Lindenbaum, Pierre (2015): JVarkit: java-based utilities for Bioinformatics. figshare.
> [http://dx.doi.org/10.6084/m9.figshare.1425030](http://dx.doi.org/10.6084/m9.figshare.1425030)

### Example

```
$  find dir -name "*final.bam" | xargs  java -jar dist/bamstats02.jar -B capture.bed  > output.tsv
$  verticalize output.tsv

>>> 2
$1      #filename       dir/Sample0258.final.bam
$2      sampleName      Sample0258
$3      chromosome      2
$4      mapq    60
$5      inTarget        1
$6      READ_PAIRED     1
$7      READ_MAPPED_IN_PROPER_PAIR      1
$8      READ_UNMAPPED   0
$9      MATE_UNMAPPED   0
$10     READ_REVERSE_STRAND     1
$11     MATE_REVERSE_STRAND     0
$12     FIRST_IN_PAIR   0
$13     SECOND_IN_PAIR  1
$14     NOT_PRIMARY_ALIGNMENT   0
$15     READ_FAILS_VENDOR_QUALITY_CHECK 0
$16     READ_IS_DUPLICATE       0
$17     SUPPLEMENTARY_ALIGNMENT 0
$18     count   463982
<<< 2

>>> 3

>>> 3
$1      #filename       dir/Sample0258.final.bam
$2      sampleName      Sample0258
$3      chromosome      .
$4      mapq    0
$5      inTarget        -1
$6      READ_PAIRED     1
$7      READ_MAPPED_IN_PROPER_PAIR      0
$8      READ_UNMAPPED   1
$9      MATE_UNMAPPED   1
$10     READ_REVERSE_STRAND     0
$11     MATE_REVERSE_STRAND     0
$12     FIRST_IN_PAIR   1
$13     SECOND_IN_PAIR  0
$14     NOT_PRIMARY_ALIGNMENT   0
$15     READ_FAILS_VENDOR_QUALITY_CHECK 0
$16     READ_IS_DUPLICATE       0
$17     SUPPLEMENTARY_ALIGNMENT 0
$18     count   458630
<<< 3

>>> 4
$1      #filename       dir/Sample0258.final.bam
$2      sampleName      Sample0258
$3      chromosome      .
$4      mapq    0
$5      inTarget        -1
$6      READ_PAIRED     1
$7      READ_MAPPED_IN_PROPER_PAIR      0
$8      READ_UNMAP


tualResult)
        }
    }

    @Test
    fun `get_end_of_period function directly with DAY period for NYC user at 8pm should return end of current day`() {
        // NYC user at 2025-06-16 8pm Eastern Time (UTC-4)
        val nycZone = ZoneId.of("America/New_York")
        val nycTime = ZonedDateTime.of(2025, 6, 16, 20, 0, 0, 0, nycZone) // 8pm on June 16th

        // Configure mock to return the NYC time
        whenever(timeProvider.now()).thenReturn(nycTime)
        whenever(timeProvider.defaultZone()).thenReturn(nycZone)

        testLuaEngine(
            """
                local core = require("tng.core")
                local graph = require("tng.graph")

                -- Use get_end_of_period function directly with core.time() (preserves timezone)
                local current_time = core.time()
                local end_of_day = core.get_end_of_period(core.PERIOD.DAY, current_time, "America/New_York")
                local result_timestamp = core.time(end_of_day)
                local formatted_result = core.format(result_timestamp, "yyyy-MM-dd HH:mm:ss")

                return graph.text(formatted_result)
            """.trimIndent()
        ) {
            println("get_end_of_period direct call result: $result")
            assert(result.data is LuaGraphResultData.TextData)
            val actualResult = (result.data as LuaGraphResultData.TextData).text

            val expectedEndOfCurrentDay = "2025-06-17 00:00:00" // Start of next day = end of current day

            println("Input: NYC user at 2025-06-16 8pm Eastern Time")
            println("Expected (end of current day): $expectedEndOfCurrentDay")
            println("Actual result: $actualResult")

            assertEquals(expectedEndOfCurrentDay, actualResult)
        }
    }

}
package com.samco.trackandgraph.ui.compose.viewmodels

import com.samco.trackandgraph.ui.viewmodels.asValidatedDouble
import com.samco.trackandgraph.ui.viewmodels.asValidatedInt
import junit.framework.Assert.assertEquals
import org.junit.Test

internal class HelpersKtTest {

    @Test
    fun asValidatedInt() {
        assertEquals("-1", "-1-".asValidatedInt())
        assertEquals("-1", "-1.0".asValidatedInt())
        assertEquals("-1", "-1.0".asValidatedInt())
        assertEquals("1", "1.1".asValidatedInt())
        assertEquals("1001234", "1001234".asValidatedInt())
        assertEquals("-1001234", "-1001234".asValidatedInt())
        assertEquals("-", "-".asValidatedInt())
        assertEquals("0", "0".asValidatedInt())
    }

    @Test
    fun asValidatedDouble() {
        assertEquals("-1.0", "-1.0".asValidatedDouble())
        assertEquals("1.0", "1.0".asValidatedDouble())
        assertEquals("812341.123", "812341.123".asValidatedDouble())
        assertEquals("-812341.123", "-812341.123".asValidatedDouble())
        assertEquals("1", "1".asValidatedDouble())
        assertEquals("-1", "-1".asValidatedDouble())
        assertEquals("-1", "-1-".asValidatedDouble())
        assertEquals("-1.", "-1-.".asValidatedDouble())
        assertEquals(".", ".".asValidatedDouble())
        assertEquals("0.", "0.".asValidatedDouble())
        assertEquals("-1.00", "-1.0.0".asValidatedDouble())
    }
}/*
 *  This file is part of Track & Graph
 *
 *  Track & Graph is free software: you can redistribute it and/or modify
 *  it


sage clone() =>
      TestAllTypesProto3_NestedMessage()..mergeFromMessage(this);
  @$core.Deprecated('Using this can add significant overhead to your binary. '
      'Use [GeneratedMessageGenericExtensions.rebuild] instead. '
      'Will be removed in next major version')
  TestAllTypesProto3_NestedMessage copyWith(
          void Function(TestAllTypesProto3_NestedMessage) updates) =>
      super.copyWith(
              (message) => updates(message as TestAllTypesProto3_NestedMessage))
          as TestAllTypesProto3_NestedMessage; // ignore: deprecated_member_use
  $pb.BuilderInfo get info_ => _i;
  @$core.pragma('dart2js:noInline')
  static TestAllTypesProto3_NestedMessage create() =>
      TestAllTypesProto3_NestedMessage._();
  TestAllTypesProto3_NestedMessage createEmptyInstance() => create();
  static $pb.PbList<TestAllTypesProto3_NestedMessage> createRepeated() =>
      $pb.PbList<TestAllTypesProto3_NestedMessage>();
  @$core.pragma('dart2js:noInline')
  static TestAllTypesProto3_NestedMessage getDefault() => _defaultInstance ??=
      $pb.GeneratedMessage.$_defaultFor<TestAllTypesProto3_NestedMessage>(
          create);
  static TestAllTypesProto3_NestedMessage? _defaultInstance;

  @$pb.TagNumber(1)
  $core.int get a => $_getIZ(0);
  @$pb.TagNumber(1)
  set a($core.int v) {
    $_setSignedInt32(0, v);
  }

  @$pb.TagNumber(1)
  $core.bool hasA() => $_has(0);
  @$pb.TagNumber(1)
  void clearA() => clearField(1);

  @$pb.TagNumber(2)
  TestAllTypesProto3 get corecursive => $_getN(1);
  @$pb.TagNumber(2)
  set corecursive(TestAllTypesProto3 v) {
    setField(2, v);
  }

  @$pb.TagNumber(2)
  $core.bool hasCorecursive() => $_has(1);
  @$pb.TagNumber(2)
  void clearCorecursive() => clearField(2);
  @$pb.TagNumber(2)
  TestAllTypesProto3 ensureCorecursive() => $_ensure(1);
}

enum TestAllTypesProto3_OneofField {
  oneofUint32,
  oneofNestedMessage,
  oneofString,
  oneofBytes,
  oneofBool,
  oneofUint64,
  oneofFloat,
  oneofDouble,
  oneofEnum,
  oneofNullValue,
  notSet
}

class TestAllTypesProto3 extends $pb.GeneratedMessage {
  static const $core.Map<$core.int, TestAllTypesProto3_OneofField>
      _TestAllTypesProto3_OneofFieldByTag = {
    111: TestAllTypesProto3_OneofField.oneofUint32,
    112: TestAllTypesProto3_OneofField.oneofNestedMessage,
    113: TestAllTypesProto3_OneofField.oneofString,
    114: TestAllTypesProto3_OneofField.oneofBytes,
    115: TestAllTypesProto3_OneofField.oneofBool,
    116: TestAllTypesProto3_OneofField.oneofUint64,
    117: TestAllTypesProto3_OneofField.oneofFloat,
    118: TestAllTypesProto3_OneofField.oneofDouble,
    119: TestAllTypesProto3_OneofField.oneofEnum,
    120: TestAllTypesProto3_OneofField.oneofNullValue,
    0: TestAllTypesProto3_OneofField.notSet
  };
  static final $pb.BuilderInfo _i = $pb.BuilderInfo(
      const $core.bool.fromEnvironment('protobuf.omit_message_names')
          ? ''
          : 'TestAllTypesProto3',
      package: const $pb.PackageName(
          const $core.bool.


ul li{object-fit:cover;float:left;width:33%;height:auto;padding:10px 0;margin:5px 0;text-align:center}#content .section .sponsors ul li+li{border-left:1px solid #e5e8eb}#content .section .community{float:left;width:380px}#content .section .community>ul>li{overflow:hidden;margin:0 0 10px 0}#content .section .community>ul>li img{float:right;margin:0 0 0 10px;max-width:48px;max-height:48px;width:expression(this.width > 48 ? "48px" : true);height:expression(this.height > 48 ? "48px" : true)}#content .section .community>ul>li .details{overflow:hidden;padding:3px 0 0 0}#content .section .community>ul>li ul.actions li{display:inline-block;font-size:0.9em;font-weight:bold;text-transform:lowercase}#content .section .community>ul>li ul.actions li a{padding:3px 0 3px 5px;margin:0 0 0 5px}#content .section .community>ul>li ul.actions li input[type="submit"]{background:none;border:none;font-weight:bold;color:#195184;text-decoration:underline;cursor:pointer;padding:3px 0 3px 5px;margin:0 0 0 5px}#content .section .community>ul>li form.edit_comment{margin:10px 0}#content .section .community>ul>li form.edit_comment label{display:block;font-weight:bold}#content .section .community>ul>li form.edit_comment textarea{width:300px;height:60px;padding:8px;font:normal 1em Helvetica,Arial,sans-serif;color:#394651;border:1px solid #cad3db;background-color:#fff;background-image:-ms-linear-gradient(top, #f0f4f7 0%, #fff 100%);background-image:-moz-linear-gradient(top, #f0f4f7 0%, #fff 100%);background-image:-o-linear-gradient(top, #f0f4f7 0%, #fff 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f0f4f7), color-stop(1, #fff));background-image:-webkit-linear-gradient(top, #f0f4f7 0%, #fff 100%);background-image:linear-gradient(to bottom, #f0f4f7 0%, #fff 100%);margin:3px 0 5px 0}#content .section .community>ul>li form.edit_comment input[type="submit"]{padding:5px 10px 6px 10px;overflow:visible;font:bold 1.08em Helvetica,Arial,sans-serif;color:#394651;text-transform:lowercase;text-decoration:none;border:1px solid #c6ccd0;-moz-border-radius:3px;border-radius:3px;background-color:#d7dde1;background-image:-ms-linear-gradient(top, #fff 0%, #d7dde1 100%);background-image:-moz-linear-gradient(top, #fff 0%, #d7dde1 100%);background-image:-o-linear-gradient(top, #fff 0%, #d7dde1 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(1, #d7dde1));background-image:-webkit-linear-gradient(top, #fff 0%, #d7dde1 100%);background-image:linear-gradient(to bottom, #fff 0%, #d7dde1 100%);cursor:pointer;font-size:0.9em;margin-left:10px}#content .section .community>ul>li form.edit_comment input[type="submit"]:hover{background-color:#e6eef4;background-image:-ms-linear-gradient(top, #fff 0%, #e6eef


NG,
    ) -> Result<(SenderState, usize, usize, usize), Error> {
        // receive cuckoo hash info from sender
        let megasize = channel.read_usize()?;
        let nmegabins = channel.read_usize()?;
        let nbins = channel.read_usize()?;
        let hashes = utils::compress_and_hash_inputs(inputs, self.key);

        let mut table = vec![Vec::new(); nbins];
        let mut payload = vec![Vec::new(); nbins];

        let ts_id = (0..nbins).map(|_| rng.gen::<Block512>()).collect_vec();
        let ts_payload = (0..nbins).map(|_| rng.gen::<Block512>()).collect_vec();

        for (x, p) in hashes.iter().zip_eq(payloads.iter()) {
            let mut bins = Vec::with_capacity(NHASHES);
            for h in 0..NHASHES {
                let bin = CuckooHash::bin(*x, h, nbins);
                table[bin].push(*x ^ Block::from(h as u128));
                // In the case of CRT representations: the payload must be appropriately
                // added to the target vector according to the CRT moduluses. The result
                // is randomly padded to get a Block512.
                // Note: mask_payload_crt assumes that inputs and outputs of GC are 64bit
                // long.
                // In the case of a binary representation: the payload can be simply XORed
                // with the target vector, the appropriately padded if need be.
                payload[bin].push(mask_payload_crt(
                    *p,
                    ts_payload[bin],
                    rng,
                ));
                bins.push(bin);
            }
            // if j = H1(y) = H2(y) for some y, then P2 adds a uniformly random element to
            // table2[j] & payload[j]
            if bins.iter().skip(1).all(|&x| x == bins[0]) {
                table[bins[0]].push(rng.gen());
                payload[bins[0]].push(rng.gen());
            }
        }

        let state = SenderState {
            opprf_ids: ts_id,
            opprf_payloads: ts_payload,
            table,
            payload,
        };

        Ok((state, nbins, nmegabins, megasize))
    }

    /// Perform OPPRF on ID's & associated payloads
    pub fn send_data<C: AbstractChannel, RNG: RngCore + CryptoRng + SeedableRng>(
        &mut self,
        state: &mut SenderState,
        nbins: usize,
        channel: &mut C,
        rng: &mut RNG,
    ) -> Result<(), Error> {
        let points_id = state
            .table
            .clone()
            .into_iter()
            .zip_eq(state.opprf_ids.iter())
            .flat_map(|(bin, t)| {
                // map all the points in a bin to the same tag
                bin.into_iter().map(move |item| (item, *t))
            })
            .collect_vec();

        // Orders payload data similarly to how ID's were hashed into bins
        let mut points_data = Vec::new();
        for (row, bin) in state.table.iter().enumerate() {
            for (col, item) in bin.iter().enumerate() {
                points_data.push((*item, state.payload[row][col]));
            }
        }

        self.opprf.send(channel, &points_id, nbins, rng)?;
        self.opprf_payload.send(channel, &points_data, nbins, rng)?;
        Ok(())


mes
        logger.SuspendOutput();
        logger.SuspendOutput();
        logger.SuspendOutput();
        recorder.AssertNoOutput();

        // 2. Resume output when no messages written -> no output, no error
        logger.ResumeOutput();
        recorder.AssertNoOutput();

        // 3. Suspend and log some output
        logger.Verbosity = LoggerVerbosity.Info;
        logger.SuspendOutput();
        logger.LogDebug("debug 1 {0}", "xxx");
        logger.LogWarning("warning 1 {0}", "xxx");
        logger.LogError("error 1 {0}", "xxx");
        logger.LogInfo("info 1 {0}", "xxx");

        recorder.AssertNoOutput();

        // 4. Resume -> check expected output and ordering
        // The verbosity should be checked when ResumeOutput is called, not
        // when the message is originally logged.
        logger.Verbosity = LoggerVerbosity.Debug;
        logger.ResumeOutput();

        recorder.AssertExpectedOutputText(
            $"{prefixRegex}  debug 1 xxx",
            $"{prefixRegex}  WARNING: warning 1 xxx",
            $"{prefixRegex}  error 1 xxx",
            $"{prefixRegex}  info 1 xxx");

        // 5. Log more -> output should be immediate
        logger.LogInfo("info 2");
        recorder.AssertExpectedLastOutput($"{prefixRegex}  info 2", Console.ForegroundColor, false);

        logger.LogError("error 2");
        recorder.AssertExpectedLastOutput($"{prefixRegex}  error 2", ConsoleLogger.ErrorColor, true);
    }

    [TestMethod]
    public void ILogger_Log_Debug()
    {
        var logger = Substitute.For<ILogger>();
        logger.Log(LoggerVerbosity.Debug, "message1");
        logger.ReceivedCalls().Should().ContainSingle();
        logger.Received(1).LogDebug("message1");
    }

    [TestMethod]
    public void ILogger_Log_Info()
    {
        var logger = Substitute.For<ILogger>();
        logger.Log(LoggerVerbosity.Info, "message1");
        logger.ReceivedCalls().Should().ContainSingle();
        logger.Received(1).LogInfo("message1");
    }

    [TestMethod]
    public void ILogger_Log_InfoAndDebug()
    {
        var logger = Substitute.For<ILogger>();
        logger.Log(LoggerVerbosity.Info, "info message");
        logger.Log(LoggerVerbosity.Debug, "debug message");
        logger.ReceivedCalls().Should().HaveCount(2);
        logger.Received(1).LogInfo("info message");
        logger.Received(1).LogDebug("debug message");
    }

    [TestMethod]
    public void ILogger_Log_UnknownLogVerbosity()
    {
#if NETFRAMEWORK
        var expectedMessage = """
            Unsupported log level.
            Parameter name: level
            Actual value was 100.
            """;
#else
        var expectedMessage = """
            Unsupported log level. (Parameter 'level')
            Actual value was 100.
            """;
#endif
        var logger = Substitute.For<ILogger>();
        logger.Invoking(x => x.Log((LoggerVerbosity)100, "message")).Should().ThrowExactly<ArgumentOutOfRangeException>().WithMessage(expectedMessage);
    }
}


5,86.5|Z|The Hinterlands|N|Now comes a rather difficult part, if you are confident that you can handle 3 mobs alone you can proceed solo, if you think you’d have difficulties, try to group up with someone. Go inside the tunnel behind the altar and fight your way through to the southernmost tip of the tunnel structure . There you should see Hitah’Ya the Keeper patrolling with two guards. Get full mana/hp. The trick here is to use crowd control (if you have, like ice trap, sheep, sap) and at the same time burn down Hitah’Ya as fast as possible (she has very little HP). Also pop your cooldown skills to burn down one of the guards as fast as possible. Once that is done you just need to deal with the other guard. Loot Hitah’Yah.|RANK|2|
C The Ancient Egg|QID|4787|N|If you took the quest [51] The Ancient Egg, don't forget to get the egg off the pedestal in the center of the room Hitah'Ya the Keeper was in.|RANK|2|
C Wanted: Vile Priestess Hexx and Her Minions|QID|7861|M|59,78|Z|The Hinterlands|N|Kill the Priestess if you haven't already, and any guards you still need.|RANK|2|
T Recover the Key!|QID|7846|M|59,78|Z|The Hinterlands|N|Go back to the altar and turn in the quest.|RANK|2|
A Return to Primal Torntusk|QID|7847|PRE|7846|M|59,78|Z|The Hinterlands|RANK|2|
C Dark Vessels|QID|7850|N|Finish getting any Vessels of Tainted Blood you still need, while killing any Vilebranch Berserkers, Shadow Hunters, Blood Drinkers and Soul Eaters you still need.|RANK|2|
C Job Opening: Guard Captain of Revantusk Village|QID|7862|N|Finish killing Vilebranch Berserkers, Shadow Hunters, Blood Drinkers and Soul Eaters.|RANK|2|
R Revantusk Village|QID|7849|N|Now time for a suicide run. Mount up and jump down from terrace to terrace, if you survive, great! If you die, that's great too! Just release your spirit and take the spirit raise .|M|77,77|Z|The Hinterlands|RANK|2|
T Separation Anxiety|QID|7849|RANK|2|
T Return to Primal Torntusk|QID|7847|RANK|2|
T Wanted: Vile Priestess Hexx and Her Minions|QID|7861|RANK|2|
T Job Opening: Guard Captain of Revantusk Village|QID|7862|RANK|2|
T Dark Vessels|QID|7850|RANK|2|

;----------------------------------------------------------------------------
L Level Check|ACTIVE|2995|LVL|49|N|You should now be level 49|
F Undercity|ACTIVE|2995|N|Fly to the Undercity|
T Lines of Communication|QID|2995|M|73.0,32.9|Z|Undercity|N|Head towards the Magic Quarter and turn the quest in to Oran Snakewrithe.|
T Rin'ji's Secret|QID|2782|M|73.0,32.9|Z|Undercity|
T Oran's Gratitude|QID|8273|N||

;------002_50_51_Jame_Tanaris.lua--------------

H Gadgetzan|ACTIVE|2641|
N Time for Zul'Farrek|N|Dungeon quests are great XP and decent rewards, but if you choose not to you may need to grind a bit to catch up.|
;add J to


nt("Cannot save features bc of", e)

    val_datasets = [params.dataset]
    if params.dataset in ["cross", "miniImagenet"]:
        val_datasets = ["cross", "miniImagenet"]

    for d in val_datasets:
        print("Evaluating on", d)
        params.dataset = d
        # num of epochs for finetuning on testing.
        for hn_val_epochs in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25, 50, 100, 200]:
            params.hn_val_epochs = hn_val_epochs
            params.hm_set_forward_with_adaptation = True
            # add default test params
            params.adaptation = True
            params.repeat = 5

            print(f"Testing with {hn_val_epochs} = ")
            test_results = perform_test(params)
            if neptune_run is not None:
                neptune_run[f"full_test/{d}/metrics @ {hn_val_epochs}"] = test_results


eySemicolon:    glfw.KeySemicolon,
		KeyEquals:       glfw.KeyEqual,
		KeyComma:        glfw.KeyComma,
		KeyPeriod:       glfw.KeyPeriod,
		KeySlash:        glfw.KeySlash,
		KeyBackslash:    glfw.KeyBackslash,
		KeyBackspace:    glfw.KeyBackspace,
		KeyTab:          glfw.KeyTab,
		KeyCapsLock:     glfw.KeyCapsLock,
		KeySpace:        glfw.KeySpace,
		KeyEnter:        glfw.KeyEnter,
		KeyEscape:       glfw.KeyEscape,
		KeyInsert:       glfw.KeyInsert,
		KeyPrintScreen:  glfw.KeyPrintScreen,
		KeyDelete:       glfw.KeyDelete,
		KeyPageUp:       glfw.KeyPageUp,
		KeyPageDown:     glfw.KeyPageDown,
		KeyHome:         glfw.KeyHome,
		KeyEnd:          glfw.KeyEnd,
		KeyPause:        glfw.KeyPause,
		KeyScrollLock:   glfw.KeyScrollLock,
		KeyArrowLeft:    glfw.KeyLeft,
		KeyArrowRight:   glfw.KeyRight,
		KeyArrowDown:    glfw.KeyDown,
		KeyArrowUp:      glfw.KeyUp,
		KeyLeftBracket:  glfw.KeyLeftBracket,
		KeyLeftShift:    glfw.KeyLeftShift,
		KeyLeftControl:  glfw.KeyLeftControl,
		KeyLeftSuper:    glfw.KeyLeftSuper,
		KeyLeftAlt:      glfw.KeyLeftAlt,
		KeyRightBracket: glfw.KeyRightBracket,
		KeyRightShift:   glfw.KeyRightShift,
		KeyRightControl: glfw.KeyRightControl,
		KeyRightSuper:   glfw.KeyRightSuper,
		KeyRightAlt:     glfw.KeyRightAlt,
		KeyZero:         glfw.Key0,
		KeyOne:          glfw.Key1,
		KeyTwo:          glfw.Key2,
		KeyThree:        glfw.Key3,
		KeyFour:         glfw.Key4,
		KeyFive:         glfw.Key5,
		KeySix:          glfw.Key6,
		KeySeven:        glfw.Key7,
		KeyEight:        glfw.Key8,
		KeyNine:         glfw.Key9,
		KeyF1:           glfw.KeyF1,
		KeyF2:           glfw.KeyF2,
		KeyF3:           glfw.KeyF3,
		KeyF4:           glfw.KeyF4,
		KeyF5:           glfw.KeyF5,
		KeyF6:           glfw.KeyF6,
		KeyF7:           glfw.KeyF7,
		KeyF8:           glfw.KeyF8,
		KeyF9:           glfw.KeyF9,
		KeyF10:          glfw.KeyF10,
		KeyF11:          glfw.KeyF11,
		KeyF12:          glfw.KeyF12,
		KeyA:            glfw.KeyA,
		KeyB:            glfw.KeyB,
		KeyC:            glfw.KeyC,
		KeyD:            glfw.KeyD,
		KeyE:            glfw.KeyE,
		KeyF:            glfw.KeyF,
		KeyG:            glfw.KeyG,
		KeyH:            glfw.KeyH,
		KeyI:            glfw.KeyI,
		KeyJ:            glfw.KeyJ,
		KeyK:            glfw.KeyK,
		KeyL:            glfw.KeyL,
		KeyM:            glfw.KeyM,
		KeyN:            glfw.KeyN,
		KeyO:            glfw.KeyO,
		KeyP:            glfw.KeyP,
		KeyQ:            glfw.KeyQ,
		KeyR:            glfw.KeyR,
		KeyS:            glfw.KeyS,
		KeyT:            glfw.KeyT,
		KeyU:            glfw.KeyU,
		KeyV:            glfw.KeyV,
		KeyW:            glfw.KeyW,
		KeyX:            glfw.KeyX,
		KeyY:            glfw.KeyY,
		KeyZ:            glfw.KeyZ,
		KeyNumLock:      glfw.KeyNumLock,


grid-row-start:1;grid-column-start:1}.collapse>input[type=checkbox]{-webkit-appearance:none;appearance:none;opacity:0}.collapse-content{max-height:0;cursor:unset;grid-row-start:2;padding-left:1rem;padding-right:1rem;transition:padding .2s ease-in-out,background-color .2s ease-in-out;overflow:hidden}.collapse-open .collapse-content,.collapse:focus:not(.collapse-close) .collapse-content,.collapse:not(.collapse-close) input[type=checkbox]:checked~.collapse-content{max-height:none}:root .countdown{line-height:1em}.countdown{display:inline-flex}.countdown>*{height:1em;display:inline-block;overflow-y:hidden}.countdown>:before{content:"00\a 01\a 02\a 03\a 04\a 05\a 06\a 07\a 08\a 09\a 10\a 11\a 12\a 13\a 14\a 15\a 16\a 17\a 18\a 19\a 20\a 21\a 22\a 23\a 24\a 25\a 26\a 27\a 28\a 29\a 30\a 31\a 32\a 33\a 34\a 35\a 36\a 37\a 38\a 39\a 40\a 41\a 42\a 43\a 44\a 45\a 46\a 47\a 48\a 49\a 50\a 51\a 52\a 53\a 54\a 55\a 56\a 57\a 58\a 59\a 60\a 61\a 62\a 63\a 64\a 65\a 66\a 67\a 68\a 69\a 70\a 71\a 72\a 73\a 74\a 75\a 76\a 77\a 78\a 79\a 80\a 81\a 82\a 83\a 84\a 85\a 86\a 87\a 88\a 89\a 90\a 91\a 92\a 93\a 94\a 95\a 96\a 97\a 98\a 99\a ";white-space:pre;top:calc(var(--value)*-1em);text-align:center;transition:all 1s cubic-bezier(1,0,0,1);position:relative}.divider{height:1rem;white-space:nowrap;flex-direction:row;align-self:stretch;align-items:center;margin-top:1rem;margin-bottom:1rem;display:flex}.divider:before,.divider:after{content:"";height:.125rem;width:100%;flex-grow:1}.drawer{width:100%;height:100vh;height:100dvh;display:grid;overflow:hidden}.drawer.drawer-end{direction:rtl}.drawer.drawer-end>*{direction:ltr}.drawer.drawer-end>.drawer-toggle~.drawer-side>.drawer-overlay+*{--tw-translate-x:100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y));justify-self:end}.drawer.drawer-end>.drawer-toggle:checked~.drawer-side>.drawer-overlay+*{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}:where(.drawer-toggle~.drawer-content){height:inherit}.drawer-toggle{height:0;width:0;-webkit-appearance:none;appearance:none;opacity:0;position:absolute}.drawer-toggle~.drawer-content{z-index:0;grid-row-start:1;grid-column-start:1;transition-property:all;transition-duration:.3s


r(--#{$fa-css-prefix}-beat-fade-scale, 1.125));
  }
}

@keyframes #{$fa-css-prefix}-flip {
  50% {
    transform: rotate3d(var(--#{$fa-css-prefix}-flip-x, 0), var(--#{$fa-css-prefix}-flip-y, 1), var(--#{$fa-css-prefix}-flip-z, 0), var(--#{$fa-css-prefix}-flip-angle, -180deg));
  }
}

@keyframes #{$fa-css-prefix}-shake {
  0% { transform: rotate(-15deg); }
  4% { transform: rotate(15deg); }
  8%, 24% { transform: rotate(-18deg); }
  12%, 28% { transform: rotate(18deg); }
  16% { transform: rotate(-22deg); }
  20% { transform: rotate(22deg); }
  32% { transform: rotate(-12deg); }
  36% { transform: rotate(12deg); }
  40%, 100% { transform: rotate(0deg); }
}

@keyframes #{$fa-css-prefix}-spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/*!
 * Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 * Copyright 2023 Fonticons, Inc.
 */
@font-face {
  font-family: 'FontAwesome';
  font-display: block;
  src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }

@font-face {
  font-family: 'FontAwesome';
  font-display: block;
  src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }

@font-face {
  font-family: 'FontAwesome';
  font-display: block;
  src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype");
  unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; }

@font-face {
  font-family: 'FontAwesome';
  font-display: block;
  src: url("../webfonts/


xzthSqPbcR5_gVaxazyi8h91FzOgw1p2ltl6Y9TO0Bmgx_e.114.woff2) format('woff2');
    unicode-range: U+3c-3d, U+2026, U+24d2, U+314b, U+ac11, U+acf3, U+ad74, U+ad81, U+adf9, U+ae34, U+af43, U+afb8, U+b05d, U+b07c, U+b110, U+b118, U+b17c, U+b180, U+b18d, U+b192, U+b2cc, U+b355, U+b378, U+b4a4, U+b4ef, U+b78d, U+b799, U+b7a9, U+b7fd, U+b807, U+b80c, U+b839, U+b9b4, U+b9db, U+ba3c, U+bab0, U+bba4, U+bc94, U+be4c, U+c154, U+c1c4, U+c26c, U+c2ac, U+c2ed, U+c4f4, U+c55e, U+c561, U+c571, U+c5b5, U+c5c4, U+c654-c655, U+c695, U+c6e8, U+c6f9, U+c724, U+c751, U+c775, U+c7a0, U+c7c1, U+c874, U+c880, U+c9d5, U+c9f8, U+cabd, U+cc29, U+cc2c, U+cca8, U+ccab, U+ccd0, U+ce21, U+ce35, U+ce7c, U+ce90, U+cee8, U+cef4, U+cfe0, U+d070, U+d0b9, U+d0c1, U+d0c4, U+d0c8, U+d15c, U+d1a1, U+d2c0, U+d300, U+d314, U+d3ed, U+d478, U+d480, U+d48d, U+d508, U+d53d, U+d5e4, U+d611, U+d61c, U+d68d, U+d6a8, U+d798;
  }
  /* [115] */
  @font-face {
    font-family: 'Nanum Brush Script';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: local('Nanum Brush Script'), local('NanumBrush'), url(https://fonts.gstatic.com/s/nanumbrushscript/v17/wXK2E2wfpokopxzthSqPbcR5_gVaxazyi8h91FzOgw1p2ltl6Y9TO0Bmgx_e.115.woff2) format('woff2');
    unicode-range: U+23, U+25, U+5f, U+a9, U+ac08, U+ac78, U+aca8, U+acac, U+ace8, U+ad70, U+adc0, U+addc, U+b137, U+b140, U+b208, U+b290, U+b2f5, U+b3c5, U+b3cc, U+b420, U+b429, U+b529, U+b530, U+b77d, U+b79c, U+b7a8, U+b7c9, U+b7f0, U+b7fc, U+b828, U+b860, U+b9ad, U+b9c1, U+b9c9, U+b9dd-b9de, U+b9e8, U+ba38-ba39, U+babb, U+bc00, U+bc8c, U+bca0, U+bca4, U+bcd1, U+b


13:{if(!(lu(e,A[o>>2]|0,t,f)|0)){i=1;break A}break}default:{i=9;break A}}switch(i=A[s>>2]|0,A[u>>2]=i,A[l>>2]|0){case 2:{i=35;break A}case 3:{k=18;break A}default:}t=i}do if((k|0)==3){if(A[h>>2]|0){if(sA(e,A[o>>2]|0,t,f),(A[l>>2]|0)==2){i=35;break}i=A[s>>2]|0}A[n>>2]=i,i=0}else(k|0)==7?(A[n>>2]=t,i=0):(k|0)==12?(A[u>>2]=i,i=4):(k|0)==13?B[e+480>>0]|0?i=5:(A[n>>2]=t,i=0):(k|0)==15?B[e+480>>0]|0?i=6:(A[n>>2]=t,i=0):(k|0)==18&&(A[n>>2]=i,i=0);while(!1);return v=a,i|0}function g7(e,i,r,n,t,f){e=e|0,i=i|0,r=r|0,n=n|0,t=t|0,f=f|0;var l=0,s=0,u=0,o=0,w=0,h=0,k=0,a=0,E=0,g=0,m=0,y=0,I=0,Z=0,p=0,L=0,W=0,D=0,z=0;z=v,v=v+16|0,L=z+8|0,W=z+4|0,p=z,l=A[r>>2]|0,A[L>>2]=l,(A[e+144>>2]|0)==(i|0)?(g=e+284|0,A[g>>2]=l,m=e+288|0):(m=A[e+296>>2]|0,g=m,m=m+4|0),A[g>>2]=l,A[r>>2]=0,u=i+8|0,o=e+60|0,y=e+80|0,I=e+4|0,Z=e+476|0,w=i+68|0,h=e+44|0,k=i+56|0,a=e+48|0;A:for(;;){s=l2[A[u>>2]&127](i,A[L>>2]|0,n,W)|0,l=A[W>>2]|0,A[m>>2]=l,E=l;e:do switch(s|0){case 40:{D=6;break A}case 0:{D=23;break A}case-2:{D=24;break A}case-4:case-1:{D=26;break A}case 7:{if(l=A[o>>2]|0,l|0){B[p>>0]=10,a1[l&127](A[I>>2]|0,p,1);break e}A[y>>2]|0&&sA(e,i,A[L>>2]|0,E);break}case 6:{if(s=A[o>>2]|0,!s){if(!(A[y>>2]|0))break e;sA(e,i,A[L>>2]|0,E);break e}if(!(B[w>>0]|0))l=E;else{E=A[L>>2]|0,a1[s&127](A[I>>2]|0,E,l-E|0);break e}for(;A[p>>2]=A


dtype_size(dtype), l, r, d, offsize);
  }

  /// Emit one microinstruction.
  /// This variant accepts pointers to operands. It is more difficult to use
  /// but permits to create virtually any instruction. Operands may be nullptr
  /// when it makes sense.
  minsn_t *hexapi emit(mcode_t code, const mop_t *l, const mop_t *r, const mop_t *d);

};

//-------------------------------------------------------------------------
/// Parse DIRECTIVE and update the current configuration variables.
/// For the syntax see hexrays.cfg
bool hexapi change_hexrays_config(const char *directive);

//-------------------------------------------------------------------------
inline void mop_t::_make_insn(minsn_t *ins)
{
  t = mop_d;
  d = ins;
}

inline bool mop_t::has_side_effects(bool include_ldx_and_divs) const
{
  return is_insn() && d->has_side_effects(include_ldx_and_divs);
}

inline bool mop_t::is_kreg() const
{
  return is_reg() && ::is_kreg(r);
}

inline minsn_t *mop_t::get_insn(mcode_t code)
{
  return is_insn(code) ? d : nullptr;
}
inline const minsn_t *mop_t::get_insn(mcode_t code) const
{
  return is_insn(code) ? d : nullptr;
}

inline bool mop_t::is_insn(mcode_t code) const
{
  return is_insn() && d->opcode == code;
}

inline bool mop_t::is_glbaddr() const
{
  return t == mop_a && a->is_glbvar();
}

inline bool mop_t::is_glbaddr(ea_t ea) const
{
  return is_glbaddr() && a->g == ea;
}

inline bool mop_t::is_stkaddr() const
{
  return t == mop_a && a->is_stkvar();
}

inline vivl_t::vivl_t(const chain_t &ch)
  : voff_t(ch.key().type, ch.is_reg() ? ch.get_reg() : ch.get_stkoff()),
    size(ch.width)
{
}

// The following memory regions exist
//          start                     length
//          ------------------------  ---------
// lvars    spbase                    stacksize
// retaddr  spbase+stacksize          retsize
// shadow   spbase+stacksize+retsize  shadow_args
// args     inargoff                  MAX_FUNC_ARGS*sp_width-shadow_args
// globals  data_segment              sizeof_data_segment
// heap     everything else?

inline const ivl_t &mba_t::get_std_region(memreg_index_t idx) const
{
  return std_ivls[idx].ivl;
}

inline const ivl_t &mba_t::get_lvars_region() const
{
  return get_std_region(MMIDX_LVARS);
}

inline const ivl_t &mba_t::get_shadow_region() const
{
  return get_std_region(MMIDX_SHADOW);
}

inline const ivl_t &mba_t::get_args_region() const
{
  return get_std_region(MMIDX_ARGS);
}

inline ivl_t mba_t::get_stack_region() const
{
  return ivl_t(std_ivls[MMIDX_LVARS].ivl.off, fullsize);
}

//-------------------------------------------------------------------------
/// Get decompiler version.
/// The returned string is of the form <major>.<minor>.<revision>.<build-date>
/// \return pointer to version string. For example: "2.0.0.140605"

const char *hexapi get_hexrays_version();

/// \defgroup OPF_ open_pseudocode flags
/// Used in open_pseudocode
///@{
#define OPF_REUSE


.section .rodata
#include "constants/areas.h"
#include "constants/fields.h"
#include "constants/species.h"
#include "constants/bg_music.h"
#include "gba/io_reg.h"
	.include "asm/macros.inc"

gUnknown_08055A68:: @ 0x08055A68
	.2byte AREA_FOREST_RUBY
	.2byte AREA_VOLCANO
	.2byte AREA_PLAINS_RUBY
	.2byte AREA_OCEAN_RUBY
	.2byte AREA_SAFARI_ZONE
	.2byte AREA_CAVE_RUBY
	.2byte AREA_RUIN_RUBY
	.2byte AREA_FOREST_SAPPHIRE
	.2byte AREA_LAKE
	.2byte AREA_PLAINS_SAPPHIRE
	.2byte AREA_WILDERNESS
	.2byte AREA_OCEAN_SAPPHIRE
	.2byte AREA_CAVE_SAPPHIRE
	.2byte AREA_RUIN_SAPPHIRE

.include "data/mon_locations.inc"

gSineTable:: @ 0x08055C44
	.2byte 0x0000, 0x0007, 0x000F, 0x0017, 0x001E, 0x0026, 0x002E, 0x0035
	.2byte 0x003D, 0x0045, 0x004C, 0x0054, 0x005C, 0x0063, 0x006B, 0x0073
	.2byte 0x007A, 0x0082, 0x008A, 0x0091, 0x0099, 0x00A1, 0x00A8, 0x00B0
	.2byte 0x00B8, 0x00BF, 0x00C7, 0x00CF, 0x00D6, 0x00DE, 0x00E6, 0x00ED
	.2byte 0x00F5, 0x00FD, 0x0104, 0x010C, 0x0114, 0x011B, 0x0123, 0x012B
	.2byte 0x0132, 0x013A, 0x0142, 0x0149, 0x0151, 0x0159, 0x0160, 0x0168
	.2byte 0x0170, 0x0177, 0x017F, 0x0187, 0x018E, 0x0196, 0x019E, 0x01A5
	.2byte 0x01AD, 0x01B5, 0x01BC, 0x01C4, 0x01CC, 0x01D3, 0x01DB, 0x01E3
	.2byte 0x01EA, 0x01F2, 0x01FA, 0x0201, 0x0209, 0x0211, 0x0218, 0x0220
	.2byte 0x0228, 0x022F, 0x0237, 0x023F, 0x0246, 0x024E, 0x0256, 0x025D
	.2byte 0x0265, 0x026D, 0x0274, 0x027C, 0x0284, 0x028B, 0x0293, 0x029B
	.2byte 0x02A2, 0x02AA, 0x02B2, 0x02B9, 0x02C1, 0x02C9, 0x02D0, 0x02D8
	.2byte 0x02E0, 0x02E7, 0x02EF, 0x02F7, 0x02FE, 0x0306, 0x030E, 0x0315
	.2byte 0x031D, 0x0325, 0x032C, 0x0334, 0x033C, 0x0343, 0x034B, 0x0353
	.


rrentTagValues := Policy.Tags[zms.TagKey(tagKey)]
		if currentTagValues != nil {
			tagValueArr = append(tagValueArr, currentTagValues.List...)
		}
	}

	for _, tagValue := range tagValues {
		tagValueArr = append(tagValueArr, zms.TagCompoundValue(tagValue))
	}

	Policy.Tags[zms.TagKey(tagKey)] = &zms.TagValueList{List: tagValueArr}
	returnObj := false
	_, err = cli.Zms.PutPolicy(zms.DomainName(dn), zms.EntityName(pn), cli.AuditRef, &returnObj, cli.ResourceOwner, Policy)
	if err != nil {
		return nil, err
	}
	s := "[domain " + dn + " Policy " + pn + " tags successfully updated]\n"
	message := SuccessMessage{
		Status:  200,
		Message: s,
	}

	return cli.dumpByFormat(message, cli.buildYAMLOutput)
}

func (cli Zms) ShowPolicies(dn string, tagKey string, tagValue string) (*string, error) {
	if cli.OutputFormat == JSONOutputFormat || cli.OutputFormat == YAMLOutputFormat {
		publicKeys := true
		hosts := true
		Policies, err := cli.Zms.GetPolicies(zms.DomainName(dn), &publicKeys, &hosts, zms.TagKey(tagKey), zms.TagCompoundValue(tagValue))
		if err != nil {
			return nil, fmt.Errorf("unable to get Policy list - error: %v", err)
		}
		return cli.dumpByFormat(Policies, cli.buildYAMLOutput)
	} else {
		var buf bytes.Buffer
		cli.dumpPolicies(&buf, dn, tagKey, tagValue)
		s := buf.String()
		return &s, nil
	}
}

func (cli Zms) SetPolicyResourceOwnership(dn, pn, resourceOwner string) (*string, error) {
	resourceOwnership := zms.ResourcePolicyOwnership{}
	if resourceOwner != "" {
		fields := strings.Split(resourceOwner, ",")
		for _, field := range fields {
			parts := strings.Split(field, ":")
			if len(parts) != 2 {
				return nil, errors.New("invalid resource owner format")
			}
			if parts[0] == "objectowner" {
				resourceOwnership.ObjectOwner = zms.SimpleName(parts[1])
			} else if parts[0] == "assertionsowner" {
				resourceOwnership.AssertionsOwner = zms.SimpleName(parts[1])
			} else {
				return nil, errors.New("invalid resource owner format")
			}
		}
	}
	err := cli.Zms.PutResourcePolicyOwnership(zms.DomainName(dn), zms.EntityName(pn), cli.AuditRef, &resourceOwnership)
	if err != nil {
		return nil, err
	}
	s := "[domain " + dn + " policy " + pn + " policy-resource-ownership attribute successfully updated]\n"
	message := SuccessMessage{
		Status:  200,
		Message: s,
	}

	return cli.dumpByFormat(message, cli.buildYAMLOutput)
}
// Copyright The Athenz Authors
// Licensed under the terms of the Apache version 2.0 license. See LICENSE file for terms.

package zmscli

import (
	"bytes"
	"log"
	"strconv"
	"strings"

	"github.com/AthenZ/athenz/clients/go/zms"
)

var (
	indentLevel1        = "    "
	indentLevel1Dash    = "    - "
	indentLevel1DashLvl = "      "
	indentLevel2        = "        "
	indentLevel2Dash


one

ibm-valid-p51-ibm51v02

ibm-invalid-p51-ibm51i01

Logical Structures	Element Type Declaration
		In a mixed content declaration element names must not be parenthesized
		one

not-wf-sa-124

Logical Structures	Element Type Declaration
		In a mixed content declaration the literal "#PCDATA" must always appear before any other
		content model
		one

not-wf-sa-184

o-p51ail3

ibm-not-wf-p51-ibm51n02

Logical Structures	Element Type Declaration
		The same name must not appear more than once in a single mixed-content declaration
		one

invalid-dtd01

invalid-el05

ibm-invalid-p51-ibm51i03

Logical Structures	Element Type Declaration
		In the content specification portion of an element type declaration, a children must consists of
		either a choice or a sequence optionally followed by one of the characters ?,*,or +
		one

o-p47fail2

o-p47fail3

o-p47fail4

ibm-not-wf-p47-ibm47n01

ibm-not-wf-p47-ibm47n02

ibm-not-wf-p47-ibm47n03

ibm-not-wf-p47-ibm47n04

ibm-not-wf-p47-ibm47n05

ibm-not-wf-p47-ibm47n06

valid-sa-057

valid-sa-081

valid-ext-sa-005

ibm-valid-p47-ibm47n01

o-p46fail4

o-p47pass1

o-p48pass1

o-p49pass1

o-p50pass1

o-p46pass1

not-wf-dtd01

sun-valid-optional

Logical Structures	Element Type Declaration
		If the children is composed of choices, then the choices must contain one
		or more content particles enclosed in matchig parenthesis and separated from
		each other by vertical bars and optional whitespace
		one

ibm-not-wf-p49-ibm49n01

ibm-not-wf-p49-ibm49n02

ibm-not-wf-p49-ibm49n03

ibm-not-wf-p49-ibm49n04

ibm-not-wf-p49-ibm49n05

ibm-not-wf-p49-ibm49n06

valid-sa-112

o-p49fail1

ibm-valid-


uest);
    }

    // wait for location updates to succeed and update state afterwards
    var reportsForAccessories = await Future.wait(runningLocationRequests);
    for (var i = 0; i < currentAccessories.length; i++) {
      var accessory = currentAccessories.elementAt(i);
      var reports = reportsForAccessories.elementAt(i);

      print("Found ${reports.length} reports for accessory '${accessory.name}'");

      accessory.locationHistory = reports
        .where((report) => report.latitude.abs() <= 90 && report.longitude.abs() < 90 )
        .map((report) => Pair<LatLng, DateTime>(
          LatLng(report.latitude, report.longitude),
          report.timestamp ?? report.published,
        ))
        .toList();

      if (reports.isNotEmpty) {
        var lastReport = reports.first;
        accessory.lastLocation = LatLng(lastReport.latitude, lastReport.longitude);
        accessory.datePublished = lastReport.timestamp ?? lastReport.published;
      }
    }

    // Store updated lastLocation and datePublished for accessories
    _storeAccessories();

    initialLoadFinished = true;
    notifyListeners();
  }

  /// Stores the user's accessories in persistent storage.
  Future<void> _storeAccessories() async {
    List jsonList = _accessories.map(jsonEncode).toList();
    await _storage.write(key: accessoryStorageKey, value: jsonList.toString());
  }

  /// Adds a new accessory to this registry.
  void addAccessory(Accessory accessory) {
    _accessories.add(accessory);
    _storeAccessories();
    notifyListeners();
  }

  /// Removes [accessory] from this registry.
  void removeAccessory(Accessory accessory) {
    _accessories.remove(accessory);
    // TODO: remove private key from keychain
    _storeAccessories();
    notifyListeners();
  }

  /// Updates [oldAccessory] with the values from [newAccessory].
  void editAccessory(Accessory oldAccessory, Accessory newAccessory) {
    oldAccessory.update(newAccessory);
    _storeAccessories();
    notifyListeners();
  }
}
import 'dart:convert';

import 'package:flutter/material.dart';

class AccessoryPrivateKeyInput extends StatelessWidget {
  ValueChanged<String?> changeListener;

  /// Displays an input field with validation for a Base64 encoded accessory private key.
  AccessoryPrivateKeyInput({
    Key? key,
    required this.changeListener,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 4.0),
      child: TextFormField(
        decoration: const InputDecoration(
          hintText: 'SGVsbG8gV29ybGQhCg==',
          labelText: 'Private Key (Base64)',
        ),
        validator: (value) {
          if (value == null || value.isEmpty) {
            return 'Private key must be provided.';
          }
          try {
            var removeEscaping = value
              .replaceAll('\\', '').replaceAll('\n', '');
            base64Decode(removeEscaping);
          } catch (e) {
            return 'Value must be valid base64 key.';
          }
          return null;
        },
        onSaved: (newValue) =>
          changeListener(newValue?.replaceAll('\\', '').replaceAll('\n', '')),
      ),
    );
  }
}
import 'package:flutter/material.dart';
import 'package:openhaystack_mobile/accessory/accessory_icon_selector.dart';

class AccessoryIconInput extends StatelessWidget {
  /// The initial


 1f).toSrgb(a = 1f))
            }
            var i2 = vertex {
                set(-0.5f * rt, 0.866f * rt, 0f)
                color.set(Color.BLACK)
            }
            var i3 = vertex {
                set(-0.5f * rt, -0.866f * rt, 0f)
                color.set(Color.WHITE)
            }
            addTriIndices(i1, i2, i3)

            color = modifier.hueIndicatorColor
            i1 = vertex { set(ri + sizes.smallGap.px * 0.75f, 0f, 0f) }
            i2 = vertex { set(ri - sizes.smallGap.px * 0.5f, sizes.smallGap.px * 0.8f, 0f) }
            i3 = vertex { set(ri - sizes.smallGap.px * 0.5f, sizes.smallGap.px * -0.8f, 0f) }
            addTriIndices(i1, i2, i3)
            i1 = vertex { set(ro - sizes.smallGap.px * 0.75f, 0f, 0f) }
            i2 = vertex { set(ro + sizes.smallGap.px * 0.5f, sizes.smallGap.px * 0.8f, 0f) }
            i3 = vertex { set(ro + sizes.smallGap.px * 0.5f, sizes.smallGap.px * -0.8f, 0f) }
            addTriIndices(i3, i2, i1)

        }
    }

    private fun rebuildGeometry() {
        geomCache.rebuildCache {
            translate(centerX, centerY, 0f)

            // outer ring (hue chooser)
            val n = 60
            var vi1 = 0
            var vi2 = 0
            for (i in 0..n) {
                val a = 2f * PI.toFloat() * i / n

                color = hueGradient.getColor(i.toFloat() / n)
                val vi3 = vertex {
                    x = cos(a) * ro
                    y = sin(a) * ro
                }
                val vi4 = vertex {
                    x = cos(a) * ri
                    y = sin(a) * ri
                }
                if (i > 0) {
                    addTriIndices(vi1, vi2, vi4)
                    addTriIndices(vi1, vi4, vi3)
                }
                vi1 = vi3
                vi2 = vi4
            }
        }
    }

    companion object {
        val factory: (UiNode, UiSurface) -> ColorWheelNode = { parent, surface -> ColorWheelNode(parent, surface) }

        private val hueGradient = ColorGradient(Color.RED, Color.YELLOW, Color.GREEN, Color.CYAN, Color.BLUE, Color.MAGENTA, Color.RED)
    }
}
package de.fabmax.kool.modules.gizmo

import de.fabmax.kool.math.*
import de.fabmax.kool.pipeline.DepthCompareOp
import de.fabmax.kool.pipeline.RenderPass
import de.fabmax.kool.scene.Node
import de.fabmax.kool.scene.TriangulatedLineMesh
import de.fabmax.kool.scene.TriangulatedPointMesh
import de.fabmax.kool.scene.TrsTransformD
import de.fabmax.kool.util.Color
import de.fabmax.kool.util.MdColor

class ScaleOverlay(val gizmo: GizmoNode) : Node(), GizmoListener {

    private val points = TriangulatedPointMesh()
    private val lines = TriangulatedLineMesh()
    private val weakLines = TriangulatedLineMesh()

    private val startPos = MutableVec3f()
    private val currentScale = MutableVec3d()
    private var label


60]).toBeUndefined();

			expect(() => {
				// @ts-ignore
				self.register(TestOperationPlugin, 30);
			}).toThrowError("Plugin#code conflicted for code: 30");
			expect(() => {
				// unsupported の場合初期化されない (=例外が発生しない) ことを確認
				// @ts-ignore
				self.register(TestOperationPluginUnsupported, 42);
			}).not.toThrowError("Plugin#code conflicted for code: 42");

			done();
		});
		game._loadAndStart();
	});

	it("destroy", done => {
		game._onStart.add(() => {
			const self = game.operationPluginManager;

			self.destroy();
			expect(self.onOperate).toBeFalsy();
			expect(self.plugins).toBeFalsy();
			done();
		});
		game._loadAndStart();
	});

	it("reset", done => {
		game._onStart.add(() => {
			const self = game.operationPluginManager;
			self.onOperate.add(() => {
				return;
			});
			// @ts-ignore
			const plugin = self.register(TestOperationPlugin, 11, { dummy: true }) as TestOperationPlugin;
			expect(self.plugins[11]).toBeDefined();
			plugin!.start();
			expect(plugin._started).toBe(true);

			self.reset();
			expect(self.onOperate.length).toBe(0);
			expect(self.plugins).toEqual({});
			expect(plugin._started).toBe(false);
			done();
		});
		game._loadAndStart();
	});
});
import * as storage from '../storage';
import {
	sampleTodos,
	sampleVisitFrequency,
	visitFQWithFirstIncrd,
	maxViewId
} from 'utils/__mocks__/dummyData';

jest.unmock('utils/storage');

const expectedForEmpty = Object.keys(sampleVisitFrequency).reduce(
	(acc, key) => {
		acc[key] = 1;
		return acc;
	},
	{} as Record<string, number>
);

Object.defineProperty(window, 'localStorage', {
	value: {
		getItem: jest.fn(),
		setItem: jest.fn()
	}
});

// const visits = 'visits';
const visitFqStr = JSON.stringify(sampleVisitFrequency);

describe('utils/storage', () => {
	test('loadNotes', () => {
		const sample = [12, 13, 45];
		//@ts-ignore
		window.localStorage.getItem.mockImplementationOnce(() =>
			JSON.stringify(sample)
		);

		expect(storage.loadNotes()).toStrictEqual(sample);
	});

	test.each([
		[visitFqStr, visitFqStr],
		[null, JSON.stringify(expectedForEmpty)]
	])('initVisitCounters', (dummyFqCount, dummyFinal) => {
		//@ts-ignore
		window.localStorage.getItem.mockImplementation(key =>
			key === storage.fqCountKey
				? dummyFqCount
				: key === storage.storeKey
				? JSON.stringify(sampleTodos)
				: ''
		);
		//@ts-ignore
		window.localStorage.setItem.mockImplementation((_key, _data) => undefined);
		storage.initVisitCounters();

		expect(window.localStorage.setItem).toBeCalledWith(storage.fqCountKey, dummyFinal);
	});

	test('increaseCount', () => {
		const firstDummyTodo = sampleTodos[0].id;
		//@ts-ignore
		window.localStorage.getItem.mockReturnValue(visitFqStr);
		//@ts-ignore
		window.localStorage.setItem.mockImplementation((_key, _data) => undefined);
		storage.increaseCount(firstDummyTodo);

		expect(window.localStorage.setItem).toBeCalledWith(
			storage.fqCountKey,
			JSON.stringify(visitFQWithFirstIncrd)
		);
	});

	test('getMostVisited', () => {
		//@ts-ignore
		window.localStorage.getItem.mockReturnValue(visitFqStr);
		const maxid = storage.getMostVisited();

		expect(maxid).toBe(String(maxViewId));
	});
});
import {Injectable} from '@angular/core';
import {Website} from '@websites/website.model';

@Injecta


 zurückkehrt, ist Eure Aufgabe abgeschlossen."}, {"Bringt Frostrachens Mähne zu Melor Stonehoof in Thunder Bluff."}},
[1137] = {"Neuigkeiten für Fizzle", {"Indurium besitzt einen erstaunlichen Hitzewiderstand! Ich bin sicher, es taugt für Fizzles Kolben. Aber er braucht echtes Indurium, nicht nur die Späne.","Das Erz muss tief in den Minen von Uldaman abgebaut werden, an der Nordgrenze des Ödlandes. Das ist die wahre Quelle von Indurium.","Bestellt Fizzle Brassbolts Grüße von mir und sagt ihm, was ich Euch gesagt habe.","Angenehme Reise, <Name>. Ich wäre nicht überrascht, wenn wir uns wiedersehen - wenn Fizzle von dem Indurium erfährt, schickt er Euch wahrscheinlich nach Uldaman, um es zu holen!"}, {"Sprecht mit Fizzle Brassbolts in der schimmernden Ebene."}},
[1138] = {"Meeresfrüchte", {"Ich liebe Krebse. Krebse sind die Früchte des Meeres! Man kann sie backen, grillen, kochen und braten. Man kann sie in der Pfanne braten, frittieren und kurzbraten. Es gibt Krebssalat, Krebssuppe, Krebseintopf, Pfefferkrebs, Zitronenkrebs, Peitscherwurzelkrebs und Ironforgekrebs à la Surprise. Das ... das war's eigentlich.","Ich angle hier gerade und daher kann ich mir keine feinen Krebsbrocken besorgen. Mann kann sie aus Riffkriechern und verkrusteten Gezeitenkriechern kratzen. Man kann viel mit ihnen anstellen. Man kann sie backen, grillen, kochen ..."}, {"Sammelt 6 feine Krebsbrocken für Gubber Blump in Auberdine."}},
[1139] = {"Die verlorene Tafel des Willens", {"Wir haben den Schattenschmiedeklan ausgebremst, indem wir ihn von der Blackrockspitze abgeschnitten haben, doch Hammertoes Mission wurde noch nicht erfüllt. Sein Tod darf nicht umsonst gewesen sein. Er träumte davon, die Schrifttafel des Willens zu finden: eine Steintafel, graviert mit Magie durch die Titanen selbst, die helfen, ihren Schöpfungen Leben einzuhauchen und ihnen damit einen eigenen Willen ermöglichen. So jedenfalls heißt es in den Legenden.","Dennoch müssen wir die Tafel bergen, ehe der Schattenschmiedeklan sie finden kann.","Kehrt nach Uldaman zurück, sucht die Tafel und kommt unverzüglich wieder her."}, {"Sucht die Tafel des Willens und bringt sie zu Berater Belgrum in Ironforge."}},
[1140] = {"Der Turm von Althalaxx", {"Díe Schrift der Orcs ist kaum mehr als das Gekritzel eines Kindes. Viele meines Ordens spotteten, als ich ihre Sprache lernen wollte, aber ich fand es hilfreich, meine Feinde besser zu verstehen.","Ilkruds Gekritzel zufolge scheint Athrikus immer noch zwei Seelenedelsteine zu besitzen, und die werden in Nightrun und Satyrnaar aufbewahrt, Satyrgebiete im nordöstlichen Ashenvale.","Seid vorsichtig da draußen, <Name>, die bluttriefenden Tempel der Satyrn können selbst für abgebrühte <Klasse> wie Euch beängstigend sein."}, {"Befreit die Hochgeborenenseelen in Night Run und Satyrnaar und kehrt zu Delgren dem Läuterer in Maestras Posten zurück."}},
[1141] = {"Die Familie und die Angel", {"Ich liebe das


EL_PATH,
    )

    cv2.namedWindow('rgb')
    for index, color_image in enumerate(tqdm(color_images)):
        data_prefix = color_image.replace('color.png', '')
        data = InferDataset.alternetive_init(data_prefix, img_size=GenPose2.cfg.img_size, device=GenPose2.cfg.device, n_pts=GenPose2.cfg.num_points)
        pose, length = GenPose2.inference(data, PREV_POSE, TRACKING, TRACKING_T0)
        color_image_w_pose = visualize_pose(data, pose, length, visualize_image=False)
        PREV_POSE = pose
        cv2.imshow('rgb', color_image_w_pose)
        cv2.waitKey(1)

    cv2.destroyAllWindows()

if __name__ == '__main__':
    main()


 0x04)
			paletteram_xBBBBBGGGGGRRRRR_swap_w(offset + 0x0800,data);
		else
			paletteram_xBBBBBGGGGGRRRRR_swap_w(offset,data);
	}
	else if (videobank & 0x01)
		K053245_w(offset,data);
	else
		ram[offset] = data;
}

static WRITE_HANDLER( surpratk_videobank_w )
{
//logerror("%04x: videobank = %02x\n",cpu_get_pc(),data);
	/* bit 0 = select 053245 at 0000-07ff */
	/* bit 1 = select palette at 0000-07ff */
	/* bit 2 = select palette bank 0 or 1 */
	videobank = data;
}

static WRITE_HANDLER( surpratk_5fc0_w )
{
	//if ((data & 0xf4) != 0x10) logerror("%04x: 3fc0 = %02x\n",cpu_get_pc(),data);

	/* bit 0/1 = coin counters */
	coin_counter_w(0,data & 0x01);
	coin_counter_w(1,data & 0x02);

	/* bit 3 = enable char ROM reading through the video RAM */
	K052109_set_RMRD_line( ( data & 0x08 ) ? ASSERT_LINE : CLEAR_LINE );

	/* other bits unknown */
}

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

static struct MemoryReadAddress surpratk_readmem[] =
{
	{ 0x0000, 0x07ff, bankedram_r },
	{ 0x0800, 0x1fff, MRA_RAM },
	{ 0x2000, 0x3fff, MRA_BANK1 },			/* banked ROM */
	{ 0x5f8c, 0x5f8c, input_port_0_r },
	{ 0x5f8d, 0x5f8d, input_port_1_r },
	{ 0x5f8e, 0x5f8e, input_port_4_r },
	{ 0x5f8f, 0x5f8f, input_port_2_r },
	{ 0x5f90, 0x5f90, input_port_3_r },
//	{ 0x5f91, 0x5f91, YM2151_status_port_0_r },	/* ? */
	{ 0x5fa0, 0x5faf, K053244_r },
	{ 0x5fc0, 0x5fc0, watchdog_reset_r },
	{ 0x4000, 0x7fff, K052109_r },
	{ 0x8000, 0xffff, MRA_ROM },			/* ROM */
	{ -1 }	/* end of table */
};

static struct MemoryWriteAddress surpratk_writemem[] =
{
	{ 0x0000, 0x07ff, bankedram_w, &ram },
	{ 0x0800, 0x1fff, MWA_RAM },
	{ 0x2000, 0x3fff, MWA_ROM },					/* banked ROM */
	{ 0x5fa0, 0x5faf, K053244_w },
	{ 0x5fb0, 0x5fbf, K053251_w },
	{ 0x5fc0, 0x5fc0, surpratk_5fc0_w },
	{ 0x5fd0, 0x5fd0, YM2151_register_port_0_w },
	{ 0x5fd1, 0x5fd1, YM2151_data_port_0_w },
	{ 0x5fc4, 0x5fc4, surpratk_videobank_w },
	{ 0x4000, 0x7fff, K052109_w },
	{ 0x8000, 0xffff, MWA_ROM },					/* ROM */
	{ -1 }	/* end of table */
};

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


r
	%undef Bptr
	%undef Rptr
	%undef Bcols
	%undef Arows
	%undef Brows
	%undef Astride
	%undef Bstride
	%undef Rstride

	%undef Bcols16
	%undef Bcols4
	%undef j
	%undef k

	;; begin epilog ;;
	pop r14
	pop r13
	pop r12
	pop rbx
	pop rdi
	pop rsi
	COMPV_YASM_RESTORE_XMM
	COMPV_YASM_UNSHADOW_ARGS
	mov rsp, rbp
	pop rbp
	ret

%endif ; COMPV_YASM_ABI_IS_64BIT


selectAllTabs(tabIndex, false);
}

/**
 * Changes all tab groups to show the same tab index.
 *
 * @param index The 0 based index for the tab in the group.
 * @param pushHistory Should the page location be updated.
 */
function selectAllTabs(index, pushHistory)
{
    let tabGroups = document.getElementsByClassName('tabs');
    for (let i = 0, count = tabGroups.length; i < count; i++)
    {
        let group = tabGroups[i];
        selectTab(group, index);
    }
    if (pushHistory)
    {
        history.pushState(null, document.title, window.location.pathname
            + '?language=' + tabGroups[0].getElementsByClassName('tabs-title')[index].innerHTML.trim().toLowerCase()
            + window.location.hash);
    }
}

/**
 * Select a tab and show its contents in a tab group.
 *
 * @param group The tab group to update.
 * @param index The tab position in the group.
 */
function selectTab(group, index)
{
    let tabContents = group.getElementsByClassName('tabs-content');
    for (let i = 0, count = tabContents.length; i < count; i++)
    {
        let content = tabContents[i];
        if (i == index)
        {
            content.classList.remove('hidden');
        }
        else
        {
            content.classList.add('hidden');
        }
    }
    let titles = group.getElementsByClassName('tabs-title');
    for (let i = 0, count = titles.length; i < count; i++)
    {
        let content = titles[i];
        if (i == index)
        {
            content.classList.add('selected');
        }
        else
        {
            content.classList.remove('selected');
        }
        if (!content.classList.contains('inited'))
        {
            let pos = i;
            content.onclick = () =>
            {
                selectAllTabs(pos, true);
            };
            content.classList.add('inited');
        }
    }
}

initTabs();
import React from 'react';
import clsx from 'clsx';
import Layout from '@theme/Layout';
import Link from '@docusaurus/Link';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import styles from './index.module.css';
import HomepageFeatures from '../components/HomepageFeatures';

function HomepageHeader() {
  const {siteConfig} = useDocusaurusContext();
  return (

{siteConfig.title}

{siteConfig.tagline}

          <Link
            className="button button--secondary button--lg"
            to="/docs/intro">
            mdx-mermaid Tutorial - 5min ⏱
          </Link>

  );
}

export default function Home() {
  const {siteConfig} = useDocusaurusContext();
  return (
    <Layout
      title={siteConfig.title}
      description="Display mermaid diagrams in mdx files.">

          Support Ukraine 🇺🇦{' '}
          <Link to="https://opensource.facebook.com/support-ukraine">
            Help Provide Humanitarian Aid to Ukraine
          </Link>
          .

      <HomepageHeader />

        <HomepageFeatures />

    </Layout>


1, Y5, Y5)
		VFMADD213PD(Y2, Y6, Y6)
		VFMADD213PD(Y3, Y7, Y7)
		VMOVUPD(Mem{Base: RDI}.Idx(RDX, 8).Offset(128), Y0)
		VMOVUPD(Mem{Base: RDI}.Idx(RDX, 8).Offset(160), Y1)
		VMOVUPD(Mem{Base: RDI}.Idx(RDX, 8).Offset(192), Y2)
		VMOVUPD(Mem{Base: RDI}.Idx(RDX, 8).Offset(224), Y3)
		VFMADD213PD(Y4, Y0, Y0)
		VFMADD213PD(Y5, Y1, Y1)
		VFMADD213PD(Y6, Y2, Y2)
		VFMADD213PD(Y7, Y3, Y3)
		ADDQ(Imm(32), RDX)
		ADDQ(I32(-2), RCX)
		JNE(LabelRef("LBB2_7"))
		TESTB(Imm(1), R8B)
		JE(LabelRef("LBB2_10"))
	}

	Label("LBB2_9")
	{
		VMOVUPD(Mem{Base: RDI}.Idx(RDX, 8), Y4)
		VMOVUPD(Mem{Base: RDI}.Idx(RDX, 8).Offset(32), Y5)
		VMOVUPD(Mem{Base: RDI}.Idx(RDX, 8).Offset(64), Y6)
		VMOVUPD(Mem{Base: RDI}.Idx(RDX, 8).Offset(96), Y7)
		VFMADD231PD(Y4, Y4, Y0)
		VFMADD231PD(Y5, Y5, Y1)
		VFMADD231PD(Y6, Y6, Y2)
		VFMADD231PD(Y7, Y7, Y3)
	}

	Label("LBB2_10")
	{
		VADDPD(Y3, Y1, Y1)
		VADDPD(Y2, Y0, Y0)
		VADDPD(Y1, Y0, Y0)
		VEXTRACTF128(Imm(1), Y0, X1)
		VADDPD(X1, X0, X0)
		VPERMILPD(Imm(1), X0, X1)
		VADDSD(X1, X0, X0)
		CMPQ(RAX, RSI)
		JE(LabelRef("LBB2_12"))
	}

	Label("LBB2_11")
	{
		VMOVSD(Mem{Base: RDI}.Idx(RAX, 8), X1)
		VFMADD231SD(X1, X1, X0)
		ADDQ(Imm(1), RAX)
		CMPQ(RSI, RAX)
		JNE(LabelRef("LBB2_11"))
	}

	Label("LBB2_12")
	{
		VSQRTSD(X0, X0, X0)
		VZEROUPPER()
		Store(X0, ReturnIndex(0))
		RET()
	}

	Label("LBB2_5")
	{
		VXORPD(X0, X0, X0)
		XORL(EDX, EDX)
		VXORPD(X1, X1, X1)
		VXORPD(X2, X2, X2)
		VXORPD(X3, X3, X3)
		TESTB(Imm(1), R8B)
		JNE(LabelRef("LBB2_9"))
		JMP(LabelRef("LBB2_10"))
	}
}

func genNorm_F32() {

	data := GLOBL("dataNormF32", RODATA|NOPTR)
	DATA(0, U32(0xc0400000))
	DATA(4, U32(0xbf000000))
	DATA(8, U32(0x7fffffff))
	DATA(12, U32


 "46693",
		"name": "Herndon",
		"state_id": "3974"
	},
	{
		"id": "46694",
		"name": "Highland Springs",
		"state_id": "3974"
	},
	{
		"id": "46695",
		"name": "Hollins",
		"state_id": "3974"
	},
	{
		"id": "46696",
		"name": "Hopewell",
		"state_id": "3974"
	},
	{
		"id": "46697",
		"name": "Hybla Valley",
		"state_id": "3974"
	},
	{
		"id": "46698",
		"name": "Idylwood",
		"state_id": "3974"
	},
	{
		"id": "46699",
		"name": "Irvington",
		"state_id": "3974"
	},
	{
		"id": "46700",
		"name": "Jamesville",
		"state_id": "3974"
	},
	{
		"id": "46701",
		"name": "Jefferson",
		"state_id": "3974"
	},
	{
		"id": "46702",
		"name": "Keen Mountain",
		"state_id": "3974"
	},
	{
		"id": "46703",
		"name": "Keswick",
		"state_id": "3974"
	},
	{
		"id": "46704",
		"name": "Lake Ridge",
		"state_id": "3974"
	},
	{
		"id": "46705",
		"name": "Lakeside",
		"state_id": "3974"
	},
	{
		"id": "46706",
		"name": "Laurel",
		"state_id": "3974"
	},
	{
		"id": "46707",
		"name": "Leesburg",
		"state_id": "3974"
	},
	{
		"id": "46708",
		"name": "Lincolnia",
		"state_id": "3974"
	},
	{
		"id": "46709",
		"name": "Lorton",
		"state_id": "3974"
	},
	{
		"id": "46710",
		"name": "Lynchburg",
		"state_id": "3974"
	},
	{
		"id": "46711",
		"name": "MacLean",
		"state_id": "3974"
	},
	{
		"id": "46712",
		"name": "Madison",
		"state_id": "3974"
	},
	{
		"id": "46713",
		"name": "Madison Heights",
		"state_id": "3974"
	},
	{
		"id": "46714",
		"name": "Manassas",
		"state_id": "3974"
	},
	{
		"id": "46715",
		"name": "Marion",
		"state_id": "3974"
	},
	{
		"id": "46716",
		"name": "Martinsville",
		"state_id": "3974"
	},
	{
		"id": "46717",
		"name": "Mclean",
		"state_id": "3974"
	},
	{
		"id": "46718",
		"name": "Mechanicsville",
		"state_id": "3974"
	},
	{
		"id": "46719",
		"name": "Melfa",
		"state_id": "3974"
	},
	{
		"id": "46720",
		"name": "Midlothian",
		"state_id": "3974"
	},
	{
		"id": "46


 are met:
 *  1. Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *  2. Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *  3. Neither the name of the copyright holder nor the
 *     names of its contributors may be used to endorse or promote products
 *     derived from this software without specific prior written permission.
 *
 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 *  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 *  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 *  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 *  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 *  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 *  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 *  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 *  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 *  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 *  POSSIBILITY OF SUCH DAMAGE.
 */

/**
 * @file
 *   This file implements the ping sender module.
 */

#include "ping_sender.hpp"

#if OPENTHREAD_CONFIG_PING_SENDER_ENABLE

#include "common/as_core_type.hpp"
#include "common/encoding.hpp"
#include "common/locator_getters.hpp"
#include "common/num_utils.hpp"
#include "common/random.hpp"

namespace ot {
namespace Utils {

void PingSender::Config::SetUnspecifiedToDefault(void)
{
    if (mSize == 0)
    {
        mSize = kDefaultSize;
    }

    if (mCount == 0)
    {
        mCount = kDefaultCount;
    }

    if (mInterval == 0)
    {
        mInterval = kDefaultInterval;
    }

    if (mTimeout == 0)
    {
        mTimeout = kDefaultTimeout;
    }
}

void PingSender::Config::InvokeReplyCallback(const Reply &aReply) const
{
    VerifyOrExit(mReplyCallback != nullptr);
    mReplyCallback(&aReply, mCallbackContext);

exit:
    return;
}

void PingSender::Config::InvokeStatisticsCallback(const Statistics &aStatistics) const
{
    VerifyOrExit(mStatisticsCallback != nullptr);
    mStatisticsCallback(&aStatistics, mCallbackContext);

exit:
    return;
}

PingSender::PingSender(Instance &aInstance)
    : InstanceLocator(aInstance)
    , mIdentifier(0)
    , mTargetEchoSequence(0)
    , mTimer(aInstance)
    , mIcmpHandler(PingSender::HandleIcmpReceive, this)
{
    IgnoreError(Get<Ip6::Icmp>().RegisterHandler(mIcmpHandler));
}

Error PingSender::Ping(const Config &aConfig)
{
    Error error = kErrorNone;

    VerifyOrExit(!mTimer.IsRunning(), error = kErrorBusy);

    mConfig = aConfig;
    mConfig.SetUnspecifiedToDefault();

    VerifyOrExit(mConfig.mInterval <= Timer::kMaxDelay, error = kErrorInvalidArgs);

    mStatistics.Clear();
    mStatistics.mIsMulticast = AsCoreType(&mConfig.mDestination).IsMulticast();

    mIdentifier++;
    SendPing();

exit:
    return error;
}

void PingSender::Stop(void)
{
    mTimer.Stop();
    mIdentifier++;
}

void PingSender::SendPing(void)
{
    TimeMilli        now     = TimerMilli::GetNow();


_NOSE;
    }

    /**
     * 某个五官的组件
     *
     * @param type
     * @return
     */
    public static List<AvatarComponent> getAvatarComponents(int type) {
        List<AvatarComponent> avatarComponents = AVATAR_COMPONENTS.get(type);
        if (avatarComponents == null) {
            registerAvatarComponent(type);
            avatarComponents = AVATAR_COMPONENTS.get(type);
            if (avatarComponents == null) {
                avatarComponents = new ArrayList<>(8);
                AVATAR_COMPONENTS.put(type, avatarComponents);
            }
        }
        return avatarComponents;
    }

    /**
     * 五官的类型
     *
     * @param context
     * @return
     */
    public static List<AvatarFaceType> getAvatarFaceTypes(Context context) {
        Resources resources = context.getResources();
        List<AvatarFaceType> avatarFaceTypes = new ArrayList<>(8);
        avatarFaceTypes.add(new AvatarFaceType(resources.getString(R.string.avatar_face_hair), AvatarFaceType.AVATAR_FACE_HAIR, ColorConstant.hair_color));
        avatarFaceTypes.add(new AvatarFaceType(resources.getString(R.string.avatar_face_face), AvatarFaceType.AVATAR_FACE_SHAPE, ColorConstant.skin_color));
        avatarFaceTypes.add(new AvatarFaceType(resources.getString(R.string.avatar_face_eye), AvatarFaceType.AVATAR_FACE_EYE, ColorConstant.iris_color));
        avatarFaceTypes.add(new AvatarFaceType(resources.getString(R.string.avatar_face_lip), AvatarFaceType.AVATAR_FACE_LIP, ColorConstant.lip_color));
        avatarFaceTypes.add(new AvatarFaceType(resources.getString(R.string.avatar_face_nose), AvatarFaceType.AVATAR_FACE_NOSE));
//        avatarFaceTypes.add(new AvatarFaceType(resources.getString(R.string.avatar_face_eyebrow), AVATAR_FACE_EYEBROW));
//        avatarFaceTypes.add(new AvatarFaceType(resources.getString(R.string.avatar_face_eyelash), AVATAR_FACE_EYELASH));
        return avatarFaceTypes;
    }

    public static void registerAvatarComponent(int type) {
        switch (type) {
            case AvatarFaceType.AVATAR_FACE_SHAPE: {
                List<AvatarComponent> avatarComponents = new ArrayList<>(8);
                if (AvatarFaceHelper.isNeedCustomize(type)) {
                    avatarComponents.add(new AvatarComponent(type, R.drawable.demo_icon_diy, null, true));
                }

                List<AvatarFaceAspect> faceShapeAspects = new ArrayList<>(2);
                faceShapeAspects.add(AvatarFaceAspect.ofValue(type, "2", 0.6f));
                faceShapeAspects.add(AvatarFaceAspect.ofValue(type, "7", 0.45f));
                AvatarComponent faceShape01 = new AvatarComponent(type, R.drawable.lianxing_01, faceShapeAspects);
                avatarComponents.add(faceShape01);

                faceShapeAspects = new ArrayList<>(2);
                faceShapeAspects.add(AvatarFaceAspect.ofValue(type, "10", 0.7f));
                AvatarComponent faceShape02 = new AvatarComponent(type, R.drawable.lianxing_02, faceShapeAspects);
                avatarComponents.add(faceShape02);

                faceShapeAspects = new ArrayList<>(4);
                faceShapeAspects.add(AvatarFaceAspect.ofValue(type, "1", 0.2f));
                faceShapeAspects.add(AvatarFaceAspect.ofValue(type, "9", 0.75f));
                faceShapeAspect


		local iRouteID = UI.GetInterfaceModeDebugItemID2();
		plot:SetRouteType(iRouteID);
	-- Feature
	elseif debugItem1 == 4 then
		local iFeatureID = UI.GetInterfaceModeDebugItemID2();
		plot:SetFeatureType(iFeatureID);
	-- Resource
	elseif debugItem1 == 5 then
		local iResourceID = UI.GetInterfaceModeDebugItemID2();
		plot:SetResourceType(iResourceID, 5);
	-- Plopper
	elseif (debugItem1 == 6 and
			type(g_PlopperSettings) == "table" and
			type(g_PlopperSettings.Plopper) == "table" and
			type(g_PlopperSettings.Plopper.Plop) == "function") then

		g_PlopperSettings.Plopper.Plop(plot);
		return true; -- Do not allow the interface mode to be set back to INTERFACEMODE_SELECTION
	end

	UI.SetInterfaceMode(InterfaceModeTypes.INTERFACEMODE_SELECTION);
	return true;
end

----------------------------------
-- RIGHT MOUSE BUTTON
----------------------------------

InterfaceModeMessageHandler[InterfaceModeTypes.INTERFACEMODE_DEBUG][MouseEvents.RButtonDown] =
function()
	local plot = Map.GetPlot( UI.GetMouseOverHex() );
	local debugItem1 = UI.GetInterfaceModeDebugItemID1();

	-- Plopper
	if (debugItem1 == 6 and
			type(g_PlopperSettings) == "table" and
			type(g_PlopperSettings.Plopper) == "table" and
			type(g_PlopperSettings.Plopper.Deplop) == "function") then

		g_PlopperSettings.Plopper.Deplop(plot);
	end

	return true;
end

InterfaceModeMessageHandler[InterfaceModeTypes.INTERFACEMODE_DEBUG][MouseEvents.RButtonUp] =
function()
	-- Trap RButtonUp
	return true;
end

InterfaceModeMessageHandler[InterfaceModeTypes.INTERFACEMODE_RANGE_ATTACK][KeyEvents.KeyDown] =
function( wParam, lParam )
	if wParam == Keys.VK_ESCAPE then
		UI.SetInterfaceMode(InterfaceModeTypes.INTERFACEMODE_SELECTION);
		return true;
	elseif wParam == Keys.VK_NUMPAD1 or wParam == Keys.VK_NUMPAD3 or wParam == Keys.VK_NUMPAD4 or wParam == Keys.VK_NUMPAD6 or wParam == Keys.VK_NUMPAD7 or wParam == Keys.VK_NUMPAD8 then
		UI.SetInterfaceMode(InterfaceModeTypes.INTERFACEMODE_SELECTION);
		return DefaultMessageHandler[KeyEvents.KeyDown]( wParam, lParam );
	else
		return DefaultMessageHandler[KeyEvents.KeyDown]( wParam, lParam );
	end
end

InterfaceModeMessageHandler[InterfaceModeTypes.INTERFACEMODE_CITY_RANGE_ATTACK][KeyEvents.KeyDown] =
function( wParam, lParam )
	if wParam == Keys.VK_ESCAPE then
		UI.ClearSelectedCities();
		UI.SetInterfaceMode(InterfaceModeTypes.INTERFACEMODE_SELECTION);
		return true;
	elseif wParam == Keys.VK_NUMPAD1 or wParam == Keys.VK_NUMPAD3 or wParam == Keys.VK_NUMPAD4 or wParam == Keys.VK_NUMPAD6 or wParam == Keys.VK_NUMPAD7 or wParam == Keys.VK_NUMPAD8 then
		UI.ClearSelectedCities();
		UI.SetInterfaceMode(InterfaceModeTypes.INTERFACEMODE_SELECTION);
		return DefaultMessageHandler[KeyEvents.KeyDown]( wParam, lParam );
	else


tars>1-10
// Copyright (c) 2019 DDN. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.

use crate::Msg;
use seed::{class, div, prelude::*, span};

#[derive(serde::Deserialize, serde::Serialize, Debug, PartialEq, Clone)]
#[serde(rename_all = "lowercase")]
pub enum TooltipPlacement {
    Left,
    Right,
    Top,
    Bottom,
}

impl From<&TooltipPlacement> for &str {
    fn from(p: &TooltipPlacement) -> Self {
        match p {
            TooltipPlacement::Left => "left",
            TooltipPlacement::Right => "right",
            TooltipPlacement::Top => "top",
            TooltipPlacement::Bottom => "bottom",
        }
    }
}

impl Default for TooltipPlacement {
    fn default() -> Self {
        TooltipPlacement::Left
    }
}

#[derive(serde::Deserialize, serde::Serialize, Debug, PartialEq, Clone)]
#[serde(rename_all = "lowercase")]
pub enum TooltipSize {
    XSmall,
    Small,
    Medium,
    Large,
}

impl From<&TooltipSize> for &str {
    fn from(s: &TooltipSize) -> Self {
        match s {
            TooltipSize::XSmall => "xsmall",
            TooltipSize::Small => "small",
            TooltipSize::Medium => "medium",
            TooltipSize::Large => "large",
        }
    }
}

impl Default for TooltipSize {
    fn default() -> Self {
        TooltipSize::Large
    }
}

/// A tooltip component
pub fn tooltip_component(
    message: &str,
    placement: &TooltipPlacement,
    size: &TooltipSize,
    more_classes: Option<Vec<&str>>,
) -> El<Msg> {
    let more_classes = match more_classes {
        Some(classes) => classes.join(" "),
        None => "".to_string(),
    };

    div![
        class![
            "tooltip inferno-tt",
            placement.into(),
            size.into(),
            more_classes.as_str()
        ],
        div![class!["tooltip-arrow"]],
        div![class!["tooltip-inner"], span![El::from_html(&message)]]
    ]
}
<filename>jni-android-sys/src/generated/api-level-29/android/graphics/drawable/GradientDrawable.rs
// WARNING:  This file was autogenerated by jni-bindgen.  Any changes to this file may be lost!!!

#[cfg(any(feature = "all", feature = "android-graphics-drawable-GradientDrawable"))]
__jni_bindgen! {
    /// public class [GradientDrawable](https://developer.android.com/reference/android/graphics/drawable/GradientDrawable.html)
    ///
    /// Required feature: android-graphics-drawable-GradientDrawable
    public class GradientDrawable ("android/graphics/drawable/GradientDrawable") extends crate::android::graphics::drawable::Drawable {

        /// [GradientDrawable](https://developer.android.com/reference/android/graphics/drawable/GradientDrawable.html#GradientDrawable())
        pub fn new<'env>(__jni_env: &'env __jni_bindgen::Env) -> __jni_bindgen::std::result::Result<__jni_bindgen::Local<'env, crate::android::graphics::drawable::GradientDrawable>, __jni_bindgen::Local<'env, crate::java::lang::Throwable>> {
            // class.path == "android/graphics/drawable/GradientDrawable", java.flags == PUBLIC,


package.path = ".\\?.lua;" .. package.path
package.cpath = ".\\?.dll;" .. package.cpath

crvmgr = require("test_c")
require("init")

el_test_time_table = {

{"めいじ1ねん",			"(skk-gengo-to-ad \"西暦\" \"年\")",	"(skk-gengo-to-ad \"西暦\" \"年\")"},
{"めいじ1ねん",			"(skk-gengo-to-ad \"\" \"年\")",		"(skk-gengo-to-ad \"\" \"年\")"},
{"めいじ5ねん",			"(skk-gengo-to-ad \"西暦\" \"年\")",	"(skk-gengo-to-ad \"西暦\" \"年\")"},
{"めいじ5ねん",			"(skk-gengo-to-ad \"\" \"年\")",		"(skk-gengo-to-ad \"\" \"年\")"},
{"めいじ6ねん",			"(skk-gengo-to-ad \"西暦\" \"年\")",	"西暦1873年"},
{"めいじ6ねん",			"(skk-gengo-to-ad \"\" \"年\")",		"1873年"},
{"めいじ45ねん",		"(skk-gengo-to-ad \"西暦\" \"年\")",	"西暦1912年"},
{"めいじ45ねん",		"(skk-gengo-to-ad \"\" \"年\")",		"1912年"},
{"たいしょう1ねん",		"(skk-gengo-to-ad \"西暦\" \"年\")",	"西暦1912年"},
{"たいしょう1ねん",		"(skk-gengo-to-ad \"\" \"年\")",		"1912年"},
{"たいしょう15ねん",	"(skk-gengo-to-ad \"西暦\" \"年\")",	"西暦1926年"},
{"たいしょう15ねん",	"(skk-gengo-to-ad \"\" \"年\")",		"1926年"},
{"しょうわ1ねん",		"(skk-gengo-to-ad \"西暦\" \"年\")",	"西暦1926年"},
{"しょうわ1ねん",		"(skk-gengo-to-ad \"\" \"年\")",		"1926年"},
{"しょうわ64ねん",		"(skk-gengo-to-ad \"西暦\" \"年\")",	"西暦1989年"},
{"しょうわ64ねん",		"(skk-gengo-to-ad \"\" \"年\")",		"1989年"},
{"へいせい1ねん",		"(skk-gengo-to-ad \"西暦\" \"年\")",	"西暦1989年"},
{"へいせい1ねん",		"(skk-gengo-to-ad \"\" \"年\")",		"1989年"},
{"へいせい31ねん",		"(skk-gengo-to-ad \"西暦\" \"年\")",	"西暦2019年"},
{"へいせい31ねん",		"(skk-gengo-to-ad \"\" \"年\")",		"2019年"},
{"れいわ1ねん",			"(skk-gengo-to-ad \"西暦\" \"年\")",	"西暦2019年"},
{"れいわ1ねん",			"(skk-gengo-to-ad \"\" \"年\")",		"2019年"},

{"せいれき1911ねん",	"(skk-ad-to-gengo 0 nil \"年\" t)",	"明治


"></text><text x="92.27967532362374" y="178.3140956875091" class="debug" fill="#ff0000" style="
                font: 5px Droid Sans, sans-serif;
            "></text><text x="65.95204546422447" y="206.97314350048435" class="element" fill="#222" style="text-anchor: start; writing-mode: horizontal-tb; text-orientation: mixed; letter-spacing: normal; direction: ltr;"><tspan>I</tspan></text><text x="71.20204546422447" y="201.72314350048435" class="debug" fill="#ff0000" style="
                font: 5px Droid Sans, sans-serif;
            "></text><text x="103.6232900282815" y="124.94676105824107" class="debug" fill="#ff0000" style="
                font: 5px Droid Sans, sans-serif;
            "></text><text x="82.54566016888225" y="148.3558088712163" class="debug" fill="#ff0000" style="
                font: 5px Droid Sans, sans-serif;
            "></text><text x="51.73401515474151" y="133.93156986789876" class="element" fill="#222" style="text-anchor: start; glyph-orientation-vertical: 0; writing-mode: vertical-rl; text-orientation: upright; letter-spacing: -1px; direction: ltr;"><tspan>O</tspan></text><text x="51.73401515474151" y="141.80656986789876" class="debug" fill="#ff0000" style="
                font: 5px Droid Sans, sans-serif;
            "></text><text x="42" y="111.84828305160596" class="debug" fill="#ff0000" style="
                font: 5px Droid Sans, sans-serif;
            "></text></g></svg>

 `
  },

  {
    id: " 56 ",
    smiles: " <smiles>c2c1c([nH]cc1CC(C)N)ccc2OCc3cccs3</smiles> ",
    img_cdk: "  ",
    img: "  ",
    svg: `

<svg id="smiles-" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 308 191.32601140640838" style="width: 308.32782946334453px; overflow: visible;"><defs><linearGradient id="line-0" gradientUnits="userSpaceOnUse" x1="187.33602249638471" y1="121.43639135248615" x2="214.1110224963787" y2="121.43640937755278"><stop stop-color="#222" offset="20%"></stop><stop stop-color="#222" offset="100%"></stop></linearGradient><linearGradient id="line-1" gradientUnits="userSpaceOnUse" x1="184.97352631345817" y1="115.76638976204039" x2="216.4735263134511" y2="115.76641096800113"><stop stop-color="#222" offset="20%"></stop><stop stop-color="#222" offset="100%"></stop></linearGradient><linearGradient id="line-2" gradientUnits="userSpaceOnUse" x1="169.22350794856104" y1="143.04617937826367" x2="184.97352631345817" y2="115.76638976204039"><stop stop-color="#222" offset="20%"></stop><stop stop-color="#222" offset="100%"></stop></linearGradient><linearGradient id="line-3" gradientUnits="userSpaceOnUse" x1="216.4735263134511" y1="115.76641096800113" x2="232.22350794854677" y2="143.04622179018514"><stop stop-color="#222" offset


#region License Information
/* HeuristicLab
 * Copyright (C) Heuristic and Evolutionary Algorithms Laboratory (HEAL)
 *
 * This file is part of HeuristicLab.
 *
 * HeuristicLab 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.
 *
 * HeuristicLab 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 HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
 */
#endregion

using System;
using System.Windows.Forms;
using HeuristicLab.MainForm;
using HeuristicLab.Optimization.Views;

namespace HeuristicLab.Problems.TravelingSalesman.Views {
  /// <summary>
  /// A view for a Traveling Salesman Problem instance.
  /// </summary>
  [View("Traveling Salesman Problem View")]
  [Content(typeof(TravelingSalesmanProblem), true)]
  public sealed partial class TravelingSalesmanProblemView : ProblemView {
    public new TravelingSalesmanProblem Content {
      get { return (TravelingSalesmanProblem)base.Content; }
      set { base.Content = value; }
    }

    /// <summary>
    /// Initializes a new instance of <see cref="TravelingSalesmanProblemView"/>.
    /// </summary>
    public TravelingSalesmanProblemView() {
      InitializeComponent();
    }

    protected override void DeregisterContentEvents() {
      Content.CoordinatesParameter.ValueCha


kTemplateFormParamsWithoutFile = """
PAYLOAD = URI.encode_www_form({\n{% for param in params %}  "{{ param.name }}" => "{{ param.value }}",\n{% endfor %}})\n\n
""";

  final String kTemplateConnection = """
conn = Faraday.new do |faraday|
  faraday.adapter Faraday.default_adapter{% if hasFile %}\n  faraday.request :multipart{% endif %}
end

""";

  final String kTemplateRequestStart = """
response = conn.{{ method|lower }}(REQUEST_URL{% if doesMethodAcceptBody and containsBody %}, PAYLOAD{% endif %}) do |req|

""";

  final String kTemplateRequestParams = """
  req.params = {
{% for key, val in params %}    "{{ key }}" => "{{ val }}",\n{% endfor %}  }

""";

  final String kTemplateRequestHeaders = """
  req.headers = {
{% for key, val in headers %}    "{{ key }}" => "{{ val }}",\n{% endfor %}  }

""";

  final String kStringDeleteRequestBody = """
  req.body = PAYLOAD
""";

  final String kStringRequestEnd = """
end

""";

  final String kStringResponse = """
puts "Status Code: #{response.status}"
puts "Response Body: #{response.body}"
""";

  String? getCode(
    HttpRequestModel requestModel,
  ) {
    try {
      String result = "";

      var rec = getValidRequestUri(
        requestModel.url,
        requestModel.enabledParams,
      );

      Uri? uri = rec.$1;

      if (uri == null) {
        return "";
      }

      var url = stripUriParams(uri);

      result += kStringFaradayRequireStatement;
      if (requestModel.hasFormDataContentType &&
          requestModel.hasFileInFormData) {
        result += kStringFaradayMultipartRequireStatement;
      }

      var templateRequestUrl = jj.Template(kTemplateRequestUrl);
      result += templateRequestUrl.render({"url": url});

      if (requestModel.hasFormData) {
        jj.Template payload;
        if (requestModel.hasFileInFormData) {
          payload = jj.Template(kTemplateFormParamsWithFile);
        } else {
          payload = jj.Template(kTemplateFormParamsWithoutFile);
        }
        result += payload.render({"params": requestModel.formDataMapList});
      } else if (requestModel.hasJsonData || requestModel.hasTextData) {
        var templateBody = jj.Template(kTemplateBody);
        result += templateBody.render({
          "body": requestModel.body,
        });
      }

      // creating faraday connection for request
      var templateConnection = jj.Template(kTemplateConnection);
      result += templateConnection.render({
        "hasFile": requestModel.hasFormDataContentType &&
            requestModel.hasFileInFormData
      });

      // start of the request sending
      var templateRequestStart = jj.Template(kTemplateRequestStart);
      result += templateRequestStart.render({
        "method": requestModel.method.name,
        "doesMethodAcceptBody":
            kMethodsWithBody.contains(requestModel.method) &&
                requestModel.method != HTTPVerb.delete,
        "containsBody": requestModel.hasBody,
      });

      var headers = requestModel.enabledHeadersMap;
      if (requestModel.hasBody && !requestModel.hasContentTypeHeader) {
        if (requestModel.hasJsonData || requestModel.hasTextData) {
          headers[kHeaderContentType] = requestModel.bodyContentType.header;
        }
      }

      if (headers.isNotEmpty) {
        var templateRequestHeaders = jj.Template(kTemplateRequestHeaders);
        result += templateRequestHeaders.render({"headers": headers});
      }

      if (uri.hasQuery) {
        var params = uri.queryParameters;
        if (params.isNotEmpty) {
          var templateRequestParams = jj.Template(kTemplateRequest


@ RUN: not llvm-mc -triple=armv7-linux-gnueabi %s 2>&1 | FileCheck %s
.text

        vorr.i32        d2, #0xffffffff
        vorr.i32        q2, #0xffffffff
        vorr.i32        d2, #0xabababab
        vorr.i32        q2, #0xabababab
        vorr.i16        q2, #0xabab
        vorr.i16        q2, #0xabab

@ CHECK: error: invalid instruction, any one of the following would fix this:
@ CHECK: operand must be a register in range [d0, d31]
@ CHECK: note: invalid operand for instruction
@ CHECK: vorr.i32        d2, #0xffffffff
@ CHECK: error: invalid instruction, any one of the following would fix this:
@ CHECK: note: operand must be a register in range [q0, q15]
@ CHECK: note: invalid operand for instruction
@ CHECK: vorr.i32        q2, #0xffffffff
@ CHECK: error: invalid instruction, any one of the following would fix this:
@ CHECK: operand must be a register in range [d0, d31]
@ CHECK: note: invalid operand for instruction
@ CHECK: vorr.i32        d2, #0xabababab
@ CHECK: error: invalid instruction, any one of the following would fix this:
@ CHECK: note: operand must be a register in range [q0, q15]
@ CHECK: note: invalid operand for instruction
@ CHECK: vorr.i32        q2, #0xabababab
@ CHECK: error: invalid instruction, any one of the following would fix this:
@ CHECK: note: operand must be a register in range [q0, q15]
@ CHECK: note: invalid operand for instruction
@ CHECK: vorr.i16        q2, #0xabab
@ CHECK: error: invalid instruction, any one of the following would fix this:
@ CHECK: note: operand must be a register in range [q0, q15]
@ CHECK: note: invalid operand for instruction
@ CHECK: vorr.i16


的缓冲区一样了。
     *
     * load()方法会加载整个文件以使它常驻内存，此映射使得操作系统的底层虚拟内存子系统可以根据需要将文件中相应区块的数据读进内存。
     * 已经在内存中或通过验证的页会占用实际内存空间，并且在它们被读进RAM时会挤出最近较少使用的其他内存页。
     *
     * 在一个映射缓冲区上调用load()方法会是一个代价高的操作，因为它会导致大量的页调入（page-in），具体数量取决于文件中被映射区域的实际大小。
     * 然而，load()方法返回并不能保证文件就会完全常驻内存，这是由于请求页面调入（demand paging）是动态的。
     * 具体结果会因某些因素而有所差异，这些因素包括：操作系统、文件系统，可用Java虚拟机内存，最大Java虚拟机内存，垃圾收集器实现过程等等。
     * 务必小心使用load()方法，它可能会导致不希望出现的结果。
     */
    public final MappedByteBuffer load() {
        if(fd == null) {
            return this;
        }
        if((address == 0) || (capacity() == 0))
            return this;
        long offset = mappingOffset();
        long length = mappingLength(offset);
        load0(mappingAddress(offset), length);

        // Read a byte from each page to bring it into memory.
        // A checksum is computed as we go along to prevent the compiler from otherwise considering the loop as dead code.
        Unsafe unsafe = Unsafe.getUnsafe();
        int ps = Bits.pageSize();
        int count = Bits.pageCount(length);
        long a = mappingAddress(offset);
        byte x = 0;
        try {
            for(int i = 0; i < count; i++) {
                // TODO consider changing to getByteOpaque thus avoiding dead code elimination and the need to calculate a checksum
                x ^= unsafe.getByte(a);
                a += ps;
            }
        } finally {
            Reference.reachabilityFence(this);
        }
        if(unused != 0)
            unused = x;

        return this;
    }

    /**
     * Tells whether or not this buffer's content is resident in physical
     * memory.
     *
     * <p> A return value of {@code true} implies that it is highly likely
     * that all of the data in this buffer is resident in physical memory and
     * may therefore be accessed without incurring any virtual-memory page
     * faults or I/O operations.  A return value of {@code false} does not
     * necessarily imply that the buffer's content is not resident in physical
     * memory.
     *
     * <p> The returned value is a hint, rather than a guarantee, because the
     * underlying operating system may have paged out some of the buffer's data
     * by the time that an invocation of this method returns.  </p>
     *
     * @return {@code true} if it is likely that this buffer's content
     * is resident in physical memory
     */
    /*
     * 可以通过调用isLoaded()方法来判断一个被映射的文件是否完全常驻内存了。
     * 如果该方法返回true值，那么很大概率是映射


Columns ) do

		local TargetWidth = math.ceil( Column:GetWide() ) + ChangePerColumn
		Remainder = Remainder + ( TargetWidth - Column:SetWidth( TargetWidth ) )

	end

	local TotalMaxWidth = 0

	-- If there's a remainder, try to palm it off on the other panels, equally
	while ( Remainder != 0 ) do

		local PerPanel = math.floor( Remainder / NumColumns )

		for k, Column in pairs( self.Columns ) do

			Remainder = math.Approach( Remainder, 0, PerPanel )

			local TargetWidth = math.ceil( Column:GetWide() ) + PerPanel
			Remainder = Remainder + ( TargetWidth - Column:SetWidth( TargetWidth ) )

			if ( Remainder == 0 ) then break end

			TotalMaxWidth = TotalMaxWidth + math.ceil( Column:GetMaxWidth() )

		end

		-- Total max width of all the columns is less than the width of the DListView, abort!
		if ( TotalMaxWidth < self.pnlCanvas:GetWide() ) then break end

		Remainder = math.Approach( Remainder, 0, 1 )

	end

	-- Set the positions of the resized columns
	local x = 0
	for k, Column in pairs( self.Columns ) do

		Column.x = x
		x = x + math.ceil( Column:GetWide() )

		Column:SetTall( math.ceil( self:GetHeaderHeight() ) )
		Column:SetVisible( !self:GetHideHeaders() )

	end

end

function PANEL:PerformLayout()

	-- Do Scrollbar
	local Wide = self:GetWide()
	local YPos = 0

	if ( IsValid( self.VBar ) ) then

		self.VBar:SetPos( self:GetWide() - 16, 0 )
		self.VBar:SetSize( 16, self:GetTall() )
		self.VBar:SetUp( self.VBar:GetTall() - self:GetHeaderHeight(), self.pnlCanvas:GetTall() )
		YPos = self.VBar:GetOffset()

		if ( self.VBar.Enabled ) then Wide = Wide - 16 end

	end

	if ( self.m_bHideHeaders ) then
		self.pnlCanvas:SetPos( 0, YPos )
	else
		self.pnlCanvas:SetPos( 0, YPos + self:GetHeaderHeight() )
	end

	self.pnlCanvas:SetSize( Wide, self.pnlCanvas:GetTall() )

	self:FixColumnsLayout()

	--
	-- If the data is dirty, re-layout
	--
	if ( self:GetDirty() ) then

		self:SetDirty( false )
		local y = self:DataLayout()
		self.pnlCanvas:SetTall( y )

		-- Layout again, since stuff has changed..
		self:InvalidateLayout( true )

	end

end

function PANEL:OnScrollbarAppear()

	self:SetDirty( true )
	self:InvalidateLayout()

end

function PANEL:OnRequestResize( SizingColumn, iSize )

	-- Find the column to the right of this one
	local Passed = false
	local RightColumn = nil
	for k, Column in pairs( self.Columns ) do

		if ( Passed ) then
			RightColumn = Column
			break
		end

		if ( SizingColumn == Column ) then Passed = true end

	end

	-- Alter the size of the column on the right too, slightly
	if ( RightColumn ) then

		local SizeChange = SizingColumn:GetWide() - iSize
		RightColumn:SetWide( RightColumn:GetWide() + SizeChange )

	end

	SizingColumn:SetWide( iSize )
	self:SetDirty( true )

	-- Invalidating will munge all the columns about and make it right
	self:InvalidateLayout()

end

function PANEL:DataLayout()

	local y = 0
	local h = self.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using WDE.Common.Database;
using WDE.Module.Attributes;
using WDE.SmartScriptEditor.Data;
using WDE.SmartScriptEditor.Editor;
using WDE.SmartScriptEditor.Models;

namespace WDE.TrinitySmartScriptEditor.Editor
{
    [AutoRegister]
    public class TrinitySmartScriptDatabaseProvider : ISmartScriptDatabaseProvider
    {
        private readonly IDatabaseProvider databaseProvider;

        public TrinitySmartScriptDatabaseProvider(IDatabaseProvider databaseProvider)
        {
            this.databaseProvider = databaseProvider;
        }

        public Task<IReadOnlyList<ISmartScriptLine>> GetScriptFor(uint entry, int entryOrGuid, SmartScriptType type)
        {
            return databaseProvider.GetSc


 }
}

class ArenaDetachRowRepository {
  const ArenaDetachRowRepository._();

  /// Detaches the relation between this [Arena] and the [Team] set in `team`
  /// by setting the [Arena]'s foreign key `id` to `null`.
  ///
  /// This removes the association between the two models without deleting
  /// the related record.
  Future<void> team(
    _i1.Session session,
    Arena arena, {
    _i1.Transaction? transaction,
  }) async {
    var $team = arena.team;

    if ($team == null) {
      throw ArgumentError.notNull('arena.team');
    }
    if ($team.id == null) {
      throw ArgumentError.notNull('arena.team.id');
    }
    if (arena.id == null) {
      throw ArgumentError.notNull('arena.id');
    }

    var $$team = $team.copyWith(arenaId: null);
    await session.db.updateRow<_i2.Team>(
      $$team,
      columns: [_i2.Team.t.arenaId],
      transaction: transaction,
    );
  }
}
/* AUTOMATICALLY GENERATED CODE DO NOT MODIFY */
/*   To generate run: "serverpod generate"    */

// ignore_for_file: implementation_imports
// ignore_for_file: library_private_types_in_public_api
// ignore_for_file: non_constant_identifier_names
// ignore_for_file: public_member_api_docs
// ignore_for_file: type_literal_in_constant_pattern
// ignore_for_file: use_super_parameters
// ignore_for_file: invalid_use_of_internal_member

// ignore_for_file: unnecessary_null_comparison

// ignore_for_file: no_leading_underscores_for_library_prefixes
import 'package:serverpod/serverpod.dart' as _i1;
import '../../../models_with_relations/self_relation/one_to_one/post.dart'
    as _i2;

abstract class Post implements _i1.TableRow<int?>, _i1.ProtocolSerialization {
  Post._({
    this.id,
    required this.content,
    this.previous,
    this.nextId,
    this.next,
  });

  factory Post({
    int? id,
    required String content,
    _i2.Post? previous,
    int? nextId,
    _i2.Post? next,
  }) = _PostImpl;

  factory Post.fromJson(Map<String, dynamic> jsonSerialization) {
    return Post(
      id: jsonSerialization['id'] as int?,
      content: jsonSerialization['content'] as String,
      previous: jsonSerialization['previous'] == null
          ? null
          : _i2.Post.fromJson(
              (jsonSerialization['previous'] as Map<String, dynamic>)),
      nextId: jsonSerialization['nextId'] as int?,
      next: jsonSerialization['next'] == null
          ? null
          : _i2.Post.fromJson(
              (jsonSerialization['next'] as Map<String, dynamic>)),
    );
  }

  static final t = PostTable();

  static const db = PostRepository._();

  @override
  int? id;

  String content;

  _i2.Post? previous;

  int? nextId;

  _i2.Post? next;

  @override
  _i1.Table<int?> get table => t;

  /// Returns a shallow copy of this [Post]
  /// with some or all fields replaced by the given arguments.
  @_i1.useResult
  Post copyWith({
    int? id,
    String? content,
    _i2.Post? previous,
    int? nextId,
    _i2.Post? next,
  });
  @override
  Map<String, dynamic> toJson() {
    return {
      if (id != null) 'id': id,
      'content': content,
      if (previous != null) 'previous': previous?.toJson


ansform: "".concat(innerTranslate, " ").concat(innerScale, " ").concat(innerRotate)
    };
    var path = {
      transform: "translate(".concat(iconWidth / 2 * -1, " -256)")
    };
    return {
      outer: outer,
      inner: inner,
      path: path
    };
  }
  function transformForCss(_ref2) {
    var transform = _ref2.transform,
        _ref2$width = _ref2.width,
        width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,
        _ref2$height = _ref2.height,
        height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,
        _ref2$startCentered = _ref2.startCentered,
        startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;
    var val = '';

    if (startCentered && IS_IE) {
      val += "translate(".concat(transform.x / d - width / 2, "em, ").concat(transform.y / d - height / 2, "em) ");
    } else if (startCentered) {
      val += "translate(calc(-50% + ".concat(transform.x / d, "em), calc(-50% + ").concat(transform.y / d, "em)) ");
    } else {
      val += "translate(".concat(transform.x / d, "em, ").concat(transform.y / d, "em) ");
    }

    val += "scale(".concat(transform.size / d * (transform.flipX ? -1 : 1), ", ").concat(transform.size / d * (transform.flipY ? -1 : 1), ") ");
    val += "rotate(".concat(transform.rotate, "deg) ");
    return val;
  }

  var baseStyles = ":host,:root{--fa-font-solid:normal 900 1em/1 \"Font Awesome 6 Solid\";--fa-font-regular:normal 400 1em/1 \"Font Awesome 6 Regular\";--fa-font-light:normal 300 1em/1 \"Font Awesome 6 Light\";--fa-font-thin:normal 100 1em/1 \"Font Awesome 6 Thin\";--fa-font-duotone:normal 900 1em/1 \"Font Awesome 6 Duotone\";--fa-font-brands:normal 400 1em/1 \"Font Awesome 6 Brands\"}svg:not(:host).svg-inline--fa,svg:not(:root).svg-inline--fa{overflow:visible;box-sizing:content-box}.svg-inline--fa{display:var(--fa-display,inline-block);height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-2xs{vertical-align:.1em}.svg-inline--fa.fa-xs{vertical-align:0}.svg-inline--fa.fa-sm{vertical-align:-.0714285705em}.svg-inline--fa.fa-lg{vertical-align:-.2em}.svg-inline--fa.fa-xl{vertical-align:-.25em}.svg-inline--fa.fa-2xl{vertical-align:-.3125em}.svg-inline--fa.fa-pull-left{margin-right:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-pull-right{margin-left:var(--fa-pull-margin,.3em);width:auto}.svg-inline--fa.fa-li{width:var(--fa-li-width,2em);top:.25em}.svg-inline--fa.fa-fw{width:var(--fa-fw-width,1.25em)}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-text{left:50%;top:50%;-