 {
    justify-content: center;
  }

  th.watt-table-checkbox-cell {
    display: flex;
    align-items: center;
  }

  .watt-table-align-center,
  .watt-table-align-center .mat-sort-header-container {
    justify-content: center;
  }

  .watt-table-align-right,
  .watt-table-align-right .mat-sort-header-container {
    justify-content: right;
  }
}

.watt-table-variant-zebra > table > tbody > tr:nth-child(even) > td {
  background-color: var(--watt-color-neutral-grey-50);
}

watt-table .mat-mdc-table th.watt-table-cell--expandable {
  display: none;
}

watt-table .mat-mdc-table tr.mat-mdc-row td.mat-mdc-cell.watt-table-cell--expandable {
  position: relative;
  min-height: 0;
  max-height: 0; /* Trick for showing the content while it collapses */
  border-bottom-width: 0;
  overflow: hidden;
  pointer-events: none;
  grid-column: 1 / -1;
  background: transparent;
  flex: 1 1 auto;
  opacity: 0;
  will-change: opacity;
  transition:
    opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1),
    overflow 0s 0.3s allow-discrete;

  & > .watt-table-cell-wrapper {
    position: absolute;
    top: 0;
    width: 100%;
  }
}

watt-table .mat-mdc-table tr.mat-mdc-row td.watt-table-cell--expandable.watt-table-cell--expanded {
  height: auto;
  max-height: initial;
  opacity: 1;
  border-bottom-width: 1px;
  pointer-events: all;
  overflow: visible;

  & > .watt-table-cell-wrapper {
    position: relative;
  }
}

.watt-table-footer-spacer {
  display: none;
  height: 76px; // Magic BJH number
  border: 0;
}

.watt-table-has-selection .watt-table-footer-spacer {
  display: block;
}

.watt-table-has-selection + .watt-table-toolbar {
  opacity: 1;
  visibility: visible;
  transition:
    opacity 0.3s cubic-bezier(0, 0, 0.2, 1),
    visibility 0.5s;
}

.watt-table-toolbar {
  position: absolute;
  bottom: var(--watt-space-m);
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  padding: 0 var(--watt-space-m);
  min-height: 44px; // Magic UX number
  border-radius: 22px; // Magic UX number
  color: var(--watt-color-primary-contrast);
  background-color: var(--watt-color-primary);
  z-index: 1;
  opacity: 0;
  visibility: hidden;
  transition: none;

  .watt-button--disabled {
    opacity: 0.4;
    --watt-button-primary-disabled-color: #fff;
  }
}

.watt-table-loading-cell::before {
  content: "";
  flex: 1;
  display: block;
  max-width: 200px;
  height: var(--watt-space-m);
  border-radius: var(--watt-space-m);
  opacity: 0.75;
  animation: shine 2s infinite linear;
  background-color: var(--watt-color-neutral-grey-200);
  background-size: 300px;
  background-position: -100px;
  background-image: linear-gradient(
    90deg,
    var(--watt-color-neutral-grey-300) 0px,
    var(--watt-color-n


 schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
  ///
  /// Please note: This property should have been non-nullable! Since the specification file
  /// does not include a default value (using the "default:" property), however, the generated
  /// source code must fall back to having a nullable type.
  /// Consider adding a "default:" property in the specification file to hide this note.
  ///
  String? apiVersion;

  /// List of endpoints.
  List<IoK8sApiCoreV1Endpoints> items;

  /// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
  ///
  /// Please note: This property should have been non-nullable! Since the specification file
  /// does not include a default value (using the "default:" property), however, the generated
  /// source code must fall back to having a nullable type.
  /// Consider adding a "default:" property in the specification file to hide this note.
  ///
  String? kind;

  ///
  /// Please note: This property should have been non-nullable! Since the specification file
  /// does not include a default value (using the "default:" property), however, the generated
  /// source code must fall back to having a nullable type.
  /// Consider adding a "default:" property in the specification file to hide this note.
  ///
  IoK8sApimachineryPkgApisMetaV1ListMeta? metadata;

  @override
  bool operator ==(Object other) =>
      identical(this, other) ||
      other is IoK8sApiCoreV1EndpointsList &&
          other.apiVersion == apiVersion &&
          other.items == items &&
          other.kind == kind &&
          other.metadata == metadata;

  @override
  int get hashCode =>
      // ignore: unnecessary_parenthesis
      (apiVersion == null ? 0 : apiVersion!.hashCode) +
      (items.hashCode) +
      (kind == null ? 0 : kind!.hashCode) +
      (metadata == null ? 0 : metadata!.hashCode);

  @override
  String toString() =>
      'IoK8sApiCoreV1EndpointsList[apiVersion=$apiVersion, items=$items, kind=$kind, metadata=$metadata]';

  Map<String, dynamic> toJson() {
    final json = <String, dynamic>{};
    if (this.apiVersion != null) {
      json[r'apiVersion'] = this.apiVersion;
    } else {
      json[r'apiVersion'] = null;
    }
    json[r'items'] = this.items;
    if (this.kind != null) {
      json[r'kind'] = this.kind;
    } else {
      json[r'kind'] = null;
    }
    if (this.metadata != null) {
      json[r'metadata'] = this.metadata;
    } else {
      json[r'metadata'] = null;
    }
    return json;
  }

  /// Returns a new [IoK8sApiCoreV1EndpointsList] instance and imports its values from
  /// [value] if it's a [Map], null otherwise.
  // ignore: prefer_constructors_over_static_methods
  static IoK8sApiCoreV1EndpointsList? fromJson(dynamic value) {
    if (value is Map) {
      final json = value.cast<String, dynamic>();

      // Ensure that the map contains the required keys.
      // Note 1: the values aren't checked for va


mpleR;}
			if (stages > 0.660) {
				outSample = (inputSampleL + prevInBL)*0.5;
				prevInBL = inputSampleL; inputSampleL = outSample;
				outSample = (inputSampleR + prevInBR)*0.5;
				prevInBR = inputSampleR; inputSampleR = outSample;
			} else {prevInBL = inputSampleL; prevInBR = inputSampleR;}
			if (stages > 0.462) {
				outSample = (inputSampleL + prevInCL)*0.5;
				prevInCL = inputSampleL; inputSampleL = outSample;
				outSample = (inputSampleR + prevInCR)*0.5;
				prevInCR = inputSampleR; inputSampleR = outSample;
			} else {prevInCL = inputSampleL; prevInCR = inputSampleR;}
			if (stages > 0.264) {
				outSample = (inputSampleL + prevInDL)*0.5;
				prevInDL = inputSampleL; inputSampleL = outSample;
				outSample = (inputSampleR + prevInDR)*0.5;
				prevInDR = inputSampleR; inputSampleR = outSample;
			} else {prevInDL = inputSampleL; prevInDR = inputSampleR;}
			if (stages > 0.066) {
				outSample = (inputSampleL + prevInEL)*0.5;
				prevInEL = inputSampleL; inputSampleL = outSample;
				outSample = (inputSampleR + prevInER)*0.5;
				prevInER = inputSampleR; inputSampleR = outSample;
			} else {prevInEL = inputSampleL; prevInER = inputSampleR;}

			feedbackCL *= 0.0625; feedbackLR *= 0.0625;
			if (feedbackA < 0.0078125) feedbackA = 0.0078125; if (feedbackA > 1.0) feedbackA = 1.0;
			if (feedbackB < 0.0078125) feedbackB = 0.0078125; if (feedbackB > 1.0) feedbackB = 1.0;
			feedbackCL *= feedbackA; feedbackLR *= feedbackB;
			feedbackA += sin((fabs(feedbackCL*4)>1)?4:fabs(feedbackCL*4))*pow(feedbackCL,4);
			feedbackB += sin((fabs(feedbackLR*4)>1)?4:fabs(feedbackLR*4))*pow(feedbackLR,4);
			feedbackCL *= 16.0; feedbackLR *= 16.0;

			feedbackDL *= 0.0625; feedbackPR *= 0.0625;
			if (feedbackC < 0.0078125) feedbackC = 0.0078125; if (feedbackC > 1.0) feedbackC = 1.0;
			if (feedbackD < 0.0078125) feedbackD = 0.0078125; if (feedbackD > 1.0) feedbackD = 1.0;
			feedbackDL *= feedbackC; feedbackPR *= feedbackD;
			feedbackC += sin((fabs(feedbackDL*4)>1)?4:fabs(feedbackDL*4))*pow(feedbackDL,4);
			feedbackD += sin((fabs(feedbackPR*4)>1)?4:fabs(feedbackPR*4))*pow(feedbackPR,4);
			feedbackDL *= 16.0; feedbackPR *= 16.0;

			double iirAmount = ((feedbackA-1.0) * -0.00007) + 0.00001; //kick in highpass
			iirA = (iirA*(1.0-iirAmount)) + (feedbackCL*iirAmount); feedbackCL -= iirA;
			iirE = (iirE*(1.0-iirAmount)) + (feedbackAL*iirAmount); feedbackAL -= iirE;
			iirAmount = ((feedbackB-1.0) * -0.00007) + 0.00001; //kick in highpass
			iirB = (iirB*(1.0-iirAmount)) + (feedbackLR*iirAmount); feedbackLR -= iirB;
			iirF = (iirF*(1.0-iirAmount)) + (feedbackDR*iirAmount); feedbackDR -= iirF;
			iirAmount = ((feedbackC-1.0) * -0.00007) + 0.00001; //kick in highpass
			iirC = (iirC*(1.0-iirAmount)) + (feedbackDL*iirAmount); feedbackDL -= iirC;
			iirG =


--!strict
--[[
    Note: Since this story uses performs mouse position calculations, this
    must be viewed in the Roblox Studio window to work properly.
]]

local GuiService = game:GetService("GuiService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")

local CircleButton = require(script.Parent.Parent.components.CircleButton)
local React = require(ReplicatedStorage.Packages.React)
local ReactRoblox = require(ReplicatedStorage.Packages.ReactRoblox)
local RoactSpring = require(ReplicatedStorage.Packages.RoactSpring)

local e = React.createElement

local function Button(_)
	local styles, api = RoactSpring.useSpring(function()
		return {
			size = UDim2.fromOffset(150, 150),
			position = UDim2.fromScale(0.5, 0.5),
			config = { tension = 100, friction = 10 },
		}
	end)
	local connection = React.useRef(nil :: RBXScriptConnection?)

	return e(CircleButton, {
		Position = styles.position,
		Size = styles.size,

		[React.Event.InputBegan] = fu


sh(wfl);
}

const tree = trie(wfls);

export function search(wfl: string): IIndexValue[] {
  let result: IIndexValue[] = [];

  const prefixes = tree.getPrefix(wfl);
  if (prefixes.length === 0) {
    return [];
  }

  for (const prefix of prefixes.map((p: string) => p.toLowerCase())) {
    result = [...result, ...index[prefix]];
  }

  return result;
}
import { FormI } from "../interfaces/Form.interface";

export const patternEmail =
  /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;

export const AuthData: FormI = [
  {
    type: "text",
    label: "email",
    id: "email",
    options: {
      required: true,
      pattern: patternEmail,
    },
    message: "No valid Email Address",
  },
  {
    type: "password",
    label: "password",
    id: "password",
    options: {
      required: true,
      minLength: 5,
    },
    message: "No valid password, min lenght: 5",
  },
];

export const AuthDataRegister: FormI = [
  {
    type: "text",
    label: "name",
    id: "name",
    options: {
      required: true,
      minLength: 5,
    },
    message: "No valid name, min lenght: 5",
  },
  {
    type: "text",
    label: "lastname",
    id: "lastname",
    options: {
      required: true,
      minLength: 5,
    },
    message: "No valid lastname, min lenght: 5",
  },
  {
    type: "password",
    label: "Password",
    id: "password",
    options: {
      required: true,
      minLength: 5,
    },
    message: "Incorrect password, min lenght: 5",
  },
  {
    type: "email",
    label: "email",
    id: "email",
    options: {
      required: true,
      pattern: patternEmail,
    },
    message: "Email Address no valid",
  },
  {
    type: "text",
    label: "nickname",
    id: "nickname",
    options: {
      required: true,
      minLength: 5,
    },
    message: "No valid nickname, min lenght: 5",
  },
  {
    type: "text",
    label: "worldName",
    id: "worldName",
    options: {
      required: true,
      minLength: 5,
    },
    message: "No valid worldName, min lenght: 5",
  },
  {
    type: "text",
    label: "FFXIVCharacter",
    id: "FFXIVCharacter",
    options: {
      required: true,
      minLength: 5,
    },
    message: "No valid FFXIVCharacter, min lenght: 5",
  },
];
import Document from '../Document';
import Node from '../Node';

import { getNodeDocument } from './treeHelpers';

// 3.4. Interface Node

/**
 * To clone a node, with an optional document and clone children flag, run these steps:
 *
 * @param node          - The node to clone
 * @param cloneChildren - Whether to also clone node's descendants
 * @param document      - The document used to create the copy
 */
export default function cloneNode<TNode extends Node>(
	node: TNode,
	cloneChildren: boolean,
	document?: Document
): TNode {
	// 1. If document is not given, let document be node’s node document.
	if (!


load_ca

load_ed25519_keys

load_x509_certificate

pem_to_bytes

save_ca

save_ed25519_keys

save_x25519_keys

save_x509_certificate

sign_message

verify_signature

verify_x509_certificate

Generated by pdoc 0.11.6.

<!doctype html>

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.6">
<title>saga.attack_models.adversaries API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" cross


ble.insert(items, { targets[z].template, targets[z].label, enable_new })
      end

      table.insert(new_config, { config[i].pattern, items })
    else
      table.insert(new_config, config[i])
    end
  end

  return new_config
end

function M.find_alternatve_files()
  local current_file_name = utils.current_file_name()

  local matched_targets = {}
  local matched_strings = {}
  local config = require('telescope-alternate').get_mappings()

  config = M.normalize_config(config)

  for i = 1, #config, 1 do
    matched_strings = { string.match(current_file_name, utils.normalize_path(config[i][1])) }

    if #matched_strings > 0 then
      table.insert(matched_targets, { targets = config[i][2], matches = matched_strings })
    end
  end

  if #matched_targets then
    local parsed = M.parse_available_matches(matched_targets)

    table.sort(parsed, function(a, b)
      return a.prefix == nil and b.prefix == 'NEW '
    end)

    return parsed
  end

  return false
end

return M


 NONINFRINGEMENT. IN
 * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

package com.tencent.devops.ticket.pojo

import io.swagger.v3.oas.annotations.media.Schema

@Schema(title = "证书-ios证书")
data class CertIOSInfo(
    @get:Schema(title = "证书ID", required = true)
    val certId: String,
    @get:Schema(title = "p12证书名", required = true)
    val p12FileName: String,
    @get:Schema(title = "mobileProvision描述文件名", required = true)
    val mobileProvisionFileName: String,
    @get:Schema(title = "p12证书密码", required = false)
    val credentialId: String?,
    @get:Schema(title = "备注", required = false)
    val remark: String?
)
/*
 * Tencent is pleased to support the open source community by making BK-CI 蓝鲸持续集成平台 available.
 *
 * Copyright (C) 2019 Tencent.  All rights reserved.
 *
 * BK-CI 蓝鲸持续集成平台 is licensed under the MIT license.
 *
 * A copy of the MIT License is included in this file.
 *
 *
 * Terms of the MIT License:
 * ---------------------------------------------------
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
 * documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
 * the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
 * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

package com.tencent.devops.ticket.pojo

import io.swagger.v3.oas.annotations.media.Schema

@Schema(title = "证书-tls证书加密内容")
data class CertTls(
    @get:Schema(title = "Base64编码的加密公钥", required = true)
    val publicKey: String,
    @get:Schema(title = "服务器crt证书名", required = true)
    val serverCrtFileName: String,
    @get:Schema(title = "Base64编码的加密后的证书内容", required = true)
    val serverCrtFile: String,
    @get:Schema(title = "服务器crt证书sha1", required = true)
    val serverCrtSha1: String,
    @get:Schema(title = "服务器key证书名", required = true)
    val serverKeyFileName: String,
    @get:Schema(title = "Base64编码的加密后的证书内容", required = true)
    val serverKeyFile: String,
    @get:Schema(title = "服务器key证书sha1", required = true)
    val serverKeySha1: String,
    @get:Schema(title = "客户端crt证书名", required = true)
    val clientCrtFile


export interface RejectedFn {
  (error: any): any
}

export interface AxiosTransformer {
  (data: any, headers?: any): any
}

// * CancelToken 取消实现的类
export interface CancelToken {
  promise: Promise<Cancel>
  reason?: Cancel           // * promise resolve的参数

  throwIfRequested(): void
}

// * 取消函数
export interface Canceler {
  (message?: string): void
}

// * 取消执行器
// * 自己既接收别的函数作为参数（保存Cancel方法时）
// * 也作为参数，传入其他函数中（传给CancelToken构造函数）
export interface CancelExecutor {
  (cancel: Canceler): void
}

// * cancelToken 通过 source() 方法，返回这个对象类型
export interface CancelTokenSource {
  token: CancelToken
  cancel: Canceler
}

// ??? CancelTokenStatic 是 CancelToken 的 【类类型】
// ? 里面包括 构造函数的定义 和静态方法的定义
export interface CancelTokenStatic {
  // * 返回值是 CancelToken 的实例类型
  new(executor: CancelExecutor): CancelToken

  // ? 类类型里面的静态方法如何调用
  source(): CancelTokenSource
}

export interface Cancel {
  message?: string
}

// ? 类类型 ???
export interface CancelStatic {
  new(message?: string): Cancel
}/*
 * SPDX-FileCopyrightText: 2023 SAP Spartacus team <spartacus-team@sap.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */

import {
  Component,
  ElementRef,
  HostBinding,
  HostListener,
  Input,
  OnDestroy,
  OnInit,
  ViewChild,
} from '@angular/core';
import { UntypedFormControl } from '@angular/forms';
import { Subscription } from 'rxjs';
import { startWith } from 'rxjs/operators';

/**
 * Provides a UI to manage the count of the quantity, typically by using
 * increase and decrease functionality. The item counter expects an input `FormControl`
 * so that the state of the control can be managed outside of this component.
 */
@Component({
  selector: 'cx-item-counter',
  templateUrl: './item-counter.component.html',
  // do not use OnPush change detection strategy as we would not
  // get updates of other form control state (disabled). We want to have a
  // disabled state in order to ensure that the control cannot be used while
  // the cart is updated.
})
export class ItemCounterComponent implements OnInit, OnDestroy {
  /**
   * Holds the value of the counter, the state of the `FormControl`
   * can be managed outside of the item counter.
   */
  @Input() control: UntypedFormControl;

  /**
   * This can be used in case an item has a minmum order quantity.
   * @default 1
   */
  @Input() min = 1;

  /**
   * This can be used in case an item has a maximum order quantity.
   */
  @Input() max: number;

  /**
   * The step is used to increment the count. It is supposed to be a
   * positive integer or float.
   * @default 1
   */
  @Input() step = 1;

  /**
   * Indicates that the input can be manually set to zero,
   * despite the fact that the input controls will be limited to
   * the minimum. The zero value can be used to remove an item.
   */
  @Input() allowZero = false;

  /**
   * In readonly mode the item counter will only be shown as a label,
   * the form controls are not rendered.
   * Please not that


       handler.addQuickElement(u"link", '',
                {u"rel": u"enclosure",
                 u"href": item['enclosure'].url,
                 u"length": item['enclosure'].length,
                 u"type": item['enclosure'].mime_type})

        # Categories.
        for cat in item['categories']:
            handler.addQuickElement(u"category", u"", {u"term": cat})

        # Rights.
        if item['item_copyright'] is not None:
            handler.addQuickElement(u"rights", item['item_copyright'])

# This isolates the decision of what the system default is, so calling code can
# do "feedgenerator.DefaultFeed" instead of "feedgenerator.Rss201rev2Feed".
DefaultFeed = Rss201rev2Feed


166       for (int i = 0; i < Policy::kElementsPerAccess; ++i) {

  167

  168         frag_ptr[n][i].real() = real_accum_array[i];

  169         frag_ptr[n][i].imag() = imag_accum_array[i];

  170       }

  171     }

  172   }

  173 };

  174

  176

  177 } // namespace warp

  178 } // namespace epilogue

  179 } // namespace cutlass

  180

cutlass

Definition: aligned_buffer.h:35

cutlass::epilogue::warp::FragmentIteratorComplexTensorOp< WarpShape_, OperatorShape_, OperatorElementC_, OperatorFragmentC_, layout::RowMajor >::Fragment

Array< complex< OperatorElementC >, Policy::OperatorCount::kColumn *Policy::kElementsPerAccess > Fragment

This is the fragment size produced by one access of the iterator.

Definition: fragment_iterator_complex_tensor_op.h:87

tensor_op_policy.h

Defines basic structures n


466667-19.911111 179.2-19.911112 133.688889 2.844444 153.6 65.422222 150.755556 102.4 0 96.711111-93.866667 96.711111-142.222222 96.711112zM85.333333 941.511111l8.533334-2.844444c39.822222-14.222222 71.111111-42.666667 93.866666-79.644445-42.666667 17.066667-76.8 45.511111-102.4 82.488889z m378.311111-853.333333H455.111111c-2.844444 0-8.533333 0-11.377778 2.844444-11.377778 48.355556-2.844444 99.555556 17.066667 145.066667 17.066667-48.355556 17.066667-99.555556 2.844444-147.911111z m19.911112 412.444444l-2.844445 5.688889-2.844444-2.844444c-25.6 65.422222-54.044444 130.844444-85.333334 193.422222l5.688889-2.844445v5.688889c62.577778-22.755556 130.844444-42.666667 193.422222-56.888889l-2.844444-2.844444h8.533333c-42.666667-42.666667-82.488889-91.022222-113.777777-139.377778z m386.844444 150.755556c-25.6 0-48.355556 0-73.955556 5.688889 28.444444 14.222222 56.888889 19.911111 85.333334 22.755555 19.911111 2.844444 39.822222 0 56.888889-5.688889 0-8.533333-11.377778-22.755556-68.266667-22.755555z' fill='%23000000' p-id='1276'%3E%3C/path%3E%3C/svg%3E");
  display: inline-block;
  transform: translate(0px, 2px);
  width: 1.2rem;
}

.internal-link[href*=".epub"]::before {
  content: url("data:image/svg+xml,%3C%3Fxml version='1.0' standalone='no'%3F%3E%3C!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3E%3Csvg t='1638524832853' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='1275' xmlns:xlink='http://www.w3.org/1999/xlink' width='15' height='15'%3E%3Cdefs%3E%3Cstyle type='text/css'%3E%3C/style%3E%3C/defs%3E%3Cpath d='M881.777778 765.155556c-76.8-5.688889-150.755556-34.133333-210.488889-85.333334-116.622222 25.6-227.555556 62.577778-338.488889 108.088889-88.177778 156.444444-170.666667 236.088889-241.777778 236.088889-14.222222 0-31.288889-2.844444-42.666666-11.377778C17.066667 998.4 0 967.111111 0 935.822222c0-25.6 5.688889-96.711111 275.911111-213.333333 62.577778-113.777778 110.933333-230.4 150.755556-352.711111


ZXJz 34654
aWph 34655
b3dkZXI= 34656
IGFuYWxvZ291cw== 34657
IEFTUA== 34658
YWZlcg== 34659
IHVuZm9sZGVk 34660
IGxldmVsaW5n 34661
IGJyZWFjaGVk 34662
IEhlYXJpbmc= 34663
IG5hdA== 34664
IHRyYW5zbGF0aW5n 34665
Y3JpdGljYWw= 34666
IGFudGFnb25pc3Q= 34667
IFllc3RlcmRheQ== 34668
IGZ1enp5 34669
d2FzaA== 34670
bWVyZQ== 34671
IGJld2lsZA== 34672
IE1hZQ== 34673
VmlyZ2lu 34674
cGhyYXNl 34675
IHNpZ25hbGVk 34676
IEhJR0g= 34677
IHByb3Rlc3Rlcg== 34678
IGdhcm5lcg== 34679
dW5rbm93bg== 34680
IGtheQ== 34681
IGFiZHVjdGVk 34682
IHN0YWxraW5n 34683
YW1u 34684
IGRlc2VydmluZw== 34685
IFJpdg== 34686
IEpvcmdl 34687
IHNjcmF0Y2hpbmc= 34688
IFNhdmluZw== 34689
aXBpbmc= 34690
IHRlYXNl 34691
IG1pc3Npb25hcnk= 34692
IE1vcnJvdw== 34693
VElNRQ== 34694
UHJlc2VudA== 34695
IGNoZW1vdGhlcmFweQ== 34696
dGVybmVzcw== 34697
IEhvbWVz 34698
IFB1cmR1ZQ== 34699
IHN0YXVuY2g= 34700
IFdoaXRuZXk= 34701
IFRIRVJF 34702
zrw= 34703
aWF0dXM= 34704
IEVybmVzdA== 34705
IERlcGxveQ== 34706
IGNvdmV0ZWQ= 34707
Rk1M 34708
IERpYWxvZ3Vl 34709
IGV4aXRlZA== 34710
ZnJ1aXQ= 34711
IG5lcmQ= 34712
IjoiIiwi 34713
IHZpdm8= 34714
cnVseQ== 34715
NDYw 34716
IEFtZW4= 34717
cmVoZW5zaWJsZQ== 34718
IOKY 34719
RElS 34720
IGFkaGVyZW5jZQ== 34721
IGNoZXc= 34722
IENva2U= 34723
IFNlcmdlaQ== 34724
ZGlnaXRhbA== 34725
IE5lY2s= 34726
Z2VudGx5 34727
ZW50aGFs 34728
Lyk= 34729
IHdlYXJ5 34730
IGd1aXNl 34731
IENvbmNvcmQ= 34732
IE9uaW9u 34733
YXRjaGVy 34734
IGJpbmdl 34735
IERpcmVjdGl2ZQ== 34736
IG1hbm5lZA== 34737
YW5zaw== 34738
IGlsbHVzaW9ucw== 34739
IGJpbGxpb25haXJlcw== 34740
Mzgz 34741
b2x5bg== 34742
b2R5bmFtaWM= 34743
IFdoZWF0 34744
IEFsaWM= 34745
IGNvbG91cmVk 34746
IE5BRlRB 34747
YWJv 34748
IG1hY3Jvcw== 34749
aW5kZXBlbmRlbnQ= 34750
c3dlZXQ= 34751
IHNwYWM= 34752
IEthYnV


opNode {
    fn new() -> Self {
        NopNode
    }
    fn invoke(&mut self, grpc_method_name: &str, request: &mut Reader, response: &mut Writer) {}
}

thread_local! {
    static NODE: RefCell<Box<dyn Node>> = RefCell::new(Box::new(NopNode));
}

/// Sets the Oak Node to execute in the current instance.
///
/// This function may only be called once, and only from an exported `oak_initialize` function:
///
/// ```rust
/// struct Node;
///
/// impl oak::Node for Node {
///     fn new() -> Self { Node }
///     fn invoke(&mut self, request: &mut oak::Reader, response: &mut oak::Writer) { /* ... */ }
/// }
///
/// #[no_mangle]
/// pub extern "C" fn oak_initialize() {
///     oak::set_node::<Node>();
/// }
/// ```
pub fn set_node<T: Node + 'static>() {
    // TODO: Detect multiple invocations.
    NODE.with(|node| {
        *node.borrow_mut() = Box::new(T::new());
    });
}

#[no_mangle]
pub extern "C" fn oak_handle_grpc_call() {
    NODE.with(|node| {
        let method_name = method_name();
        node.borrow_mut().invoke(
            &method_name,
            &mut Reader { _private: () },
            &mut Writer { _private: () },
        );
    });
}

#[macro_export]
macro_rules! oak_node {
    ($node_type: ty) => {
        #[no_mangle]
        pub extern "C" fn oak_initialize() {
            $crate::set_node::<$node_type>();
        }
    };
}
//! Defines the iterable list of processing blocks.

use crate::{
    common::*,
    error::{ErrorChecker, Result as RsResult},
    processing_block::{marker as processing_block_marker, ProcessingBlock},
};

/// The iterable list of [ProcessingBlock](ProcessingBlock)s.
#[derive(Debug)]
pub struct ProcessingBlockList {
    ptr: NonNull<realsense_sys::rs2_processing_block_list>,
}

impl ProcessingBlockList {
    /// Retrieves the [ProcessingBlock](ProcessingBlock) instance at index.
    pub fn get(&mut self, index: usize) -> RsResult<ProcessingBlock<processing_block_marker::Any>> {
        let block = unsafe {
            let mut checker = ErrorChecker::new();
            let ptr = realsense_sys::rs2_get_processing_block(
                self.ptr.as_ptr(),
                index as c_int,
                checker.inner_mut_ptr(),
            );
            checker.check()?;
            ProcessingBlock::new_from_ptr(NonNull::new(ptr).unwrap())?
        };
        Ok(block)
    }

    /// Returns the length of list.
    pub fn len(&mut self) -> RsResult<usize> {
        unsafe {
            let mut checker = ErrorChecker::new();
            let val = realsense_sys::rs2_get_recommended_processing_blocks_count(
                self.ptr.as_ptr(),
                checker.inner_mut_ptr(),
            );
            checker.check()?;
            Ok(val as usize)
        }
    }

    /// Checks if the list is empty.
    pub fn is_empty(&mut self) -> RsResult<bool> {
        Ok(self.len()? == 0)
    }

    /// Converts to iterator type.
    pub fn try_into_iter(mut self) -> RsResult<ProcessingBlockListIntoIter> {
        let len = self.len()?;
        let ptr = unsafe { self.take() };
        let iter = ProcessingBlockListIntoIter { len, index: 0, ptr };
        Ok(iter)
    }

    pub(crate) unsafe fn take(self) -> NonNull<realsense_sys::rs2_processing_block_list> {
        let ptr = self.ptr;
        s


h giá và phân tích các lỗ hổng trong hệ thống.
    Data Encryption and Protection: Mã hóa và bảo vệ dữ liệu của người dùng.
    Risk Modeling and Simulation: Mô hình hóa và mô phỏng các tình huống rủi ro để đưa ra các biện pháp phòng ngừa.
    Disaster Recovery: Cơ chế khôi phục hệ thống sau các sự cố hoặc tấn công.
    Access Control and Authentication: Quản lý quyền truy cập và xác thực người dùng.
    Continuous Monitoring – Giám sát Liên tục: Giám sát hoạt động của hệ thống một cách liên tục để phát hiện sớm các mối đe dọa và hành động đáng ngờ.
    Compliance and Legal Framework – Tuân thủ và Khung Pháp lý: Đảm bảo hệ thống tuân thủ các quy định và tiêu chuẩn pháp lý liên quan đến bảo mật và bảo vệ dữ liệu.

9. Tầng Cộng Tác và Tương Tác Nhóm (Collaboration and Team Interaction Layer)
    Collaborative Problem Solving: Giải quyết vấn đề theo nhóm, thông qua cộng tác giữa các hệ thống khác nhau.
    Group Decision-Making: Quá trình ra quyết định chung cho các nhóm hệ thống hoặc con người.
    Knowledge Sharing: Chia sẻ tri thức giữa các hệ thống và các thực thể khác.
    Negotiation and Consensus Building: Tham gia vào các cuộc đàm phán và xây dựng sự đồng thuận.
    Distributed Learning: Học phân tán giữa các hệ thống, tối ưu hóa chia sẻ tri thức.
    Conflict Resolution: Giải quyết xung đột trong cộng tác nhóm hoặc giữa các hệ thống.

10. Tầng Môi Trường và Thích Ứng (Environment and Adaptation Layer)
    Environmental Sensing and Analysis: Cảm nhận và phân tích môi trường xung quanh hệ thống.
    Context-Aware Adaptation: Điều chỉnh hành vi và chiến lược theo ngữ cảnh cụ thể.
    Adaptive Behavior: Thích nghi và thay đổi hành vi của hệ thống khi có sự thay đổi trong môi trường.
    Concept Drift Detection: Phát hiện sự thay đổi trong xu hướng hoặc mô hình dữ liệu (Concept Drift).
    Continuous Environmental Monitoring: Theo dõi liên tục các thay đổi trong môi trường và điều chỉnh các quyết định của hệ thống.
    Scenario Simulation: Mô phỏng các kịch bản môi trường để kiểm tra các phản ứng của hệ thống.

Tổng kết các Blocks quan trọng:
Các Blocks trên giúp tạo ra nền tảng mạnh mẽ cho hệ thống Siêu trí tuệ AGI tự chủ, giúp nó có thể nhận thức môi trường, ra quyết định, học hỏi liên tục, tương tác với người dùng, và thực hiện các chức năng phức tạp như đảm bảo đạo đức, bảo mật, và cộng tác trong môi trường đa dạng. Mỗi block đóng một vai trò không thể thiếu trong việc tạo ra một hệ thống AGI có khả năng thích ứng và phát triển liên tục.

### Sơ đồ quan hệ giữa Tầng

Dưới đây là sơ đồ quan hệ giữa các layers và các khối chức năng chính của hệ thống Siêu trí tuệ AGI, được mô tả bằng giao diện text:
```
+---------------------------------------------------------------+
|                       Tầng Nhận Thức (Perception Layer)       |
|


using System;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.CompilerServices;

#nullable enable

namespace Couchbase.Core.Logging
{
    /// <summary>
    /// Represents a logging argument that is redactable. This provides a more strongly-typed version of redaction
    /// than exposed by the public <see cref="IRedactor"/> interface.
    /// </summary>
    /// <remarks>
    /// This type doesn't have an interface and is injected by the class so that methods may be inlined.
    /// </remarks>
    internal sealed class TypedRedactor
    {
        private const string _user = "ud";
        private const string _meta = "md";
        private const string _system = "sd";

        public TypedRedactor(ClusterOptions options) : this(options.RedactionLevel)
        {
        }

        internal TypedRedactor(RedactionLevel redactionLevel)
        {
            RedactionLevel = redactionLevel;
        }

        public RedactionLevel RedactionLevel { get; }

        public Redacted<T> UserData<T>(T message)
        {
            return RedactMessage(message, _user);
        }

        public Redacted<T> MetaData<T>(T message)
        {
            return RedactMessage(message, _meta);
        }

        public Redacted<T> SystemData<T>(T message)
        {
            return RedactMessage(message, _system);
        }

        [MethodImpl(MethodImplOptions.AggressiveInlining)]
        private Redacted<T> RedactMessage<T>(T message, string redactionType)
        {
            switch (RedactionLevel)
            {
                case RedactionLevel.None:
                    return new Redacted<T>(message);

                case


/* Definitions of target machine for GNU compiler.  VAX version.
   Copyright (C) 2000, 2002 Free Software Foundation, Inc.

This file is part of GNU CC.

GNU CC is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.

GNU CC is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU CC; see the file COPYING.  If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.  */

extern void override_options PARAMS ((void));

#ifdef RTX_CODE
extern const char *rev_cond_name PARAMS ((rtx));
extern void split_quadword_operands PARAMS ((rtx *, rtx *, int));
extern void print_operand_address PARAMS ((FILE *, rtx));
extern int vax_float_literal PARAMS ((rtx));
extern int vax_address_cost PARAMS ((rtx));
extern int vax_rtx_cost PARAMS ((rtx));
extern int reg_was_0_p PARAMS ((rtx, rtx));
#endif /* RTX_CODE */

#ifdef REAL_VALUE_TYPE
extern int check_float_value PARAMS ((enum machine_mode, REAL_VALUE_TYPE *, int));
#endif /* REAL_VALUE_TYPE */

#ifdef TREE_CODE
extern void vms_check_external PARAMS ((tree, const char *, int));
#endif /* TREE_CODE */

extern void vms_flush_pending_externals PARAMS ((FILE *));
extern void const_section PARAMS ((void));


/**
 * \brief   Startup code for Genode applications
 * \author  Christian Helmuth
 * \author  Martin Stein
 * \date    2009-08-12
 */

/*
 * Copyright (C) 2009-2017 Genode Labs GmbH
 *
 * This file is part of the Genode OS framework, which is distributed
 * under the terms of the GNU Affero General Public License version 3.
 */

/**************************
 ** .text (program code) **
 **************************/

.section ".text.crt0.ld"

	/* ld.lib.so entry point for Linux */
	.global _start_initial_stack
	_start_initial_stack:

	/* set GOT */
	call 1f
	1:
	pop %ebx
	addl $_GLOBAL_OFFSET_TABLE_ + 1, %ebx

	/* init_rtld relocates the linker */
	call init_rtld

	/* the address of __initial_sp is now correct */
	movl %esp, __initial_sp@GOTOFF(%ebx)

	jmp 2f

.section ".text.crt0"

	/* program entry-point */
	.global _start
	_start:

	/* save initial register values using GOT-relative addressing */
	3:
	movl $., %ecx
	addl $_GLOBAL_OFFSET_TABLE_ + (. - 3b) , %ecx
	movl %esp, __initial_sp@GOTOFF(%ecx)
	movl %eax, __initial_ax@GOTOFF(%ecx)
	movl %ebx, __initial_bx@GOTOFF(%ecx)
	movl %edi, __initial_di@GOTOFF(%ecx)

	/* initialize GOT pointer in EBX as expected by the tool


#!/usr/bin/env python3
# Author- John Jeffrey Mahiban
# Tool - Cookiegrabber checks for cookie flags

import requests

def check_cookies(site):
    print(f"\nChecking cookies for: {site}\n{'-'*50}")

    try:
        res = requests.get(site)
    except Exception as e:
        print(f"Error: Can't reach site - {e}")
        return

    try:
        cookies_raw = res.raw.headers.getlist("Set-Cookie")
    except AttributeError:
        raw = res.headers.get("Set-Cookie", "")
        cookies_raw = [raw] if raw else []

    if not cookies_raw:
        print("No cookies found.\n")
        return

    for c in cookies_raw:
        c_low = c.lower()
        print("Cookie:")
        print(f"  {c.strip()}")
        print("Flags:")
        print(f"  HttpOnly: {'Yes' if 'httponly' in c_low else 'No'}")
        print(f"  Secure:   {'Yes' if 'secure' in c_low else 'No'}")

        if "samesite=strict" in c_low:
            ss = "Strict"
        elif "samesite=lax" in c_low:
            ss = "Lax"
        elif "samesite=none" in c_low:
            ss = "None"
        else:
            ss = "Not set"
        print(f"  SameSite: {ss}")

        domain_flag = "Shared across subs" if "domain=" in c_low else "Host-only"
        print(f"  Domain:   {domain_flag}")

        print("-"*50)

if __name__ == "__main__":
    print("Starting Cookie Flags QuickCheck")  # Debug print
    site = input("Put site URL (with https://): ").strip()
    check_cookies(site)


 GameRuleConfig.TitleType.PaiXingBiJiao,
                content : "豹子＞顺金＞金花＞顺子＞对子＞单张；\n豹子，金花，对子，单张的比较，按照顺序比点的方式比较大小，牌点从大到小为：A，K，Q，J，10，9，8，7，6，5，4，3，2；\n顺金，顺子大小排序为：QKA＞JQK＞10JQ＞910J＞8910＞789＞678＞567＞456＞345＞234＞A23；\n顺序比点：如对子比对子，先比对子，如果对子同样大，则对比另外一张牌，大的赢。单张比单张，先对比最大单张，如一样，则对比第二大的单张，以此类推；\n大小若相同，按照花色黑桃，红桃，梅花，方块的顺序比大小；,",
            },
            {
                titleType : GameRuleConfig.TitleType.JiBenGuiZe,
                content : "系统自动扣除玩家底注，投到桌面；\n发牌：从庄家开始发牌，每人发三张牌（庄家每局由系统随机指定）；\n游戏：游戏人数为2-5人，由庄家开始下注，其他玩家一次逆时针操作；\n轮到玩家操作时，玩家可进行加注、跟注、跟到底、看牌、放弃、比牌、全押、孤注一掷等操作；\n看牌：第一轮押注结束后，第二轮开始才能看牌，看牌后，跟注、加注、比牌都需要双倍筹码。\n比牌：第三轮开始轮到玩家时可以选择比牌；\n跟注：下注跟上一个玩家一样的下注金额。\n加注：选择比上一个玩家下注金额更大的筹码押注；\n跟到底：自动跟注，无需每次操作；\n全押：第三轮开始轮到玩家时可以选择全押；\n弃牌：玩家可以主动弃牌或者超时自动弃牌，中途退出游戏后会做弃牌处理；\n孤注一掷：当剩余金额不足以投注时，执行孤注一掷后和场上所有未结束的玩家进行比牌，其中输一家则游戏结束；\n当达到游戏轮数上限时，系统自动亮开所有未弃牌玩家的牌进行比牌；",
            },
        ],

        PaoDeKuai:[
            {
                titleType : GameRuleConfig.TitleType.ZuChengShuoMing,
                content : "游戏有四人玩法以及三人玩法，本次选定三人玩法作为游戏规则。三人玩法，玩时去掉大小王以及三个2一个A，共48张牌（保留黑桃2以及红桃A，梅花A，方块A）。",
            },
            {


}
	return res
}

func yylex1(lex yyLexer, lval *yySymType) (char, token int) {
	token = 0
	char = lex.Lex(lval)
	if char <= 0 {
		token = yyTok1[0]
		goto out
	}
	if char < len(yyTok1) {
		token = yyTok1[char]
		goto out
	}
	if char >= yyPrivate {
		if char < yyPrivate+len(yyTok2) {
			token = yyTok2[char-yyPrivate]
			goto out
		}
	}
	for i := 0; i < len(yyTok3); i += 2 {
		token = yyTok3[i+0]
		if token == char {
			token = yyTok3[i+1]
			goto out
		}
	}

out:
	if token == 0 {
		token = yyTok2[1] /* unknown char */
	}
	if yyDebug >= 3 {
		__yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char))
	}
	return char, token
}

func yyParse(yylex yyLexer) int {
	return yyNewParser().Parse(yylex)
}

func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int {
	var yyn int
	var yyVAL yySymType
	var yyDollar []yySymType
	_ = yyDollar // silence set and not used
	yyS := yyrcvr.stack[:]

	Nerrs := 0   /* number of errors */
	Errflag := 0 /* error recovery flag */
	yystate := 0
	yyrcvr.char = -1
	yytoken := -1 // yyrcvr.char translated into internal numbering
	defer func() {
		// Make sure we report no lookahead when not parsing.
		yystate = -1
		yyrcvr.char = -1
		yytoken = -1
	}()
	yyp := -1
	goto yystack

ret0:
	return 0

ret1:
	return 1

yystack:
	/* put a state and value onto the stack */
	if yyDebug >= 4 {
		__yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate))
	}

	yyp++
	if yyp >= len(yyS) {
		nyys := make([]yySymType, len(yyS)*2)
		copy(nyys, yyS)
		yyS = nyys
	}
	yyS[yyp] = yyVAL
	yyS[yyp].yys = yystate

yynewstate:
	yyn = yyPact[yystate]
	if yyn <= yyFlag {
		goto yydefault /* simple state */
	}
	if yyrcvr.char < 0 {
		yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval)
	}
	yyn += yytoken
	if yyn < 0 || yyn >= yyLast {
		goto yydefault
	}
	yyn = yyAct[yyn]
	if yyChk[yyn] == yytoken { /* valid shift */
		yyrcvr.char = -1
		yytoken = -1
		yyVAL = yyrcvr.lval
		yystate = yyn
		if Errflag > 0 {
			Errflag--
		}
		goto yystack
	}

yydefault:
	/* default state action */
	yyn = yyDef[yystate]
	if yyn == -2 {
		if yyrcvr.char < 0 {
			yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval)
		}

		/* look through exception table */
		xi := 0
		for {
			if yyExca[xi+0] == -1 && yyExca[xi+1] == yystate {
				break
			}
			xi += 2
		}
		for xi += 2;


sub.s $f10, $f16, $f10
/* 055870 800AD620 44C8F800 */  ctc1  $t0, $31
/* 055874 800AD624 00000000 */  nop
/* 055878 800AD628 460052A4 */  cvt.w.s $f10, $f10
/* 05587C 800AD62C 4448F800 */  cfc1  $t0, $31
/* 055880 800AD630 00000000 */  nop
/* 055884 800AD634 31080078 */  andi  $t0, $t0, 0x78
/* 055888 800AD638 15000005 */  bnez  $t0, .L800AD650_ovl1
/* 05588C 800AD63C 00000000 */   nop
/* 055890 800AD640 44085000 */  mfc1  $t0, $f10
/* 055894 800AD644 3C018000 */  lui   $at, 0x8000
/* 055898 800AD648 10000007 */  b     .L800AD668_ovl1
/* 05589C 800AD64C 01014025 */   or    $t0, $t0, $at
.L800AD650_ovl1:
/* 0558A0 800AD650 10000005 */  b     .L800AD668_ovl1
/* 0558A4 800AD654 2408FFFF */   li    $t0, -1
/* 0558A8 800AD658 44085000 */  mfc1  $t0, $f10
.L800AD65C_ovl1:
/* 0558AC 800AD65C 00000000 */  nop
/* 0558B0 800AD660 0500FFFB */  bltz  $t0, .L800AD650_ovl1
/* 0558B4 800AD664 00000000 */   nop
.L800AD668_ovl1:
/* 0558B8 800AD668 A608001E */  sh    $t0, 0x1e($s0)
/* 0558BC 800AD66C 92290013 */  lbu   $t1, 0x13($s1)
/* 0558C0 800AD670 44D9F800 */  ctc1  $t9, $31
/* 0558C4 800AD674 312A0004 */  andi  $t2, $t1, 4
/* 0558C8 800AD678 55400031 */  bnezl $t2, .L800AD740_ovl1
/* 0558CC 800AD67C C6260034 */   lwc1  $f6, 0x34($s1)
/* 0558D0 800AD680 962B001E */  lhu   $t3, 0x1e($s1)
/* 0558D4 800AD684 3C014F80 */  li    $at, 0x4F800000 # 4294967296.000000
/* 0558D8 800AD688 448B9000 */  mtc1  $t3, $f18
/* 0558DC 800AD68C 05610004 */  bgez  $t3, .L800AD6A0_ovl1
/* 0558E0 800AD690 46809120 */   cvt.s.w $f4, $f18
/* 0558E4 800AD694 44813000 */  mtc1  $at, $f6
/* 0558E8 800AD698 00000000 */  nop
/* 0558EC 800AD69C 46062100 */  add.s $f4, $f4, $f6
.L800AD6A0_ovl1:
/* 0558F0 800AD6A0 C628002C */  lwc1  $f8, 0x2c($s1)
/* 0558F4 800AD6A4 240D0001 */  li    $t5, 1
/* 0558F8 800AD6A8 3C014F00 */  li    $at, 0x4F000000 # 2147483648.000000
/* 0558FC 800AD6AC 46082402 */  mul.s $f16, $f4, $f8
/* 055900 800AD6B0 00000000 */  nop
/* 055904 800AD6B4 46168282 */  mul


ag: "" });
    smc.push({ code: "padebuff", prompt: "PA debuff", icon: "", attrib: "PA-Buff", shared: "Negative",
            submenu: "?{Amount|0}", customIcon: "415-PA-Debuff", customTag: "" });
    smc.push({ code: "pabuff", prompt: "PA buff", icon: "", attrib: "PA-Buff", shared: "Positive",
            submenu: "?{Amount|0}", customIcon: "416-PA-Buff", customTag: "" });
// Seventh line
    smc.push({ code: "madebuff", prompt: "MA debuff", icon: "", attrib: "MA-Buff", shared: "Negative",
            submenu: "?{Amount|0}", customIcon: "417-MA-Debuff", customTag: "" });
    smc.push({ code: "mabuff", prompt: "MA buff", icon: "", attrib: "MA-Buff", shared: "Positive",
            submenu: "?{Amount|0}", customIcon: "418-MA-Buff", customTag: "" });
    smc.push({ code: "effectsdebuff", prompt: "Effects debuff", icon: "", attrib: "Adjust-Effect-Tests-Misc", shared: "Negative",
            submenu: "?{Amount|0}", customIcon: "419-Effect-Debuff", customTag: "" });
    smc.push({ code: "effectsbuff", prompt: "Effects buff", icon: "", attrib: "Adjust-Effect-Tests-Misc", shared: "Positive",
            submenu: "?{Amount|0}", customIcon: "420-Effect-Buff", customTag: "" });
    smc.push({ code: "tndebuff", prompt: "TN debuff", icon: "", attrib: "Adjust-TN-Misc", shared: "Negative",
            submenu: "?{Amount|0}", customIcon: "421-TN-Debuff", customTag: "" });
    smc.push({ code: "tnbuff", prompt: "TN buff", icon: "", attrib: "Adjust-TN-Misc", shared: "Positive",
            submenu: "?{Amount|0}", customIcon: "422-TN-Buff", customTag: "" });
// 600-Kakadoi, 601-Superblue. then eighth line.    Note that the first three are like the colors, the sheet does not do anything with t hem.
//      smc.push({ code: "entangled", prompt: "Entangled/Grappled", attrib: "condition-Entangled-Grappled", icon: "fishing-net", customIcon: "601-Entangled-Grappled", customTag: ""});
//      smc.push({ code: "poison", prompt: "Poisoned", icon: "death-zone", attrib: "condition-Poisoned", customIcon: "602-Poisoned", customTag: ""});
//      smc.push({ code: "stealth", prompt: "Stealthy", icon: "ninja-mask", attrib: "condition-Stealthy", customIcon: "603-Stealthy", customTag: ""});
// 700-Grey, 700-Skyblue, 700-Yellowish, end of list.

          // Go through each item in StatusMarkerCollection  and see if it has a customIcon (some don't).
          // If it does, see if this particual campain has the custum icons loaded, and if so, record the tag. Tags variy from campaign to campaign.
    let customcollection = JSON.parse(Campaign().get( "token_markers" )),
      txt, found = 0;
    for( let j = 0; j < smc.length; j++) {
      let sm = smc[ j ];
      if( "customIcon" in sm)
        for( let i = 0;  i < customcollection.length; i++)
          if( Earthdawn.safeString( sm.customIcon ).toLowerCase() === Earthdawn.safeString( customcollection[ i ].name ).toLowerCase()) {
            smc[ j ].customTag = customcollection[ i ].tag
            ++found;
          }


//first map piece, pick something random
                else {
                    grid[i][j] = gaussianRandom(0, 10);
                }
            }

        }
        this.grid = grid;
        // console.log(grid);
    }

    //displays the map using color map and elevation values
    display() {
        let boxSize:number = 1;
        let output = "
";
        for(let i:number = 0;i< this.width; i++) {
            output += "
";
            for(let j:number = 0; j < this.height; j++) {
                output += "" +
                    // this.grid[i][j] +
                    "	";
            }
            output += "
";
        }
        output += "
";
        // console.log(output);
        return output;
    }
}

//TODO: move this to a utility area when we get there
function gaussianRandom(start, end) {
    return Math.abs(Math.floor(start + gaussianRand() * (end - start + 1)));
}
//TODO: move this to a utility area when we get there
function gaussianRand() {
    let rand = 0;

    for (let i = 0; i < 6; i += 1) {
        rand += Math.random();
    }

    return rand / 6;
}

//hex values to be used for the map display
let mapColors = ['#000066',//0 deep water
                '#0000cc',// 1 deep water
                '#0000cc',// 2 deep water
                '#0000ff',// 3 water
                '#ffff66',// 4 sand
                '#00ff00',// 5 grass
                '#00cc00',// 6 brush
                '#009933',// 7 forest
                '#666633',// 8 rock
                '#333300',// 9 stone
                '#e0e0d1',// 10 dirty snow
                '#ebebe0',// 11 yellow snow
                '#f5f5f0',// 12 grey snow
                '#ffffff',// 13 snow
                '#ffffff',// 14 snow
                '#ffffff',// 15 snow
                '#ffffff',// 16 snow
                '#ffffff',// 17 snow
                '#ffffff',// 18 snow
                '#ffffff',// 19 snow
                '#ffffff'];//20 more snow, at larger map sizes the mountains get really high

//run the prototype - temp home
let gameMap = new map(250,250);
document.body.innerHTML = gameMap.display();
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { environment } from '../../../../environments/environment';

@Injectable({
  providedIn: 'root'
})
export class MairieserviceService {

  public hostmairie= environment.mairieurl;
  public hostmarcher= environment.marcherurl;
  public hostplace= environment.placeurl;
  public hostplaceToMarchand= environment.placeToMarchandurl;
  public hostmarchand= environment.marchandurl;
  public hostutilisateur = environment.utilisateururl;
  public hostplaceToUtilisateur= environment.placeToUtilisateururl

  constructor(private http : HttpClient) { }

   // la methode pour ajouter une mairie
   public ajoutermairie(hostmairie: any , donnee: any){
    return this.http.post(this.hostmairie+"/addMairie", donnee);
  }

  // la liste des mairie
  getMairie(){
    return this.http.get<


			(tx.Tree() != wire.TxTreeStake) &&
			(blockPlusTxSize >= policy.BlockMinSize) {

			minrLog.Tracef("Skipping tx %s with feePerKB %.2f "+
				"< TxMinFreeFee %d and block size %d >= "+
				"minBlockSize %d", tx.Hash(), prioItem.feePerKB,
				policy.TxMinFreeFee, blockPlusTxSize,
				policy.BlockMinSize)
			logSkippedDeps(tx, deps)
			continue
		}

		// Prioritize by fee per kilobyte once the block is larger than
		// the priority size or there are no more high-priority
		// transactions.
		if !sortedByFee && (blockPlusTxSize >= policy.BlockPrioritySize ||
			prioItem.priority <= mempool.MinHighPriority) {

			minrLog.Tracef("Switching to sort by fees per "+
				"kilobyte blockSize %d >= BlockPrioritySize "+
				"%d || priority %.2f <= minHighPriority %.2f",
				blockPlusTxSize, policy.BlockPrioritySize,
				prioItem.priority, mempool.MinHighPriority)

			sortedByFee = true
			priorityQueue.SetLessFunc(txPQByStakeAndFee)

			// Put the transaction back into the priority queue and
			// skip it so it is re-priortized by fees if it won't
			// fit into the high-priority section or the priority is
			// too low.  Otherwise this transaction will be the
			// final one in the high-priority section, so just fall
			// though to the code below so it is added now.
			if blockPlusTxSize > policy.BlockPrioritySize ||
				prioItem.priority < mempool.MinHighPriority {

				heap.Push(priorityQueue, prioItem)
				continue
			}
		}

		// Ensure the transaction inputs pass all of the necessary
		// preconditions before allowing it to be added to the block.
		// The fraud proof is not checked because it will be filled in
		// by the miner.
		_, err = blockchain.CheckTransactionInputs(subsidyCache, tx,
			nextBlockHeight, blockUtxos, false, server.chainParams)
		if err != nil {
			minrLog.Tracef("Skipping tx %s due to error in "+
				"CheckTransactionInputs: %v", tx.Hash(), err)
			logSkippedDeps(tx, deps)
			continue
		}
		err = blockchain.ValidateTransactionScripts(tx, blockUtxos,
			scriptFlags, server.sigCache)
		if err != nil {
			minrLog.Tracef("Skipping tx %s due to error in "+
				"ValidateTransactionScripts: %v", tx.Hash(), err)
			logSkippedDeps(tx, deps)
			continue
		}

		// Spend the transaction inputs in the block utxo view and add
		// an entry for it to ensure any transactions which reference
		// this one have it available as an input and can ensure they
		// aren't double spending.
		err = spendTransaction(blockUtxos, tx, nextBlockHeight)
		if err != nil {
			minrLog.Warnf("Unable to spend transaction %v in the preliminary "+
				"UTXO view for the block template: %v",
				tx.Hash(), err)
		}

		// Add the transaction to the block, increment counters, and
		// save the fees and signature operation counts to the block
		// template.
		blockTxns = append(blockTxns, tx)
		blockSize += txSize
		blockSigOps += numSigOps

		// Accumulate the SStxs in the block, because only a certain number
		// are allowed.
		if isSStx {
			numSStx++
		}
		if isSSGen {
			foundWinningTickets[tx.MsgTx().TxIn[1].PreviousOutPoint.Hash] = true
		}

		txFeesMap[*tx.Hash()] = prioItem.fee
		txSigOpCount


.dijitTooltipLeft .dijitTooltipConnector {background-image: url("images/tooltipConnectorRight.gif");}.soria .dijitTooltipRight {padding-left: 10px;}.soria .dijitTooltipRight .dijitTooltipConnector {left: 0; background:url("images/tooltipConnectorLeft.png") no-repeat top left; width:11px; height:17px;}.dj_ie .soria .dijitTooltipRight .dijitTooltipConnector {background-image: url("images/tooltipConnectorLeft.gif");}.soria .dijitMenu,.soria .dijitMenuBar {border: 1px solid #cbcbcb; margin: 0; padding: 0; background-color: #fff;}.soria .dijitBorderContainer .dijitMenuBar {border:1px solid #B1BADF;}.soria .dijitMenuItem {font-family: sans-serif; margin: 0; color: #243C5F;}.soria .dijitMenuBar .dijitMenuItem {padding: 4px 5px;}.soria .dijitMenuPreviousButton, .soria .dijitMenuNextButton {font-style: italic;}.soria .dijitMenuItem TD {padding:1px;}.soria .dijitMenuPassive .dijitMenuItemHover,.soria .dijitComboBoxMenu .dijitMenuItemHover,.soria .dijitMenuItemSelected {background-color: #d9e6f9; color: #243C5F;}.soria .dijitMenuItemIcon {width: 15px; height: 15px;}.soria .dijitMenuExpand {width:15px; height:15px; background-image: url("images/spriteRoundedIconsSmall.png"); background-position: -30px top;}.dj_ie6 .soria .dijitMenuExpand {background-image: url("images/spriteRoundedIconsSmall.gif");}.soria .dijitMenuSeparator {height: 1px;}.soria .dijitMenuSeparatorTop {border-bottom: 1px solid #fff;}.soria .dijitMenuSeparatorBottom {border-top: 1px solid #8ba0bd;}.soria .dijitCheckedMenuItemIconChar {display: none;}.soria .dijitCheckedMenuItemIcon {background-image: url("images/spriteCheckbox.gif"); background-position: -80px;}.soria .dijitCheckedMenuItemChecked .dijitCheckedMenuItemIcon {background-position: -64px;}.soria .dijitToolbar .dijitToolbarSeparator {background: url("../../icons/images/editorIconsEnabled.png");}.soria .dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled.png"); background-repeat: no-repeat; width: 18px; height: 18px; text-align: center;}.soria .dijitDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled.png");}.dijitEditorIcon {background-image: url("../../icons/images/editorIconsEnabled.png"); background-repeat: no-repeat; width: 18px; height: 18px; text-align: center;}.dijitDisabled .dijitEditorIcon {background-image: url("../../icons/images/editorIconsDisabled.png");}.dijitEditorIconSep {background-position: 0;}.dijitEditorIconSave {background-position: -18px;}.dijitEditorIconPrint {background-position: -36px;}.dijitEditorIconCut {background-position: -54px;}.dijitEditorIconCopy {background-position: -72px;}.dijitEditorIconPaste {background-position: -90px;}.dijitEditorIconDelete {background-position: -108px;}.dijitEditorIconCancel {background-position: -126px;}.dijitEditorIconUndo {background-position: -144px;}.dijitEditorIconRedo {background-position: -162px;}.dijitEditorIconSelectAll {background-position: -180px;}.dijitEditorIconBold {background-po


-way-2: #fe230a;
@bc-united-way-3: #ff9600;
@bc-united-way-4: #000064;
@bc-united-way-5: #b41428;
@bc-united-way-6: #f57814;
@bc-united-way-7: #e6d7aa;
@bc-united-way-8: #505050;
@bc-united-way-9: #f0e6c8;
@bc-united-way-10: #969696;
@bc-united-way-11: #7c81b8;
@bc-united-way-12: #ff967d;
@bc-united-way-13: #ffc87d;
@bc-unity: #222c37;
@bc-unity-1: #222c37;
@bc-unity-2: #00cccc;
@bc-unity-3: #fff600;
@bc-unity-4: #ff0066;
@bc-unity-5: #19e3b1;
@bc-unity-6: #ff7f33;
@bc-unity-7: #b83c82;
@bc-universitat-hamburg: #e2001a;
@bc-universitat-hamburg-1: #e2001a;
@bc-universitat-hamburg-2: #009cd1;
@bc-universitat-hamburg-3: #3b515b;
@bc-university-of-alberta: #007c41;
@bc-university-of-alberta-1: #007c41;
@bc-university-of-alberta-2: #ffdb05;
@bc-university-of-arizona: #cc0033;
@bc-university-of-arizona-1: #cc0033;
@bc-university-of-arizona-2: #003366;
@bc-university-of-cambridge: #d6083b;
@bc-university-of-cambridge-1: #d6083b;
@bc-university-of-cambridge-2: #0072cf;
@bc-university-of-cambridge-3: #ea7125;
@bc-university-of-cambridge-4: #55a51c;
@bc-university-of-cambridge-5: #8f2bbc;
@bc-university-of-cambridge-6: #00b1c1;
@bc-university-of-florida: #fa4616;
@bc-university-of-florida-1: #fa4616;
@bc-university-of-florida-2: #0021a5;
@bc-university-of-illinois-urbana-champaign: #131f33;
@bc-university-of-illinois-urbana-champaign-1: #131f33;
@bc-university-of-illinois-urbana-champaign-2: #fa6300;
@bc-university-of-kentucky: #005daa;
@bc-university-of-kentucky-1: #005daa;
@bc-university-of-michigan: #00274c;
@bc-university-of-michigan-1: #00274c;
@bc-university-of-michigan-2: #ffcb05;
@bc-university-of-oregon: #fce122;
@bc-university-of-oregon-1: #fce122;
@bc-university-of-oregon-2: #18453b;
@bc-university-of-texas: #bf5700;
@bc-university-of-texas-1: #bf5700;
@bc-university-of-texas-2: #333f48;
@bc-university-of-texas-


g, trailhead);
                trailhead_score += score;
            }
        }
    }

    return trailhead_score;
}

int get_total_trailhead_rating(grid_t(i) * g)
{
    int trailhead_rating = 0;

    for (size_t i = 0; i < g->rows; i++)
    {
        for (size_t j = 0; j < g->cols; j++)
        {
            if (grid_get(i, g, i, j) == 0)
            {
                pos trailhead = {i, j};
                int rating = get_trailhead_rating(g, trailhead);
                trailhead_rating += rating;
            }
        }
    }

    return trailhead_rating;
}

int main(void)
{
    char *buffer = 0;
    long length;

    grid_t(i) *grid = 0;

    int read = read_file_to_buffer(&buffer, "data/q10.txt", &length);

    if (read != 0)
    {
        printf("Error reading file: %s\n", strerror(errno));
        return errno;
    }

    int parse = parse_input(buffer, length, &grid);

    if (parse != 0)
    {
        printf("Error parsing input: %s\n", strerror(errno));
        return errno;
    }

    int score = get_total_trailhead_score(grid);

    printf("Part 1: %d\n", score);

    int rating = get_total_trailhead_rating(grid);

    printf("Part 2: %d\n", rating);
}


 fixEarthlyBranchIndex(EarthlyBranchName.ziEarthly);
      break;
  }
  return {
    'luIndex': luIndex,
    'maIndex': maIndex,
    'yangIndex': fixIndex(luIndex + 1),
    'tuoIndex': fixIndex(luIndex - 1),
  };
}

/// 获取天魁天钺所在宫位索引（按年干）
///
/// - 甲戊庚之年丑未
/// - 乙己之年子申
/// - 辛年午寅
/// - 壬癸之年卯巳
/// - 丙丁之年亥酉
///
/// @param heavenlyStemName 天干
/// @returns
Map<String, int> getKuiYueIndex(HeavenlyStemName heavenlyStemName) {
  int kuiIndex = -1;
  int yueIndex = -1;
  switch (heavenlyStemName) {
    case HeavenlyStemName.jiaHeavenly:
    case HeavenlyStemName.wuHeavenly:
    case HeavenlyStemName.gengHeavenly:
      kuiIndex = fixEarthlyBranchIndex(EarthlyBranchName.chouEarthly);
      yueIndex = fixEarthlyBranchIndex(EarthlyBranchName.weiEarthly);
      break;
    case HeavenlyStemName.yiHeavenly:
    case HeavenlyStemName.jiHeavenly:
      kuiIndex = fixEarthlyBranchIndex(EarthlyBranchName.ziEarthly);
      yueIndex = fixEarthlyBranchIndex(EarthlyBranchName.shenEarthly);
      break;
    case HeavenlyStemName.xinHeavenly:
      kuiIndex = fixEarthlyBranchIndex(EarthlyBranchName.wuEarthly);
      yueIndex = fixEarthlyBranchIndex(EarthlyBranchName.yinEarthly);
      break;
    case HeavenlyStemName.bingHeavenly:
    case HeavenlyStemName.dingHeavenly:
      kuiIndex = fixEarthlyBranchIndex(EarthlyBranchName.haiEarthly);
      yueIndex = fixEarthlyBranchIndex(EarthlyBranchName.youEarthly);
      break;
    case HeavenlyStemName.renHeavenly:
    case HeavenlyStemName.guiHeavenly:
      kuiIndex = fixEarthlyBranchIndex(EarthlyBranchName.maoEarthly);
      yueIndex = fixEarthlyBranchIndex(EarthlyBranchName.siEarthly);
      break;
  }

  return {'kuiIndex': kuiIndex, 'yueIndex': yueIndex};
}

/// 获取左辅右弼的索引（按生月）
///
/// - 辰上顺正寻左辅
/// - 戌上逆正右弼当
///
/// 解释：
///
/// - 从辰顺数农历月份数是左辅的索引
/// - 从戌逆数农历月份数是右弼的索引
///
/// @param lunarMonth 农历月份
/// @returns 左辅、右弼索引
Map<String, int> getZuoYouIndex(int lunarMonth) {
  final zuoIndex = fixIndex(
    fixEarthlyBranchIndex(EarthlyBranchName.chenEarthly) + (lunarMonth - 1),
  );
  final youIndex = fixIndex(
    fixEarthlyBranchIndex(EarthlyBranchName.xuEarthly) - (lunarMonth - 1),


(
                color = CommonButtonColors.SECONDARY,
                label = "Hello Button",
                onClick = {},
                leadingIcon = Res.drawable.ic_tweeter
            )
            CommonButton(
                color = CommonButtonColors.TERTIARY,
                label = "Hello Button",
                onClick = {},
                leadingIcon = Res.drawable.ic_chat_dots
            )
        }

    }
}
package org.xena.cs.bsp

import org.xena.plugin.utils.Vector

/**
 * Created by Jonathan on 8/20/2016.
 */
class BspFile {

	class dplane_t {

		var normal = Vector()   // normal vector
		var dist: Float = 0.toFloat() // distance from origin
		var type: Int = 0   // plane axis identifier

	}

	class dnode_t {

		var planenum: Int = 0   // index into plane array
		var children = IntArray(2)    // negative numbers are -(leafs + 1), not nodes
		var mins = ShortArray(3)   // for frustum culling
		var maxs = ShortArray(3)
		/*ushort*/ var firstface: Int = 0   // index into face array
		/*ushort*/ var numfaces: Int = 0    // counting both sides
		var area: Short = 0     // If all leaves below this node are in the same area, then
		// this is the area index. If not, this is -1.
		var paddding: Short = 0 // pad to 32 bytes length

	}

	class dleaf_t {

		var contents: Int = 0       // OR of all brushes (not needed?)
		var cluster: Short = 0      // cluster this leaf is in
		var area: Int = 0           // area this leaf is in
		var flags: Int = 0      // flags
		var mins = ShortArray(3)      // for frustum culling
		var maxs = ShortArray(3)
		/*ushort*/ var firstleafface: Int = 0       // index into leaffaces
		/*ushort*/ var numleaffaces: Int = 0
		/*ushort*/ var firstleafbrush: Int = 0      // index into leafbrushes
		/*ushort*/ var numleafbrushes: Int = 0
		var leafWaterDataID: Short = 0  // -1 for not in water

	}

	class dheader_t {

		var ident: Int = 0                // BSP file identifier
		var version: Int = 0              // BSP file version
		var lumps: Array<lump_t> = emptyArray()  // lump directory array
		var mapRevision: Int = 0          // the map's revision (iteration, version) number

	}

	class lump_t {

		var fileofs: Int = 0    // offset into file (bytes)
		var filelen: Int = 0    // length of lump (bytes)
		var version: Int = 0    // lump format version
		var fourCC: Int = 0 // lump ident code

	}

}
package com.jonazwetsloot.somtodaymod.ui.theme

import androidx.compose.material3.Typography
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.sp

// Set of Material typography styles to start with
val Typography = Typography(
        bodyLarge = TextStyle(
                fontFamily = FontFamily.Default,
                fontWeight = FontWeight.Normal,
                fontSize = 16.sp,
                lineHeight = 24.sp,
                letterSpacing = 0.5.sp
        )
        /* Other default text styles to override
    titleLarge = TextStyle(
        fontFamily = FontFamily.Default,
        fontWeight = FontWeight.Normal,
        fontSize = 22.sp,
        lineHeight = 28.sp,
        letterSpacing = 0.sp
    ),
    labelSmall = TextStyle(
        fontFamily


p
            }
            if (b < h[a]) {
                d2[a] = h[a]
                h[a] = b
            } else if (b < d2[a]) {
                d2[a] = b
            }
        }
        val f = IntArray(n + 2)
        f[n + 1] = n + 1
        f[n] = h[n]
        for (i in n - 1 downTo 1) {
            f[i] = min(h[i], f[i + 1])
        }
        // forbiddenCount(x) returns (n - x + 1) if x <= n, else 0.
        // This is the number of forbidden subarrays starting at some i when f[i] = x.
        var originalUnion: Long = 0
        for (i in 1..n) {
            if (f[i] <= n) {
                originalUnion += (n - f[i] + 1).toLong()
            }
        }
        val originalValid = totalSubarrays - originalUnion
        var best = originalValid
        // For each index j (1 <= j <= n) where a candidate conflicting pair exists,
        // simulate removal of the pair that gave h[j] (if any).
        // (If there is no candidate pair at j, h[j] remains n+1.)
        for (j in 1..n) {
            // no conflicting pair at index j
            if (h[j] == n + 1) {
                continue
            }
            // Simulate removal: new candidate at j becomes d2[j]
            val newCandidate = if (j < n) min(d2[j], f[j + 1]) else d2[j]
            // We'll recompute the new f values for indices 1..j.
            // Let newF[i] denote the updated value.
            // For i > j, newF[i] remains as original f[i].
            // For i = j, newF[j] = min( newCandidate, f[j+1] ) (which is newCandidate by
            // definition).
            val newFj = newCandidate
            // forbiddenCount(x) is defined as (n - x + 1) if x<= n, else 0.
            var delta = forbiddenCount(newFj, n) - forbiddenCount(f[j], n)
            var cur = newFj
            // Now update backwards for i = j-1 down to 1.
            for (i in j - 1 downTo 1) {
                val newVal = min(h[i], cur)
                // no further change for i' <= i
                if (newVal == f[i]) {
                    break
                }
                delta += forbiddenCount(newVal, n) - forbiddenCount(f[i], n)
                cur = newVal
            }
            val newUnion = originalUnion + delta
            val newValid = totalSubarrays - newUnion
            best = max(best, newValid)
        }
        return best
    }

    private fun forbiddenCount(x: Int, n: Int): Long {
        return (if (x <= n) (n - x + 1) else 0).toLong()
    }
}
package g1401_1500.s1419_minimum_number_of_frogs_croaking

// #Medium #String #Counting #2023_06_07_Time_210_ms_(90.91%)_Space_37.5_MB_(90.91%)

class Solution {
    fun minNumberOfFrogs(s: String): Int {
        var ans = 0
        val f = IntArray(26)
        for (i in 0 until s.length) {
            f[s[i].code - 'a'.code]++
            if (s[i] == 'k' && checkEnough(f)) {
                reduce(f)
            }
            if (!isValid(f)) {
                return -1
            }
            ans = Math.max(ans, getMax(f))
        }
        return if (isEmpty(f)) ans else -1
    }

    private fun checkEnough(f: IntArray): Boolean {
        return f['c'.code - 'a'.code] > 0 && f['r'.code - 'a'.code] > 0 &&
            f['o'.code - 'a'.code] > 0 && f[0] > 0 && f['k'.code - 'a'.code] > 0
    }

    fun reduce(f: IntArray) {
        f['c'.code - '


 struct EvMask {
    pub inner: i32,
}
impl EvMask {
    #[inline]
    pub fn print_mask(&self) -> bool {
        self.inner & (1 << 0) != 0
    }
    #[inline]
    pub fn set_print_mask(&mut self, val: bool) -> &mut Self {
        if val {
            self.inner |= 1 << 0;
        } else {
            self.inner &= !(1 << 0);
        }
        self
    }
    #[inline]
    pub fn attribute_mask(&self) -> bool {
        self.inner & (1 << 1) != 0
    }
    #[inline]
    pub fn set_attribute_mask(&mut self, val: bool) -> &mut Self {
        if val {
            self.inner |= 1 << 1;
        } else {
            self.inner &= !(1 << 1);
        }
        self
    }
    #[inline]
    pub fn new(print_mask: bool, attribute_mask: bool) -> Self {
        let mut inner: i32 = 0;
        if print_mask {
            inner |= 1 << 0;
        }
        if attribute_mask {
            inner |= 1 << 1;
        }
        EvMask { inner: inner }
    }
    #[inline]
    pub fn count_ones(&self) -> usize {
        self.inner.count_ones() as usize
    }
    pub const PRINT_MASK: Self = Self { inner: 1 };
    pub const ATTRIBUTE_MASK: Self = Self { inner: 2 };
    pub const COMPLETE: Self = Self { inner: 3 };
}
impl AsByteSequence for EvMask {
    #[inline]
    fn as_bytes(&self, bytes: &mut [u8]) -> usize {
        self.inner.as_bytes(bytes)
    }
    #[inline]
    fn from_bytes(bytes: &[u8]) -> Option<(Self, usize)> {
        let (inner, sz): (i32, usize) = <i32>::from_bytes(bytes)?;
        Some((EvMask { inner: inner }, sz))
    }
    #[inline]
    fn size(&self) -> usize {
        self.inner.size()
    }
}
impl core::ops::Not for EvMask {
    type Output = EvMask;
    #[inline]
    fn not(self) -> EvMask {
        EvMask { inner: !self.inner }
    }
}
impl core::ops::BitAnd for EvMask {
    type Output = EvMask;
    #[inline]
    fn bitand(self, rhs: EvMask) -> EvMask {
        EvMask {
            inner: self.inner & rhs.inner,
        }
    }
}
impl core::ops::BitOr for EvMask {
    type Output = EvMask;
    #[inline]
    fn bitor(self, rhs: EvMask) -> EvMask {
        EvMask {
            inner: self.inner | rhs.inner,
        }
    }
}
impl core::ops::BitXor for EvMask {
    type Output = EvMask;
    #[inline]
    fn bitxor(self, rhs: EvMask) -> EvMask {
        EvMask {
            inner: self.inner ^ rhs.inner,
        }
    }
}
#[repr(i32)]
#[derive(Debug, Copy, Clone, PartialEq, PartialOrd)]
pub enum GetDoc {
    Finished = 0,
    SecondConsumer = 1,
}
impl AsByteSequence for GetDoc {
    #[inline]
    fn as_bytes(&self, bytes: &mut [u8]) -> usize {
        (*self as i32).as_bytes(bytes)
    }
    #[inline]
    fn from_bytes(bytes: &[u8]) -> Option<(Self, usize)> {
        let (underlying, sz): (i32, usize) = <i32>::from_bytes(bytes)?;
        match underlying {
            0 => Some((Self::Finished, sz)),
            1 => Some((Self::SecondConsumer, sz)),
            _ => None,
        }
    }
    #[inline]
    fn size


.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm368-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM416 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM160 128l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L192 96c-17.7 0-32 14.3-32 32zm32 160c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0z"],"ruler-horizontal":[640,512,[],"f547","M0 336c0 26.5 21.5 48 48 48l544 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0 0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80-64 0c-26.5 0-48 21.5-48 48L0 336z"],"people-robbery":[576,512,[],"e536","M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6L328 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-305.7c38.1


/*******************************************************************************
 *
 * Copyright (C) 2009, Alexander Stigsen, e-texteditor.com
 *
 * This software is licensed under the Open Company License as described
 * in the file license.txt, which you should have received as part of this
 * distribution. The terms are also available at http://opencompany.org/license.
 *
 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
 * KIND, either express or implied.
 *
 ******************************************************************************/

#ifndef __EDOCKART_H__
#define __EDOCKART_H__

#include "wx/wxprec.h"
#ifndef WX_PRECOMP
	#include <wx/wx.h>
#endif

#include <wx/aui/aui.h>

class ModernDockArt : public wxAuiDefaultDockArt
{
public:
	ModernDockArt(wxWindow* win);

	void DrawPaneButton(wxDC& dc,
				  wxWindow *window,
                  int button,
                  int button_state,
                  const wxRect& rect,
                  wxAuiPaneInfo& pane);

	void DrawCaption(wxDC& dc,
				  wxWindow *window,
                  const wxString& text,
                  const wxRect& rect,
                  wxAuiPaneInfo& pane);

protected:
	void ModernInit();
    void DrawCaptionBackground(wxDC& dc, const wxRect& rect, bool active);

	unsigned int m_caption_text_indent;
	unsigned int m_real_button_size;

private:
	wxWindow* m_win;
};

class ModernTabArt : public wxAuiDefaultTabArt {
public:
	ModernTabArt();
	wxAuiTabArt* Clone();
};

#endif // __EDOCKART_H__


[global::System.ComponentModel.DefaultValue(default(bool))]
		public bool is_official_valve_server
		{
			get { return _is_official_valve_server; }
			set { _is_official_valve_server = value; }
		}

		private bool _is_hltv = default(bool);
		[global::ProtoBuf.ProtoMember(5, IsRequired = false, Name = @"is_hltv", DataFormat = global::ProtoBuf.DataFormat.Default)]
		[global::System.ComponentModel.DefaultValue(default(bool))]
		public bool is_hltv
		{
			get { return _is_hltv; }
			set { _is_hltv = value; }
		}

		private bool _is_replay = default(bool);
		[global::ProtoBuf.ProtoMember(6, IsRequired = false, Name = @"is_replay", DataFormat = global::ProtoBuf.DataFormat.Default)]
		[global::System.ComponentModel.DefaultValue(default(bool))]
		public bool is_replay
		{
			get { return _is_replay; }
			set { _is_replay = value; }
		}

		private bool _is_redirecting_to_proxy_relay = default(bool);
		[global::ProtoBuf.ProtoMember(21, IsRequired = false, Name = @"is_redirecting_to_proxy_relay", DataFormat = global::ProtoBuf.DataFormat.Default)]
		[global::System.ComponentModel.DefaultValue(default(bool))]
		public bool is_redirecting_to_proxy_relay
		{
			get { return _is_redirecting_to_proxy_relay; }
			set { _is_redirecting_to_proxy_relay = value; }
		}

		private int _c_os = default(int);
		[global::ProtoBuf.ProtoMember(7, IsRequired = false, Name = @"c_os", DataFormat = global::ProtoBuf.DataFormat.TwosComplement)]
		[global::System.ComponentModel.DefaultValue(default(int))]
		public int c_os
		{
			get { return _c_os; }
			set { _c_os = value; }
		}

		private uint _map_crc = default(uint);
		[global::ProtoBuf.ProtoMember(8, IsRequired = false, Name = @"map_crc", DataFormat = global::ProtoBuf.DataFormat.FixedSize)]
		[global::System.ComponentModel.DefaultValue(default(uint))]
		public uint map_crc
		{
			get { return _map_crc; }
			set { _map_crc = value; }
		}

		private uint _client_crc = default(uint);
		[global::ProtoBuf.ProtoMember(9, IsRequired = false, Name = @"client_crc", DataFormat = global::ProtoBuf.DataFormat.FixedSize)]
		[global::System.ComponentModel.DefaultValue(default(uint))]
		public uint client_crc
		{
			get { return _client_crc; }
			set { _client_crc = value; }
		}

		private uint _string_table_crc = default(uint);
		[global::ProtoBuf.ProtoMember(10, IsRequired = false, Name = @"string_table_crc", DataFormat = global::ProtoBuf.DataFormat.FixedSize)]
		[global::System.ComponentModel.DefaultValue(default(uint))]
		public uint string_table_crc
		{
			get { return _string_table_crc; }
			set { _string_table_crc = value; }
		}

		private int _max_clients = default(int);
		[global::ProtoBuf.ProtoMember(11, IsRequired = false, Name = @"max_clients", DataFormat = global::ProtoBuf.DataFormat.TwosComplement)]
		[global::System.ComponentModel.DefaultValue(default(int))]
		public int max_clients
		{
			get { return _max_clients; }
			set { _max_clients = value; }
		}

		private int _max_classes = default(int);
		[global::ProtoBuf.ProtoMember(12, IsRequired = fa


ll_list) => {
            println!("{:#?}",shell_list);
        },
        Err(err) => {
            println!("{}",err);
        }
    }
}

fn example_002(){
    let buffer: &[u8] = &[
        0x0D,0x02,0x14,0x00,0x1F,0x50,0xE0,0x4F,0xD0,0x20,0xEA,0x3A,0x69,0x10,0xA2,0xD8,
        0x08,0x00,0x2B,0x30,0x30,0x9D,0x19,0x00,0x2F,0x43,0x3A,0x5C,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x94,
        0x00,0x31,0x00,0x00,0x00,0x00,0x00,0x0C,0x43,0x4A,0x08,0x11,0x00,0x50,0x52,0x4F,
        0x47,0x52,0x41,0x7E,0x32,0x00,0x00,0x7C,0x00,0x08,0x00,0x04,0x00,0xEF,0xBE,0xFA,
        0x40,0xC0,0x2C,0x0C,0x43,0x4A,0x08,0x2A,0x00,0x00,0x00,0x8D,0x0E,0x00,0x00,0x00,
        0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x52,0x00,0x00,0x00,0x00,
        0x00,0x50,0x00,0x72,0x00,0x6F,0x00,0x67,0x00,0x72,0x00,0x61,0x00,0x6D,0x00,0x20,
        0x00,0x46,0x00,0x69,0x00,0x6C,0x00,0x65,0x00,0x73,0x00,0x20,0x00,0x28,0x00,0x78,
        0x00,0x38,0x00,0x36,0x00,0x29,0x00,0x00,0x00,0x40,0x00,0x73,0x00,0x68,0x00,0x65,
        0x00,0x6C,0x00,0x6C,0x00,0x33,0x00,0x32,0x00,0x2E,0x00,0x64,0x00,0x6C,0x00,0x6C,
        0x00,0x2C,0x00,0x2D,0x00,0x32,0x00,0x31,0x00,0x38,0x00,0x31,0x00,0x37,0x00,0x00,
        0x00,0x18,0x00,0x4C,0x00,0x31,0x00,0x00,0x00,0x00,0x00,0xC2,0x42,0xF5,0x1E,0x10,
        0x00,0x49,0x6E,0x74,0x65,0x6C,0x00,0x38,0x00,0x08,0x00,0x04,0x00,0xEF,0xBE,0xC2,
        0x42,0xDB,0


return ""

            html = f'
{node["id"]}: {node["text"]}'
            if node['id'].startswith('E'):
                evidence = self.all_evidence.get(node['id'], {})
                url = evidence.get('meta', {}).get('url', '')
                if url:
                    html += f'
{url}'
            if node['children']:
                html += '
'
                for child in node['children']:
                    html += render_tree(child)
                html += '
'
            html += '
'
            return html

        # Build and render trees for each top-level statement
        trees_html = ""
        for stmt_id in self.all_statements.keys():
            tree = build_tree(stmt_id)
            if tree:
                trees_html += f'
'
                trees_html += f'
Citation Tree for Statement {stmt_id}
'
                trees_html += '
'
                trees_html += render_tree(tree)
                trees_html += '
'
                trees_html += f'↑ Back to citation'
                trees_html += '
'

        return trees_html


uncated to uint" */ // example from issue 11325
	_ = 0 >> 1.1 /* ERROR "truncated to uint" */
	_ = 0 << 1.1 /* ERROR "truncated to uint" */
	_ = 0 >> 1.
	_ = 1 >> 1.1 /* ERROR "truncated to uint" */
	_ = 1 >> 1.
	_ = 1. >> 1
	_ = 1. >> 1.
	_ = 1.1 /* ERROR "must be integer" */ >> 1
}

func issue11594() {
	var _ = complex64 /* ERROR "must be integer" */ (1) << 2 // example from issue 11594
	_ = float32 /* ERROR "must be integer" */ (0) << 1
	_ = float64 /* ERROR "must be integer" */ (0) >> 2
	_ = complex64 /* ERROR "must be integer" */ (0) << 3
	_ = complex64 /* ERROR "must be integer" */ (0) >> 4
}

func issue21727() {
	var s uint
	var a = make([]int, 1<<s + 1.2 /* ERROR "truncated to int" */ )
	var _ = a[1<<s - 2.3 /* ERROR "truncated to int" */ ]
	var _ int = 1<<s + 3.4 /* ERROR "truncated to int" */
	var _ = string(1 /* ERRORx `shifted operand 1 .* must be integer` */ << s)
	var _ = string(1.0 /* ERROR "cannot convert" */ << s)
}

func issue22969() {
	var s uint
	var a []byte
	_ = a[0xffffffffffffffff /* ERROR "overflows int" */ <<s] // example from issue 22969
	_ = make([]int, 0xffffffffffffffff /* ERROR "overflows int" */ << s)
	_ = make([]int, 0, 0xffffffffffffffff /* ERROR "overflows int" */ << s)
	var _ byte = 0x100 /* ERROR "overflows byte" */ << s
	var _ int8 = 0xff /* ERROR "overflows int8" */ << s
	var _ int16 = 0xffff /* ERROR "overflows int16" */ << s
	var _ int32 = 0x80000000 /* ERROR "overflows int32" */ << s
}
// Copyright 2022 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package unix

import (
	"internal/abi"
	"syscall"
	"unsafe"
)

const (
	AI_CANONNAME = 0x2
	AI_ALL       = 0x100
	AI_V4MAPPED  = 0x800
	AI_MASK      = 0x1407

	EAI_AGAIN    = 2
	EAI_NODATA   = 7
	EAI_NONAME   = 8
	EAI_SYSTEM   = 11
	EAI_OVERFLOW = 14

	NI_NAMEREQD = 4
)

type Addrinfo struct {
	Flags     int32
	Family    int32
	Socktype  int32
	Protocol  int32
	Addrlen   uint32
	Canonname *byte
	Addr      *syscall.RawSockaddr
	Next      *Addrinfo
}

//go:cgo_ldflag "-lresolv"

//go:cgo_import_dynamic libc_getaddrinfo getaddrinfo "/usr/lib/libSystem.B.dylib"
func libc_getaddrinfo_trampoline()

func Getaddrinfo(hostname, servname *byte, hints *Addrinfo, res **Addrinfo) (int, error) {
	gerrno, _, errno := syscall_syscall6(abi.FuncPCABI0(libc_getaddrinfo_trampoline),
		uintptr(unsafe.Pointer(hostname)),
		uintptr(unsafe.Pointer(servname)),
		uintptr(unsafe.Pointer(hints)),
		uintptr(unsafe.Pointer(res)),
		0,
		0)
	var err error


    root.after(1000, lambda: result_label.config(foreground="red"))
    root.after(1100, lambda: result_label.config(text="", foreground="black"))

# Function to update the progress bar
def update_progress_bar(length):
    progress = min(length / len(current_sentence), 1.0) * 100
    progressbar_label.config(text=f"Progress: {int(progress)}%")
    progressbar["value"] = progress

# Function to reset the progress bar
def reset_progress_bar():
    progressbar_label.config(text="Progress: 0%")
    progressbar["value"] = 0

# Countdown timer function
def countdown():
    global timer_duration, game_started
    if timer_duration > 0 and game_started:
        timer_label.config(text=f"Time left: {timer_duration} seconds")
        countdown_label.config(text=str(timer_duration))  # Update countdown_label here
        timer_duration -= 1
        root.after(1000, countdown)

# Function to calculate WPM
def calculate_wpm(time_taken, word_count):
    minutes = time_taken / 60
    wpm = (word_count / 5) / minutes
    return round(wpm)

# Initialize the GUI
root = tk.Tk()
root.geometry("800x400")
root.title("TypeRacer")

# Create the widgets with ttk themes
style = ttk.Style()
style.configure("TLabel", foreground="black", font=("Arial", 14))
style.configure("TButton", font=("Arial", 16))

sentence_label = ttk.Label(root, text=current_sentence, wraplength=700, justify="left")
input_box = ttk.Entry(root, font=("Arial", 16), width=40)  # Increase width
submit_button = ttk.Button(root, text="Submit", command=submit_score)
reset_button = ttk.Button(root, text="Reset", command=reset_game)
result_label = ttk.Label(root)
progressbar_label = ttk.Label(root, text="Progress: 0%")
progressbar = ttk.Progressbar(
    root, orient=tk.HORIZONTAL, length=200, mode="determinate"
)
timer_label = ttk.Label(root, text=f"Time left: {timer_duration} seconds")
countdown_label = ttk.Label(root, font=("Arial", 24), foreground="red")

# Add the widgets to the GUI
sentence_label.pack(pady=20)
input_box.pack(pady=10)
submit_button.pack(side=tk.RIGHT, padx=10)
reset_button.pack(side=tk.RIGHT, padx=10)
result_label.pack(pady=10)
progressbar_label.pack(pady=10)
progressbar.pack(pady=10)
timer_label.pack(pady=10)
countdown_label.pack(pady=10)

# Bind the typing event to the input_box
input_box.bind("<KeyRelease>", check_input)

# Start the game
start_game()

# Start the GUI event loop
root.mainloop()


.aspx
		/// </summary>
		[SupportByVersionAttribute("Word", 14,15)]
		public NetOffice.WordApi.Enums.XlDisplayUnit DisplayUnit
		{
			get
			{
				object[] paramsArray = null;
				object returnItem = Invoker.PropertyGet(this, "DisplayUnit", paramsArray);
				int intReturnItem = NetRuntimeSystem.Convert.ToInt32(returnItem);
				return (NetOffice.WordApi.Enums.XlDisplayUnit)intReturnItem;
			}
			set
			{
				object[] paramsArray = Invoker.ValidateParamsArray(value);
				Invoker.PropertySet(this, "DisplayUnit", paramsArray);
			}
		}

		/// <summary>
		/// SupportByVersion Word 14, 15
		/// Get/Set
		/// MSDN Online Documentation: http://msdn.microsoft.com/en-us/en-us/library/office/ff196247.aspx
		/// </summary>
		[SupportByVersionAttribute("Word", 14,15)]
		public Double DisplayUnitCustom
		{
			get
			{
				object[] paramsArray = null;
				object returnItem = Invoker.PropertyGet(this, "DisplayUnitCustom", paramsArray);
				return NetRuntimeSystem.Convert.ToDouble(returnItem);
			}
			set
			{
				object[] paramsArray = Invoker.ValidateParamsArray(value);
				Invoker.PropertySet(this, "DisplayUnitCustom", paramsArray);
			}
		}

		/// <summary>
		/// SupportByVersion Word 14, 15
		/// Get/Set
		/// MSDN Online Documentation: http://msdn.microsoft.com/en-us/en-us/library/office/ff845459.aspx
		/// </summary>
		[SupportByVersionAttribute("Word", 14,15)]
		public bool HasDisplayUnitLabel
		{
			get
			{
				object[] paramsArray = null;
				object returnItem = Invoker.PropertyGet(this, "HasDisplayUnitLabel", paramsArray);
				return NetRuntimeSystem.Convert.ToBoolean(returnItem);
			}
			set
			{
				object[] paramsArray = Invoker.ValidateParamsArray(value);
				Invoker.PropertySet(this, "HasDisplayUnitLabel", paramsArray);
			}
		}

		/// <summary>
		/// SupportByVersion Word 14, 15
		/// Get
		/// MSDN Online Documentation: http://msdn.microsoft.com/en-us/en-us/library/office/ff841019.aspx
		/// </summary>
		[SupportByVersionAttribute("Word", 14,15)]
		public NetOffice.WordApi.DisplayUnitLabel DisplayUnitLabel
		{
			get
			{
				object[] paramsArray = null;
				object returnItem = Invoker.PropertyGet(this, "DisplayUnitLabel", paramsArray);
				NetOffice.WordApi.DisplayUnitLabel newObject = Factory.CreateKnownObjectFromComProxy(this,returnItem,NetOffice.WordApi.DisplayUnitLabel.LateBindingApiWrapperType) as NetOffice.WordApi.DisplayUnitLabel;
				return newObject;
			}
		}

		/// <summary>
		/// SupportByVersion Word 14, 15
		/// Get
		/// MSDN Online Documentation: http://msdn.microsoft.com/en-us/en-us/library/office/ff192416.aspx
		/// </summary>
		[SupportByVersionAttribute("Word", 14,15)]
		public NetOffice.WordApi.ChartBorder Border
		{
			get
			{
				object[] paramsArray = null;
				object returnItem = Invoker.PropertyGet(this, "Border", paramsArray);
				NetOffice.WordApi.ChartBorder newObject = Factory.CreateKnownObjectFromComProxy(this,returnItem,NetOffice.WordApi.ChartBorder.LateBindingApiWrapperType) as NetOffice.WordApi.ChartBorder;
				return newObject;
			}
		}

		/// <summary>
		/// SupportByVersion Word 14, 15
		/// Get
		/// MSDN Online Documentation: http://msdn.microsoft.com/en-us


rent;margin:2px 0px 0px 3px;height:25px}.WikiHeaderRestyle > nav .subnav-2 li .subnav-2a>.chevron{opacity:.50;-khtml-opacity:.50;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";filter:alpha(opacity=50);border-top-color:white;height:4px;margin:0 0 3px 5px;vertical-align:bottom}.WikiHeaderRestyle > nav .subnav-2 li.marked2 .subnav-2a{margin:2px 0px 0px 3px;background:cornsilk;border:1px solid #6b5331;border-bottom:1px solid cornsilk;color:#3a3a3a;border-radius:0px;-webkit-border-radius:0px;border-top-right-radius:3px;-webkit-border-top-right-radius:3px;border-top-left-radius:3px;-webkit-border-top-left-radius:3px}.WikiHeaderRestyle > nav .subnav-2 li.marked2 .subnav-2a>.chevron{opacity:1;-khtml-opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);border-top-color:#3a3a3a}.WikiHeaderRestyle > nav .subnav-2 li.marked2 .subnav-2a:hover{background:#dad1b6;color:#3a3a3a}.WikiHeaderRestyle > nav .subnav-3{z-index:90;display:none;top:25;margin-left:4px;min-width:150px;border:1px solid #6b5331;margin-left:3px;box-shadow:1px 2px 12px 0px #433600;-webkit-box-shadow:1px 2px 12px 0px #433600}.WikiHeaderRestyle > nav .subnav-3 li{background:cornsilk;color:#3a3a3a;float:none;padding:0px;margin:0px}.WikiHeaderRestyle > nav .subnav-3 li a{border:0px solid #6b5331;border-radius:0px;-webkit-border-radius:0px;font-size:12px;line-height:25px;display:block;margin:0px;padding:5px 9px;color:#3a3a3a}.WikiHeaderRestyle > nav .subnav-3 li a:hover{background:#dad1b6;color:#3a3a3a}.WikiHeaderRestyle > nav a.subnav-3a{border:0}.WikiHeaderRestyle .navbackground{background-color:#483821;height:32px;margin-top:1px;left:0;position:absolute;top:32px;width:729px}.WikiHeaderRestyle .navbackground div{background-color:#6b5331;height:1px;margin-top:1px;width:100%}.WikiHeaderRestyle .navbackground img{border-color:#251d11 transparent transparent #251d11;border-width:2px;float:right;margin-top:30px}.WikiHeaderRestyle .buttons{right:10px;position:absolute;text-align:right;width:270px;height:10px;top:27px;z-index:4}.WikiHeaderRestyle .buttons .wikia-button,.WikiHeaderRestyle .buttons .wikia-menu-button{height:20px;font-size:11px;margin-top:0px;vertical-align:top;z-index:3}.WikiHeaderRestyle .buttons .wikia-button[data-id=edit],.WikiHeaderRestyle .buttons .wikia-button a[data-id=edit],.WikiHeaderRestyle .buttons .wikia-menu-button[data-id=edit],.WikiHeaderRestyle .buttons .wikia-menu-button a[data-id=edit]{margin-right:2px;padding-right:8px;border-width:0px}.WikiHeaderRestyle .buttons .contribute{padding-top:1px;vertical-align:middle}.WikiHeaderRestyle .buttons .contribute>img{height:18px;margin-bottom:4px}.WikiHeader


上线的状态时，也就是在 alpha/beta release 时，在测试和交付的过程中，依然可以开发下一个版本的代码。

最后，对于已经发布的代码，也会有一些 Bug-fix 的改动，不会将正在开发的代码提交到生产线上去。

你看，面对这些需求，前面的那些协同方式就都不行了。因为我们不仅是要在整个团队中共享代码，我们要的更是管理好不同环境下的代码不互相干扰。说得技术一点儿就是，要管理好代码与环境的一致性。

为了解决这些问题，GitFlow 协同工作流就出来了。

GitFlow 协同工作流是由 Vincent Driessen 于 2010 年在 A successful Git branching model 这篇文章介绍给世人的。

这个协同工作流的核心思想如下图所示。

![](https://static001.geekbang.org/resource/image/9c/ca/9cf4c9bc17bf11aa07d47f61d2137fca.png)

整个代码库中一共有五种分支。

Master 分支。也就是主干分支，用作发布环境，上面的每一次提交都是可以发布的。

Feature 分支。也就是功能分支，用于开发功能，其对应的是开发环境。

Developer 分支。是开发分支，一旦功能开发完成，就向 Developer 分支合并，合并完成后，删除功能分支。这个分支对应的是集成测试环境。

Release 分支。当 Developer 分支测试达到可以发布状态时，开出一个 Release 分支来，然后做发布前的准备工作。这个分支对应的是预发环境。之所以需要这个 Release 分支，是我们的开发可以继续向前，不会因为要发布而被 block 住而不能提交。

一旦 Release 分支上的代码达到可以上线的状态，那么需要把 Release 分支向 Master 分支和 Developer 分支同时合并，以保证代码的一致性。然后再把 Release 分支删除掉。

Hotfix 分支。是用于处理生产线上代码的 Bug-fix，每个线上代码的 Bug-fix 都需要开一个 Hotfix 分支，完成后，向 Developer 分支和 Master 分支上合并。合并完成后，删除 Hotfix 分支。

这就是整个 GitFlow 协同工作流的工作过程。我们可以看到：

我们需要长期维护 Master 和 Developer 两个分支。

这其中的方式还是有一定复杂度的，尤其是 Release 和 Hotfix 分支需要同时向两个分支作合并。所以，如果没有一个好的工具来支撑的话，这会因为我们可能会忘了做一些


btn_cancel);

    mRBleft    = (CheckBox) findViewById( R.id.left );
    mRBvert    = (CheckBox) findViewById( R.id.vert );
    mRBright   = (CheckBox) findViewById( R.id.right );
    // mRBignore  = (RadioButton) findViewById( R.id.ignore );
    mStretchBar = (SeekBar) findViewById(R.id.stretchbar );

    // mRBsurvey    = (RadioButton) findViewById( R.id.survey );
    // mRBdup  = (CheckBox) findViewById( R.id.duplicate );
    // mRBsurf = (CheckBox) findViewById( R.id.surface );

    // hideStretchBar = true;
    // hideColorBtn   = true;
    // hideLegBtn     = true;
    mBtnColor = (Button) findViewById( R.id.btn_color );
    if ( TDLevel.overExpert ) {
      if ( mBlock.isSplay() ) {
	if ( TDSetting.mSplayColor ) {
          mBtnColor.setBackgroundColor( mColor );
          mBtnColor.setOnClickListener( this );
          hideColorBtn = false;
	}
      } else if ( mBlock.isMainLeg() ) {
        if ( mParent.isExtendedProfile() ) {
          if ( TDSetting.mExtendFrac ) {
            Bitmap bitmap =  MyButton.getLVRseekbarBackGround( mContext, (int)(TopoDroidApp.mDisplayWidth), 20 );
            if ( bitmap != null ) {
              BitmapDrawable background = new BitmapDrawable( mContext.getResources(), bitmap );
              TDandroid.setSeekBarBackground( mStretchBar, background );
            }
            hideStretchBar = false;
            mStretchBar.setProgress( (int)(150 + 100 * mIntExtend + 100 * mStretch ) );
            mStretchBar.setOnSeekBarChangeListener( new OnSeekBarChangeListener() {
              public void onProgressChanged( SeekBar stretchbar, int progress, boolean fromUser) {
                if ( fromUser ) {
                  if ( progress < 100 ) {
                    mIntExtend = -1;
                    mRBleft.setChecked(  true );
                    mRBvert.setChecked(  false );
                    mRBright.setChecked( false );
                    mStretch = (progress- 50)/100.0f;
                  } else if ( progress > 200 ) {
                    mIntExtend = 1;
                    mRBleft.setChecked(  false );
                    mRBvert.setChecked(  false );
                    mRBright.setChecked( true );
                    mStretch = (progress-250)/100.0f;
                  } else {
                    mIntExtend = 0;
                    mRBleft.setChecked(  false );
                    mRBvert.setChecked(  true );
                    mRBright.setChecked( false );
                    mStretch = (progress-150)/100.0f;
                  }
                  // mStretch = (progress - 100)/200.0f;
                  if ( mStretch < -0.5f ) mStretch = -0.5f;
                  if ( mStretch >  0.5f ) mStretch =  0.5f;
                }
              }
              public void onStartTrackingTouch(SeekBar stretchbar) { }
              public void onStopTrackingTouch(SeekBar stretchbar) { }
            } );
            mStretchBar.setEnabled( true );
          }
        }
      }
    }

    if ( hideColorBtn )   mBtnColor.setVisibility( View.GONE );
    if ( hideStretchBar ) mStretchBar.setVisibility( View.GONE );

    LinearLayout layout3  = (LinearLayout) findViewById( R.id.layout3 );
    LinearLayout layo


  @internal
  Set<String> getUnmappedInterfacePorts() {
    final unmappedPorts = <String>{};
    final intfPorts = interface.getPorts();
    for (final portName in intfPorts.keys) {
      if (intfPorts[portName]!.srcConnections.isEmpty &&
          intfPorts[portName]!.dstConnections.isEmpty) {
        unmappedPorts.add(portName);
      }
    }

    final mappedPortNames = portMaps.map((pm) => pm.interfacePort.portName);
    unmappedPorts.removeAll(mappedPortNames);

    return unmappedPorts;
  }
}

/// Extensions on [PairInterface] to handle `exceptPorts` functionality.
extension _ExceptPairInterfaceExtensions on PairInterface {
  /// Performs the same operation as [driveOther], but excludes ports listed in
  /// [exceptPorts].
  void _driveOtherExcept(PairInterface other, Iterable<PairDirection> tags,
      {required Set<String>? exceptPorts}) {
    getPorts(tags).forEach((portName, thisPort) {
      if (exceptPorts == null || !exceptPorts.contains(portName)) {
        other.port(portName) <= thisPort;
      }
    });
  }

  /// Performs the same operation as [receiveOther], but excludes ports listed
  /// in [exceptPorts].
  void _receiveOtherExcept(PairInterface other, Iterable<PairDirection> tags,
      {required Set<String>? exceptPorts}) {
    getPorts(tags).forEach((portName, thisPort) {
      if (exceptPorts == null || !exceptPorts.contains(portName)) {
        thisPort <= other.port(portName);
      }
    });
  }

  /// Creates a copy of an interface with optional port exclusions.
  ///
  /// Returns a new [PairInterface] that contains all the same ports as the
  /// `this` interface, except for those listed in [exceptPorts]. If
  /// [exceptPorts] is null or empty, returns a complete clone.
  ///
  /// This is used internally when creating interface variants that exclude
  /// certain ports during hierarchical interface operations.
  PairInterface _cloneExcept({required Set<String>? exceptPorts}) {
    if (exceptPorts == null || exceptPorts.isEmpty) {
      return clone();
    }

    return PairInterface(
      portsFromConsumer: _getMatchPortsExcept(PairDirection.fromConsumer,
              exceptPorts: exceptPorts)
          .toList(),
      portsFromProvider: _getMatchPortsExcept(PairDirection.fromProvider,
              exceptPorts: exceptPorts)
          .toList(),
      sharedInputPorts: _getMatchPortsExcept(PairDirection.sharedInputs,
              exceptPorts: exceptPorts)
          .toList(),
      commonInOutPorts: _getMatchPortsExcept(PairDirection.commonInOuts,
              exceptPorts: exceptPorts)
          .toList(),
      modify: modify,
    );
  }

  /// Extracts ports with a specific direction tag from an interface.
  ///
  /// Returns a list of [Logic] ports from `this` that are tagged with
  /// the specified [tag] direction, excluding any ports listed in
  /// [exceptPorts]. Creates appropriate port instances ([Logic], [LogicArray],
  /// or [LogicNet]) based on the original port types.
  ///
  /// This is a utility method for interface cloning operations.
  List<Logic> _getMatchPortsExcept(PairDirection tag,
          {required Set<String>? exceptPorts}) =>
      getPorts({tag})
          .entries
          .where((e) => exceptPorts == null || !exceptPorts.contains(e.key))
          .map((e) => e.value.clone())
          .toList(growable: false);
}
// Copyright (C) 2024-2025 Intel Corporation
// SPDX-License-Identifier: BSD-3-Clause
//
// clock_gating_example.dart
// Example of how to use c