rong>

☁ Cloud Computing (AWS, Azure Load Balancing)

📦 Logistics (Amazon, FedEx, DHL)

🎮 Game AI & Pathfinding

Do you want an interactive visualization? Let me know! 🎯

{% extends "blog/base.html" %}

{% block title %}{{ recipe.title }}{% endblock %}

{% block content %}

    Back to Recipe List

{{ recipe.title }}

{{ recipe.description }}

    {% if user.is_authenticated %}
        Save Recipe
    {% endif %}

    {% if recipe.average_rating %}

Average Rating: {{ recipe.average_rating |floatformat:1}}

    {% endif %}

    {% if allergens %}

        Warning: This recipe contains the following allergens:

            {% for allergen in allergens %}

{{ allergen|capfirst }}

            {% endfor %}

    {% endif %}

    {% if recipe.image %}

    {% endif %}

Ingredients

            {% for ingredient in recipe.ingredients.all %}

{{ ingredient }}

            {% endfor %}

Instructions

            {% for instruction in instructions %}

{{ instruction.text }}

                {% if instruction.image %}

                {% endif %}

            {% endfor %}

    {% include "blog/comment_section.html" with comments=comments %}

    {% if user.is_authenticated %}

Rate the Recipe

       <form method="post" class="rate-form">
            {% csrf_token %}
            {{ rating_form.as_p }}
            <button type="submit" class="btn">Rate</button>
        </form>

Add a Comment

        <form method="post" class="comment-form" onsubmit="return validateComment()">
            {% csrf_token %}
            {{ comment_form.as_p }}

Comment is too short to post.

            <button type="submit" class="btn">Post Comment</button>
        </form>


dex 7 in the final sequence. A full list of the available aggregate and interpolation functions is provided earlier in this manual (see "Expressions/Functions" above).

Operators

All operators can work with vector operands. Operations are performed element-by-element and the results are returned in an output vector. This applies also for the multiplication operator. For example:

  [2; 4; 5]*[2; 3; 4]' = [4 12 20]

If the lengths of both vectors are different, the shorter vector is padded with zeros to the length of the longer one. Dot and cross products in Calcpad are implemented as functions (see above). All binary operators are supported for vector-scalar and scalar-vector operands in a similar way. For example:

  [2; 4; 5]*2' = [4 8 10]

Matrices

Internal implementation and types of matrices

Calcpad includes different types of matrices: general (rectangular) and special (column, symmetric, diagonal. upper/lower triangular). Internally, each type is implemented in a different way that benefits from the specific structure for better efficiency. Externally, all of them behave in a similar way, except for a few cases.

Each matrix type is implemented as an array of vectors, as displayed on the figure below. Vectors normally represent matrix rows, except for diagonal and column matrices.

Calcpad uses large vectors to contain the values. So, it does not store the extra zero elements for partially filled (banded) matrices. The indexing operator for each type is internally redefined in order to return directly zero when we try to read a value outside the matrix structure or bandwidth.

a) diagonal matrix -  		 	M[i, j] = d[i], if i = j and 0, if i ≠ j;

b) column matrix - 			 	M[i, j] = c[i], if j = 1, otherwise – error;

c) upper triangular matrix - 	M[i, j] = ri[j – i + 1], if j ≥ i, otherwise – 0;

d) lower triangular matrix - 	M[i, j] = ri[j], if j ≤ i, otherwise – 0;

e) row matrix - 			 	M[i, j] = r[j], if i = 1, otherwise – error;

f) symmetric matrix -		 	M[i, j] = ri[j – i + 1], if i ≥ j, otherwise = ri [i – j + 1];

g) rectangular matrix -  	 	M[i, j] = ri[j];

If we try to write a non-zero value outside the matrix structure, we will get an "Index out of range" error. For example, you cannot assign a non-zero value to an element outside the main diagonal of a diagonal type of matrix.

<


static str { "addLogMessage" }
  fn to_json(&self) -> RTDResult<String> { Ok(serde_json::to_string(self)?) }
}

impl RFunction for AddLogMessage {}

impl AddLogMessage {
  pub fn from_json<S: AsRef<str>>(json: S) -> RTDResult<Self> { Ok(serde_json::from_str(json.as_ref())?) }
  pub fn builder() -> RTDAddLogMessageBuilder {
    let mut inner = AddLogMessage::default();
    inner.td_name = "addLogMessage".to_string();
    RTDAddLogMessageBuilder { inner }
  }

  pub fn verbosity_level(&self) -> i64 { self.verbosity_level }

  pub fn text(&self) -> &String { &self.text }

}

#[doc(hidden)]
pub struct RTDAddLogMessageBuilder {
  inner: AddLogMessage
}

impl RTDAddLogMessageBuilder {
  pub fn build(&self) -> AddLogMessage { self.inner.clone() }

  pub fn verbosity_level(&mut self, verbosity_level: i64) -> &mut Self {
    self.inner.verbosity_level = verbosity_level;
    self
  }

  pub fn text<T: AsRef<str>>(&mut self, text: T) -> &mut Self {
    self.inner.text = text.as_ref().to_string();
    self
  }

}

impl AsRef<AddLogMessage> for AddLogMessage {
  fn as_ref(&self) -> &AddLogMessage { self }
}

impl AsRef<AddLogMessage> for RTDAddLogMessageBuilder {
  fn as_ref(&self) -> &AddLogMessage { &self.inner }
}

/// Adds the specified data to data usage statistics. Can be called before authorization
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
pub struct AddNetworkStatistics {
  #[doc(hidden)]
  #[serde(rename(serialize = "@type", deserialize = "@type"))]
  td_name: String,
  /// The network statistics entry with the data to be added to statistics
  entry: NetworkStatisticsEntry,

}

impl RObject for AddNetworkStatistics {
  #[doc(hidden)] fn td_name(&self) -> &'static str { "addNetworkStatistics" }
  fn to_json(&self) -> RTDResult<String> { Ok(serde_json::to_string(self)?) }
}

impl RFunction for AddNetworkStatistics {}

impl AddNetworkStatistics {
  pub fn from_json<S: AsRef<str>>(json: S) -> RTDResult<Self> { Ok(serde_json::from_str(json.as_ref())?) }
  pub fn builder() -> RTDAddNetworkStatisticsBuilder {
    let mut inner = AddNetworkStatistics::default();
    inner.td_name = "addNetworkStatistics".to_string();
    RTDAddNetworkStatisticsBuilder { inner }
  }

  pub fn entry(&self) -> &NetworkStatisticsEntry { &self.entry }

}

#[doc(hidden)]
pub struct RTDAddNetworkStatisticsBuilder {
  inner: AddNetworkStatistics
}

impl RTDAddNetworkStatisticsBuilder {
  pub fn build(&self) -> AddNetworkStatistics { self.inner.clone() }

  pub fn entry<T: AsRef<NetworkStatisticsEntry>>(&mut self, entry: T) -> &mut Self {
    self.inner.entry = entry.as_ref().clone();
    self
  }

}

impl AsRef<AddNetworkStatistics> for AddNetworkStatistics {
  fn as_ref(&self) -> &AddNetworkStatistics { self }
}

impl AsRef<AddNetworkStatistics> for RTDAddNetworkStatisticsBuilder {
  fn as_ref(&self) -> &AddNetworkStatistics { &self.inner }
}

/// Adds a proxy server for network requests. Can be called before authori


stE+PQ=="
    }
  },
  "version": 1
}
```

#### responder <--- node
```javascript
{
  "jsonrpc": "2.0",
  "method": "channels.update",
  "params": {
    "channel_id": "ch_Mqj2nG3WUjYbGGc3PUVPBfsEqKdRSYcJ5gjAqZMckvKFZxoPo",
    "data": {
      "state": "tx_+NMLAfiEuEAOlbWPwBmU35jSXUteGO5HCCim7UWi3/LAiN6UmxQp07pTYdwEW5GiHjDY3l3m+rF5TIadno5JsB2a/7yVonEGuECoUZz/yWarsW9xeqBNprihoX7ImFgKqHY66HLO8nsNsB2ulZyFKOEAyugR+fpVtfPRcuR35DjSMhWaP4X/G/wOuEn4RzkCoQYvUehiDnzsCl3F1tmJFju5NvHz/YpDxJETdOxiaZoud4GJoMBeCrZ/KzKkDula6KhtKjkNG3rVtrwW99Ge1/Aqa866stE+PQ=="
    }
  },
  "version": 1
}
```

#### initiator ---> node
```javascript
{
  "jsonrpc": "2.0",
  "method": "channels.get.contract_call",
  "params": {
    "caller_id": "ak_2hPyRka8YsBFw7gfhj84Ut11d8mtFdgXGFAksjGgjkcn5pVXpF",
    "contract_id": "ct_GmPw3tuAVKkPwZgPPNhVKWATZdWtHkBsbc5dkNm67diaSoiox",
    "round": "2"
  }
}
```

#### initiator <--- node
```javascript
{
  "channel_id": "ch_Mqj2nG3WUjYbGGc3PUVPBfsEqKdRSYcJ5gjAqZMckvKFZxoPo",
  "error": {
    "code": 3,
    "data": [
      {
        "code": 1008,
        "message": "Not a number"
      }
    ],
    "message": "Rejected",
    "request": {
      "jsonrpc": "2.0",
      "method": "channels.get.contract_call",
      "params": {
        "caller_id": "ak_2hPyRka8YsBFw7gfhj84Ut11d8mtFdgXGFAksjGgjkcn5pVXpF",
        "contract_id": "ct_GmPw3tuAVKkPwZgPPNhVKWATZdWtHkBsbc5dkNm67diaSoiox",
        "round": "2"
      }
    }
  },
  "id": null,
  "jsonrpc": "2.0",
  "version": 1
}
```

#### initiator ---> node
```javascript
{
  "jsonrpc": "2.0",
  "method": "channels.get.contract_call",
  "params": {
    "caller_id": "ABCEDFG",
    "contract_id": "ct_GmPw3tuAVKkPwZgPPNhVKWATZdWtHkBsbc5dkNm67diaSoiox",
    "round": 137
  }
}
```

#### initiator <--- node
```javascript
{
  "channel_id": "ch_Mqj2nG3


ax / 2 && velocityX > -VELOCITY_THRESHOLD)) {
            destX = originX.get(4);
            tag--;
        }
        if (tag < 0 || tag >= adapter.getItemCount()) {
            return;
        }

        if (Math.abs(animatingView.getLeft() - destX) < mTouchSlop && Math.abs(eventX - downX) < mTouchSlop) {
            return;
        }

        adapter.displaying(tag);
        animator = ObjectAnimator.ofFloat(this, "animateValue", animatingView.getLeft(), destX);
        animator.setInterpolator(interpolator);
        animator.setDuration(360).start();
    }

    private void requireScrollChange(int dx) {
        if (dx == 0) {
            return;
        }

        int currentPosition = Integer.parseInt(getChildAt(3).getTag().toString());
        if (dx < 0 && currentPosition >= adapter.getItemCount()) {
            return;
        } else if (dx > 0) {
            if (currentPosition <= 0) {
                return;
            } else if (currentPosition == 1) {
                if (getChildAt(3).getLeft() + dx >= originX.get(4)) {
                    dx = originX.get(4) - getChildAt(3).getLeft();
                }
            }
        }

        int num = getChildCount();

        // 1. View循环复用
        FrameLayout firstView = (FrameLayout) getChildAt(0);

        if (dx > 0 && firstView.getLeft() >= originX.get(1)) {
            // 向右滑动，从左边把View补上
            FrameLayout lastView = (FrameLayout) getChildAt(getChildCount() - 1);

            LayoutParams lp = lastView.getLayoutParams();
            removeViewInLayout(lastView);
            addViewInLayout(lastView, 0, lp);

            int tag = Integer.parseInt(lastView.getTag().toString());
            tag -= num;
            lastView.setTag(tag);
            if (tag < 0) {
                lastView.setVisibility(View.INVISIBLE);
            } else {
                lastView.setVisibility(View.VISIBLE);
                adapter.bindView(lastView.getChildAt(0), tag);
            }
        } else if (dx < 0 && firstView.getLeft() <= originX.get(0)) {
            // 向左滑动，从右边把View补上
            LayoutParams lp = firstView.getLayoutParams();
            removeViewInLayout(firstView);
            addViewInLayout(firstView, -1, lp);

            int tag = Integer.parseInt(firstView.getTag().toString());
            tag += num;
            firstView.setTag(tag);
            if (tag >= adapter.getItemCount()) {
                firstView.setVisibility(View.INVISIBLE);
            } else {
                firstView.setVisibility(View.VISIBLE);
                adapter.bindView(firstView.getChildAt(0), tag);
            }
        }

        // 2. 位置修正
        View view3 = getChildAt(3);
        float rate = (float) ((view3.getLeft() + dx) - originX.get(3)) / scrollDistanceMax;
        if (rate < 0) {
            rate = 0;
        }
        int position1 = Math.round(rate * (originX.get(2) - originX.get(1))) + originX.get(1);
        boolean endAnim = false;
        if (position1 >= originX.get(2) && null != animatingView) {
            animator.cancel();
            endAnim = true;
        }
        for (int i = 0; i < num; i++) {
            View itemView = getChildAt(i);
            if (endAnim) {
                itemView.offsetLeftAndRight(originX.get(i + 1) - itemView.getLeft());
            } else if (itemView == animatingView) {
                itemView.offsetLeftAndRight(dx);
            } else {
                int position = Math.round(rate * (originX.get(i + 1) - originX.get


, err := s.MakeTester("users", Filter{"id": uint(10)})
	if err != nil {
		t.Error(err)
	}

	idTenOptionalNil, err := s.MakeTester("users", Filter{
		"id":       &ten,
		"optional": (*string)(nil),
	})
	if err != nil {
		t.Error(err)
	}

	idTenOptionalFoo, err := s.MakeTester("users", Filter{
		"id":       int64(10),
		"optional": "foo",
	})
	if err != nil {
		t.Error(err)
	}

	uuidTypedFoo, err := s.MakeTester("users", Filter{
		"uuid": testfixtures.CustomTypeFromString("foo"),
	})
	if err != nil {
		t.Error(err)
	}

	foo := "foo"

	cases := []struct {
		Description string
		Tester      Tester
		User        *user
		Expected    bool
	}{
		{Description: "compare int match", Tester: idTen, User: &user{Id: 10}, Expected: true},
		{Description: "compare int fail", Tester: idTen, User: &user{Id: 5}, Expected: false},
		{Description: "compare int32 match", Tester: idInt32Ten, User: &user{Id: 10}, Expected: true},
		{Description: "compare int32 fail", Tester: idInt32Ten, User: &user{Id: 5}, Expected: false},
		{Description: "compare unsigned int match", Tester: idUnsignedTen, User: &user{Id: 10}, Expected: true},
		{Description: "compare unsigned int fail", Tester: idUnsignedTen, User: &user{Id: 5}, Expected: false},
		{Description: "compare nil match", Tester: idTenOptionalNil, User: &user{Id: 10}, Expected: true},
		{Description: "compare nil fail", Tester: idTenOptionalNil, User: &user{Id: 10, Optional: &foo}, Expected: false},
		{Description: "compare ptr match", Tester: idTenOptionalFoo, User: &user{Id: 10, Optional: &foo}, Expected: true},
		{Description: "compare ptr fail", Tester: idTenOptionalFoo, User: &user{Id: 10}, Expected: false},
		{Description: "compare uuid match", Tester: uuidTypedFoo, User: &user{Uuid: testfixtures.CustomTypeFromString("foo")}, Expected: true},
		{Description: "compare uuid fail", Tester: uuidTypedFoo, User: &user{Uuid: testfixtures.CustomTypeFromString("bar")}, Expected: false},
	}

	for _, c := range cases {
		actual := c.Tester.Test(c.User)
		if actual != c.Expected {
			t.Errorf("%s: got %v, expected %v", c.Description, actual, c.Expected)
		}
	}
}

func TestDriverValuesEqual(t *testing.T) {
	cases := []struct {
		left  driver.Value
		right driver.Value
		equal bool
	}{
		{left: int64(1), right: int64(1), equal: true},
		{left: int64(1), right: int64(0), equal: false},
		{left: int64(1), right: float64(1), equal: false},
		{left: int64(1), right: bool(false), equal: false},
		{left: int64(1), right: []byte("1"), equal: false},
		{left: int64(1), right: string("1"), equal: false},
		{left: int64(1), right: time.Time{}, equal: false},

		{left: float64(1), right: float64(1), equal: true},
		{left: float64(1), right: float64(0), equal: false},
		{left: float64(1), right: bool(false), equal: false},
		{left: float64(1), righ


BCONTRACTORS, AS WELL AS ANY PRIOR RECIPIENT. IF RECIPIENT'S USE OF
 * THE SUBJECT SOFTWARE RESULTS IN ANY LIABILITIES, DEMANDS, DAMAGES,
 * EXPENSES OR LOSSES ARISING FROM SUCH USE, INCLUDING ANY DAMAGES FROM
 * PRODUCTS BASED ON, OR RESULTING FROM, RECIPIENT'S USE OF THE SUBJECT
 * SOFTWARE, RECIPIENT SHALL INDEMNIFY AND HOLD HARMLESS THE UNITED
 * STATES GOVERNMENT, ITS CONTRACTORS AND SUBCONTRACTORS, AS WELL AS ANY
 * PRIOR RECIPIENT, TO THE EXTENT PERMITTED BY LAW. RECIPIENT'S SOLE
 * REMEDY FOR ANY SUCH MATTER SHALL BE THE IMMEDIATE, UNILATERAL
 * TERMINATION OF THIS AGREEMENT.
 */

package gov.nasa.kepler.dr;

import gov.nasa.kepler.dr.configmap.ConfigMapStorerRetrieverTest;
import gov.nasa.kepler.dr.configmap.ConfigMapWriterReaderTest;
import gov.nasa.kepler.dr.dataanomaly.DataAnomalyExportImportTest;
import gov.nasa.kepler.dr.dispatch.DispatcherWrapperTest;
import gov.nasa.kepler.dr.dispatch.ExporterTest;
import gov.nasa.kepler.dr.dispatch.FileWatcherTest;
import gov.nasa.kepler.dr.dispatch.FitsFileLogStorerRetrieverTest;
import gov.nasa.kepler.dr.dispatch.ImporterTest;
import gov.nasa.kepler.dr.dispatch.NmSplitterTest;
import gov.nasa.kepler.dr.dispatch.NotificationMessageHandlerTest;
import gov.nasa.kepler.dr.ephemeris.SpacecraftEphemerisDispatcherTest;
import gov.nasa.kepler.dr.fits.FitsFileReaderWriterTest;
import gov.nasa.kepler.dr.histogram.HistogramDispatcherTest;
import gov.nasa.kepler.dr.history.HistoryDispatcherTest;
import gov.nasa.kepler.dr.importer.MocModelDrCopierTest;
import gov.nasa.kepler.dr.kicextension.KicExtensionImporterTest;
import gov.nasa.kepler.dr.kicextension.KicExtensionStorerRetrieverTest;
import gov.nasa.kepler.dr.kicextension.KicExtensionTest;
import gov.nasa.kepler.dr.kicextension.KicExtensionWriterReaderTest;
import gov.nasa.kepler.dr.lazyfits.HeaderTest;
import gov.nasa.kepler.dr.lazyfits.LazyFitsTest;
import gov.nasa.kepler.dr.pixels.TimeSeriesBufferTest;
import gov.nasa.kepler.dr.pmrf.CollateralPmrfEntryTest;
import gov.nasa.kepler.dr.pmrf.CollateralPmrfModOutTest;
import gov.nasa.kepler.dr.pmrf.CollateralPmrfValidatorTest;
import gov.nasa.kepler.dr.pmrf.PmrfReaderTest;
import gov.nasa.kepler.dr.pmrf.PmrfRetrieverTest;
import gov.nasa.kepler.dr.pmrf.PmrfStorerTest;
import gov.nasa.kepler.dr.pmrf.PmrfTest;
import gov.nasa.kepler.dr.pmrf.PmrfWriterTest;
import gov.nasa.kepler.dr.pmrf.SciencePmrfEntryTest;
import gov.nasa.kepler.dr.pmrf.SciencePmrfModOutTest;
import gov.nasa.kepler.dr.pmrf.SciencePmrfTest;
import gov.nasa.kepler.dr.pmrf.SciencePmrfValidatorTest;
import gov.nasa.kepler.dr.pmrf.TadTargetTableModOutTest;
import gov.nasa.kepler.dr.pmrf.TadTargetTableTest;
import gov.nasa.kepler.dr.sclk.SclkDispatcherTest;
import gov.nasa.kepler.dr.targ


这样可以降低猫感染狂犬病的风险，保护猫的健康。同时，如果猫不幸被感染了狂犬病毒，接种疫苗可以帮助提高猫的免疫力，增加其生存的机会。

猫要打狂犬疫苗吗

猫咪是需要打狂犬疫苗的。因为它们也是狂犬病的易传染动物，为了避免发生危险，最好每年都带猫咪注射狂犬疫苗。在给猫咪注射狂犬疫苗之前，最好能保证猫咪的精神状态良好。

狂犬疫苗是必须要打的，因为猫咪也是狂犬病毒的宿主，也有一定的概率感染狂犬病。猫咪需要注射的疫苗——猫三联+狂犬疫苗 猫疫苗，常见的种类是——猫三联，主要是针对猫瘟、猫杯状、猫鼻支这三种传染病。

猫作为一种常见的宠物，也需要进行疫苗接种，其中包括狂犬疫苗。之所以给猫打狂犬疫苗，有以下几点原因： 预防传染：狂犬病是由病毒引起的，会通过受伤口或粘膜进入动物体内，进而传染给人类和其他动物。

猫需要打狂犬疫苗的。猫三联疫苗能够有效的预防猫瘟、猫杯状病毒感染和传染性鼻气管炎三种病。两个月以上猫咪需要肌肉注射两次，每隔2~3周；每年免疫注射一次。

因为猫除了必要的疫苗，狂犬疫苗真的可以不打！道理很简单，现代人养的猫咪，大多是购买的，猫咪根本没有接触过外界，本身不可能沾染狂犬病毒，所以根本


is is single node debug
					resp.Data.NodeResults[0].ErrorInfo = failReason
					resp.Data.NodeResults[0].ErrorLevel = string(vo.LevelError)
				} else {
					endNodeExe = &workflow.NodeResult{
						NodeId:     entity.ExitNodeKey,
						NodeType:   workflow.NodeTemplateType_End.String(),
						NodeStatus: workflow.NodeExeStatus_Fail,
						ErrorInfo:  failReason,
						ErrorLevel: string(vo.LevelError),
					}
					resp.Data.NodeResults = append(resp.Data.NodeResults, endNodeExe)
				}
			}
		}
	}

	for id := range batchNodeID2NodeResult {
		nr := batchNodeID2NodeResult[id]
		if nr.NodeStatus == workflow.NodeExeStatus_Success {
			successNum++
		}
		resp.Data.NodeResults = append(resp.Data.NodeResults, nr)
	}

	if wfExeEntity.NodeCount > 0 {
		resp.Data.Rate = fmt.Sprintf("%.2f", float64(successNum)/float64(wfExeEntity.NodeCount))
	}

	for _, ie := range wfExeEntity.InterruptEvents {
		if ie.EventType == entity.InterruptEventLLM {
			ie = &entity.InterruptEvent{
				ID:            ie.ID,
				NodeKey:       ie.ToolInterruptEvent.NodeKey,
				NodeType:      ie.ToolInterruptEvent.NodeType,
				NodeTitle:     ie.ToolInterruptEvent.NodeTitle,
				NodeIcon:      ie.ToolInterruptEvent.NodeIcon,
				EventType:     ie.ToolInterruptEvent.EventType,
				InterruptData: ie.ToolInterruptEvent.InterruptData,
			}
		}

		iconURL := nodeIconURLCache[string(ie.NodeType)]

		resp.Data.NodeEvents = append(resp.Data.NodeEvents, &workflow.NodeEvent{
			ID:           strconv.FormatInt(ie.ID, 10),
			NodeID:       string(ie.NodeKey),
			NodeTitle:    ie.NodeTitle,
			NodeIcon:     iconURL,
			Data:         ie.InterruptData,
			Type:         ie.EventType,
			SchemaNodeID: string(ie.NodeKey),
		})
	}

	return resp, nil
}

func (w *ApplicationService) GetNodeExecuteHistory(ctx context.Context, req *workflow.GetNodeExecuteHistoryRequest) (
	_ *workflow.GetNodeExecuteHistoryResponse, err error,
) {
	defer func() {
		if panicErr := recover(); panicErr != nil {
			err = safego.NewPanicErr(panicErr, debug.Stack())
		}

		if err != nil {
			err = vo.WrapIfNeeded(errno.ErrWorkflowOperationFail, err, errorx.KV("cause", vo.UnwrapRootErr(err).Error()))
		}
	}()

	if err := checkUserSpace(ctx, ctxutil.MustGetUIDFromCtx(ctx), mustParseInt64(req.GetSpaceID())); err != nil {
		return nil, err
	}

	executeID := req.GetExecuteID()
	scene := req.GetNodeHistoryScene()

	if scene == workflow.NodeHistoryScene_TestRunInput {
		if len(executeID) > 0 {
			return nil, fmt.Errorf("when scene is test_run_input, execute_id should be empty")
		}

		nodeID := req.GetNodeID()
		if nodeID == "100001" {
			nodeExe, found, err := GetWorkflowDomainSVC().GetLatestTestRunInput(ctx, mustParseInt64(req.GetWorkflowID()),
				ptr.FromOrDefault(ctxutil.GetUIDFromCtx(ctx), 0))
			if err != nil {
				return nil, err
			}
			if !found {
				return &workflow.GetNodeExecuteHistoryResponse{
					Data: &workflow.NodeResult{},
				}, nil
			}


2 2.62795,-1.544 1.19809,-1.075 0.11232,-0.147 0.81299,-1.517 0.21572,-1.309 0.0963,-0.363 0.10519,-0.187 1.62954,-1.38 0.25139,-0.152"},"17107":{"name":"Logan, IL","path":"m 640.51203,254.25914 0.0495,0.98242 2.01331,-0.13042 0.46711,5.383 0.19873,3.05129 -1.25953,0.0827 -3.26979,0.208 -1.39777,-0.256 -0.0731,-1.004 -1.65628,0.128 -0.62579,-3.359 -0.33874,-4.566 5.89238,-0.52"},"17039":{"name":"De Witt, IL","path":"m 652.55888,254.37114 -2.62178,4.19606 0.0544,1.26894 -1.0198,0.07 -3.91162,0.421 -2.01821,0.168 -0.46711,-5.383 9.98407,-0.74"},"17147":{"name":"Piatt, IL","path":"m 652.55888,254.37114 1.9986,-0.16 0.68997,9.296 -0.0321,2.034 -4.76561,0.371 -0.4582,-6.076 -0.0544,-1.26894 2.62178,-4.19606"},"17019":{"name":"Champaign, IL","path":"m 654.33284,251.50314 9.14434,-0.771 0.40828,4.01 -0.23356,0.02 0.76485,7.971 -9.1693,0.771 -0.68997,-9.296 -0.22464,-2.708"},"17053":{"name":"Ford, IL","path":"m 656.90195,237.45014 1.97899,-0.234 1.21235,11.748 3.16638,-0.225 0.21751,1.993 -9.14434,0.771 -0.3851,-5.048 3.87952,-0.328 -0.92531,-8.677"},"17113":{"name":"McLean, IL","path":"m 645.58073,243.94014 5.95657,-0.553 0.18363,2.009 0.24069,1.236 1.98612,-0.177 0.3851,5.048 0.22464,2.708 -1.9986,0.16 -9.98407,0.74 -2.01331,0.13042 -0.0495,-0.98242 -0.53843,-6.212 2.34091,-0.226 0.52209,-0.69268 0.97731,-0.13432 -0.0705,-0.82768 1.03504,-0.11232 -0.18414,-1.99996 0.98643,-0.11404"},"17179":{"name":"Tazewell, IL","path":"m 634.78189,244.84014 3.88844,-0.282 0.0963,1.352 0.16937,1.72 1.03763,0.417 0.53843,6.212 -5.89238,0.52 -1.94333,0.154 -0.21751,-2.691 -3.59783,0.225 0.78446,-1.842 3.57822,-2.289 1.62954,-2.46 0.12124,-0.408 -0.0945,-0.427 -0.0981,-0.201"},"17203":{"name":"Woodford, IL","path":"m 643.2523,240.10814 1.99147,-0.192 0.33696,4.024 -0.98643,0.11404 0.18414,1.99996 -1.03504,0.11232 0.0705,0.82768 -0.97731,0.134


 }
  &[data-popper-placement^="right"] {
    @extend .bs-tooltip-end;
  }
  &[data-popper-placement^="bottom"] {
    @extend .bs-tooltip-bottom;
  }
  &[data-popper-placement^="left"] {
    @extend .bs-tooltip-start;
  }
}

// Wrapper for the tooltip content
.tooltip-inner {
  max-width: var(--#{$prefix}tooltip-max-width);
  padding: var(--#{$prefix}tooltip-padding-y) var(--#{$prefix}tooltip-padding-x);
  color: var(--#{$prefix}tooltip-color);
  text-align: center;
  background-color: var(--#{$prefix}tooltip-bg);
  @include border-radius(var(--#{$prefix}tooltip-border-radius));
}
// Container widths
//
// Set the container width, and override it for fixed navbars in media queries.

@if $enable-container-classes {
  // Single container class with breakpoint max-widths
  .container,
  // 100% wide container at all breakpoints
  .container-fluid {
    @include make-container();
  }

  // Responsive containers that are 100% wide until a breakpoint
  @each $breakpoint, $container-max-width in $container-max-widths {
    .container-#{$breakpoint} {
      @extend .container-fluid;
    }

    @include media-breakpoint-up($breakpoint, $grid-breakpoints) {
      %responsive-container-#{$breakpoint} {
        max-width: $container-max-width;
      }

      // Extend each breakpoint which is smaller or equal to the current breakpoint
      $extend-breakpoint: true;

      @each $name, $width in $grid-breakpoints {
        @if ($extend-breakpoint) {
          .container#{breakpoint-infix($name, $grid-breakpoints)} {
            @extend %responsive-container-#{$breakpoint};
          }

          // Once the current breakpoint is reached, stop extending
          @if ($breakpoint == $name) {
            $extend-breakpoint: false;
          }
        }
      }
    }
  }
}
// on hover transition variables
$move-transition:               .2s ease-out !default;
$move-overflow:                 hidden !default;
$move-transform:                perspective(999px) rotateX(0deg) translate3d(0,0,0) !default;
$move-transform-origin:         50% 0 !default;
$move-backface-visibility:      hidden !default;
$move-will-change:              transform,box-shadow !default;
$move-hover-transform:          perspective(999px) rotateX(7deg) translate3d(0px,-4px,5px) !default;

// Sections Height Utilities
$section-height-25-min-height:  25vh !default;
$section-height-35-min-height:  35vh !default;
$section-height-45-min-height:  45vh !default;
$section-height-50-min-height:  50vh !default;
$section-height-55-min-height:  55vh !default;
$section-height-65-min-height:  65vh !default;
$section-height-70-min-height:  70vh !default;
$section-height-75-min-height:  75vh !default;
$section-height-80-min-height:  80vh !default;
$section-height-85-min-height:  85vh !default;
$section-height-90-min-height:  90vh !default;
$section-height-95-min-height:  95vh !default;
$section-height-100-min-height: 100vh !default;

// extra padding utilities variables - CT
$padding-6:                     4rem !default;
$padding-7:                     6rem !default;
$padding-


hashrate te huren van NiceHash, een platform dat mining-hardware verhuurt voor cloud mining. Op een bepaald moment vermeldde deze website een aanval op Monero die ongeveer \$6.300 per uur zou kosten. Hoewel deze prijs velen van ons misschien doet gapen, ligt het niet buiten het bereik van de mogelijkheden voor een vermogend bedrijf of individu om een aanhoudende aanval op het netwerk uit te voeren.
\n\n
Dit is gelukkig niet langer het geval. Een lezer met een scherp oog zal zien dat de website Monero daadwerkelijk van hun applicatie heeft gehaald vanwege de opname van RandomX. Nogmaals, de lezer wordt aangemoedigd om ons artikel over RandomX te lezen voor meer details, maar vanwege de CPU-vriendelijke aard van het algoritme kunnen bedrijven zoals NiceHash niet langer gewoon ASIC\'s kopen voor Monero om te verhuren aan wie dan ook bereid is deze te huren. Nu moeten ze concurreren met CPU\'s, die veel vaker voorkomen en gemakkelijker te verkrijgen zijn.
\n\n
De exacte kosten van hardware om het Monero-netwerk 51% aan te vallen, zijn niet berekend en zijn ook niet zo eenvoudig te berekenen als andere munten met ASIC-periode.
';

  @override
  String get knowledge250Sbmyths250Sb10250Sbtitle => 'Wordt Monero niet gemakkelijk 51% aangevallen?';

  @override
  String get knowledge250Sbmyths250Sb11250Sbtext => '
De twee boemannen van het mining-gebied zijn ASIC\'s en botnets, en weggaan van de ene betekent noodzakelijkerwijs dichter bij de andere komen. Als iemand een CPU nodig heeft om Monero te minen, dan kunnen hackers in theorie de controle over vele honderden, zo niet duizenden kwetsbare computers overnemen en ze dwingen om namens hen Monero te minen, wat hen niets kost en degenen met slechts een paar computers in hun huishouden te slim af is .
\n\n
De eerste weerlegging van dit argument gaat over de eigenaren van botnets zelf. Hoewel we het hacken van andermans computers niet goedkeuren, is de toetredingsdrempel voor het bezitten en exploiteren van een botnet veel lager dan die voor het bezitten van ASIC\'s. De ene heeft software nodig - vaak vrij beschikbaar en open source - en de tijd en het inzicht om kwetsbare computers op te sporen. De andere vereist ongelooflijke hoeveelheden kapitaal en toegang tot productie. De ene kan worden gedaan door een kind, en de andere alleen door de extreem rijken. Dit brengt ons tot de conclusie dat, als de ergste angsten van miners zouden uitkomen, de botnets zelf meer gedecentraliseerd zouden zijn dan ASIC\'s.
\n\n
 Dat gezegd hebbende, is de Monero-gemeenschap ervan overtuigd dat dit probleem overdreven is. De ingenieurs van RandomX hebben het protocol opzettelijk zo ontworpen dat 2 GB RAM-geheugen nodig is om te werken. Met andere woorden, veel kleine, kwetsbare virtual private servers (VPS) zullen eenvoudigweg niet over de capaciteit beschikken, en als ze dat wel zouden doen, zou de toename in gebruikte bronnen zeer merkbaar zijn voor een systeembeheerder, wat zou leiden tot een onm


using System;
using System.Windows.Controls.Primitives;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Threading;
using Microsoft.Test.Discovery;
using Microsoft.Test.Logging;
using Microsoft.Test.TestTypes;

namespace Microsoft.Test.Controls
{
    /// <summary>
    /// <description>
    /// DatePickerRegressionTest50
    /// </description>
    /// </summary>
    [Test(1, "DatePicker", "DatePickerRegressionTest50")]
    public class DatePickerRegressionTest50 : XamlTest
    {
        #region Private Members

        private DatePicker datepicker;
        private Button button1;
        private Button button2;

        #endregion

        #region Public Members

        public DatePickerRegressionTest50()
            : base(@"DatePickerRegressionTest50.xaml")
        {
            InitializeSteps += new TestStep(Setup);
            CleanUpSteps += new TestStep(CleanUp);
            RunSteps += new TestStep(Repro);
        }

        public TestResult Setup()
        {
            Status("Setup");

            datepicker = (DatePicker)RootElement.FindName("datepicker");
            button1 = (Button)RootElement.FindName("button1");
            button2 = (Button)RootElement.FindName("button2");

            // Set focus on the first button
            button1.Focus();

            LogComment("Setup was successful");

            return TestResult.Pass;
        }

        public TestResult CleanUp()
        {
            datepicker = null;
            button1 = null;
            button2 = null;
            return TestResult.Pass;
        }

        /// <summary>
        /// 1, Ensur


de no enlla\u00e7at \"{2}\"."
       },

       { MsgKey.ER_ATTR_UNBOUND_PREFIX_IN_ENTREF,
           "El text de recanvi del node de l''entitat \"{0}\" cont\u00e9 un node d''atribut \"{1}\" amb un prefix de no enlla\u00e7at \"{2}\"."
       },

    };
    return contents;
  }
}
/*
 * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

package java.lang.invoke;

import static java.lang.invoke.MethodHandleStatics.*;
import static java.lang.invoke.MethodHandles.Lookup.IMPL_LOOKUP;

import jdk.internal.vm.annotation.Stable;

/**
 * A {@code CallSite} is a holder for a variable {@link MethodHandle},
 * which is called its {@code target}.
 * An {@code invokedynamic} instruction linked to a {@code CallSite} delegates
 * all calls to the site's current target.
 * A {@code CallSite} may be associated with several {@code invokedynamic}
 * instructions, or it may be "free floating", associated with none.
 * In any case, it may be invoked through an associated method handle
 * called its {@linkplain #dynamicInvoker dynamic invoker}.
 *

 * {@code CallSite} is an abstract class which does not allow
 * direct subclassing by users.  It has three immediate,
 * concrete subclasses that may be either instantiated or subclassed.
 *

 *
If a mutable target is not required, an {@code invokedynamic} instruction
 * may be permanently bound by means of a {@linkplain ConstantCallSite constant call site}.
 *
If a mutable target is required which has volatile variable semantics,
 * because updates to the target must be immediately and reliably witnessed by other threads,
 * a {@linkplain VolatileCallSite volatile call site} may be used.
 *
Otherwise, if a mutable target is required,
 * a {@linkplain MutableCallSite mutable call site} may be used.
 *

 *

 * A non-constant call site may be relinked by changing its target.
 * The new target must have the same {@linkplain MethodHandle#type() type}
 * as the previous target.
 * Thus, though a call site can be relinked to a series of
 * successive targets, it cannot change its type.
 *

 * Here is a sample use of call sites and bootstrap methods which links every
 * dynamic call site to print its arguments:

{@code
static void test() throws Throwable {
    // THE FOLLOWING LINE IS PSEUDOCODE FOR A JVM INSTRUCTION
    InvokeDynamic[#bootstrapDynamic].baz("baz arg", 2, 3.14);
}
private static void printArgs(Object... args) {
  System.out.println(java.util.Arrays.deepToString(args));
}
private static final MethodHandle printArgs;
static {
  MethodHandles.Lookup lookup = MethodHandles.lookup();
  Class thisClass = lookup.lookupClass();  // (who am I?)
  printArgs = lookup.findStatic(thisCl


-9.7 15.8-28.2 6.1-41.2-9.7-13-28.2-15.8-41.2-6.1C131.8 236.7 64.2 371.1 64.2 512c0 246.9 200.9 447.8 447.8 447.8S959.7 758.9 959.7 512 758.9 64.2 512 64.2z' fill='%23333333' p-id='2118'%3E%3C/path%3E%3Cpath d='M343.2 158.6c4 0 8-0.8 11.9-2.5 3.4-1.5 6.8-3 10.3-4.4 15-6.2 22.3-23.4 16.1-38.4-6.2-15-23.3-22.3-38.4-16.1-3.9 1.6-7.8 3.3-11.7 5-14.9 6.6-21.6 24-15 38.8 4.7 11 15.5 17.6 26.8 17.6zM394.6 787.4c66.2 0 120.9-50.5 127.4-115.1 0.4-2 0.7-4 0.7-6.1V313.6H663c-8 21.5-27.6 49.4-75.9 63.8-15.6 4.6-24.5 21-19.8 36.6 3.8 12.8 15.5 21.1 28.2 21.1 2.8 0 5.6-0.4 8.4-1.2C705.3 403.8 728.9 322 727.2 283c-0.7-15.8-13.6-28.2-29.4-28.2H493.3c-16.3 0-29.4 13.2-29.4 29.4v375.2c0 38.2-31.1 69.2-69.2 69.2s-69.2-31.1-69.2-69.2c0-38.2 31.1-69.2 69.2-69.2 16.3 0 29.4-13.2 29.4-29.4s-13.2-29.4-29.4-29.4c-70.6 0-128.1 57.5-128.1 128.1s57.4 127.9 128 127.9z' fill='%23333333' p-id='2119'%3E%3C/path%3E%3C/svg%3E");
}

.gridlist ul li a[href$=".jpg"]::before,
.gridlist ul li a[href$=".png"]::before,
.gridlist ul li a[href$=".svg"]::before,
.gridlist ul li a[href$=".gif"]::before,
.gridlist ul li a[href$=".jpeg"]::before,
.gridlist ul li a[href$=".bmp"]::before {
  content: '';
  background-image: url("data:image/svg+xml,%3Csvg t='1626092464076' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='3121' width='200' height='200'%3E%3Cpath d='M266.42944 804.352l123.3408-136.82688a37.93408 37.93408 0 0 1 53.39136-2.90304l81.6896 72.83712a37.92384 37.92384 0 0 0 56.43776-6.76864l99.92704-145.04448a37.91872 37.91872 0 0 1 58.15808-5.12l86.33856 87.31136 66.64704 72.65792-13.9264 60.18048-67.30752 25.46176-529.20832 11.5712z' fill='%23F4CA1C' p-id='3122'%3E%3C/path%3E%3Cpath d='M814.76096 148.48H209.23904A153.26208 153.26208 0 0 0 56.32 301.74208v415.40096A153.26208 153.26208 0 0 0 209.23904 870.4h605.52


    * . ......                                                        .
         * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         */
        while (payload_len > 8) {
          s = (payload[0] & 0x80) != 0; /* contains sync sample */
          slen = (payload[2] << 8) | payload[3];
          /* timestamp =
           *    (payload[4] << 24) | (payload[5] << 16) | (payload[6] << 8) |
           *    payload[7];
           */

          payload += 8;
          payload_len -= 8;

          if (slen > payload_len)
            slen = payload_len;

          outbuf = gst_buffer_new_and_alloc (slen);
          memcpy (GST_BUFFER_DATA (outbuf), payload, slen);
          if (!s)
            GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT);

          gst_base_rtp_depayload_push (depayload, outbuf);

          /* aligned on 32 bit boundary */
          slen = GST_ROUND_UP_4 (slen);

          payload += slen;
          payload_len -= slen;
        }
        break;
      }
      case 3:
      {
        /* one sample per packet, use adapter to combine based on marker bit. */
        outbuf = gst_buffer_new_and_alloc (payload_len);
        memcpy (GST_BUFFER_DATA (outbuf), payload, payload_len);

        gst_adapter_push (rtpxqtdepay->adapter, outbuf);

        if (!m)
          goto done;

        avail = gst_adapter_available (rtpxqtdepay->adapter);
        outbuf = gst_adapter_take_buffer (rtpxqtdepay->adapter, avail);

        GST_DEBUG_OBJECT (rtpxqtdepay,
            "gst_rtp_xqt_depay_chain: pushing buffer of size %u", avail);

        return outbuf;
      }
    }
  }

done:
  return NULL;

bad_packet:
  {
    GST_ELEMENT_WARNING (rtpxqtdepay, STREAM, DECODE,
        ("Packet did not validate."), (NULL));
    return NULL;
  }
need_resync:
  {
    GST_DEBUG_OBJECT (rtpxqtdepay, "waiting for marker");
    return NULL;
  }
wrong_version:
  {
    GST_ELEMENT_WARNING (rtpxqtdepay, STREAM, DECODE,
        ("Unknown payload version."), (NULL));
    return NULL;
  }
pck_reserved:
  {
    GST_ELEMENT_WARNING (rtpxqtdepay, STREAM, DECODE,
        ("PCK reserved 0."), (NULL));
    return NULL;
  }
wrong_length:
  {
    GST_ELEMENT_WARNING (rtpxqtdepay, STREAM, DECODE,
        ("Wrong payload length."), (NULL));
    return NULL;
  }
unknown_format:
  {
    GST_ELEMENT_WARNING (rtpxqtdepay, STREAM, DECODE,
        ("Unknown payload format."), (NULL));
    return NULL;
  }
}

static GstStateChangeReturn
gst_rtp_xqt_depay_change_state (GstElement * element, GstStateChange transition)
{
  GstRtpXQTDepay *rtpxqtdepay;
  GstStateChangeReturn ret;

  rtpxqtdepay = GST_RTP_XQT_DEPAY (element);

  switch (transition) {
    case GST_STATE_CHANGE_READY_TO_PAUSED:
      gst_adapter_clear (rtpxqtdepay->adapter);
      rtpxqtdepay->previous_id = -1;
      rtpxqtdepay->current_id = -1;
      rtpxqtdepay->need_resync = TRUE;
      rtpxqtdepay->have_sd = FALSE;
      break;
    default:
      break;
  }

  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);

  switch (transition) {
    case GST_STATE_CHANGE_PAUSED_TO_READY:
      gst_adapter_clear (rtpxqtdepay->adapter);
    default:
      break;
  }
  return ret;
}


2)
// "[…]" Array index (>= 3)
// ": " after key (== 2)
// '{' / '[' opening brace (1)
// ',' in line mode (1)
//
//
// […]          :       "hello"
// abc…         :        123        ,
// "de…"                  {         ,
// KEY/INDEX  <chars>  OBJECT   <chars>
//
// Don't abbreviate true/false/null ?
//
// v [1]: >
// v a…: >
//
//                  abc: tr… |
//                  a…: true |
//
// First truncate value down to 5 + ellipsis characters
// - Then truncate key down to 3 + ellipsis characters
//   - Or index down to just ellipsis
// Then truncate value down to 1 + ellipsis
// Then pop sections off, and slap " >" on it once it fits
//
//
//
//
// Sections:
//
// Key { quoted: bool, key: &str }
// Index { index: &str }
//
// KVColon
//
// OpenBraceValue(ch)
// CloseBraceValue(ch)
// Null
// True,
// False,
// Number,
// StringValue,
//
// TrailingComma
//
// Line {
//   label: Option<Key { quoted: bool, key: &str } | Index { index: usize }>
//   value:
//     ContainerChar(ch) |
//     Value {
//       v: &str,
//       ellipsis: bool,
//       quotes: bool
//     }
//     Preview {} // Build these up starting at ...
//   trailing_comma: bool
// }
//
// truncate(value, min_length: 5)
// truncate(label, min_length: 3)
// truncate(value, min_length: 1)
//
// print label if available_space
// print KVColon if available_space
// print " >"

const FOCUSED_LINE: &'static str = "▶ ";
const FOCUSED_COLLAPSED_CONTAINER: &'static str = "▶ ";
const FOCUSED_EXPANDED_CONTAINER: &'static str = "▼ ";
const COLLAPSED_CONTAINER: &'static str = "▷ ";
const EXPANDED_CONTAINER: &'static str = "▽ ";
const INDICATOR_WIDTH: usize = 2;

const LABEL_COLOR: Color = Color::LightBlue;
const FOCUSED_LABEL_COLOR: Color = Color::Blue;
const FOCUSED_LABEL_BG_COLOR: Color = Color::LightWhite;
const DIMMED: Color = Color::LightBlack;

lazy_static! {
    pub static ref JS_IDENTIFIER: Regex = Regex::new("^[_$a-zA-Z][_$a-zA-Z0-9]*$").unwrap();
}

pub enum LineLabel<'a> {
    Key { key: &'a str },
    Index { index: &'a str },
}

#[derive(Eq, PartialEq)]
enum LabelStyle {
    None,
    Quote,
    Square,
}

impl LabelStyle {
    fn left(&self) -> &'static str {
        match self {
            LabelStyle::None => "",
            LabelStyle::Quote => "\"",
            LabelStyle::Square => "[",
        }
    }

    fn right(&self) -> &'static str {
        match self {
            LabelStyle::None => "",
            LabelStyle::Quote => "\"",
            LabelStyle::Square => "]",
        }
    }

    fn width(&self) -> isize {
        match self {
            LabelStyle::None => 0,
            _ => 2,
        }
    }
}

pub enum LineValue<'a> {
    Container {
        flatjson: &'a FlatJson,
        row: &'a Row,
    },
    Value {
        s: &'a str,
        quotes: bool,
        color: Color,
    },
}

pub struct LinePrinter<'a, TUI: TUIControl> {
    pub mode: Mode,
    pub tui: TUI,

    // Do I need these?
    pub depth: usize,
    pub width: usize,

    pub tab_size: usize,

    // Line-by-line formatting options
    pub focused: bool


list of { from_pos, to_pos, }
	local movenode_list = {}

	minetest.log("action", "[jumpdrive] read target-data");

	for z = source_pos1.z, source_pos2.z do
		for y = source_pos1.y, source_pos2.y do
			for x = source_pos1.x, source_pos2.x do
				local from_pos = { x = x, y = y, z = z }
				local to_pos = vector.add(from_pos, delta_vector)

				local source_index = source_area:indexp(from_pos)
				local target_index = target_area:indexp(to_pos)

				-- copy block id
				local id = source_data[source_index]

				if mapped_content_ids[id] then
					-- replace original content id
					id = mapped_content_ids[id]
				end

				target_data[target_index] = id

				if id ~= c_air then
					-- check if we are on an edge
					local edge = { x = 0, y = 0, z = 0 }

					-- negative edge
					if source_pos1.x == x then edge.x = -1 end
					if source_pos1.y == y then edge.y = -1 end
					if source_pos1.z == z then edge.z = -1 end
					-- positive edge
					if source_pos2.z == x then edge.x = 1 end
					if source_pos2.y == y then edge.y = 1 end
					if source_pos2.z == z then edge.z = 1 end

					table.insert(movenode_list, {
						from_pos = from_pos,
						to_pos = to_pos,
						edge = edge,
						nodedef = movenode_aware_nodeids[id],

						-- legacy mesecon crap
						pos = to_pos,
						oldpos = from_pos,
						node = core.get_node(from_pos),
					})
				end

				-- copy params
				target_param1[target_index] = source_param1[source_index]
				target_param2[target_index] = source_param2[source_index]
			end
		end
	end
	-- can call before_movenode here
	for k, v in pairs(movenode_list) do
		if v.nodedef then
			if v.nodedef.before_movenode then
				v.nodedef.before_movenode(v.from_pos, v.to_pos, v.edge)
			end
		end
	end

	manip:set_data(target_data)
	manip:set_light_data(target_param1)
	manip:set_param2_data(target_param2)
	manip:write_to_map()
	manip:update_map()

	return movenode_list
end


    'Ulaanbaatar Summer Time': "ULAST",
    'Ulaanbaatar Standard Time': "ULAT",
    'Coordinated Universal Time': "UTC",
    'Uruguay Summer Time': "UYST",
    'Uruguay Standard Time': "UYT",
    'Uzbekistan Time': "UZT",
    'Venezuelan Standard Time': "VET",
    'Vladivostok Time': "VLAT",
    'Volgograd Time': "VOLT",
    'Vostok Station Time': "VOST",
    'Vanuatu Time': "VUT",
    'Wake Island Time': "WAKT",
    'West Africa Summer Time': "WAST",
    'West Africa Time': "WAT",
    'Western European Summer Time': "WEST",
    'Western European Time': "WET",
    'Western Indonesian Time': "WIT",
    'Western Standard Time': "WST",
    'Yakutsk Time': "YAKT",
    'Yekaterinburg Time': "YEKT"
  };
}
import 'package:time_machine/src/time_machine_internal.dart';

import 'datetimezone_builder.dart';
import 'rule_line.dart';
import 'zone_line.dart';
// import 'cldr_windows_zone_parser.dart';
// import 'tzdb_stream_writer.dart';
// import 'utility/binary_writer.dart';

/// Provides a container for the definitions parsed from the TZDB zone info files.
class TzdbDatabase {
  /// Returns the zone lists. This is only available for the sake of testing.
  final Map<String, List<ZoneLine>> zones = {};

  /// Returns the version of the TZDB data represented.
  final String version;

  /// Returns the (mutable) map of links from alias to canonical ID.
  final Map<String, String> aliases = {};

  /// Mapping from rule name to the zone rules for that name. This is only available for the sake of testing.
  final Map<String, List<RuleLine>> rules = {};

  /// A list of the zone locations known to this database from zone.tab.
  List<TzdbZoneLocation>? zoneLocations;

  /// A list of the zone locations known to this database from zone1970.tab.
  List<TzdbZone1970Location>? zone1970Locations;

  /// Initializes a new instance of the [TzdbDatabase] class.
  TzdbDatabase(this.version);

  /// Returns the data in this database as a [TzdbDateTimeZoneSource] with no
  /// Windows mappings.
  // TzdbDateTimeZoneSource ToTzdbDateTimeZoneSource() {
  //   var ms = MemoryStream();
  //   var writer = TzdbStreamWriter();
  //   writer.write(this,
  //       WindowsZones('n/a', version, "n/a", <MapZone>[]), // No Windows mappings,
  //       <String, String>{}, // No additional name-to-id mappings
  //       BinaryWriter(ms));
  //   ms.position = 0;
  //   return TzdbDateTimeZoneSource.FromStream(ms);
  // }

  /// Adds the given zone alias to the database.
  ///
  /// <param name='original'>The existing zone ID to map the alias to.</param>
  /// <param name='alias'>The zone alias to add.</param>
  void addAlias(String existing, String alias) {
    aliases[alias] = existing;
  }

  /// Adds the given rule to the appropriate rule set. If there is no existing
  /// rule set, one is created and added to the database.
  ///
  /// <param name='rule'>The rule to add.</param>
  void addRule(RuleLine rule) {
    rules.putIfAbsent(rule


_SIZE;
        if (endOfPacket > limit) {
          break;
        }
        long pcrValue = TsUtil.readPcrFromPacket(packetBuffer, startOfPacket, pcrPid);
        if (pcrValue != C.TIME_UNSET) {
          long pcrTimeUs = pcrTimestampAdjuster.adjustTsTimestamp(pcrValue);
          if (pcrTimeUs > targetPcrTimeUs) {
            if (lastPcrTimeUsInRange == C.TIME_UNSET) {
              // First PCR timestamp is already over target.
              return TimestampSearchResult.overestimatedResult(pcrTimeUs, bufferStartOffset);
            } else {
              // Last PCR timestamp < target timestamp < this timestamp.
              return TimestampSearchResult.targetFoundResult(
                  bufferStartOffset + startOfLastPacketPosition);
            }
          } else if (pcrTimeUs + SEEK_TOLERANCE_US > targetPcrTimeUs) {
            long startOfPacketInStream = bufferStartOffset + startOfPacket;
            return TimestampSearchResult.targetFoundResult(startOfPacketInStream);
          }

          lastPcrTimeUsInRange = pcrTimeUs;
          startOfLastPacketPosition = startOfPacket;
        }
        packetBuffer.setPosition(endOfPacket);
        endOfLastPacketPosition = endOfPacket;
      }

      if (lastPcrTimeUsInRange != C.TIME_UNSET) {
        long endOfLastPacketPositionInStream = bufferStartOffset + endOfLastPacketPosition;
        return TimestampSearchResult.underestimatedResult(
            lastPcrTimeUsInRange, endOfLastPacketPositionInStream);
      } else {
        return TimestampSearchResult.NO_TIMESTAMP_IN_RANGE_RESULT;
      }
    }

    @Override
    public void onSeekFinished() {
      packetBuffer.reset(Util.EMPTY_BYTE_ARRAY);
    }
  }
}
/*
 * Copyright (C) 2018 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.google.android.exoplayer2.extractor.ts;

import static java.lang.Math.min;

import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.extractor.Extractor;
import com.google.android.exoplayer2.extractor.ExtractorInput;
import com.google.android.exoplayer2.extractor.PositionHolder;
import com.google.android.exoplayer2.util.Log;
import com.google.android.exoplayer2.util.ParsableByteArray;
import com.google.android.exoplayer2.util.TimestampAdjuster;
import com.google.android.exoplayer2.util.Util;
import java.io.IOException;

/**
 * A reader that can extract the approximate duration from a given MPEG program stream (PS).
 *
 *
This reader extracts the duration by reading system clock reference (SCR) values from the
 * header of a pack at the start and at the end of the stream, calculating the difference, and
 * converting that into stream duration. This reader also handles the case when a single SCR
 * wraparound takes place within the stream, which can make SCR values at the beginning of the
 * stream larger than SCR values at the end. This class can only be used once to read duration from
 * a given stream, and the usage of the class is not thread-safe, so all calls should be made from
 * the same thread.
 *
 *
Note: See ISO/IEC 13818-


")
		}
		return nil
	},
}

// Connection Command
var connectionInfo = &cobra.Command{
	Use:   "connection",
	Short: "get connection info",
	Run: func(cmd *cobra.Command, args []string) {
		err := jenkinsMod.ServerInfo()
		if err != nil {
			fmt.Println(err)
			os.Exit(1)
		}
	},
}

// Plugins Command
var pluginsInfo = &cobra.Command{
	Use:   "plugins",
	Short: "get all plugins active and enabled",
	RunE: func(cmd *cobra.Command, args []string) error {
		jenkinsMod.PluginsShow()
		return nil
	},
}

var viewsInfo = &cobra.Command{
	Use:   "views",
	Short: "get all views",
	Run: func(cmd *cobra.Command, args []string) {
		err := jenkinsMod.ShowViews()
		if err != nil {
			fmt.Println("❌ cannot get all views")
			os.Exit(1)
		}
	},
}

// Build Command
var build = &cobra.Command{
	Use:   "build",
	Short: "build related commands",
}

var buildQueue = &cobra.Command{
	Use:   "queue",
	Short: "get build queue",
	Run: func(cmd *cobra.Command, args []string) {
		fmt.Printf("⏳ Collecting build queue information...\n")
		err := jenkinsMod.ShowBuildQueue()
		if err != nil {
			fmt.Println("❌ cannot collect build queue")
			os.Exit(1)
		}
	},
}

// Job Commands
var job = &cobra.Command{
	Use:   "job",
	Short: "job related commands",
}

var jobLastUnstableBuild = &cobra.Command{
	Use:   "lastunstablebuild",
	Short: "get last unstable build from a job",
	Run: func(cmd *cobra.Command, args []string) {
		if len(args) != 1 {
			fmt.Println("❌ requires at least one argument [JOB NAME]")
			os.Exit(1)
		}
		err := jenkinsMod.GetLastUnstableBuild(args[0])
		if err != nil {
			fmt.Println(err)
			os.Exit(1)
		}
	},
}

var jobLastStableBuild = &cobra.Command{
	Use:   "laststablebuild",
	Short: "get last stable build from a job",
	Run: func(cmd *cobra.Command, args []string) {
		if len(args) != 1 {
			fmt.Println("❌ requires at least one argument [JOB NAME]")
			os.Exit(1)
		}
		err := jenkinsMod.GetLastStableBuild(args[0])
		if err != nil {
			fmt.Println(err)
			os.Exit(1)
		}
	},
}

var jobLastFailedBuild = &cobra.Command{
	Use:   "lastfailedbuild",
	Short: "get last failed build from a job",
	Run: func(cmd *cobra.Command, args []string) {
		if len(args) != 1 {
			fmt.Println("❌ requires at least one argument [JOB NAME]")
			os.Exit(1)
		}
		err := jenkinsMod.GetLastFailedBuild(args[0])
		if err != nil {
			fmt.Println(err)
			os.Exit(1)
		}
	},
}

var jobLastCompletedBuild = &cobra.Command{
	Use:   "lastcompletedbuild",
	Short: "get last successful build from a job",
	Run: func(cmd *cobra.


4("../src/icons/SuperNET/64x64.jpg");
}

.dp-64 {
    @include img-64("../src/icons/DigitalPrice/64x64.jpg");
}

.bits-64 {
    @include img-64("../src/icons/Bitswift/64x64.jpg");
}

.dsh-64 {
    @include img-64("../src/icons/Dashcoin/64x64.jpg");
}

.au-64 {
    @include img-64("../src/icons/AurumCoin/64x64.jpg");
}

.stv-64 {
    @include img-64("../src/icons/Sativacoin/64x64.jpg");
}

.xvg-64 {
    @include img-64("../src/icons/Verge/64x64.jpg");
}

.nsr-64 {
    @include img-64("../src/icons/NuShares/64x64.jpg");
}

.spr-64 {
    @include img-64("../src/icons/SpreadCoin/64x64.jpg");
}

.rbt-64 {
    @include img-64("../src/icons/Rimbit/64x64.jpg");
}

.mue-64 {
    @include img-64("../src/icons/MonetaryUnit/64x64.jpg");
}

.block-64 {
    @include img-64("../src/icons/Blocknet/64x64.jpg");
}

.ttc-64 {
    @include img-64("../src/icons/TittieCoin/64x64.jpg");
}

.crw-64 {
    @include img-64("../src/icons/Crown/64x64.jpg");
}

.bay-64 {
    @include img-64("../src/icons/BitBay/64x64.jpg");
}

.gcn-64 {
    @include img-64("../src/icons/GCNCoin/64x64.jpg");
}

.xqn-64 {
    @include img-64("../src/icons/Quotient/64x64.jpg");
}

.bcf-64 {
    @include img-64("../src/icons/BitcoinFast/64x64.jpg");
}

.ok-64 {
    @include img-64("../src/icons/OKCash/64x64.jpg");
}

.uis-64 {
    @include img-64("../src/icons/Unitus/64x64.jpg");
}

.coval-64 {
    @include img-64("../src/icons/CircuitsofValue/64x64.jpg");
}

.nxs-64 {
    @include img-64("../src/icons/Nexus/64x64.jpg");
}

.nka-64 {
    @include img-64("../src/icons/IncaKoin/64x64.jpg");
}

.smly-64 {
    @include img-64("../src/icons/SmileyCoin/64x64.jpg");
}

.mac-64 {
    @include img-64("../src/icons/Machinecoin/64x64.jpg");
}

.dot-64 {
    @include img-64("../src/icons/Dotcoin/64x64.jpg");
}

.bitb-64 {
    @include img-64("../src/icons/BeanCash/64x64.jpg");
}

.geo-64 {
    @include img-64("../src/icons/GeoCoin/64x64.jpg");
}

.usdt-64 {
    @include img-64("../src/icons/Tether/64x64.jpg");
}

.wbb-64 {
    @include img-64("../src/icons/WildBeastBlock/64x64.jpg");
}

.grc-64 {
    @include img-64("../src/icons/GridCoin/64x64.jpg");
}

.


import os
from fastapi import APIRouter, Header
from typing import Optional
from ..bilibili import api as bilibili_api
from ..context.path import CACHE_PATH
from ..utils.version import VERSION

router = APIRouter(prefix="/api/application", tags=["Application"])

@router.get("/info", summary="获取应用及账户状态")
async def get_application_info(
):
    app_info = {
        "first_access": os.path.exists(CACHE_PATH / "access"),
        "version": VERSION.version,
    }

    try:
        room_info = await bilibili_api.get_room_info()
        account_info = {
            "is_live": room_info.get("live_status") == 1,
            "room_id": room_info.get("room_id"),
        }
        return {
            "success": True,
            "data": {"application": app_info, "account": account_info},
        }
    except Exception:
        return {
            "success": True,
            "data": {
                "application": app_info,
                "account": {"is_live": False, "room_id": None},
            },
        }

@router.get("/first_access", summary="更改首次访问状态")
async def set_first_access():
    app_info = {"first_access": os.path.exists(CACHE_PATH / "access")}
    if not app_info["first_access"]:
        # 创建一个空文件来标记首次访问
        with open(CACHE_PATH / "access", "w") as f:
            pass
        return {"success": True, "data": {"first_access": True}}

@router.get("/disagree", summary="用户不同意免责声明")
async def disagree_disclaimer_handler():
    """
    用户不同意免责声明时，直接退出程序
    """
    os._exit(0)

@router.get("/exit", summary="退出应用")
async def exit_application():
    os._exit(0)


using System.Collections.Generic;
using System.IO;
using System.Text.Json;
using System.Text.Json.Serialization;

namespace TAS.Tools;

/// Result data from a sync-check
public struct SyncCheckResult() {
    public enum Status {
        /// The TAS ran successfully
        Success,
        /// The TAS did not finish the level
        NotFinished,
        /// The TAS finished the level with the wrong time
        WrongTime,
        /// An Assert-command failed while running the TAS
        AssertFailed,
        /// The TAS performed something unsafe while in safe-mode
        UnsafeAction,
        /// A crash occured while running the TAS
        Crash
    }

    // Additional information for the desync reason
    public readonly record struct AbortInfo(string? FilePath, int? FileLine, string? CurrentInput);
    public readonly record struct CrashInfo(string? FilePath, int? FileLine, string Error);
    public readonly record struct WrongTimeInfo(string? FilePath, int? FileLine, string OldTime, string NewTime);
    public readonly record struct AssertFailedInfo(string? FilePath, int? FileLine, string Actual, string Expected);

    /// "Union" type to hold additional informati


  var pal = new mapnik.Palette(fs.readFileSync('./test/support/palettes/palette256.act'), 'act');
  assert.equal('[Palette 256 colors #272727 #3c3c3c #484847 #564b41 #605243 #6a523e #555555 #785941 #5d5d5d #746856 #676767 #956740 #ba712e #787777 #cb752a #c27c3d #b68049 #dc8030 #df9e10 #878685 #e1a214 #928b82 #a88a70 #ea8834 #e7a81d #cb8d55 #909090 #94938c #e18f48 #f68d36 #6f94b7 #e1ab2e #8e959b #c79666 #999897 #ff9238 #ef9447 #a99a88 #f1b32c #919ca6 #a1a09f #f0b04b #8aa4bf #f8bc39 #b3ac8f #d1a67a #e3b857 #a8a8a7 #ffc345 #a2adb9 #afaeab #f9ab69 #afbba4 #c4c48a #b4b2af #dec177 #9ab2cf #a3bebb #d7b491 #b6cd9e #b5d29c #b9c8a2 #f1c969 #c5c79e #bbbab9 #cabdaa #a6bcd1 #cec4a7 #e7cc89 #dad98a #d5c9a3 #fabd8a #c1d7aa #cec5b4 #d1d1a5 #d9cf9f #c5c4c3 #d3c7b5 #ddd59d #b4c6d6 #d1cbb4 #d1c7ba #d7d1aa #e1c6ab #cbc7c2 #dbd0a9 #e8e58a #fee178 #d3cbba #dfd7a3 #d2cfb9 #c9ddb5 #d2cbbe #c3cbce #d7cbba #dcceb2 #dfd3aa #e5dd9a #dbd3b1 #ceccc6 #d7cbbe #d7cfba #dfc3be #dfd3ae #cbcbcb #cbd3c3 #d3cfc0 #e0d8aa #d7cfbe #dbd3b8 #ebe596 #dfd8b0 #c0ceda #f1ee89 #decfbc #d7cfc4 #d7d3c3 #d1d0cd #d2dfc0 #dbd3c3 #e7c7c3 #e7d7b3 #f2ed92 #d1e2bf #dad7c3 #fef383 #d3d3cf #dbd3c7 #e0d3c2 #dfd7c0 #ebe4a8 #dbd7c7 #dfd3c7 #f7f38f #c9d4de #dcdcc5 #dfd7c7 #e7d5c2 #d6d5d4 #faf78e #d7dfca #fbfb8a #fffb86 #dfd7cb #e5ddc0 #dad7d2 #ecd6c1 #cfd7de #e8d0cc #fbfb8e #fffb8a #eae3b8 #e3d7cd #dfdbce #fffb8e #ffff8a #f5efa6 #dae6cc #e3dbcf #edddc3 #dddbd6 #d5dbdf #ffff91 #e3dbd3 #fefc99 #e7dbd2 #eaddcd #e3dfd3 #ebd7d3 #dddddd #d4dee6 #e2dfd7 #fcdcc0 #e7dbd7 #e7dfd3 #ebe4cb #f4eeb8 #e3dfdb #e7dfd7 #ebded5 #e7e3d7 #fefea6 #e1ecd6 #ece5d3 #e7e3db #dee3e5 #ebe3db #efdfdb #efe3d8 #f4efc9 #e6ecdb #ebe3df #ebe7db #f0ecd3 #e5e6e5 #efe7da #ebe7df #efe3df #fefeb8 #dfe7ef #ebe7e3 #edebde #efe7e0 #e8efe0 #e7f3df #ebebe3 #e7ebe8 #f5edd9 #efebe3 #e3ebf1 #e9efe7 #ebebea #efebe7 #f0efe2 #ecf3e5 #fefdc9 #efefe7 #f3efe7 #f5f3e1 #f2efe9 #e9eef4 #ffeddf #efefef #f3efeb #f3f3eb #f0f7eb #fbf7e1 #fefed8 #f3f3ef #f7f3eb #eef3f7 #f7f7ea #f3f3f3


d7c88fefd3b86277630da3493dfc9a77.jpg)

图：关闭按钮

## 显示图像

在以下示例中，我们在窗口上显示图像。

```basic
' ZetCode FreeBASIC GTK tutorial
'
' This example shows an image on
' the window
'
' author Jan Bodnar
' last modified July 2010
' website www.zetcode.com

#include once "gtk/gtk.bi"
#include once "gtk/gdk.bi"

#define NULL 0

Dim As GtkWidget Ptr win
Dim As GtkWidget Ptr image

gtk_init(NULL, NULL)

win = gtk_window_new(GTK_WINDOW_TOPLEVEL)
gtk_window_set_title(GTK_WINDOW(win), "Red Rock")
gtk_window_set_position(GTK_WINDOW(win), GTK_WIN_POS_CENTER)

g_signal_connect(G_OBJECT(win), "destroy", _
    G_CALLBACK (@gtk_main_quit), NULL)

gtk_window_set_resizable(GTK_WINDOW(win), FALSE)
gtk_container_set_border_width(GTK_CONTAINER(win), 2)

image = gtk_image_new_from_file("redrock.png")
gtk_container_add(GTK_CONTAINER(win), image)

gtk_widget_show_all(win)

gtk_main()

END 0

```

我们在窗口上显示图像。

```basic
Dim As GtkWidget Ptr win
Dim As GtkWidget Ptr image

```

在此示例中，我们只有两个小部件。 窗口小部件和图像小部件。

```basic
gtk_window_set_resizable(GTK_WINDOW(win), FALSE)

```

窗口无法调整大小。 请注意，我们没有为窗口设置大小。 在这种情况下，窗口将自动适合图像的大小。

```basic
gtk_container_set_border_width(GTK_CONTAINER(win), 2)

```

我们在容器周围留出一些空白空间。

```basic
image = gtk_image_new_from_file("redrock.png")
gtk_container_add(GTK_CONTAINER(win), image)

```

我们从 PNG 文件创建图像小部件。 我们将图像放置在窗口上。 窗口本身就是一个简单的容器。 它可以只包含一个小部件。

## 简单菜单示例

在下一个代码示例中，我们将创建一个简单的菜单。

```basic
' ZetCode FreeBASIC GTK tutorial
'
' This example shows a simple menu
'
' author Jan Bodnar
' last modified July 2010
' website www.zetcode.com

#include once "gtk/gtk.bi"

#define NULL 0

Dim As GtkWidget Ptr win
Dim As GtkWidget Ptr vbox

Dim As GtkWidget Ptr menubar
Dim As GtkWidget Ptr fmenu
Dim As GtkWidget Ptr fmi
Dim As GtkWidget Ptr qmi

gtk_init(NULL, NULL)

win = gtk_window_new(GTK_WINDOW_TOPLEVEL)
gtk_window_set_title(GTK_WINDOW(win), "Simple menu")
gtk_widget_set_size_request(win, 250, 150)
gtk_window_set_position(GTK_WINDOW(win), GTK_WIN_POS_CENTER)

g_


/*
 * Copyright (C) 2013 The Android Open Source Project
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *  * Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *  * Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */

#include <private/bionic_asm.h>

    .syntax unified

    .thumb
    .thumb_func

    // To avoid warning about deprecated instructions, add an explicit
    // arch. The code generated is exactly the same.
    .arch armv7-a

// Get the length of src string, then get the source of the dst string.
// Check that the two lengths together don't exceed the threshold, then
// do a memcpy of the data.
ENTRY(__strcat_chk_a7)
    pld     [r0, #0]
    push    {r0, lr}
    .cfi_def_cfa_offset 8
    .cfi_rel_offset r0, 0
    .cfi_rel_offset lr, 4
    push    {r4, r5}
    .cfi_adjust_cfa_offset 8
    .cfi_rel_offset r4, 0
    .cfi_rel_offset r5, 4

    mov     lr, r2

    // Save the dst register to r5
    mov     r5, r0

    // Zero out r4
    eor     r4, r4, r4

    // r1 contains the address of the string to count.
.L_strlen_start:
    mov     r0, r1
    ands    r3, r1, #7
    beq     .L_mainloop

    // Align to a double word (64 bits).
    rsb     r3, r3, #8
    lsls    ip, r3, #31
    beq     .L_align_to_32

    ldrb    r2, [r1], #1
    cbz     r2, .L_update_count_and_finish

.L_align_to_32:
    bcc     .L_align_to_64
    ands    ip, r3, #2
    beq     .L_align_to_64

    ldrb


.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-336-96V64h81.24l51.2 64z"]],"truck-moving":[640,512,[],"f4df",["M224 352a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm-160 0a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm464 0a64 64 0 1 0 64 64 64 64 0 0 0-64-64z","M621.3 237.3l-58.5-58.5a64 64 0 0 0-45.3-18.7H480V64a32 32 0 0 0-32-32H32A32 32 0 0 0 0 64v280.51A95.88 95.88 0 0 1 144 363a96 96 0 0 1 170.51 21h123a96 96 0 0 1 181 0H624a16 16 0 0 0 16-16v-85.5a63.79 63.79 0 0 0-18.7-45.2zM480 256v-48h37.5a15.88 15.88 0 0 1 11.3 4.7l43.3 43.3z"]],"truck-pickup":[640,512,[],"f63c",["M176 304a88 88 0 1 0 88 88 88 88 0 0 0-88-88zm288 0a88 88 0 1 0 88 88 88 88 0 0 0-88-88z","M624 288h-16v-64a32 32 0 0 0-32-32h-48L419.22 56a64 64 0 0 0-50-24H256a32 32 0 0 0-32 32v128H64a32 32 0 0 0-32 32v64H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h46.8a120.12 120.12 0 0 1 226.4 0h61.6a120.12 120.12 0 0 1 226.4 0H624a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-336-96V96h81.24L446 192z"]],"truck-plow":[640,512,[],"f7de",["M120 304a88 88 0 1 0 88 88 88 88 0 0 0-88-88zm256 0a88 88 0 1 0 88 88 88 88 0 0 0-88-88z","M598.6 393.4a77.12 77.12 0 0 1-22.6-54.6V237.2a77.12 77.12 0 0 1 22.6-54.6l36.7-36.7a16.06 16.06 0 0 0 0-22.6l-22.6-22.6a16.06 16.06 0 0 0-22.6 0l-36.7 36.7a141.23 141.23 0 0 0-41.4 99.9V288h-32v-64a32 32 0 0 0-32-32h-45.9l-82-136.7A48.17 48.17 0 0 0 278.9 32H168a40 40 0 0 0-40 40v120H32a32 32 0 0 0-32 32v96a31.87 31.87 0 0 0 10.2 23.43 120.13 120.13 0 0 1 223 8.57h29.6a120.12 120.12 0 0 1 226.4 0h24.1c3.1 32.6 16.7 63.3 40.1 86.6l36.7 36.7a16.06 16.06 0 0 0 22.6 0l22.6-22.6a16.06 16.06 0 0 0 0-22.6zM192 192V96h77.9l57.6 96z"]],"truck-ramp":[640,512,[],"f4e0",["M544 320a96 96 0 1 0 96 96 96 96 0 0 0-96-96z


).attr('dy', -5).style("opacity", 0); // udpate

    $$.xgridLines = xgridLineEnter.merge(xgridLine); // done in d3.transition() of the end of this function
    // exit

    xgridLine.exit().transition().duration(duration).style("opacity", 0).remove(); // Y-Grid

    if (config.grid_y_show) {
      $$.updateYGrid();
    }

    ygridLine = main.select('.' + CLASS.ygridLines).selectAll('.' + CLASS.ygridLine).data(config.grid_y_lines); // enter

    ygridLineEnter = ygridLine.enter().append('g').attr("class", function (d) {
      return CLASS.ygridLine + (d['class'] ? ' ' + d['class'] : '');
    });
    ygridLineEnter.append('line').attr("x1", config.axis_rotated ? yv : 0).attr("x2", config.axis_rotated ? yv : $$.width).attr("y1", config.axis_rotated ? 0 : yv).attr("y2", config.axis_rotated ? $$.height : yv).style("opacity", 0);
    ygridLineEnter.append('text').attr("text-anchor", $$.gridTextAnchor).attr("transform", config.axis_rotated ? "rotate(-90)" : "").attr("x", config.axis_rotated ? xGridTextX : yGridTextX).attr("y", yv).attr('dx', $$.gridTextDx).attr('dy', -5).style("opacity", 0); // update

    $$.ygridLines = ygridLineEnter.merge(ygridLine);
    $$.ygridLines.select('line').transition().duration(duration).attr("x1", config.axis_rotated ? yv : 0).attr("x2", config.axis_rotated ? yv : $$.width).attr("y1", config.axis_rotated ? 0 : yv).attr("y2", config.axis_rotated ? $$.height : yv).style("opacity", 1);
    $$.ygridLines.select('text').transition().duration(duration).attr("x", config.axis_rotated ? $$.xGridTextX.bind($$) : $$.yGridTextX.bind($$)).attr("y", yv).text(function (d) {
      return d.text;
    }).style("opacity", 1); // exit

    ygridLine.exit().transition().duration(duration).style("opacity", 0).remove();
  };

  ChartInternal.prototype.redrawGrid = function (withTransition, transition) {
    var $$ = this,
        config = $$.config,
        xv = $$.xv.bind($$),
        lines = $$.xgridLines.select('line'),
        texts = $$.xgridLines.select('text');
    return [(withTransition ? lines.transition(transition) : lines).attr("x1", config.axis_rotated ? 0 : xv).attr("x2", config.axis_rotated ? $$.width : xv).attr("y1", config.axis_rotated ? xv : 0).attr("y2", config.axis_rotated ? xv : $$.height).style("opacity", 1), (withTransition ? texts.transition(transition) : texts).attr("x", config.axis_rotated ? $$.yGridTextX.bind($$) : $$.xGridTextX.bind($$)).attr("y", xv).text(function (d) {
      return d.text;
    }).style("opacity", 1)];
  };

  ChartInternal.prototype.showXGridFocus = function (selectedData) {
    var $$ = this,
        config = $$.config,
        dataToShow = selectedData.filter(function (d) {
      return d && isValue(d.value);
    }),
        focusEl = $$.main.selectAll('line.' + CLASS.xgridFocus),
        xx = $$.xx.bind($$);

    if (!config.tooltip_show) {
      return;
    } // Hide when stanford plot exists

    if ($$.hasType('stanford') || $$.hasArcType()) {
      return;
    }

    focusEl.style("visibility", "visible").data([dataToShow[0]


: [0x00,0x00,0x60,0xdc,0x02,0x02,0x80,0x00]
// NOT-GFX90A: :[[@LINE+1]]:{{[0-9]+}}: error: invalid register class: agpr loads and stores not supported on this GPU
flat_store_byte v[2:3], a2

// GFX90A: flat_store_byte v[2:3], a2      ; encoding: [0x00,0x00,0x60,0xdc,0x02,0x02,0x80,0x00]
// NOT-GFX90A: :[[@LINE+1]]:{{[0-9]+}}: error: invalid register class: agpr loads and stores not supported on this GPU
flat_store_byte v[2:3], a2

// GFX90A: flat_store_byte v[2:3], a2 offset:7 ; encoding: [0x07,0x00,0x60,0xdc,0x02,0x02,0x80,0x00]
// NOT-GFX90A: :[[@LINE+1]]:{{[0-9]+}}: error: invalid register class: agpr loads and stores not supported on this GPU
flat_store_byte v[2:3], a2 offset:7

// GFX90A: flat_store_byte v[2:3], a2 offset:4095 glc ; encoding: [0xff,0x0f,0x61,0xdc,0x02,0x02,0x80,0x00]
// NOT-GFX90A: :[[@LINE+1]]:{{[0-9]+}}: error: invalid register class: agpr loads and stores not supported on this GPU
flat_store_byte v[2:3], a2 offset:4095 glc

// GFX90A: flat_store_byte v[2:3], a2 offset:4095 slc ; encoding: [0xff,0x0f,0x62,0xdc,0x02,0x02,0x80,0x00]
// NOT-GFX90A: :[[@LINE+1]]:{{[0-9]+}}: error: invalid register class: agpr loads and stores not supported on this GPU
flat_store_byte v[2:3], a2 offset:4095 slc

// GFX90A: flat_store_byte_d16_hi v[2:3], a2 offset:4095 ; encoding: [0xff,0x0f,0x64,0xdc,0x02,0x02,0x80,0x00]
// NOT-GFX90A: :[[@LINE+1]]:{{[0-9]+}}: error: invalid register class: agpr loads and stores not supported on this GPU
flat_store_byte_d16_hi v[2:3], a2 offset:4095

// GFX90A: flat_store_byte_d16_hi v[254:255], a2 offset:4095 ; encoding: [0xff,0x0f,0x64,0xdc,0xfe,0x02,0x80,0x00]
// NOT-GFX90A: :[[@LINE+1]]:{{[0-9]+}}: error: invalid register class: agpr loads and stores not supported on this GPU
flat_store_byte_d16_hi v[254:255], a2 offset:4095

// GFX90A: flat_store_byte_d16_hi v[2:3], a255 offset:4095 ; encoding: [0xff,0x0f,0x64,0xdc,0x02,0xff,0x80,0x00]
// NOT-GFX90A: :[[@LINE+1]]:{{[0-9]+}}: error: invalid register class: agpr loads and stores not supported on this GPU
flat_store_byte_d16_hi v[2:3], a255 offset:4095

// GFX90A: flat_store_byte_d16_hi v[2:3], a2 ; encoding:


 <returns>
		/// The <see cref="BrandedLink" />.
		/// </returns>
		/// <remarks>
		/// Link branding can be associated with subusers from the parent account. This functionality
		/// allows subusers to send mail using their parent's link branding. To associate link branding,
		/// the parent account must first create a branded link and validate it. The parent may then
		/// associate that branded link with a subuser via the API or the Subuser Management page in the
		/// user interface.
		/// </remarks>
		Task<BrandedLink> GetAssociatedLinkAsync(string username = null, string onBehalfOf = null, CancellationToken cancellationToken = default);

		/// <summary>
		/// Disassociate a branded link from a subuser.
		/// </summary>
		/// <param name="username">The username.</param>
		/// <param name="onBehalfOf">The user to impersonate.</param>
		/// <param name="cancellationToken">Cancellation token.</param>
		/// <returns>
		/// The async task.
		/// </returns>
		Task DisassociateLinkAsync(string username = null, string onBehalfOf = null, CancellationToken cancellationToken = default);

		/// <summary>
		/// Associate a branded link with a subuser.
		/// </summary>
		/// <param name="linkId">The link identifier.</param>
		/// <param name="username">The username.</param>
		/// <param name="onBehalfOf">The user to impersonate.</param>
		/// <param name="cancellationToken">Cancellation token.</param>
		/// <returns>
		/// The <see cref="BrandedLink" />.
		/// </returns>
		Task<BrandedLink> AssociateLinkAsync(long linkId, string username = null, string onBehalfOf = null, CancellationToken cancellationToken = default);
	}
}


55, 255, 0.95) 100%);
  border: 1px solid rgba(0, 122, 255, 0.1);
  border-radius: 16px;
}
.withdraw-icon[data-v-18b5b94b] {
  margin-bottom: 16px;
  display: flex;
  justify-content: center;
}
.withdraw-description[data-v-18b5b94b] {
  margin: 0;
}
.withdraw-description p[data-v-18b5b94b] {
  margin: 0;
  font-size: 14px;
  color: #8e8e93;
  line-height: 1.5;
  font-weight: 500;
}
.withdraw-form[data-v-18b5b94b] {
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding: 8px 0;
}
.withdraw-form .form-item[data-v-18b5b94b] {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.withdraw-form .form-label[data-v-18b5b94b] {
  font-size: 16px;
  font-weight: 600;
  color: #1d1d1f;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.withdraw-form .form-label[data-v-18b5b94b]::before {
  content: '';
  width: 4px;
  height: 16px;
  background: linear-gradient(135deg, #007AFF 0%, #5856D6 100%);
  border-radius: 2px;
  flex-shrink: 0;
}
.form-hint[data-v-18b5b94b] {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 12px 16px;
  background: linear-gradient(145deg,
    rgba(255, 204, 0, 0.1) 0%,
    rgba(255, 149, 0, 0.05) 50%,
    rgba(255, 255, 255, 0.95) 100%);
  border: 1px solid rgba(255, 204, 0, 0.2);
  border-radius: 10px;
  font-size: 13px;
  color: #8e8e93;
  line-height: 1.4;
}
.hint-icon[data-v-18b5b94b] {
  font-size: 14px;
  flex-shrink: 0;
}
.withdraw-select[data-v-18b5b94b],
.withdraw-input[data-v-18b5b94b] {
  width: 100%;
  position: relative;
}
.withdraw-select .n-base-selection[data-v-18b5b94b],
.withdraw-input .n-input[data-v-18b5b94b] {
  min-height: 44px !important;
  border-radius: 12px !important;
  border: 1px solid rgba(142, 142, 147, 0.2) !important;
  background: linear-gradient(145deg,
    rgba(248, 250, 252, 0.9) 0%,
    rgba(255, 255, 255, 0.95) 100%) !important;
  transition: all 0.3s ease !important;
  box-shadow: none !important;
}
.withdraw-select:hover .n-base-selection[data-v-18b5b94b],
.withdraw-input:hover .n-input[data-v-18b5b94b] {
  border-color: rgba(0, 122, 255, 0.4) !important;
  box-shadow:
    0 4px 12px rgba(0, 122, 255, 0.1),
    0 2px 6px rgba(0, 122, 255, 0.05)


: 100% and display: table-cell.
  &.img-thumbnail {
    max-width: none;
  }
}

.media,
.media-body {
  overflow: hidden;
  zoom: 1;
}

.media-body {
  width: 10000px;
}

.media-heading {
  margin-top: 0;
  margin-bottom: var(--spacing-tiny);
}
// ====================== END BASE STYLE ======================

// ======================== POSITIONING ========================
.media-right,
.media > .pull-right {
  padding-left: var(--spacing-xsmall);
}

.media-left,
.media > .pull-left {
  padding-right: var(--spacing-xsmall);
}

.media-left,
.media-right,
.media-body {
  display: table-cell;
  vertical-align: top;
}

.media-middle {
  vertical-align: middle;
}

.media-bottom {
  vertical-align: bottom;
}
// ====================== END POSITIONING ======================

// Media list variation
.media-list {
  padding-left: 0;
  list-style: none;
}
.padding-all-none {
    padding: 0 !important;
  }
  .padding-all-sm {
    padding: ceil($grid-gutter-width * .25) !important;
  }
  .padding-all-md {
    padding: $grid-gutter-width * .5 !important;
  }
  .padding-all-lg {
    padding: $grid-gutter-width * 1 !important;
  }
  .padding-all-xl {
    padding: $grid-gutter-width * 2 !important;
  }

  .margin-all-none {
    margin: 0 !important;
  }
  .margin-all-sm {
    margin: ceil($grid-gutter-width * .25) !important;
  }
  .margin-all-md {
    margin: $grid-gutter-width * .5 !important;
  }
  .margin-all-lg {
    margin: $grid-gutter-width * 1 !important;
  }
  .margin-all-xl {
    margin: $grid-gutter-width * 2 !important;
  }

  // vertical (top, bottom)
  .padding-v-none {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
  .padding-v-sm {
    padding-top: ceil($grid-gutter-width * .25) !important;
    padding-bottom: ceil($grid-gutter-width * .25) !important;
  }
  .padding-v-md {
    padding-top: $grid-gutter-width * .5 !important;
    padding-bottom: $grid-gutter-width * .5 !important;
  }
  .padding-v-lg {
    padding-top: $grid-gutter-width * 1 !important;
    padding-bottom: $grid-gutter-width * 1 !important;
  }
  .padding-v-xl {
    padding-top: $grid-gutter-width * 2 !important;
    padding-bottom: $grid-gutter-width * 2 !important;
  }

  .margin-v-none {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
  .margin-v-sm {
    margin-top: ceil($grid-gutter-width * .25) !important;
    margin-bottom: ceil($grid-gutter-width * .25) !important;
  }
  .margin-v-md {
    margin-top: $grid-gutter-width * .5 !important;
    margin-bottom: $grid-gutter-


name="viewport" content="width=device-width, initial-scale=1">
<title>Title</title>
<link rel="stylesheet" href="//design.yonyoucloud.com/static/uploader/css/webuploader.css">
<link rel="stylesheet" href="//design.yonyoucloud.com/static/uui/latest/css/font-awesome.css">
<link rel="stylesheet" type="text/css" href="//design.yonyoucloud.com/static/uui/latest/css/u.css">
<link rel="stylesheet" type="text/css" href="//design.yonyoucloud.com/static/uui/latest/css/tree.css">
<link rel="stylesheet" type="text/css" href="//design.yonyoucloud.com/static/uui/latest/css/grid.css">

    <input type="checkbox" id="switch-info-unchecked" class="u-switch-input">

    <input type="checkbox" id="switch-info-checked" class="u-switch-input" checked>

    <input type="checkbox" id="switch-info-disable" class="u-switch-input" disabled>

    <input type="checkbox" id="switch-info-checkdisalbed" class="u-switch-input" checked disabled>

<!DOCTYPE html>

<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Title</title>
<link rel="stylesheet" href="//design.yonyoucloud.com/static/uploader/css/webuploader.css">
<link rel="stylesheet" href="//design.yonyoucloud.com/static/uui/latest/css/font-awesome.css">
<link rel="stylesheet" type="text/css" href="//design.yonyoucloud.com/static/uui/latest/css/u.css">
<link rel="stylesheet" type="text/css" href="//design.yonyoucloud.com/static/uui/lates


PathPasses;

MObject MayaToKrayGlobals::jpgQuality;

MObject MayaToKrayGlobals::qLuminosityModel; //"Compute as Indirect","Compute as Direct","Automatic"
MObject MayaToKrayGlobals::qLevel; // float
MObject MayaToKrayGlobals::qAreaLights; // "Compute Separately (AS)","Compute With Luminosity"
MObject MayaToKrayGlobals::qDoubleSided; // bool
MObject MayaToKrayGlobals::qAreaLightVisibility; // "Visible (Realistic)","Invisible (LW Compatible)"
MObject MayaToKrayGlobals::qSpotlightsToArea; // bool
MObject MayaToKrayGlobals::qAreaLightsThreshold; // float
MObject MayaToKrayGlobals::qAMinRecursion; // int
MObject MayaToKrayGlobals::qAMaxRecursion; // int
MObject MayaToKrayGlobals::qLinearLightsThreshold; // float
MObject MayaToKrayGlobals::qLMinRecursion; // int
MObject MayaToKrayGlobals::qLMaxRecursion; // int
MObject MayaToKrayGlobals::qLuminosityThreshold; // float
MObject MayaToKrayGlobals::qLumMinRays; // int
MObject MayaToKrayGlobals::qLumMaxRays; // int
MObject MayaToKrayGlobals::qBlurringThreshold; // float
MObject MayaToKrayGlobals::qBLumMinRays; // int
MObject MayaToKrayGlobals::qBLumMaxRays; // int
MObject MayaToKrayGlobals::qBAccuracyLimit; // float
MObject MayaToKrayGlobals::qTraceDirectLightReflections; // bool
MObject MayaToKrayGlobals::qOctreeDetail; // @"Very Low","Low","Normal","High"@
MObject MayaToKrayGlobals::camSingleSided;

MayaToKrayGlobals::MayaToKrayGlobals()
{
	imageFormatList.append("Jpg");
	imageFormatList.append("Hdr");
	imageFormatList.append("Png");
	imageFormatList.append("Tif");
	imageFormatList.append("Tga");
	imageFormatList.append("Bmp");

	filterTypeList.append("Box");
	filterTypeList.append("Cone");
	filterTypeList.append("Cubic");
	filterTypeList.append("Lanczos");
	filterTypeList.append("Spline");
	filterTypeList.append("Mitchell");
	filterTypeList.append("Gauss");
	filterTypeList.append("Quadric");
	filterTypeList.append("Catmull-Rom");
}

MayaToKrayGlobals::~MayaToKrayGlobals()
{
}

void *MayaToKrayGlobals::creator()
{
	return new MayaToKrayGlobals();
}

MStatus	MayaToKrayGlobals::initialize()
{
	MayaRenderGlobalsNode::initialize();

	MFnNumericAttribute nAttr;
	MFnTypedAttribute tAttr;
	MFnGenericAttribute gAttr;
	MFnEnumAttribute eAttr;
	MStatus stat = MStatus::kSuccess;

	//  DOF (depth of field) and motion blur will not work in adaptive mode.
	samplingType = eAttr.create( "samplingType", "samplingType", 0, &stat);
	stat = eAttr.addField( "None", 0 );
	stat = eAttr.addField( "Grid", 1 );
	stat = eAttr.addField( "Qasi Random", 2 );
	stat = eAttr.addField( "Random Full Screen AA", 3 );
	CHECK_MSTATUS(addAttribute( samplingType ));

	rotateGrid = nAttr.create("rotateGrid", "rotateGrid",  MFnNumericData::kBoolean, true);
	CHECK_MSTAT


.5 C12.5,8.9,12.3,9.1,12.1,9.2 H4.3 H4.3 C4.2,9.1,4.1,9.1,4,9.1 V4.3 C4.1,4.1,4.2,4,4.4,4 H12.1 C12.2,3.9,12.3,4,12.4,4.1 C12.5,4.2,12.5,4.3,12.5,4.4 C12.5,5.8,12.5,7.3,12.5,8.7 L12.5,8.7 Z M26.5,47.1 C26.3,47.1,26.1,47.2,26,47.2 H18.6 H18.6 C18.5,47.2,18.3,47.2,18.1,47 C18,46.9,18,46.7,18,46.6 V42 L26.5,42 V47.1 L26.5,47.1 Z M26.8,8.6 C26.8,8.8,26.8,8.9,26.7,9 C26.5,9.2,26.4,9.2,26.2,9.2 H18.7 C18.5,9.1,18.3,9,18.2,8.8 V4 C18.5,4,18.7,4,18.8,4 H26.1 V4 C26.3,3.9,26.5,4,26.6,4.1 C26.8,4.2,26.8,4.4,26.8,4.6 C26.8,5.9,26.8,7.3,26.8,8.6 L26.8,8.6 Z M40.7,47.1 C40.5,47.1,40.3,47.2,40.2,47.2 H32.9 C32.4,47.2,32.2,47.1,32.3,46.6 V42.5 C32.3,42.3,32.3,42.2,32.3,42 L40.7,42 L40.7,47.1 Z M41.6,27.4 L33.2,32.6 C31.5,33.7,30.1,32.9,30.1,30.9 V20.1 C30.1,18.1,31.5,17.4,33.2,18.4 L41.6,23.6 C43.3,24.6,43.3,26.4,41.6,27.4 Z M55,46.8 C54.9,47,54.8,47.1,54.6,47.1 H46.9 C46.7,47.1,46.6,47,46.5,46.8 V42 H55 C55,43.7,55,45.3,55,46.8 H55 Z M55.3,8.7 C55.3,8.9,55.3,9.2,54.9,9.2 H46.8 V4 H50.7 H54.8 H54.8 C54.9,3.9,55.1,4,55.2,4.1 C55.3,4.2,55.3,4.3,55.3,4.5 C55.3,5.8,55.3,7.2,55.3,8.7 L55.3,8.7 Z M69.2,47.1 H60.8 V42 H69.2 V47.1 Z M69.5,8.7 C69.5,9,69.5,9.2,69.1,9.2 H61.3 H61.3 C61.2,9.2,61.1,9.1,61,9.1 V4 H61.6 H68.9 C69.1,3.9,69.3,4,69.4,4.1 C69.6,4.2,69.6,4.4,69.5,4.6 C69.5,6,69.5,7.3,69.5,8.7 L69.5,8.7 Z"></path>\n            </svg>\n
'.concat(_,'
\n            \n              \n                <svg width="10" height="10" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">\n                  <rect stroke="none" x="9" y="5" width="2" height="2"></rect>\n                  <mask id="path-2-inside-


= j + k * a_dim1;
		r_cnjg(&q__1, &a[kp + j * a_dim1]);
		a[i__2].r = q__1.r, a[i__2].i = q__1.i;
		i__2 = kp + j * a_dim1;
		a[i__2].r = temp.r, a[i__2].i = temp.i;
/* L70: */
	    }
	    i__1 = kp + k * a_dim1;
	    r_cnjg(&q__1, &a[kp + k * a_dim1]);
	    a[i__1].r = q__1.r, a[i__1].i = q__1.i;
	    i__1 = k + k * a_dim1;
	    temp.r = a[i__1].r, temp.i = a[i__1].i;
	    i__1 = k + k * a_dim1;
	    i__2 = kp + kp * a_dim1;
	    a[i__1].r = a[i__2].r, a[i__1].i = a[i__2].i;
	    i__1 = kp + kp * a_dim1;
	    a[i__1].r = temp.r, a[i__1].i = temp.i;
	    if (kstep == 2) {
		i__1 = k + (k - 1) * a_dim1;
		temp.r = a[i__1].r, temp.i = a[i__1].i;
		i__1 = k + (k - 1) * a_dim1;
		i__2 = kp + (k - 1) * a_dim1;
		a[i__1].r = a[i__2].r, a[i__1].i = a[i__2].i;
		i__1 = kp + (k - 1) * a_dim1;
		a[i__1].r = temp.r, a[i__1].i = temp.i;
	    }
	}

	k -= kstep;
	goto L60;
L80:
	;
    }

    return 0;

/*     End of CHETRI */

} /* chetri_ */


nction {
        IntervalFunctionFactory::get_integer_seconds_arithmetic_func(a, b)
    }
}
pub type SecondsArithmeticFunction = IntegerTypedIntervalFunction<SecondsArithmetic>;

//////////////////////////////////////////////////////////////////////////////////////////////

// The function type for handling Interval typed arithmetic operation
pub type IntervalArithmeticFunction = fn(
    &DataValueArithmeticOperator,
    &DataColumnWithField,
    &DataColumnWithField,
) -> Result<DataColumn>;

// The function type for handling arithmetic operation of integer column representing number of months
pub type IntegerMonthsArithmeticFunction = fn(
    &DataValueArithmeticOperator,
    &DataColumnWithField,
    &DataColumnWithField,
    weight: i64, /* for year please pass in 12 */
) -> Result<DataColumn>;

// The function type for handling arithmetic operation of integer column representing number of seconds
pub type IntegerSecondsArithmeticFunction = fn(
    &DataValueArithmeticOperator,
    &DataColumnWithField,
    &DataColumnWithField,
    weight: i64, /* for minute pass in 60, for hour pass in 3600, etc */
) -> Result<DataColumn>;

pub struct IntervalFunctionFactory;

impl IntervalFunctionFactory {
    pub fn try_get_arithmetic_func(
        columns: &DataColumnsWithField,
    ) -> Option<IntervalArithmeticFunction> {
        if columns.len() != 2 {
            return None;
        }

        let mut interval_opt = None;
        let mut date_datetime_opt = None;
        columns.iter().for_each(|column| match column.data_type() {
            DataType::Interval(_) => interval_opt = Some(column),
            DataType::Date16 | DataType::Date32 | DataType::DateTime32(_) => {
                date_datetime_opt = Some(column)
            }
            _ => {}
        });

        if interval_opt.is_none() || date_datetime_opt.is_none() {
            return None;
        }
        Some(Self::get_interval_arithmetic_func(
            interval_opt.unwrap().data_type(),
            date_datetime_opt.unwrap().data_type(),
        ))
    }

    #[inline]
    fn interval_operation<T, D, R>(
        lhs: &DFPrimitiveArray<T>,
        rhs: &DFPrimitiveArray<D>,
        f: impl Fn(&T, &D) -> Result<R>,
    ) -> Result<DFPrimitiveArray<R>>
    where
        T: DFPrimitiveType,
        D: DFPrimitiveType,
        R: DFPrimitiveType,
    {
        let data = lhs
            .into_no_null_iter()
            .zip(rhs.into_no_null_iter())
            .map(|(t, d)| f(t, d))
            .collect::<Result<AlignedVec<R>>>()?;

        let validity = combine_validities(lhs.inner().validity(), rhs.inner().validity());
        let result = DFPrimitiveArray::<R>::new_from_owned_with_null_bitmap(data, validity);
        Ok(result)
    }

    //////////////////////////////////////////////////////////////////////////////////////////////
    //  Starting from here is interval typed arithmetic functions, including:
    //   1. interval_daytime_plus_minus_date16 ------- Interval(DayTime)   +/-  Date16
    //   2. interval_daytime_plus_minus_date32 ------- Interval(DayTime)   +/-  Date32
    //   3. interval_daytime_plus_minus_datetime32 --- Interval(DayTime)   +/-  DateTime32
    //   4. interval_month_plus_minus_date16 --------- Interval(YearMonth) +/-  Date16
    //   5. interval_month_plus_minus_date32 --------- Interval(YearMonth) +/-  Date32
    //   6. interval_month_plus_minus_datetime32


NTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
 */
#endregion

namespace HeuristicLab.Problems.DataAnalysis {
  [StorableType("87fc237a-8478-429a-b276-6c7e09a86137")]
  public interface IDataAnalysisSolutionExporter {
    string FileTypeFilter { get; }
    bool Supports(IDataAnalysisSolution solution);
    void Export(IDataAnalysisSolution solution, string fileName);
  }
}


				Expect(foundResource.Spec.Template.Spec.NodeSelector).To(BeEquivalentTo(hco.Spec.Infra.NodePlacement.NodeSelector))
				Expect(foundResource.Spec.Template.Spec.Affinity).To(BeEquivalentTo(hco.Spec.Infra.NodePlacement.Affinity))
				Expect(foundResource.Spec.Template.Spec.Tolerations).To(BeEquivalentTo(hco.Spec.Infra.NodePlacement.Tolerations))
			},
				Entry("plugin deployment", hcoutil.AppComponentUIPlugin, NewKvUIPluginDeployment, NewKvUIPluginDeploymentHandler),
				Entry("proxy deployment", hcoutil.AppComponentUIProxy, NewKvUIProxyDeployment, NewKvUIProxyDeploymentHandler),
			)

			DescribeTable("should remove node placement if missing in HCO CR", func(appComponent hcoutil.AppComponent,
				deploymentManifestor func(*hcov1beta1.HyperConverged) *appsv1.Deployment, handlerFunc operands.GetHandler) {
				hcoNodePlacement := commontestutils.NewHco()
				hcoNodePlacement.Spec.Workloads.NodePlacement = commontestutils.NewNodePlacement()
				hcoNodePlacement.Spec.Infra.NodePlacement = commontestutils.NewOtherNodePlacement()

				existingResource := deploymentManifestor(hcoNodePlacement)

				cl := commontestutils.InitClient([]client.Object{hco, existingResource})
				handler, err := handlerFunc(testLogger, cl, commontestutils.GetScheme(), hco)

				Expect(err).ToNot(HaveOccurred())
				res := handler.Ensure(req)
				Expect(res.Created).To(BeFalse())
				Expect(res.Updated).To(BeTrue())
				Expect(res.Overwritten).To(BeFalse())
				Expect(res.UpgradeDone).To(BeFalse())
				Expect(res.Err).ToNot(HaveOccurred())

				foundResource := &appsv1.Deployment{}
				Expect(
					cl.Get(context.TODO(),
						types.NamespacedName{Name: existingResource.Name, Namespace: existingResource.Namespace},
						foundResource),
				).To(Succeed())

				Expect(existingResource.Spec.Template.Spec.NodeSelector).ToNot(BeEmpty())
				Expect(existingResource.Spec.Template.Spec.Affinity).ToNot(BeNil())
				Expect(existingResource.Spec.Template.Spec.Tolerations).ToNot(BeEmpty())
				Expect(foundResource.Spec.Template.Spec.NodeSelector).To(BeEmpty())
				Expect(foundResource.Spec.Template.Spec.Affinity).To(BeNil())
				Expect(foundResource.Spec.Template.Spec.Tolerations).To(BeEmpty())
				Expect(req.Conditions).To(BeEmpty())
			},
				Entry("plugin deployment", hcoutil.AppComponentUIPlugin, NewKvUIPluginDeployment, NewKvUIPluginDeploymentHandler),
				Entry("proxy deployment", hcoutil.AppComponentUIProxy, NewKvUIProxyDeployment, NewKvUIProxyDeploymentHandler),
			)

			DescribeTable("should modify node placement according to HCO CR", func(appComponent hcoutil.AppComponent,
				deploymentManifestor func(*hcov1beta1.HyperConverged) *appsv1.Deployment, handlerFunc operands.GetHandler) {

				hco.Spec.Workloads.NodePlacement = commontestutils.NewNodePlacement()
				hco.Spec.Infra.NodePlacement = commontestutils.NewOtherNodePlacement()

				existingResource := deploymentManifestor(hco)

				// now, modify HCO's node placement
				hco.Spec.Infra.NodePlacement.Tolerations = append(hco.Spec.Infra.NodePlacement.Tolerations, v1.Toleration{
					Key: "key34", Operator: "operator34", Value: "value34", Effect: "effect34", TolerationSeconds: ptr.To[int64](34),
				})
				hco.Spec.Infra


48_, var_g729a_encode_internal.a_gamma);
    float f = 0.0F;
    int i_51_ = i;
    for (int i_52_ = 0; i_52_ < 40; i_52_++) {
      f += fs_49_[i_52_] * fs_47_[154 + i_52_ - i];
    }
    for (int i_53_ = i + 1; i_53_ <= i_50_; i_53_++) {
      float f_54_ = 0.0F;
      for (int i_55_ = 0; i_55_ < 40; i_55_++) {
        f_54_ += fs_49_[i_55_] * fs_47_[154 + i_55_ - i_53_];
      }
      if (f_54_ > f + 3.0517578E-5F) {
        f = f_54_;
        i_51_ = i_53_;
      }
    }
    int i_56_;
    int i_57_;
    if (i_51_ < 85) {
      g729a_common.g729a_generation_adaptive_vector(fs[1], fs_47_, i_51_,
              0);
      i_56_ = 0;
      f = 0.0F;
      for (int i_58_ = 0; i_58_ < 40; i_58_++) {
        f += fs_49_[i_58_] * fs[1][i_58_];
      }
      g729a_common.g729a_generation_adaptive_vector(fs[0], fs_47_, i_51_,
              -1);
      float f_59_ = 0.0F;
      for (int i_60_ = 0; i_60_ < 40; i_60_++) {
        f_59_ += fs_49_[i_60_] * fs[0][i_60_];
      }
      if (f_59_ > f + 3.0517578E-5F) {
        i_56_ = -1;
        f = f_59_;
      }
      g729a_common.g729a_generation_adaptive_vector(fs[2], fs_47_,
              i_51_ + 1, -2);
      f_59_ = 0.0F;
      for (int i_61_ = 0; i_61_ < 40; i_61_++) {
        f_59_ += fs_49_[i_61_] * fs[2][i_61_];
      }
      if (f_59_ > f + 3.0517578E-5F) {
        i_56_ = 1;
      }
      i_57_ = 3 * (i_51_ - 19) + i_56_ - 1;
    } else {
      i_56_ = 0;
      g729a_common.g729a_generation_adaptive_vector(fs[1], fs_47_, i_51_,
              0);
      i_57_ = i_51_ - 85 + 197;
    }
    g729acode.setP0((short) (i_57_ >> 2 & 0x1 ^ i_57_ >> 3 & 0x1
            ^ i_57_ >> 4 & 0x1 ^ i_57_ >> 5 & 0x1
            ^ i_57_ >> 6 & 0x1 ^ i_57_ >> 7 & 0x1 ^ 0x1));
    g729acode.setP1((short) i_57_);
    var_g729a_encode_internal.T1 = i_51_;
    var_g729a_encode_internal.frac_T1 = i_56_;
    var_g729a_encode_internal.v = fs[i_56_ + 1];
  }

  static void g729a_ad_cod_search_2(G729aCode g729acode, g729a_encode_internal var_g729a_encode_internal,
          g729a_encode_speech var_g729a_encode_speech, float[][] fs) {


.9 1.1-3.1-10.8-15.1-6.7-6.7-12.6-13.2-13.2-14.4-1.5-2.9-1.4-25.8 0-28.6.6-1.2 9.2-10.3 19-20.3 24-24.2 24-20.9.3-44.4-9.6-9.6-18.2-18.7-19-20.2-2-3.8-2-25.8 0-29.6 1.7-3.2 34.2-35.5 37.3-37.1 1.2-.6 4.2-1.1 6.6-1.1 5.2 0 4.6 1.5 6.8-17.3l1.1-9.7h38.4c23.4 0 40.2-.4 43.3-1.1 6.1-1.3 13.5-7.4 16.2-13.4 5.2-11.4.2-24.9-11.5-30.9l-4.9-2.6H290.4l5.3-46.8c5.3-47.1 6.1-59 4.3-63.6-1.4-3.7-7.9-10.5-12.1-12.7C285.2 8.6 282 8 277.2 8c-6.2 0-7.5.4-11.8 3.2-9.2 6.2-10.1 8.6-12.9 31.8-3.4 28.9-7.2 63.4-8.7 77.7l-1.2 12.3h-77.8l.6-4.3c.3-2.3.8-7.1 1.1-10.7.6-6.1 2.5-23.4 7.6-68 1.2-10.8 1.9-21.1 1.6-23.1-1.1-5.5-6.2-12.6-11.4-15.9-4.2-2.7-5.6-3-12.3-3-7.2 0-8 .2-13 3.7zm97.5 174.5c-.4 2.9-1.5 12.9-2.5 22.3-1.1 9.3-2.7 24.5-3.7 33.7l-1.7 16.8H150.9l.6-6.3c.3-3.4 1.7-15.7 3-27.2 1.3-11.6 2.9-26.3 3.6-32.8l1.2-11.7H237l-.5 5.2z"/%3E%3Cpath fill="%2300ba7c" d="M277.5 223.2c-3.1 1.7-28.5 27-30.1 30-1.7 3.2-1.9 12-.3 15.1.6 1.2 11.7 12.9 24.7 25.9l23.7 23.8-23.7 23.7c-13 13.1-24.1 24.8-24.7 26-1.6 3.1-1.4 11.9.3 15.1 1.7 3.2 27.2 28.5 30.3 30.1 2.8 1.4 11.8 1.4 14.6 0 1.2-.6 12.9-11.7 26-24.7l23.7-23.7 23.8 23.7c13 13 24.7 24.1 25.9 24.7 2.8 1.4 11.8 1.4 14.6 0 3.1-1.6 28.6-26.9 30.3-30.1 1.7-3.2 1.9-12 .3-15.1-.6-1.2-11.7-12.9-24.7-26L388.5 318l23.7-23.8c13-13 24.1-24.7 24.7-25.9 1.6-3.1 1.4-11.9-.3-15.1-1.7-3.2-27.2-28.5-30.3-30.1-2.8-1.4-11.8-1.4-14.6 0-1.2.


xpr= situation[lcName].expr
        modelSpace.addNewLoadCaseToDomain(loadCaseName= lcName, loadCaseExpression= lcExpr)
        result= modelSpace.analyze(calculateNodalReactions= True)
        if(result!=0):
            lmsg.error('Can\'t solve for load case:', lcName)
            exit(1)
        modelSpace.removeLoadCaseFromDomain(lcName)
        modelSpace.revertToStart()

fname= os.path.basename(__file__)
outputFileName= '/tmp/'+fname.replace('.py', '.png')
from postprocess import output_handler
oh= output_handler.OutputHandler(modelSpace)

# Write graphic file.
# oh.displayNodeValueDiagram(itemToDisp= 'dispMax')
oh.displayNodeValueDiagram(itemToDisp= 'dispMax', fileName= outputFileName)
# Check if file exists.
testOK= os.path.isfile(outputFileName)

if testOK:
    print('test '+fname+': ok.')
else:
    lmsg.error(fname+' ERROR.')

os.remove(outputFileName)


* None
---
--- Returns:
---  * The Seal object
function obj:start()
    print("-- Starting Seal")
    if self.hotkeyShow then
        self.hotkeyShow:enable()
    end
    if self.hotkeyToggle then
        self.hotkeyToggle:enable()
    end
    return self
end

--- Seal:stop()
--- Method
--- Stops Seal
---
--- Parameters:
---  * None
---
--- Returns:
---  * The Seal object
---
--- Notes:
---  * Some Seal plugins will continue performing background work even after this call (e.g. Spotlight searches)
function obj:stop()
    print("-- Stopping Seal")
    self.chooser:hide()
    if self.hotkeyShow then
        self.hotkeyShow:disable()
    end
    if self.hotkeyToggle then
        self.hotkeyToggle:disable()
    end
    return self
end

--- Seal:show(query)
--- Method
--- Shows the Seal UI
---
--- Parameters:
---  * query - An optional string to pre-populate the query box with
---
--- Returns:
---  * None
---
--- Notes:
---  * This may be useful if you wish to show Seal in response to something other than its hotkey
function obj:show(query)
    self.chooser:show()
    if query then self.chooser:query(query) end
    return self
end

--- Seal:toggle(query)
--- Method
--- Shows or hides the Seal UI
---
--- Parameters:
---  * query - An optional string to pre-populate the query box with
---
--- Returns:
---  * None
function obj:toggle(query)
    if self.chooser:isVisible() then
        self.chooser:hide()
    else
        self:show(query)
    end
    return self
end

function obj.completionCallback(rowInfo)
    if rowInfo == nil then
        return
    end
    if rowInfo["type"] == "plugin_cmd" then
        obj.chooser:query(rowInfo["cmd"])
        return
    end
    for k,plugin in pairs(obj.plugins) do
        if plugin.__name == rowInfo["plugin"] then
            plugin.completionCallback(rowInfo)
            break
        end
    end
end

function obj.choicesCallback()
    -- TODO: Sort each of these clusters of choices, alphabetically
    choices = {}
    query = obj.chooser:query()
    cmd = nil
    query_words = {}
    if tostring(query):find("^%s*$") ~= nil then
        return choices
    end
    for word in str