, 0));
        cur.clear();
        ans.clear();
        dfs(0);

        for (int i = 0; i < m; ++i) {
            scanf("%d", &a);
            --a;
            if (a < (int)ans.size()) {
                for (int i = 0; i < (int)ans[a].size(); ++i) {
                    if (i > 0) {
                        putchar(' ');
                    }
                    printf("%d", ans[a][i]);
                }
                puts("");
            } else {
                puts("Out of range.");
            }
        }
        puts("");
    }

    return 0;
}

//Run ID    Submit Time     Judge Status    Problem ID  Language    Run Time(ms)    Run Memory(KB)  User Name   Admin
//468   2011-04-15 01:43:07     Accepted    C   C++     140     1120    watashi     Source
//Run ID    Submit Time     Judge Status    Problem ID  Language    Run Time(ms)    Run Memory(KB)  User Name   Admin
//2500529   2011-04-17 22:15:21     Accepted    3489    C++     90  1120    watashi@ArcOfDream  Source

// 2012-09-07 16:01:22 | Accepted | 3489 | C++ | 80 | 1120 | watashi | Source
#include <cstdio>
#include <algorithm>
using namespace std;

const int bin[11] = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024};
int mp[10][10];
int dp[1024];

int main(void)
{
    int n;

    while(scanf("%d", &n) != EOF && n > 0) {
        for (int i = 0; i < n; i++)
            for (int j = 0; j < n; j++)
                scanf("%d", &mp[i][j]);
        fill(dp, dp + bin[n], 0);
        for (int k = 0; k < bin[n]; k++) {
            for (int i = 0; i < n; i++) {
                if(k & bin[i])
                    continue;;
                for (int j = 0; j < n; j++) {
                    if(k & bin[j])
                        continue;
                    if(i == j)
                        continue;
                    dp[k | bin[j]] = max(dp[k | bin[j]], dp[k] + mp[i][j]);
                }
            }
        }
        printf("%d\n", *max_element(dp, dp + bin[n]));
    }

    return 0;
}

//Run ID    Submit Time     Judge Status    Problem ID  Language    Run Time(ms)    Run Memory(KB)  User Name   Admin
//707   2011-02-08 20:30:59     Accepted    E   C++     60  184     watashi@ArcOfDream  Source

// 2012-09-07 15:59:27 | Accepted | 3471 | C++ | 60 | 184 | watashi | Source
#include <cstdio>
#include <vector>
#include <cstring>
#include <algorithm>

using namespace std;

const int MAXL = 500500;
const int SIGMA = 256;

int c[SIGMA];
int l[MAXL];
char str[MAXL];
char pat[MAXL];

int main() {
    int n, m, k;
    vector<int> ans;

    while (scanf("%s%s", str, pat) != EOF) {
        n = strlen(str);
        m = strlen(pat);
        fill(c, c + SIGMA, 0);
        for (int i = 0; i < m; ++i) {
            ++c[pat[i]];
        }

        fill(l + 1, l + 1 + m, 0);
        for (int i = 0; i < SIGMA; ++i) {
            --l[c[i]];
        }
        k =


 {
  const CopyOnly copy_only{};
  absl::any o(absl::in_place_type_t<const volatile IntMoveOnlyCopyOnly>(), 5,
              MoveOnly(), copy_only);
  IntMoveOnlyCopyOnly& v = absl::any_cast<IntMoveOnlyCopyOnly&>(o);
  EXPECT_EQ(5, v.value);
}

TEST(AnyTest, InPlaceConstructionWithCVVariableTemplate) {
  const CopyOnly copy_only{};
  absl::any o(absl::in_place_type<const volatile IntMoveOnlyCopyOnly>, 5,
              MoveOnly(), copy_only);
  auto& v = absl::any_cast<IntMoveOnlyCopyOnly&>(o);
  EXPECT_EQ(5, v.value);
}

TEST(AnyTest, InPlaceConstructionWithFunction) {
  absl::any o(absl::in_place_type_t<FunctionType>(), FunctionToEmplace);
  FunctionType*& construction_result = absl::any_cast<FunctionType*&>(o);
  EXPECT_EQ(&FunctionToEmplace, construction_result);
}

TEST(AnyTest, InPlaceConstructionWithFunctionVariableTemplate) {
  absl::any o(absl::in_place_type<FunctionType>, FunctionToEmplace);
  auto& construction_result = absl::any_cast<FunctionType*&>(o);
  EXPECT_EQ(&FunctionToEmplace, construction_result);
}

TEST(AnyTest, InPlaceConstructionWithArray) {
  ArrayType ar = {5, 42};
  absl::any o(absl::in_place_type_t<ArrayType>(), ar);
  DecayedArray& construction_result = absl::any_cast<DecayedArray&>(o);
  EXPECT_EQ(&ar[0], construction_result);
}

TEST(AnyTest, InPlaceConstructionWithArrayVariableTemplate) {
  ArrayType ar = {5, 42};
  absl::any o(absl::in_place_type<ArrayType>, ar);
  auto& construction_result = absl::any_cast<DecayedArray&>(o);
  EXPECT_EQ(&ar[0], construction_result);
}

TEST(AnyTest, InPlaceConstructionIlist) {
  const CopyOnly copy_only{};
  absl::any o(absl::in_place_type_t<ListMoveOnlyCopyOnly>(), {1, 2, 3, 4},
              MoveOnly(), copy_only);
  ListMoveOnlyCopyOnly& v = absl::any_cast<ListMoveOnlyCopyOnly&>(o);
  std::vector<int> expected_values = {1, 2, 3, 4};
  EXPECT_EQ(expected_values, v.values);
}

TEST(AnyTest, InPlaceConstructionIlistVariableTemplate) {
  const CopyOnly copy_only{};
  absl::any o(absl::in_place_type<ListMoveOnlyCopyOnly>, {1, 2, 3, 4},
              MoveOnly(), copy_only);
  auto& v = absl::any_cast<ListMoveOnlyCopyOnly&>(o);
  std::vector<int> expected_values = {1, 2, 3, 4};
  EXPECT_EQ(expected_values, v.values);
}

TEST(AnyTest, InPlaceConstructionIlistWithCV) {
  const CopyOnly copy_only{};
  absl::any o(absl::in_place_type_t<const volatile ListMoveOnlyCopyOnly>(),
              {1, 2, 3, 4}, MoveOnly(), copy_only);
  ListMoveOnlyCopyOnly& v = absl::any_cast<ListMoveOnlyCopyOnly&>(o);
  std::vector<int> expected_values = {1, 2, 3, 4};
  EXPECT_EQ(expected_values, v.values);
}

TEST(AnyTest, InPlaceConstructionIlistWithCVVariableTemplate) {
  const CopyOnly copy_only{};
  absl::any o(absl::in_place_type<const volatile ListMoveOnlyCopyOnly>,
              {1, 2, 3,


ni                                    | gemini.launch        |
| gemini                                    | gemini.launch        |
| gemini2 / dabai DCL                       | gemini2.launch       |
| gemini2L                                  | gemini2L.launch      |
| gemini e                                  | gemini_e.launch      |
| gemini e lite                             | gemini_e_lite.launch |

Actually, All launch files all most the same, the only difference is the default value of the parameters.

## Use Nodelet

For users who need to use nodelet, please refer to `gemini2_nodelet.launch`

## Supported hardware products

| **products list** | **firmware version**                      |
|-------------------|-------------------------------------------|
| Gemini 2 XL       | Obox: V1.2.5  VL:1.4.54                   |
| Astra 2           | 2.8.20                                    |
| Gemini 2 L        | 1.4.32                                    |
| Gemini 2          | 1.4.60 /1.4.76                            |
| Femto Mega        | 1.1.7  (window10、ubuntu20.04、ubuntu22.04) |
| Astra+            | 1.0.22/1.0.21/1.0.20/1.0.19               |
| Femto             | 1.6.7                                     |
| Femto W           | 1.1.8                                     |
| Femto Bolt        | 1.0.6 (unsupported ARNM32)                |
| DaBai             | 2436                                      |
| DaBai DCW         | 2460                                      |
| DaBai DW          | 2606                                      |
| Astra Mini Pro    | 1007                                      |
| Gemini E          | 3460                                      |
| Gemini E Lite     | 3606                                      |
| Gemini            | 3.0.18                                    |
| Astra Mini S Pro  | 1.0.05                                    |

## Frequently Asked Questions

No Picture from Multiple Cameras

- it's possible that the power supply is insufficient.
  To avoid this, do not connect all cameras to the same hub and use a powered hub instead.

- It's also possible that the resolution is too high.
  To resolve this, try lowering the resolution.

Why are there so many launch files here

- The reason for the presence of multiple launch
  files is due to the fact that the default resolutions and image formats of different cameras vary.
  To make it easier to use, the launch files have been separated for each camera.

Why IR stream No data output

- If you are using Astra/Astra mini / astra mini S camera, you cannot turn on IR and RGB at the same time, please
  change `enable_color` to false in the corresponding launch file to turn off color camera.

Why do I get the following error when running the launch file

```text
Failed to start device: usbEnumerator createUsbDevice failed!
```

- The current device does not have permission to access the device， check the PID of the current device

```bash
lsusb | grep 2bc5
```

Your output should look like this

```text
Bus 002 Device 007: ID 2bc5:your_pid_here
```

Edit`/etc/udev/rules.d/99-obsensor-libusb.rules`，add the following line

```bash
SUBSYSTEM=="usb", ATTR{idProduct}=="your_pid_here", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root"  GROUP:="video", SYMLINK+="you_device_name_here"
```

`you_device_name_here` is the name of the device you want to create, for example `Astra`.

Then restart the udev service

```bash
sudo udevadm control --reload-rules && sudo service udev restart && sudo udevadm trigger
```

## License

Copyright 2023 Orbbec Ltd.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project except in compliance with
the License. You may obtain a copy of the License at

[http://www


  &code_eu044Code,
  &code_eu045Code,
  &code_eu046Code,
  &code_eu047Code,
  &code_eu048Code,
  &code_eu049Code,
  &code_eu050Code,
  &code_eu051Code,
  &code_eu052Code,
  &code_eu053Code,
  &code_eu054Code,
  &code_eu055Code,
  &code_eu056Code,
  //&code_eu057Code, same as eu008
  &code_eu058Code,
  &code_eu059Code,
  &code_eu060Code,
  &code_eu061Code,
  &code_eu062Code,
  &code_eu063Code,
  &code_eu064Code,
  &code_eu065Code,
  &code_eu066Code,
  &code_eu067Code,
  &code_eu068Code,
  &code_eu069Code,
  &code_eu070Code,
  &code_eu071Code,
  &code_eu072Code,
  &code_eu073Code,
  &code_eu074Code,
  &code_eu075Code,
  &code_eu076Code,
  &code_eu077Code,
  &code_eu078Code,
  &code_eu079Code,
  &code_eu080Code,
  &code_eu081Code,
  &code_eu082Code,
  &code_eu083Code,
  &code_eu084Code,
  &code_eu085Code,
  &code_eu086Code,
  &code_eu087Code,
  &code_eu088Code,
  &code_eu089Code,
  &code_eu090Code,
  &code_eu091Code,
  &code_eu092Code,
  &code_eu093Code,
  &code_eu094Code,
  &code_eu095Code,
  &code_eu096Code,
  &code_eu097Code,
  &code_eu098Code,
  &code_eu099Code,
  &code_eu100Code,
  &code_eu101Code,
  &code_eu102Code,
  &code_eu103Code,
  &code_eu104Code,
  &code_eu105Code,
  &code_eu106Code,
  &code_eu107Code,
  &code_eu108Code,
  &code_eu109Code,
  &code_eu110Code,
  &code_eu111Code,
  &code_eu112Code,
  &code_eu113Code,
  &code_eu114Code,
  &code_eu115Code,
  &code_eu116Code,
  &code_eu117Code,
  &code_eu118Code,
  &code_eu119Code,
  &code_eu120Code,
  &code_eu121Code,
  &code_eu122Code,
  &code_eu123Code,
  &code_eu124Code,
  &code_eu125Code,
  &code_eu126Code,
  &code_eu127Code,
  &code_eu128Code,
  &code_eu129Code,
  &code_eu130Code,
  &code_eu131Code,
  &code_eu132Code,
  &code_eu133Code,
  &code_eu134Code,
  &code_eu135Code,
  &code_eu136Code,
  &code_eu137Code,
  &code_eu138Code,
  &code_eu139Code,
};

uint8_t num_NAcodes = NUM_ELEM(NApowerCodes);
uint8_t num_EUcodes = NUM_ELEM(EUpowerCodes);


;et    96 =< NotePeriod =< 96+1024-1 , avec effet

BUFFER_A:  DS.W BufferLengthMaxi*2 ;Tampon A  lire en DMA
BUFFER_B:  DS.W BufferLengthMaxi*2 ;Tampon B  lire en DMA

LEVELS: DS.W 65*256
 ;65 tables de niveaux (Volume variant de 0  64) de 256 valeurs
 ;Contenu de chacune:


 0, y = 0;

        public void set(CardGroup.CardGroupType type, float x, float y){
            switch (type) {
                case HAND:
                    title = MultiGroupMoveAction.HAND;
                    break;
                case DRAW_PILE:
                    title = MultiGroupMoveAction.DRAW_PILE;
                    break;
                case DISCARD_PILE:
                    title = MultiGroupMoveAction.DISCARD_PILE;
                    break;
                case EXHAUST_PILE:
                    title = MultiGroupMoveAction.EXHAUST_PILE;
                    break;
                default:
                    title = MultiGroupMoveAction.UNKNOWN;
                    break;
            }

            this.x = x;
            this.y = y;
        }
    }

    @SpirePatch(
            clz = GridCardSelectScreen.class,
            method = "calculateScrollBounds"
    )
    public static class AltScrollBounds {
        @SpirePrefixPatch
        public static SpireReturn<?> altPos(GridCardSelectScreen __instance, float ___padY, @ByRef float[] ___scrollUpperBound) {
            ArrayList<Pair<CardGroup.CardGroupType, Integer>> groupIndexes = Fields.groupIndexes.get(__instance.targetGroup);
            if (groupIndexes != null) {
                int lineNum = -2;

                int startIndex = 0;
                for (Pair<CardGroup.CardGroupType, Integer> groupIndex : groupIndexes) {
                    int size = groupIndex.getValue() - startIndex;

                    startIndex = groupIndex.getValue();

                    lineNum += size / 5;
                    if (size % 5 != 0) {
                        ++lineNum;
                    }
                }

                float bonusScroll = (float)lineNum * ___padY + groupIndexes.size() * TITLE_SPACING;
                ___scrollUpperBound[0] = Settings.DEFAULT_SCROLL_LIMIT + Math.max(0, bonusScroll);

                return SpireReturn.Return();
            }

            return SpireReturn.Continue();
        }
    }

    @SpirePatch(
            clz = GridCardSelectScreen.class,
            method = "update"
    )
    public static class HandCardPeekPositions {
        @SpirePrefixPatch
        public static void resetPositions(GridCardSelectScreen __instance) {
            if (isPeeking) {
                ArrayList<Pair<CardGroup.CardGroupType, Integer>> groupIndexes = Fields.groupIndexes.get(__instance.targetGroup);

                if (groupIndexes != null) {
                    for (Pair<CardGroup.CardGroupType, Integer> group : groupIndexes) {
                        if (group.getKey() == CardGroup.CardGroupType.HAND) {
                            AbstractDungeon.player.hand.refreshHandLayout();
                            for (AbstractCard c : AbstractDungeon.player.hand.group) {
                                if (!__instance.selectedCards.contains(c))
                                    c.stopGlowing();
                            }
                            return;
                        }
                    }
                }
            }
        }
    }
}
package com.evacipated.cardcrawl.mod.stslib.cards.interfaces;

import com.evacipated.cardcrawl.mod.stslib.patches.cardInterfaces.MultiUpgradePatches;
import com.evacipated.cardcrawl.mod.stslib.util.UpgradeData;
import com.evacipated.cardcrawl.mod.stslib.util.UpgradeRunnable;
import com.megacrit.cardcrawl.cards.AbstractCard;
import com.megacrit.cardcrawl.dungeons.AbstractDungeon;
import com.megacrit.cardcrawl.screens.SingleCardViewPopup;

import java.util.ArrayList;
import java.util.stream.Collectors;

public interface MultiUpgradeCard {

    void addUpgrades();

    void updateName();

    default Arr


an",
  [6495] = "[4.x 미사용]리즈넥",
  [6496] = "[4.x 미사용]브리블스워프",
  [6497] = "Astor Hadren",
  [6501] = "Stegodon",
  [6522] = "Andron Gant",
  [6523] = "검은무쇠 소총병",
  [6526] = "소문 시험용",
  [6546] = "Tabetha",
  [6548] = "[4.x 미사용]학자 틸스",
  [6566] = "Estelle Gendry",
  [6567] = "Ghok\'kah",
  [6568] = "Vizzklick",
  [6569] = "Gnoarn",
  [6570] = "Fenwick Thatros",
  [6571] = "표범 형상 (나이트 엘프 드루이드)",
  [6572] = "표범 형상 (타우렌 드루이드)",
  [6573] = "순록 변신 (드루이드)",
  [6574] = "Jun\'ha",
  [6576] = "[4.x 미사용]브리에나 스타글로",
  [6583] = "Gruff",
  [6585] = "Uhk\'loc",
  [6607] = "Harroc",
  [6626] = "[4.x 미사용]\"씩씩이\" 존슨",
  [6647] = "마법학자 호크헬름",
  [6648] = "Antilos",
  [6666] = "[4.x 미사용]\"씩씩이\" 존슨 인간모습",
  [6667] = "Gelkak Gyromast",
  [6687] = "드루이드 40 (빠름)",
  [6688] = "드루이드 40 (매우빠름)",
  [6707] = "Fahrad",
  [6726] = "Thalon",
  [6728] = "Narnie",
  [6729] = "Morridune",
  [6730] = "[4.x 미사용]징키 트위즐픽싯",
  [6731] = "할론 다크위브",
  [6732] = "Amie Pierce",
  [6733] = "바위동굴 전사",
  [6734] = "여관주인 하스스토브",
  [6749] = "Erma",
  [6769] = "[미사용] 라벤홀트의 매부리",
  [6770] = "[미사용] 라벤홀트의 조련사",
  [6780] = "Porthannius",
  [6781] = "Melarith",
  [6783] = "[미사용] 로렉 벨름",
  [6784] = "Calvin Montague",
  [6785] = "Ratslin Maime",
  [6786]


33662911623E-12);
    test32(0x38d9d45, 8.323342486879323E-37);
    test32(0x509b0cf8, 2.08105472E10);
    test32(0x7997aaa7, 9.843725829681495E34);
    test32(0x1693fb40, 2.3907691910171116E-25);
    test32(0x6932a7e3, 1.3498851156559247E25);
    test32(0x98e52756, -5.923483173240392E-24);
    test32(0x4321c7ba, 161.78018188476562);
    test32(0x129a8db3, 9.753697906689189E-28);
    test32(0x1d80e684, 3.411966546003519E-21);
    test32(0x3d1b1a71, 0.03786701336503029);
    test32(0xf176bcf8, -1.221788185872419E30);
    test32(0x5835d550, 7.99711099355136E14);
    test32(0x63c39f88, 7.217221064844452E21);
  });

  test('testDouble', () {
    // Special values.
    test64([0x00000000, 0x00000000], 0.0);
    test64([0x80000000, 0x00000000], -0.0);
    test64([0x7ff80000, 0x00000000], double.nan);
    test64([0x7ff00000, 0x00000000], double.infinity);
    test64([0xfff00000, 0x00000000], double.negativeInfinity);
    test64([0x3ff00000, 0x00000000], 1.0);
    test64([0x40000000, 0x00000000], 2.0);

    // Values around 1.0 and 2.0.
    test64([0x3fefffff, 0xfffffff7], 0.999999999999999);
    test64([0x3ff00000, 0x00000005], 1.000000000000001);
    test64([0x3fffffff, 0xfffffffb], 1.999999999999999);
    test64([0x40000000, 0x00000002], 2.000000000000001);

    test64([0x3fb99999, 0x9999999a], 0.1);
    test64([0xbfb99999, 0x9999999a], -0.1);
    test64([0x017527e6, 0xd48c1653], 0.1234e-300);
    test64([0x817527e6, 0xd48c1653], -0.1234e-300);
    test64([0x7e0795f2, 0xd9000b3f], 0.1234e300);
    test64([0xfe0795f2, 0xd9000b3f], -0.1234e300);
    test64([0x3fc99999, 0x9999999a], 0.2);
    test64([0x4272c359, 0x8dd61e72], 1289389399393.902892);
    test64([0x405edd3c, 0x07ee0b0b], 123.456789);
    test64([0xc05edd3c, 0x07ee0b0b], -123.456789);

    // Max value.
    test64([0x7fefffff, 0xffffffff], 1.7976931348623157E308);
    test64([0xffefffff, 0xffffffff], -1.7976931348623157E308);
    // Min normalized value.
    test64([0x00100000, 0x00000000], 2.2250738585072014E-308);
    test64([0x80100000, 0x00000000], -2.2250738585072014E-308);
    //


r0, r0, #1
	str r0, [r4]
	b _021ECF02
_021ECDB4:
	ldr r2, _021ECF3C ; =0x00000F64
	add r0, r4, #0
	ldrh r2, [r5, r2]
	add r4, #0x1c
	add r0, #0x4c
	add r1, r4, #0
	bl ov01_021EC650
	cmp r0, #1
	bne _021ECDCC
	cmp r6, #3
	beq _021ECDCE
_021ECDCC:
	b _021ECF02
_021ECDCE:
	ldr r0, _021ECF40 ; =0x00000F62
	mov r1, #3
	strh r1, [r5, r0]
	b _021ECF02
_021ECDD6:
	mov r2, #6
	mov r3, #3
	str r2, [sp]
	add r0, r3, #0
	str r3, [sp, #4]
	sub r0, #8
	str r0, [sp, #8]
	mov r0, #2
	str r0, [sp, #0xc]
	mov r0, #1
	str r0, [sp, #0x10]
	ldr r0, _021ECF30 ; =ov01_021ECF4C
	str r0, [sp, #0x14]
	add r0, r4, #0
	bl ov01_021EC504
	ldr r0, _021ECF3C ; =0x00000F64
	ldrh r0, [r5, r0]
	cmp r0, #0
	beq _021ECE1C
	mov r0, #0x41
	ldr r1, [r5]
	lsl r0, r0, #2
	ldr r0, [r1, r0]
	ldr r2, _021ECF34 ; =0x0000726F
	ldr r0, [r0, #0x4c]
	ldr r3, _021ECF38 ; =0x00006318
	mov r1, #3
	str r0, [r4, #0x1c]
	bl ov01_021EC678
	add r0, r4, #0
	add r0, #0x1c
	bl ov01_021EC7C8
_021ECE1C:
	mov r0, #0
	add r4, #0xb8
	str r0, [r4]
	mov r0, #3
	str r0, [sp]
	ldr r0, _021ECF44 ; =ov01_021ED070
	ldr r1, _021ECF30 ; =ov01_021ECF4C
	str r0, [sp, #4]
	add r0, r5, #0
	mov r2, #0x14
	mov r3, #2
	bl ov01_021EC85C
	ldr r0, _021ECF40 ; =0x00000F62
	mov r1, #3
	strh r1, [r5, r0]
	b _021ECF02
_021ECE3E:
	mov r0, #6
	ldrsh r1, [r4, r0]
	sub r0, r1, #1
	strh r0, [r4, #6]
	cmp r1, #0
	bgt _021ECE5A
	mov r1, #4
	ldrsh r1, [r4, r1]
	add r0, r5, #0
	bl ov01_021ECF4C
	mov r0, #8
	ldrsh r0, [r4, r0]
	strh r0, [r4, #6]
_021ECE5A:
	ldr r0, _021ECF48 ; =0x00000F66
	ldrh r0


pRdWVyeSwgaXQgd2lsbCB3b3JrLlxuXG4vLyBOb3RlIHRoYXQgZm9yIG1heGltdW0gcG9ydGFiaWxpdHksIGxpYnJhcmllcyB0aGF0IGFyZSBub3QgalF1ZXJ5IHNob3VsZFxuLy8gZGVjbGFyZSB0aGVtc2VsdmVzIGFzIGFub255bW91cyBtb2R1bGVzLCBhbmQgYXZvaWQgc2V0dGluZyBhIGdsb2JhbCBpZiBhblxuLy8gQU1EIGxvYWRlciBpcyBwcmVzZW50LiBqUXVlcnkgaXMgYSBzcGVjaWFsIGNhc2UuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9qcmJ1cmtlL3JlcXVpcmVqcy93aWtpL1VwZGF0aW5nLWV4aXN0aW5nLWxpYnJhcmllcyN3aWtpLWFub25cblxuaWYgKCB0eXBlb2YgZGVmaW5lID09PSBcImZ1bmN0aW9uXCIgJiYgZGVmaW5lLmFtZCApIHtcblx0ZGVmaW5lKCBcImpxdWVyeVwiLCBbXSwgZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGpRdWVyeTtcblx0fSApO1xufVxuXG5cblxuXG52YXJcblxuXHQvLyBNYXAgb3ZlciBqUXVlcnkgaW4gY2FzZSBvZiBvdmVyd3JpdGVcblx0X2pRdWVyeSA9IHdpbmRvdy5qUXVlcnksXG5cblx0Ly8gTWFwIG92ZXIgdGhlICQgaW4gY2FzZSBvZiBvdmVyd3JpdGVcblx0XyQgPSB3aW5kb3cuJDtcblxualF1ZXJ5Lm5vQ29uZmxpY3QgPSBmdW5jdGlvbiggZGVlcCApIHtcblx0aWYgKCB3aW5kb3cuJCA9PT0galF1ZXJ5ICkge1xuXHRcdHdpbmRvdy4kID0gXyQ7XG5cdH1cblxuXHRpZiAoIGRlZXAgJiYgd2luZG93LmpRdWVyeSA9PT0galF1ZXJ5ICkge1xuXHRcdHdpbmRvdy5qUXVlcnkgPSBfalF1ZXJ5O1xuXHR9XG5cblx0cmV0dXJuIGpRdWVyeTtcbn07XG5cbi8vIEV4cG9zZSBqUXVlcnkgYW5kICQgaWRlbnRpZmllcnMsIGV2ZW4gaW4gQU1EXG4vLyAodHJhYy03MTAyI2NvbW1lbnQ6MTAsIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvanF1ZXJ5L3B1bGwvNTU3KVxuLy8gYW5kIENvbW1vbkpTIGZvciBicm93c2VyIGVtdWxhdG9ycyAodHJhYy0xMzU2NilcbmlmICggdHlwZW9mIG5vR2xvYmFsID09PSBcInVuZGVmaW5lZFwiICkge1xuXHR3aW5kb3cualF1ZXJ5ID0gd2luZG93LiQgPSBqUXVlcnk7XG59XG5cblxuXG5cbnJldHVybiBqUXVlcnk7XG59ICk7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/jquery/dist/jquery.js\n");

/***/ }),

/***/ "./node_modules/lodash/lodash.js":
/*!***************************************!*\
  !*** ./node_modules/lodash/lodash.js ***!
  \***************************************/
/***/ (function(module, exports, __webpack_require__) {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\nvar __WEBPACK_AMD_DEFINE_RESULT__;/**\n * @license\n * Lodash <https://lodash.com/>\n * Copyright OpenJS Foundation and other contributors <https://openjsf.org


ocket;
  chunks: Buffer[] = [];
  cursor: number = 0;
  wait: (() => void) | null = null;
  commands: { [key:string]: number } = {};

  private constructor(host: string, port: number) {
    this.host = host;
    this.port = port;
    this.socket = new Socket();
  }

  static async connect(host: string, port: number): Promise<Hog> {
    var hog = new Hog(host, port);
    hog.socket.on("data", (data:Buffer) => hog.onData(data));
    return new Promise((resolve, reject) => {
      // connect to hog server with retry upto 3 times with 1 second interval
      hog.socket.on("error", reject);
      hog.socket.connect(port, host, async () => {
        await hog.setup();
        resolve(hog);
      });
    });
  }

  close() {
    this.socket.end();
  }

  async ping(): Promise<boolean> {
    var buf = Buffer.alloc(1);
    buf.writeUInt8(this.commands["ping"], 0);
    await this.send(buf);
    return (await this.pop(1)).readUInt8(0) == 1;
  }

  async mget(column:string, tin:string, tout:string, keys:Buffer[]
  ): Promise<(Buffer|null)[]> {
    await this.command("get", column, [tin, tout], keys);
    return new Promise(async (resolve) => {
      let values: (Buffer|null)[] = [];
      for(var i = 0; i < keys.length; i++) {
        var size = (await this.pop(4)).readUInt32BE(0);
        values.push(size > 0 ? await this.pop(size) : null);
      }
      resolve(values);
    });
  }
  async get(column:string, tin:string, tout:string, key:Buffer
  ): Promise<Buffer|null> {
    return (await this.mget(column, tin, tout, [key]))[0];
  }

  async mput(column:string, tin:string, tout:string, kvs:Buffer[]
  ): Promise<boolean> {
    await this.command("put", column, [tin, tout], kvs, true);
    return (await this.pop(1)).readUInt8(0) == 1;
  }
  async put(column:string, tin:string, tout:string, key:Buffer, value:Buffer
  ): Promise<boolean> {
    return await this.mput(column, tin, tout, [key, value]);
  }

  async mset(column:string, tin:string, tout:string, kvs:Buffer[]
  ): Promise<boolean> {
    await this.command("set", column, [tin, tout], kvs, true);
    return (await this.pop(1)).readUInt8(0) == 1;
  }
  async set(column:string, tin:string, tout:string, key:Buffer, value:Buffer
  ): Promise<boolean> {
    return await this.mset(column, tin, tout, [key, value]);
  }

  async mdelete(column:string, tin:string, keys:Buffer[]): Promise<boolean> {
    await this.command("delete", column, [tin], keys);
    return (await this.pop(1)).readUInt8(0) == 1;
  }
  async delete(column:string, tin:string, key:Buffer): Promise<boolean> {
    return await this.mdelete(column, tin, [key]);
  }

  async count(column:string): Promise<number> {
    await this.command("count", column);
    return (await this.pop(4)).readUInt32BE(0);
  }

  async exec(cmd:string): Promise<string> {
    await this.command("exec", cmd);


ySeasons();
      Main.checkXMas();
      Main.checkHalloween();
      Main.stopMoonEvent();
      Main.dayTime = true;
      if (Main.sundialCooldown > 0)
        --Main.sundialCooldown;
      ++Main.moonPhase;
      if (Main.moonPhase >= 8)
        Main.moonPhase = 0;
      if (Main.drunkWorld && Main.netMode != 1)
        WorldGen.crimson = !WorldGen.crimson;
      if (Main.netMode == 2)
        NetMessage.SendData(7, -1, -1, (NetworkText) null, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0);
      if (Main.netMode == 1)
        return;
      AchievementsHelper.NotifyProgressionEvent(1);
      if (stopEvents)
        return;
      if (Main.hardMode && NPC.downedMechBossAny && Main.rand.Next(20) == 0)
      {
        Main.eclipse = true;
        AchievementsHelper.NotifyProgressionEvent(2);
        if (Main.eclipse)
        {
          if (Main.netMode == 0)
            Main.NewText(Lang.misc[20].Value, (byte) 50, byte.MaxValue, (byte) 130);
          else if (Main.netMode == 2)
            ChatHelper.BroadcastChatMessage(Lang.misc[20].ToNetworkText(), new Microsoft.Xna.Framework.Color(50, (int) byte.MaxValue, 130), -1);
        }
        if (Main.netMode != 2)
          return;
        NetMessage.SendData(7, -1, -1, (NetworkText) null, 0, 0.0f, 0.0f, 0.0f, 0, 0, 0);
      }
      else
      {
        if (Main.snowMoon || Main.pumpkinMoon || DD2Event.Ongoing)
          return;
        if (WorldGen.shadowOrbSmashed)
        {
          if (!NPC.downedGoblins)
          {
            if (Main.rand.Next(3) == 0)
              Main.StartInvasion(1);
          }
          else if (Main.hardMode && Main.rand.Next(60) == 0 || !Main.hardMode && Main.rand.Next(30) == 0)
            Main.StartInvasion(1);
        }
        if (Main.invasionType != 0 || !Main.hardMode || WorldGen.altarCount <= 0 || (!NPC.downedPirates || Main.rand.Next(60) != 0) && (NPC.downedPirates || Main.rand.Next(30) != 0))
          return;
        Main.StartInvasion(3);
      }
    }

    private static void HandleMeteorFall()
    {
      if (Main.netMode != 1 && WorldGen.spawnMeteor)
      {
        if (Main.time < 15000.0)
        {
          Main._canShowMeteorFall = true;
        }
        else
        {
          if (Main._canShowMeteorFall && Main.time <= 16200.0)
            Main.AmbienceServer.ForceEntitySpawn(new AmbienceServer.AmbienceSpawnInfo()
            {
              skyEntityType = SkyEntityType.Meteor,
              targetPlayer = -1
            });
          Main._canShowMeteorFall = false;
        }
      }
      if (Main.time <= 16200.0 || !WorldGen.spawnMeteor)
        return;
      WorldGen.spawnMeteor = false;
      WorldGen.dropMeteor();
    }

    private static void UpdateSlimeRainWarning()
    {
      if (Main.slimeWarningTime <= 0)
        return;
      --Main.slimeWarningTime;
      if (Main.slimeWarningTime > 0)
        return;
      if (Main.netMode == 0)
      {
        if (Main.slimeRainTime > 0.0)
          Main.NewText(Lang.gen[74].Value, (byte) 50, byte.MaxValue, (byte) 130);
        else
          Main.NewText(Lang.gen[75].Value, (byte) 50, byte.MaxValue, (byte) 130);
      }
      else if (Main.slimeRainTime > 0.0)
        ChatHelper


": &graphql.ArgumentConfig{
						Type: graphql.NewNonNull(graphql.String),
					},
				},
				Resolve: ArtistSong,
			},
		},
	})

	songType.AddFieldConfig("artist", &graphql.Field{
		Type:    artistType,
		Resolve: SongArtist,
	})

	// type Query {
	//   artist(name: String!): Artist
	//   artists: [Artist]
	// }
	queryType := graphql.NewObject(graphql.ObjectConfig{
		Name: "Query",
		Fields: graphql.Fields{
			"artist": &graphql.Field{
				Type: artistType,
				Args: graphql.FieldConfigArgument{
					"name": &graphql.ArgumentConfig{
						Type: graphql.NewNonNull(graphql.String),
					},
				},
				Resolve: QueryArtist,
			},
			"artists": &graphql.Field{
				Type:    graphql.NewList(artistType),
				Resolve: data.Query.ArtistsGG,
			},
			"defineFloat": &graphql.Field{
				Type: graphql.Float,
				Resolve: func(params graphql.ResolveParams) (interface{}, error) {
					return 1.23, nil
				},
			},
			"defineID": &graphql.Field{
				Type: graphql.ID,
				Resolve: func(params graphql.ResolveParams) (interface{}, error) {
					return "id", nil
				},
			},
		},
	})

	// type Mutation {
	//   like(artist: String!, song: String!): Song
	// }
	mutationType := graphql.NewObject(graphql.ObjectConfig{
		Name: "Mutation",
		Fields: graphql.Fields{
			"like": &graphql.Field{
				Type: songType,
				Args: graphql.FieldConfigArgument{
					"artist": &graphql.ArgumentConfig{
						Type: graphql.NewNonNull(graphql.String),
					},
					"song": &graphql.ArgumentConfig{
						Type: graphql.NewNonNull(graphql.String),
					},
				},
				Resolve: data.Mutation.LikeGG,
			},
		},
	})

	// type schema {
	//   query: Query
	//   mutation: Mutation
	// }
	return graphql.NewSchema(graphql.SchemaConfig{
		Query:    queryType,
		Mutation: mutationType,
	})
}

func main() {
	schema, err := buildSchema(setupSongs())
	if err != nil {
		fmt.Printf("*-*-* Failed to build schema. %s\n", err)
		os.Exit(1)
	}
	http.HandleFunc("/graphql", func(w http.ResponseWriter, r *http.Request) {
		handleGraphQL(w, r, schema)
	})
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {})

	if err = http.ListenAndServe(":3000", nil); err != nil {
		fmt.Printf("*-*-* Server failed. %s\n", err)
	}
}
package warehouse

import (
	"testing"

	"github.com/TheBitDrifter/bappa/table"
)

// Test component types
type Position struct {
	X, Y float64
}

type Velocity struct {
	X, Y float64
}

type Health struct {
	Current, Max int
}

func TestEntityCreation(t *testing.T) {
	// Create component instances once to reuse
	posComp := FactoryNewComponent[Position]()
	velComp := FactoryNewComponent[Velocity]()
	healthComp := FactoryNewComponent[Health]()

	tests := []struct {
		name           string
		componentTypes []Component
		entityCount    int
		wantError      bool
	}{
		{"Empty entity", []Component{}, 1, true},
		{"


;
  content: "\f096";
}
.kernel-menu-icon:before {
  content: "\f096";
}
.kernel-menu-icon-current:before {
  content: "\f00c";
}
#tab_content {
  padding-top: 20px;
}
#running .panel-group .panel {
  margin-top: 3px;
  margin-bottom: 1em;
}
#running .panel-group .panel .panel-heading {
  background-color: #EEE;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-left: 7px;
  padding-right: 7px;
  line-height: 22px;
}
#running .panel-group .panel .panel-heading a:focus,
#running .panel-group .panel .panel-heading a:hover {
  text-decoration: none;
}
#running .panel-group .panel .panel-body {
  padding: 0px;
}
#running .panel-group .panel .panel-body .list_container {
  margin-top: 0px;
  margin-bottom: 0px;
  border: 0px;
  border-radius: 0px;
}
#running .panel-group .panel .panel-body .list_container .list_item {
  border-bottom: 1px solid #ddd;
}
#running .panel-group .panel .panel-body .list_container .list_item:last-child {
  border-bottom: 0px;
}
[dir="rtl"] #running .col-sm-8 {
  float: right !important;
}
.delete-button {
  display: none;
}
.duplicate-button {
  display: none;
}
.rename-button {
  display: none;
}
.shutdown-button {
  display: none;
}
.dynamic-instructions {
  display: inline-block;
  padding-top: 4px;
}
/*!
*
* IPython text editor webapp
*
*/
.selected-keymap i.fa {
  padding: 0px 5px;
}
.selected-keymap i.fa:before {
  content: "\f00c";
}
#mode-menu {
  overflow: auto;
  max-height: 20em;
}
.edit_app #header {
  -webkit-box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
  box-shadow: 0px 0px 12px 1px rgba(87, 87, 87, 0.2);
}
.edit_app #menubar .navbar {
  /* Use a negative 1 bottom margin, so the border overlaps the border of the
    header */
  margin-bottom: -1px;
}
.dirty-indicator {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator.pull-left {
  margin-right: .3em;
}
.dirty-indicator.pull-right {
  margin-left: .3em;
}
.dirty-indicator-dirty {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;
  font-size: inherit;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  width: 20px;
}
.dirty-indicator-dirty.pull-left {
  margin-right: .3em;
}
.dirty-indicator-dirty.pull-right {
  margin-left: .3em;
}
.dirty-indicator-clean {
  display: inline-block;
  font: normal normal normal 14px/1 FontAwesome;


 = forgeTag("ingots/polymer")
        val INGOTS_RED_COPPER = forgeTag("ingots/red_copper")
        val INGOTS_REIIUM = forgeTag("ingots/reiium")
        val INGOTS_SATURNITE = forgeTag("ingots/saturnite")
        val INGOTS_SCHRABIDATE = forgeTag("ingots/schrabidate")
        val INGOTS_SCHRABIDIUM = forgeTag("ingots/schrabidium")
        val INGOTS_SCHRABIDIUM_FUEL = forgeTag("ingots/schrabidium_fuel")
        val INGOTS_SCHRARANIUM = forgeTag("ingots/schraranium")
        val INGOTS_SEMTEX = forgeTag("ingots/semtex")
        val INGOTS_SOLINIUM = forgeTag("ingots/solinium")
        val INGOTS_STARMETAL = forgeTag("ingots/starmetal")
        val INGOTS_STEEL = forgeTag("ingots/steel")
        val INGOTS_TEFLON = forgeTag("ingots/teflon")
        val INGOTS_THORIUM = forgeTag("ingots/thorium")
        val INGOTS_THORIUM_FUEL = forgeTag("ingots/thorium_fuel")
        val INGOTS_TITANIUM = forgeTag("ingots/titanium")
        val INGOTS_TUNGSTEN = forgeTag("ingots/tungsten")
        val INGOTS_UNOBTAINIUM = forgeTag("ingots/unobtainium")
        val INGOTS_URANIUM = forgeTag("ingots/uranium")
        val INGOTS_URANIUM_FUEL = forgeTag("ingots/uranium_fuel")
        val INGOTS_VERTICIUM = forgeTag("ingots/verticium")
        val INGOTS_WEIDANIUM = forgeTag("ingots/weidanium")

        val BILLETS = forgeTag("billets")
        val BILLETS_ACTINIUM = forgeTag("billets/actinium")
        val BILLETS_AMERICIUM = forgeTag("billets/americium")
        val BILLETS_AMERICIUM_FUEL = forgeTag("billets/americium_fuel")
        val BILLETS_AUSTRALIUM = forgeTag("billets/australium")
        val BILLETS_BERYLLIUM = forgeTag("billets/beryllium")
        val BILLETS_BISMUTH = forgeTag("billets/bismuth")
        val BILLETS_COBALT = forgeTag("billets/cobalt")
        val BILLETS_FLASHGOLD = forgeTag("billets/flashgold")
        val BILLETS_FLASHLEAD = forgeTag("billets/flashlead")
        val BILLETS_GHIORSIUM = forgeTag("billets/ghiorsium")
        val BILLETS_GREATER_AUSTRALIUM = forgeTag("billets/greater_australium")
        val BILLETS_LESSER_AUSTRALIUM = forgeTag("billets/lesser_australium")
        val BILLETS_MOX = forgeTag("billets/mox")
        val BILLETS_NEPTUNIUM = forgeTag("billets/neptunium")
        val BILLETS_NUCLEAR_WASTE = forgeTag("billets/nuclear_waste")
        val BILLETS_PLUTONIUM = forgeTag("billets/plutonium")
        val BILLETS_PLUTONIUM_FUEL = forgeTag("billets/plutonium_fuel")
        val BILLETS_POLONIUM = forgeTag("billets/polonium"


": "paragraph"}]}
  </script>

    [返回索引页面]

   重庆市宗教界对以粮、钢为中心的增产节约运动的情况反映

   日期：1960-9-15 作者：重庆市人委宗教事务处

   重庆市人委宗教事务处

   八月中旬党提出立即开展一个以粮、钢为中心的增产节约运动后，宗教界人士通过学习、座谈，提高了认识，一般都表示拥护，并表示要以实际行动投入增产节约运动。基督教牧师李牧群说：“为加速我国社会主义建设和在国际上与帝国主义争时间比胜负，党中央提出开展以粮、钢为中心的增产节约运动是完全正确和必要的”。基督教许书林（爱国会工作人员）说：“农业的发展促进工业的发展、工业的发展又需要农业的支援，粮食是工业原料又是主要食品，钢是工业的原料，没有钢各项建设不行，农业一发展其他各行各业也就展了，为了迅速改变我国一穷二白的面貌，加速社会主义建设，党提出以粮、钢为中心的增产节约运动对加速社会主义建设的意义是十分重大的”。天主教董淑君（爱国会工作人员）通过学习检查自己的思想说：“未学习前我还打算给餐厅多申请些粮食以增加餐厅的营业收入，现在认识到这种想法是不符合保粮保钢的增产节约运动的精神的，今后应按供应计划尽量节约用粮，把增产节约的精神贯彻到服务态度和提高食品质量方面去”。能仁寺尼姑十多人主动要求到农村参加抗旱斗争，基督教牧师高尚律向公社申请要求全家去农村落户。和尚身智经过学习后，原来认为每月粮食定量30斤都不够吃的，现在主动提出降低定量3斤（按该人劳动情况，每月只能27斤），并在每月27斤定量标准中每月再节约1斤以上，但一般对增产节约运动的认识


 val) {
      element.removeAttribute(attr);
    }
  }

  svgroot.unsuspendRedraw(handle);
};

// Function: addSvgElementFromJson
// Create a new SVG element based on the given object keys/values and add it to the current layer
// The element will be ran through cleanupElement before being returned
//
// Parameters:
// data - Object with the following keys/values:
// * element - DOM element to create
// * attr - Object with attributes/values to assign to the new element
// * curStyles - Boolean indicating that current style attributes should be applied first
//
// Returns: The new element
var addSvgElementFromJson = this.addSvgElementFromJson = function(data) {
  var shape = getElem(data.attr.id);
  // if shape is a path but we need to create a rect/ellipse, then remove the path
  if (shape && data.element != shape.tagName) {
    current_layer.removeChild(shape);
    shape = null;
  }
  if (!shape) {
    shape = svgdoc.createElementNS(svgns, data.element);
    if (current_layer) {
      current_layer.appendChild(shape);
    }
  }
  if(data.curStyles) {
    assignAttributes(shape, {
      "fill": cur_shape.fill,
      "stroke": cur_shape.stroke,
      "stroke-width": cur_shape.stroke_width,
      "stroke-dasharray": cur_shape.stroke_dasharray,
      "stroke-linejoin": cur_shape.stroke_linejoin,
      "stroke-linecap": cur_shape.stroke_linecap,
      "stroke-opacity": cur_shape.stroke_opacity,
      "fill-opacity": cur_shape.fill_opacity,
      "opacity": cur_shape.opacity / 2,
      "style": "pointer-events:inherit"
    }, 100);
  }
  assignAttributes(shape, data.attr, 100);
  cleanupElement(shape);
  return shape;
};

(function() {
  // TODO: make this string optional and set by the client
  var comment = svgdoc.createComment(" Created with SVG-edit - http://svg-edit.googlecode.com/ ");
  svgcontent.appendChild(comment);

  // TODO For Issue 208: this is a start on a thumbnail
  //  var svgthumb = svgdoc.createElementNS(svgns, "use");
  //  svgthumb.setAttribute('width', '100');
  //  svgthumb.setAttribute('height', '100');
  //  setHref(svgthumb, '#svgcontent');
  //  svgroot.appendChild(svgthumb);

})();

// z-ordered array of tuples containing layer names and <g> elements
// the first layer is the one at the bottom of the rendering
var all_layers = [],

  // Object to contain image data for raster images that were found encodable
  encodableImages = {},

  // String with image URL of last loadable image
  last_good_img_url = curConfig.imgPath + 'logo.png',

  // pointer to the current layer <g>
  current_layer = null,

  // Object with save options
  save_options = {round_digits: 5},

  // Boolean indicating whether or not a draw action has been started
  started = false,

  // Integer with internal ID number for the latest element
  obj_num = 1,

  // String with an element's initial transform attribute value
  start_transform = null,

  // String indicating the current editor mode
  current_mode = "select",

  // String with the current direction in which an element is being resized
  current_resize_mode = "none",

  // Object containing data for the currently selected styles
  all_properties = {
    shape: {
      fill: "#" + curConfig.initFill.color,
      fill_paint: null,
      fill_opacity: curConfig.initFill.opacity,
      stroke: "#" + curConfig.initStroke.color,
      stroke_pain


internal_static_IM_Buddy_IMAllUserReq_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.blt.talk.common.code.proto.IMBuddy.internal_static_IM_Buddy_IMAllUserReq_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.blt.talk.common.code.proto.IMBuddy.IMAllUserReq.class, com.blt.talk.common.code.proto.IMBuddy.IMAllUserReq.Builder.class);
    }

    private int bitField0_;
    public static final int USER_ID_FIELD_NUMBER = 1;
    private long userId_;
    /**
     *

     *cmd id:		0x0208
     *

     *
     * required uint64 user_id = 1;
     * @return Whether the userId field is set.
     */
    @java.lang.Override
    public boolean hasUserId() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     *

     *cmd id:		0x0208
     *

     *
     * required uint64 user_id = 1;
     * @return The userId.
     */
    @java.lang.Override
    public long getUserId() {
      return userId_;
    }

    public static final int LATEST_UPDATE_TIME_FIELD_NUMBER = 2;
    private int latestUpdateTime_;
    /**
     * required uint32 latest_update_time = 2;
     * @return Whether the latestUpdateTime field is set.
     */
    @java.lang.Override
    public boolean hasLatestUpdateTime() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * required uint32 latest_update_time = 2;
     * @return The latestUpdateTime.
     */
    @java.lang.Override
    public int getLatestUpdateTime() {
      return latestUpdateTime_;
    }

    public static final int ATTACH_DATA_FIELD_NUMBER = 20;
    private com.google.protobuf.ByteString attachData_;
    /**
     * optional bytes attach_data = 20;
     * @return Whether the attachData field is set.
     */
    @java.lang.Override
    public boolean hasAttachData() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional bytes attach_data = 20;
     * @return The attachData.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString getAttachData() {
      return attachData_;
    }

    private byte memoizedIsInitialized = -1;
    @java.lang.Override
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasUserId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasLatestUpdateTime()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeUInt64(1, userId_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt32(2, latestUpdateTime_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeBytes(20, attachData_);
      }
      unknownFields.writeTo(output);
    }

    @ja


ch was changed by the function GRAPHICS::SET_DRAW_ORIGIN(...) back to x=0,y=0.

	See GRAPHICS::SET_DRAW_ORIGIN(...) for further information.
</summary>
]]--
native "CLEAR_DRAW_ORIGIN"
	hash "0xFF0B610F6BE0D7AF"
	jhash (0xDD76B263)
	returns	"void"

--[[!
<summary>
	Might be more appropriate in AUDIO?
</summary>
]]--
native "ATTACH_TV_AUDIO_TO_ENTITY"
	hash "0x845BAD77CC770633"
	jhash (0x784944DB)
	arguments {
		Entity "entity",
	}
	returns	"void"

--[[!
<summary>
	Might be more appropriate in AUDIO?

	Rockstar made it like this.

	Probably changes tvs from being a 3d audio to being "global" audio
</summary>
]]--
native "SET_TV_AUDIO_FRONTEND"
	hash "0x113D2C5DC57E1774"
	jhash (0x2E0DFA35)
	arguments {
		BOOL "toggle",
	}
	returns	"void"

native "LOAD_MOVIE_MESH_SET"
	hash "0xB66064452270E8F1"
	jhash (0x9627905C)
	arguments {
		charPtr "movieMeshSetName",
	}
	returns	"int"

native "RELEASE_MOVIE_MESH_SET"
	hash "0xEB119AA014E89183"
	jhash (0x4FA5501D)
	arguments {
		int "movieMeshSet",
	}
	returns	"void"

native "0x9B6E70C5CEEF4EEB"
	hash "0x9B6E70C5CEEF4EEB"
	jhash (0x9D5D9B38)
	arguments {
		Any "p0",
	}
	returns	"Any"

--[[!
<summary>
	int screenresx,screenresy;
	GET_SCREEN_RESOLUTION(&screenresx,&screenresy);
</summary>
]]--
native "GET_SCREEN_RESOLUTION"
	hash "0x888D57E407E63624"
	jhash (0x29F3572F)
	arguments {
		intPtr "x",

		intPtr "y",
	}
	returns	"void"

--[[!
<summary>
	Returns current screen resolution.
</summary>
]]--
native "_GET_ACTIVE_SCREEN_RESOLUTION"
	hash "0x873C9F3104101DD3"
	arguments {
		intPtr "x",

		intPtr "y",
	}
	returns	"void"

native "_GET_ASPECT_RATIO"
	hash "0xF1307EF624A80D87"
	arguments {
		BOOL "b",
	}
	returns	"float"

native "0xB2EBE8CBC58B90E9"
	hash "0xB2EBE8CBC58B90E9"
	returns	"Any"

--[[!
<summary>
	Setting Aspect Ratio Manually in game will return:

	false - for Narrow format Aspect Ratios (3:2, 4:3, 5:4, etc. )
	true - for Wide format Aspect Ratios (5:3, 16:9, 16:10, etc. )

	Setting Aspect Ratio to "Auto" in game will return "false" or "true" based on the actual set Resolution Ratio.
</summary>
]]--
native "GET_IS_WIDESCREEN"
	hash "0x30CF4BDA4FCB1905"
	jhash (0xEC717AEF)
	returns	"BOOL"

--[[!
<summary>
	false = Any resolution < 1280x720
	true = Any resolution >= 1280x720
</summary>
]]--
native "GET_IS_HIDEF"
	hash "0x84ED31191CC5D2C9"
	jhash (


wiki/トップレベルドメイン) です。トップレベルドメインは、 [IANA](https://ja.wikipedia.org/wiki/Internet_Assigned_Numbers_Authority) によってインターネット標準として登録されています。 ここでは"org"とは、最上位のドメインレジストリで定義される"organization（組織）"を意味します。
2. "mozilla"は、ドメインです。ドメインを所有したい場合は、最上位のドメインレジストリで許可されているドメイン名 [レジストラ](https://ja.wikipedia.org/wiki/レジストラ)のひとつとして登録する必要があります。
3. "developer"は、サブドメインです。あなたがドメインの所有者であると自分自身を定義することができます。 多くのドメイン所有者は{{Glossary("World_Wide_Web")}}リソースを指すようにサブドメインに "www"を選択しますが、必須ではありません（ただし、余り好ましくないです）。

## 詳細情報

- Wikipedia 上の記事： [ドメイン名](https://ja.wikipedia.org/wiki/ドメイン名)
---
title: Python
slug: Glossary/Python
---

{{GlossarySidebar}}

**Python**は、一般目的の高水準プログラミング言語です。複数のパラダイムを採用しており、手続型、オブジェクト指向、いくらか関数型プログラミングの構造に対応しています。

Python は、 ABC と呼ばれている別な言語の後継として、 Guido van Rossum によって 1985 年から 1990 年の間に開発され、現在ではウェブ開発、他のアプリケーションのスクリプト言語、実際のアプリケーション構築など、広い分野で使用されています。

Python は OSI に承認されたオープンソースライセンスのもとで開発され、商用を含めて無料で利用や配布をすることができます。 Phython のライセンスは [Python Software Foundation](https://www.python.org/psf) が管理しています。

1. Learn more
   1. Wikipedia の [Python](https://ja.wikipedia.org/wiki/Python)
   2. [Official Python docs tutorials](https://docs.python.org/3/tutorial/index.html)
   3. [Tutorialspoint Python tutorial](http://www.tutorialspoint.com/python/index.htm)
   4. [AlphaCodingSkills Python Tutorial](https://www.alphacodingskills.com/python/python-tutorial.php)
   5. MDN の [Django Web Framework (Python)](/ja/docs/Learn_web_development/Extensions/Server-side/Django)

2. 関連用語:
   1. {{Glossary("Java")}}
   2. {{Glossary("JavaScript")}}
   3. {{Glossary("PHP")}}
   4. {{Glossary("Python")}}
   5. {{Glossary(


drawCable(cableRender, mask, connectionType!!)
            }
        }
    }

    inner class ClutchLoopedSound(sound: String, coord: Coordinate) : LoopedSound(sound, coord) {
        override fun getPitch() = Math.max(0.1, Math.min(1.5, Math.abs(lRads - rRads) / 200.0)).toFloat()
        override fun getVolume() = volumeSetting.position
    }

    init {
        addLoopedSound(ClutchLoopedSound(desc.slipSound, coordinate()))
        LRDU.values().forEach { eConn.set(it, true); mask.set(it, true) }
        volumeSetting.target = 0f
    }

    var clutching = 0.0
    var slipping = false
    var lastSlipping = false
    var worn = false
    var hasPin = false

    override fun networkUnserialize(stream: DataInputStream) {
        super.networkUnserialize(stream)
        connectedSides.deserialize(stream)
        lRads = stream.readFloat().toDouble()
        rRads = stream.readFloat().toDouble()
        clutching = stream.readFloat().toDouble()
        slipping = stream.readBoolean()
        worn = stream.readBoolean()
        hasPin = stream.readBoolean()
        if(slipping && !worn) {
            volumeSetting.target = (Math.min(1.0, Math.abs(lRads - rRads) / 20.0) * clutching * 0.5).toFloat()
        } else {
            volumeSetting.target = 0f
            volumeSetting.position = 0f
        }
        if(lastSlipping && !slipping && hasPin) play(SoundCommand(desc.slipStopSound))
        lastSlipping = slipping
        //Utils.println(String.format("CR.nU: l=%f,r=%f c=%f s=%s ls=%s", lRads, rRads, clutching, slipping, lastSlipping))
    }

    override fun newGuiDraw(side: Direction, player: EntityPlayer): GuiScreen = ClutchGui(player, inv, this)
}

class ClutchContainer(player: EntityPlayer, inv: IInventory) : BasicContainer(
    player, inv, arrayOf(
        GenericItemUsingDamageSlot(inv, 0, 176 / 2 - 16 / 2 - 17 + 4, 42 - 16 / 2, 1, ClutchPlateItem::class.java, ISlotSkin.SlotSkin.medium, arrayOf(tr("Clutch Plate"))),
        GenericItemUsingDamageSlot(inv, 1, 176 / 2 - 16 / 2 + 17 + 4, 42 - 16 / 2, 1, ClutchPinItem::class.java, ISlotSkin.SlotSkin.medium, arrayOf(tr("Clutch Pin")))
    )
)

class ClutchGui(player: EntityPlayer, inv: IInventory, val render: ClutchRender) : GuiContainerEln(ClutchContainer(player, inv)) {
    override fun newHelper() = HelperStdContainer(this)
}
package mods.eln.transparentnode

import mods.eln.Eln
import mods.eln.cable.CableRenderDescriptor
import mods.eln.cable.CableRenderType
import mods.eln.generic.GenericItemBlockUsingDamageDescriptor
import mods.eln.generic.GenericItemUsingDamageDescriptor
import mods.eln.generic.GenericItemUsingDamageSlot
import mods.eln.gui.GuiContainerEln
import mods.eln.gui.GuiHelperContainer
import mods.eln.gui.ISlotSkin
import mods.eln.i18n.I18N.tr
import mods.eln.item.*
import mods.eln.misc.*
import mods.eln.node.NodeBase
import mods.eln.node.NodePeriodicPublishProcess
import mods.eln.node.transparent.*
import mods.eln.sim.ElectricalLoad
import mods.eln.sim.IProcess
import mods.eln.sim.ThermalLoad
import mods.eln.sim.mna.component.VoltageSource
import mods.eln.sim.mna.process.TransformerInterSyst


.en;
    raidNameCache.set(raidName, englishRaidName);
  }

  return englishRaidName;
}

// Checks if raid is in raid id cache. To not get duplicate codes
function isNew(raidId: string): boolean {
  let exists: boolean | undefined = raidIdsCache.get(raidId);
  if (exists == undefined) {
    raidIdsCache.set(raidId, false);
  }

  return exists ?? true;
}

// Add raid to map
function addRaid(raid: TwitterRaid): void {
  var englishName = getEnglishRaidName(raid.raidName);
  if (englishName == undefined) return;

  let raidCode = { createdAt: raid.createdAt, id: raid.id };
  let raidCodes = raidMap.get(englishName);
  if (raidCodes) {
    if (raidCodes.length >= 6) {
      raidCodes = raidCodes.slice(0, 5);
    }

    raidCodes.unshift(raidCode);
    raidMap.set(englishName, raidCodes);
  } else {
    raidMap.set(englishName, [raidCode]);
  }
}

function handleConnection(ws: WebSocket, req: http.IncomingMessage) {
  ws.send('{"action": "welcomeMessage", "message": "OK"}');
  ws.on('message', (message) => handleClientMessage(message, ws));
  ws.on('close', disconnectClient);
}

function handleClientMessage(data: WebSocket.Data, ws: WebSocket) {
  const message: ClientMesssage = JSON.parse(data.toString());
  switch (message.action) {
    case 'followRaids':
      addRaidsToClient(ws, message.raids);
      break;
    case 'unFollowRaids':
      removeRaidsFromClient(ws, message.raids);
      break;
  }
}

function disconnectClient(ws: WebSocket) {
  clientsRaids.delete(ws);
}

function addRaidsToClient(ws: WebSocket, raids: string[]) {
  if (!raids.every((raid) => isValidRaidName(raid))) return;

  const clientRaids = clientsRaids.get(ws) ?? [];
  for (const raid of raids) {
    if (!clientRaids.includes(raid)) {
      clientRaids.push(raid);
      publishRaidCodes(raid);
    }
  }

  clientsRaids.set(ws, clientRaids);
}

function removeRaidsFromClient(ws: WebSocket, raids: string[]) {
  if (!raids.every((raid) => isValidRaidName(raid))) return;

  const clientRaids = clientsRaids.get(ws) ?? [];
  clientsRaids.set(
    ws,
    clientRaids.filter((raid) => !raids.includes(raid))
  );
}

const isValidRaidName = (raidName: string) =>
  raids.some((raid) => raid.en === raidName || raid.jp === raidName);

function publishRaidCodes(raidName: string) {
  const englishName = getEnglishRaidName(raidName);
  if (englishName == undefined) return;

  clientsRaids.forEach((raids, ws) => {
    if (!raids.includes(englishName)) return;
    const raidCodes = getRaidCodes(raids);
    ws.send(
      JSON.stringify({
        action: 'raidCodes',
        raidCodes,
      })
    );
  });
}

function getRaidCodes(clientRaids: string[]) {
  return clientRaids.map((raid) => {
    const codes = raidMap.get(raid) ?? [];
    return { raidName: raid, codes: codes };
  });
}
/*
 * @Date: 2020-08-31 22:34:31
 * @Autor: 肖月萍
 * @Description: 类的构造函数
 * @LastEditors: 肖月萍
 * @LastEditTime: 2020-08-31 22:39:11
 */
class T{
    constructor(public name:string){}
}
class Teachers extends T{
    constructor(public age:number){
        super('jo


# Copyright 2025 The kauldron Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""TfGrain handler tests."""

import pathlib

from grain import tensorflow as grain
from kauldron.contrib.data.iterators import tfgrain_handler
from orbax import checkpoint as ocp
import tensorflow as tf

def _make_data_loader() -> grain.TfDataLoader:
  ds = tf.data.Dataset.range(50)
  ds = ds.map(lambda x: x * 10)

  source = grain.TfInMemoryDataSource.from_dataset(ds)
  sampler = grain.TfDefaultIndexSampler(
      num_records=len(source),
      shuffle=False,
      seed=42,
      shard_options=grain.NoSharding(),
  )
  data_loader = grain.TfDataLoader(
      source=source, sampler=sampler, batch_fn=grain.TfBatchNone()
  )
  return data_loader

def test_tfgrain(tmp_path: pathlib.Path):

  ds_iter = iter(_make_data_loader())
  for _ in range(10):  # Iterate 10 times.
    next(ds_iter)

  mgr = ocp.CheckpointManager(tmp_path)
  mgr.save(args=tfgrain_handler.TfGrainArg(ds_iter), step=0)
  mgr.wait_until_finished()

  mgr = ocp.CheckpointManager(tmp_path)
  restored_iter = mgr.restore(
      args=tfgrain_handler.TfGrainArg(iter(_make_data_loader())), step=0
  )

  assert next(restored_iter)['_record'] == 100
  assert next(restored_iter)['_record'] == 110


"gas price is nil",
			types.LegacyTx{
				GasPrice: nil,
			},
			true,
		},
		{
			"gas price is negative",
			types.LegacyTx{
				GasPrice: &suite.sdkMinusOneInt,
			},
			true,
		},
		{
			"amount is negative",
			types.LegacyTx{
				GasPrice: &suite.sdkInt,
				Amount:   &suite.sdkMinusOneInt,
			},
			true,
		},
		{
			"to address is invalid",
			types.LegacyTx{
				GasPrice: &suite.sdkInt,
				Amount:   &suite.sdkInt,
				To:       suite.invalidAddr,
			},
			true,
		},
	}

	for _, tc := range testCases {
		err := tc.tx.Validate()

		if tc.expError {
			suite.Require().Error(err, tc.name)
			continue
		}

		suite.Require().NoError(err, tc.name)
	}
}

func (suite *TxDataTestSuite) TestLegacyTxEffectiveGasPrice() {
	testCases := []struct {
		name    string
		tx      types.LegacyTx
		baseFee *big.Int
		exp     *big.Int
	}{
		{
			"non-empty legacy tx",
			types.LegacyTx{
				GasPrice: &suite.sdkInt,
			},
			(&suite.sdkInt).BigInt(),
			(&suite.sdkInt).BigInt(),
		},
	}

	for _, tc := range testCases {
		actual := tc.tx.EffectiveGasPrice(tc.baseFee)

		suite.Require().Equal(tc.exp, actual, tc.name)
	}
}

func (suite *TxDataTestSuite) TestLegacyTxEffectiveFee() {
	testCases := []struct {
		name    string
		tx      types.LegacyTx
		baseFee *big.Int
		exp     *big.Int
	}{
		{
			"non-empty legacy tx",
			types.LegacyTx{
				GasPrice: &suite.sdkInt,
				GasLimit: uint64(1),
			},
			(&suite.sdkInt).BigInt(),
			(&suite.sdkInt).BigInt(),
		},
	}

	for _, tc := range testCases {
		actual := tc.tx.EffectiveFee(tc.baseFee)

		suite.Require().Equal(tc.exp, actual, tc.name)
	}
}

func (suite *TxDataTestSuite) TestLegacyTxEffectiveCost() {
	testCases := []struct {
		name    string
		tx      types.LegacyTx
		baseFee *big.Int
		exp     *big.Int
	}{
		{
			"non-empty legacy tx",
			types.LegacyTx{
				GasPrice: &suite.sdkInt,
				GasLimit: uint64(1),
				Amount:   &suite.sdkZeroInt,
			},
			(&suite.sdkInt).BigInt(),
			(&suite.sdkInt).BigInt(),
		},
	}

	for _, tc := range testCases {
		actual := tc.tx.EffectiveCost(tc.baseFee)

		suite.Require().Equal(tc.exp, actual, tc.name)
	}
}

func (suite *TxDataTestSuite) TestLegacyTxFeeCost() {
	tx := &types.LegacyTx{}

	suite.Require().Panics(func() { tx.Fee() }, "should panic")
	suite.Require().Panics(func() { tx.Cost() }, "should panic")
}
package types

import (
	"testing"

	ethparams "github.com/ethereum/go-ethereum/params"

	"github.com/stretchr/testify/require"
)

func TestParamsValidate(t *testing.T) {
	t.Parallel()

	extraEips := []string{"ethereum_2929", "ethereum_1884", "ethereum_1344"}
	testCases := []struct {
		name        string
		params      Params
		expPass     bool
		errContains string
	}{
		{
			name:


pan\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Ci class=\"icon icon-circle\"\u003E\u003C\u002Fi\u003E\u003Cspan itemprop=\"recipeIngredient\"\u003E\u003Cspan class=\"ingredient\"\u003Eprzyprawy i zioła: 2 ziarna ziela angielskiego; 1 listek laurowy; łyżeczka soli; pół łyżeczki pieprzu\u003C\u002Fspan\u003E\u003C\u002Fspan\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\n\u003Cp class=\"ing-header\"\u003E\u003Cstrong\u003EPozostałe składniki\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cul class=\"recipe-ing-list\"\u003E\u003Cli\u003E\u003Ci class=\"icon icon-circle\"\u003E\u003C\u002Fi\u003E\u003Cspan itemprop=\"recipeIngredient\"\u003E\u003Cspan class=\"ingredient\"\u003E1 mały słoiczek koncentratu pomidorowego - 200 g\u003C\u002Fspan\u003E\u003C\u002Fspan\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Ci class=\"icon icon-circle\"\u003E\u003C\u002Fi\u003E\u003Cspan itemprop=\"recipeIngredient\"\u003E\u003Cspan class=\"ingredient\"\u003E4 łyżki kwaśnej śmietany 18 % - około 80 g\u003C\u002Fspan\u003E\u003C\u002Fspan\u003E\u003C\u002Fli\u003E\u003Cli\u003E\u003Ci class=\"icon icon-circle\"\u003E\u003C\u002Fi\u003E\u003Cspan itemprop=\"recipeIngredient\"\u003E\u003Cspan class=\"ingredient\"\u003Edo podania: natka pietruszki oraz makaron lub ryż\u003C\u002Fspan\u003E\u003C\u002Fspan\u003E\u003C\u002Fli\u003E\u003C\u002Ful\u003E\n\u003C\u002Fdiv\u003E\n\u003C!--COPY_SHAE_LOCK--\u003E\n\u003Ch2\u003EPomidorowa\u003C\u002Fh2\u003E\n\u003Cp\u003EUWAGA - Jeśli szukasz przepisu na pomidorową ze świeżych pomidorów, to zapraszam po przepis - \u003Ca href=\"https:\u002F\u002Faniagotuje.pl\u002Fprzepis\u002Fzupa-pomidorowa-ze-swiezych-pomidorow\"\u003EZupa pomidorowa ze świeżych pomidorów\u003C\u002Fa\u003E. \u003C\u002Fp\u003E\n\u003Cp\u003ESzklanka ma u mnie pojemność 250 ml. \u003Cbr\u003E\n Do ugotowania zupy polecam garnek o pojemności minimum 2,5 litra.\u003C\u002Fp\u003E\n\u003Cp\u003EWarzywa ważone były przed ewentualnym obraniem\u002Fprzygotowaniem. Zawsze podaję wagę użytych przeze mnie warzy


quoise4",           {0, 134, 139}},
        {"violet",               {238, 130, 238}},
        {"violet red",           {208, 32, 144}},
        {"VioletRed",            {208, 32, 144}},
        {"VioletRed1",           {255, 62, 150}},
        {"VioletRed2",           {238, 58, 140}},
        {"VioletRed3",           {205, 50, 120}},
        {"VioletRed4",           {139, 34, 82}},
        {"wheat",                {245, 222, 179}},
        {"wheat1",               {255, 231, 186}},
        {"wheat2",               {238, 216, 174}},
        {"wheat3",               {205, 186, 150}},
        {"wheat4",               {139, 126, 102}},
        {"white",                {255, 255, 255}},
        {"white smoke",          {245, 245, 245}},
        {"WhiteSmoke",           {245, 245, 245}},
        {"yellow",               {255, 255, 0}},
        {"yellow green",         {154, 205, 50}},
        {"yellow1",              {255, 255, 0}},
        {"yellow2",              {238, 238, 0}},
        {"yellow3",              {205, 205, 0}},
        {"yellow4",              {139, 139, 0}},
        {"YellowGreen",          {154, 205, 50}},
};

RGB Color::colorNameToRGB(std::string colorName)
{
    auto it = RGBcolorCodes.find(colorName);
    if(it == RGBcolorCodes.end())
        throw omnetpp::cRuntimeError("color '%s' is unknown! Check 'global/Color.cc' file for a list of available colors. Note that color name is case-sensitive.", colorName.c_str());

    return it->second;
}

double hue2rgb(double p, double q, double t)
{
    if(t < 0) t += 1;
    if(t > 1) t -= 1;
    if(t < 1/(double)6) return p + (q - p) * 6 * t;
    if(t < 1/(double)2) return q;
    if(t < 2/(double)3) return p + (q - p) * (2/(double)3 - t) * 6;

    return p;
}

// more info here: http://colorizer.org/
RGB Color::hslToRgb(double hue, double saturation, double lightness)
{
    hue /= 360, saturation /= 100, lightness /= 100;  // normalize value between [0,1]
    double red, green, blue;

    if(saturation == 0)
    {
        red = green = blue = lightness; // achromatic
    }
    else
    {
        double q = lightness < 0.5 ? lightness * (1 + saturation) : lightness + saturation - lightness * saturation;
        double p = 2 * lightness - q;
        red = hue2rgb(p, q, hue + 1/(double)3);
        green = hue2rgb(p, q, hue);
        blue = hue2rgb(p, q, hue - 1/(double)3);
    }

    RGB result;
    result.red = red * 255;
    result.green = green * 255;
    result.blue = blue * 255;

    return result;
}

// more info here: http://colorizer.org/
HSL Color::rgbToHsl(double red, double green, double blue)
{
    red /= 255, green /= 255, blue /= 255; // normalize value between [0,1]
    double max = std::max(red, std::max(green, blue));
    double min = std::min(red, std::min(green, blue));
    double h = 0, s, l = (max + min) / 2;

    if(max == min)
    {
        h = s = 0; // achromatic
    }
    else
    {
        double d = max - min;
        s = l > 0.5 ? d / (2 - max - min) : d / (max + min);


           # Enhanced prompt for o3 models with superior reasoning
            return f"""Du bist ein Experte für deutsche zahnmedizinische Abrechnung mit jahrzehntelanger Erfahrung und exzellenten analytischen Fähigkeiten.

MISSION: Führe eine tiefgehende, systematische Analyse der Abrechnungspositionen durch.

ANALYSE-FRAMEWORK:
1. 📋 VOLLSTÄNDIGKEITS-ANALYSE
   - Alle durchgeführten Behandlungen erfasst?
   - Versteckte/implizite Leistungen erkannt?
   - Vorbereitende Maßnahmen berücksichtigt?

2. 🔍 PLAUSIBILITÄTS-PRÜFUNG
   - Logische Behandlungssequenz?
   - Anatomische Korrektheit?
   - Kombinationsregeln eingehalten?

3. ⚖ RECHTLICHE VALIDIERUNG
   - BEMA/GOZ-Konformität?
   - Ausschluss-Kriterien beachtet?
   - Faktor-Begründung angemessen?

4. 💰 ÖKONOMISCHE BEWERTUNG
   - Verhältnismäßigkeit der Kosten?
   - Optimierungspotential?
   - Audit-Risiko-Assessment?

REASONING-MODUS: {self.reasoning_mode}
- "detailed": Vollständige Schritt-für-Schritt Analyse
- "concise": Fokus auf kritische Punkte
- "audit": Compliance- und Risiko-orientiert

ADVANCED OUTPUT (JSON):
{{
    "overall_confidence": 0.95,
    "total_value_analysis": {{
        "documented_value": 150.50,
        "potential_missing": 25.00,
        "risk_score": "low|medium|high"
    }},
    "issues": [
        {{
            "type": "missing_code|incorrect_code|compliance_risk",
            "description": "Detaillierte Problembeschreibung",
            "severity": "critical|high|medium|low",
            "financial_impact": 15.50,
            "suggestion": "Konkrete Handlungsempfehlung",
            "legal_basis": "BEMA/GOZ Referenz"
        }}
    ],
    "recommendations": [
        "Strategische Verbesserungsvorschläge"
    ],
    "chain_of_thought": "Detaillierte multi-level Reasoning-Kette mit medizinischen, rechtlichen und ökonomischen Überlegungen",
    "audit_readiness": {{
        "score": 0.9,
        "weak_points": ["Bereiche die bei Prüfung problematisch sein könnten"],
        "documentation_quality": "excellent|good|needs_improvement"
    }}
}}"""
        else:
            # Standard prompt for other models
            return """Du bist ein erfahrener Abrechnungsauditor für deutsche Zahnmedizin.

Deine Aufgabe:
1. Prüfe die Vollständigkeit der Abrechnungspositionen
2. Erkenne fehlende oder falsche Codes
3. Validiere die Plausibilität der Kombinationen
4. Gib konkrete Verbesserungsvorschläge

Chain-of-Thought Reasoning:
- Schritt 1: Was wurde dokumentiert?
- Schritt 2: Welche Codes wurden zugeordnet?
- Schritt 3: Was könnte fehlen?
- Schritt 4: Sind die Codes plausibel?
- Schritt 5: Finale Bewertung

Antworte im JSON-Format:
{
    "overall_confidence": 0.9,
    "issues": [
        {
            "type": "missing_code",
            "description": "Anästhesie fehlt bei invasivem Eingriff",
            "severity": "medium",
            "suggestion": "BEMA 41 hinzufügen"
        }
    ],
    "recommendations": [
        "Prüfe ob Anästhesie dokumentiert werden sollte"
    ],
    "chain_of_thought": "Detaillierte Schritt-für-Schritt Analyse..."
}"""

    def _create_audit_query(self, data: Dict[str, Any]) -> str:
        normalized_text = data.get("normalized_text", "")
        billing_codes = data.get("billing_codes", [])
        procedures = data.get("procedures", [])

        codes_summary = "\n".join([
            f"- {code['code']}: {code['description']} (Konfidenz: {code.get('confidence', 0)})"
            for code in billing_codes
        ])

        return f"""
ORIGINALTEXT:
"{normalized_text}"

EXTRAHIERTE CODES:
{codes_summary}

PROZEDUREN:
{json.dumps(procedures, indent=2, ensure_ascii=False)}

Prüfe die Vollständigkeit und Korrektheit der Abrechnung.
Verwende Chain-of-Thought Reasoning für deine Analyse.
"""

class ProcessingPipeline:
    """Main pipeline coordinator that orchestrates all stages"""

    def __init__(self):
        self.stages = {
            "normalization": TextNormalizationStage(),
            "billing_mapping": BillingMappingStage(),
            "advanced_billing": AdvancedBillingStage(),  # Optional o3-powered optimization
            "plausibility_check": PlausibilityCheckStage()
        }
        self.use_advanced_billing = settings.USE_O3_FOR_COMPLEX_CASES
        self.advanced_billing_threshold = settings.O3_COMPLEXITY_THRESHOLD

    async def process_complete(
        self,
        raw_text: str,
        findings: List[DentalFinding] = None
    ) -> Dict[str, Any]:


Group == "apps" && g.Kind == "ReplicaSet":
		return []string{"spec", "template", "spec", "containers"}, nil
	case g.Group == "" && g.Kind == "ReplicationController":
		return []string{"spec", "template", "spec", "containers"}, nil
	case g.Group == "apps" && g.Kind == "StatefulSet":
		return []string{"spec", "template", "spec", "containers"}, nil
	default:
		return nil, errors.Errorf("unable to find containers location for %+v, %s, %s", g, g.Group, g.Kind)
	}
}
/*
Copyright (c) 2019 the Octant contributors. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/

package printer

import (
	"context"
	"fmt"
	"sort"
	"strings"

	"github.com/pkg/errors"
	corev1 "k8s.io/api/core/v1"
	"k8s.io/apimachinery/pkg/labels"
	"k8s.io/apimachinery/pkg/util/intstr"
	"k8s.io/client-go/kubernetes/scheme"

	"github.com/vmware-tanzu/octant/internal/octant"
	"github.com/vmware-tanzu/octant/internal/util/kubernetes"
	"github.com/vmware-tanzu/octant/pkg/store"
	"github.com/vmware-tanzu/octant/pkg/view/component"
)

// ServiceListHandler is a printFunc that lists services
func ServiceListHandler(ctx context.Context, list *corev1.ServiceList, options Options) (component.Component, error) {
	if list == nil {
		return nil, errors.New("nil list")
	}

	cols := component.NewTableCols("Name", "Labels", "Type", "Cluster IP", "External IP", "Ports", "Age", "Selector")
	ot := NewObjectTable("Services", "We couldn't find any services!", cols, options.DashConfig.ObjectStore())
	ot.EnablePluginStatus(options.DashConfig.PluginManager())
	for _, s := range list.Items {
		row := component.TableRow{}
		nameLink, err := options.Link.ForObject(&s, s.Name)
		if err != nil {
			return nil, err
		}

		row["Name"] = nameLink
		row["Labels"] = component.NewLabels(s.Labels)
		row["Type"] = component.NewText(string(s.Spec.Type))
		row["Cluster IP"] = component.NewText(s.Spec.ClusterIP)
		row["External IP"] = component.NewText(describeExternalIPs(s))
		row["Ports"] = printServicePorts(s.Spec.Ports)

		ts := s.CreationTimestamp.Time
		row["Age"] = component.NewTimestamp(ts)

		row["Selector"] = printSelectorMap(s.Spec.Selector)

		if err := ot.AddRowForObject(ctx, &s, row); err != nil {
			return nil, fmt.Errorf("add row for object: %w", err)
		}
	}
	return ot.ToComponent()
}

// ServiceHandler is a printFunc that prints a Services.
func ServiceHandler(ctx context.Context, service *corev1.Service, options Options) (component.Component, error) {
	o := NewObject(service)
	o.EnableEvents()

	sh, err := newServiceHandler(service, o)
	if err != nil {
		return nil, err
	}

	if err := sh.Config(ctx, options); err != nil {
		return nil, errors.Wrap(err, "print service configuration")
	}

	if err := sh.Status(); err != nil {
		return nil, errors.Wrap(err, "print service status")
	}

	if err := sh.Endpoints(ctx, options); err != nil {
		return nil, errors.Wrap(err, "print service endpoints")
	}

	return o.ToComponent(ctx, options)
}

func printServicePorts(ports []corev1.ServicePort) component.Component {
	out := make([]string, len(ports))
	for i, port := range ports {
		out[i] = describePortShort(port)
	}

	return component.NewText(strings.Join(out,


_TYPE_TRAITS
#include "boost_has_tr1_type_traits.ipp"
#else
namespace boost_has_tr1_type_traits = empty_boost;
#endif
#ifdef BOOST_HAS_TR1_UNORDERED_MAP
#include "boost_has_tr1_unordered_map.ipp"
#else
namespace boost_has_tr1_unordered_map = empty_boost;
#endif
#ifdef BOOST_HAS_TR1_UNORDERED_SET
#include "boost_has_tr1_unordered_set.ipp"
#else
namespace boost_has_tr1_unordered_set = empty_boost;
#endif
#ifdef BOOST_HAS_TR1_UTILITY
#include "boost_has_tr1_utility.ipp"
#else
namespace boost_has_tr1_utility = empty_boost;
#endif
#ifdef BOOST_HAS_UNISTD_H
#include "boost_has_unistd_h.ipp"
#else
namespace boost_has_unistd_h = empty_boost;
#endif
#ifdef BOOST_HAS_VARIADIC_TMPL
#include "boost_has_variadic_tmpl.ipp"
#else
namespace boost_has_variadic_tmpl = empty_boost;
#endif
#ifdef BOOST_MSVC6_MEMBER_TEMPLATES
#include "boost_has_vc6_mem_templ.ipp"
#else
namespace boost_msvc6_member_templates = empty_boost;
#endif
#ifdef BOOST_MSVC_STD_ITERATOR
#include "boost_has_vc_iterator.ipp"
#else
namespace boost_msvc_std_iterator = empty_boost;
#endif
#ifdef BOOST_HAS_WINTHREADS
#include "boost_has_winthreads.ipp"
#else
namespace boost_has_winthreads = empty_boost;
#endif

int main( int, char *[] )
{
   if(0 != boost_has_two_arg_use_facet::test())
   {
      std::cerr << "Failed test for BOOST_HAS_TWO_ARG_USE_FACET at: " << __FILE__ << ":" << __LINE__ << std::endl;
      ++error_count;
   }
   if(0 != boost_has_bethreads::test())
   {
      std::cerr << "Failed test for BOOST_HAS_BETHREADS at: " << __FILE__ << ":" << __LINE__ << std::endl;
      ++error_count;
   }
   if(0 != boost_has_clock_gettime::test())
   {
      std::cerr << "Failed test for BOOST_HAS_CLOCK_GETTIME at: " << __FILE__ << ":" << __LINE__ << std::endl;
      ++error_count;
   }
   if(0 != boost_has_dirent_h::test())
   {
      std::cerr << "Failed test for BOOST_HAS_DIRENT_H at: " << __FILE__ << ":" << __LINE__ << std::endl;
      ++error_count;
   }
   if(0 != boost_has_expm1::test())
   {
      std::cerr << "Failed test for BOOST_HAS_EXPM1 at: " << __FILE__ << ":" << __LINE__ << std::endl;
      ++error_count;
   }
   if(0 != boost_has_ftime::test())
   {
      std::cerr << "Failed test for BOOST_HAS_FTIME at: " << __FILE__ << ":" << __LINE__ << std::endl;
      ++error_count;
   }
   if(0 != boost_has_getsystemtimeasfiletime::test())
   {
      std::cerr << "Failed test for BOOST_HAS_GETSYSTEMTIMEASFILETIME at: " << __FILE__ << ":" << __LINE__ << std::endl;
      ++error_count;
   }
   if(0 != boost_has_gettimeofday::test())
   {
      std::cerr << "Failed test for BOOST_HAS_GETTIMEOFDAY at: " << __FILE__ << ":" << __LINE__ <


 id: Long = 0,
) {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    var id: Long = id
        protected set

    @field:Column(nullable = false)
    var text: String = text
        protected set

    @field:Column(nullable = false)
    var isCorrect: Boolean = isCorrect
        protected set

    @ManyToOne(fetch = FetchType.LAZY, optional = false)
    @JoinColumn(name = "question_id", nullable = false)
    var question: Question? = null

    companion object {

        private const val MAX_TEXT_LENGTH = 200
    }

    init {
        validateTextNotBlank()
        validateTextLength()
    }

    fun updateQuestion(question: Question) {
        this.question = question
    }

    private fun validateTextNotBlank() {
        if (text.isBlank()) {
            throw BadRequestException("문제 선택지의 내용은 비어있을 수 없습니다.")
        }
    }

    private fun validateTextLength() {
        if (text.length > MAX_TEXT_LENGTH) {
            throw BadRequestException("문제 선택지의 내용은 ${MAX_TEXT_LENGTH}자 이하여야 합니다.")
        }
    }
}package com.fluffy.global.web.cookie

import jakarta.servlet.http.HttpServletRequest
import org.springframework.http.ResponseCookie
import org.springframework.stereotype.Component

@Component
class CookieManager(
    private val cookieProperties: CookieProperties,
) {

    fun createAccessTokenCookie(accessToken: String): ResponseCookie {
        return ResponseCookie.from(cookieProperties.accessTokenKey, accessToken)
            .httpOnly(cookieProperties.httpOnly)
            .secure(cookieProperties.secure)
            .domain(cookieProperties.domain)
            .path(cookieProperties.path)
            .maxAge(cookieProperties.maxAge)
            .build()
    }

    fun createExpiredAccessTokenCookie(): ResponseCookie {
        return ResponseCookie.from(cookieProperties.accessTokenKey, "")
            .httpOnly(cookieProperties.httpOnly)
            .secure(cookieProperties.secure)
            .domain(cookieProperties.domain)
            .path(cookieProperties.path)
            .maxAge(0)
            .build()
    }

    fun extractAccessToken(request: HttpServletRequest): String? {
        val tokenCookieName = cookieProperties.accessTokenKey
        val cookies = request.cookies

        if (cookies.isNullOrEmpty()) {
            return null
        }

        return cookies.firstOrNull { it.name == tokenCookieName }?.value

    }
}package com.fluffy.oauth2.infra.github

import com.fluffy.auth.domain.OAuth2Provider
import com.fluffy.oauth2.application.OAuth2Strategy
import com.fluffy.oauth2.domain.OAuth2UserInfo
import org.springframework.stereotype.Component
import org.springframework.web.util.UriComponentsBuilder

@Component
class GithubOAuth2Strategy(
    private val githubOAuth2Client: GithubOAuth2Client,
    private val properties: GithubOAuth2Properties,
) : OAuth2Strategy {

    override fun buildOAuth2LoginUrl(next: String): String {
        val redirectUriWithNext = UriComponentsBuilder.fromUriString(properties.redirectUri)
            .queryParam("next", next)
            .build()
            .toUriString()

        return UriComponentsBuilder.fromUriString("https://github.com/login/oauth/authorize")
            .queryParam("client_id", properties.clientId)
            .queryParam("redirect_uri", redirectUriWithNext)
            .build()
            .toUriString()
    }

    override fun fetchOAuth2UserInfo(code: String): OAuth2UserInfo {
        val accessTokenResponse = githubOAuth2Client.fetchAccessToken(code)
        val accessToken: String = accessTokenResponse.accessToken

        val userInfoResponse = githubOAuth


    font-weight: 400;
    font-size: 14px;
    margin-bottom: 20px
}

.printer_list {
    display: block;
    overflow: hidden
}

.printer_list.wookmark .thumbnail {
    width: 32%;
    margin-right: 2%;
    margin-bottom: 2%;
    height: 290px;
    background-color: #F9FBFC;
    padding: 10px 5px;
}

.printer_list.wookmark .thumbnail.add {
    padding: 0
}

.printer_list.wookmark .thumbnail:nth-child(3n) {
    margin-right: 0
}

.printer_list.wookmark .thumbnail .more {
    height: 100%;
    background-color: #F9FBFC
}

.printer_list.wookmark .thumbnail .more i {
    font: 900 60px/85px dashicons;
    top: 105px
}

.printer_list.wookmark .thumbnail .more:hover {
    color: #eee;
    border-color: #48a6d2;
    background: #48a6d2
}

.thumbnail .top {
    overflow: hidden;
    border-bottom: 1px solid #eee
}

.thumbnail .top img {
    margin: 10px;
    float: left;
    width: 80px;
    height: 80px;
    border-radius: 50%;
}

.thumbnail .top.printer_logo img {
    width: 80px;
    height: 80px;
}

.thumbnail .top_right {
    float: left;
    max-width: 50%;
    padding-top: 20px;
    font-size: 18px
}

.merchant_printer .thumbnail .top_right {
    max-width: 55%;
}

.thumbnail .top_right .name {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    text-align: left;
    font-weight: 700;
}

.info_status .status, .thumbnail .top_right .status {
    display: block;
    background-color: #F28467;
    color: #fff;
    border-radius: 4px;
    font-size: 14px;
    margin-top: 15px;
    width: 50px
}

.info_status .status.error, .thumbnail .top_right .status.error {
    background-color: #aaa
}

.bottom {
    font-size: 15px;
    line-height: 30px;
    text-align: left;
    padding: 15px 5px
}

.bottom .bottom-item {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap
}

.printer_list .view .btn.btn-primary {
    width: 50%;
}

.printer_box {
    float: left;
    height: 340px;
    border-radius: 4px;
    border: 1px solid #dedede;
    box-shadow: 0 1px 1px -1px rgba(0, 0, 0, .1);
    box-sizing: border-box;
    margin-right: 1%;
    background-color: #fff
}

.printer_box .title {
    height: 35px;
    line-height: 35px;
    background-color: #F6F8F8;
    padding-left: 15px;
    color: #555;
    font-weight: 400;
    font-size: 14px;
    overflow: hidden;
    border-radius: 4px 4px 0 0
}

.printer_box.basic_info {
    width: 46%
}

.printer_box.print_stats {
    width: 100%;
    margin-right: 0;
    margin-top


%bb.18:                              //   in Loop: Header=BB99_16 Depth=2
	ldrh	w9, [x24, :lo12:c_ftl_nand_byte_pre_page]
	mov	w5, #42982
	movk	w5, #18374, lsl #16
	cbz	x9, .LBB99_21
// %bb.19:                              //   in Loop: Header=BB99_16 Depth=2
	adrp	x10, req_sys+8
	ldr	x10, [x10, :lo12:req_sys+8]
	mov	w5, #42982
	movk	w5, #18374, lsl #16
.LBB99_20:                              //   Parent Loop BB99_3 Depth=1
                                        //     Parent Loop BB99_16 Depth=2
                                        // =>    This Inner Loop Header: Depth=3
	ldrb	w11, [x10], #1
	lsr	w12, w5, #2
	add	w12, w12, w5, lsl #5
	subs	x9, x9, #1                      // =1
	add	w11, w12, w11
	eor	w5, w11, w5
	b.ne	.LBB99_20
.LBB99_21:                              //   in Loop: Header=BB99_16 Depth=2
	cmp	w4, w5
	b.ne	.LBB99_14
.LBB99_22:                              //   in Loop: Header=BB99_16 Depth=2
	cmn	w8, #1                          // =1
	b.eq	.LBB99_15
// %bb.23:                              //   in Loop: Header=BB99_16 Depth=2
	ldrh	w8, [x21, #8]
	cmp	w8, w28
	b.hs	.LBB99_15
// %bb.24:                              //   in Loop: Header=BB99_16 Depth=2
	ldrh	w9, [x21]
	ldrh	w10, [x19, #4]
	cmp	w9, w10
	b.ne	.LBB99_15
// %bb.25:                              //   in Loop: Header=BB99_16 Depth=2
	adrp	x9, req_sys+4
	ldr	w9, [x9, :lo12:req_sys+4]
	ldur	x10, [x29, #-8]                 // 8-byte Folded Reload
	str	w9, [x10, x8, lsl #2]
	b	.LBB99_15
.LBB99_26:
	mov	w8, w23
	sxth	x26, w8
	ldrh	w0, [x27, x26, lsl #1]
	mov	w1, #1
	bl	FtlGetLastWrittenPage
	add	w8, w0, #1                      // =1
	strh	w8, [x19, #2]
	ldr	x8, [sp, #8]                    // 8-byte Folded Reload
	strh	w23, [x19]
	ldr	w8, [x8, x26, lsl #2]
	str	w8, [x19, #48]
	tbnz	w0, #15, .LBB99_40
// %bb.27:
	mov	w23, wzr
	sxth	w25, w0
	b	.LBB99_30
.LBB99_28:                              //   in Loop: Header=BB99_30 Depth=1
	ldur	w2, [x29, #-12]                 // 4-byte Folded Reload
	adrp	x0, .L.str.98
	adrp	x1, .L__func__.FtlMapTblRecovery
	add	x0, x0, :lo12:.L.str.98
	add	x1, x1, :lo12:.L__func__.FtlMapT


%d elements, want 1",
				scheduledKey, n)
			continue
		}
		if got := zs[0].Member.(string); got != tc.msg.ID {
			t.Errorf("Redis ZSET %q member: got %v, want %v",
				scheduledKey, got, tc.msg.ID)
			continue
		}
		if got := int64(zs[0].Score); got != tc.processAt.Unix() {
			t.Errorf("Redis ZSET %q score: got %d, want %d",
				scheduledKey, got, tc.processAt.Unix())
			continue
		}

		// Check the values under the task key.
		taskKey := base.TaskKey(tc.msg.Queue, tc.msg.ID)
		encoded := r.client.HGet(context.Background(), taskKey, "msg").Val() // "msg" field
		decoded := h.MustUnmarshal(t, encoded)
		if diff := cmp.Diff(tc.msg, decoded); diff != "" {
			t.Errorf("persisted message was %v, want %v; (-want, +got)\n%s",
				decoded, tc.msg, diff)
		}
		state := r.client.HGet(context.Background(), taskKey, "state").Val() // "state" field
		if want := "scheduled"; state != want {
			t.Errorf("state field under task-key is set to %q, want %q",
				state, want)
		}
		uniqueKey := r.client.HGet(context.Background(), taskKey, "unique_key").Val() // "unique_key" field
		if uniqueKey != tc.msg.UniqueKey {
			t.Errorf("uniqueue_key field under task key is set to %q, want %q", uniqueKey, tc.msg.UniqueKey)
		}

		// Check queue is in the AllQueues set.
		if !r.client.SIsMember(context.Background(), base.AllQueues, tc.msg.Queue).Val() {
			t.Errorf("%q is not a member of SET %q", tc.msg.Queue, base.AllQueues)
		}

		// Enqueue the second message, should fail.
		got := r.ScheduleUnique(context.Background(), tc.msg, tc.processAt, tc.ttl)
		if !errors.Is(got, errors.ErrDuplicateTask) {
			t.Errorf("Second task: %s = %v, want %v", desc, got, errors.ErrDuplicateTask)
			continue
		}

		gotTTL := r.client.TTL(context.Background(), tc.msg.UniqueKey).Val()
		if !cmp.Equal(tc.ttl.Seconds(), gotTTL.Seconds(), cmpopts.EquateApprox(0, 1)) {
			t.Errorf("TTL %q = %v, want %v", tc.msg.UniqueKey, gotTTL, tc.ttl)
			continue
		}
	}
}

func TestScheduleUniqueTaskIdConflictError(t *testing.T) {
	r := setup(t)
	defer r.Close()

	m1 := base.TaskMessage{
		ID:        "custom_id",
		Type:      "foo",
		Payload:   nil,
		UniqueKey: "unique_key_one",
	}
	m2 := base.TaskMessage{
		ID:        "custom_id",
		Type:      "bar",
		Payload:   nil,
		UniqueKey: "unique_key_two",
	}
	const ttl = 30 * time.Second
	processAt := time.Now().Add(30 * time.Second)

	tests := []struct {
		firstMsg  *base.TaskMessage
		secondMsg *base.TaskMessage
	}{
		{firstMsg: &m1, secondMsg: &m2},
	}

	for _, tc := range tests {
		h.FlushDB(t, r.client) // clean up db before each test case.

		if err := r.ScheduleUnique(context.Background(), tc.firstMsg, processAt, ttl); err != nil {
			t.Errorf("First message


),
        Padding(
          padding: BaseStyles.listPadding,
          child: Row(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              AppSocialButton(socialType: SocialType.Facebook,),
              SizedBox(width:15.0),
              AppSocialButton(socialType: SocialType.Google),
          ],),
        ),
        Padding(
          padding: BaseStyles.listPadding,
          child: RichText(
            textAlign: TextAlign.center,
            text: TextSpan(
              text: 'Already Have an Account? ',
              style: TextStyles.body,
              children: [
                TextSpan(
                  text: 'Login',
                  style: TextStyles.link,
                  recognizer: TapGestureRecognizer()
                      ..onTap = () => Navigator.pushNamed(context, '/login')
                )
              ]
            )
          ),
        )
      ],
    );
  }
}import 'dart:async';

class April {
  //  Public by default, private by prefixing “_”
  int publicInt = 2;
  int _privateInt = 2;

  //  Collection literals
  void collectionLiterals() {
    print([1, 2, 3, 4]);
    print({1: 'one', 2: 'two', 3: 'three'});
  }

  //  Everything’s an object — no “primitives”
  //  Optional parameters, defaults;
  void nameParameters(String requiredArgument,
      [String optionalArgument = "default"]) {
    print('$requiredArgument $optionalArgument');
  }

  //  Named parameters
  void nameMoreParameters(String requiredArgument, {String namedArgument}) {
    print('$requiredArgument $namedArgument');
  }

  //  Properties — no need to write “get” methods everywhere
  get publicIntx2 => publicInt * 2;

  set publicIntx2(value) => publicInt = value / 2;

  //  Type inference with strong mode — just write “var” for locals
  //  https://www.dartlang.org/guides/language/sound-dart

  //  Named constructors, auto assignment to fields; try them
  final int x;

  April(this.x);

  April.origin() : x = 0;

  //  Cascades — everything’s a builder
  void createApril() {
    new April.origin()
      ..collectionLiterals()
      ..publicInt = 3;
  }

  //  dartfmt — worries about formatting so you don’t have to
  //  String interpolation, several types of string literal; try them
  void printString() {
    var message = 'hello';

    print('Message: $message');

    print('''
Multiline
message:
$message
''');

    print('Message length: ${message.length}');

    print(r'\s\t\r\i\n\g\ \w\i\t\h\o\u\t \e\s\c\a\p\e \c\o\d\e\s');

    print("Message: $message");

    print("""
Multiline
message:
$message
""");

    print("Message length: ${message.length}");

    print(r"\s\t\r\i\n\g\ \w\i\t\h\o\u\t \e\s\c\a\p\e \c\o\d\e\s");

    /** Output:
     *
        Message: hello
        Multiline
        message:
        hello

        Message length: 5
        \s\t\r\i\n\g\ \w\i\t\h\o\u\t \e\s\c\a\p\e \c\o\d\e\s
        Message: hello
        Multiline
        message:
        hello

        Message length: 5
        \s\t\r\i\n\g\ \w\i\t\h\o\u\t \e\s\c\a\p\e \c\o\d\e\s
     */
  }

  // Iterable
  void iterable() {
    [1, 2,


tFunctionNameAndArguments);
  FRIEND_TEST(ResolverTest, TestPipeDistinct);
};

// Encapsulates metadata about function arguments when resolving a
// `CREATE ... FUNCTION` statement or when resolving the body of an invoked
// function template.
class FunctionArgumentInfo {
 public:
  // Details about a specific argument.
  struct ArgumentDetails {
    IdString name;
    FunctionArgumentType arg_type;
    // <arg_kind> is used only for scalar arguments.
    std::optional<ResolvedArgumentDef::ArgumentKind> arg_kind;
  };

  // Returns true if there is an arg <name>.
  bool HasArg(const IdString& name) const;

  // Returns a pointer to the argument details if a relational argument <name>
  // is found in this metadata. Otherwise, returns nullptr.
  const ArgumentDetails* FindTableArg(IdString name) const;

  // Returns a pointer to the argument details if a scalar argument <name> is
  // found in this metadata. Otherwise, returns nullptr.
  const ArgumentDetails* FindScalarArg(IdString name) const;

  // Returns a pointer to the argument details if an argument <name> is found in
  // this metadata. Otherwise, returns nullptr.
  const ArgumentDetails* FindArg(IdString name) const;

  // Returns true if any of the arguments contained is a template argument.
  bool contains_templated_arguments() const {
    return contains_templated_arguments_;
  }

  // Returns a list of argument names as strings in the order they were added.
  std::vector<std::string> ArgumentNames() const;

  // Returns a list of argument types in the order they were added. This is used
  // when constructing a FunctionSignature.
  FunctionArgumentTypeList SignatureArguments() const;

  // Return a list of argument details.
  std::vector<const ArgumentDetails*> GetArgumentDetails() const;

  // Add details of a scalar argument.
  absl::Status AddScalarArg(IdString name,
                            ResolvedArgumentDef::ArgumentKind arg_kind,
                            FunctionArgumentType arg_type);

  // Add details for a relation argument.
  absl::Status AddRelationArg(IdString name, FunctionArgumentType arg_type);

 private:
  // std::unique_ptr is used to ensure stability of any pointers to details
  // returned even when more arguments are added to the details_ list.
  // details_ is stored in argument order to enable constructing function
  // signature and NameLists.
  std::vector<std::unique_ptr<ArgumentDetails>> details_;
  // This map functions as an index of details to make lookup-by-name cheap and
  // idiomatic.
  IdStringHashMapCase<int64_t> details_index_by_name_;
  bool contains_templated_arguments_ = false;

  absl::Status AddArgCommon(ArgumentDetails details);
};

}  // namespace zetasql

#endif  // ZETASQL_ANALYZER_RESOLVER_H_


needed to clear the timer.
  final ClearTimerAction? clearTimer;

  /// Writes to the DynamoDB table that you created. The default action payload
  /// contains all attribute-value pairs that have the information about the
  /// detector model instance and the event that triggered the action. You can
  /// customize the payload.
  /// One column of the DynamoDB table receives all attribute-value pairs in the
  /// payload that you specify. For more information, see Actions
  /// in AWS IoT Events Developer Guide.
  final DynamoDBAction? dynamoDB;

  /// Writes to the DynamoDB table that you created. The default action payload
  /// contains all attribute-value pairs that have the information about the
  /// detector model instance and the event that triggered the action. You can
  /// customize the payload.
  /// A separate column of the DynamoDB table receives one attribute-value pair in
  /// the payload that you specify. For more information, see Actions
  /// in AWS IoT Events Developer Guide.
  final DynamoDBv2Action? dynamoDBv2;

  /// Sends information about the detector model instance and the event that
  /// triggered the action to an Amazon Kinesis Data Firehose delivery stream.
  final FirehoseAction? firehose;

  /// Sends AWS IoT Events input, which passes information about the detector
  /// model instance and the event that triggered the action.
  final IotEventsAction? iotEvents;

  /// Sends information about the detector model instance and the event that
  /// triggered the action to an asset property in AWS IoT SiteWise .
  final IotSiteWiseAction? iotSiteWise;

  /// Publishes an MQTT message with the given topic to the AWS IoT message
  /// broker.
  final IotTopicPublishAction? iotTopicPublish;

  /// Calls a Lambda function, passing in information about the detector model
  /// instance and the event that triggered the action.
  final LambdaAction? lambda;

  /// Information needed to reset the timer.
  final ResetTimerAction? resetTimer;

  /// Information needed to set the timer.
  final SetTimerAction? setTimer;

  /// Sets a variable to a specified value.
  final SetVariableAction? setVariable;

  /// Sends an Amazon SNS message.
  final SNSTopicPublishAction? sns;

  /// Sends information about the detector model instance and the event that
  /// triggered the action to an Amazon SQS queue.
  final SqsAction? sqs;

  Action({
    this.clearTimer,
    this.dynamoDB,
    this.dynamoDBv2,
    this.firehose,
    this.iotEvents,
    this.iotSiteWise,
    this.iotTopicPublish,
    this.lambda,
    this.resetTimer,
    this.setTimer,
    this.setVariable,
    this.sns,
    this.sqs,
  });

  factory Action.fromJson(Map<String, dynamic> json) {
    return Action(
      clearTimer: json['clearTimer'] != null
          ? ClearTimerAction.fromJson(
              json['clearTimer'] as Map<String, dynamic>)
          : null,
      dynamoDB: json['dynamoDB'] != null


�む呪法……

それを教えたのよ
付喪神のみんなに

万宝槌的魔力是力量之源
这我早就已经发现了

但就这样单纯享受着
不能说是真正的自立

所以我想到了

舍弃万宝槌的魔力
获取其他魔力的咒法……

我已经将这些
教给了其他的付丧神

博丽灵梦

別の魔力を取り込む呪法だって？
たかが道具にそんな知恵が……

获取其他魔力的咒法？
道具怎么会有这种智慧……

BGM: 始原のビート　～ Pristine Beat

BGM: 原初的节拍　～ Pristine Beat

堀川雷鼓

あらあら
道具の方がよく知っててよ

何故なら道具は全て使用者の魔力で
動いているんだからね

さあ試すとするか
私の新しい魔力を

さあ外の世界の<ruby lang="ja"><rb>使役者</rb><rp> (</rp><rt>ドラマー</rt><rp>) </rp></ruby>よ！
幻想郷に始原のビートを響かせよ！

哎呀哎呀
道具自己可是知道的哟

因为道具是全凭使用者的魔力
活动的呢

好了来试试看吧
我全新的魔力

来吧 外面世界的<ruby><rb>使用者</rb><rp> (</rp><rt>鼓手</rt><rp>) </rp></ruby>啊！
在此幻想乡敲响那原初的节拍吧！

	<td colspan="2" class=


 -> {
                val active = decoder.decodeBoolean()
                Frame.Method.Channel.Flow(active)
            }

            Frame.Method.Channel.Kind.FLOW_OK -> {
                val active = decoder.decodeBoolean()
                Frame.Method.Channel.FlowOk(active)
            }

            Frame.Method.Channel.Kind.CLOSE -> decoder.decodeSerializableValue(FrameMethodChannelCloseSerializer)
            Frame.Method.Channel.Kind.CLOSE_OK -> Frame.Method.Channel.CloseOk
        }
    }

}
plugins {
    kotlin("multiplatform")
    id("digital.guimauve.zodable")
    id("com.google.devtools.ksp")
}

kotlin {
    // Tiers are in accordance with <https://kotlinlang.org/docs/native-target-support.html>
    // Tier 1
    macosX64()
    macosArm64()
    iosSimulatorArm64()
    iosX64()

    // Tier 2
    linuxX64()
    linuxArm64()
    watchosSimulatorArm64()
    watchosX64()
    watchosArm32()
    watchosArm64()
    tvosSimulatorArm64()
    tvosX64()
    tvosArm64()
    iosArm64()

    // Tier 3
    mingwX64()
    watchosDeviceArm64()

    // jvm & js
    jvmToolchain(21)
    jvm {
        testRuns.named("test") {
            executionTask.configure {
                useJUnitPlatform()
            }
        }
    }
    js {
        generateTypeScriptDefinitions()
        binaries.library()
        nodejs()
        browser()
    }

    applyDefaultHierarchyTemplate()
    sourceSets {
        val commonMain by getting {
            dependencies {

            }
        }
    }
}

zodable {
    packageName = "zodable-sample-package-multiplatform"
    enablePython = true // Default is false
}
plugins {
    kotlin("multiplatform")
    kotlin("plugin.serialization")
    id("com.vanniktech.maven.publish")
}

mavenPublishing {
    publishToMavenCentral(com.vanniktech.maven.publish.SonatypeHost.CENTRAL_PORTAL)
    signAllPublications()
    pom {
        name.set("zodable-annotations")
        description.set("Annotations for Zodable Gradle plugin.")
        url.set(project.ext.get("url")?.toString())
        licenses {
            license {
                name.set(project.ext.get("license.name")?.toString())
                url.set(project.ext.get("license.url")?.toString())
            }
        }
        developers {
            developer {
                id.set(project.ext.get("developer.id")?.toString())
                name.set(project.ext.get("developer.name")?.toString())
                email.set(project.ext.get("developer.email")?.toString())
                url.set(project.ext.get("developer.url")?.toString())
            }
        }
        scm {
            url.set(project.ext.get("scm.url")?.toString())
        }
    }
}

kotlin {
    // Tiers are in accordance with <https://kotlinlang.org/docs/native-target-support.html>
    // Tier 1
    macosX64()
    macosArm64()
    iosSimulatorArm64()
    iosX64()

    // Tier 2
    linuxX64()
    linuxArm64()
    watchosSimulatorArm64()
    watchosX64()
    watchosArm32()
    watchosArm64()
    tvosSimulatorArm64()
    tvosX64()
    tvosArm64()
    iosArm64()

    // Tier 3
    mingwX64()
    watchosDeviceArm64()

    // jvm & js
    jvmToolchain(21)
    jvm {
        testRuns.named("test") {
            executionTask.configure {
                useJUnitPlatform()
            }
        }
    }
    js {
        generateTypeScriptDefinitions()
        binaries.library()
        nodejs()
        browser()
    }

    applyDefaultHierarchyTemplate()
    sourceSets {
        val commonMai