ild{margin-bottom:0}.ui.breadcrumb .divider{display:inline-block;opacity:.7;margin:0 .21428571rem 0;font-size:.92857143em;color:rgba(0,0,0,.4);vertical-align:baseline}.ui.breadcrumb a{color:#0e91f5}.ui.breadcrumb a:hover{color:#007ddc}.ui.breadcrumb .icon.divider{font-size:.85714286em;vertical-align:baseline}.ui.breadcrumb a.section{cursor:pointer}.ui.breadcrumb .section{display:inline-block;margin:0;padding:0}.ui.breadcrumb.segment{display:inline-block;padding:.78571429em 1em}.ui.inverted.breadcrumb{color:#dcddde}.ui.inverted.breadcrumb>.active.section{color:#fff}.ui.inverted.breadcrumb>.divider{color:rgba(255,255,255,.7)}.ui.breadcrumb .active.section{font-weight:700}.ui.breadcrumb{font-size:1rem}.ui.mini.breadcrumb{font-size:.78571429rem}.ui.tiny.breadcrumb{font-size:.85714286rem}.ui.small.breadcrumb{font-size:.92857143rem}.ui.large.breadcrumb{font-size:1.14285714rem}.ui.big.breadcrumb{font-size:1.28571429rem}.ui.huge.breadcrumb{font-size:1.42857143rem}.ui.massive.breadcrumb{font-size:1.71428571rem}.ui.form{position:relative;max-width:100%}.ui.form>p{margin:1em 0}.ui.form .field{clear:both;margin:0 0 1em}.ui.form .field:last-child,.ui.form .fields .fields,.ui.form .fields:last-child .field{margin-bottom:0}.ui.form .fields .field{clear:both;margin:0}.ui.form .field>label{display:block;margin:0 0 .28571429rem 0;color:rgba(0,0,0,.87);font-size:.92857143em;font-weight:700;text-transform:none}.ui.form input:not([type]),.ui.form input[type=date],.ui.form input[type=datetime-local],.ui.form input[type=email],.ui.form input[type=file],.ui.form input[type=number],.ui.form input[type=password],.ui.form input[type=search],.ui.form input[type=tel],.ui.form input[type=text],.ui.form input[type=time],.ui.form input[type=url],.ui.form textarea{width:100%;vertical-align:top}.ui.form ::-webkit-datetime-edit,.ui.form ::-webkit-inner-spin-button{height:1.21428571em}.ui.form input:not([type]),.ui.form input[type=date],.ui.form input[type=datetime-local],.ui.form input[type=email],.ui.form input[type=file],.ui.form input[type=number],.ui.form input[type=password],.ui.form input[type=search],.ui.form input[type=tel],.ui.form input[type=text],.ui.form input[type=time],.ui.form input[type=url]{font-family:Poppins,'Helvetica Neue',Arial,Helvetica,sans-serif;margin:0;outline:0;-webkit-appearance


 */
@Slf4j
public abstract class AbstractArchiveTaskScheduler<T extends JobHistoricalDataArchiveTask> implements SmartLifecycle {

    protected final ArchiveTaskService archiveTaskService;
    protected final ExecutorService archiveTaskStopExecutor;
    protected final ArchiveErrorTaskCounter archiveErrorTaskCounter;
    protected final Tracer tracer;

    private final Map<String, T> scheduledTasks = new ConcurrentHashMap<>();
    private final Object lifecycleMonitor = new Object();
    /**
     * 调度器线程挂起 object monitor
     */
    private final Object schedulerHangMonitor = new Object();

    /**
     * 作业执行日志归档任务调度组件是否处于活动状态
     */
    private volatile boolean active;
    /**
     * 是否正在进行任务调度中
     */
    private volatile boolean scheduling = false;

    public AbstractArchiveTaskScheduler(ArchiveTaskService archiveTaskService,
                                        ExecutorService archiveTaskStopExecutor,
                                        ArchiveErrorTaskCounter archiveErrorTaskCounter,
                                        Tracer tracer) {
        this.archiveTaskService = archiveTaskService;
        this.archiveTaskStopExecutor = archiveTaskStopExecutor;
        this.archiveErrorTaskCounter = archiveErrorTaskCounter;
        this.tracer = tracer;
    }

    /**
     * Spring Bean 生命周期管理-启动
     */
    @Override
    public void start() {
        if (isRunning()) {
            return;
        }
        synchronized (lifecycleMonitor) {
            this.active = true;
        }
    }

    /**
     * Spring Bean 生命周期管理-停止
     */
    @Override
    public void stop() {
        log.info("JobInstanceArchiveTaskScheduler stopping.");
        synchronized (this.lifecycleMonitor) {
            if (!isActive()) {
                log.info("Shutdown ignored - JobInstanceArchiveTaskScheduler is not active already");
                return;
            }
            this.active = false;
        }
        synchronized (schedulerHangMonitor) {
            schedulerHangMonitor.notify();
            log.info("Try notify scheduler when stopping");
        }
        stopTasksGraceful();
        log.info("JobInstanceArchiveTaskScheduler stop successfully!");
    }

    @Override
    public boolean isRunning() {
        synchronized (this.lifecycleMonitor) {
            return (this.active);
        }
    }

    /**
     * 判断是否处于激活状态
     */
    private boolean isActive() {
        synchronized (this.lifecycleMonitor) {
            return this.active;
        }
    }

    /**
     * 判断是否正在进行任务调度中
     */
    private boolean isScheduling() {
        synchronized (this.lifecycleMonitor) {
            return this.scheduling;
        }
    }

    public void schedule() {
        try {
            if (isScheduling()) {
                log.info("{} is working", getRuntimeClassName());
                return;
            }
            this.scheduling = true;

            while (true) {
                if (!isActive()) {
                    log.info("{} is not active, skip", getRuntimeClassName());
                    return;
                }
                StopWatch watch = new StopWatch("archive-task-schedule-" + getRuntimeClassName());
                boolean locked = false;
                try {
                    // 1.获取归档任务调度锁
                    locked = acquireScheduleLock();
                    if (!locked) {
                        log.info("{} get lock fail, wait 1s", getRuntimeClassName());
                        ThreadUtils.sleep(1000L);
                        continue;
                    }

                    // 2.获取待调度的任务信息(按照DB节点计数)，如果所有任务都已经被调度完成，退出本次任务调度
                    watch.start("countScheduleTasks");
                    Map<String, Integer> scheduleTasksGroupByDb = countScheduleTasksGroupByDb();
                    if (scheduleTasksGroupByDb.isEmpty()) {
                        log.info("{} no archive task need scheduling! Exit",
                            getRuntimeClassName());
                        return;
                    }


ndian, byte(1))
			}

			if err != nil {
				return err
			}
		}

	}

	return nil
}
package drum

import (
	"fmt"
	"path"
	"testing"
)

func TestDecodeFile(t *testing.T) {
	tData := []struct {
		path   string
		output string
	}{
		{"pattern_1.splice",
			`Saved with HW Version: 0.808-alpha
Tempo: 120
(0) kick	|x---|x---|x---|x---|
(1) snare	|----|x---|----|x---|
(2) clap	|----|x-x-|----|----|
(3) hh-open	|--x-|--x-|x-x-|--x-|
(4) hh-close	|x---|x---|----|x--x|
(5) cowbell	|----|----|--x-|----|
`,
		},
		{"pattern_2.splice",
			`Saved with HW Version: 0.808-alpha
Tempo: 98.4
(0) kick	|x---|----|x---|----|
(1) snare	|----|x---|----|x---|
(3) hh-open	|--x-|--x-|x-x-|--x-|
(5) cowbell	|----|----|x---|----|
`,
		},
		{"pattern_3.splice",
			`Saved with HW Version: 0.808-alpha
Tempo: 118
(40) kick	|x---|----|x---|----|
(1) clap	|----|x---|----|x---|
(3) hh-open	|--x-|--x-|x-x-|--x-|
(5) low-tom	|----|---x|----|----|
(12) mid-tom	|----|----|x---|----|
(9) hi-tom	|----|----|-x--|----|
`,
		},
		{"pattern_4.splice",
			`Saved with HW Version: 0.909
Tempo: 240
(0) SubKick	|----|----|----|----|
(1) Kick	|x---|----|x---|----|
(99) Maracas	|x-x-|x-x-|x-x-|x-x-|
(255) Low Conga	|----|x---|----|x---|
`,
		},
		{"pattern_5.splice",
			`Saved with HW Version: 0.708-alpha
Tempo: 999
(1) Kick	|x---|----|x---|----|
(2) HiHat	|x-x-|x-x-|x-x-|x-x-|
`,
		},
	}

	for _, exp := range tData {
		decoded, err := DecodeFile(path.Join("fixtures", exp.path))
		if err != nil {
			t.Fatalf("something went wrong decoding %s - %v", exp.path, err)
		}
		if fmt.Sprint(decoded) != exp.output {
			t.Logf("decoded:\n%#v\n", fmt.Sprint(decoded))
			t.Logf("expected:\n%#v\n", exp.output)
			t.Fatalf("%s wasn't decoded as expect.\nGot:\n%s\nExpected:\n%s",
				exp.path, decoded, exp.output)
		}
	}
}
package drum

import (
	"bytes"
	"encoding/hex"
	"io/ioutil"
	"path"
	"testing"
)

func TestWriteTrackID(t *testing.T) {
	expected := []byte{0x28}
	var buf bytes.Buffer
	track := Track{ID: 40}

	track.writeID(&buf)
	if !bytes.Equal(buf.Bytes(), expected) {
		t.Error("Track ID incorrect")
	}
}

func TestTrackWriteName(t *testing.T) {
	expected := []byte{0x00, 0x00, 0x00, 0x04, 0x6B, 0x69, 0x63, 0x6B}
	var buf bytes.Buffer
	track := Track{Name: "kick"}

	track.writeName(&buf)
	if !bytes.Equal(buf.Bytes(), expected) {
		t.Error("Track name incorrect")


 RULE_ID )
            // D:\\git\\dslforge\\examples\\org.eclipse.sphinx.examples.xtext.hummingbird.web\\src-gen\\org\\eclipse\\sphinx\\examples\\xtext\\hummingbird\\web\\contentassist\\antlr\\internal\\InternalHummingbird.g:6224:1: RULE_ID
            {
             before(grammarAccess.getPlatformAccess().getNameIDTerminalRuleCall_1_0());
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__Platform__NameAssignment_112261);
             after(grammarAccess.getPlatformAccess().getNameIDTerminalRuleCall_1_0());

            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Platform__NameAssignment_1"

    // $ANTLR start "rule__Platform__DescriptionAssignment_3_1"
    // D:\\git\\dslforge\\examples\\org.eclipse.sphinx.examples.xtext.hummingbird.web\\src-gen\\org\\eclipse\\sphinx\\examples\\xtext\\hummingbird\\web\\contentassist\\antlr\\internal\\InternalHummingbird.g:6233:1: rule__Platform__DescriptionAssignment_3_1 : ( ruleDescription ) ;
    public final void rule__Platform__DescriptionAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();

        try {
            // D:\\git\\dslforge\\examples\\org.eclipse.sphinx.examples.xtext.hummingbird.web\\src-gen\\org\\eclipse\\sphinx\\examples\\xtext\\hummingbird\\web\\contentassist\\antlr\\internal\\InternalHummingbird.g:6237:1: ( ( ruleDescription ) )
            // D:\\git\\dslforge\\examples\\org.eclipse.sphinx.examples.xtext.hummingbird.web\\src-gen\\org\\eclipse\\sphinx\\examples\\xtext\\hummingbird\\web\\contentassist\\antlr\\internal\\InternalHummingbird.g:6238:1: ( ruleDescription )
            {
            // D:\\git\\dslforge\\examples\\org.eclipse.sphinx.examples.xtext.hummingbird.web\\src-gen\\org\\eclipse\\sphinx\\examples\\xtext\\hummingbird\\web\\contentassist\\antlr\\internal\\InternalHummingbird.g:6238:1: ( ruleDescription )
            // D:\\git\\dslforge\\examples\\org.eclipse.sphinx.examples.xtext.hummingbird.web\\src-gen\\org\\eclipse\\sphinx\\examples\\xtext\\hummingbird\\web\\contentassist\\antlr\\internal\\InternalHummingbird.g:6239:1: ruleDescription
            {
             before(grammarAccess.getPlatformAccess().getDescriptionDescriptionParserRuleCall_3_1_0());
            pushFollow(FOLLOW_ruleDescription_in_rule__Platform__DescriptionAssignment_3_112292);
            ruleDescription();

            state._fsp--;

             after(grammarAccess.getPlatformAccess().getDescriptionDescriptionParserRuleCall_3_1_0());

            }

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__Platform__DescriptionAssignment_3_1"

    // $ANTLR start "rule__Platform__ComponentTypesAssignment_6"
    // D:\\git\\dslforge\\examples\\org.eclipse.sphinx.examples.xtext.hummingbird.web\\src-gen\\org\\eclipse\\sphinx\\examples\\xtext\\hummingbird\\web\\contentassist\\antlr\\internal\\InternalHummingbird.g:6248:1: r


iteObjectType Type { get; set; }

        /// <summary>Gets or sets the favorite notes.</summary>
        string Notes { get; set; }

        /// <summary>
        /// Gets or sets the movie, if <see cref="Type" /> is <see cref="TraktFavoriteObjectType.Movie" />.
        /// See also <seealso cref="ITraktShow" />.
        /// <para>Nullable</para>
        /// </summary>
        ITraktMovie Movie { get; set; }

        /// <summary>
        /// Gets or sets the show, if <see cref="Type" /> is <see cref="TraktFavoriteObjectType.Show" />.
        /// See also <seealso cref="ITraktShow" />.
        /// <para>Nullable</para>
        /// </summary>
        ITraktShow Show { get; set; }
    }
}


eAhXIJoC+h+o3w5+G3hz4S+FLbw34U07+y9Ftnd4rbz5JtrOxZjukZmOSSeTQSdRgUAMa3jaZJSimRAVVyvzAHGQD74H5CgB+BQAYFADEt445HkVFEj43MBy2OmT3oAfgUAf/2Q==" width=24>
dr4g0n <time datetime=2024-08-23T08:12:38.000Z title="2024-08-23, 11:12">23 авг в 11:12</time>

<button class="tm-comment__button tm-comment__button_with-icon" type=button><svg class="tm-svg-img tm-comment__icon" height=16 width=16><symbol id=small-arrow viewBox="0 0 24 24">
 <path d=M13.539,9.879L17.782,14.121L16.368,15.536L12.125,11.293L7.882,15.536L6.468,14.121L10.711,9.879L12.125,8.464L13.539,9.879Z></path>
 </symbol><title>Показать предыдущий комментарий</title><use xlink:href=#small-arrow></use></svg></button>

За Matrix плюс. И к слову о блокировках мессенджеров, Signal тоже недавно блокировали, но у него есть опция "Обход цензуры", находится в Расширенных настройках Конфиденциальности.

<button class=tm-votes-lever__button data-test-id=votes-lever-upvote-button title=Нравится type=button><svg class="tm-svg-img tm-votes-lever__icon" height=24 width=24><symbol id=counter-vote viewBox="0 0 24 24">
 <path fill-rule=evenodd clip-rule=evenodd d="M10 20h4V10h3l-5-6.5L7 10h3v10Z"></


10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"],coins:[512,512,[]


 DrvScan, &DrvRecalc, 8,
	224, 256, 3, 4
};

// Space Attack (upright set 2)

static struct BurnRomInfo sspaceat2RomDesc[] = {
	{ "81.u48",				0x0400, 0x3e4b29f6, 1 | BRF_PRG | BRF_ESS }, //  0 Z80 Code
	{ "58.u47",				0x0400, 0x176adb80, 1 | BRF_PRG | BRF_ESS }, //  1
	{ "59.u46",				0x0400, 0xb2400d05, 1 | BRF_PRG | BRF_ESS }, //  2
	{ "150.u45",			0x0400, 0xcf9bfa65, 1 | BRF_PRG | BRF_ESS }, //  3
	{ "151.u44",			0x0400, 0x064530f1, 1 | BRF_PRG | BRF_ESS }, //  4
	{ "152.u43",			0x0400, 0xc65c30fe, 1 | BRF_PRG | BRF_ESS }, //  5
	{ "153.u42",			0x0400, 0xea70c7f6, 1 | BRF_PRG | BRF_ESS }, //  6
	{ "156a.u41",			0x0400, 0x9029d2ce, 1 | BRF_PRG | BRF_ESS }, //  7

	{ "316-0138.u44",		0x0020, 0x67104ea9, 1 | BRF_GRA },           //  8 Color data

	{ "316-0043.u65",		0x0020, 0xe60a7960, 0 | BRF_OPT },           //  9 Unused PROMs
	{ "316-0042.u66",		0x0020, 0xa1506b9d, 0 | BRF_OPT },           // 10
};

STD_ROM_PICK(sspaceat2)
STD_ROM_FN(sspaceat2)

struct BurnDriverD BurnDrvSspaceat2 = {
	"sspaceat2", "sspaceat", NULL, NULL, "1979",
	"Space Attack (upright set 2)\0", "No sound", "Sega", "Vic Dual",
	NULL, NULL, NULL, NULL,
	BDF_GAME_WORKING | BDF_CLONE | BDF_ORIENTATION_VERTICAL, 2, HARDWARE_MISC_PRE90S, GBF_VERSHOOT, 0,
	NULL, sspaceat2RomInfo, sspaceat2RomName, NULL, NULL, NULL, NULL, SspaceatInputInfo, SspaceatDIPInfo,
	SspaceatInit, DrvExit, DrvFrame, DrvDraw, DrvScan, &DrvRecalc, 8,
	224, 256, 3, 4
};

// Space Attack (upright set 3)

static struct BurnRomInfo sspaceat3RomDesc[] = {
	{ "epr-115.u48",		0x0400, 0x9bc36d80, 1 | BRF_PRG | BRF_ESS }, //  0 Z80 Code
	{ "epr-116.u47",		0x0400, 0x2c2750b3, 1 | BRF_PRG | BRF_ESS }, //  1
	{ "epr-117.u46",		0x0400, 0xfa7c2cc0, 1 | BRF_PRG | BRF_ESS }, //  2
	{ "epr-118.u45",		0x0400, 0x273884ae, 1 | BRF_PRG | BRF_ESS }, //  3
	{ "epr-119.u44",		0x0400, 0x1b53c6de, 1 | BRF_PRG | BRF_ESS }, //  4
	{ "epr-120.u43",		0x0400, 0x60add585, 1 | BRF_PRG | BRF_ESS }, //  5
	{ "epr-121.u42",		0x0400, 0x0979f72b, 1 | BRF


.TootInstance
import jp.juggler.subwaytooter.api.entity.TootMessageHolder
import jp.juggler.subwaytooter.api.entity.TootNotification
import jp.juggler.subwaytooter.api.entity.TootStatus
import jp.juggler.subwaytooter.api.finder.mastodonFollowSuggestion2ListParser
import jp.juggler.subwaytooter.api.finder.misskey11FollowersParser
import jp.juggler.subwaytooter.api.finder.misskey11FollowingParser
import jp.juggler.subwaytooter.api.finder.misskeyArrayFinderUsers
import jp.juggler.subwaytooter.api.finder.misskeyCustomParserBlocks
import jp.juggler.subwaytooter.api.finder.misskeyCustomParserFavorites
import jp.juggler.subwaytooter.api.finder.misskeyCustomParserFollowRequest
import jp.juggler.subwaytooter.api.finder.misskeyCustomParserMutes
import jp.juggler.subwaytooter.search.MspHelper.loadingMSP
import jp.juggler.subwaytooter.search.MspHelper.refreshMSP
import jp.juggler.subwaytooter.search.NotestockHelper.loadingNotestock
import jp.juggler.subwaytooter.search.NotestockHelper.refreshNotestock
import jp.juggler.subwaytooter.search.TootsearchHelper.loadingTootsearch
import jp.juggler.subwaytooter.search.TootsearchHelper.refreshTootsearch
import jp.juggler.subwaytooter.streaming.StreamSpec
import jp.juggler.subwaytooter.table.daoAcctColor
import jp.juggler.util.data.JsonArray
import jp.juggler.util.data.JsonObject
import jp.juggler.util.data.appendIf
import jp.juggler.util.data.ellipsizeDot3
import jp.juggler.util.data.jsonArrayOf
import jp.juggler.util.data.jsonObjectOf
import jp.juggler.util.data.notEmpty
import jp.juggler.util.data.toJsonArray
import jp.juggler.util.log.LogCategory
import java.util.Locale
import kotlin.math.max
import kotlin.math.min

/*
    カラム種別ごとの処理
    - Loading : 初回ロード
    - Refresh : (始端/終端の)差分更新
    - Gap : ギャップ部分の読み込み

    loading,refresh,gap はそれぞれ this の種類が異なるので注意
    同じ関数を呼び出してるように見えても実際には異なるクラスの異なる関数を呼び出している場合がある
 */

private val unsupportedRefresh: suspend ColumnTask_Refresh.(client: TootApiClient) -> TootApiResult? =
    { TootApiResult("edge reading not supported.") }

private val unsupportedGap: suspend ColumnTask_Gap.(client: TootApiClient) -> TootApiResult? =
    { TootApiResult("gap reading not supported.") }

private val unusedIconId: (Acct) -> Int =
    { R.drawable.ic_question }

private val unusedName: (context: Context) -> String =
    { "?" }

private val unusedName2: Column.(long: Boolean) -> String? =
    { null }

private val gapDirectionNone: Column.(head: Boolean) -> Boolean = { false }

private val gapDirectionBoth: Column.(head: Boolean) -> Boolean = { true }

private val gapDirectionHead: Column.(head: Boolean) -> Boolean = { it }

// Pagination in some Mastodon APIs has no relation between the content ID and the pagination ID,
// so the app cannot filter the data using the content ID.
// (max_id..since_id) API request is worked,
// but (max_id..min_id) API is not worked on v3.2.0
// related: https://github.com/tootsuite/mastodon/pull/14776
private val gapDirectionMastodonWorkaround: Column.(head: Boolean) -> Boolean =
    { head ->
        when {
            isMisskey -> true
            isMastodon -> head
            else -> false
        }
    }

private val


list item

list item

Ordered List

list item

list item

list item

Ordered List

list item

list item

list item

Ordered List

list item

list item

list item

Ordered List

list item

list item

list item


other goods and services and long-lived assets.

As of January 26, 2025, we had outstanding inventory purchase and long-term supply and capacity obligations totaling $<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="-8" name="nvda:PurchaseObligationInventoryPurchaseAndSupplyAgreements" scale="9" id="f-1010">30.8</ix:nonFraction> billion, an increase from the prior year led by commitments, capacity and components for new product introductions, including our new Blackwell architecture. We enter into agreements with contract manufacturers that allow them to procure inventory based upon our defined criteria, and in certain instances, these agreements are cancellable, able to be rescheduled, or adjustable for our business needs prior to placing firm orders. Though, changes to these agreements may result in additional costs. Other non-inventory purchase obligations were $<ix:nonFraction unitRef="usd" contextRef="c-13" decimals="-8" name="us-gaap:OtherCommitment" scale="9" id="f-1011">14.3</ix:nonFraction> billion, including $<ix:nonFraction unitRef="usd" contextRef="c-187" decimals="-8" name="us-gaap:OtherCommitment" scale="9" id="f-1012">10.9</ix:nonFraction> billion of multi-year cloud service agreements. We expect our cloud service agreements to primarily be used to support our research and development efforts, as well as our DGX Cloud offerings.
</ix:continuation>

72

Table of Contents

NVIDIA Corporation and Subsidiaries

Notes to the Consolidated Financial Statements

(Continued)

<ix:continuation id="f-1009-2" continuedAt="f-1009-3"><ix:nonNumeric contextRef="c-1" name="srt:ContractualObligationFiscalYearMaturityS


 [Measures].[Sales Amount] - [Measures].[Sales Return Amount] SELECT NON EMPTY { [Measures].[Net QTY], [Measures].[Net Sales] } ON COLUMNS, NON EMPTY { ([Channel].[Channel Name].[Channel Name].ALLMEMBERS * [Product].[Product Category Name].[Product Category Name].ALLMEMBERS ) } DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM ( SELECT ( { [Date].[Calendar Year].&[2009] } ) ON COLUMNS FROM ( SELECT ( STRTOSET(\@ProductProductCategoryName, CONSTRAINED) ) ON COLUMNS FROM ( SELECT ( { [Sales Territory].[Sales Territory Group].&[North America] } ) ON COLUMNS FROM ( SELECT ( { [Channel].[Channel Name].&[2], [Channel].[Channel Name].&[4] } ) ON COLUMNS FROM [Sales])))) WHERE ( [Sales Territory].[Sales Territory Group].&[North America], [Date].[Calendar Year].&[2009] ) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGSQuery text: Code.
    ```

3.  In the Measure Group pane, expand Channel, and then drag Channel Name to the **Hierarchy** column in the filter pane.

    The dimension name, Channel, is automatically added to the **Dimension** column. Don't change the **Dimension** or **Operator** columns.

4.  To open the **Filter Expression** list, select the down arrow in the **Filter Expression** column.

5.  In the filter expression list, expand **All Channel**, select **Online** and **Reseller**, and then choose **OK**.

    The query now includes a filter to include only these channels: Online and Reseller.

6.  Expand the Sales Territory dimension, and then drag Sales Territory Group to the **Hierarchy** column, below **Channel Name**.

7.  Open the **Filter Expression** list, expand **All Sales Territory**, select **North America**, and then choose **OK**.

    The query now has a filter to include only sales in North America.

8.  In the Measure Group pane, expand Date, and drag Calendar Year to the **Hierarchy** column in the filter pane.

    The dimension name, Date, is automatically added to the **Dimension** column. Don't change the **Dimension** or **Operator** columns.

9. To open the **Filter Expression** list, select the down arrow in the **Filter Expression** column.

10. In the filter expression list, expand **All Date**, select **Year 2009**, and then choose **OK**.

    The query now includes a filter to include only the calendar year 2009.

### Create the parameter

1.  Expand the Product dimension, and then drag the Product Category Name member to the **Hierarchy** column below **Sales Territory Group**.

2.  Open the **Filter Expression** list, select **All Products**, and then choose **OK**.

3.  Select the **Parameter** checkbox. The query now includes the parameter ProductProductCategoryName.

### Create calculated members

1.  Place the cursor inside the Calculated Members pane, right-click, and then select **New Calculated Member**.

2.  In the Metadata pane, expand **Measures** and then expand Sales.

3.  Drag the Sales Quantity measure to the **Expression** box, enter the subtraction character (-), and then drag the Sales Return Quantity measure to the **Expression** box; place it after the subtraction character.

    The following code shows the expression:

    ```
    [Measures].[Sales Quantity] - [Measures].[Sales Return Quantity]
    ```

4.  In the Name box, enter **Net QTY**, and then select **OK**.

    The Calculated Members pane lists the **Net QTY** calculated member.

5.  Right-click **Calculated Members**, and then select **Ne


rameter< A3, 3 > 	P3

typedef Parameters::template

Parameter< A4, 4 > 	P4

typedef Return_(* 	Signature )(A0, A1, A2, A3, A4)

typedef Return_(* 	Function )(typename P0::Type, typename P1::Type, typename P2::Type, typename P3::Type, typename P4::Type)

Public Member Functions

 	ApplyFunction (Function function)

template<typename Passed >

Return 	apply


t the planet?
  } else if (collision(planet)) {
    transferEnergy(false);
  // Collided with  neither.
  } else {
    // If the player has energy but isn't full, dump it all.  This avoids the "cheat" where they can full the ship
    // only partially but then go get full credit for the delivery.
    if (player.energy > 0 && player.energy < 1) {
      player.energy = 0;
    }
  }

  // Did they collide with any enemy?
  for (int i = 0; i < 3; i++) {
    if (collision(fish[i]) || collision(robots[i]) || collision(aliens[i]) || collision(asteroids[i])) {
      audioCache.play("explosion.mp3");
      player.visible = false;
      GameObject explosion = GameObject(screenWidth, screenHeight, "explosion", 50, 50, 5, 4, () {
        resetGame(false);
      });
      explosion.x = player.x;
      explosion.y = player.y;
      explosions.add(explosion);
      score = score - 50;
      if (score < 0) {
        score = 0;
      }
    }
  }

  // Update state so all the work we did actually matters!
  state.setState(() {});

} /* End mainGameLoop(). */

/// Check for collision between the player and a specified game object.
///
/// @param inObject The GameObject to hit test against the player.
bool collision(GameObject inObject) {

  // Abort if the player isn't visible (i.e., when they're 'splodin).
  if (!player.visible || !inObject.visible) {
    return false;
  }

  // Define the bounding boxes.
  num left1 = player.x;
  num right1 = left1 + player.width;
  num top1 = player.y;
  num bottom1 = top1 + player.height;
  num left2 = inObject.x;
  num right2 = left2 + inObject.width;
  num top2 = inObject.y;
  num bottom2 = top2 + inObject.height;

  // Bounding box checks.  It isn't perfect collision detection, but it's good enough for government work.
  if (bottom1 < top2) {
    return false;
  }
  if (top1 > bottom2) {
    return false;
  }
  if (right1 < left2) {
    return false;
  }
  return left1 <= right2;

} /* End collision(). */

/// Randomly position a game object and test if it collides with the player.
///
/// @param  inObject The GameObject to position.
/// @return          True if the player and this object collided (meaning the object
///                  needs to be repositioned), false if not.
void randomlyPositionObject(GameObject inObject) {

  // Choose a new location, avoiding the edges of the screen.
  inObject.x = (random.nextInt(screenWidth.toInt() - inObject.width)).toDouble();

  // See if this object hits the player.  If it did then try again.
  if (collision(inObject)) {
    randomlyPositionObject(inObject);
  }

} /* End randomlyPosition(). */

/// Transfers that sweet, sweet alien energy either from the crystal to the ship or from the ship to the planet.
///
/// @param inTouchingCrystal True if the player is touching the crystal, false if the planet.
void transferEnergy(bool inTouchingCrystal) {

  if (inTouchingCrystal && player.energy < 1) {

    // Transferring energy from crystal to ship.
    if (player.energy == 0) {
      audioCache.play("fill.mp3");
    }
    player.energy = player.energy + .01;
    // Set value on the bar.
    if (player.energy >= 1) {
      player.energy = 1;
      // Filled up, randomly


class Graph:
    def __init__(self, gdict=None):
        if gdict is None: gdict = {}
        self.gdict = gdict

    def addVertex(self, vertex):
        if vertex not in self.gdict.keys():
            self.gdict[vertex] = []
            return True
        return False

    def addEdge(self, vertex1, vertex2):
        if vertex1 in self.gdict.keys() and vertex2 in self.gdict.keys():
            self.gdict[vertex1].append(vertex2)
            self.gdict[vertex2].append(vertex1)
            return True
        return False

    def removeEdge(self, vertex1, vertex2):
        if vertex1 in self.gdict.keys() and vertex2 in self.gdict.keys():
            self.gdict[vertex1].remove(vertex2)
            self.gdict[vertex2].remove(vertex1)
            return True
        return False

    def removeVertex(self, vertex):
        if vertex in self.gdict.keys():
            for i in self.gdict[vertex]:
                self.gdict[i].removeEdge(vertex, i)
            self.gdict.pop(vertex)

    def bfs(self, vertex): # time complex O(n)
        visited = set()
        visited.add(vertex)
        queue = [vertex]

        while queue:
            currVertex = queue.pop(0)
            print(currVertex)
            for i in self.gdict[vertex]:
                if i not in visited:
                    queue.append(i)
                    visited.add(i)

    def dfs(self, vertex): # time complex O(n)
        visited = set()
        stack = [vertex]

        while stack:
            currVertex = stack.pop()
            if currVertex not in visited:
                print(currVertex)
                visited.add(vertex)
            for i in self.gdict[vertex]:
                if i not in visited:
                    stack.append(i)


 sleep queue
    queue.enqueue();

    lock.unlock();

    scheduler::reschedule();
}

bool condition_variable::wait_for(size_t ms) {
    if (!ms) {
        return false;
    }

    lock.lock();

    //Enqueue the process in the sleep queue
    queue.enqueue_timeout(ms);

    lock.unlock();

    scheduler::reschedule();

    // At this point we need the lock again to check the queue
    lock.lock();

    // If the queue still contains our pid, it means a wake up
    // from timeout

    if(queue.waiting()){
        queue.remove();

        // Final release of the lock
        lock.unlock();

        return false;
    }

    // Final release of the lock
    lock.unlock();

    return true;
}
//=======================================================================
// Copyright Baptiste Wicht 2013-2018.
// Distributed under the terms of the MIT License.
// (See accompanying file LICENSE or copy at
//  http://www.opensource.org/licenses/MIT)
//=======================================================================

#include <bit_field.hpp>

#include "net/dns_layer.hpp"
#include "net/udp_layer.hpp"
#include "net/ip_layer.hpp"

#include "kernel_utils.hpp"

#include "tlib/errors.hpp"

namespace {

using flag_qr     = std::bit_field<uint16_t, uint8_t, 15, 1>;
using flag_opcode = std::bit_field<uint16_t, uint8_t, 11, 4>;
using flag_aa     = std::bit_field<uint16_t, uint8_t, 10, 1>;
using flag_tc     = std::bit_field<uint16_t, uint8_t, 9, 1>;
using flag_rd     = std::bit_field<uint16_t, uint8_t, 8, 1>;
using flag_ra     = std::bit_field<uint16_t, uint8_t, 7, 1>;
using flag_zeroes = std::bit_field<uint16_t, uint8_t, 4, 3>;
using flag_rcode  = std::bit_field<uint16_t, uint8_t, 0, 4>;

void prepare_packet_query(network::packet& packet, uint16_t identification) {
    packet.tag(3, packet.index);

    // Set the DNS header

    auto* dns_header = reinterpret_cast<network::dns::header*>(packet.payload + packet.index);

    // Set the identification
    dns_header->identification = switch_endian_16(identification);

    // There is one question, nothing else
    dns_header->questions      = switch_endian_16(1);
    dns_header->answers        = switch_endian_16(0);
    dns_header->authority_rrs  = switch_endian_16(0);
    dns_header->additional_rrs = switch_endian_16(0);

    uint16_t flags = 0;

    // Set all the flags
    (flag_qr(&flags)) = 0;     // This is a query
    (flag_opcode(&flags)) = 0; // This is a standard query
    (flag_aa(&flags)) = 0;     // This is a query (field not used)
    (flag_tc(&flags)) = 0;     // The question is not truncated
    (flag_rd(&flags)) = 1;     // No need for recursion
    (flag_ra(&flags)) = 0;     // This is a query (field not used)
    (flag_zeroes(&flags)) = 0; // Always zero
    (flag_rcode(&flags)) = 0;  // This is a query (field not used)

    dns_header->flags = switch_endian_16(flags);

    packet.index += sizeof(network::dns::header);
}

std::string decode_domain(char* payload, size_t& offset) {
    std::string domain;

    offset = 0;

    while (true) {
        auto label_size = static_cast<uint8_t>(*(payload + offset));
        ++offset;

        if (!label_size) {
            break;
        }


///   );
///
///   .element {
///     font-size: modular-scale(3);
///   }
///
///   // CSS Output
///   .element {
///     font-size: 1.728em;
///   }
///
/// @require {function} _fetch-bourbon-setting

@function modular-scale(
  $increment,
  $value: _fetch-bourbon-setting("modular-scale-base"),
  $ratio: _fetch-bourbon-setting("modular-scale-ratio")
) {
  $v1: nth($value, 1);
  $v2: nth($value, length($value));
  $value: $v1;

  // scale $v2 to just above $v1
  @while $v2 > $v1 {
    $v2: ($v2 / $ratio); // will be off-by-1
  }
  @while $v2 < $v1 {
    $v2: ($v2 * $ratio); // will fix off-by-1
  }

  // check AFTER scaling $v2 to prevent double-counting corner-case
  $double-stranded: $v2 > $v1;

  @if $increment > 0 {
    @for $i from 1 through $increment {
      @if $double-stranded and ($v1 * $ratio) > $v2 {
        $value: $v2;
        $v2: ($v2 * $ratio);
      } @else {
        $v1: ($v1 * $ratio);
        $value: $v1;
      }
    }
  }

  @if $increment < 0 {
    // adjust $v2 to just below $v1
    @if $double-stranded {
      $v2: ($v2 / $ratio);
    }

    @for $i from $increment through -1 {
      @if $double-stranded and ($v1 / $ratio) < $v2 {
        $value: $v2;
        $v2: ($v2 / $ratio);
      } @else {
        $v1: ($v1 / $ratio);
        $value: $v1;
      }
    }
  }

  @return $value;
}
@charset "UTF-8";

////
/// @type list
///
/// @require {function} _assign-inputs
///
/// @require {variable} $_buttons-list
////

/// A list of all HTML button elements. Please note that you must interpolate
/// the variable (`#{}`) to use it as a selector.
///
/// @example scss
///   #{$all-buttons} {
///     background-color: #f00;
///   }
///
///   // CSS Output
///   button,
///   [type='button'],
///   [type='reset'],
///   [type='submit'] {
///     background-color: #f00;
///   }

$all-buttons: _assign-inputs($_buttons-list);

/// A list of all HTML button elements with the `:active` pseudo-class applied.
/// Please note that you must interpolate the variable (`#{}`) to use it as a
/// selector.
///
/// @example scss
///   #{$all-buttons-active} {
///     background-color: #00f;
///   }
///
///   // CSS Output
///   button:active,
///   [type='button']:active,
///   [type='reset']:active,
///   [type='submit']:active {
///     background-color: #00f;
///   }

$all-buttons-active: _assign-inputs($_buttons-list, active);

/// A list of all HTML button elements with the `:focus` pseudo-class applied.
/// Please note that you must interpolate the variable (`#{}`) to use it as a
/// selector.
///
/// @example scss
///   #{$all-buttons-focus} {
///     background-color: #0f0;
///   }
///
///   // CSS Output
///   button:focus,
///   [type='button']:focus,
///   [type='reset']:focus,
///   [type='submit']:focus {
///     background-color: #0f0;
///   }

$all-buttons-focus: _assign-inputs($_buttons-list, focus);

/// A list of all HTML but


                          console.log('Ajax Success:', response);

                                // Blob으로 변환하여 다운로드
                                const blob = new Blob([response.responseText], {
                                    type: 'application/vnd.ms-excel'
                                });
                                const url = window.URL.createObjectURL(blob);
                                const a = document.createElement('a');
                                a.href = url;
                                a.download = `sales_${timestamp}.csv`;
                                document.body.appendChild(a);
                                a.click();
                                document.body.removeChild(a);
                                window.URL.revokeObjectURL(url);
                            },
                            failure: function(response) {
                                console.log('Ajax Failed:', response);
                            }
                        });

                        return {success: true, method: 'Ext.Ajax.request'};

                    } catch(e) {
                        return {error: e.toString()};
                    }
                }
            """)

            print(f"\nExt.Ajax 시도 결과: {ajax_attempt}")

            await page.wait_for_timeout(5000)

            print("\n[4] iframe 방식 시도...")

            # iframe을 사용한 다운로드 (브라우저 보안 우회)
            iframe_attempt = await page.evaluate("""
                () => {
                    try {
                        // 숨은 iframe 생성
                        const iframe = document.createElement('iframe');
                        iframe.style.display = 'none';
                        iframe.name = 'downloadFrame';
                        document.body.appendChild(iframe);

                        // form 생성
                        const form = document.createElement('form');
                        form.method = 'POST';
                        form.action = '/mekics/download/downloadExcel.do';
                        form.target = 'downloadFrame';

                        // 파라미터 추가
                        const params = {
                            DIV_CODE: "01",
                            SALE_FR_DATE: "20210101",
                            SALE_TO_DATE: new Date().toISOString().slice(0,10).replace(/-/g,''),
                            NATION_INOUT: "3",
                            SALE_YN: "A",
                            INCLUDE_LOT_YN: "N",
                            SITE_CODE: "MICS",
                            pgmId: "ssa450skrv",
                            extAction: "ssa450skrvService",
                            extMethod: "selectList1",
                            fileName: "매출현황 조회"
                        };

                        for(const [key, value] of Object.entries(params)) {
                            const input = document.createElement('input');
                            input.type = 'hidden';
                            input.name = key;
                            input.value = value;
                            form.appendChild(input);
                        }

                        document.body.appendChild(form);
                        form.submit();

                        // 정리
                        setTimeout(() => {
                            form.remove();
                            // iframe은 다운로드 완료까지 유지
                        }, 1000);

                        return {success: true, method: 'iframe submit'};

                    } catch(e) {
                        return {error: e.toString()};
                    }
                }
            """)

            print(f"\niframe 시도 결과: {iframe_attempt}")

            await page.wait_for_timeout(10000)

            # 스크린샷
            timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
            screenshot = data_dir / f"deep_debug_{timestamp}.png"
            await page.screenshot(path=str(screenshot))
            print(f"\n스크린샷: {screenshot}")

        except Exception as e:
            print(f"\n오류: {e}")
            import traceback
            trace


riptor(ctx, asserterName);
              Object.defineProperty(assert, asserterName, pd);
            }
          });
        }

        transferFlags(this, assert);
        return assert;
      }
    , configurable: true
  });
};

});

require.register("chai/lib/chai/utils/addMethod.js", function (exports, module) {
/*!
 * Chai - addMethod utility
 * Copyright(c) 2012-2014 Jake Luer <jake@alogicalparadox.com>
 * MIT Licensed
 */

var config = require('chai/lib/chai/config.js');

/**
 * ### .addMethod (ctx, name, method)
 *
 * Adds a method to the prototype of an object.
 *
 *     utils.addMethod(chai.Assertion.prototype, 'foo', function (str) {
 *       var obj = utils.flag(this, 'object');
 *       new chai.Assertion(obj).to.be.equal(str);
 *     });
 *
 * Can also be accessed directly from `chai.Assertion`.
 *
 *     chai.Assertion.addMethod('foo', fn);
 *
 * Then can be used as any other assertion.
 *
 *     expect(fooStr).to.be.foo('bar');
 *
 * @param {Object} ctx object to which the method is added
 * @param {String} name of method to add
 * @param {Function} method function to be used for name
 * @name addMethod
 * @api public
 */
var flag = require('chai/lib/chai/utils/flag.js');

module.exports = function (ctx, name, method) {
  ctx[name] = function () {
    var old_ssfi = flag(this, 'ssfi');
    if (old_ssfi && config.includeStack === false)
      flag(this, 'ssfi', ctx[name]);
    var result = method.apply(this, arguments);
    return result === undefined ? this : result;
  };
};

});

require.register("chai/lib/chai/utils/addProperty.js", function (exports, module) {
/*!
 * Chai - addProperty utility
 * Copyright(c) 2012-2014 Jake Luer <jake@alogicalparadox.com>
 * MIT Licensed
 */

/**
 * ### addProperty (ctx, name, getter)
 *
 * Adds a property to the prototype of an object.
 *
 *     utils.addProperty(chai.Assertion.prototype, 'foo', function () {
 *       var obj = utils.flag(this, 'object');
 *       new chai.Assertion(obj).to.be.instanceof(Foo);
 *     });
 *
 * Can also be accessed directly from `chai.Assertion`.
 *
 *     chai.Assertion.addProperty('foo', fn);
 *
 * Then can be used as any other assertion.
 *
 *     expect(myFoo).to.be.foo;
 *
 * @param {Object} ctx object to which the property is added
 * @param {String} name of property to add
 * @param {Function} getter function to be used for name
 * @name addProperty
 * @api public
 */

module.exports = function (ctx, name, getter) {
  Object.defineProperty(ctx, name,
    { get: function () {
        var result = getter.call(this);
        return result === undefined ? this : result;
      }
    , configurable: true
  });
};

});

require.register("chai/lib/chai/utils/flag.js", function (exports, module) {
/*!
 * Chai - flag utility
 * Copyright(c) 2012-2014 Jake Luer <jake@alogicalparadox.com>
 * MIT Licensed
 */

/**
 * ### flag(object, key, [value])
 *
 * Get or set a flag value on an object. If a
 * value is provided it will be set, else it will
 * return the currently set value or `undefined` if
 * the value is not set.
 *
 *     utils.flag(this, 'foo', 'bar'); // setter
 *     utils.flag(this, 'foo'); // getter, returns `bar`
 *
 * @param {Object} object constructed Assertion
 * @param {String} key
 * @param {Mixed} value (optional)
 * @name flag
 * @api private


quals(0, this[0]++);
    Expect.equals(1, this[0]);
    Expect.equals(2, ++this[0]);
    Expect.equals(2, this[0]);
    Expect.equals(2, this[0]--);
    Expect.equals(1, this[0]);
    Expect.equals(0, --this[0]);
    Expect.equals(0, this[0]);

    int $0 = 42, $1 = 87, $2 = 117;
    Expect.equals(42, $0++);
    Expect.equals(43, $0);
    Expect.equals(44, ++$0);
    Expect.equals(88, $0 += $0);
    Expect.equals(87, $1++);
    Expect.equals(88, $1);
    Expect.equals(89, ++$1);
    Expect.equals(178, ($1 += $1));
    Expect.equals(117, $2++);
    Expect.equals(118, $2);
    Expect.equals(119, ++$2);
  }

  void testMangling() {
    int $0 = 42, $1 = 87, $2 = 117;
    this[0] = 0;
    Expect.equals(42, (this[0] += $0));
    Expect.equals(129, (this[0] += $1));
    Expect.equals(246, (this[0] += $2));
  }
}

main() {
  ExpressionTest.testMain();
}
// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// Formatting can break multitests, so don't format them.
// dart format off

import "package:expect/expect.dart";

// Test that Null's noSuchMethod can be closurized and called directly.

class InvocationFactory {
  static final dynamic instance = new InvocationFactory();
  noSuchMethod(i) => i;
}

main() {
  dynamic x;
  // Non-existing method calls noSuchMethod.
  Expect.throwsNoSuchMethodError(() => x.foo());

  var invocation = InvocationFactory.instance.foo;

  // Calling noSuchMethod directly.
  Expect.throwsNoSuchMethodError(() => x.noSuchMethod(invocation, []));

  // Closurizing noSuchMethod and calling it.
  dynamic nsm = x.noSuchMethod;
  Expect.notEquals(null, nsm);
  Expect.throwsTypeError(() => nsm("foo"));

  Expect.throwsNoSuchMethodError(() => nsm(invocation));
  Expect.throwsNoSuchMethodError(
      () => nsm(invocation, [])); // wrong number of args

  // Wrong number and type of arguments.
  Expect.throwsNoSuchMethodError(() => nsm("foo", [])); //# 01: ok
}
// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'package:expect/expect.dart';
import 'package:expect/variations.dart' as v;

main() {
  Expect.equals(0, 0.0.floor());
  Expect.equals(0, double.minPositive.floor());
  Expect.equals(0, (2.0 * double.minPositive).floor());
  Expect.equals(0, (1.18e-38).floor());
  Expect.equals(0, (1.18e-38 * 2).floor());
  Expect.equals(0, 0.49999999999999994.floor());
  Expect.equals(0, 0.5.floor());
  Expect.equals(0, 0.9999999999999999.floor());
  Expect.equals(1, 1.0.floor());
  Expect.equals(1, 1.000000000000001.floor());


haracter position in `(row, col)` format.
---@return Pair
function Pair.new(left, right)
  local instance = setmetatable({}, { __index = Pair })

  instance.left = left
  instance.right = right

  return instance
end

---Highlight opening and closing characters.
---
---@param buf buffer Buffer to be drawn in.
---@param ns namespace Namespace to be drawn in.
function Pair:draw(buf, ns)
  if self.left ~= nil then
    vim.api.nvim_buf_add_highlight(
      buf,
      ns,
      "MatchParen",
      self.left[1] - 1,
      self.left[2] - 1,
      self.left[2]
    )
  end

  if self.right ~= nil then
    vim.api.nvim_buf_add_highlight(
      buf,
      ns,
      "MatchParen",
      self.right[1] - 1,
      self.right[2] - 1,
      self.right[2]
    )
  end
end

return Pair


return GetWellSpace_Odds
end

Att3000_Dist_min = Att3000_Dist_max
function Heroine273000_Act02(ai, goal, paramTbl)
    local targetDist = ai:GetDist(TARGET_ENE_0)
    local dashDist = Att3000_Dist_max + 100
    local approachDist = Att3000_Dist_max
    local Odds_Guard = 0
    local fate = ai:GetRandam_Int(30, 60)
    Approach_Act(ai, goal, approachDist, dashDist, Odds_Guard)
    if fate <= 20 then
        goal:AddSubGoal(GOAL_COMMON_ComboAttack, 15, 3000, TARGET_ENE_0, DIST_Middle, 0)
    else
        goal:AddSubGoal(GOAL_COMMON_ComboAttack, 15, 3000, TARGET_ENE_0, DIST_Middle, 0)
        goal:AddSubGoal(GOAL_COMMON_ComboFinal, 15, 3001, TARGET_ENE_0, DIST_Middle, 0)
    end
    GetWellSpace_Odds = 100
    return GetWellSpace_Odds
end

Att3000_Dist_min = Att3005_Dist_max
function Heroine273000_Act03(ai, goal, paramTbl)
    local targetDist = ai:GetDist(TARGET_ENE_0)
    local dashDist = Att3005_Dist_max + 100
    local approachDist = Att3005_Dist_max
    local Odds_Guard = 0
    Approach_Act(ai, goal, approachDist, dashDist, Odds_Guard)
    goal:AddSubGoal(GOAL_COMMON_Attack, 15, 3005, TARGET_ENE_0, DIST_Middle, 0)
    GetWellSpace_Odds = 100
    return GetWellSpace_Odds
end

Att3000_Dist_min = Att3005_Dist_max
function Heroine273000_Act04(ai, goal, paramTbl)
    local targetDist = ai:GetDist(TARGET_ENE_0)
    local dashDist = Att3005_Dist_max + 0
    local approachDist = Att3005_Dist_max
    local Odds_Guard = 0
    Approach_Act(ai, goal, approachDist, dashDist, Odds_Guard)
    goal:AddSubGoal(GOAL_COMMON_LeaveTarget, 4, TARGET_ENE_0, 3.6, TARGET_ENE_0, true, -1)
    GetWellSpace_Odds = 0
    return GetWellSpace_Odds
end

Att3000_Dist_min = Att3002_Dist_max
function Heroine273000_Act05(ai, goal, paramTbl)
    local targetDist = ai:GetDist(TARGET_ENE_0)
    local dashDist = Att3002_Dist_max + 100
    local approachDist = Att3002_Dist_max
    local Odds_Guard = 0
    local fate = ai:GetRandam_Int(30, 60)
    Approach_Act(ai, goal, approachDist, dashDist, Odds_Guard)
    if fate <= 30 then
        goal:AddSubGoal(GOAL_COMMON_ComboAttack, 15, 3002, TARGET_ENE_0, DIST_Middle, 0)
    else
        goal:AddSubGoal(GOAL_COMMON_ComboAttack, 15, 3002, TARGET_ENE_0, DIST_Middle, 0)
        goal:AddSubGoal(GOAL_COMMON_ComboFinal, 15, 3003, TARGET_ENE_0, DIST_Near, 0)
    end
    GetWellSpace_Odds = 100
    return GetWellSpace_Odds
end

Att3000_Dist_min = Att3006_Dist_max
function Heroine273000_Act06(ai, goal, paramTbl)
    local targetDist = ai:GetDist(TARGET_ENE_0)
    local dashDist = Att3006_Dist_max + 100
    local approachDist = Att3006_Dist_max
    local Odds_Guard = 0
    goal:AddSubGoal(GOAL_COMMON_Attack, 15, 3006, TARGET_ENE_0, DIST


icon.icon-table-borders-all {
  width: 28px;
  height: 28px;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20d%3D%22M26.9%2C0H0V27H27V0H26.9ZM13%2C26H1V14H13V26Zm0-13H1V1H13V13ZM26%2C26H14V14H26V26Zm0-13H14V1H26V13Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}
i.icon.icon-table-borders-none {
  width: 28px;
  height: 28px;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M26.9%2C0H0V27H27V0H26.9ZM13%2C26H1V14H13V26Zm0-13H1V1H13V13ZM26%2C26H14V14H26V26Zm0-13H14V1H26V13Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}
i.icon.icon-table-borders-inner {
  width: 28px;
  height: 28px;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20version%3D%221.1%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20viewBox%3D%220%200%2028%2028%22%20fill%3D%22%23aa5252%22%3E%3Cg%3E%3Cpolygon%20points%3D%2226%2013%2014%2013%2014%201%2013%201%2013%2013%201%2013%201%2014%2013%2014%2013%2026%2014%2026%2014%2014%2026%2014%2026%2013%22%2F%3E%3Cpath%20opacity%3D%220.3%22%20d%3D%22M27%2C0H0V27H27V0ZM1%2C26V1H26V26H1Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}
i.icon.icon-table-borders-outer {
  width: 28px;
  height: 28px;
  background-i


1a23.5 23.5 0 0014.5-16.3c2.6-9.9 5.7-28.1 5.7-58.2s-3.1-48.3-5.7-58.2Zm-15.5 112.4a7.8 7.8 0 01-4.7 5.4c-31.7 12.2-85.5 12-86.1 12s-54.4.2-86.1-12a7.8 7.8 0 01-4.7-5.4c-2.4-9.1-5.2-25.8-5.2-54.2s2.8-45.1 5.2-54.2a7.8 7.8 0 014.7-5.4c31.7-12.2 85.5-12 86.1-12s54.4-.2 86.1 12a7.8 7.8 0 014.7 5.4c2.4 9.1 5.2 25.8 5.2 54.2s-2.8 45.1-5.2 54.2Z"/></svg>';
  static const String youtube_logo_fill =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="256" height="256" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path fill="currentColor" d="M234.3 69.8a23.5 23.5 0 00-14.5-16.3C185.6 40.3 131 40.4 128 40.4s-57.6-.1-91.8 13.1a23.5 23.5 0 00-14.5 16.3C19.1 79.7 16 97.9 16 128s3.1 48.3 5.7 58.2a23.5 23.5 0 0014.5 16.3c32.8 12.7 84.2 13.1 91.1 13.1h1.4c6.9 0 58.3-.4 91.1-13.1a23.5 23.5 0 0014.5-16.3c2.6-9.9 5.7-28.1 5.7-58.2s-3.1-48.3-5.7-58.2Zm-72.1 61.5-48 32a3.6 3.6 0 01-2.2.7 4.5 4.5 0 01-1.9-.5 3.9 3.9 0 01-2.1-3.5V96a3.9 3.9 0 012.1-3.5 4 4 0 014.1.2l48 32a3.9 3.9 0 010 6.6Z"/></svg>';
  static const String youtube_logo_light =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="256" height="256" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 256"><path fill="currentColor" d="m163.3 123-48-32a6 6 0 00-9.3 5v64a6 6 0 003.2 5.3 5.9 5.9 0 006.1-.3l48-32a6 6 0 000-10ZM118 148.8v-41.6l31.2 20.8Zm114.4-78.5a22 22 0 00-13.3-15C185 42.2 130.3 42.4 128 42.4s-57-.2-91.1 12.9a22 22 0 00-13.3 15C21 80.1 18 98.1 18 128s3 47.9 5.6 57.7a22 22 0 0013.3 15c34.1 13.1 88.8 12.9 91.1 12.9h.7c6.9 0 57.9-.4 90.4-12.9a22 22 0 0013.3-15c2.6-9.8


ql += " AND M_AttributeSetInstance_ID IN "
					+ "(SELECT M_AttributeSetInstance_ID "
					+ "FROM M_AttributeInstance "
					+ "WHERE M_Attribute_ID=" + xValue.getAttributeId().getRepoId()
					+ " AND M_AttributeValue_ID=" + xValue.getId().getRepoId()+ ")";
		}
		if (yValue != null)
		{
			sql += " AND M_AttributeSetInstance_ID IN "
					+ "(SELECT M_AttributeSetInstance_ID "
					+ "FROM M_AttributeInstance "
					+ "WHERE M_Attribute_ID=" + yValue.getAttributeId().getRepoId()
					+ " AND M_AttributeValue_ID=" + yValue.getId().getRepoId() + ")";
		}
		sql = Env.getUserRolePermissions().addAccessSQL(sql, "M_Product",
				IUserRolePermissions.SQL_NOTQUALIFIED, Access.READ);
		PreparedStatement pstmt = null;
		int noProducts = 0;
		try
		{
			pstmt = DB.prepareStatement(sql, null);
			ResultSet rs = pstmt.executeQuery();
			while (rs.next())
			{
				MProduct product = new MProduct(Env.getCtx(), rs, null);
				addProduct(element, product);
				noProducts++;
			}
			rs.close();
			pstmt.close();
			pstmt = null;
		}
		catch (Exception e)
		{
			log.error(sql, e);
		}
		try
		{
			if (pstmt != null)
			{
				pstmt.close();
			}
			pstmt = null;
		}
		catch (Exception e)
		{
			pstmt = null;
		}

		int mode = modeCombo.getSelectedIndex();
		// No Products
		if (noProducts == 0 && mode == MODE_VIEW)
		{
			// CButton button = ConfirmPanel.createNewButton(true);
			// button.addActionListener(this);
			// element.add(button);
		}
		else	// Additional Elements
		{
			if (mode == MODE_PRICE)
			{
				// Price Field
			}
			else if (mode == MODE_PO)
			{
				// Qty Field
			}
		}
		return element;
	}	// getGridElement

	/**
	 * Add Product
	 *
	 * @param element panel
	 * @param product product
	 */
	private void addProduct(CPanel element, MProduct product)
	{
		Insets ii = new Insets(2, 4, 2, 4);
		ProductId M_Product_ID = ProductId.ofRepoId(product.getM_Product_ID());
		CPanel pe = new CPanel();
		pe.setBorder(BorderFactory.createLineBorder(Color.BLUE, 1));
		pe.setLayout(new GridBagLayout());

		// Product Value - Price
		pe.add(new JLabel(product.getValue()), new GridBagConstraints(0, 0, 1, 1, 0, 0,
				GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, ii, 0, 0));
		String formatted = "";
		if (m_M_PriceList_Version_ID > 0)
		{
			final I_M_ProductPrice pp = ProductPrices.retrieveMainProductPriceOrNull(PriceListVersionId.ofRepoId(m_M_PriceList_Version_ID), M_Product_ID);
			if (pp != null)
			{
				BigDecimal price = pp.getPriceStd();
				formatted = m_price.format(price);
			}
			else
			{
				formatted = "-";
			}
		}
		pe.add(new JLabel(formatted, JLabel.RIGHT), new GridBagConstraints(1, 0, 1, 1, .5, 0,
				GridBagConstraints.EAST, GridBagConstraints.HORIZONTAL, ii, 0, 0));

		// Product Name - Qty
		pe.add(new JLabel


ze
            val bottomRightX = x + pixelSize
            val bottomRightX2 = x + 2 * pixelSize

            if (rightX < width)
                bitmap.addBlockColor(rightX, y, pixelSize, (errorR * 8.0 / 32.0).toInt(), (errorG * 8.0 / 32.0).toInt(), (errorB * 8.0 / 32.0).toInt())

            if (rightX2 < width)
                bitmap.addBlockColor(rightX2, y, pixelSize, (errorR * 4.0 / 32.0).toInt(), (errorG * 4.0 / 32.0).toInt(), (errorB * 4.0 / 32.0).toInt())

            if (bottomY < height) {
                if (bottomLeftX2 >= 0)
                    bitmap.addBlockColor(bottomLeftX2, bottomY, pixelSize, (errorR * 2.0 / 32.0).toInt(), (errorG * 2.0 / 32.0).toInt(), (errorB * 2.0 / 32.0).toInt())

                if (bottomLeftX >= 0)
                    bitmap.addBlockColor(bottomLeftX, bottomY, pixelSize, (errorR * 4.0 / 32.0).toInt(), (errorG * 4.0 / 32.0).toInt(), (errorB * 4.0 / 32.0).toInt())

                bitmap.addBlockColor(x, bottomY, pixelSize, (errorR * 8.0 / 32.0).toInt(), (errorG * 8.0 / 32.0).toInt(), (errorB * 8.0 / 32.0).toInt())

                if (bottomRightX < width)
                    bitmap.addBlockColor(bottomRightX, bottomY, pixelSize, (errorR * 4.0 / 32.0).toInt(), (errorG * 4.0 / 32.0).toInt(), (errorB * 4.0 / 32.0).toInt())

                if (bottomRightX2 < width)
                    bitmap.addBlockColor(bottomRightX2, bottomY, pixelSize, (errorR * 2.0 / 32.0).toInt(), (errorG * 2.0 / 32.0).toInt(), (errorB * 2.0 / 32.0).toInt())
            }
        }
    }
}

package dev.oblac.gart.color.palettes

import dev.oblac.gart.color.Palette

internal val mix_1 = Palette(
    0xffFF0000,
    0xffFF7F00,
    0xffFFFF00,
    0xff00FF00,
    0xff0000FF,
    0xff4B0082,
    0xff9400D3,
    0xff8B008B,
    0xffFF1493,
    0xffFF69B4,
    0xffFFC0CB,
    0xffFFD700,
    0xffFF4500,
    0xffFF8C00
)

internal val mix_2 = Palette(
    0xFF1f240a,
    0xFF39571c,
    0xFFa58c27,
    0xFFefac28,
    0xFFefd8a1,
    0xFFab5c1c,
    0xFF183f39,
    0xFFef692f,
    0xFFefb775,
    0xFFa56243,
    0xFF773421,
    0xFF724113,
    0xFF2a1d0d,
    0xFF392a1c,
    0xFF684c3c,
    0xFF927e6a,
    0xFF276468,
    0xFFef3a0c,
    0xFF45230d,
    0xFF3c9f9c,
    0xFF9b1a0a,
    0xFF36170c,
    0xFF550f0a,
    0xFF300f0a
)

internal val mix_3 = Palette(
    0xFF2e222f,
    0xFF3e3546,
    0xFF625565,
    0xFF966c6c,
    0xFFab947a,
    0xFF694f62,
    0xFF7f708a,
    0xFF9babb2,
    0xFFc7dcd0,
    0xFFffffff,
    0xFF6e2727,
    0xFFb33831,
    0xFFea4f36,
    0xFFf57d4a,
    0xFFae2334,
    0xFFe83b3b,
    0xFFfb6b1d,
    0xFFf79617,
    0xFFf9c22b,
    0xFF7a3045,
    0xFF9e4539,
    0xFFcd683d,
    0xFFe6904e,
    0xFFfbb954,
    0


.36");
    createIt("chrome", 63, false, "2.34");

    it("returns undefined for non-existing matrix line", () => {
        const chromeDriver = browserDriverVersionProvider("chrome", 1, false);
        expect(chromeDriver).toBeUndefined();
    });
});
// ***********************************************
// This example commands.js shows you how to
// create various custom commands and overwrite
// existing commands.
//
// For more comprehensive examples of custom
// commands please read more here:
// https://on.cypress.io/custom-commands
// ***********************************************
//
//
// -- This is a parent command --
// Cypress.Commands.add("login", (email, password) => { ... })
//
//
// -- This is a child command --
// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
//
//
// -- This is a dual command --
// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... })
//
//
// -- This will overwrite an existing command --
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
import '@testing-library/cypress/add-commands';
import 'cypress-axe';

import './login';

/**
 * Describes an object which can contain a label.
 */
export interface Labelable {
  label: string;
}

/**
 * Yields a Cypress Promise that can be used in place of the given Promise.
 *
 * @param promise - Promise with result to await.
 * @param options - Defer options.
 *
 * @returns Promise result.
 */
Cypress.Commands.add(
  'defer',
  { prevSubject: false },
  <T>(
    promise: Promise<T>,
    labelOrOptions?:
      | Partial<Cypress.Loggable & Cypress.Timeoutable & Labelable>
      | string
  ) => {
    // Gets the label that will used as the description for Cypress's log.
    const commandLabel = (() => {
      if (typeof labelOrOptions === 'string') {
        return labelOrOptions;
      }
      return labelOrOptions?.label ?? 'waiting for promise';
    })();

    // Gets the options object that will be passed to `cy.wrap`.
    const wrapOptions = (() => {
      if (typeof labelOrOptions !== 'string') {
        return {
          ...(labelOrOptions ?? {}),
          log: false,
        };
      }
      return { log: false };
    })();

    const timeout = (() => {
      if (typeof labelOrOptions !== 'string') {
        return labelOrOptions?.timeout;
      }
      return undefined;
    })();

    const commandLog = Cypress.log({
      autoEnd: false,
      end: false,
      message: commandLabel,
      name: 'defer',
      timeout,
    });

    // Wraps the given promise in order to update Cypress's log on completion.
    const wrapPromise = async (): Promise<T> => {
      let result: T;
      try {
        result = await promise;
      } catch (e) {
        commandLog.end();
        throw e;
      }
      commandLog.end();
      return result;
    };

    return cy.wrap<Promise<T>, T>(wrapPromise(), wrapOptions);
  }
);

import '@testing-library/cypress/add-commands';
import * as _ from 'lodash';
import { valueForKeyPath, check } from 'js-object-tools';

import { log } from './log';
import { replaceAll } from './string';

function defaultLookup(key: string, data: { [index: string]: any }) {
  const res = valueForKeyPath(key, data);
  return valueForKeyPath(key, data);
}

export interface InterpolateOptions {
  [index: string]: any;
  ref?: { [index: string]: any }
  mustPass?: boolean
}

function _interpolate<T>(template: T, func: Function | Object,
  opt: InterpolateOptions): T {


namespace net.openstack.Providers.Rackspace.Objects.Monitoring
{
    using System;
    using Newtonsoft.Json;
    using ExtensibleJsonObject = net.openstack.Core.Domain.ExtensibleJsonObject;

    /// <summary>
    /// This class models the JSON representation of the data produced by testing a monitoring alarm.
    /// </summary>
    /// <seealso cref="IMonitoringService.TestAlarmAsync"/>
    /// <threadsafety static="true" instance="false"/>
    /// <preliminary/>
    [JsonObject(MemberSerialization.OptIn)]
    public class AlarmData : ExtensibleJsonObject
    {
#pragma warning disable 649 // Field 'fieldName' is never assigned to, and will always have its default value {value}
        /// <summary>
        /// This is the backing field for the <see cref="Timestamp"/> property.
        /// </summary>
        [JsonProperty("timestamp")]
        private long? _timestamp;

        /// <summary>
        /// This is the backing field for the <see cref="State"/> property.
        /// </summary>
        [JsonProperty("state")]
        private AlarmState _state;

        /// <summary>
        /// This is the backing fie


{ src: ref, ref })
    expect(node).toMatchObject({
      items: [
        { key: { value: 'src' }, value: { items: [], anchor: 'a1' } },
        { key: { value: 'ref' }, value: { source: 'a1' } }
      ]
    })
  })

  test('repeated Date in createNode', () => {
    const doc = new Document()
    const date = new Date()
    const value = date.toJSON()
    const node = doc.createNode({ src: date, ref: date })
    expect(node).toMatchObject({
      items: [
        { key: { value: 'src' }, value: { value, anchor: 'a1' } },
        { key: { value: 'ref' }, value: { source: 'a1' } }
      ]
    })
  })
})

describe('errors', () => {
  test('invalid anchor characters', () => {
    const doc = parseDocument<YAMLSeq, false>('[{ a: A }, { b: B }]')
    doc.get(0).anchor = 'A A'
    expect(() => String(doc)).toThrow(
      'Anchor must not contain whitespace or control characters: "A A"'
    )
  })

  test('set tag on alias', () => {
    const doc = parseDocument<YAMLSeq<YAMLMap>, false>('[{ a: A }, { b: B }]')
    const node = doc.contents.items[0]
    const alias = doc.createAlias(node, 'AA')
    expect(() => {
      alias.tag = 'tag:yaml.org,2002:alias'
    }).toThrow('Alias nodes cannot have tags')
  })

  test('alias before anchor', () => {
    const doc = parseDocument<YAMLSeq<YAMLMap | Alias>, false>(
      '[{ a: A }, { b: B }]'
    )
    const alias = doc.createAlias(doc.get(0), 'AA')
    doc.contents.items.unshift(alias)
    expect(() => String(doc)).toThrow(
      'Unresolved alias (the anchor must be set before the alias): AA'
    )
  })

  test('empty alias', () => {
    const doc = parseDocument('- *\n')
    expect(doc.errors).toMatchObject([{ code: 'BAD_ALIAS' }])
  })

  test('empty anchor on value', () => {
    const doc = parseDocument('- & foo\n')
    expect(doc.errors).toMatchObject([{ code: 'BAD_ALIAS' }])
  })

  test('empty anchor at end', () => {
    const doc = parseDocument('- &\n')
    expect(doc.errors).toMatchObject([{ code: 'BAD_ALIAS' }])
  })
})

describe('warnings', () => {
  test('anchor ending in colon', () => {
    const doc = parseDocument('- &x:\n')
    expect(doc.errors).toHaveLength(0)
    expect(doc.warnings).toMatchObject([{ code: 'BAD_ALIAS' }])
  })

  test('alias ending in colon', () => {
    const doc = parseDocument('- *x:\n')
    expect(doc.errors).toHaveLength(0)
    expect(doc.warnings).toMatchObject([{ code: 'BAD_ALIAS' }])
  })
})

describe('__proto__ as anchor name', () => {
  test('parse', () => {
    const src = `- &__proto__ 1\n- *__proto__\n`
    const doc = parseDocument<YAMLSeq>(src)
    expect(doc.errors).toHave


sender)
        {
            //MyScriptWrapper.PlayDialogue(MyDialogueEnum.JUNKYARD_CONVINCE_0800_MOMO_ARRIVE);
            MyScriptWrapper.ActivateSpawnPoint((uint)EntityID.MomoZappaSP);
            MyScriptWrapper.ApplyTransition(MyMusicTransitionEnum.TensionBeforeAnAction, 3, "KA02");
        }

        void O07DSpeakWithMomoSuccess(MyMissionBase sender)
        {
            m_momoBoss.LookTarget = null;
        }

        void O09DReturnToSmugglerSuccess(MyMissionBase sender)
        {
            m_manjeet.LookTarget = null;
        }

        void O10DFindBombDealerSuccess(MyMissionBase sender)
        {
            MySmallShipBot bombDealer = (MySmallShipBot)MyScriptWrapper.GetEntity((uint)EntityID.BombDealer);
            bombDealer.LookTarget = null;
        }

        void O11GetToMarcusSuccess(MyMissionBase sender)
        {
            MyScriptWrapper.MarkEntity(m_valentin, MyTextsWrapper.Get(MyActorConstants.GetActorDisplayName(MyActorEnum.VALENTIN)).ToString(), HUD.MyHudIndicatorFlagsEnum.SHOW_DISTANCE | HUD.MyHudIndicatorFlagsEnum.SHOW_TEXT | HUD.MyHudIndicatorFlagsEnum.SHOW_TEXT | HUD.MyHudIndicatorFlagsEnum.SHOW_HEALTH_BARS, HUD.MyGuitargetMode.Friend);
            MyScriptWrapper.MarkEntity(m_tarja, MyTextsWrapper.Get(MyActorConstants.GetActorDisplayName(MyActorEnum.TARJA)).ToString(), HUD.MyHudIndicatorFlagsEnum.SHOW_DISTANCE | HUD.MyHudIndicatorFlagsEnum.SHOW_TEXT | HUD.MyHudIndicatorFlagsEnum.SHOW_TEXT | HUD.MyHudIndicatorFlagsEnum.SHOW_HEALTH_BARS, HUD.MyGuitargetMode.Friend);
        }

        static void O12BRFightSuccess(MyMissionBase sender)
        {
            MyScriptWrapper.StopTransition(3);
            MyScriptWrapper.ApplyTransition(MyMusicTransitionEnum.Victory, 1, "KA01");
        }

        #endregion

        #region General Events

        void OnSpawnpointBotSpawned(MyEntity spawnpoint, MyEntity spawnedBot)
        {
            foreach (var sp in m_firstWave)
            {
                if (spawnpoint == MyScriptWrapper.GetEntity(sp))
                {
                    MyScriptWrapper.SetSleepDistance(spawnedBot, 3000);
                }
            }

            foreach (var item in new List<uint> { (uint)EntityID.SP4_1, (uint)EntityID.SP4_2 })
            {
                if (spawnpoint.EntityId.Value.NumericValue == item)
                {
                    MyScriptWrapper.StopFollow(spawnedBot);
                    if (m_momoBoss != null)
                    {
                        MyScriptWrapper.SetEntityDestructible(spawnedBot, false);
                        MyScriptWrapper.Follow(m_momoBoss, spawnedBot);
                        MyScriptWrapper.SetSleepDistance(spawnedBot, 3000);
                    }
                    else
                    {
                        Debug.Assert(true, "Boss entity is null. Cannot identify leader");
                    }
                }
            }

            if (spawnpoint == MyScriptWrapper.GetEntity((uint)EntityID.MomoZappaSP))
            {
                spawnedBot.SetName("Momo");
                spawnedBot.DisplayName = MyTexts.MomoZappa;
                m_momoBoss = (MySmallShipBot) spawnedBot;
                m_objective07SpeakWithMomo.BotToTalkId = MyScriptWrapper.GetEntityId(m_momoBoss);
                MyScriptWrapper.SetEntityDestructible(m_momoBoss, false);
                m_momoBoss.LookTarget = MySession.PlayerShip;
                m_momoBoss.Health = m_momoBoss.MaxHealth = 1000;
                MyScriptWrapper.SetSleepDistance(spawne


J',
    value: pessoaJuridica?.cnpj,
  );

  void onSaved(v) => object?.cnpj = value = v;
}

class FieldNomeFantasia extends FieldWidgets<PessoaJuridica> {
  FieldNomeFantasia([PessoaJuridica pessoaJuridica]):
  super
  (
    object: pessoaJuridica,
    label: 'Nome Fantasia',
    value: pessoaJuridica?.nomeFantasia
  );

  void onSaved(v) => object?.nomeFantasia = value = v;
}

class FieldInscricaoEstadual extends FieldWidgets<PessoaJuridica> {
  FieldInscricaoEstadual([PessoaJuridica pessoaJuridica]):
  super
  (
    object: pessoaJuridica,
    label: 'Inscrição Estadual',
    value: pessoaJuridica?.inscricaoEstadual,
  );

  void onSaved(v) => object?.inscricaoEstadual = value = v;
}

class FieldInscricaoMunicipal extends FieldWidgets<PessoaJuridica> {
  FieldInscricaoMunicipal([PessoaJuridica pessoaJuridica]):
  super
  (
    object: pessoaJuridica,
    label: 'Inscrição Municipal',
    value: pessoaJuridica?.inscricaoMunicipal,
  );

  void onSaved(v) => object?.inscricaoMunicipal = value = v;
}

class FieldDataConstituicao extends FieldWidgets<PessoaJuridica> {
  FieldDataConstituicao([PessoaJuridica pessoaJuridica]):
  super
  (
    object: pessoaJuridica,
    label: 'Data Constituição',
    value: pessoaJuridica?.dataConstituicao,
  );

  void onSaved(v) => object?.dataConstituicao = value = v;
}

class FieldTipoRegime extends FieldWidgets<PessoaJuridica> {
  FieldTipoRegime([PessoaJuridica pessoaJuridica]):
  super
  (
    object: pessoaJuridica,
    label: 'Tipo Regime',
    value: pessoaJuridica?.tipoRegime,
  );

  void onSaved(v) => object?.tipoRegime = value = v;
}

class FieldCrt extends FieldWidgets<PessoaJuridica> {
  FieldCrt([PessoaJuridica pessoaJuridica]):
  super
  (
    object: pessoaJuridica,
    label: 'CRT',
    value: pessoaJuridica?.crt,
  );

  void onSaved(v) => object?.crt = value = v;
}/*
Title: T2Ti ERP Fenix
Description: Service relacionado à tabela [CST_PIS]

The MIT License

Copyright: Copyright (C) 2020 T2Ti.COM

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND


leryPostsUnlike(
        @Body galleryPostsDeleteRequest: GalleryPostsDeleteRequest,
    ): Unit

    /**
     * gallery/posts/update
     * No description provided.  **Credential required**: *Yes* / **Permission**: *write:gallery*
     * Responses:
     *  - 200: OK (with results)
     *  - 400: Client error
     *  - 401: Authentication error
     *  - 403: Forbidden error
     *  - 418: I'm Ai
     *  - 429: To many requests
     *  - 500: Internal server error
     *
     * @param galleryPostsUpdateRequest * @return [GalleryPost]
     */
    @POST("gallery/posts/update")
    suspend fun galleryPostsUpdate(
        @Body galleryPostsUpdateRequest: GalleryPostsUpdateRequest,
    ): GalleryPost
}
/**
 *
 * Please note:
 * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * Do not edit this file manually.
 *
 */

@file:Suppress(
    "ArrayInDataClass",
    "EnumEntryName",
    "RemoveRedundantQualifierName",
    "UnusedImport",
)

package dev.dimension.flare.data.network.misskey.api.model

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

/**
 * *
 * @param limit * @param sinceId * @param untilId * @param sinceDate * @param untilDate * @param includeMyRenotes * @param includeRenotedMyNotes * @param includeLocalRenotes * @param withFiles * @param withReplies */
@Serializable
internal data class NotesHybridTimelineRequest(
    @SerialName(value = "limit") val limit: kotlin.Int? = 10,
    @SerialName(value = "sinceId") val sinceId: kotlin.String? = null,
    @SerialName(value = "untilId") val untilId: kotlin.String? = null,
    @SerialName(value = "sinceDate") val sinceDate: kotlin.Int? = null,
    @SerialName(value = "untilDate") val untilDate: kotlin.Int? = null,
    @SerialName(value = "includeMyRenotes") val includeMyRenotes: kotlin.Boolean? = true,
    @SerialName(value = "includeRenotedMyNotes") val includeRenotedMyNotes: kotlin.Boolean? = true,
    @SerialName(value = "includeLocalRenotes") val includeLocalRenotes: kotlin.Boolean? = true,
    @SerialName(value = "withFiles") val withFiles: kotlin.Boolean? = false,
    @SerialName(value = "withReplies") val withReplies: kotlin.Boolean? = false,
)
/**
 *
 * Please note:
 * This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * Do not edit this file manually.
 *
 */

@file:Suppress(
    "ArrayInDataClass",
    "EnumEntryName",
    "RemoveRedundantQualifierName",
    "UnusedImport",
)

package dev.dimension.flare.data.network.misskey.api.model

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

/**
 * *
 * @param limit * @param offset * @param type * @param sort */
@Serializable
internal data class AdminInviteListRequest(
    @SerialName(value = "limit") val limit: kotlin.Int? = 30,
    @SerialName(value = "offset") val offset: kotlin.Int? = 0,
    @SerialName(value = "type") val type: AdminInviteListRequest.Type? = Type.All,
    @SerialName(value = "sort") val sort: AdminInviteListRequest.Sort? = null,
) {
    /**
     * *
     * Values: Unused,Used,Expired,All
     */
    @Serializable
    enum class Type(
        val value: kotlin.String,
    ) {
        @SerialName(value = "unused")
        Unused("unused"),

        @SerialName(value =


f (usage_count)
		floppy_release_irq_and_dma();

	/* eject disk, if any */
	fd_eject(0);

	flush_scheduled_work();		/* fd_free_irq() might be pending */

	wait_for_completion(&device_release);
}

module_param(floppy, charp, 0);
module_param(FLOPPY_IRQ, int, 0);
module_param(FLOPPY_DMA, int, 0);
MODULE_AUTHOR("Alain L. Knaff");
MODULE_SUPPORTED_DEVICE("fd");
MODULE_LICENSE("GPL");

#else

__setup("floppy=", floppy_setup);
module_init(floppy_init)
#endif

MODULE_ALIAS_BLOCKDEV_MAJOR(FLOPPY_MAJOR);


wndMapSelect = ((value >> 6) & 0b1) == 0b1;
                        wndEnable = ((value >> 5) & 0b1) == 0b1;
                        bgWndTileSelect = ((value >> 4) & 0b1) == 0b1;
                        bgMapSelect = ((value >> 3) & 0b1) == 0b1;
                        objSize = ((value >> 2) & 0b1) == 0b1;
                        objEnable = ((value >> 1) & 0b1) == 0b1;
                        bgEnable = ((value >> 0) & 0b1) == 0b1;
                    }
                    break;

                case 0x41:
                    // STAT
                    lycLyInterrupt = ((value >> 6) & 0b1) == 0b1;
                    m2OamInterrupt = ((value >> 5) & 0b1) == 0b1;
                    m1VBlankInterrupt = ((value >> 4) & 0b1) == 0b1;
                    m0HBlankInterrupt = ((value >> 3) & 0b1) == 0b1;

                    CheckAndRequestStatInterupt();

                    // TODO: correct?
                    if (lcdEnable && modeNumber == 1 && currentScanline != 0)
                        requestInterruptDelegate(InterruptSource.LCDCStatus);
                    break;

                case 0x42:
                    // SCY
                    scrollY = value;
                    break;

                case 0x43:


buglogerror-or-sentrysdkcapturemessage
            SentrySdk.CaptureMessage("🕷🕷🕷 Spider message 🕷🕷🕷🕷");
        }
    }

    public void LogError()
    {
        if (CheckSomeFakeWork())
        {
            // Error logs get captured as messages and do not have a stacktrace attached by default. This is an opt-in feature.
            // Note: That stack traces generated for message events are provided without line numbers. See known limitations
            // https://docs.sentry.io/platforms/unity/troubleshooting/known-limitations/#line-numbers-missing-in-events-captured-through-debuglogerror-or-sentrysdkcapturemessage
            Debug.LogError("Debug.LogError() called");
        }
    }

    public void LogException()
    {
        if (CheckSomeFakeWork())
        {
            // Error logs get captured as messages and do not have a stacktrace attached by default. This is an opt-in feature.
            Debug.LogException(new NullReferenceException("Some bugs are harder to catch than others. 🦋"));
        }
    }

    // NoInlining ends up being inlined through L2CPP anyway. :(
    // We're checking some fake work here to prevent too aggressive optimization. That way, we can show off some proper
    // stack traces that are closer to real-world bugs and events.
    [MethodImpl(MethodImplOptions.NoInlining)]
    private static bool CheckSomeFakeWork() => DateTime.Now.Ticks > 0; // Always true but not optimizable

    private class CustomException : Exception
    {
        public CustomException(string message) : base(message)
        { }
    }
}


; }

.fa-droplet {
  --fa: "\f043"; }

.fa-tint {
  --fa: "\f043"; }

.fa-eraser {
  --fa: "\f12d"; }

.fa-earth-americas {
  --fa: "\f57d"; }

.fa-earth {
  --fa: "\f57d"; }

.fa-earth-america {
  --fa: "\f57d"; }

.fa-globe-americas {
  --fa: "\f57d"; }

.fa-person-burst {
  --fa: "\e53b"; }

.fa-dove {
  --fa: "\f4ba"; }

.fa-battery-empty {
  --fa: "\f244"; }

.fa-battery-0 {
  --fa: "\f244"; }

.fa-socks {
  --fa: "\f696"; }

.fa-inbox {
  --fa: "\f01c"; }

.fa-section {
  --fa: "\e447"; }

.fa-gauge-high {
  --fa: "\f625"; }

.fa-tachometer-alt {
  --fa: "\f625"; }

.fa-tachometer-alt-fast {
  --fa: "\f625"; }

.fa-envelope-open-text {
  --fa: "\f658"; }

.fa-hospital {
  --fa: "\f0f8"; }

.fa-hospital-alt {
  --fa: "\f0f8"; }

.fa-hospital-wide {
  --fa: "\f0f8"; }

.fa-wine-bottle {
  --fa: "\f72f"; }

.fa-chess-rook {
  --fa: "\f447"; }

.fa-bars-staggered {
  --fa: "\f550"; }

.fa-reorder {
  --fa: "\f550"; }

.fa-stream {
  --fa: "\f550"; }

.fa-dharmachakra {
  --fa: "\f655"; }

.fa-hotdog {
  --fa: "\f80f"; }

.fa-person-walking-with-cane {
  --fa: "\f29d"; }

.fa-blind {
  --fa: "\f29d"; }

.fa-drum {
  --fa: "\f569"; }

.fa-ice-cream {
  --fa: "\f810"; }

.fa-heart-circle-bolt {
  --fa: "\e4fc"; }

.fa-fax {
  --fa: "\f1ac"; }

.fa-paragraph {
  --fa: "\f1dd"; }

.fa-check-to-slot {
  --fa: "\f772"; }

.fa-vote-yea {
  --fa: "\f772"; }

.fa-star-half {
  --fa: "\f089"; }

.fa-boxes-stacked {
  --fa: "\f468"; }

.fa-boxes {
  --fa: "\f468"; }

.fa-boxes-alt {
  --fa: "\f468"; }

.fa-link {
  --fa: "\f0c1"; }

.fa-chain {
  --fa: "\f0c1"; }

.fa-ear-listen {
  --fa: "\f2a2"; }

.fa-assistive-listening-systems {
  --fa: "\f2a2"; }

.fa-tree-city {
  --fa: "\e587"; }

.fa-play {
  --fa: "\f04b"; }

.fa-font {
  --fa: "\f031"; }

.fa-table-cells-row-lock {
  --fa: "\e67a"; }

.fa-rupiah-sign {
  --fa: "\e23d"; }

.fa-magn


/*
 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the
 * Free Software Foundation; either version 2 of the License, or (at your
 * option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
 * more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program. If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef SelectableAI_h__
#define SelectableAI_h__

#include "FactoryHolder.h"

class DBPermit
{
    public:
        virtual ~DBPermit() { }
        virtual bool IsScriptNameAllowedInDB() const = 0;
};

template <class O, class AI, bool is_db_allowed = true>
struct SelectableAI : public FactoryHolder<AI, O>, public Permissible<O>, public DBPermit
{
    SelectableAI(std::string const& name) : FactoryHolder<AI, O>(name), Permissible<O>(), DBPermit() { }

    bool IsScriptNameAllowedInDB() const final override { return is_db_allowed; }
};

#endif // SelectableAI_h__


ture)),
                new JProperty(KeyQuantity, trade.Quantity.ToString(CultureInfo.InvariantCulture)),
                new JProperty(KeyTime, trade.Time.ToTimestamp()),
                new JProperty(KeyIsBuyerMaker, trade.IsBuyerMaker),
                new JProperty(KeyIsBestPriceMatch, trade.IsBestPriceMatch)
            };

            if (trade.BuyerOrderId != BinanceApi.NullId)
            {
                jObject.Add(new JProperty(KeyBuyerOrderId, trade.BuyerOrderId));
            }

            if (trade.SellerOrderId != BinanceApi.NullId)
            {
                jObject.Add(new JProperty(KeySellerOrderId, trade.SellerOrderId));
            }

            return jObject.ToString(Formatting.None);
        }

        private static Trade DeserializeTrade(JToken jToken, string symbol = null)
        {
            return new Trade(
                jToken[KeySymbol]?.Value<string>() ?? symbol,
                jToken[KeyId].Value<long>(),                                  // ID
                jToken[KeyPrice].Value<decimal>(),                            // price
                jToken[KeyQuantity].Value<decimal>(),                         // quantity
                jToken[KeyBuyerOrderId]?.Value<long>() ?? BinanceApi.NullId,  // buyer order ID
                jToken[KeySellerOrderId]?.Value<long>() ?? BinanceApi.NullId, // seller order ID
                jToken[KeyTime].Value<long>().ToDateTime(),                   // time
                jToken[KeyIsBuyerMaker].Value<bool>(),                        // is buyer maker
                jToken[KeyIsBestPriceMatch].Value<bool>());                   // is best price match
        }
    }
}


}
            }

            private float GetGlyphProperty(ushort c, int property)
            {
                // https://docs.microsoft.com/en-us/dotnet/api/system.windows.media.glyphtypeface?redirectedfrom=MSDN&view=netframework-4.0#remarks
                System.Windows.Media.GlyphTypeface gtf;

                if (!typeface.TryGetGlyphTypeface(out gtf))
                {
                    Logger.Error("GetGlyphProperty  GlyphTypeface = null");
                    return 0;
                }

                double retVal = 0;
                ushort gi;

                if (gtf.CharacterToGlyphMap.ContainsKey(c))
                { gi = gtf.CharacterToGlyphMap[c]; }
                else
                { Logger.Error("GetGlyphProperty  key not in CharacterToGlyphMap:{0}", c); return 1; }

                if (gtf != null)
                {
                    if (property == 0)
                        retVal = gtf.LeftSideBearings[gi];
                    if (property == 1)
                        retVal = gtf.AdvanceWidths[gi];
                    if (property == 2)
                        retVal = gtf.RightSid


          返回

          首页

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

    <meta http-equiv="Content-Type" content=
    "application/xhtml+xml; charset=iso-8859-1" />
    <title>
      5.36. Stripping
    </title>
    <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
    "text/css" media="print" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

        Linux From Scratch - Version 8.0-systemd

        Chapter 5. Constructing a Temporary System

          Prev

            Xz-5.2.3

          Next

            Changing Ownership

          Up

          Home

        5.36.
        Stripping

        The steps in this section are optional, but if the LFS partition is
        rather small, it is beneficial to learn that unnecessary items can be
        removed. The executables and libraries built so far contain about 70
        MB of unneeded debugging symbols. Remove those symbols with:

strip --strip-debug /tools/lib/*
/usr/bin/strip --strip-unneeded /tools/{,s}bin/*

        These commands will skip a number of files, reporting that it does
        not recognize their file format. Most of these are scripts instead of
        binaries. Also use the system strip command to include the strip
        binary in /tools.

        Take care not to use
        --strip-unneeded on the


i).Value.ElementAt(j).Value.KeyboardInput.Length == 0 &&
                        ExportPrep.ElementAt(i).Value.ElementAt(j).Value.JoystickInput.Length == 0)
                    {
                        st


       Forth.CoreWords.Rot.Call();
            // ( xt n addr - n addr xt )
            var xt = Stack.Pop();
            var addr = Stack.Pop();
            var ms = Stack.Pop();
            // ( - )
            try
            {
                if ((ms != 0) && (Forth.Ram.GetInt(addr) == 0))
                {
                    // only if non-zero and nothing already there
                    Forth.Ram.SetInt(addr, ms);
                    Forth.Ram.SetInt(addr + RAM.CellSize, xt);
                    Forth.CallDeferred("StartPeriodicTimer", id, ms, xt);
                }
            }
            catch (ArgumentOutOfRangeException)
            {
                Forth.Util.RprintTerm($" Timer ID out of range (maximum {Map.PeriodicTimerQty}).");
            }
        }

        public void GetTimerAddress()
        {
            // Utility to accept timer id and leave the start address of
            // its msec, xt pair
            // ( id - addr )
            Stack.Push(RAM.CellSize);
            Forth.CoreWords.TwoStar.Call();
            Forth.CoreWords.Star.Call();
            Stack.Push(Map.PeriodicStart);
            Forth.CoreWords.Plus.Call();
        }
    }
}


heme:dark){input[type=reset]{background-color:#0c151c;background-color:var(--button-base)}}input[type=button]{background-color:#d0cfcf;background-color:var(--button-base);padding-right:30px;padding-left:30px}@media (prefers-color-scheme:dark){input[type=button]{background-color:#0c151c;background-color:var(--button-base)}}button:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){button:hover{background:#040a0f;background:var(--button-hover)}}input[type=submit]:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){input[type=submit]:hover{background:#040a0f;background:var(--button-hover)}}input[type=reset]:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){input[type=reset]:hover{background:#040a0f;background:var(--button-hover)}}input[type=button]:hover{background:#9b9b9b;background:var(--button-hover)}@media (prefers-color-scheme:dark){input[type=button]:hover{background:#040a0f;background:var(--button-hover)}}input[type=color]{min-height:2rem;padding:8px;cursor:pointer}input[type=checkbox],input[type=radio]{height:1em;width:1em}input[type=radio]{border-radius:100%}input{vertical-align:top}label{vertical-align:middle;margin-bottom:4px;display:inline-block}button,input:not([type=checkbox]):not([type=radio]),input[type=range],select,textarea{-webkit-appearance:none}textarea{display:block;margin-right:0;box-sizing:border-box;resize:vertical}textarea:not([cols]){width:100%}textarea:not([rows]){min-height:40px;height:140px}select{background:#efefef url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='63' width='117' fill='%23161f27'%3E%3Cpath d='M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z'/%3E%3C/svg%3E") calc(100% - 12px) 50%/12px no-repeat;background:var(--background) var(--select-arrow) calc(100% - 12px) 50%/12px no-repeat;padding-right:35px}@media (prefers-color-scheme:dark){select{background:#161f27 url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' height='63' width='117' fill='%23efefef'%3E%3Cpath d='M115 2c-1-2-4-2-5 0L59 53 7 2a4 4 0 00-5 5l54 54 2 2 3-2 54-54c2-1 2-4 0-5z'/%3E%3C/svg%3E") calc(100% - 12px) 50%/12px no-repeat;background:var(--background) var(--select-arrow) calc(100% - 12px) 50%/12px no-repeat}}select::-ms-expand{display:none}select[multiple]{padding-right:10px;background-image:none;overflow-y:auto}input:focus{box-shadow:0 0 0 2px rgba(0,150,191,.67);box-shadow:0 0 0 2px var(--focus)}@media (prefers-color-scheme:dark){input:focus{box-shadow:0 0 0 2px rgba(0,150,191,.67);box-shadow:0 0 0 2px var(--focus)}}select:focus{box-shadow:0 0 0 2px rgba(0,150,191,.67);box-shadow:0 0 0 2px


entity.read_position()?;
            let vel = data.entity.read_velocity()?;

            let stack = ItemStack::new(
                Item::from_identifier(&data.item.item)
                    .ok_or_else(|| anyhow::anyhow!("invalid item {}", data.item.item))?,
                data.item.count,
            );

            let collectable_at = data.pickup_delay;

            Ok(create(stack, collectable_at as u64)
                .with(pos)
                .with(Velocity(glm::vec3(vel.x, vel.y, vel.z))))
        }
        _ => panic!("attempted to use item::load to load a non-item"),
    }
}
<reponame>nils-we97/rust_road_router-fork<gh_stars>10-100
#[macro_use]
extern crate rust_road_router;
use rust_road_router::{cli::CliErr, datastr::graph::*, report::*};
use std::{env, error::Error, path::Path};

fn main() -> Result<(), Box<dyn Error>> {
    let _reporter = enable_reporting("chpot_weight_scaling");

    let arg = &env::args().skip(1).next().ok_or(CliErr("No graph directory arg given"))?;
    let path = Path::new(arg);

    let mut exps_ctxt = push_collection_context("experiments".to_string());

    for factor in [
        1., 1.01, 1.02, 1.03, 1.04, 1.05, 1.06, 1.07, 1.08, 1.09, 1.1, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.2, 1.21, 1.22, 1.23, 1.24, 1.25,
    ]
    .iter()
    {
        let _exp_ctx = exps_ctxt.push_collection_item();
        report!("experiment", "weight_scale");
        report!("factor", factor);

        rust_road_router::experiments::chpot::run(path, |_graph, _rng, travel_time| {
            for weight in travel_time.iter_mut() {
                *weight = (*weight as f64 * factor) as Weight;
            }

            Ok(())
        })?;
    }

    Ok(())
}
<filename>splinterd/tests/framework/network.rs
// Copyright 2018-2022 Cargill Incorporated
//
// 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.

//! Contains the implementation of `Network`.

use std::collections::HashMap;
use std::fs::File;

use cylinder::{secp256k1::Secp256k1Context, Context, Signer};
use splinter::error::{InternalError, InvalidArgumentError};
use splinter::registry::Node as RegistryNode;
use splinter::threading::lifecycle::ShutdownHandle;
use splinterd::node::{
    Node, NodeBuilder, PermissionConfig, RestApiVariant, RunnableNode, ScabbardConfigBuilder,
};
use tempdir::TempDir;

use super::circuit_builder::CircuitBuilder;

pub struct Network {
    default_rest_api_variant: RestApiVariant,
    nodes: Vec<NetworkNode>,
    temp_dirs: HashMap<String, TempDir>,
    external_registries: Option<Vec<String>>,
    num_of_keys: usize,
    cylinder_auth: bool,
    permission_config: Option<Vec<PermissionConfig>>,
    admin_signer: Option<Box<dyn Signer>>,
    auth: Option<String>,
}

pub enum NetworkNode {
    Node(Node),
    RunnableNode(RunnableNode),
}

impl Network {
    pub fn new() -> Network {
        Network {
            defau


1] = HexToUpperChar(a);
			return ptr + 2;
		}

		private static unsafe char* Hex32ToUpperChars(char* ptr, int a)
		{
			Contract.Debug.Requires(ptr != null);
			ptr[0] = HexToUpperChar(a >> 28);
			ptr[1] = HexToUpperChar(a >> 24);
			ptr[2] = HexToUpperChar(a >> 20);
			ptr[3] = HexToUpperChar(a >> 16);
			ptr[4] = HexToUpperChar(a >> 12);
			ptr[5] = HexToUpperChar(a >> 8);
			ptr[6] = HexToUpperChar(a >> 4);
			ptr[7] = HexToUpperChar(a);
			return ptr + 8;
		}

		[Pure]
		private static unsafe string EncodeOnePart(ulong value, bool quotes, bool upper)
		{
			int size = 16 + (quotes ? 2 : 0);
			char* buffer = stackalloc char[24]; // max 18 but round up to 24

			char* ptr = buffer;
			if (quotes) *ptr++ = '{';
			if (upper)
			{
				ptr = Hex32ToUpperChars(ptr, (int) (value >> 32));
				ptr = Hex32ToUpperChars(ptr, unchecked((int) value));
			}
			else
			{
				ptr = Hex32ToLowerChars(ptr, (int) (value >> 32));
				ptr = Hex32ToLowerChars(ptr, unchecked((int) value));
			}
			if (quotes) *ptr++ = '}';

			Contract.Debug.Ensures(ptr == buffer + size);
			return new(buffer, 0, size);
		}

		[Pure]
		private static unsafe string EncodeTwoParts(ulong value, char separator, bool quotes, bool upper)
		{
			int size = 16 + 1 + (quotes ? 2 : 0);
			char* buffer = stackalloc char[24]; // max 19 but round up to 24

			char* ptr = buffer;
			if (quotes) *ptr++ = '{';
			if (upper)
			{
				ptr = Hex32ToUpperChars(ptr, (int) (value >> 32));
				*ptr++ = separator;
				ptr = Hex32ToUpperChars(ptr, unchecked((int) value));
			}
			else
			{
				ptr = Hex32ToLowerChars(ptr, (int) (value >> 32));
				*ptr++ = separator;
				ptr = Hex32ToLowerChars(ptr, unchecked((int) value));
			}
			if (quotes) *ptr++ = '}';

			Contract.Debug.Ensures(ptr == buffer + size);
			return new(buffer, 0, size);
		}

		[Pure]
		private static unsafe string EncodeEightParts(ulong value, char separator, bool quotes, bool upper)
		{
			int size = 16 + 7 + (quotes ? 2 : 0);
			char* buffer = stackalloc char[32]; // max 25 but round up to 32

			char* ptr = buffer;
			if (quotes) *ptr++ = '{';
			if (upper)
			{
				ptr = Hex8ToUpperChars(ptr, (byte) (value >> 56));
				*ptr++ = separator;
				ptr = Hex8ToUpperChars(ptr, (byte) (value >> 48));
				*ptr++ = separator;
				ptr = Hex8ToUpperChars(ptr, (byte) (value >> 40));
				*ptr++ = separator;
				ptr = Hex8ToUpperChars(ptr, (byte) (value >> 32));
				*ptr++ = separator;
				ptr = Hex8ToUpperChars(ptr, (byte) (value >> 24));
				*ptr++ = separator;
				ptr = Hex8ToUpperChars(ptr, (byte) (value >> 16));
				*ptr++ = separator;
				ptr = Hex8ToUpperChars(ptr, (byte) (value >> 8));
				*ptr++ = separator;
				ptr = Hex8ToUpperChars(ptr, (byte) value);
			}
			else
			{
				ptr = Hex8ToLowerChars(ptr, (byte) (va


import nmap
import json

nm = nmap.PortScanner()

def perform_full_scan(target):
    try:
        # Perform a comprehensive scan including host discovery, port scanning, service version detection,
        # OS fingerprinting, and script scanning
        nm.scan(hosts=target, arguments='-sS -sV -O --script=default')
    except nmap.PortScannerError as e:
        # Handle potential errors during the scan
        print(f"Error: {e}")
        return

    # Collect scan results in a structured format
    scan_results = {}

    # Iterate through all discovered hosts
    for host in nm.all_hosts():
        # Collect relevant information about each host
        host_data = {
            'hostname': nm[host].hostname(),
            'state': nm[host].state(),
            'os_info': nm[host]['osmatch'][0]['name'] if 'osmatch' in nm[host] else 'Unknown',
            'tcp_ports': {port: nm[host]['tcp'][port] for port in nm[host]['tcp'].keys()} if 'tcp' in nm[host] else {},
            'udp_ports': {port: nm[host]['udp'][port] for port in nm[host]['udp'].keys()} if 'udp' in nm[host] else {},
            'scripts': {script_name: nm[host]['scripts'][script_name] for script_name in nm[host]['scripts'].keys()} if 'scripts' in nm[host] else {}
        }
        # Store the host data in the scan_results dictionary
        scan_results[host] = host_data

    # Save the scan results to a JSON file
    json_file_path = f'04-full_scan_results_{target.replace("/", "_")}.json'
    with open(json_file_path, 'w') as json_file:
        json.dump(scan_results, json_file, indent=2)
        print(f"Full scan results saved to: {json_file_path}")

if __name__ == "__main__":
    # Prompt the user to enter the target IP address or range
    target = input("Enter target IP address or range: ")

    # Perform the comprehensive scan
    perform_full_scan(target)