e]={}}));const hl=ul,fl=Ua.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),pl=Symbol("internals");function dl(e){return e&&String(e).trim().toLowerCase()}function gl(e){return!1===e||null==e?e:Ua.isArray(e)?e.map(gl):String(e)}function yl(e,t,r,n,i){return Ua.isFunction(n)?n.call(this,t,r):(i&&(t=r),Ua.isString(t)?Ua.isString(n)?-1!==t.indexOf(n):Ua.isRegExp(n)?n.test(t):void 0:void 0)}class ml{constructor(e){e&&this.set(e)}set(e,t,r){const n=this;function i(e,t,r){const i=dl(t);if(!i)throw new Error("header name must be a non-empty string");const o=Ua.findKey(n,i);(!o||void 0===n[o]||!0===r||void 0===r&&!1!==n[o])&&(n[o||t]=gl(e))}const o=(e,t)=>Ua.forEach(e,((e,r)=>i(e,r,t)));if(Ua.isPlainObject(e)||e instanceof this.constructor)o(e,t);else if(Ua.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))o((e=>{const t={};let r,n,i;return e&&e.split("\n").forEach((function(e){i=e.indexOf(":"),r=e.substring(0,i).trim().toLowerCase(),n=e.substring(i+1).trim(),!r||t[r]&&fl[r]||("set-cookie"===r?t[r]?t[r].push(n):t[r]=[n]:t[r]=t[r]?t[r]+", "+n:n)})),t})(e),t);else if(Ua.isHeaders(e))for(const[t,n]of e.entries())i(n,t,r);else null!=e&&i(t,e,r);return this}get(e,t){if(e=dl(e)){const r=Ua.findKey(this,e);if(r){const e=this[r];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),r=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let n;for(;n=r.exec(e);)t[n[1]]=n[2];return t}(e);if(Ua.isFunction(t))return t.call(this,e,r);if(Ua.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=dl(e)){const r=Ua.findKey(this,e);return!(!r||void 0===this[r]||t&&!yl(0,this[r],r,t))}return!1}delete(e,t){const r=this;let n=!1;function i(e){if(e=dl(e)){const i=Ua.findKey(r,e);!i||t&&!yl(0,r[i],i,t)||(delete r[i],n=!0)}}return Ua.isArray(e)?e.forEach(i):i(e),n}clear(e){const t=Object.keys(this);let r=t.length,n=!1;for(;r--;){const i=t[r];e&&!yl(0,this[i],i,e,!0)||(delete this[i],n=!0)}return n}normalize(e){const t=this,r={};return Ua.forEach(this,((n,i)=>{const o=Ua.findKey(r


  492.000000
75%      538.000000
max      662.000000
```

### 5.2。线图

时间序列数据集的线图可以提供对该问题的大量见解。

下面的示例创建并显示数据集的线图。

```py
from pandas import Series
from matplotlib import pyplot
series = Series.from_csv('dataset.csv')
series.plot()
pyplot.show()
```

运行示例并查看绘图。注意系列中任何明显的时间结构。

该图的一些观察结果包括：

*   随着时间的推移，用水量似乎呈上升趋势。
*   虽然存在一些大的波动，但似乎没有任何明显的异常值。
*   该系列的最后几年有一个下降的趋势。

![Annual Water Usage Line Plot](img/e4cce353295a4adbd09ce19f7fd627f1.jpg)

年度用水线图

显式建模趋势组件并将其删除可能会有一些好处。您还可以探索使用一个或两个级别的差分，以使系列静止。

### 5.3。密度图

回顾观察密度图可以进一步了解数据结构。

下面的示例创建了没有任何时间结构的观测的直方图和密度图。

```py
from pandas import Series
from matplotlib import pyplot
series = Series.from_csv('dataset.csv')
pyplot.figure(1)
pyplot.subplot(211)
series.hist()
pyplot.subplot(212)
series.plot(kind='kde')
pyplot.show()
```

运行示例并查看绘图。

这些情节的一些观察包括：

*   分布不是高斯分布，而是非常接近。
*   该分布具有较长的右尾并且可以表示指数分布或双高斯分布。

![Annual Water Usage Density Plots](img/5240057f64a22992a2209c6406435d89.jpg)

年用水密度图

这表明在建模之前可能值得探索数据的一些功率变换。

### 5.4。盒子和晶须图

我们可以将年度数据分组十年，并了解每十年观测的传播以及这可能会如何变化。

我们确实希望看到一些趋势（增加平均值或中位数），但看看分布的其他部分可能会如何变化可能会很有趣。

下面的例子将观察结果按十年分组，并为每个十年的观测创建一个盒子和须状图。过去十年只有 9 年，可能与其他几十年没有用。因此，仅绘制了 1885 年至 1944 年之间的数据。

```py
from pandas import Series
from pandas import DataFrame
from pandas import TimeGrouper
from matplotlib import pyplot
series = Series.from_csv('dataset.csv')
groups = series['1885':'1944'].groupby(TimeGrouper('10AS'))
decades = DataFrame()
for name, group in groups:
	decades[name.year] = group.values
decades.boxplot()
pyplot.show()
```

运行该示例并排创建 6 个框和胡须图，一个用于 60 年的选定数据。

审查该情节的一些观察包括：


lureReason reason, string message)
        {
            this.productId = productId;
            this.reason = reason;
            this.message = message;
        }

        /// <summary>
        /// The store specific product ID.
        /// </summary>
        public string productId { get; private set; }

        /// <summary>
        /// The reason for the failure.
        /// </summary>
        public PurchaseFailureReason reason { get; private set; }

        /// <summary>
        /// The message containing details about the failed purchase.
        /// </summary>
        public String message { get; private set; }
    }
}


eviate this issue.

    Examples
    --------
    >>> import numpy as np
    >>> a = np.array([[1, np.nan], [3, 4]])
    >>> np.nanstd(a)
    1.247219128924647
    >>> np.nanstd(a, axis=0)
    array([1., 0.])
    >>> np.nanstd(a, axis=1)
    array([0.,  0.5]) # may vary

    """
    var = nanvar(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
                 keepdims=keepdims, where=where, mean=mean,
                 correction=correction)
    if isinstance(var, np.ndarray):
        std = np.sqrt(var, out=var)
    elif hasattr(var, 'dtype'):
        std = var.dtype.type(np.sqrt(var))
    else:
        std = np.sqrt(var)
    return std


Offset4 {
    margin-left: 33.33333333333333%;
  }
  .ms-u-mdOffset3 {
    margin-left: 25%;
  }
  .ms-u-mdOffset2 {
    margin-left: 16.666666666666664%;
  }
  .ms-u-mdOffset1 {
    margin-left: 8.333333333333332%;
  }
  .ms-u-mdOffset0 {
    margin-left: 0;
  }
}

// Large screens
@media (min-width: $ms-screen-lg-min) {
  .ms-u-lg12 {
    @include ms-u-lg12;
  }
  .ms-u-lg11 {
    @include ms-u-lg11;
  }
  .ms-u-lg10 {
    @include ms-u-lg10;
  }
  .ms-u-lg9 {
    @include ms-u-lg9;
  }
  .ms-u-lg8 {
    @include ms-u-lg8;
  }
  .ms-u-lg7 {
    @include ms-u-lg7;
  }
  .ms-u-lg6 {
    @include ms-u-lg6;
  }
  .ms-u-lg5 {
    @include ms-u-lg5;
  }
  .ms-u-lg4 {
    @include ms-u-lg4;
  }
  .ms-u-lg3 {
    @include ms-u-lg3;
  }
  .ms-u-lg2 {
    @include ms-u-lg2;
  }
  .ms-u-lg1 {
    @include ms-u-lg1;
  }
  .ms-u-lgPull12 {
    @include ms-u-lgPull12;
  }
  .ms-u-lgPull11 {
    @include ms-u-lgPull11;
  }
  .ms-u-lgPull10 {
    @include ms-u-lgPull10;
  }
  .ms-u-lgPull9 {
    @include ms-u-lgPull9;
  }
  .ms-u-lgPull8 {
    @include ms-u-lgPull8;
  }
  .ms-u-lgPull7 {
    @include ms-u-lgPull7;
  }
  .ms-u-lgPull6 {
    @include ms-u-lgPull6;
  }
  .ms-u-lgPull5 {
    @include ms-u-lgPull5;
  }
  .ms-u-lgPull4 {
    @include ms-u-lgPull4;
  }
  .ms-u-lgPull3 {
    @include ms-u-lgPull3;
  }
  .ms-u-lgPull2 {
    @include ms-u-lgPull2;
  }
  .ms-u-lgPull1 {
    @include ms-u-lgPull1;
  }
  .ms-u-lgPull0 {
    @include ms-u-lgPull0;
  }
  .ms-u-lgPush12 {
    @include ms-u-lgPush12;
  }
  .ms-u-lgPush11 {
    @include ms-u-lgPush11;
  }
  .ms-u-lgPush10 {
    @include ms-u-lgPush10;
  }
  .ms-u-lgPush9 {
    @include ms-u-lgPush9;
  }
  .ms-u-lgPush8 {
    @include ms-u-lgPush8;
  }
  .ms-u-lgPush7 {
    @include ms-u-lgPush7;
  }
  .ms-u-lgPush6 {
    @include ms-u-lgPush6;
  }
  .ms-u-lgPush5 {
    @include ms-u-lgPush5;
  }
  .ms-u-lgPush4 {
    @include ms-u-lgPush4;
  }
  .ms-u-lgPush3 {


[0].Equal(nil, columnF), IsTrue)
	}
}
// Copyright 2018 PingCAP, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// See the License for the specific language governing permissions and
// limitations under the License.

package memo

import (
	"fmt"

	"github.com/pingcap/tidb/expression"
	plannercore "github.com/pingcap/tidb/planner/core"
)

// GroupExpr is used to store all the logically equivalent expressions which
// have the same root operator. Different from a normal expression, the
// Children of a Group expression are expression Groups, not expressions.
// Another property of Group expression is that the child Group references will
// never be changed once the Group expression is created.
type GroupExpr struct {
	ExprNode plannercore.LogicalPlan
	Children []*Group
	Explored bool
	Group    *Group

	selfFingerprint string
}

// NewGroupExpr creates a GroupExpr based on a logical plan node.
func NewGroupExpr(node plannercore.LogicalPlan) *GroupExpr {
	return &GroupExpr{
		ExprNode: node,
		Children: nil,
		Explored: false,
	}
}

// FingerPrint gets the unique fingerprint of the Group expression.
func (e *GroupExpr) FingerPrint() string {
	if e.selfFingerprint == "" {
		e.selfFingerprint = fmt.Sprintf("%v", e.ExprNode.ID())
		for i := range e.Children {
			e.selfFingerprint += e.Children[i].FingerPrint()
		}
	}
	return e.selfFingerprint
}

// SetChildren sets Children of the GroupExpr.
func (e *GroupExpr) SetChildren(children ...*Group) {
	e.Children = children
}

// Schema gets GroupExpr's Schema.
func (e *GroupExpr) Schema() *expression.Schema {
	return e.Group.Prop.Schema
}
// Copyright 2018 PingCAP, Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// See the License for the specific language governing permissions and
// limitations under the License.

package memo

import (
	"context"
	"testing"

	. "github.com/pingcap/check"
	"github.com/pingcap/tidb/expression"
	"github.com/pingcap/tidb/infoschema"
	"github.com/pingcap/tidb/parser"
	"github.com/pingcap/tidb/parser/model"
	plannercore "github.com/pingcap/tidb/planner/core"
	"github.com/pingcap/tidb/planner/property"
	"github.com/pingcap/tidb/sessionct


lui        $a1, %hi(g_Pad)
/* 3B1E0 8004A9E0 7873A524 */  addiu      $a1, $a1, %lo(g_Pad)
/* 3B1E4 8004A9E4 0880013C */  lui        $at, %hi(g_Spyro + 0x1F4)
/* 3B1E8 8004A9E8 4C8C20AC */  sw         $zero, %lo(g_Spyro + 0x1F4)($at)
/* 3B1EC 8004A9EC C24D010C */  jal        func_80053708
/* 3B1F0 8004A9F0 00000000 */   nop
/* 3B1F4 80


5t-45 19h-128q-26 0-45-19t-19-45v-1408q0-26 19-45t45-19h128q26 0 45 19t19 45v678q4-10 13-19z");
		svgObj.put("calculator",
				"M384 1536q0-53-37.5-90.5t-90.5-37.5-90.5 37.5-37.5 90.5 37.5 90.5 90.5 37.5 90.5-37.5 37.5-90.5zm384 0q0-53-37.5-90.5t-90.5-37.5-90.5 37.5-37.5 90.5 37.5 90.5 90.5 37.5 90.5-37.5 37.5-90.5zm-384-384q0-53-37.5-90.5t-90.5-37.5-90.5 37.5-37.5 90.5 37.5 90.5 90.5 37.5 90.5-37.5 37.5-90.5zm768 384q0-53-37.5-90.5t-90.5-37.5-90.5 37.5-37.5 90.5 37.5 90.5 90.5 37.5 90.5-37.5 37.5-90.5zm-384-384q0-53-37.5-90.5t-90.5-37.5-90.5 37.5-37.5 90.5 37.5 90.5 90.5 37.5 90.5-37.5 37.5-90.5zm-384-384q0-53-37.5-90.5t-90.5-37.5-90.5 37.5-37.5 90.5 37.5 90.5 90.5 37.5 90.5-37.5 37.5-90.5zm768 384q0-53-37.5-90.5t-90.5-37.5-90.5 37.5-37.5 90.5 37.5 90.5 90.5 37.5 90.5-37.5 37.5-90.5zm-384-384q0-53-37.5-90.5t-90.5-37.5-90.5 37.5-37.5 90.5 37.5 90.5 90.5 37.5 90.5-37.5 37.5-90.5zm768 768v-384q0-52-38-90t-90-38-90 38-38 90v384q0 52 38 90t90 38 90-38 38-90zm-384-768q0-53-37.5-90.5t-90.5-37.5-90.5 37.5-37.5 90.5 37.5 90.5 90.5 37.5 90.5-37.5 37.5-90.5zm384-320v-256q0-26-19-45t-45-19h-1280q-26 0-45 19t-19 45v256q0 26 19 45t45 19h1280q26 0 45-19t19-45zm0 320q0-53-37.5-90.5t-90.5-37.5-90.5 37.5-37.5 90.5 37.5 90.5 90.5 37.5 90.5-37.5 37.5-90.5zm128-640v1536q0 52-38 90t-90 38h-1408q-52 0-90-38t-38-90v-1536q0-52 38-90t90-38h1408q52 0 90 38t38 90z");
		svgObj.put("paragraph",
				"M1534 189v73q0 29-18.5 61t-42.5 32q-50 0-54 1-26 6-32 31-3 11-3 64v1152q0 25-18 43t-43 18h-108q-25 0-43-18t-18-43v-1218h-143v1218q0 25-17.5 43t-43.5 18h-108q-26 0-43.5-18t-17.5-43v-496q-147-12-245-59-126-58-192-179-64-117-64-259 0-166 88-286 88-118 209-159 111-37 417-37h479q25 0 43 18t18 43z");
		svgObj.put("scissors",
				"M960


"RTV_RTT",
		"RTV_RTTVAR",
		"RTV_SPIPE",
		"RTV_SSTHRESH",
		"RTV_WEIGHT",
		"RT_CACHING_CONTEXT",
		"RT_CLASS_DEFAULT",
		"RT_CLASS_LOCAL",
		"RT_CLASS_MAIN",
		"RT_CLASS_MAX",
		"RT_CLASS_UNSPEC",
		"RT_DEFAULT_FIB",
		"RT_NORTREF",
		"RT_SCOPE_HOST",
		"RT_SCOPE_LINK",
		"RT_SCOPE_NOWHERE",
		"RT_SCOPE_SITE",
		"RT_SCOPE_UNIVERSE",
		"RT_TABLEID_MAX",
		"RT_TABLE_COMPAT",
		"RT_TABLE_DEFAULT",
		"RT_TABLE_LOCAL",
		"RT_TABLE_MAIN",
		"RT_TABLE_MAX",
		"RT_TABLE_UNSPEC",
		"RUSAGE_CHILDREN",
		"RUSAGE_SELF",
		"RUSAGE_THREAD",
		"Radvisory_t",
		"RawConn",
		"RawSockaddr",
		"RawSockaddrAny",
		"RawSockaddrDatalink",
		"RawSockaddrInet4",
		"RawSockaddrInet6",
		"RawSockaddrLinklayer",
		"RawSockaddrNetlink",
		"RawSockaddrUnix",
		"RawSyscall",
		"RawSyscall6",
		"Read",
		"ReadConsole",
		"ReadDirectoryChanges",
		"ReadDirent",
		"ReadFile",
		"Readlink",
		"Reboot",
		"Recvfrom",
		"Recvmsg",
		"RegCloseKey",
		"RegEnumKeyEx",
		"RegOpenKeyEx",
		"RegQueryInfoKey",
		"RegQueryValueEx",
		"RemoveDirectory",
		"Removexattr",
		"Rename",
		"Renameat",
		"Revoke",
		"Rlimit",
		"Rmdir",
		"RouteMessage",
		"RouteRIB",
		"RoutingMessage",
		"RtAttr",
		"RtGenmsg",
		"RtMetrics",
		"RtMsg",
		"RtMsghdr",
		"RtNexthop",
		"Rusage",
		"SCM_BINTIME",
		"SCM_CREDENTIALS",
		"SCM_CREDS",
		"SCM_RIGHTS",
		"SCM_TIMESTAMP",
		"SCM_TIMESTAMPING",
		"SCM_TIMESTAMPNS",
		"SCM_TIMESTAMP_MONOTONIC",
		"SHUT_RD",
		"SHUT_RDWR",
		"SHUT_WR",
		"SID",
		"SIDAndAttributes",
		"SIGABRT",
		"SIGALRM",
		"SIGBUS",
		"SIGCHLD",
		"SIGCLD",
		"SIGCONT",
		"SIGEMT",
		"SIGFPE",
		"SIGHUP",
		"SIGILL",
		"SIGINFO",
		"SIGINT",
		"SIGIO",
		"SIGIOT",
		"SIGKILL",
		"SIGLIBRT",
		"SIGLWP",
		"SIGPIPE",
		"SIGPOLL",
		"SIGPROF",
		"SIGPWR",
		"SIGQUIT",
		"SIGSEGV",
		"SIGSTKFLT",
		"SIGSTOP",
		"SIGSYS",
		"SIGTERM",
		"SIGTHR",
		"SIGTRAP",
		"SIGTSTP",
		"SIGTTIN",
		"SIGTTOU",
		"SIGUNUSED",
		"SIGURG


configModel.createGroup(
			"subscriptions.config.auto",
			new Parameter[]{
					auto_start,
					min_auto_start_size,
					max_auto_start_size,
					mark_as_read_after,
					hash_dirs,
			});

			// int param fires intermediate events so we have to rely on the save :(

		pluginConfigListener = new PluginConfigListener() {
			@Override
			public void
			configSaved() {
				subs_man.setMaxNonDeletedResults(max_results.getValue());
				subs_man.setAutoStartMinMB(min_auto_start_size.getValue());
				subs_man.setAutoStartMaxMB(max_auto_start_size.getValue());
				subs_man.setAutoDownloadMarkReadAfterDays(mark_as_read_after.getValue());
			}
		};
		default_pi.getPluginconfig().addListener(pluginConfigListener);

			// rss

		final BooleanParameter rss_enable =
			configModel.addBooleanParameter2(
				"subscriptions.rss.enable", "subscriptions.rss.enable",
				subs_man.isRSSPublishEnabled());

		rss_enable.addListener(
			new ParameterListener()
			{
				@Override
				public void
				parameterChanged(
					Parameter param)
				{
					subs_man.setRSSPublishEnabled( rss_enable.getValue());
				}
			});

		HyperlinkParameter rss_view =
			configModel.addHyperlinkParameter2(
				"device.rss.view", subs_man.getRSSLink());

		rss_enable.addEnabledOnSelection( rss_view );

		configModel.createGroup(
			"device.rss.group",
			new Parameter[]
			{
					rss_enable, rss_view,
			});
	}

	private void
	createSubsColumns(
		TableManager table_manager )
	{
		final TableCellRefreshListener	subs_refresh_listener =
			new TableCellRefreshListener()
			{
				@Override
				public void
				refresh(
					TableCell _cell )
				{
					TableCellSWT cell = (TableCellSWT)_cell;

					SubscriptionManager subs_man = SubscriptionManagerFactory.getSingleton();

					Download	dl = (Download)cell.getDataSource();

					if ( dl == null ){

						return;
					}

					Torrent	torrent = dl.getTorrent();

					if ( torrent != null ){

						Subscription[] subs = subs_man.getKnownSubscriptions( torrent.getHash());

						int	num_subscribed		= 0;
						int	num_unsubscribed	= 0;

						for (int i=0;i<subs.length;i++){

							if ( subs[i].isSubscribed()){

								num_subscribed++;

							}else{

								num_unsubscribed++;
							}
						}

						Graphic graphic;
						String	tooltip;

						int height = cell.getHeight();

						int	sort_order = 0;

						if ( subs.length == 0 ){

							graphic = null;
							tooltip	= null;

						}else{

							if ( num_subscribed == subs.length ){

								graphic = height >= 22?icon_rss_all_add_big:icon_rss_all_add_small;

								tooltip = MessageText.getString( "subscript.all.subscribed" );

							}else if ( num_subscribed > 0 ){

								graphic = height >= 22?icon_rss_some_add_big:icon_rss_some_add_small;

								tooltip = MessageText.getString( "subscript.some.subscribed" );

								sort_order	= 10000;

							}else{

								graphic = height >= 22?icon_rss_big:icon_rss_small;

								tooltip = MessageText.getString( "subscript.none.subscribed" );

								sort_order	= 1000000;
							}
						}

						sort_order += 1000*num_unsubscribed + num_subscribed;

						cell.setMarginHeight(0);
						cell.setGraphic( graphic );
						cell.


äuberung sind nur die ersten drei zu erkennen: \'NOG...\'$B$BDies könnten entweder die Initialen des ursprünglichen Besitzers oder die des Herstellers des Rings sein. Den Ring behalten...oder \'NOG\' suchen - Entscheidungen, Entscheidungen...",
    ["O"] = "Ihr könnt den Ring entweder behalten oder die Person finden, die für die Prägung und Gravuren auf der Innenseite des Rings verantwortlich ist.",
    ["T"] = "Die Rückkehr des Rings",
  },
  [2950] = {
    ["D"] = "Nein, nein, nein - ich behaupte nicht plötzlich, der Ring sei meiner. Normalerweise mache ich so etwas nicht, aber Eure Information über die Dunkeleisenzwerge war sehr nützlich. Ich werde diesen Ring für Euch so verbessern, dass selbst der, der dieses einfache kleine Ding hergestellt hat, es nicht hätte besser machen können. Wahrscheinlich war es irgendein Gnom...$B$BWenn Ihr mir einen Barren Silber, einen Moosachat und dreißig Silbermünzen bringt, verziere ich den Ring damit derart, dass seine Magie noch verstärkt wird. Interessiert?",
    ["O"] = "Bringt Nogg in Orgrimmar den glänzenden Goldring, einen Silberbarren, einen Moosachat und 30 Silbermünzen.",
    ["T"] = "Noggs Ringerneuerung",
  },
  [2953] = {
    ["D"] = "",
    ["O"] = "",
    ["T"] = "Funkelmatastisch",
  },
  [2954] = {
    ["D"] = "Willkommen - Ich bin der Wächter des Eingangs. Ich werde Euch den Zugang zum Areal von Uldum nur gewähren, wenn Ihr die Platten von Uldum in Euren Scheibensatz integriert habt.$B$BDas Erscheinen des Steinbehüters von Norgannon muss die Reaktion sein, die man sich davon erhoffte, als man Euch mit den Platinscheiben in die Tanariswüste schickte. Wie Euch aufgetragen, werdet Ihr die Geschichte, die hinter dem Steinbehüter steckt, herausfinden müssen, bevor Ihr weitermachen könnt.",
    ["O"] = "Findet den Zweck des Steinbehüters von Norgannon heraus und interagiert dann mit dem Podest von Uldum in der Tanariswüste.",
    ["T"] = "Der Steinbehüter",
  },
  [2962] = {
    ["D"] = "Eure Probe war nicht nur von unzureichender Menge, sondern auch noch verunreinigt.$B$BWas wir brauchen, ist mehr von dem grünen Leuchten. Die Troggs sind offensichtlich nicht stark genug verstrahlt, um unseren Ansprüchen zu genügen. Ihr werdet nach Gnomeregan gehen und etwas der radioaktiven Ablagerung direkt von der Quelle besorgen müssen. Ich spreche von den bestrahlten Schleimen, Lauerern und Schrecken. Seid gewarnt, diese Art von Ablagerung ist schwer abzufüllen. Es könnte Euch mehrere Versuche mit der Phiole kosten, bis Ihr eine geeignete Probe bergen könnt.",
    ["O"] = "Reist nach Gnomeregan und bringt etwas von der hoch konzentrierten radioaktiven Ablagerung zurück. Seid gewarnt, die Ablagerung ist instabil und wird ziemlich schnell zerfallen.$B$BOzzie wird außerdem Eure schwere bleierne Phiole benötigen, nachdem die Aufgabe erledigt ist.",
    ["T"] = "Das einzi


Check if jsdiff library is loaded.
        if (typeof Diff === "undefined") {
          console.error("Error: jsdiff library (Diff) is not loaded or defined.");
          // This case should ideally be caught by script.onerror, but keeping as a fallback.
          if (originalDiffOutput) {
            originalDiffOutput.innerHTML =
              '
Error: Diff library failed to load. Please try refreshing the page or check your internet connection.
';
          }
          if (modifiedDiffOutput) {
            modifiedDiffOutput.innerHTML = ""; // Clear modified output if error
          }
          return; // Exit since jsdiff is not loaded.
        }

        // The injected codes to display.
        const codes = JSON.parse(`{
  "old_index": "1574",
  "old_code": "# YOUR CODE\\nimport numpy as np\\nimport pandas as pd\\nfrom lightgbm import LGBMRegressor\\nimport xgboost as xgb\\nfrom typing import Any\\n\\ndef fit_and_predict_fn(\\n    train_x: pd.DataFrame,\\n    train_y: pd.Series,\\n    test_x: pd.DataFrame,\\n    config: dict[str, Any]\\n) -> pd.DataFrame:\\n    \\"\\"\\"Make probabilistic predictions for test_x by modeling train_x to train_y.\\n\\n    The model uses an ensemble of LightGBM and XGBoost models for quantile regression.\\n    It incorporates time-series features (including lagged target variables such as y_t-1, y_t-4, etc.,\\n    as specified by \`lag_weeks\` in the config), a population-normalized and transformed\\n    target variable, and location information. The approach uses an iterative prediction\\n    strategy for the test set to correctly calculate lagged and rolling features for\\n    future steps, using median predictions to recursively inform future feature generation.\\n\\n    This version aims to generalize well by:\\n    - Allowing configuration of LGBM and XGBoost parameters.\\n    - Supporting different target transformations (fourth_root, log1p, sqrt, or none).\\n    - Implementing robust feature engineering including lags, differences, and rolling statistics.\\n    - Using an iterative forecasting approach for multi-step predictions.\\n    - Including post-processing to ensure non-negative, monotonic, and sufficiently spread quantile predictions.\\n    - Addressing numerical stability with appropriate clipping and fallback values.\\n\\n    Args:\\n        train_x (pd.DataFrame): Training features.\\n        train_y (pd.Series): Training target values (Total COVID-19 Admissions).\\n        test_x (pd.DataFrame): Test features (DataFrame, same features as \`train_x\`, but for future time periods).\\n        config (dict[str, Any]): Configuration parameters for the model.\\n\\n    Returns:\\n        pd.DataFrame: DataFrame with quantile predictions for each row in test_x.\\n                      Columns are named 'quantile_0.XX'.\\n    \\"\\"\\"\\n    QUANTILES = [\\n        0.01, 0.025, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5,\\n        0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 0.975, 0.99\\n    ]\\n    TARGET_COL = 'Total COVID-19 Admissions'\\n    DATE_COL = 'target_end_date'\\n    LOCATION_COL = 'location'\\n    POPULATION_COL = 'population'\\n    HORIZON_COL = 'horiz


patch
  factory Uint8ClampedList.fromList(List<int> elements) =>
      U8ClampedList(elements.length)..setRange(0, elements.length, elements);
}

@patch
class Int16List {
  @patch
  factory Int16List(int length) => I16List(length);

  @patch
  factory Int16List.fromList(List<int> elements) =>
      I16List(elements.length)..setRange(0, elements.length, elements);
}

@patch
class Uint16List {
  @patch
  factory Uint16List(int length) => U16List(length);

  @patch
  factory Uint16List.fromList(List<int> elements) =>
      U16List(elements.length)..setRange(0, elements.length, elements);
}

@patch
class Int32List {
  @patch
  factory Int32List(int length) => I32List(length);

  @patch
  factory Int32List.fromList(List<int> elements) =>
      I32List(elements.length)..setRange(0, elements.length, elements);
}

@patch
class Uint32List {
  @patch
  factory Uint32List(int length) => U32List(length);

  @patch
  factory Uint32List.fromList(List<int> elements) =>
      U32List(elements.length)..setRange(0, elements.length, elements);
}

@patch
class Int64List {
  @patch
  factory Int64List(int length) => I64List(length);

  @patch
  factory Int64List.fromList(List<int> elements) =>
      I64List(elements.length)..setRange(0, elements.length, elements);
}

@patch
class Uint64List {
  @patch
  factory Uint64List(int length) => U64List(length);

  @patch
  factory Uint64List.fromList(List<int> elements) =>
      U64List(elements.length)..setRange(0, elements.length, elements);
}

@patch
class Float32List {
  @patch
  factory Float32List(int length) => F32List(length);

  @patch
  factory Float32List.fromList(List<double> elements) =>
      F32List(elements.length)..setRange(0, elements.length, elements);
}

@patch
class Float64List {
  @patch
  factory Float64List(int length) => F64List(length);

  @patch
  factory Float64List.fromList(List<double> elements) =>
      F64List(elements.length)..setRange(0, elements.length, elements);
}

@patch
class Int32x4List {
  @patch
  factory Int32x4List(int length) = NaiveInt32x4List;

  @patch
  factory Int32x4List.fromList(List<Int32x4> elements) =
      NaiveInt32x4List.fromList;
}

@patch
class Float32x4List {
  @patch
  factory Float32x4List(int length) = NaiveFloat32x4List;

  @patch
  factory Float32x4List.fromList(List<Float32x4> elements) =
      NaiveFloat32x4List.fromList;
}

@patch
class Float64x2List {
  @patch
  factory Float64x2List(int length) = NaiveFloat64x2List;

  @patch
  factory Float64x2List.fromList(List<Float64x2> elements) =
      NaiveFloat64x2List.fromList;
}
// Copyright (c) 2023, 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.

/// This library exists to act as a uniform abstraction layer between the user
/// facing JS interop libraries and backend specific internal representations of
/// JS types.
///
/// For consistency, all of the web backends have a version of this library.
///
/// **WARNING**: You should *not* rely on these runtime types. Not only is this
/// library not guaranteed to be consistent across platforms, these types may
/// change in the future.
library dart._js_types;

import 'd


fff)
                            ? k_no_asset
                            : m_sprite;
                    }
                #else
                private:
                    asset_index_t m_sprite;
                public:
                    uint32_t m_blend;
                    bool m_vtiled;
                    bool m_htiled;

                    void set_sprite(asset_index_t s)
                    {
                        m_sprite = s;
                    }
                    asset_index_t get_sprite()
                    {
                        return m_sprite;
                    }
                #endif
            } background;
        };
    };
    #ifdef COMPRESS_OGM_LAYER_ELTS
    #pragma pack(pop)
    static_assert(
        sizeof(sizeof(LayerElement::instance) <= 8),
        "layer union data structs must be 8 bytes"
    );
    static_assert(
        sizeof(sizeof(LayerElement::background) <= 8),
        "layer union data structs must be 8 bytes"
    );
    static_assert(
        sizeof(sizeof(LayerElement) <= 12),
        "layer elements should be at most 12 bytes"
    );
    #endif

    // keyed by id
    struct Layer
    {
        // keys
        real_t m_depth = 0; // ACCURACY -- should this be an int?
        std::string m_name;

        // layer properties
        geometry::Vector<coord_t> m_position{ 0, 0 };
        geometry::Vector<coord_t> m_velocity{ 0, 0 };
        bool m_visible = true;

        // some layers have a special element which is returned
        // e.g. from 'layer_background_get_id'
        id_t m_primary_element = -1;

        // all elements on this layer.
        std::set<layer_elt_id_t> m_element_ids;
    };

    // adds layer element to given layer with existing element id
    template<typename LayersContainer>
    inline LayerElement& add_layer_element_at(LayersContainer& container, layer_elt_id_t elt_id, LayerElement::Type type, layer_id_t layer_id)
    {
        // container must actually have the given layer.
        assert(container.m_layers.find(layer_id) != container.m_layers.end());
        Layer& layer{ container.m_layers.at(layer_id) };

        // container musn't have existing element
        assert(container.m_layer_elements.find(elt_id) == container.m_layer_elements.end());

        // layer musn't have existing element
        assert(layer.m_element_ids.find(elt_id) == layer.m_element_ids.end());

        // add element to layer
        layer.m_element_ids.emplace(elt_id);
        LayerElement& elt = container.m_layer_elements[elt_id];
        elt.m_layer = layer_id;
        elt.m_type = type;
        return elt;
    }

    // adds layer element to a given layer
    template<typename LayersContainer, typename LayerElementIDStore>
    inline LayerElement& add_layer_element(LayersContainer& container, LayerElementIDStore& store, LayerElement::Type type, layer_id_t layer_id, layer_elt_id_t& out_elt_id)
    {
        return add_layer_element_at(container, out_elt_id = store.m_next_layer_elt_id++, type, layer_id);
    }

    template<typename LayersContaine


, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
 * CA 95054 USA or visit www.sun.com if you need additional information or
 * have any questions.
 */

package java.io;

/**
 * Constants written into the Object Serialization Stream.
 *
 * @author  unascribed
 * @since JDK 1.1
 */
public interface ObjectStreamConstants {

    /**
     * Magic number that is written to the stream header.
     */
    final static short STREAM_MAGIC = (short)0xaced;

    /**
     * Version number that is written to the stream header.
     */
    final static short STREAM_VERSION = 5;

    /* Each item in the stream is preceded by a tag
     */

    /**
     * First tag value.
     */
    final static byte TC_BASE = 0x70;

    /**
     * Null object reference.
     */
    final static byte TC_NULL =         (byte)0x70;

    /**
     * Reference to an object already written into the stream.
     */
    final static byte TC_REFERENCE =    (byte)0x71;

    /**
     * new Class Descriptor.
     */
    final static byte TC_CLASSDESC =    (byte)0x72;

    /**
     * new Object.
     */
    final static byte TC_OBJECT =       (byte)0x73;

    /**
     * new String.
     */
    final static byte TC_STRING =       (byte)0x74;

    /**
     * new Array.
     */
    final static byte TC_ARRAY =        (byte)0x75;

    /**
     * Reference to Class.
     */
    final static byte TC_CLASS =        (byte)0x76;

    /**
     * Block of optional data. Byte following tag indicates number
     * of bytes in this block data.
     */
    final static byte TC_BLOCKDATA =    (byte)0x77;

    /**
     * End of optional block data blocks for an object.
     */
    final static byte TC_ENDBLOCKDATA = (byte)0x78;

    /**
     * Reset stream context. All handles written into stream are reset.
     */
    final static byte TC_RESET =        (byte)0x79;

    /**
     * long Block data. The long following the tag indicates the
     * number of bytes in this block data.
     */
    final static byte TC_BLOCKDATALONG= (byte)0x7A;

    /**
     * Exception during write.
     */
    final static byte TC_EXCEPTION =    (byte)0x7B;

    /**
     * Long string.
     */
    final static byte TC_LONGSTRING =   (byte)0x7C;

    /**
     * new Proxy Class Descriptor.
     */
    final static byte TC_PROXYCLASSDESC =       (byte)0x7D;

    /**
     * new Enum constant.
     * @since 1.5
     */
    final static byte TC_ENUM =         (byte)0x7E;

    /**
     * Last tag value.
     */
    final static byte TC_MAX =          (byte)0x7E;

    /**
     * First wire handle to be assigned.
     */
    final static int baseWireHandle = 0x7e0000;

    /******************************************************/
    /* Bit masks for ObjectStreamClass flag.*/

    /**
     * Bit mask for ObjectStreamClass flag. Indicates a Serializable class
     * defines its own writeObject method.
     */
    final static byte SC_WRITE_METHOD = 0x01;

    /**
     * Bit mask for ObjectStreamClass flag. Indicates Externalizable data
     * written in Block Data mode.
     * Added for PROTOCOL_VERSION_2.
     *
     * @see #PROTOCOL_VERSION_2
     * @since 1.2
     */
    final static byte SC_BLOCK_DATA = 0x08


/***
 *
 *	Copyright (c) 1999, Valve LLC. All rights reserved.
 *
 *	This product contains software technology licensed from Id
 *	Software, Inc. ("Id Technology").  Id Technology (c) 1996 Id Software, Inc.
 *	All Rights Reserved.
 *
 *   Use, distribution, and modification of this source code and/or resulting
 *   object code is restricted to non-commercial enhancements to products from
 *   Valve LLC.  All other use, distribution, or modification is prohibited
 *   without written permission from Valve LLC.
 *
 ****/

#pragma once

#include "Platform.h"

struct RGB24
{
	std::uint8_t Red = 255;
	std::uint8_t Green = 255;
	std::uint8_t Blue = 255;

	/**
	 *	@brief Returns a copy of this color scaled by the given amount
	 *	@param amount Scale, expressed as a value in the range [0, 255]
	 */
	constexpr RGB24 Scale(std::uint8_t amount) const noexcept
	{
		const float x = amount / 255.f;
		const auto r = static_cast<std::uint8_t>(Red * x);
		const auto g = static_cast<std::uint8_t>(Green * x);
		const auto b = static_cast<std::uint8_t>(Blue * x);

		return {r, g, b};
	}

	constexpr int ToInteger() const
	{
		return Red | (Green << 8) | (Blue << 16);
	}

	static constexpr RGB24 FromInteger(int color)
	{
		return {
			static_cast<std::uint8_t>(color & 0xFF),
			static_cast<std::uint8_t>((color & 0xFF00) >> 8),
			static_cast<std::uint8_t>((color & 0XFF0000) >> 16)};
	}
};


rivalPosition(_endpointInsertionPoint_m);
            _endpointTargetVelocity_m = _endpointInitalVelocity_m + _newtonUI.DeltaV;
            _endpointTargetOrbit = OrbitMath.KeplerFromPositionAndVelocity(_stdGravParamTargetBody_m, _endpointInsertionPoint_m, _endpointTargetVelocity_m, _departureDateTime);
            _endpointTargetOrbitWidget.SetParametersFromKeplerElements(_endpointTargetOrbit, _endpointInsertionPoint_m);
            _newtonUI.Eccentricity = (float)_endpointTargetOrbit.Eccentricity;
        }

        void InitialPlacement()
        {
            var lowOrbitRadius = OrbitMath.LowOrbitRadius(TargetEntity.Entity);
            var lowOrbitPos = _perpVec * lowOrbitRadius;
            var lowOrbit = OrbitMath.KeplerCircularFromPosition(_stdGravParamTargetBody_m, lowOrbitPos, _targetIntercept.eti);
            var lowOrbitState = OrbitMath.GetStateVectors(lowOrbit, _targetIntercept.eti);

            _endpointTargetOrbit = lowOrbit;
            _endpointTargetVelocity_m = (Vector3)lowOrbitState.velocity;
            _newtonUI.Radius = (float)lowOrbitState.position.Length();
            _newtonUI.SetDeltaV((Vector3)lowOrbitState.velocity - _endpointInitalVelocity_m);
            _newtonUI.Eccentricity = (float)_endpointTargetOrbit.Eccentricity;

            _endpointInsertionPoint_m = (_perpVec * _newtonUI.Radius); //relative to the target body
            _endpointTargetOrbitWidget.SetParametersFromKeplerElements(_endpointTargetOrbit, _endpointInsertionPoint_m);

            _endpointInitialOrbit = OrbitMath.KeplerFromPositionAndVelocity(_stdGravParamTargetBody_m, _endpointInsertionPoint_m, _endpointInitalVelocity_m, _targetIntercept.eti);
            _endpointInitalOrbitWidget.SetParametersFromKeplerElements(_endpointInitialOrbit, _endpointInsertionPoint_m);
        }

        #endregion

        internal override void EntityClicked(EntityState entity, MouseButtons button)
        {
            if (entity == OrderingEntityState)
                return;
            ImGuiIOPtr io = ImGui.GetIO();

            if (button ==


ffer')
		end
		if order.balance==0 then
			transactions[order.trans_id]=""
			toLog(log,watch_list.status_offer.." order filled! Balance="..order.balance)
			if order.trans_id~=watch_list.trans_offer and watch_list.trans_offer~=0 then
				toLog(log,"Warning! Exess transaction sended ID="..watch_list.trans_offer)
				bad_transactions[watch_list.trans_offer]=watch_list.status_offer
				--watch_list.trans_offer=0
				watch_list.trans_offer=order.trans_id
				watch_list.order_offer={}
				watch_list.order_offer=order
				watch_list.status_offer=string.gsub(watch_list.status_offer,"wait","")
				setStatus('Offer')
			end
			if watch_list.status_offer=="open" or watch_list.status_offer=="" then
				watch_list.open_price_offer=order.price
				local pr=FindOfferClosePrice(order.seccode,order.price)
				local trid,ms=sendLimit(order.class_code,order.seccode,"B",toPrice(order.seccode,pr),watch_list.volume,watch_list.account,watch_list.client_code,"closeoffer")
				if trid~=nil then transactions[trid]="offer" watch_list.status_offer="waitclose" watch_list.trans_offer=trid setStatus('Offer') end
				toLog(log,ms)
			elseif watch_list.status_offer=="close" then
				toLog(log,"Start new cycle.")
				watch_list.order_offer={}
				watch_list.open_price_offer=0
				watch_list.status_offer=""
				watch_list.bad_offer=false
				setStatus('Offer')
			end
		end
		--if order.trans_id==watch_list.trans_offer then watch_list.trans_offer=0 end
		if orderflags2table(order.flags).cancelled then
			--transactions[order.trans_id]=""
			if watch_list.status_offer=="" then --[[watch_list.trans_offer=0]] toLog(log,"Offer order cancelled") watch_list.order_offer={} end
		end
	else
		toLog(log,"____ some shit on OnOrder()_____")
		toLog(log,order)
		toLog(log,"________________________________")
	end
	toLog(log,"Final BidStatus="..watch_list.status_bid.." OfferStatus="..watch_list.status_offer)
	toLog(log,"OnOrder end. "..(os.clock()-st))
end
function OnAllTradeDo(trade)
	local st=os.clock()
	local s="OnAllTrade start. Price="..trade
	if watch_list.status_bid=="close" then s=s..' BidOpenPrice='..watch_list.open_price_bid end
	if watch_list.status_offer=="close" then s=s..' OfferOpenPrice='..watch_list.open_price_offer end
	toLog(log,s)
	--toLog(log,trade)
	-- check bad data
	if watch_list.status_bid=="close" and trade<watch_list.open_price_bid-watch_list.bad_close_slippage*watch_list.minstep and (not watch_list.bad_bid) then
		toLog(log,"Trade lower then bid open price. Trade="..trade.." OpenPrice="..watch_list.open_price_bid.." S="..watch_list.status_bid)
		watch_list.bad_bid=true
		local bask=tonumber(getParamEx(watch_list.class,watch_list.code,"OFFER").param_value)
		if watch_list.order_bid.price>bask then
			toLog(log,"Move order to be first")
			local trid,ms=moveOrder(0,watch_list.order


 painter.fontMetrics().height());
#endif
    painter.drawText(titleRect, Qt::AlignLeft | Qt::AlignVCenter, m_titleText);
    m_centralLayout->setContentsMargins(16, titleRect.height() + 10, 16, 16);

    if (!m_detailText.isEmpty()) {
        painter.setFont(m_contentFont);
        painter.setPen(palette.color(DPalette::TextTips));
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
        QRect detailRect(m_arrowButton->width() + titleRect.right() + 12, titleRect.y(), painter.fontMetrics().width(m_detailText), titleRect.height());
#else
        QRect detailRect(m_arrowButton->width() + titleRect.right() + 12, titleRect.y(), painter.fontMetrics().horizontalAdvance(m_detailText), titleRect.height());
#endif
        painter.drawText(detailRect, Qt::AlignLeft | Qt::AlignVCenter, m_detailText);
    }
}

void BaseDetailViewWidget::mouseMoveEvent(QMouseEvent *event)
{
    // qCDebug(app) << "mouseMoveEvent";
    Q_UNUSED(event)
    //not Todo
}
// Copyright (C) 2019 ~ 2020 Uniontech Software Technology Co.,Ltd
// SPDX-FileCopyrightText: 2022 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: GPL-3.0-or-later

#include "cpu_set.h"
#include "system/private/cpu_set_p.h"

#include "common/common.h"
#include "common/datacommon.h"
#include "common/thread_manager.h"
#include "system/system_monitor_thread.h"
#include "system/system_monitor.h"
#include "system/sys_info.h"

#include <QMap>
#include <QByteArray>
#include <QFile>
#include <QTextStream>
#include <QProcess>

#include <ctype.h>
#include <errno.h>
#include <sched.h>

#define PROC_PATH_STAT "/proc/stat"
#define PROC_PATH_CPUINFO "/proc/cpuinfo"

using namespace common::error;
using namespace common::alloc;

namespace core {
namespace system {

/*
* borrowed & modified from LINUX bitmap.c
*/

/*
 * Region 9-38:4/10 describes the following bitmap structure:
 * 0       9  12    18          38
 * .........****......****......****......
 *      ^  ^     ^           ^
 *      start  off   group_len         end
 */
//struct region {
//    unsigned int start;
//    unsigned int off;
//    unsigned int group_len;
//    unsigned int end;
//};

//static bool cpuset_set_region(const struct region *r,
//                              cpu_set_t *set, size_t size)
//{
//    unsigned int start;

//    if (r->end >= size)
//        return false;

//    for (start = r->start; start <= r->end; start += r->group_len) {
//        auto len = std::min(r->end - start + 1, r->off);
//        for (size_t pos = 0; pos < len; pos++)
//            CPU_SET_S(start + pos, size, set);
//    }

//    return true;
//}

//static bool cpuset_check_region(const struct region *r)
//{
//    if (r->start > r->end || r->group_len == 0 || r->off > r->group_len)
//        return false;

//    return true;
//}

//static const char *cpuset_getnum(const char *str, unsigned int *num)
//{
//    unsigned long long n;
//    char *ptr;

//    errno = 0;
//    n = st


376">  376

  378   CUTLASS_HOST_DEVICE

  379   void set_iteration_index(int index) { iterator_.set_iteration_index(index); }

  380

  382   CUTLASS_HOST_DEVICE

  383   void add_pointer_offset(LongIndex pointer_offset) {

  384     iterator_.add_pointer_offset(pointer_offset);

  385   }

  386

  388   CUTLASS_HOST_DEVICE

<a class="line" href="classcutlass_1_1transform_1_1threadblock_1_1RegularTileAccessIterator_3_01Shape___00_01Element__6


usBand2_circle__-B8dS:first-child .MobiusBand2_span6__r6ZRt:after{animation:MobiusBand2_animate__KwG8b 4s linear infinite;animation-delay:.6s;background-color:#00ff0a;border-radius:50%;box-shadow:0 0 10px #00ff0a,0 0 20px #00ff0a,0 0 40px #00ff0a,0 0 60px #00ff0a,0 0 80px #00ff0a,0 0 100px #00ff0a;content:"";height:16px;position:absolute;right:0;top:calc(50% - 8px);transform:scale(.1);width:16px}.MobiusBand2_container__q9icp .MobiusBand2_content__SGf9O .MobiusBand2_circle__-B8dS:first-child .MobiusBand2_span7__vtGYj{height:100%;left:0;position:absolute;top:0;transform:rotate(126deg);width:100%}.MobiusBand2_container__q9icp .MobiusBand2_content__SGf9O .MobiusBand2_circle__-B8dS:first-child .MobiusBand2_span7__vtGYj:after{animation:MobiusBand2_animate__KwG8b 4s linear infinite;animation-delay:.7s;background-color:#00ff0a;border-radius:50%;box-shadow:0 0 10px #00ff0a,0 0 20px #00ff0a,0 0 40px #00ff0a,0 0 60px #00ff0a,0 0 80px #00ff0a,0 0 100px #00ff0a;content:"";height:16px;position:absolute;right:0;top:calc(50% - 8px);transform:scale(.1);width:16px}.MobiusBand2_container__q9icp .MobiusBand2_content__SGf9O .MobiusBand2_circle__-B8dS:first-child .MobiusBand2_span8__ZCuuU{height:100%;left:0;position:absolute;top:0;transform:rotate(144deg);width:100%}.MobiusBand2_container__q9icp .MobiusBand2_content__SGf9O .MobiusBand2_circle__-B8dS:first-child .MobiusBand2_span8__ZCuuU:after{animation:MobiusBand2_animate__KwG8b 4s linear infinite;animation-delay:.8s;background-color:#00ff0a;border-radius:50%;box-shadow:0 0 10px #00ff0a,0 0 20px #00ff0a,0 0 40px #00ff0a,0 0 60px #00ff0a,0 0 80px #00ff0a,0 0 100px #00ff0a;content:"";height:16px;position:absolute;right:0;top:calc(50% - 8px);transform:scale(.1);width:16px}.MobiusBand2_container__q9icp .MobiusBand2_content__SGf9O .MobiusBand2_circle__-B8dS:first-child .MobiusBand2_span9__kRjxt{height:100%;left:0;position:absolute;top:0;transform:rotate(162deg);width:100%}.MobiusBand2_container__q9icp .MobiusBand2_content__SGf9O .MobiusBand2_circle__-B8dS:first-child .MobiusBand2_span9__kRjxt:after{animation:MobiusBand2_animate__KwG8b 4s linear infinite;animation-delay:.9s;background-color:#00ff0a;border-radius:50%;box-shadow:0 0 10px #00ff0a,0 0 20px #00ff0a,0 0 40px #00ff0a,0 0 60px #00ff0a,0 0 80px #00ff0a,0 0 100px #00ff0a;content


SetChildrenEnabled = function(self, enabled)
		self.childrenEnabled = enabled

		if IE.CurrentTabGroup == self then
			self:Click()
		end
	end,

	SetDisabledPageKey = function(self, pageKey)
		self.disabledPageKey = pageKey
	end,
}

TMW:NewClass("IconEditorTab", "IconEditorTabBase"){
	endPadding = 6,
	interPadding = 5,

	OnNewInstance_Tab = function(self)
		self:CScriptAdd("PageReloadRequested", self.PageReloadRequested)
	end,

	PageReloadRequested = function(self, page)
		-- Also notify the tab group one of its pages was reloaded
		-- so that generic actions that apply to a whole tab group (like re-setting up an icon) can happen.
		self.parent:CScriptCall("PageReloadRequested")

		if self.historySet then

			-- Because some settings can get changed when we're reloading,
			-- we need to delay this until all reloading is done.
			C_Timer.After(0, function()
				self.historySet:AttemptAutoBackup()
				self.historySet:UpdateButtons()
			end)
		else
			IE.UndoButton:Disable()
			IE.RedoButton:Disable()
		end
	end,

	SetHistorySet = function(self, historySet)
		TMW:ValidateType("historySet", "SetHistorySet(historySet)", historySet, "HistorySet")

		self.historySet = historySet
	end,

	GetHistorySet = function(self)
		return self.historySet
	end,

	OnClick = function(self)
		PlaySound(SOUNDKIT.IG_CHARACTER_INFO_TAB)

		if IE.CurrentTabGroup ~= self.parent then
			self.parent:Click()
		end

		local oldTab = IE.CurrentTab

		IE.CurrentTab = self
		self.parent.currentTab = self

		IE.Tabs.art.sSelectedHorizontal:ClearAllPoints()
		IE.Tabs.art.sSelectedHorizontal:SetPoint("BOTTOMLEFT", self)
		IE.Tabs.art.sSelectedHorizontal:SetPoint("BOTTOMRIGHT", self)

		local page = IE:DisplayPage(self.pageKey)

		TMW:Fire("TMW_CONFIG_TAB_CLICKED", self, oldTab)

		page:RequestReload()

		IE:ResizeTabs()
	end,

	GetPage = function(self)
		return TMW.IE.Pages[self.pageKey]
	end,

	ShouldShowTab = function(self)
		return true
	end,
}

IE.TabGroups = {}
function IE:RegisterTabGroup(identifier, text, order, setupHeaderFunc)
	local sig = "IE:RegisterTabGroup(identifier, text, order, setupHeaderFunc)"
	TMW:ValidateType("identifier",      sig, identifier,      "string")
	TMW:ValidateType("text",            sig, text,            "string")
	TMW:ValidateType("order",           sig, order,           "number")
	TMW:ValidateType("setupHeaderFunc", sig, setupHeaderFunc, "function")

	assert(identifier == identifier:upper(), "Tab identifiers should be all uppercase")

	if IE.TabGroups[identifier] then
		error("A tab group with the identifier " .. identifier .. " is already registered.")
	end

	local tab = TMW.C.IconEditorTabGroup:New("Button", nil, TMW.IE.Tabs.primary, "TellMeWhen_IE_Tab")
	TMW.IE.Tabs.primary[identifier] = tab

	tab.identifier = identifier
	tab.order = order
	tab.SetupHeader = setupHeaderFunc

	tab:SetText(text)

	IE.TabGroups[identifier] = tab

	for i, tab in ipairs(TMW.IE.Tabs.primary) do
		tab:Hide()
	end

	return tab
end

function IE:RegisterTab(groupIdentifier, identifier, pageKey, order)
	local sig = "IE:RegisterTab(groupIdentifier, identifier, pageKey, order)"
	TMW:ValidateType("groupIdentifier", sig, groupIdentifier, "string")
	TMW:ValidateType("identifier",      sig, identifier,      "string"


<TBase, TImpl, TArgs>,
    dynamicDependencies?: TArgs[number][]
  ): ImplOrAny<TImpl> {
    try {
      let handler = this._handlers.get(fn);

      if (handler === undefined) {
        handler = this._createInvocationHandler(fn);
        this._handlers.set(fn, handler);
      }

      return handler.invoke(this, dynamicDependencies);
    } catch (e) {
      // @ts-ignore
      throw new AggregateError(
        `Error invoking ${fn.name}. Check the inner error for details.`,
        e,
        true
      );
    }
  }

  public _createInvocationHandler
    <TBase, TImpl extends Impl<TBase> = Impl<TBase>, TArgs extends Args<TBase> = Args<TBase>>(
      fn: DependencyCtorOrFunctor<TBase, TImpl, TArgs> & { inject?: any; }
    ): InvocationHandler<TBase, TImpl, TArgs> {
    let dependencies;

    if (fn.inject === undefined) {
      dependencies =
        metadata.getOwn(metadata.paramTypes, fn) || _emptyParameters;
    } else {
      dependencies = [];
      let ctor = fn;
      while (typeof ctor === 'function') {
        dependencies.push(...getDependencies(ctor));
        ctor = Object.getPrototypeOf(ctor);
      }
    }

    const invoker = metadata.getOwn(metadata.invoker, fn) || classInvoker;

    const handler = new InvocationHandler(fn, invoker, dependencies);
    return this._onHandlerCreated !== undefined
      ? this._onHandlerCreated(handler)
      : handler;
  }
}
export interface UserConfig {
  readonly accessToken: string;
}

export interface User {
  readonly id: number;
  readonly login: string;
  readonly avatar_url: string;
  readonly html_url: string;
}

export interface LoginUser extends User {
  readonly name: string;
}

interface BaseNotification {
  readonly id: string;
  readonly updated_at: string;
  readonly unread: boolean;
  readonly subject: {
    readonly title: string,
    readonly url: string,
    readonly latest_comment_url: string | null,
    readonly type: 'Issue' | 'PullRequest',
  };
}

export interface NotificationJSON extends BaseNotification {
  readonly repository: {};
}

export interface Notification extends BaseNotification {
  readonly repository: string;
}

export interface Repository {
  readonly id: number;
  readonly name: string;
  readonly full_name: string;
  readonly owner: string;
}

export interface Issue {
  readonly id: number;
  readonly url: string;
  readonly state: string;
  readonly merged: boolean;
}

export interface NormalizedNotifs {
  readonly entities: {
    readonly notification: {
      [id: string]: Notification,
    },
    readonly repository: {
      [fullName: string]: Repository,
    },
    readonly user: {
      [login: string]: User,
    },
  };
  readonly result: string[];
}

export type NotifCounts = {
  readonly [owner: string]: {
    readonly [repoName: string]: number,
  },
};
export type WritableNotifCounts = {
  [owner: string]: {
    [repoName: string]: number,
  },
};

export interface NotifFilter {
  fullName?: string;
}
import { UpdateRepoRequestBody } from './UpdateRepoRequestBody';

export class UpdateRepoRequest {
    private 'Content-Type'?: UpdateRepoRequestContentTypeEnum | string;
    public namespace?: string;
    public repository?: string;
    public body?: UpdateRepoRequestBody;
    public constructor(contentType?: string, namespace?: string, repository?: string) {
        this['Content-Type'] = contentType;
        this['namespace'] =


nown(m)
}

var xxx_messageInfo_DposCandidateFeeChangeEvent proto.InternalMessageInfo

func (m *DposCandidateFeeChangeEvent) GetAddress() *types.Address {
	if m != nil {
		return m.Address
	}
	return nil
}

func (m *DposCandidateFeeChangeEvent) GetNewFee() uint64 {
	if m != nil {
		return m.NewFee
	}
	return 0
}

type DposUpdateCandidateInfoEvent struct {
	Address              *types.Address `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *DposUpdateCandidateInfoEvent) Reset()         { *m = DposUpdateCandidateInfoEvent{} }
func (m *DposUpdateCandidateInfoEvent) String() string { return proto.CompactTextString(m) }
func (*DposUpdateCandidateInfoEvent) ProtoMessage()    {}
func (*DposUpdateCandidateInfoEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_dposv3_1a7c769d24d76c04, []int{83}
}
func (m *DposUpdateCandidateInfoEvent) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DposUpdateCandidateInfoEvent.Unmarshal(m, b)
}
func (m *DposUpdateCandidateInfoEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DposUpdateCandidateInfoEvent.Marshal(b, m, deterministic)
}
func (dst *DposUpdateCandidateInfoEvent) XXX_Merge(src proto.Message) {
	xxx_messageInfo_DposUpdateCandidateInfoEvent.Merge(dst, src)
}
func (m *DposUpdateCandidateInfoEvent) XXX_Size() int {
	return xxx_messageInfo_DposUpdateCandidateInfoEvent.Size(m)
}
func (m *DposUpdateCandidateInfoEvent) XXX_DiscardUnknown() {
	xxx_messageInfo_DposUpdateCandidateInfoEvent.DiscardUnknown(m)
}

var xxx_messageInfo_DposUpdateCandidateInfoEvent proto.InternalMessageInfo

func (m *DposUpdateCandidateInfoEvent) GetAddress() *types.Address {
	if m != nil {
		return m.Address
	}
	return nil
}

type DposDelegatorDelegatesEvent struct {
	Delegation           *Delegation `protobuf:"bytes,1,opt,name=delegation" json:"delegation,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *DposDelegatorDelegatesEvent) Reset()         { *m = DposDelegatorDelegatesEvent{} }
func (m *DposDelegatorDelegatesEvent) String() string { return proto.CompactTextString(m) }
func (*DposDelegatorDelegatesEvent) ProtoMessage()    {}
func (*DposDelegatorDelegatesEvent) Descriptor() ([]byte, []int) {
	return fileDescriptor_dposv3_1a7c769d24d76c04, []int{84}
}
func (m *DposDelegatorDelegatesEvent) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_DposDelegatorDelegatesEvent.Unmarshal(m, b)
}
func (m *DposDelegatorDelegatesEvent) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_DposDelegatorDelegatesEvent.Marshal(b, m, deterministic)
}
func (dst *DposDelegatorDelegatesEvent) XXX_Merge(src


}

  return new Promise<string>((resolve) => {
    const reader = new FileReader();
    reader.onload = function () {
      resolve((reader.result as string).replace(/^data:.*;base64,/, ""));
    };
    reader.readAsDataURL(blob);
  });
}

export function extractStatusCode(error: AxiosError): number | null {
  if (error.isAxiosError) {
    const code = error?.response?.status;
    if (typeof code === "number") {
      return code;
    }
  }
  return null;
}

export interface CommonErrorResponse {
  code: number;
  message: string;
}

export function extractErrorCode(
  error: AxiosError<CommonErrorResponse>
): number | null {
  if (error.isAxiosError) {
    const code = error.response?.data?.code;
    if (typeof code === "number") {
      return code;
    }
  }
  return null;
}

export class HttpNetworkError extends Error {
  constructor(public innerError?: AxiosError) {
    super();
  }
}

export class HttpForbiddenError extends Error {
  constructor(public innerError?: AxiosError) {
    super();
  }
}

export class HttpNotFoundError extends Error {
  constructor(public innerError?: AxiosError) {
    super();
  }
}

export class NotModified {}

export interface BlobWithEtag {
  data: Blob;
  etag: string;
}

export function extractResponseData<T>(res: AxiosResponse<T>): T {
  return res.data;
}

export function catchIfStatusCodeIs<
  TResult,
  TErrorHandlerResult extends TResult | PromiseLike<TResult> | null | undefined
>(
  statusCode: number,
  errorHandler: (error: AxiosError<CommonErrorResponse>) => TErrorHandlerResult
): (error: AxiosError<CommonErrorResponse>) => TErrorHandlerResult {
  return (error: AxiosError<CommonErrorResponse>) => {
    if (extractStatusCode(error) == statusCode) {
      return errorHandler(error);
    } else {
      throw error;
    }
  };
}

export function convertToIfStatusCodeIs<NewError>(
  statusCode: number,
  newErrorType: {
    new (innerError: AxiosError): NewError;
  }
): (error: AxiosError<CommonErrorResponse>) => never {
  return catchIfStatusCodeIs(statusCode, (error) => {
    throw new newErrorType(error);
  });
}

export function catchIfErrorCodeIs<
  TResult,
  TErrorHandlerResult extends TResult | PromiseLike<TResult> | null | undefined
>(
  errorCode: number,
  errorHandler: (error: AxiosError<CommonErrorResponse>) => TErrorHandlerResult
): (error: AxiosError<CommonErrorResponse>) => TErrorHandlerResult {
  return (error: AxiosError<CommonErrorResponse>) => {
    if (extractErrorCode(error) == errorCode) {
      return errorHandler(error);
    } else {
      throw error;
    }
  };
}
export function convertToIfErrorCodeIs<NewError>(
  errorCode: number,
  newErrorType: {
    new (innerError: AxiosError): NewError;
  }
): (error: AxiosError<CommonErrorResponse>) => never {
  return catchIfErrorCodeIs(errorCode, (error) => {
    throw new newErrorType(error);
  });
}

export function convertToNotModified(
  erro


lpine and only for the purpose of redirecting logs with shell.
- Images based on k8s.gcr.io/debian-base due to previous rebasing from busybox.

Help the community and contributors better understanding and maintaining the images.

- Set up the policy that only `distroless/static` and `k8s.gcr.io/debian-base` are used (as the base image) for the images hosted in the official k8s.gcr.io image repository. And if the image is based on debian-base, it should be documented in the exception list.
- Improve the presubmit prow test to guarantee that the upcoming k8s/kubernetes PRs won't introduce dependencies that distroless/static doesn't support.
- Document the base image list for important kubernetes components, including both core containers and important add-ons. Also, document the exception list (unable to base on distroless).

### Non-Goals

- Do not change Images based on debian/alpine that requires fluentd (e.g. hyperkube).
- Do not change images that have hard dependencies on non-static binaries.

## Background

This section discusses how the goal and scope are determined due to the reality. It also contains the real use cases.

### Kubernetes Images

Kubernetes not only runs images in the containers, but its components themselves are running and deploying as images. Each component image can be built from different base images.

Currently, kubernetes uses three main types of base images to build their components.

#### Type 1 FROM Scratch

This docker image is based “FROM scratch” and doesn’t have external dependencies. The original motivation of using “FROM scratch” is to keep the image extremely thin and only contain what a static binaries need. However, caveats are found when running the go static binaries due to some missing non-binary dependencies like ca-certificates, resolv.conf, hosts, and nsswitch (see [issue/69195](https://github.com/kubernetes/kubernetes/issues/69195)).

#### Type 2 Debian Based Images

An image can be based from Debian due to different reasons.

- One big reason is that the image needs to use shell to redirect the glog. This base image now is an overkill because K8s 1.13 can support using klog which accepts a --log-file flag to point to the log path directly. (Historically images doing this mostly relied on busybox or alpine. Some recent change has migrated off those to debian-base. [PR/70245](https://github.com/kubernetes/kubernetes/pull/70245/files))
- Another reason of using debian is from the CVE concerns. Those images are originally rebased from busybox to debian for better CVE feeds and management (See [PR/70245](https://github.com/kubernetes/kubernetes/pull/70245)).
- A third type of images uses debian for certain external dependencies.

#### Type 3 Alpine Based Images

The reasons for images based on alpine are similar to the ones on debian. Debian is more widely used due to previous “Establish base image policy for system containers” effort (see [issue/40248](https://github.com/kubernetes/kubernetes/issues/40248)).

### Distroless and Previous Work

"Distroless images contain only your application and its runtime dependencies. They do not contain package managers, shells or any other programs you would expect to find in a standard Linux distribution.”  (See [distroless/README](https://github.com/GoogleContainerTools/distroless))
Distroless supports the dependencies where “FROM scratch” misses and more light-weighted than debian or alpine. Meanwhile, distroless “improves the signal to noise of scanners (e.g. CVE) and reduces the burden of establishing provenance to just what you need.”(from [distroless/README](https://github.com/GoogleContainerTools/distroless))


/* Generated by RuntimeBrowser
   Image: /System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI
 */

@interface CCUIControlCenterPagePlatterView : UIView {
    NCMaterialView * _baseMaterialView;
    NSLayoutConstraint * _bottomMargin;
    UIView * _contentView;
    <CCUIControlCenterPagePlatterViewDelegate> * _delegate;
    NSLayoutConstraint * _leadingMargin;
    NSSet * _renderedPunchOutMasks;
    NSLayoutConstraint * _topMargin;
    NSLayoutConstraint * _trailingMargin;
    UIImageView * _whiteLayerView;
}

@property (nonatomic, retain) UIView *contentView;
@property (nonatomic) struct UIEdgeInsets { double x1; double x2; double x3; double x4; } marginInsets;

- (void).cxx_destruct;
- (void)_recursivelyVisitSubviewsOfView:(id)arg1 forPunchedThroughView:(id)arg2 collectingMasksIn:(id)arg3;
- (void)_reduceTransparencyStatusDidChange;
- (id)_renderAlphaOnlyPunchThroughMaskForPlatterSize:(struct CGSize { double x1; double x2; })arg1;
- (void)_rerenderPunchThroughMaskIfNecessary;
- (bool)_searchForUpdatedMask;
- (bool)_shouldSuppressCachingPunchOutMaskImage;
- (id)_systemAgent;
- (id)ccuiPunchOutMaskedContainer;
- (id)contentView;
- (void)dealloc;
- (id)initWithDelegate:(id)arg1;
- (void)layoutSubviews;
- (struct UIEdgeInsets { double x1; double x2; double x3; double x4; })marginInsets;
- (void)setContentView:(id)arg1;
- (void)setMarginInsets:(struct UIEdgeInsets { double x1; double x2; double x3; double x4; })arg1;

@end


class="mpof_ki mp7g_oh"><img loading="lazy" alt="Ładowarka 170W do Lenovo 20V 8.5A Slim Tip" src="./Lenovo Y530 - Niska cena na Allegro.pl_files/Ladowarka-170W-do-Lenovo-20V-8-5A-Slim-Tip" data-src="https://a.allegroimg.com/s180/118fa9/ad5d7ff44f6e826a7dd4dbe5cf87/Ladowarka-170W-do-Lenovo-20V-8-5A-Slim-Tip" srcset="https://a.allegroimg.com/s180/118fa9/ad5d7ff44f6e826a7dd4dbe5cf87/Ladowarka-170W-do-Lenovo-20V-8-5A-Slim-Tip 1x, https://a.allegroimg.com/s720/118fa9/ad5d7ff44f6e826a7dd4dbe5cf87/Ladowarka-170W-do-Lenovo-20V-8-5A-Slim-Tip 3x">

<button aria-label="POLUB" title="POLUB" class="mgn2_14 mp0t_0a mgmw_wo mqu1_21 mj9z_5r mli8_k4 mqen_m6 l1fas mg9e_0 mvrt_0 mj7a_0 mh36_0 m911_5r mefy_5r mnyp_5r mdwl_5r msa3_z4 m0qj_5r msts_n7 l1v1s mpof_ki m389_6m mp7g_oh mp4t_0 m3h2_0 mryx_0 munh_0 _6a66d_wB9fd _6a66d_x8XXl" data-test-tag="observed-link"></button>

Firma

<button class="m911_5r mefy_5r mnyp_5r mdwl_5r msts_n7 mqen_m6 _6a66d_837YB"></button>

<h2 class="mgn2_14 m9qz_yp meqh_en mpof_z0 mqu1_


 (A0)+           ;Befehlsheader berlesen
                bne.s   do_aes2
do_aes3:        addq.w  #1,D2           ;Funktionsnummer erhhen
                cmp.b   D2,D1
                beq.s   do_aes5         ;gefunden
do_aes4:        tst.b   (A0)+           ;Befehlsende berlesen
                bgt.s   do_aes4
                beq.s   do_aes3         ;es war nur ein Befehl zuende => next one
                bra.s   do_aes1         ;nchsten Block testen
do_aes5:        move.l  A1,-(SP)
                jsr     @print_line(A4) ;Befehlsheader ausgeben
                moveq   #'_',D0
                jsr     @chrout(A4)
do_aes6:        move.b  (A0)+,D0
                ble.s   do_aes7         ;<=0 => Ende
                jsr     @chrout(A4)
                bra.s   do_aes6
do_aes7:        moveq   #'(',D0
                jsr     @chrout(A4)
do_aes8:        moveq   #')',D0         ;Klammer zu, Ende
                jsr     @chrout(A4)
                jsr     @c_eol(A4)
                jsr     @crout(A4)
                pea     do_aet2(PC)
                jsr     @print_line(A4)
                move.l  (A6)+,D1        ;control
                jsr     hexa2out
                pea     do_aet3(PC)
                jsr     @print_line(A4)
                move.l  (A6)+,D1        ;global
                jsr     hexa2out
                jsr     @c_eol(A4)
                jsr     @crout(A4)
                pea     do_aet4(PC)
                jsr     @print_line(A4)
                move.l  (A6)+,D1        ;int_in
                jsr     hexa2out
                pea     do_aet5(PC)
                jsr     @print_line(A4)
                move.l  (A6)+,D1        ;int_out
                jsr     hexa2out
                jsr     @c_eol(A4)
                jsr     @crout(A4)
                pea     do_aet6(PC)
                jsr     @print_line(A4)
                move.l  (A6)+,D1        ;addr_in
                jsr     hexa2out
                pea     do_aet7(PC)
                jsr     @print_line(A4)
                move.l  (A6),D1         ;addr_out
                jsr     hexa2out
                jsr     @c_eol(A4)
                jmp     @crout(A4)
do_aesi:        pea     do_get2(PC)
                jsr     @print_line(A4) ;"illfunc("
                bra     do_aes8         ;")" und Ende
do_aet1:        DC.B ' AES',0
                SWITCH sprache
                CASE 0
do_aet2:        DC.B '  control  ab ',0
do_aet3:        DC.B '  global   ab ',0
do_aet4:        DC.B '  int_in   ab ',0
do_aet5:        DC.B '  int_out  ab ',0
do_aet6:        DC.B '  addr_in  ab ',0
do_aet7:        DC.B '  addr_out ab ',0
                CASE 1
do_aet2:        DC.B '  control  at ',0
do_aet3:        DC.B '  global   at ',0
do_aet4:        DC.B '  int_in   at ',0
do_aet5:        DC.B '


 pivot;
    }
    rhs[row[k]] /= pivot;

    if(LOG.isDebugging()) {
      StringBuilder msg = new StringBuilder();
      msg.append("set pivot element to 1 ").append(equationsToString(4));
      LOG.debugFine(msg.toString());
    }

    // for (int i = k + 1; i < coeff.length; i++) {
    for(int i = 0; i < coeff.length; i++) {
      if(i == k) {
        continue;
      }

      // compute factor
      double q = coeff[row[i]][col[k]];

      // modify entry a[i,k], i <> k
      coeff[row[i]][col[k]] = 0;

      // modify entries a[i,j], i > k fixed, j = k+1...n-1
      for(int j = k + 1; j < coeff[0].length; j++) {
        coeff[row[i]][col[j]] = coeff[row[i]][col[j]] - coeff[row[k]][col[j]] * q;
      } // end for j

      // modify right-hand-side
      rhs[row[i]] = rhs[row[i]] - rhs[row[k]] * q;
    } // end for k

    if(LOG.isDebugging()) {
      LOG.debugFine("after pivot operation " + equationsToString(4));
    }
  }

  /**
   * solves linear system with the chosen method
   *
   * @param method the pivot search method
   */
  private void solve(int method) throws NullPointerException {
    // solution exists
    if(solved) {
      return;
    }

    // bring in reduced row echelon form
    if(!reducedRowEchelonForm) {
      reducedRowEchelonForm(method);
    }

    if(!isSolvable(method)) {
      if(LOG.isDebugging()) {
        LOG.debugFine("Equation system is not solvable!");
      }
      return;
    }

    // compute one special solution
    final int cols = coeff[0].length;
    int numbound = 0, numfree = 0;
    int[] boundIndices = new int[cols], freeIndices = new int[cols];
    x_0 = new double[cols];
    outer: for(int i = 0; i < coeff.length; i++) {
      for(int j = i; j < coeff[row[i]].length; j++) {
        if(coeff[row[i]][col[j]] == 1) {
          x_0[col[i]] = rhs[row[i]];
          boundIndices[numbound++] = col[i];
          continue outer;
        }
      }
      freeIndices[numfree++] = i;
    }

    StringBuilder msg = LOG.isDebuggingFine() ? new StringBuilder() : null;
    if(msg != null) {
      msg.append("\nSpecial solution x_0 = [") //
          .append(FormatUtil.format(x_0, ",", FormatUtil.NF4)).append(']') //
          .append("\nbound Indices ").append(FormatUtil.format(boundIndices, ",")) //
          .append("\nfree Indices ").append(FormatUtil.format(freeIndices, ","));
    }

    // compute solution space of homogeneous linear equation system
    Arrays.sort(boundIndices, 0, numbound);
    int freeIndex = 0;
    int boundIndex = 0;
    u = new double[cols][numfree];

    for(int j = 0; j < u[0].length; j++) {
      for(int i = 0; i < u.length; i++) {
        if(freeIndex < numfree && i == freeIndices[freeIndex]) {
          u[i][j] = 1;
        }
        else if(boundIndex < numbound && i == boundIndices[boundIndex]) {
          u[i][j] = -coeff[row[boundIndex]][freeIndices[freeIndex]];
          boundIndex++;
        }
      }


getRequest(), source: svnUrl, limit: 1, targets, format: "text" }).exec();

        const matches = (<string>result).split(/r\d+ \|/).length - 1;

        expect(matches).toBe(1);
    })
})

describe("returns", () => {
    it("empty array when over-filtered", async () => {
        const result = await new Log({ ...getRequest(), limit: 1, start: new Date("2200-01-01") }).exec();

        expect(result).toHaveLength(0);
    })

    it("1 result without path", async () => {
        const result = await new Log({ ...getRequest(), limit: 1 }).exec();

        expect(result).toHaveLength(1);
        expect((<LogResult[]>result)[0].paths).toBeFalsy();
    })

    it("1 result with path", async () => {
        const result = await new Log({ ...getRequest(), limit: 1, paths: true }).exec();

        expect(result).toHaveLength(1);
        expect((<LogResult[]>result)[0].paths).toBeTruthy();
    })

    it("2 results", async () => {
        const result = await new Log({ ...getRequest(), limit: 2 }).exec();

        expect(result).toHaveLength(2);
    })
})

describe("throws", () => {
    it("source is required", async () => {
        try {
            new Log({ source: null });
            fail();
        } catch (error) {
            expect(error.message).toBe("source is required");
        }
    })

    it("choose between revision or using start and/or end", () => {
        try {
            new Log({ ...getRequest(), revision: 1, start: new Date("20180913") });
            fail();
        } catch (error) {
            expect(error.message).toBe("must choose between revision or using start and/or end");
        }
    })

    it("is not a working copy", async () => {
        try {
            await new Log({ ...getRequest(), source: svnLocal + "nope" }).exec();
            fail();
        } catch (error) {
            expect(error.message).toMatch(/is not a working copy/);
        }
    })

    it("unable to connect to a repository", async () => {
        try {
            await new Log({ source: "https://nope.nope" }).exec();
            fail();
        } catch (error) {
            expect(error.message).toMatch(/Unable to connect to a repository/);
        }
    })

    it("when specifying working copy paths, only one target may be given", async () => {
        try {
            await new Log({ ...getRequest(), limit: 1, targets: ["does not matter"] }).exec();
            fail();
        } catch (error) {
            expect(error.message).toMatch(/When specifying working copy paths, only one target may be given/);
        }
    })
})// Type definitions for @wordpress/data-controls 2.2
// Project: https://github.com/WordPress/gutenberg/tree/master/packages/data-controls/README.md
// Definitions by: Derek Sifford <https://github.com/dsifford>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 3.7

import { APIFetchOptions } from '@wordpress/api-fetch';
import { Action } from '@wordpress/data';

/**
 * Dispatches a control action for triggering an api fetch call.
 *
 * @param request - Arguments for the fetch request.
 *
 * @example
 * ```js
 * import { apiFetch } from '@wordpress/data-controls';
 *
 * // Action generator using apiFetch
 * export function* myAction {
 *     const path = '/v2/my-api/items';
 *     const items = yield apiFetch( { path } );
 *     // do something with the items.
 * }
 * ```
 */
export function apiFetch(options: APIFetchOptions): unknown;

/**
 * What you use to register the controls with your custom store.
 *
 * @example
 * ```js
 * // WordPress de


 x i8*], [2 x i8*]* [[DOTOFFLOAD_PTRS9]], i32 0, i32 1
// CHECK2-32-NEXT:    [[TMP125:%.*]] = bitcast i8** [[TMP124]] to %struct.TT.0**
// CHECK2-32-NEXT:    store %struct.TT.0* [[E]], %struct.TT.0** [[TMP125]], align 4
// CHECK2-32-NEXT:    [[TMP126:%.*]] = getelementptr inbounds [2 x i8*], [2 x i8*]* [[DOTOFFLOAD_MAPPERS10]], i32 0, i32 1
// CHECK2-32-NEXT:    store i8* null, i8** [[TMP126]], align 4
// CHECK2-32-NEXT:    [[TMP127:%.*]] = getelementptr inbounds [2 x i8*], [2 x i8*]* [[DOTOFFLOAD_BASEPTRS8]], i32 0, i32 0
// CHECK2-32-NEXT:    [[TMP128:%.*]] = getelementptr inbounds [2 x i8*], [2 x i8*]* [[DOTOFFLOAD_PTRS9]], i32 0, i32 0
// CHECK2-32-NEXT:    [[KERNEL_ARGS11:%.*]] = alloca [[STRUCT___TGT_KERNEL_ARGUMENTS]], align 8
// CHECK2-32-NEXT:    [[TMP129:%.*]] = getelementptr inbounds [[STRUCT___TGT_KERNEL_ARGUMENTS]], %struct.__tgt_kernel_arguments* [[KERNEL_ARGS11]], i32 0, i32 0
// CHECK2-32-NEXT:    store i32 2, i32* [[TMP129]], align 4
// CHECK2-32-NEXT:    [[TMP130:%.*]] = getelementptr inbounds [[STRUCT___TGT_KERNEL_ARGUMENTS]], %struct.__tgt_kernel_arguments* [[KERNEL_ARGS11]], i32 0, i32 1
// CHECK2-32-NEXT:    store i32 2, i32* [[TMP130]], align 4
// CHECK2-32-NEXT:    [[TMP131:%.*]] = getelementptr inbounds [[STRUCT___TGT_KERNEL_ARGUMENTS]], %struct.__tgt_kernel_arguments* [[KERNEL_ARGS11]], i32 0, i32 2
// CHECK2-32-NEXT:    store i8** [[TMP127]], i8*** [[TMP131]], align 4
// CHECK2-32-NEXT:    [[TMP132:%.*]] = getelementptr inbounds [[STRUCT___TGT_KERNEL_ARGUMENTS]], %struct.__tgt_kernel_arguments* [[KERNEL_ARGS11]], i32 0, i32 3
// CHECK2-32-NEXT:    store i8** [[TMP128]], i8*** [[TMP132]], align 4
// CHECK2-32-NEXT:    [[TMP133:%.*]] = getelementptr inbounds [[STRUCT___TGT_KERNEL_ARGUMENTS]], %struct.__tgt_kernel_arguments* [[KERNEL_ARGS11]], i32 0, i32 4
// CHECK2-32-NEXT:    store i64* getelementptr inbounds ([2 x i64], [2 x i64]* @.offload_sizes.3, i32 0, i32 0), i64** [[TMP133]], align 4
// CHECK2-32-NEXT:    [[TMP134:%.*]] = getelementptr inbounds [[STRUCT___TGT_KERNEL_ARGUMENTS]], %struct.__tgt_kernel_arguments* [[KERNEL_ARGS11]], i32 0, i32 5
// CHECK2-32-NEXT:    store i64* getelementptr inbounds ([2 x i64], [2 x i64]* @.offload_maptypes.4, i32 0, i32 0), i64** [[TMP134]], align 4
// CHECK2-32-NEXT:    [[TMP135:%.*]] = getelementptr inbounds [[STRUCT___TGT_KERNEL_ARGUMENTS]], %struct.__tgt_kernel_arguments* [[KERNEL_ARGS11]], i32 0, i32 6
// CHECK2-32-NEXT:    store i8** null, i8***


EST_WRITE_CONCATENATED(
                   "\nFormat string   ", fmt, "\nExpected output ", expected, "\nActual output   ", out, '\n'));
};

auto test_exception =
    []<class CharT, class... Args>(
        [[maybe_unused]] std::string_view what,
        [[maybe_unused]] std::basic_string_view<CharT> fmt,
        [[maybe_unused]] Args&&... args) {
      TEST_VALIDATE_EXCEPTION(
          std::format_error,
          [&]([[maybe_unused]] const std::format_error& e) {
            TEST_LIBCPP_REQUIRE(
                e.what() == what,
                TEST_WRITE_CONCATENATED(
                    "\nFormat string   ", fmt, "\nExpected exception ", what, "\nActual exception   ", e.what(), '\n'));
          },
          TEST_IGNORE_NODISCARD std::vformat(fmt, std::make_format_args<context_t<CharT>>(args...)));
    };

int main(int, char**) {
  format_tests<char>(test, test_exception);

#ifndef TEST_HAS_NO_WIDE_CHARACTERS
  format_tests<wchar_t>(test, test_exception);
#endif

  return 0;
}
//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

// UNSUPPORTED: c++03, c++11, c++14, c++17
// UNSUPPORTED: GCC-ALWAYS_INLINE-FIXME

// <deque>

// template <class T, class Allocator, class Predicate>
//   typename deque<T, Allocator>::size_type
//   erase_if(deque<T, Allocator>& c, Predicate pred);

#include "asan_testing.h"
#include <deque>

#include "test_macros.h"
#include "test_allocator.h"
#include "min_allocator.h"

template <class S, class Pred>
void test0(S s, Pred p, S expected, std::size_t expected_erased_count) {
  ASSERT_SAME_TYPE(typename S::size_type, decltype(std::erase_if(s, p)));
  assert(expected_erased_count == std::erase_if(s, p));
  assert(s == expected);
  LIBCPP_ASSERT(is_double_ended_contiguous_container_asan_correct(s));
}

template <typename S>
void test()
{
    auto is1 = [](auto v) { return v == 1;};
    auto is2 = [](auto v) { return v == 2;};
    auto is3 = [](auto v) { return v == 3;};
    auto is4 = [](auto v) { return v == 4;};
    auto True  = [](auto) { return true; };
    auto False = [](auto) { return false; };

    test0(S(), is1, S(), 0);

    test0(S({1}), is1, S(), 1);
    test0(S({1}), is2, S({1}), 0);

    test0(S({1, 2}), is1, S({2}), 1);
    test0(S({1, 2}), is2, S({1}), 1);
    test0(S({1, 2}), is3, S({1, 2}), 0);
    test0(S({1, 1}), is1, S(), 2);
    test0(S({1, 1}), is3, S({1, 1}), 0);

    test0(S({1, 2, 3}), is1, S({2, 3}), 1);
    test0(S({1, 2, 3}), is2, S({1, 3}), 1);
    test0(S({1, 2, 3}), is3, S({1, 2}), 1);
    test0(S({1, 2, 3}), is4, S({1, 2, 3}), 0);

    test0(S({1, 1, 1}), is1, S(), 3);
    test0(S({1, 1, 1}),


scale(imgRgb,self.imgSize[2], self.imgSize[1])
        else
            imgRgb = image.scale(imgRgb,self.imgSize[2], self.imgSize[1])
            local alphaMask = imgRgb[4]:repeatTensor(3,1,1)
            imgRgb = torch.cmul(imgRgb:narrow(1,1,3),alphaMask) + 1 - alphaMask
        end
        imgs[b] = imgRgb
        local rPerm = torch.randperm(nImgs)

        for nc = 1,self.nCams do
            local numSamples =  self.nRaysPerCam
            local imgNum = rPerm[nc] - 1
            --local imgNum = (nc==1) and inpImgNum or torch.random(0,nImgs-1)
            local camData = matio.load(string.format('%s/camera_%d.mat',imgsDir,imgNum),{'pos','quat','K','extrinsic'})
            local dMap = (image.load(string.format('%s/%s_%d.png',imgsDir,self.depthPrefix,imgNum))*maxSavedDepth)
            local disparityIm = dMap:clone():pow(-1)
            local dispMask = torch.Tensor(dMap:size()):fill(1)

            local mMat = dUtils.inverseMotionMat(camData.extrinsic)

            local dirSamples, dSamples = dUtils.sampleRays(disparityIm, dispMask, camData.K, self.minDisp, numSamples)

            local orgSamples = torch.Tensor(4,numSamples):fill(0)
            orgSamples:narrow(1,4,1):fill(1)
            orgSamples = torch.mm(mMat, orgSamples:typeAs(mMat)):narrow(1,1,3):transpose(2,1)
            dirSamples = torch.mm(mMat, dirSamples:typeAs(mMat)):narrow(1,1,3):transpose(2,1)

            depths[b]:narrow(1,(nc-1)*numSamples+1,numSamples):copy(dSamples)
            directions[b]:narrow(1,(nc-1)*numSamples+1,numSamples):copy(dirSamples)
            origins[b]:narrow(1,(nc-1)*numSamples+1,numSamples):copy(orgSamples)
        end
    end
    local bgLabel = torch.gt(depths,10):double()
    if(self.maskOnly) then
        depths  = bgLabel:clone()
    end
    return {imgs, {origins, directions, depths}, bgLabel}
end
-------------------------------
-------------------------------
M.dataLoader = dataLoader
return M


).zero()));
    }

    @Test
    public void testRandSquare() {
        Matrix A = Matrices.random(5, 5);

        QRP qrp = QRP.factorize(A);
        Matrix Q = qrp.getQ();
        Matrix R = qrp.getR();
        int P[] = qrp.getPVector();

        assertMatrixEquals(A, mult(Q, P, R, A.copy().zero()));
    }

    @Test
    public void testRandRectangular1() {
        Matrix A = Matrices.random(4, 6);

        QRP qrp = QRP.factorize(A);

        assertMatrixEquals(A,
                mult(qrp.getQ(), qrp.getPVector(), qrp.getR(), A.copy().zero()));
    }

    @Test
    public void testRandRectangular2() {
        Matrix A = Matrices.random(6, 4);

        QRP qrp = QRP.factorize(A);

        assertMatrixEquals(A,
                mult(qrp.getQ(), qrp.getPVector(), qrp.getR(), A.copy().zero()));
    }

    @Test
    public void testPivotingMatrix() {
        Matrix A = Matrices.random(6, 4);

        QRP qrp = QRP.factorize(A);
        Matrix Q = qrp.getQ();
        Matrix R = qrp.getR();
        Matrix P = qrp.getP();

        Matrix C = A.copy().zero();
        Matrix D = A.copy().zero();

        Q.mult(R, C);
        C.transBmult(P, D);

        assertMatrixEquals(A, D);
    }

    @Test
    public void testRank1() {
        Matrix rand = Matrices.random(6, 4);

        Matrix A = new DenseMatrix(rand.numRows(), rand.numRows());
        rand.transBmult(rand, A);

        QRP qrp = QRP.factorize(A);

        assertEquals(Math.min(rand.numRows(), rand.numColumns()), qrp.getRank());
    }

    @Test
    public void testRank2() {
        Matrix rand = Matrices.random(4, 6);

        Matrix A = new DenseMatrix(rand.numRows(), rand.numRows());
        rand.transBmult(rand, A);

        QRP qrp = QRP.factorize(A);

        assertEquals(Math.min(rand.numRows(), rand.numColumns()), qrp.getRank());
    }

    /**
     * Executes the multiplication C = Q*P*R
     *
     * @param Q
     *            matrix Q
     * @param P
     *            column permutation of R
     * @param R
     *            matrix R
     * @param C
     *            matrix tu put the results
     * @return the matrix C
     */
    protected Matrix mult(Matrix Q, int[] P, Matrix R, Matrix C) {
        for (int i = 0; i < Q.numRows(); ++i) {
            for (int j = 0; j < C.numColumns(); ++j) {
                double dot = 0;
                for (int k = 0; k < Q.numColumns(); ++k) {
                    dot += Q.get(i, k) * R.get(k, j);
                }
                C.add(i, P[j], dot);
            }
        }
        return C;
    }
    private static final double DELTA = 1e-12;

    /**
     * Assert that the given matrices are identical
     */
    protected void assertMatrixEquals(Matrix A, Matrix B) {
        assertEquals(A.numRows(), B.numRows());
        assertEquals(A.numColumns(), B.numColumns());
        for (int i = 0; i < A.numRows(); ++i) {
            for (int j = 0; j < A.numColumns(); ++j) {
                assertEquals(A.get(i, j), B.get(i, j), DELTA);
            }
        }
    }
}
/*
 * Copyright (C) 2003-2006 Bjørn-Ove Heimsund
 *
 * This file is part of MTJ.
 *
 * This library is free software; you can redistribute it and/or modify it
 * under the terms


/* -*- mode: C; c-file-style: "gnu" -*- */
/* xdgmimeparent.h: Private file.  Datastructure for storing the hierarchy.
 *
 * More info can be found at http://www.freedesktop.org/standards/
 *
 * Copyright (C) 2004  Red Hat, Inc.
 * Copyright (C) 200  Matthias Clasen <mclasen@redhat.com>
 *
 * Licensed under the Academic Free License version 2.0
 * Or under the following terms:
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 */

#ifndef __XDG_MIME_PARENT_H__
#define __XDG_MIME_PARENT_H__

#include "xdgmime.h"

typedef struct XdgParentList XdgParentList;

#ifdef XDG_PREFIX
#define _xdg_mime_parent_read_from_file        XDG_RESERVED_ENTRY(parent_read_from_file)
#define _xdg_mime_parent_list_new              XDG_RESERVED_ENTRY(parent_list_new)
#define _xdg_mime_parent_list_free             XDG_RESERVED_ENTRY(parent_list_free)
#define _xdg_mime_parent_list_lookup           XDG_RESERVED_ENTRY(parent_list_lookup)
#define _xdg_mime_parent_list_dump             XDG_RESERVED_ENTRY(parent_list_dump)
#endif

void          _xdg_mime_parent_read_from_file (XdgParentList *list,
					       const char    *file_name);
XdgParentList *_xdg_mime_parent_list_new       (void);
void           _xdg_mime_parent_list_free      (XdgParentList *list);
const char   **_xdg_mime_parent_list_lookup    (XdgParentList *list,
						const char    *mime);
void           _xdg_mime_parent_list_dump      (XdgParentList *list);

#endif /* __XDG_MIME_PARENT_H__ */


section,
html .hljs-selector-tag,
html .hljs-subst {
  color: #e45649;
}
html .hljs-literal {
  color: #0184bb;
}
html .hljs-addition,
html .hljs-attribute,
html .hljs-meta .hljs-string,
html .hljs-regexp,
html .hljs-string {
  color: #50a14f;
}
html .hljs-attr,
html .hljs-number,
html .hljs-selector-attr,
html .hljs-selector-class,
html .hljs-selector-pseudo,
html .hljs-template-variable,
html .hljs-type,
html .hljs-variable {
  color: #986801;
}
html .hljs-bullet,
html .hljs-link,
html .hljs-meta,
html .hljs-selector-id,
html .hljs-symbol,
html .hljs-title {
  color: #4078f2;
}
html .hljs-built_in,
html .hljs-class .hljs-title,
html .hljs-title.class_ {
  color: #c18401;
}
html .hljs-emphasis {
  font-style: italic;
}
html .hljs-strong {
  font-weight: 700;
}
html .hljs-link {
  text-decoration: underline;
}
@import './styles/setting/_variables.scss';
// 间距基础倍数
$uni-space-root: 2;
// 边框半径默认值
$uni-radius-root:5px;

// 主色
$uni-primary: #2979ff;
$uni-primary-disable:mix(#fff,$uni-primary,50%);
$uni-primary-light: mix(#fff,$uni-primary,80%);

// 辅助色
// 除了主色外的场景色，需要在不同的场景中使用（例如危险色表示危险的操作）。
$uni-success: #18bc37;
$uni-success-disable:mix(#fff,$uni-success,50%);
$uni-success-light: mix(#fff,$uni-success,80%);

$uni-warning: #f3a73f;
$uni-warning-disable:mix(#fff,$uni-warning,50%);
$uni-warning-light: mix(#fff,$uni-warning,80%);

$uni-error: #e43d33;
$uni-error-disable:mix(#fff,$uni-error,50%);
$uni-error-light: mix(#fff,$uni-error,80%);

$uni-info: #8f939c;
$uni-info-disable:mix(#fff,$uni-info,50%);
$uni-info-light: mix(#fff,$uni-info,80%);

// 中性色
// 中性色用于文本、背景和边框颜色。通过运用不同的中性色，来表现层次结构。
$uni-main-color: #3a3a3a; 			// 主要文字
$uni-base-color: #6a6a6a;			// 常规文字
$uni-secondary-color: #909399;	// 次要文字
$uni-extra-color: #c7c7c7;			// 辅助说明

// 边框颜色
$uni-border-1: #F0F0F0;
$uni-border-2: #EDEDED;
$uni-border-3: #DCDCDC;
$uni-border-4: #B9B9B9;

// 常规色
$uni-black: #000000;
$uni-white: #ffffff;
$uni-transparent: rgba($color: #000000, $alpha: 0);

// 背景色
$uni-bg-color: #f7f7f7;

/* 水平间距 */
$uni-spacing-sm: 8px;
$uni-sp


{
                        // Attribute to be tested.
                        if (selectedIds != null && attribute.IsMultipleChoice)
                        {
                            // Take selected values and append current value.
                            valueIds = selectedIds.Append(currentValue.Id).Distinct();
                        }
                        else
                        {
                            // Single selection attribute -> take current value.
                            valueIds = new[] { currentValue.Id };
                        }
                    }
                    else
                    {
                        // Other attribute.
                        if (selectedIds != null)
                        {
                            // Take selected value(s).
                            valueIds = selectedIds;
                        }
                        else
                        {
                            // No selected value -> no unavailable combination.
                            return null;
                        }
                    }

                    selection.AddAttribute(attribute.Id, valueIds.Select(x => (object)x));
                }
            }

            var key = selection.GetHashCode();
            //$"{!unavailableCombinations.ContainsKey(key),-5} {currentValue.ProductVariantAttributeId}:{currentValue.Id} -> {key}".Dump();

            if (unavailableCombinations.TryGetValue(key, out var availability))
            {
                return availability;
            }

            if (product.AttributeCombinationRequired && await FindAttributeCombinationAsync(product.Id, selection) == null)
            {
                return new() { IsActive = false };
            }

            return null;
        }

        protected virtual async Task<IList<ProductVariantAttributeValue>> LoadAttributeValuesAsync(int[] attributeIds, int[] valueIds)
        {
            if (attributeIds.IsNullOrEmpty() || valueIds.IsNullOrEmpty())
            {
                return new List<ProductVariantAttributeValue>();
            }

            // ProductVariantAttributeSelection can also contain numeric values of text fields that are not ProductVariantAttributeValue IDs!
            // That is why it is important to also filter by list types because only list types (e.g. dropdown list)
            // can have assigned ProductVariantAttributeValue entities.

            return await _db.ProductVariantAttributeValues
                .Include(x => x.ProductVariantAttribute)
                .ThenInclude(x => x.ProductAttribute)
                .AsSplitQuery()
                .AsNoTrac


ations() {
		String sql = "SELECT DISTINCT " + KEY_LOCATION +
			" FROM " + DB_TB_BOOKS + "" +
			" ORDER BY Upper(" + KEY_LOCATION + ") " + COLLATION;
		return mDb.rawQuery(sql, new String[]{});
	}

	/**
	 * Return a Cursor over the list of all publishers in the database
	 *
	 * @return Cursor over all publisher
	 */
	public Cursor fetchAllPublishers() {
		String sql = "SELECT DISTINCT " + KEY_PUBLISHER +
			" FROM " + DB_TB_BOOKS + "" +
			" ORDER BY Upper(" + KEY_PUBLISHER + ") " + COLLATION;
		return mDb.rawQuery(sql, new String[]{});
	}

	/**
	 * This will return a list of all series within the given bookshelf
	 *
	 * @param bookshelf The bookshelf to search within. Can be the string "All Books"
	 * @return Cursor over all series
	 */
	public Cursor fetchAllSeries(String bookshelf) {
		return fetchAllSeries(bookshelf, false);
	}

	private String sqlAllSeriesOnBookshelf(String bookshelf) {
		return "select distinct s." + KEY_ROWID + " as " + KEY_ROWID + ", s." + KEY_SERIES_NAME + " as " + KEY_SERIES_NAME//+ ", s." + KEY_SERIES_NAME + " as series_sort "
				 + " From " + DB_TB_SERIES + " s "
				 + " join " + DB_TB_BOOK_SERIES + " bsw "
				 + "    on bsw." + KEY_SERIES_ID + " = s." + KEY_ROWID
				 + " join " + DB_TB_BOOKS + " b "
				 + "    on b." + KEY_ROWID + " = bsw." + KEY_BOOK
				 + " join " + DB_TB_BOOK_BOOKSHELF_WEAK + " bbw"
				 + "    on bbw." + KEY_BOOK + " = b." + KEY_ROWID
				 + " join " + DB_TB_BOOKSHELF + " bs "
				 + "    on bs." + KEY_ROWID + " = bbw." + KEY_BOOKSHELF
				 + " where " + makeTextTerm("bs." + KEY_BOOKSHELF, "=", bookshelf);
	}
	private String sqlAllSeries() {
		return "select distinct s." + KEY_ROWID + " as " + KEY_ROWID + ", s."+ KEY_SERIES_NAME + " as " + KEY_SERIES_NAME //+ ", s." + KEY_SERIES_NAME + " as series_sort "
				 + " From " + DB_TB_SERIES + " s ";
	}
	/**
	 * This will return a list of all series within the given bookshelf
	 *
	 * @param bookshelf The bookshelf to search within. Can be the string "All Books"
	 * @return Cursor over all series
	 */
	public Cursor fetchAllSeries(String bookshelf, boolean include_blank) {
		String series;
		if (bookshelf.equals("")) {
			series = sqlAllSeries();
		} else {
			series = sqlAllSeriesOnBookshelf(bookshelf);
		}
		// Display blank series as '<Empty Series>' BUT sort as ''. Using a UNION
		// seems to make ordering fail.
		String sql = "Select " + KEY_ROWID + ", Case When " + KEY_SERIES_NAME + " = '' Then '" + META_EMPTY_SERIES + "' Else " + KEY_SERIES_NAME + " End  as " + KEY_SERIES_NAME
					+ " From ( " + series
					+ "       UNION Select -1 as " + KEY_ROWID + ", '' as " + KEY_SERIES_NAME
					+ "       ) s"
					+ " Order by Upper(s." + KEY_SERIES_NAME + ") " + COLLATION + " asc ";

		return mDb.rawQuery(sql, new Stri


="ns-option ">

Mexican Peso

NZ Dollar

Norwegian Krone

Singapore Dollar

South Korean Won

Swedish Krona

Swiss Franc

Help

Track/Request a Return
Unsubscribe from Catalog
Unsubscribe from Email
Payments
Sales Tax / Tax Exemptions
<a class="fs16 c36 noUnderline OpenSans-300-normal" href="https://www.bhphotovideo.com/find/HelpCenter/helpcenter.jsp" na


// Copyright (C) 2002-2012 Nikolaus Gebhardt
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h

#pragma once

#include "SMaterial.h"
#include "S3DVertex.h"

namespace irr
{
namespace video
{

class IVideoDriver;

//! Interface providing some methods for changing advanced, internal states of a IVideoDriver.
class IMaterialRendererServices
{
public:
	//! Destructor
	virtual ~IMaterialRendererServices() {}

	//! Can be called by an IMaterialRenderer to make its work easier.
	/** Sets all basic renderstates if needed.
	Basic render states are diffuse, ambient, specular, and emissive color,
	specular power, bilinear and trilinear filtering, wireframe mode,
	grouraudshading, lighting, zbuffer, zwriteenable, backfaceculling and
	fog enabling.
	\param material The new material to be used.
	\param lastMaterial The material used until now.
	\param resetAllRenderstates Set to true if all renderstates should be
	set, regardless of their current state. */
	virtual void setBasicRenderStates(const SMaterial &material,
			const SMaterial &lastMaterial,
			bool resetAllRenderstates) = 0;

	//! Return an index constant for the vertex shader based on a uniform variable name.
	virtual s32 getVertexShaderConstantID(const c8 *name) = 0;

	//! Sets a value for a vertex shader uniform variable.
	/** \param index Index of the variable (as received from getVertexShaderConstantID)
	\param floats Pointer to array of floats
	\param count Amount of floats in array.
	\return True if successful.
	*/
	virtual bool setVertexShaderConstant(s32 index, const f32 *floats, int count) = 0;

	//! Int interface for the above.
	virtual bool setVertexShaderConstant(s32 index, const s32 *ints, int count) = 0;

	//! Uint interface for the above.
	virtual bool setVertexShaderConstant(s32 index, const u32 *ints, int count) = 0;

	//! Return an index constant for the pixel shader for the given uniform variable name
	virtual s32 getPixelShaderConstantID(const c8 *name) = 0;

	//! Sets a value for the given pixel shader uniform variable
	/** This can be used if you used a high level shader language like GLSL
	or HLSL to create a shader. See setVertexShaderConstant() for an
	example on how to use this.
	\param index Index of the variable (as received from getPixelShaderConstantID)
	\param floats Pointer to array of floats
	\param count Amount of floats in array.
	\return True if successful. */
	virtual bool setPixelShaderConstant(s32 index, const f32 *floats, int count) = 0;

	//! Int interface for the above.
	virtual bool setPixelShaderConstant(s32 index, const s32 *ints, int count) = 0;

	//! Uint interface for the above.
	virtual bool setPixelShaderConstant(s32 index, const u32 *ints, int count) = 0;

	//! Get pointer to the IVideoDriver interface
	/** \return Pointer to the IVideoDriver interface */
	virtual IVideoDriver *getVideoDriver() = 0;
};

} // end namespace video
} // end namespace irr


ストラ」と呼ばれることもあるが、これは不適切な呼び方であると批判されることが多い[^evima-extended-graph]。
-   Fibonacci heap を用いて適切に実装すると計算量が $O(\vert E \vert + \vert V \vert \log \vert V \vert)$ に落ちる。これは競技プログラミングの範囲内でもグラフによっては速いことがある[^rsk0315-fibonacci][^noshi91-fibonacci]。

## 参考文献

-   Dijkstra, E.W. A note on two problems in connexion with graphs. Numer. Math. 1, 269–271 (1959). <https://doi.org/10.1007/BF01386390>
    -   Dijkstra による提案論文。再発明された Prim 法の紹介も含んでいる。

## 関連項目

-   [動的計画法](/algorithm-encyclopedia/dynamic-programming)
    -   Dijkstra 法は動的計画法のひとつである。
-   Prim 法
    -   Prim 法は最小全域木を求めるアルゴリズムのひとつであるが、Dijkstra 法と類似している。
-   [Bellman-Ford 法](/algorithm-encyclopedia/bellman-ford)
    -   Bellman-Ford 法は Dijkstra 法と並ぶ単一始点最短経路問題を解くアルゴリズムのひとつである。Dijkstra 法より遅いが、Dijkstra 法とは違って負辺があっても動作する。
-   [Shortest Path Faster Algorithm](/algorithm-encyclopedia/spfa)
    -   Dijkstra 法を優先度付きキューでなく普通のキューを使うように修正するとほとんど SPFA になる。
-   [Warshall-Floyd 法](/algorithm-encyclopedia/warshall-floyd)
    -   Warshall-Floyd 法は全点対間最短経路問題を解くアルゴリズムのひとつである。Dijkstra 法を $\vert V \vert$ 回実行したいような場合には、代わりに Warshall-Floyd 法を使うとよい。
-   [Dial's algorithm](/algorithm-encyclopedia/dial)
    -   与えられるグラフの辺の重みが整数でかつ最大値が $k$ のとき、この仮定を使って優先度付きキューの持ち方を工夫することで、Dijkstra 法を修正して計算量は $O(k \vert V \vert + \vert E \vert)$ に落とせる。そのように修正したものが Dial's algorithm である。

## 外部リンク

-   [色々なダイクストラ高速化 - SlideShare](https://www.slideshare.net/yosupo/ss-46612984)[archive.org](https://web.archive.org/web/20210212144246/https://www.slideshare.net/yosupo/ss-46612984)
    -   yosupo によるスライド。必須の高速化テクニック (単純な枝刈り) や、辺の重みの整数性を利用した高速化テクニック (Dial's algorithm) などが紹介されている。
-   [ダイクストラ法のよくあるミスと落し方 - あなたは嘘つきですかと聞かれたら「YES」と答えるブログ](https://snuke.hatenablog.com/entry/2021/02/22/102734)[archive.org](https://web.archive.org/web/20210222035858/https://snuke.hatenablog.com/entry/2021/02/22/102734)
    -   snuke によるブログ記事。実装ミスをしている Dijkst