equest {
	return &RegressionDetectionRequest{
		Progress: progress.New(),
	}
}

// RegressionDetectionResponse is the response from running a RegressionDetectionRequest.
type RegressionDetectionResponse struct {
	Summary *clustering2.ClusterSummaries `json:"summary"`
	Frame   *frame.FrameResponse          `json:"frame"`
}

// regressionDetectionProcess handles the processing of a single RegressionDetectionRequest.
type regressionDetectionProcess struct {
	// These members are read-only, should not be modified.
	request                   *RegressionDetectionRequest
	perfGit                   perfgit.Git
	iter                      dfiter.DataFrameIterator
	detectorResponseProcessor DetectorResponseProcessor
	shortcutStore             shortcut.Store
}

// BaseAlertHandling determines how Alerts should be handled by ProcessRegressions.
type BaseAlertHandling int

const (
	// ExpandBaseAlertByGroupBy means that a single Alert should be turned into
	// multiple Alerts based on the GroupBy settings in the Alert.
	ExpandBaseAlertByGroupBy BaseAlertHandling = iota

	// DoNotExpandBaseAlertByGroupBy means that the Alert should not be expanded
	// into multiple Alerts even if it has a non-empty GroupBy value.
	DoNotExpandBaseAlertByGroupBy
)

// Iteration controls how ProcessRegressions deals with errors as it iterates
// across all the DataFrames.
type Iteration int

const (
	// ContinueOnError causes the error to be ignored and iteration continues.
	ContinueOnError Iteration = iota

	// ReturnOnError halts the iteration and returns.
	ReturnOnError
)

// ProcessRegressions detects regressions given the RegressionDetectionRequest.
func ProcessRegressions(ctx context.Context,
	req *RegressionDetectionRequest,
	detectorResponseProcessor DetectorResponseProcessor,
	perfGit perfgit.Git,
	shortcutStore shortcut.Store,
	dfBuilder dataframe.DataFrameBuilder,
	ps paramtools.ReadOnlyParamSet,
	expandBaseRequest BaseAlertHandling,
	iteration Iteration,
	anomalyConfig config.AnomalyConfig,
) error {
	ctx, span := trace.StartSpan(ctx, "ProcessRegressions")
	defer span.End()

	allRequests := allRequestsFromBaseRequest(req, ps, expandBaseRequest)
	span.AddAttributes(trace.Int64Attribute("num_requests", int64(len(allRequests))))
	sklog.Infof("Single request expanded into %d requests.", len(allRequests))

	metrics2.GetCounter("perf_regression_detection_requests").Inc(1)

	timeoutContext, cancel := context.WithTimeout(ctx, 10*time.Minute)
	defer cancel()

	for index, req := range allRequests {
		req.Progress.Message("Requests", fmt.Sprintf("Processing request %d/%d", index, len(allRequests)))
		req.Progress.Message("Stage", "Loading data to analyze")
		// Create a single large dataframe then chop it into 2*radius+1 length sub-dataframes in the iterator.
		sklog.Infof("Building DataFrameIterator for %q", req.Query())
		req.Progress.Message("Query", req.Query())
		iterErrorCallback := func(msg string) {
			req.Progress.Message("Iteration", msg)
		}

		iter, err := dfiter.NewDataFrameIterator(timeoutContext, req.Progress, dfBuilder, perfGit, iterErrorCallback, req.Query(), req.Domain, req.Alert, anomalyConfig)
		if err != nil {
			if iteration == ContinueOnError {
				// Don't log if we just didn't get enough data.
				if err != dfiter.ErrInsufficientData {
					sklog.Warning(err)
				}
				continue
			}
			return err
		}
		req.Progress.Message("Info", "Data loaded


 0, 0, 20, 24, 0, 0,
        4, 8, 0, 0, 20, 24, 0, 0,
      }));
  // clang-format on
}

TEST_P(QuantizedDepthwiseConvolutionOpTest,
       MultithreadOnRowValidPaddingStrideTest) {
  const int input_batch = 1;
  const int input_width = 5;
  const int input_height = 5;
  const int input_depth = 8;
  const int filter_batch = 1;
  const int filter_size = 3;
  const int filter_depth = 8;

  QuantizedDepthwiseConvolutionOpModel m(
      GetRegistration(),
      {TensorType_UINT8,
       {input_batch, input_height, input_width, input_depth},
       0,
       128},
      {TensorType_UINT8,
       {filter_batch, filter_size, filter_size, filter_depth},
       0,
       128},
      {TensorType_UINT8, {}, 0, 255}, Padding_VALID,
      /* dilation_factor = */ 1,
      /* stride_width = */ 2,
      /* stride_height = */ 2);

  // clang-format off
  m.SetInput({
    // array of 8 x 24 + 8 => [1, 5, 5, 8]
      1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,
      1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,
      1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,
      1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,
      1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,
      1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,
      1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,
      1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,
      1, 1, 0, 0, 1, 1, 0, 0
  });

  m.SetFilter({
      // array of 9 x 8 => [1, 3, 3, 8]
      1, 2, 3, 4, 5, 6, 7, 8,
      1, 2, 3, 4, 5, 6, 7, 8,
      1, 2, 3, 4, 5, 6, 7, 8,
      1, 2, 3, 4, 5, 6, 7, 8,
      1, 2, 3, 4, 5, 6, 7, 8,
      1, 2, 3, 4, 5, 6, 7, 8,
      1, 2, 3, 4, 5, 6, 7, 8,
      1, 2, 3, 4, 5, 6, 7, 8,
      1, 2, 3, 4, 5, 6, 7, 8
  });
  // clang-format on

  // No bias for this test.
  m.SetBias({0, 0, 0, 0, 0, 0, 0, 0});
  m.SetNumThreads(4);
  m.Invoke();

  // clang-format off
  EXPECT_THAT(
      m.GetDequantizedOutput(),
      Element


",
	"mp005_p_dirtpile_big03_buried",
	"mp005_p_dirtpile_big03_unburied",
	"mp005_p_dirtpile_cum_buried",
	"mp005_p_dirtpile_cum_unburied",
	"mp005_p_dirtpile_gen_buried",
	"mp005_p_dirtpile_gri_mines_buried",
	"mp005_p_dirtpile_gri_mines_unburied",
	"mp005_p_dirtpile_hea_buried",
	"mp005_p_dirtpile_hea_unburied",
	"mp005_p_dirtpile_hen_b_buried",
	"mp005_p_dirtpile_hen_buried",
	"mp005_p_dirtpile_hen_unburied",
	"mp005_p_dirtpile_rio_buried",
	"mp005_p_dirtpile_rio_unburied",
	"mp005_p_dirtpile_roa_buried",
	"mp005_p_dirtpile_roa_unburied",
	"mp005_p_dirtpile_sca01_buried",
	"mp005_p_dirtpile_sca01_unburied",
	"mp005_p_dirtpile_sca02_buried",
	"mp005_p_dirtpile_sca02_unburied",
	"mp005_p_dirtpile_sca03_buried",
	"mp005_p_dirtpile_shovel01x",
	"mp005_p_dirtpile_tall_buried",
	"mp005_p_dirtpile_tall_unburied",
	"mp005_p_dooraberdeen03x",
	"mp005_p_dressinglbmhay01x",
	"mp005_p_dressinglbmhay02x",
	"mp005_p_dressinglbmhay03x",
	"mp005_p_dressinglbmhay04x",
	"mp005_p_fortmercerbarricade01x",
	"mp005_p_horselantern01",
	"mp005_p_huntingwagontarp01",
	"mp005_p_mp_banjo01x",
	"mp005_p_mp_bondsfolder01x",
	"mp005_p_mp_bottlebrandy01x",
	"mp005_p_mp_bountyboard01x",
	"mp005_p_mp_bountyboard02x",
	"mp005_p_mp_bountylicense01x",
	"mp005_p_mp_bountyposter01x",
	"mp005_p_mp_bountyposter02x",
	"mp005_p_mp_bountyposter03x",
	"mp005_p_mp_candlegroup03x",
	"mp005_p_mp_candlegroup05x",
	"mp005_p_mp_collectorbox01x",
	"mp005_p_mp_collectorsign01x",
	"mp005_p_mp_collectorsign02x",
	"mp005_p_mp_cover_h_ado",
	"mp005_p_mp_cover_h_bw",
	"mp005_p_mp_cover_h_ch",
	"mp005_p_mp_cover_h_col",
	"mp005_p_mp_cover_h_cr",
	"mp005_p_mp_cover_h_cwb",
	"mp005_p_mp_cover_h_hdr",
	"mp005_p_mp_cover_h_lag",
	"mp005_p_mp_cover_h_lak",
	"mp005_p_mp_cover_


using UnityEditor.EditorTools;
using UnityEngine;

namespace UnityEditor.Tilemaps
{
    /// <summary>
    /// Tool for doing a box fill with the Tile Palette
    /// </summary>
    //[EditorTool("Box Tool", typeof(GridLayout))]
    public sealed class BoxTool : TilemapEditorTool
    {
        private static class Styles
        {
            public static string tooltipStringFormat = "|Paint a filled box with active brush ({0})";
            public static string shortcutId = "Grid Painting/Rectangle";
            public static GUIContent toolContent = EditorGUIUtility.IconContent("Grid.BoxTool", GetTooltipText(tooltipStringFormat, shortcu


//doi.org/10.1016/j.ejmech.2012.06.043},
year = {2012},
month = nov,
publisher = {Elsevier BV},
volume = {57},
pages = {441--448},
author = {Li Di and Christopher Keefer and Dennis O. Scott and Timothy J. Strelevitz
and George Chang and Yi-An Bi and Yurong Lai and Jonathon Duckworth and
Katherine Fenner and Matthew D. Troutman and R. Scott Obach},
title = {Mechanistic insights from comparing intrinsic clearance values between
human liver microsomes and hepatocytes to guide drug design},
journal = {European Journal of Medicinal Chemistry}""",
        ],
    }

    def str_presenter(dumper, data):
        """configures yaml for dumping multiline strings
        Ref: https://stackoverflow.com/questions/8640959/how-can-i-control-what-scalar-form-pyyaml-uses-for-my-data
        """
        if data.count("\n") > 0:  # check for multiline string
            return dumper.represent_scalar("tag:yaml.org,2002:str", data, style="|")
        return dumper.represent_scalar("tag:yaml.org,2002:str", data)

    yaml.add_representer(str, str_presenter)
    yaml.representer.SafeRepresenter.add_representer(
        str, str_presenter
    )  # to use with safe_dum
    fn_meta = "meta.yaml"
    with open(fn_meta, "w") as f:
        yaml.dump(meta, f, sort_keys=False)

    print(f"Finished processing {meta['name']} dataset!")

if __name__ == "__main__":
    get_and_transform_data()


* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

 * See the License for the specific language governing permissions and

 * limitations under the License.
 *

 * Initial code contributed and copyrighted by

 * frentix GmbH, https://www.frentix.com
 *

 */
package org.olat.modules.sharepoint.model;

import java.io.InputStream;
import java.io.OutputStream;

import org.olat.core.util.vfs.VFSContainer;
import org.olat.core.util.vfs.VFSExternalLeaf;
import org.olat.core.util.vfs.VFSExternalMetadata;
import org.olat.core.util.vfs.VFSItem;
import org.olat.core.util.vfs.VFSStatus;
import org.olat.core.util.vfs.VFSSuccess;
import org.olat.core.util.vfs.callbacks.VFSSecurityCallback;
import org.olat.modules.sharepoint.SharePointHelper;
import org.olat.modules.sharepoint.manager.SharePointDAO;

import com.azure.core.credential.TokenCredential;

/**
 *
 * Initial date: 7 déc. 2023

 * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
 *
 */
public class DriveItemLeaf implements VFSExternalLeaf {

	private final MicrosoftDrive drive;
	private final MicrosoftDriveItem driveItem;
	private final DriveItemMetadata metadata;
	private final SharePointDAO sharePointDao;
	private final VFSContainer parentContainer;
	private final TokenCredential tokenProvider;

	public DriveItemLeaf(VFSContainer parentContainer,
			MicrosoftDrive drive, MicrosoftDriveItem driveItem, DriveItemMetadata metadata,
			SharePointDAO sharePointDao, TokenCredential tokenProvider) {
		this.drive = drive;
		this.driveItem = driveItem;
		this.metadata = metadata;
		if(metadata != null) {
			metadata.setItem(this);
		}
		this.parentContainer = parentContainer;
		this.sharePointDao = sharePointDao;
		this.tokenProvider = tokenProvider;
	}

	@Override
	public VFSItem resolve(String path) {
		return this;
	}

	@Override
	public VFSSuccess restore(VFSContainer targetContainer) {
		return VFSSuccess.ERROR_FAILED;
	}

	@Override
	public VFSContainer getParentContainer() {
		return parentContainer;
	}

	@Override
	public void setParentContainer(VFSContainer parentContainer) {
		//
	}

	@Override
	public String getRelPath() {
		return driveItem.name();
	}

	@Override
	public VFSSuccess rename(String newname) {
		return VFSSuccess.ERROR_FAILED;
	}

	@Override
	public VFSSuccess delete() {
		return VFSSuccess.ERROR_FAILED;
	}

	@Override
	public VFSSuccess deleteSilently() {
		return VFSSuccess.ERROR_FAILED;
	}

	@Override
	public boolean exists() {
		return true;
	}

	@Override
	public boolean isHidden() {
		return false;
	}

	@Override
	public VFSStatus canRename() {
		return VFSStatus.NO;
	}

	@Override
	public VFSStatus canDelete() {
		return VFSStatus.NO;
	}

	@Override
	public String getName() {
		return driveItem.name();
	}

	@Override
	public long getLastModified() {
		long lastModified = -1;
		if(driveItem.driveItem().getLastModifiedDateTime() != null) {
			lastModified = SharePointHelper.toDateInMilliSeconds(driveItem.driveItem().getLastModifiedDateTime());
		}
		return lastModified;
	}

	@Override
	public VFSStatus canCopy() {
		return VFSStatus.YES;
	}

	@Override
	public VFSStatus canWrite() {
		return VFSStatus.NO;
	}


ew DefaultSerializationProviderAttribute
        /// </summary>
        public DefaultSerializationProviderAttribute(Type providerType)
        {
            ArgumentNullException.ThrowIfNull(providerType);

            ProviderTypeName = providerType.AssemblyQualifiedName!;
        }

        /// <summary>
        /// Creates a new DefaultSerializationProviderAttribute
        /// </summary>
        public DefaultSerializationProviderAttribute(string providerTypeName)
        {
            ArgumentNullException.ThrowIfNull(providerTypeName);

            ProviderTypeName = providerTypeName;
        }

        /// <summary>
        /// Returns the type name for the default serialization provider.
        /// </summary>
        public string ProviderTypeName { get; }
    }
}


  USA
//

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Autodesk.Revit.DB.IFC;
using Revit.IFC.Export.Utility;
using Revit.IFC.Common.Enums;

namespace Revit.IFC.Export.Exporter
{
   public class GroupInfo
   {
      /// <summary>
      /// The Group handle.
      /// </summary>
      public IFCAnyHandle GroupHandle { get; set; } = null;

      /// <summary>
      /// The associated element handles.
      /// </summary>
      public HashSet<IFCAnyHandle> ElementHandles { get; set; } = new HashSet<IFCAnyHandle>();

      /// <summary>
      /// Group's export type.
      /// </summary>
      public IFCExportInfoPair GroupType { get; set; } = new IFCExportInfoPair(IFCEntityType.UnKnown);

      /// <summary>
      /// Flag that indicate that the group should be exported.
      /// </summary>
      public bool ExportFlag { get; set; } = false;
   }
}


created_at"`
}

func (Application) TableName() string {
    return "application_info"
}package driver

import (
	//"bytes"
	"context"
	"encoding/base64"
	//"errors"
	"fmt"
	//"image"
	"log/slog"
	"os"
	//"os/exec"
	"path/filepath"
	"strings"
	//"sync"
	"time"
	"github.com/PuerkitoBio/goquery"

	//"github.com/chromedp/cdproto/cdp"
	"github.com/chromedp/cdproto/network"
	"github.com/chromedp/cdproto/page"
	//"github.com/chromedp/cdproto/runtime"
	//"github.com/chromedp/cdproto/storage"
	"github.com/chromedp/chromedp"
	//"github.com/corona10/goimagehash"
	"github.com/helviojunior/sprayshark/internal/tools"
	"github.com/helviojunior/sprayshark/pkg/models"
	"github.com/helviojunior/sprayshark/pkg/runner"
)

// Chromedp is a driver that probes web targets using chromedp
// Implementation ref: https://github.com/chromedp/examples/blob/master/multi/main.go
type Chromedp struct {
	// options for the Runner to consider
	options runner.Options
	// logger
	log *slog.Logger
}

// browserInstance is an instance used by one run of Witness
type browserInstance struct {
	allocCtx    context.Context
	allocCancel context.CancelFunc
	userData    string
}

// Close closes the allocator, and cleans up the user dir.
func (b *browserInstance) Close() {
	b.allocCancel()
	<-b.allocCtx.Done()

	// cleanup the user data directory
	os.RemoveAll(b.userData)
}

// SliceContainsInt ... returns true/false
func SliceContainsInt(slice []int, num int) bool {
    for _, v := range slice {
        if v == num {
            return true
        }
    }
    return false
}

// getChromedpAllocator is a helper function to get a chrome allocation context.
//
// see Witness for more information on why we're explicitly not using tabs
// (to do that we would alloc in the NewChromedp function and make sure that
// we have the browser started with chromedp.Run(browserCtx)).
func getChromedpAllocator(opts runner.Options) (*browserInstance, error) {
	var (
		allocCtx    context.Context
		allocCancel context.CancelFunc
		userData    string
		err         error
	)

	if opts.Chrome.WSS == "" {
		userData, err = os.MkdirTemp("", "sprayshark-v3-chromedp-*")
		if err != nil {
			return nil, err
		}

		// set up chrome context and launch options
		allocOpts := append(chromedp.DefaultExecAllocatorOptions[:],
			chromedp.IgnoreCertErrors,
			chromedp.UserAgent(opts.Chrome.UserAgent),
			//chromedp.Flag("disable-features", "MediaRouter"),
			chromedp.Flag("mute-audio", true),
			//chromedp.Flag("disable-background-timer-throttling", true),
			//chromedp.Flag("disable-backgrounding-occluded-windows", true),
			//chromedp.Flag("disable-renderer-backgrounding", true),
			chromedp.Flag("deny-permission-prompts", true),
			//chromedp.Flag("explicitly-allowed-ports", restrictedPorts()),
			chromedp.Flag("incognito", true),
			chromedp.Flag("lang", "en-US"),
			//chromedp.Flag("no-sandbox", true),
			chromedp.Flag("disable-dev-shm-usage", true),
			chro


*
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 *  * Redistributions of source code must retain the above copyright notice,
 *    this list of conditions and the following disclaimer.
 *
 *  * Redistributions in binary form must reproduce the above copyright notice,
 *    this list of conditions and the following disclaimer in the documentation
 *    and/or other materials provided with the distribution.
 *
 *  * Neither the name of the copyright holder nor the names of the contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

package avail.utility

import java.io.DataInputStream
import java.io.DataOutputStream

////////////////////////////////////////////////////////////////////////////////
//                        Nonnegative integer coding.                         //
////////////////////////////////////////////////////////////////////////////////

/**
 * Apply a variable-length universal coding strategy to the supplied value,
 * encoding it onto the receiver using MIDI VLQ. The value must be non-negative.
 *
 * @author Todd L Smith <todd@availlang.org>
 * @param value
 *   The value to encode.
 * @see
 *   Variable-length quantity
 */
internal fun DataOutputStream.vlq(value: Int)
{
	assert (value >= 0)
	var residue = value
	while (residue >= 128)
	{
		val b = (residue and 0x7F) or 0x80
		write(b)
		residue = residue ushr 7
	}
	write(residue)
}

/**
 * Apply a variable-length universal coding strategy to the supplied value,
 * encoding it onto the receiver using MIDI VLQ. The value must be non-negative.
 *
 * @author Todd L Smith <todd@availlang.org>
 * @param value
 *   The value to encode.
 * @see
 *   Variable-length quantity
 */
internal fun DataOutputStream.vlq(value: Long)
{
	assert (value >= 0)
	var residue = value
	while (residue >= 128)
	{
		val b = (residue and 0x7F) or 0x80
		write(b.toInt())
		residue = residue ushr 7
	}
	write(residue.toInt())
}

/**
 * Unapply the variable-length universal coding strategy applied by
 * [`vlq`][DataOutputStream.vlq] to decode a nonnegative integer from the
 * receiver. If the stored encoding does not denote a valid value, the result is
 * undefined, and the number of bytes consumed is also undefined.
 *
 * @author Todd L Smith <todd@availlang.org>
 * @r


  ["path", { d: "M12 10v6", key: "1bos4e" }],
  ["path", { d: "M9 13h6", key: "1uhe8q" }]
];
var AlarmClockPlus = createLucideIcon("alarm-clock-plus", __iconNode11);

// node_modules/lucide-react/dist/esm/icons/alarm-clock.js
var __iconNode12 = [
  ["circle", { cx: "12", cy: "13", r: "8", key: "3y4lt7" }],
  ["path", { d: "M12 9v4l2 2", key: "1c63tq" }],
  ["path", { d: "M5 3 2 6", key: "18tl5t" }],
  ["path", { d: "m22 6-3-3", key: "1opdir" }],
  ["path", { d: "M6.38 18.7 4 21", key: "17xu3x" }],
  ["path", { d: "M17.64 18.67 20 21", key: "kv2oe2" }]
];
var AlarmClock = createLucideIcon("alarm-clock", __iconNode12);

// node_modules/lucide-react/dist/esm/icons/alarm-smoke.js
var __iconNode13 = [
  ["path", { d: "M11 21c0-2.5 2-2.5 2-5", key: "1sicvv" }],
  ["path", { d: "M16 21c0-2.5 2-2.5 2-5", key: "1o3eny" }],
  ["path", { d: "m19 8-.8 3a1.25 1.25 0 0 1-1.2 1H7a1.25 1.25 0 0 1-1.2-1L5 8", key: "1bvca4" }],
  [
    "path",
    { d: "M21 3a1 1 0 0 1 1 1v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a1 1 0 0 1 1-1z", key: "x3qr1j" }
  ],
  ["path", { d: "M6 21c0-2.5 2-2.5 2-5", key: "i3w1gp" }]
];
var AlarmSmoke = createLucideIcon("alarm-smoke", __iconNode13);

// node_modules/lucide-react/dist/esm/icons/album.js
var __iconNode14 = [
  ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", key: "1m3agn" }],
  ["polyline", { points: "11 3 11 11 14 8 17 11 17 3", key: "1wcwz3" }]
];
var Album = createLucideIcon("album", __iconNode14);

// node_modules/lucide-react/dist/esm/icons/align-center-horizontal.js
var __iconNode15 = [
  ["path", { d: "M2 12h20", key: "9i4pu4" }],
  ["path", { d: "M10 16v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4", key: "11f1s0" }],
  ["path", { d: "M10 8V4a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v4", key: "t14dx9" }],
  ["path", { d: "M20 16v1a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-1", key: "1w07xs" }],
  ["path", { d: "M14 8V7c0-1.1.9-2 2-2h2a2 2 0 0 1 2 2v1", key: "1apec2" }]
];
var AlignCenterHorizontal = createLucideIcon("align-center-horizontal", __iconNode15);

// node_module


4.238095L147.061904,64.285714L147.157142,64.333333L147.204761,64.380952L147.25238,64.47619L147.25238,64.571428L147.204761,64.666666L147.157142,64.714285L147.061904,64.761904L146.871428,64.809523L146.633333,64.809523L146.442857,64.761904L146.347619,64.714285L146.3,64.666666L146.25238,64.571428"}, {"type": "segment", "start": [144.1125, 69.288861], "end": [145.1125, 69.288861], "width": 0.1}, {"type": "segment", "start": [144.6125, 69.788861], "end": [144.6125, 68.788861], "width": 0.1}, {"type": "circle", "start": [146.8, 65.5], "radius": 5.0, "width": 0.1}, {"thickness": 0.15, "svgpath": "M162.35238,101.369047L162.35238,101.940476M162.35238,101.654761L161.35238,101.654761L161.495238,101.75L161.590476,101.845238L161.638095,101.940476M161.35238,100.75L161.35238,100.654761L161.4,100.559523L161.447619,100.511904L161.542857,100.464285L161.733333,100.416666L161.971428,100.416666L162.161904,100.464285L162.257142,100.511904L162.304761,100.559523L162.35238,100.654761L162.35238,100.75L162.304761,100.845238L162.257142,100.892857L162.161904,100.940476L161.971428,100.988095L161.733333,100.988095L161.542857,100.940476L161.447619,100.892857L161.4,100.845238L161.35238,100.75M161.35238,99.797619L161.35238,99.70238L161.4,99.607142L161.447619,99.559523L161.542857,99.511904L161.733333,99.464285L161.971428,99.464285L162.161904,99.511904L162.257142,99.559523L162.304761,99.607142L162.35238,99.70238L162.35238,99.797619L162.304761,99.892857L162.257142,99.940476L162.161904,99.988095L161.971428,100.035714L161.733333,100.035714L161.542857,99.988095L161.447619,99.940476L161.4,99.892857L161.35238,99.797619M161.685714,99.035714L162.35238,99.035714M161.780952,99.035714L161.733333,98.988095L161.685714,98.892857L161.685714,98.75L161.733333,98.654761L161.828571,98.607142L162.35238,98.607142", "val": 1}, {"thickness": 0.15, "svgpath": "M165.007142,100.416666L165.054761,100.464285L165.10238,100.607142L165.10238,100.


 Tk_GetPixels.

        """
        if cnf is None and not kw:
            return self._getconfigure(self._w, 'paneconfigure', tagOrId)
        if type(cnf) == StringType and not kw:
            return self._getconfigure1(
                self._w, 'paneconfigure', tagOrId, '-'+cnf)
        self.tk.call((self._w, 'paneconfigure', tagOrId) +
                 self._options(cnf, kw))
    paneconfig = paneconfigure

    def panes(self):
        """Returns an ordered list of the child panes."""
        return self.tk.splitlist(self.tk.call(self._w, 'panes'))

######################################################################
# Extensions:

class Studbutton(Button):
    def __init__(self, master=None, cnf={}, **kw):
        Widget.__init__(self, master, 'studbutton', cnf, kw)
        self.bind('<Any-Enter>',       self.tkButtonEnter)
        self.bind('<Any-Leave>',       self.tkButtonLeave)
        self.bind('<1>',               self.tkButtonDown)
        self.bind('<ButtonRelease-1>', self.tkButtonUp)

class Tributton(Button):
    def __init__(self, master=None, cnf={}, **kw):
        Widget.__init__(self, master, 'tributton', cnf, kw)
        self.bind('<Any-Enter>',       self.tkButtonEnter)
        self.bind('<Any-Leave>',       self.tkButtonLeave)
        self.bind('<1>',               self.tkButtonDown)
        self.bind('<ButtonRelease-1>', self.tkButtonUp)
        self['fg']               = self['bg']
        self['activebackground'] = self['bg']

######################################################################
# Test:

def _test():
    root = Tk()
    text = "This is Tcl/Tk version %s" % TclVersion
    if TclVersion >= 8.1:
        try:
            text = text + unicode("\nThis should be a cedilla: \347",
                                  "iso-8859-1")
        except NameError:
            pass # no unicode support
    label = Label(root, text=text)
    label.pack()
    test = Button(root, text="Click me!",
              command=lambda root=root: root.test.configure(
                  text="[%s]" % root.test['text']))
    test.pack()
    root.test = test
    quit = Button(root, text="QUIT", command=root.destroy)
    quit.pack()
    # The following three commands are needed so the window pops
    # up on top on Windows...
    root.iconify()
    root.update()
    root.deiconify()
    root.mainloop()

if __name__ == '__main__':
    _test()


.1.m1.1.1"><times id="S4.SS1.SSS0.Px3.38.38.38.1.m1.1.1.1.cmml" xref="S4.SS1.SSS0.Px3.38.38.38.1.m1.1.1.1"></times><cn id="S4.SS1.SSS0.Px3.38.38.38.1.m1.1.1.2.cmml" type="integer" xref="S4.SS1.SSS0.Px3.38.38.38.1.m1.1.1.2">675</cn><ci id="S4.SS1.SSS0.Px3.38.38.38.1.m1.1.1.3a.cmml" xref="S4.SS1.SSS0.Px3.38.38.38.1.m1.1.1.3"><mtext id="S4.SS1.SSS0.Px3.38.38.38.1.m1.1.1.3.cmml" mathsize="80%" xref="S4.SS1.SSS0.Px3.38.38.38.1.m1.1.1.3">M</mtext></ci></apply></annotation-xml><annotation encoding="application/x-tex" id="S4.SS1.SSS0.Px3.38.38.38.1.m1.1c">675\text{M}</annotation><annotation encoding="application/x-llamapun" id="S4.SS1.SSS0.Px3.38.38.38.1.m1.1d">675 M</annotation></semantics></math>
<math alttext="400\text{K}" class="ltx_Math" display="inline" id="S4.SS1.SSS0.Px3.39.39.39.2.m1.1"><semantics id="S4.SS1.SSS0.Px3.39.39.39.2.m1.1a"><mrow id="S4.SS1.SSS0.Px3.39.39.39.2.m1.1.1" xref="S4.SS1.SSS0.Px3.39.39.39.2.m1.1.1.cmml"><mn id="S4.SS1.SSS0.Px3.39.39.39.2.m1.1.1.2" mathsize="80%" xref="S4.SS1.SSS0.Px3.39.39.39.2.m1.1.1.2.cmml">400</mn><mo id="S4.SS1.SSS0.Px3.39.39.39.2.m1.1.1.1" xref="S4.SS1.SSS0.Px3.39.39.39.2.m1.1.1.1.cmml"></mo><mtext id="S4.SS1.SSS0.Px3.39.39.39.2.m1.1.1.3" mathsize="80%" xref="S4.SS1.SSS0.Px3.39.39.39.2.m1.1.1.3a.cmml">K</mtext></mrow><annotation-xml encoding="MathML-Content" id="S4.SS1.SSS0.Px3.39.39.39.2.m1.1b"><apply id="S4.SS1.SSS0.Px3.39.39.39.2.m1.1.1.cmml" xref="S4.SS1.SSS0.Px3.39.39.39.2.m1.1.1"><times id="S4.SS1.SSS0.Px3.39.39.39.2.m1.1.1.1.cmml" xref="S4.SS1.SSS0.Px3.39.39.39.2.m1.1.1.1"></times><cn id="S4.


2]=9.999999682655225E-21;b[(Db+140|0)>>2]=9.999999682655225E-21;b[(Db+144|0)>>2]=9.999999682655225E-21;b[(Db+148|0)>>2]=9.999999682655225E-21;b[(Db+152|
0)>>2]=9.999999682655225E-21;b[(Db+156|0)>>2]=9.999999682655225E-21;b[(Db+160|0)>>2]=9.999999682655225E-21;b[(Db+188|0)>>2]=9.999999682655225E-21;b[(Db+192|0)>>2]=9.999999682655225E-21;b[(Db+196|0)>>2]=9.999999682655225E-21;b[(Db+200|0)>>2]=9.999999682655225E-21;b[(Db+204|0)>>2]=9.999999682655225E-21;b[(Db+208|0)>>2]=9.999999682655225E-21;Ob=30;break;case 30:var wl=zg(xi,-1),Hk=b[eh>>2],Ob=0<Hk?31:32;break;case 31:var Ik=wl-Hk,Ob=33;break;case 32:Ik=wl-100;Ob=33;break;case 33:var pl=Math.pow(10,0.10000000149011612*
(Ik+b[uf>>2])),xl=Math.log(pl)/Math.LN10*10;b[(a[Li>>2]+20|0)>>2]=xl;b[3602]=0;var $i=1,Ob=34;break;case 34:var rl=Math.pow($i|0,1.3333333333333333);b[(14408+($i<<2)|0)>>2]=rl;var yl=$i+1|0;8208>(yl|0)?($i=yl,Ob=34):Ob=35;break;case 35:b[26816]=0;var Yj=1,zl=b[3602],Ob=36;break;case 36:var jm=(Yj|0)-0.5,Al=b[(14408+(Yj<<2)|0)>>2],lm=Math.pow(0.5*(zl+Al),0.75);b[(107264+(Yj<<2)|0)>>2]=jm-lm;var al=Yj+1|0;if(8208>(al|0))Yj=al,zl=Al,Ob=36;else var Jk=0,Ob=37;break;case 37:var nm=Math.pow(2,-0.1875*(Jk-
210|0));b[(83560+(Jk<<2)|0)>>2]=nm;var Bl=Jk+1|0;if(257>(Bl|0))Jk=Bl,Ob=37;else var Zj=0,Ob=38;break;case 38:var Cl=Math.pow(2,0.25*(Zj-326|0));b[(47240+(Zj<<2)|0)>>2]=Cl;var aj=Zj+1|0;374>(aj|0)?(Zj=aj,Ob=38):Ob=39;break;case 39:b:for(var Bi=Ab,Of=0,Of=1;;)switch(Of){case 1:a[(Bi+85816|0)>>2]=50;var wb=2,Of=2;break;case 2:var Kk=0,Of=3;break;case 3:var ak=Kk+1|0;(a[(Bi+21360+(ak<<2)|0)>>2]|0)<(wb|0)?(Kk=ak,Of=3):Of=4;break;case 4:var we=a[(11448+(ak<<3)|0)>>2],vj=w


           "coherent": coherent,
                }
                save_dir = f"results/{args.model}/{args.benchmark}/{trial_index}/{index_to_category[i]}"
                os.makedirs(save_dir, exist_ok=True)
                with open(os.path.join(save_dir, f"{concept.replace('/','_').split(' ')[0]}_{index}_{i}.json"), "w") as f:
                    json.dump(log_dict, f)
    # Potemkin rate is normalized incoherence so 1 is random and 0 is perfect.
    potemkin_rate = 2 * (1 - np.mean(overall_coherence))
    score_per_concept.append(potemkin_rate)
    score_per_concept_std_err = np.std(score_per_concept) / np.sqrt(len(score_per_concept))
    # Log results to bar
    bar.set_description(f"Model: {args.model} "
                        f"Potemkin rate (lower bound): {np.mean(score_per_concept):.2f} ({score_per_concept_std_err:.2f}). ")

print(f"Potemkin rate (lower bound): {np.mean(score_per_concept):.2f} ({score_per_concept_std_err:.2f}).")


// H(dt) = A^-1 [ F(dt) - I ] B
        let mat_i = DMatrix::from_diagonal_element(mat_a.0.nrows(), mat_a.0.nrows(), N::one());
        mat_h = DiscreteInputMatrix( inverse_mat_a * ( &mat_f.0 - &mat_i ) * &mat_b.0 );
    } else {
        // A is singular
        // H(dt) = SUM_v=1...infinite ( A^(v-1) * dt^v / v! )
        mat_h = calc_mat_h(mat_a, mat_b, dt, eps);
    }

    DiscreteSystemEqMatrices {
        mat_f : mat_f,
        mat_h : mat_h,
    }
}

/// Expects a to be square
fn mat_a_to_mat_f<N : Real>(mat_a : &ContinuousSystemMatrix<N>, dt : N, eps: N) -> DiscreteSystemMatrix<N> {
    let adt = &mat_a.0 * dt;
    // tmp will be (A*dt), then (A*dt)^2, then (A*dt)^3 and so on
    let mut tmp = adt.clone();

    // i = 0
    let mut factorial : N = N::one();
    let mut mat_f = DMatrix::from_diagonal_element(mat_a.0.nrows(), mat_a.0.nrows(), N::one());

    // i = 1
    let mut factorial_cnt : N = N::one();
    mat_f += &tmp;

    for i in 2..20 {
        tmp *= &adt;

        factorial_cnt += N::one();
        factorial *= factorial_cnt;

        let tmp2 = &tmp / factorial;
        mat_f += &tmp2;

        let max = tmp2.iter().fold(N::zero(), |store, item| { store.max(*item) });
        if max <= eps {
            break;
        }
    }

    DiscreteSystemMatrix(mat_f)
}

/// H(dt) = SUM_v=1...infinite ( A^(v-1) * dt^v / v! )
///       =    I * dt / 1!
///         +  (A*dt)   * dt / 2!
///         +  (A*dt)^2 * dt / 3!
///         +  ...
fn calc_mat_h<N : Real>(mat_a : &ContinuousSystemMatrix<N>,
                        mat_b : &ContinuousInputMatrix<N>, dt : N, eps: N) -> DiscreteInputMatrix<N> {

    let adt = &mat_a.0 * dt;
    // tmp will be (I*dt), then dt*(A*dt)^2, then dt*(A*dt)^3 and so on
    let mut tmp = DMatrix::from_diagonal_element(mat_a.0.nrows(), mat_a.0.nrows(), N::one());
    tmp *= dt;

    // v = 1
    let mut factorial : N = N::one();
    let mut factorial_cnt : N = N::one();
    let mut mat_h = tmp.clone(); // I * dt

    for v in 2..20 {
        tmp *= &adt;

        factorial_cnt += N::one();
        factorial *= factorial_cnt;

        let tmp2 = &tmp / factorial;
        mat_h += &tmp2;

        let max = tmp2.iter().fold(N::zero(), |store, item| { store.max(*item) });
        if max <= eps {
            break;
        }
    }

    mat_h *= &mat_b.0;

    DiscreteInputMatrix(mat_h)
}<gh_stars>10-100
use anyhow::*;
use logger::*;
use song_db::SongDb;
use std::ffi::CStr;
use std::ffi::CString;
use std::fs;
use std::fs::File;
use std::os::raw::{c_char, c_void};
use std::path::{Path, PathBuf};
use std::time::Instant;

mod audio;
mod core_config;
mod playback_settings;
mod playlist;
mod plugin_handler;

pub mod ffi;
mod service;
pub mod service_ffi;

use audio::HippoAudio;
use core_config::CoreConfig;
use ffi::HSSetting;
use messages::*;
use playback_settings::PlaybackSettings;
use playlist::Playlist;
use plugin_handler::Plugins;
use service_ffi::{PluginService, ServiceApi};
use s


++] = (0x80 + Random.nextInt() % (0xBF - 0x80 + 1)).toByte()
          data[i++] = (0x80 + Random.nextInt() % (0xBF - 0x80 + 1)).toByte()
        }
        w <= 0xF3 -> {
          data[i++] = (0xF1 + Random.nextInt() % (0xF3 - 0xF1 + 1)).toByte()
          data[i++] = (0x80 + Random.nextInt() % (0xBF - 0x80 + 1)).toByte()
          data[i++] = (0x80 + Random.nextInt() % (0xBF - 0x80 + 1)).toByte()
          data[i++] = (0x80 + Random.nextInt() % (0xBF - 0x80 + 1)).toByte()
        }
        w == 0xF4 -> {
          data[i++] = w.toByte()
          data[i++] = (0x80 + Random.nextInt() % (0x8F - 0x80 + 1)).toByte()
          data[i++] = (0x80 + Random.nextInt() % (0xBF - 0x80 + 1)).toByte()
          data[i++] = (0x80 + Random.nextInt() % (0xBF - 0x80 + 1)).toByte()
        }
      }
    }
    return String(data, 0, i)
  }
}
/*
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under both the MIT license found in the
 * LICENSE-MIT file in the root directory of this source tree and the Apache
 * License, Version 2.0 found in the LICENSE-APACHE file in the root directory
 * of this source tree.
 */

package com.facebook.buck.jvm.java

import com.facebook.buck.core.filesystems.AbsPath
import com.google.common.collect.ImmutableList
import com.google.common.collect.ImmutableSortedSet
import java.net.URL

/**
 * Information for javac plugins (includes annotation processors).
 *
 * Javac Plugins involves a set of plugin properties, their classpath(s), and a few other
 * command-line options for javac. We want to be able to specify all this various information in a
 * BUCK configuration file and use it when we generate the javac command. This facilitates threading
 * the information through buck in a more descriptive package rather than passing all the components
 * separately.
 */
data class JavacPluginParams(
    val pluginProperties: ImmutableList<ResolvedJavacPluginProperties>,
    val parameters: ImmutableSortedSet<String>
) {
  val isEmpty: Boolean
    get() = pluginProperties.isEmpty() && parameters.isEmpty()

  /** Resolves classpath to a list of URL */
  fun toUrlClasspath(relPathRoot: AbsPath): ImmutableList<URL> {
    val builder = ImmutableList.builder<URL>()
    for (plugin in pluginProperties) {
      builder.addAll(plugin.toUrlClasspath(relPathRoot))
    }
    return builder.build()
  }

  companion object {
    @JvmField
    val EMPTY: JavacPluginParams = JavacPluginParams(ImmutableList.of(), ImmutableSortedSet.of())
  }
}
/*
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under both the MIT license found in the
 * LICENSE-MIT file in the root directory of this source tree and the Apache
 * License, Version 2.0 found in the LICENSE-APACHE file in the root directory
 * of this source tree.
 */

package com.facebook.buck.jvm.kotlin.abtesting

interface ExperimentConfig {

  fun getBoolParam(param: String, default: Boolean): Boolean

  fun getIntParam(param: String, default: Int): Int

  fun getStringParam(param: String, default: String): String
}
/*
 * Copyright (c) Meta Platforms, Inc. and affiliates.
 *
 * This source code is licensed under both the MIT license found in the
 * LICENSE-MIT file in the root directory of this source tree and


 isCompletionSuggestionKind,
      'relevance': isInt,
      'completion': isString,
      'selectionOffset': isInt,
      'selectionLength': isInt,
      'isDeprecated': isBool,
      'isPotential': isBool,
    },
    optionalFields: {
      'displayText': isString,
      'replacementOffset': isInt,
      'replacementLength': isInt,
      'docSummary': isString,
      'docComplete': isString,
      'declaringType': isString,
      'defaultArgumentListString': isString,
      'defaultArgumentListTextRanges': isListOf(isInt),
      'element': isElement,
      'returnType': isString,
      'parameterNames': isListOf(isString),
      'parameterTypes': isListOf(isString),
      'requiredParameterCount': isInt,
      'hasNamedParameters': isBool,
      'parameterName': isString,
      'parameterType': isString,
      'libraryUri': isString,
      'isNotImported': isBool,
    },
  ),
);

/// CompletionSuggestionKind
///
///     enum {
///       ARGUMENT_LIST
///       IMPORT
///       IDENTIFIER
///       INVOCATION
///       KEYWORD
///       NAMED_ARGUMENT
///       OPTIONAL_ARGUMENT
///       OVERRIDE
///       PARAMETER
///       PACKAGE_NAME
///     }
final Matcher isCompletionSuggestionKind =
    MatchesEnum('CompletionSuggestionKind', [
      'ARGUMENT_LIST',
      'IMPORT',
      'IDENTIFIER',
      'INVOCATION',
      'KEYWORD',
      'NAMED_ARGUMENT',
      'OPTIONAL_ARGUMENT',
      'OVERRIDE',
      'PARAMETER',
      'PACKAGE_NAME',
    ]);

/// ContextRoot
///
///     {
///       "root": FilePath
///       "exclude": List<FilePath>
///       "optionsFile": optional FilePath
///     }
final Matcher isContextRoot = LazyMatcher(
  () => MatchesJsonObject(
    'ContextRoot',
    {'root': isFilePath, 'exclude': isListOf(isFilePath)},
    optionalFields: {'optionsFile': isFilePath},
  ),
);

/// DiagnosticMessage
///
///     {
///       "message": String
///       "location": Location
///     }
final Matcher isDiagnosticMessage = LazyMatcher(
  () => MatchesJsonObject('DiagnosticMessage', {
    'message': isString,
    'location': isLocation,
  }),
);

/// Element
///
///     {
///       "kind": ElementKind
///       "name": String
///       "location": optional Location
///       "flags": int
///       "parameters": optional String
///       "returnType": optional String
///       "typeParameters": optional String
///       "aliasedType": optional String
///     }
final Matcher isElement = LazyMatcher(
  () => MatchesJsonObject(
    'Element',
    {'kind': isElementKind, 'name': isString, 'flags': isInt},
    optionalFields: {
      'location': isLocation,
      'parameters': isString,
      'returnType': isString,
      'typeParameters': isString,
      'aliasedType': isString,
    },
  ),
);

/// ElementKind
///
///     enum {
///       CLASS
///       CLASS_TYPE_ALIAS
///       COMPILATION_UNIT
///       CONSTRUCTOR
///       CONSTRUCTOR_INVOCATION
///       ENUM
///       ENUM_CONSTANT
///       EXTENSION
///       EXTENSION_TYPE
///       FIELD
///       FILE
///       FUNCTION
///       FUNCTION_INVOCATION
///       FUNCTION_TYPE_ALIAS
///       GET


Callback::GetNextStream** implementation, the image processing filter should read which properties are needed for its image processing from the item for which the image is being acquired. The filter must not read the properties directly from the *pWiaItem2* passed into [**IWiaImageFilter::InitializeFilter**](nf-wia_lh-iwiaimagefilter-initializefilter.md); rather it must call [**IWiaItem2::FindItemByName**](/windows/win32/wia/-wia-iwiaitem2-finditembyname) on this WIA item to obtain the actual WIA item. The reason is that during a folder transfer the images acquired correspond to the child items of *pWiaItem2* rather than to *pWiaItem2* itself.

This method is not called by the preview component during [**IWiaPreview::UpdatePreview**](/windows/win32/wia/-wia-iwiapreview-updatepreview).

## -see-also

[**IWiaImageFilter::InitializeFilter**](nf-wia_lh-iwiaimagefilter-initializefilter.md)

[**IWiaTransferCallback**](nn-wia_lh-iwiatransfercallback.md)
---
UID: NF:fwpmu.IPsecSaContextAddOutbound0
title: IPsecSaContextAddOutbound0 function (fwpmu.h)
description: The IPsecSaContextAddOutbound0 function adds an outbound IPsec security association (SA) bundle to an existing SA context.Note  IPsecSaContextAddOutbound0 is the specific implementation of IPsecSaContextAddOutbound used in Windows Vista.
helpviewer_keywords: ["IPsecSaContextAddOutbound0","IPsecSaContextAddOutbound0 function [Filtering]","fwp.ipsecsacontextaddoutbound0","fwpmu/IPsecSaContextAddOutbound0"]
old-location: fwp\ipsecsacontextaddoutbound0.htm
tech.root: fwp
ms.assetid: f7aa0b1f-160c-44d4-9dbc-5c692d0a4467
ms.date: 12/05/2018
ms.keywords: IPsecSaContextAddOutbound0, IPsecSaContextAddOutbound0 function [Filtering], fwp.ipsecsacontextaddoutbound0, fwpmu/IPsecSaContextAddOutbound0
req.header: fwpmu.h
req.include-header:
req.target-type: Windows
req.target-min-winverclnt: Windows Vista [desktop apps only]
req.target-min-winversvr: Windows Server 2008 [desktop apps only]
req.kmdf-ver:
req.umdf-ver:
req.ddi-compliance:
req.unicode-ansi:
req.idl:
req.max-support:
req.namespace:
req.assembly:
req.type-library:
req.lib: Fwpuclnt.lib
req.dll: Fwpuclnt.dll
req.irql:
targetos: Windows
req.typenames:
req.redist:
ms.custom: 19H1
f1_keywords:
 - IPsecSaContextAddOutbound0
 - fwpmu/IPsecSaContextAddOutbound0
dev_langs:
 - c++
topic_type:
 - APIRef
 - kbSyntax
api_type:
 - DllExport
api_location:
 - Fwpuclnt.dll
api_name:
 - IPsecSaContextAddOutbound0
---

# IPsecSaContextAddOutbound0 function

## -description

The IPsecSaContextAddOutbound0 function adds an outbound IPsec security association (SA) bundle to an existing SA context.

Note  IPsecSaContextAddOutbound0 is


*    Production release and review comments incorporated.
00028 * -------------------------------------------------------------------- */
00029
00030 #include "arm_math.h"
00031
00126 void arm_dct4_f32(
00127   const arm_dct4_instance_f32 * S,
00128   float32_t * pState,
00129   float32_t * pInlineBuffer)
00130 {
00131   uint32_t i;                                    /* Loop counter */
00132   float32_t *weights = S->pTwiddle;              /* Pointer to the Weights table */
00133   float32_t *cosFact = S->pCosFactor;            /* Pointer to the cos factors table */
00134   float32_t *pS1, *pS2, *pbuff;                  /* Temporary pointers for input buffer and pState buffer */
00135   float32_t in;


-ambox table .mbox-image,.compact-ambox table .mbox-imageright,.compact-ambox table .mbox-empty-cell{display:none}.compact-ambox table.ambox{border:none;border-collapse:collapse;background:transparent;margin:0 0 0 1.6em !important;padding:0 !important;width:auto;display:block}body.mediawiki .compact-ambox table.mbox-small-left{font-size:100%;width:auto;margin:0}.compact-ambox table .mbox-text{padding:0 !important;margin:0 !important}.compact-ambox table .mbox-text-span{display:list-item;line-height:1.5em;list-style-type:square;list-style-image:url(data:image/gif;base64,R0lGODlhBQANAIAAAGOMnP///yH5BAEAAAEALAAAAAAFAA0AAAIJjI+pu+APo4SpADs=)}.compact-ambox .hide-when-compact{display:none}#siteNotice div{margin:0}#mw-dismissable-notice{background:transparent}#wpSummary,#wpSummaryLabel,input#wpSummary,input.mw-summary{margin-top:0;margin-bottom:0}.nonumtoc .tocnumber{display:none}.nonumtoc #toc ul,.nonumtoc .toc ul{line-height:1.5em;list-style:none;margin:.3em 0 0;padding:0}.nonumtoc #toc ul ul,.nonumtoc .toc ul ul{margin:0 0 0 2em}.toclimit-2 .toclevel-2,.toclimit-3 .toclevel-3,.toclimit-4 .toclevel-4,.toclimit-5 .toclevel-5,.toclimit-6 .toclevel-6,.toclimit-7 .toclevel-7{display:none}.copyvio-title{font-family:Microsoft Yahei,微软雅黑,Microsoft Jhenghei,微軟正黑體,Arial Unicode MS,黑体;text-align:center;font-size:150%;font-weight:bold}.copyvio-titlebox{border-bottom:2px solid #003153;color:white;background:#999999;padding:0.5em;height:3em;-moz-border-radius:5px 5px 0 0}.copyvio-box{width:95%;border:3px solid #003153;background:white;margin:.5em auto;font-size:90%;-o-border-radius:8px;-icab-border-radius:8px;-khtml-border-radius:8px;-moz-border-radius:8px;-webkit-border-radius:8px;-o-box-shadow:10px 10px 5px #888;-icab-box-shadow:10px 10px 5px #888;-khtml-box-shadow:10px 10px 5px #888;-moz-box-shadow:10px 10px 5px #888;-webkit-box-shadow:10px 10px 5px #888;box-shadow:10px 10px 5px #888}.dablink > div{padding-left:32px;background:url(//upload.wikimedia.org/wikipedia/commons/thumb/5/5f/Disambig_gray.svg/26px-Disambig_gray.svg.png) no-repeat}div.title-bar-vigar{width:100%;max-width:100%;height:31px;overflow:hidden;background:#96d1fc url(//upload.wikimedia.org/wikipedia/commons/b/ba/Vigar-zh-wikipedia-2010-new-design-short.png) repeat-x}cite{font-style:normal}.template-kai{font-family:楷体,楷体_GB2312,KaiTi,KaiTi_GB2312,华文楷体,STKaiti,'AR PL UKai


   if rate_min < 1.4 || rate_max > 2.0 {
        rand_float(
          &mut current,
          left_float(1.4, 2.0),
          right_float(1.4, 2.0),
          filters.get(work - 2),
          base_price,
          -1,
        );
        rand_float(
          &mut current,
          left_float(1.4, 2.0),
          right_float(1.4, 2.0),
          filters.get(work - 1),
          base_price,
          0,
        );
        rand_float(
          &mut current,
          left_float(1.4, 2.0),
          right_float(1.4, 2.0),
          filters.get(work + 0),
          base_price,
          -1,
        );
      } else {
        rand_float(
          &mut current,
          left_float(1.4, 2.0),
          rate_max.max(1.4),
          filters.get(work - 2),
          base_price,
          -1,
        );
        rand_float(
          &mut current,
          rate_min,
          rate_max,
          filters.get(work - 1),
          base_price,
          0,
        );
        rand_float(
          &mut current,
          left_float(1.4, 2.0),
          rate_max.max(1.4),
          filters.get(work + 0),
          base_price,
          -1,
        );
      }
    } else {
      rand_float(
        &mut current,
        left_float(1.4, 2.0),
        right_float(1.4, 2.0),
        filters.get(work - 2),
        base_price,
        -1,
      );
      rand_float(
        &mut current,
        left_float(1.4, 2.0),
        right_float(1.4, 2.0),
        filters.get(work - 1),
        base_price,
        0,
      );
      rand_float(
        &mut current,
        left_float(1.4, 2.0),
        right_float(1.4, 2.0),
        filters.get(work + 0),
        base_price,
        -1,
      );
    }
    work += 3;

    // decreasing phase after the peak
    // if (work < 14)
    // {
    //   rate = randfloat(0.9, 0.4);
    //   for (; work < 14; work++)
    //   {
    //     sellPrices[work] = intceil(rate * basePrice);
    //     rate -= 0.03;
    //     rate -= randfloat(0, 0.02);
    //   }
    // }
    let mut i = 0;
    for _ in work..14 {
      rand_float_relative(
        &mut current,
        MinMax::<f32>::newf(0.9, 0.4),
        MinMax::new(
          vec![-0.03, -right_float(0.0, 0.02)],
          vec![-0.03, -left_float(0.0, 0.02)],
        ),
        i,
        filters.get(work as usize - 2),
        base_price,
        0,
      );
      i += 1;
      work += 1;
    }

    probabilties.push((current.iter().map(|x| x.to_min_max()).collect(), 3));
    current.clear();
  }
  probabilties
}

pub fn calculate(filters: &Vec<Option<i32>>) -> Vec<(Vec<MinMax<i32>>, i32)> {
  let min_price: i32 = filters[0].unwrap_or(90);
  let max_price: i32 = filters[0


all" src="http://www.freebuf.com/buf/themes/freebuf/images/grey.gif" title="1.jpg"/>

    第四，分析人员。对于这三个重要的防御工具（日志、DPI、连接记录），你要保证有查询历史记录，查询实时记录，以及在未来事件中进行告警的能力。而把这些都运作起来，你需要分析人员和调查人员进行大量的监控和深入的调查工作。这个团队以及他们的监控基础设施必须要有快速的应变能力适应当今的威胁。

    第五，情报共享。在尽可能的完成以上所有的工作，你还需要和其他组织发展起可靠可信的关系，来共享安全事件情报。这是个很长的过程，需要你主动的投入资源和用心经营。一个比较好的开始就是加入像FIRST.org这样的组织。FIRST的宣言是帮助减少这种类型的信息共享过程中的障碍。当所有以上这些“柱子”能够以有意义（meanningful）的方式聚合到一起。一旦你在潜在的共享消息当中获得了情报，必须强调你需要立即快速、敏捷的组织起这些情报。并确保你已经完成，百分之一百的覆盖了上面提到的工具，来进行调查、行动。而这些就是你能够为组织对抗APT所能做最重要的事情。

    最后，你需要在组织内或者雇佣一些外部的专家进行恶意软件分析。例如前面提到的那些PDF样本，一旦你发现了其中的一些恶意样本，你需要对它进行解剖、分析，了解它打算做什么，谁是被攻击的目标，它曾经连接到哪里。这些分析都提供了最有价值的情报，展示了你的公司今天如何被攻击的。你就可以把这些相关的情报，立


--[[admob = Ads.new("admob")
admob:setKey("a151c9c98a8857b")
admob:showAd("banner", "545D828B0002576098659942B35646D7")]]

--[[admob = Ads.new("inmobi")
admob:setKey("014d25c7fa4243179eb620cd501d7c07")
admob:showAd("300x250")]]

--[[admob = Ads.new("tapjoy")
admob:setKey("4cc74714-108f-495f-ac9c-ad7a9ef61af7", "fkMLsN3FSw7F4p1xGiFT")
admob:showAd("640x100")]]

--[[admob = Ads.new("amazon")
admob:setKey("aa78d97b17a9409a870348898a13706d")
admob:showAd("300x50")]]

--admob:setAlignment("center", "bottom")

--[[adcolony = Ads.new("adcolony")
adcolony:setKey("app3eefea4fed0e448e93d1ee", "vza612000e0bdc4bce817e30")]]

--[[admob = Ads.new("leadbolt")
admob:setKey("123119241")
admob:showAd()]]

--[[admob = Ads.new("heyzap")
admob:setKey("123119241")
admob:showAd("banner")]]

--[[stage:addEventListener(Event.MOUSE_DOWN, function()
	--admob:hideAd()
	--admob:showAd("banner", "545D828B0002576098659942B35646D7")
	--adcolony:showAd("video")
	--admob:hideAd()
	--admob:showAd("320x50")
	--adcolony:showAd("v4vc", "vza612000e0bdc4bce817e30", "true")
end)]]
--[[iad = Ads.new("inmobi")
iad:setKey("4d70a8ce12e54f54a1c578c42ebc87db")
iad:showAd("320x50")]]
--iad:showAd("banner", "cfbb21950ba71a1ab926f67a895c9065")
--iad:showAd("video", "vza612000e0bdc4bce817e30")
--[[isAd = false
stage:addEventListener(Event.MOUSE_DOWN, function()
	if isAd then
		iad:hideAd()
		iad:showAd("banner")
	else
		iad:hideAd()
		iad:showAd("iab_banner")
	end
	isAd = not isAd
end)]]

--[[
adwhirl = Ads.new("adwhirl")
adwhirl:setKey("b9c9b13ab8cc42cc85020656376f97a1") --adwhirl
]]

--[[
--Admob events

admob:addEventListener(Event.AD_RECEIVED, function()
	p


color:red;}.amis-scope .cxd-DatePicker-popup.cxd-DatePicker-mobile .rdt{width:100%;}.amis-scope .cxd-DatePicker-popup.cxd-DatePicker-mobile .rdt .rdtPicker{width:100%;padding:unset;}.amis-scope .rdt{user-select:none;font-size:var(--Calendar-fontSize);color:var(--Calendar-color);}.amis-scope .rdt .rdtDays{display:flex;}.amis-scope .rdt .rdtDays .rdtDaysPart{width:16.5rem;border-right:1px solid var(--Calendar-input-borderColor);}.amis-scope .rdt .rdtDays .rdtTimePart{width:8rem;text-align:center;}.amis-scope .rdt .rdtDays .rdtTimePartWithS{width:12rem;text-align:center;}.amis-scope .rdt .rdtDays .rdtShowTime{height:2.6875rem;padding-top:0.6875rem;margin-left:0.125rem;}.amis-scope .rdt .rdtPickerTime{width:100%;height:100%;}.amis-scope .rdt .rdtPickerDate{height:100%;}.amis-scope .rdt .rdtPickerTimeWithoutD{width:100%;}.amis-scope .rdt .rdtPickerTimeWithoutD .TimeContentWrapper{display:flex;}.amis-scope .rdt .rdtPicker{margin-top:0;padding:0;background:transparent;border:none;}.amis-scope .rdt .rdtPicker .dow{font-weight:normal;}.amis-scope .rdt .rdtPicker td.rdtDay,.amis-scope .rdt .rdtPicker td.rdtHour,.amis-scope .rdt .rdtPicker td.rdtMinute,.amis-scope .rdt .rdtPicker td.rdtSecond,.amis-scope .rdt .rdtPicker .rdtTimeToggle{background:var(--Calendar-cell-bg);}.amis-scope .rdt .rdtPicker td.rdtDay:hover span,.amis-scope .rdt .rdtPicker td.rdtHour:hover span,.amis-scope .rdt .rdtPicker td.rdtMinute:hover span,.amis-scope .rdt .rdtPicker td.rdtSecond:hover span,.amis-scope .rdt .rdtPicker .rdtTimeToggle:hover span{color:var(--inputDate-hover-option-color);background:var(--Calendar-cell-onHover-bg);}.amis-scope .rdt .rdtPicker td.rdtToday > span{border:1px solid var(--Calendar-borderColor);}.amis-scope .rdt .rdtPicker td.rdtToday:hover span{background:transparent;}.amis-scope .rdt .rdtPicker td.rdtBetween{background:var(--Calendar-cell-onBetween-bg);}.amis-scope .rdt .rdtPicker td.rdtToday:before{border-bottom-color:var(--Calendar-cell-onActive-bg);}.amis-scope .rdt .rdtPicker td.rdtActive.rdtToday:before{border-bottom-color:var(--Calendar-cell-bg);}.amis-scope .rdt .rdtPicker .rdtDisabled.rdtToday > span,.amis-scope .rdt .rdtPicker .rdtOld.rdtToday > span,.amis-scope .rdt .rdtPicker .rdtNew.rdtToday > span{border-color:#e8e9eb;}.amis-scope .rdt .rdtPicker td.rdtActive > span,.amis-scope .rdt .rdtPicker td.rdtActive:hover > span{color:var(--inputDate-active-option-color);background:var(--Calendar-cell-onActive-bg);}.amis-scope .rdt .rdtPicker .rdtActive.rdtToday{color:#151b26;}.amis-scope .rdt .rdtPicker .rdtActive.rdtToday > span{border-color:#144bcc;}.amis-scope .rdt .rdtPicker td.rdtDisabled:hover > span{background:var(--Calendar-cell-onDisabled-bg);}.amis-scope .rdt thead tr:first-child th{cursor:default;font-weight:normal;border-bottom:none;}.a


walk_right
	walk_right
	walk_right
	walk_right
	step_end

EventScript_HideMrBriney:: @ 81A0424
	setflag FLAG_HIDE_MR_BRINEY_DEWFORD_TOWN
	setflag FLAG_HIDE_MR_BRINEY_BOAT_DEWFORD
	setflag FLAG_HIDE_MR_BRINEY_ROUTE109
	setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE109
	setflag FLAG_HIDE_MR_BRINEY_ROUTE104
	setflag FLAG_HIDE_MR_BRINEY_BOAT_ROUTE104
	setflag FLAG_HIDE_MR_BRINEY_ROUTE104_HOUSE
	setflag FLAG_HIDE_PEEKO_BRINEY_HOUSE
	setvar VAR_BRINEY_LOCATION, 0
	return

RusturfTunnel_EventScript_SetRusturfTunnelOpen:: @ 81A0442
	removeobject 1
	removeobject 10
	clearflag FLAG_HIDE_BOYFRIEND_WANDAS_HOUSE
	clearflag FLAG_HIDE_GIRLFRIEND_WANDAS_HOUSE
	setvar VAR_RUSTURF_TUNNEL_STATE, 6
	setflag FLAG_RUSTURF_TUNNEL_OPENED
	return

EventScript_UnusedBoardFerry:
	delay 30
	applymovement LOCALID_PLAYER, Common_Movement_WalkInPlaceFastestUp
	waitmovement 0
	showobjectat LOCALID_PLAYER, 0
	delay 30
	applymovement LOCALID_PLAYER, Movement_UnusedBoardFerry
	waitmovement 0
	delay 30
	return

Movement_UnusedBoardFerry:
	walk_up
	step_end

Common_EventScript_FerryDepartIsland:: @ 81A047C
	compare VAR_FACING, DIR_SOUTH
	call_if_eq Ferry_EventScript_DepartIslandSouth
	compare VAR_FACING, DIR_WEST
	call_if_eq Ferry_EventScript_DepartIslandWest
	delay 30
	hideobjectat LOCALID_PLAYER, 0
	call Common_EventScript_FerryDepart
	return

	.include "data/scripts/cave_of_origin.inc"
	.include "data/scripts/static_pokemon.inc"

Common_EventScript_NameReceivedPartyMon:: @ 81A0678
	fadescreen FADE_TO_BLACK
	special ChangePokemonNickname
	waitstate
	return

Common_EventScript_PlayerHandedOverTheItem:: @ 81A067F
	bufferitemname 0, VAR_0x8004
	playfanfare MUS_OBTAIN_TMHM
	message FallarborTown_House1_Text_1A1498
	waitmessage
	waitfanfare
	removeitem VAR_0x8004, 1
	return

	.include "data/scripts/elite_four.inc"
	.include "data/scripts/movement.inc"
	.include "data/scripts/check_furniture.inc"
	.include "data/text/sample_message.inc"
	.include "data/text/record_mix.inc"
	.include "data/text/pc.inc"
	.include "data/text/pkmn_center_nurse.inc"
	.include "data/text/mart_clerk.inc"
	.include "data/text/obtain_item.inc"

Text_PokemartSign:: @ 81A0D41
	.string "“Selected items for your convenience!”\n"
	.string "POKéMON MART$"

Text_PokemonCenterSign:: @ 81A0D75
	.string "“Rejuvenate your tired partners!”\n"
	.string "POKéMON CENTER$"

UnknownString_81A0DA6: @ 81A0DA6
	.string "Fufufu...$"

UnknownString_81A0DB0:


 = Type_GetTypeFromHandle_m8BB57524FF7F9DB1803BC561D2B3A4DBACEB385E((RuntimeTypeHandle_tC33965ADA3E041E0C94AF05E5CB527B56482CEF9 )L_180, /*hidden argument*/NULL);
			String_t* L_182 = String_Concat_mFCF5F98D38F99DE7C831CBB9A1BAAAB148FC7D57((RuntimeObject *)_stringLiteralD89F6478390C0E72E54E8EB2729A4BBC7009F43D, (RuntimeObject *)L_181, (RuntimeObject *)_stringLiteral42646B33B50B6AA15E22733C8900716F0FE19E1D, /*hidden argument*/NULL);
			Exception_t * L_183 = (Exception_t *)il2cpp_codegen_object_new(Exception_t_il2cpp_TypeInfo_var);
			Exception__ctor_m8ECDE8ACA7F2E0EF1144BD1200FB5DB2870B5F11(L_183, (String_t*)L_182, /*hidden argument*/NULL);
			IL2CPP_RAISE_MANAGED_EXCEPTION(L_183, AndroidJavaObject__Call_TisSByte_t928712DD662DC29BA4FAAE8CE2230AFB23447F0B_mC7B68E30753F3E6B104053558DA7040398DAE291_RuntimeMethod_var);
		}

IL_0407:
		{
			il2cpp_codegen_initobj((&V_17), sizeof(int8_t));
			int8_t L_184 = V_17;
			V_5 = (int8_t)L_184;
			IL2CPP_LEAVE(0x420, FINALLY_0415);
		}
	} // end try (depth: 1)
	catch(Il2CppExceptionWrapper& e)
	{
		__last_unhandled_exception = (Exception_t *)e.ex;
		goto FINALLY_0415;
	}

FINALLY_0415:
	{ // begin finally (depth: 1)
		ObjectU5BU5D_tC1F4EE0DB0B7300255F5FD4AF64FE4C585CF5ADE* L_185 = ___args1;
		jvalueU5BU5D_t0F8734CC5E629CAA0CBCB817A913EC6B9220EE99* L_186 = V_1;
		AndroidJNIHelper_DeleteJNIArgArray_mF43CDD1F690C9E843FE622B9A5F7B21F7556408A((ObjectU5BU5D_tC1F4EE0DB0B7300255F5FD4AF64FE4C585CF5ADE*)L_185, (jvalueU5BU5D_t0F8734CC5E629CAA0CBCB817A913EC6B9220EE99*)L_186, /*hidden argument*/NULL);
		IL2CPP_END_FINALLY(1045)
	} // end finally (depth: 1)
	IL2CPP_CLEANUP(1045)
	{
		IL2CPP_JUMP_TBL(0x420, IL_0420)
		IL2CPP_RETHROW_IF_UNHANDLED(Exception_t *)
	}

IL_0420:
	{
		int8_t L_187 = V_5;
		return L_187;
	}
}
// ReturnType UnityEngine.AndroidJavaObject::_Call<System.Single>(System.String,System.Object[])
IL2CPP_EXTERN_C IL2CPP_METHOD_ATTR float AndroidJavaObject__Call_TisSingle_tE07797BA3C98D4CA9B5A19413C19A76688AB899E_m815D3536793DAD87275A47032E4CC1BD04420E47_g


T55SSS25S5=UlnX lTUS:waUTU-UlOSUlSUlUS:XaG[UR5(a,[RSU[U5RU5 ggg)Nc3>># UHnTUS:wdMUv M g7f)rNrW)r?rtotalss  rGrA!List._set_glue.<locals>.<genexpr>C01F1INQQ0
	rrr	%s %s: %rrrrrrr
glue_ratiorrIrJrrY)rqrSsignr
error_typers   `  rG	_set_glueList._set_glue"Cc&k*4R40CQH	H!!9?q	MDMDN DO64==!!['d)<)<dD"r`c>URHnUR5 M [TU]5 UR[:a3U=R
[-slU=R[-slgg)Nrrrr4r/rr0r)rqchildr s  rGrList.shrinkT]]ELLN#
99&.MM.M'r`rrrrrrrT.Sequence[Node]r!
rSrOrrrzlist[float]rrrrr rYrZr[r\r]rrrrrr_rr)r s@rGrr2:9D!D&*D //r`rcb^\rSrSrSrSSU4SjjjrS	SjrS
SSjjrSrU=r	$)HlistA horizontal list of boxes.cp>[TU]U5 U(aUR5 URX#S9 g)Nr~rrrrrjhpack)rqrr~rdo_kernr s     rGrrHlist.__init__,	"IIK

Q
r`cV/n[UR5nU(a[U5HunURUnX2S-
:aURUS-nOSnURU5 UR	U5nUS:wdMY[U5nURU5 Mw Xlgg)
Insert `Kern` nodes between `Char` nodes to set kerning.

The `Char` nodes themselves determine the amount of kerning they need
(in `~Char.get_kerning`), and this function just creates the correct
linked list.
rNrrrrrreKern)rqnew_childrennum_childrenrelemrkerning_distancerjs        rGrj
Hlist.kern4==)<(}}Q'a''==Q/DD##D)#'#3#3D#9 #r) 01D ''-))Mr`cZSnSnSnS/S-nS/S-nURGHn[U[5(a:XXR-
n[	X8R
5n[	XHR5nMS[U[5(aXXR-
n[R"UR
5(dg[R"UR5(d?[USS5n	[	X8R
U	-
5n[	XHRU	-5nMGMGM[U[5(a]URn
XZR-
nXjR==U
R-
ss'XzR==U
R -
ss'GMw[U["5(dGMXXR-
nGM X0lX@lUS:XaX-
nXlX-
nUS:XaSUlSUlSUlgUS:aUR+USUS5 gUR+US	US
5 g)
Compute the dimensions of the resulting boxes, and adjust the glue if
one of those dimensions is pre-specified.  The computed sizes normally
enclose all of the material inside the new box; but some items may
stick out if negative glue is used, if the box is overfull, or if a
``\vbox`` includes other boxes that have been shifted left.

Parameters
----------
w : float, default: 0
    A width.
m : {'exactly', 'additional'}, default: 'additional'
    Whether to produce a box whose width is 'exactly' *w*; or a box
    with the natural width of the contents, plus *w* ('additional').

Notes
-----
The defaults produce a box with the natur


20\x03(\x0b2-.opentelemetry.proto.common.v1.StringKeyValueR\x0efil\
    teredLabels\x12$\n\x0etime_unix_nano\x18\x02\x20\x01(\x06R\x0ctimeUnixNa\
    no\x12\x14\n\x05value\x18\x03\x20\x01(\x10R\x05value\x12\x17\n\x07span_i\
    d\x18\x04\x20\x01(\x0cR\x06spanId\x12\x19\n\x08trace_id\x18\x05\x20\x01(\
    \x0cR\x07traceId:\x02\x18\x01\"\xdb\x02\n\x08Exemplar\x12X\n\x13filtered\
    _attributes\x18\x07\x20\x03(\x0b2'.opentelemetry.proto.common.v1.KeyValu\
    eR\x12filteredAttributes\x12Z\n\x0ffiltered_labels\x18\x01\x20\x03(\x0b2\
    -.opentelemetry.proto.common.v1.StringKeyValueR\x0efilteredLabelsB\x02\
    \x18\x01\x12$\n\x0etime_unix_nano\x18\x02\x20\x01(\x06R\x0ctimeUnixNano\
    \x12\x1d\n\tas_double\x18\x03\x20\x01(\x01H\0R\x08asDouble\x12\x17\n\x06\
    as_int\x18\x06\x20\x01(\x10H\0R\x05asInt\x12\x17\n\x07span_id\x18\x04\
    \x20\x01(\x0cR\x06spanId\x12\x19\n\x08trace_id\x18\x05\x20\x01(\x0cR\x07\
    traceIdB\x07\n\x05value*\x8c\x01\n\x16AggregationTemporality\x12'\n#AGGR\
    EGATION_TEMPORALITY_UNSPECIFIED\x10\0\x12!\n\x1dAGGREGATION_TEMPORALITY_\
    DELTA\x10\x01\x12&\n\"AGGREGATION_TEMPORALITY_CUMULATIVE\x10\x02Bt\n!io.\
    opentelemetry.proto.metrics.v1B\x0cMetricsProtoP\x01Z?github.com/open-te\
    lemetry/opentelemetry-proto/gen/go/metrics/v1b\x06proto3\
";

static file_descriptor_proto_lazy: ::protobuf::rt::LazyV2<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::rt::LazyV2::INIT;

fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
    ::protobuf::Message::parse_from_bytes(file_descriptor_proto_data).unwrap()
}

pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
    file_descriptor_proto_lazy.get(|| {
        parse_descriptor_proto()
    })
}
<filename>list-windows/src/constants.rs
extern crate winapi;

use winapi::shared::guiddef::GUID;
use winapi::um::knownfolders::FOLDERID_Profile;
use winapi::um::knownfolders::FOLDERID_Prog


":"https:\u002F\u002Finstagram.com\u002Fwired\u002F","label":"Follow us on Instagram"}],"utilityLinks":[{"text":"Subscribe","url":"https:\u002F\u002Fsubscribe.wired.com\u002Fsubscribe\u002Fsplits\u002Fwired\u002FWIR_FAILSAFE?source=HCL_WIR_GLOBAL_NAV_DRAWER_FAILSAFE_0","forceLeftOfNav":false,"showInTopNav":true,"isExternal":true,"paymentGroup":"consumer-marketing","shouldRenderCMUnit":true},{"text":"Give a Gift","url":"https:\u002F\u002Fsubscribe.wired.com\u002Fsubscribe\u002Fsplits\u002Fwired\u002FWIR_GIFT?source=WIR_Actives_Gift","forceLeftOfNav":false,"showInTopNav":true,"isExternal":true,"paymentGroup":"subs-cta"}]},"sentry":{"dsn":"https:\u002F\u002F01670db7f463402085dc9e319887ec36@sentry.io\u002F1222280"},"variations":{"navigation":{"pattern":"Standard","variation":"LogoLeftWithSearchAndHeadline"},"article":{"product-embed":"ImageLeft","external-link-embed":"Inline"}},"head.ampUrl":"https:\u002F\u002Fwww.wired.com\u002Fstory\u002Fai-great-things-burn-planet\u002Famp","article":{"body":["div",["p","Last month, researchers at ",["a",{"href":"https:\u002F\u002Fopenai.com\u002F","isExternal":true},"OpenAI"]," in San Francisco revealed an algorithm capable of learning, through trial and error, how to ",["a",{"href":"https:\u002F\u002Fwww.wired.com\u002Fstory\u002Fwhy-solving-rubiks-cube-not-signal-robot-supremacy\u002F","isExternal":false},"manipulate the pieces of a Rubik's Cube"]," using a robotic hand. It was a remarkable research feat, but it required more than 1,000 desktop computers plus a dozen machines running specialized graphics chips crunching intensive calculations for several months."],["p","The effort may have consumed about 2.8 gigawatt-hours of electricity, estimates Evan Sparks, CEO of ",["a",{"href":"https:\u002F\u002Fdetermined.ai\u002F","isExternal":true},"Determined AI"],", a startup that provides software to help companies manage AI projects. That’s roughly equal to the output of three nuclear power plants for an hour. A spokesperson for OpenAI questioned the calculation, noting that it makes several assumptions. But OpenAI declined to disclose further details of the project or offer an estimate of the electricity it consumed."],["p",["a",{"href":"https:\u002F\u002Fwww.wired.com\u002Ftag\u002Fartificial-intelligence\u002F","isExternal":false},"Artificial intelligence"]," routinely produces startling achievements, as computers learn to ",["a",{"href":"https:\u002F\u002Fwww.wired.com\u002Fstory\u002Fcomputers-are-learning-to-see-in-higher-dimensions\u002F","isExternal":false},"recognize images"],", ",["a",{"href":"https:\u002F\u002Fwww.wired.com\u002Fstory\u002Famazon-alexa-2018-machine-learning\u002F","isExternal":false},"converse"],", ",["a",{"href":"https:\u002F\u002Fwww.wired.com\u002Fstory\u002Fthis-more-powerful-version-of-alphago-learns-on-its-own\u002F","isExternal":false},"beat humans at sophisticated games"],", and ",["a",{"href":"https:\u002F\u002Fwww.wired.com\u002Fstory\u002Fteaching-self-driving-cars-watch-unpredictable-humans\u002F","isExternal":false},"drive vehicles"],". But all those advances require staggering amounts of computing power—and electricity—to devise and train algorithms. And as the damage caused by climate change becomes more apparent, AI experts are increasingly troubled by those energy demands."],["cm-unit"],["native-ad",{"position


 colorMap['warningColor5'] ?? const Color(0xFFE37318);

  ///#BE5A00
  Color get warningColor6 => colorMap['warningColor6'] ?? const Color(0xFFBE5A00);

  ///#954500
  Color get warningColor7 => colorMap['warningColor7'] ?? const Color(0xFF954500);

  ///#713300
  Color get warningColor8 => colorMap['warningColor8'] ?? const Color(0xFF713300);

  ///#532300
  Color get warningColor9 => colorMap['warningColor9'] ?? const Color(0xFF532300);

  ///#3B1700
  Color get warningColor10 =>
      colorMap['warningColor10'] ?? const Color(0xFF3B1700);

  ///#FFF1E9
  Color get warningLightColor => colorMap['warningLightColor'] ?? warningColor1;

  ///#FFD9C2
  Color get warningFocusColor => colorMap['warningFocusColor'] ?? warningColor2;

  ///#FFB98C
  Color get warningDisabledColor =>
      colorMap['warningDisabledColor'] ?? warningColor3;

  ///#FA9550
  Color get warningHoverColor => colorMap['warningHoverColor'] ?? warningColor4;

  ///#E37318
  Color get warningNormalColor => colorMap['warningNormalColor'] ?? warningColor5;

  ///#BE5A00
  Color get warningClickColor => colorMap['warningClickColor'] ?? warningColor6;

  /// 成功色组----------------------------------------------------

  ///#E3F9E9
  Color get successColor1 => colorMap['successColor1'] ?? const Color(0xFFE3F9E9);

  ///#C6F3D7
  Color get successColor2 => colorMap['successColor2'] ?? const Color(0xFFC6F3D7);

  ///#92DAB2
  Color get successColor3 => colorMap['successColor3'] ?? const Color(0xFF92DAB2);

  ///#56C08D
  Color get successColor4 => colorMap['successColor4'] ?? const Color(0xFF56C08D);

  ///#2BA471
  Color get successColor5 => colorMap['successColor5'] ?? const Color(0xFF2BA471);

  ///#008858
  Color get successColor6 => colorMap['successColor6'] ?? const Color(0xFF008858);

  ///#006C45
  Color get successColor7 => colorMap['successColor7'] ?? const Color(0xFF006C45);

  ///#005334
  Color get successColor8 => colorMap['successColor8'] ?? const Color(0xFF005334);

  ///#003B23
  Color get successColor9 => colorMap['successColor9'] ?? const Color(0xFF003B23);

  ///#002515
  Color get successColor10 =>
      colorMap['successColor10'] ?? const Color(0xFF002515);

  ///#E3F9E9
  Color get successLightColor => colorMap['successLightColor'] ?? successColor1;

  ///#C6F3D7
  Color get successFocusColor => colorMap['successFocusColor'] ?? successColor2;

  ///#92DAB2
  Color get successDisabledColor =>
      colorMap['successDisabledColor'] ?? successColor3;

  ///#56C08D
  Color get successHoverColor => colorMap['successHoverColor'] ?? successColor4;

  ///#2BA471
  Color get successNormalColor => colorMap['successNormalColor'] ?? successColor5;

  ///#008858
  Color get successClickColor => colorMap['successClickColor'] ?? successColor6;

  /// 文字色组----------------------------------------------------

  ///#e6000000
  Color get fontGyColor1 => colorMap['fontGyColor1'] ?? const Color(0xE6000000);

  ///#99000000
  Color get fontGyColor2 => c


br>  In object inspector, click on "Link to DB DataSource..."
  Choose BindSourceDB1
  In object inspector (for StringGrid1), choose "Columns Editor..." command
  Add all columns
  Remove unwanted columns, modify column widths in object inspector

Add Labels

See the topic "LiveBindings in RAD Studio" in the RAD Studio Help for additional information.

<!DOCTYPE html>
      <title>README</title>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">

      <link rel="stylesheet" href="file:////home/x/.vscode/extensions/shd101wyy.markdown-preview-enhanced-0.6.7/node_modules/@shd101wyy/mume/dependencies/katex/katex.min.css">


E3Anhs34BXsWWWqH4RNPL
  ._3xvUZtQ1j-pu-l2xy-lFAq
  ._2pq2vP5kJ_wI2nw-igwJXF
  ._3HF9tOy_soo1B_odf1XArk
  ._1UgZvqy4xNDdu4gJ6tlT-Q {
  width: 22vw;
  height: 12vw;
  min-width: 100px;
  max-width: 300px;
  max-height: 169px;
}
@media screen and (max-width: 910px) {
  ._144ghSsl2jkmXzzHxgtQtX._1E3Anhs34BXsWWWqH4RNPL
    ._3xvUZtQ1j-pu-l2xy-lFAq
    ._2pq2vP5kJ_wI2nw-igwJXF
    ._3HF9tOy_soo1B_odf1XArk
    ._27kWH1D3y2WfR8D-sD8Rw2,
  ._144ghSsl2jkmXzzHxgtQtX._1E3Anhs34BXsWWWqH4RNPL
    ._3xvUZtQ1j-pu-l2xy-lFAq
    ._2pq2vP5kJ_wI2nw-igwJXF
    ._3HF9tOy_soo1B_odf1XArk
    ._1UgZvqy4xNDdu4gJ6tlT-Q {
    width: 45vw;
    max-width: unset;
    height: 25vw;
    margin-bottom: 12px;
    max-height: unset;
  }
}
@media screen and (max-width: 700px) {
  ._144ghSsl2jkmXzzHxgtQtX._1E3Anhs34BXsWWWqH4RNPL
    ._3xvUZtQ1j-pu-l2xy-lFAq
    ._2pq2vP5kJ_wI2nw-igwJXF
    ._3HF9tOy_soo1B_odf1XArk
    ._27kWH1D3y2WfR8D-sD8Rw2,
  ._144ghSsl2jkmXzzHxgtQtX._1E3Anhs34BXsWWWqH4RNPL
    ._3xvUZtQ1j-pu-l2xy-lFAq
    ._2pq2vP5kJ_wI2nw-igwJXF
    ._3HF9tOy_soo1B_odf1XArk
    ._1UgZvqy4xNDdu4gJ6tlT-Q {
    width: calc(100vw - 24px);
    max-width: unset;
    height: 51vw;
    margin-bottom: 12px;
    max-height: unset;
  }
}
@media screen and (max-width: 700px) {
  ._144ghSsl2jkmXzzHxgtQtX._1E3Anhs34BXsWWWqH4RNPL
    ._3xvUZtQ1j-pu-l2xy-lFAq
    ._2pq2vP5kJ_wI2nw-igwJXF
    ._3HF9tOy_soo1B_odf1XArk {
    float: right;
    padding: 0px 0px 12px 0px;
  }
}
._144ghSsl2jkmXzzHxgtQtX._1E3Anhs34BXsWWWqH4RNPL
  ._3xvUZtQ1j-pu-l2xy-lFAq
  ._2pq2vP5kJ_wI2nw-igwJXF
  ._3IQK4rcEU5IYtZuW-Ogsgu {
  padding-to


        delete api_address;
    }

    if(data_address != nullptr) {
        delete data_address;
    }

    if(reverse_api_address != nullptr) {
        delete reverse_api_address;
    }

}

SWGRemoteOutputSettings*
SWGRemoteOutputSettings::fromJson(QString &json) {
    QByteArray array (json.toStdString().c_str());
    QJsonDocument doc = QJsonDocument::fromJson(array);
    QJsonObject jsonObject = doc.object();
    this->fromJsonObject(jsonObject);
    return this;
}

void
SWGRemoteOutputSettings::fromJsonObject(QJsonObject &pJson) {
    ::SWGSDRangel::setValue(&nb_fec_blocks, pJson["nbFECBlocks"], "qint32", "");

    ::SWGSDRangel::setValue(&nb_tx_bytes, pJson["nbTxBytes"], "qint32", "");

    ::SWGSDRangel::setValue(&api_address, pJson["apiAddress"], "QString", "QString");

    ::SWGSDRangel::setValue(&api_port, pJson["apiPort"], "qint32", "");

    ::SWGSDRangel::setValue(&data_address, pJson["dataAddress"], "QString", "QString");

    ::SWGSDRangel::setValue(&data_port, pJson["dataPort"], "qint32", "");

    ::SWGSDRangel::setValue(&device_index, pJson["deviceIndex"], "qint32", "");

    ::SWGSDRangel::setValue(&channel_index, pJson["channelIndex"], "qint32", "");

    ::SWGSDRangel::setValue(&use_reverse_api, pJson["useReverseAPI"], "qint32", "");

    ::SWGSDRangel::setValue(&reverse_api_address, pJson["reverseAPIAddress"], "QString", "QString");

    ::SWGSDRangel::setValue(&reverse_api_port, pJson["reverseAPIPort"], "qint32", "");

    ::SWGSDRangel::setValue(&reverse_api_device_index, pJson["reverseAPIDeviceIndex"], "qint32", "");

}

QString
SWGRemoteOutputSettings::asJson ()
{
    QJsonObject* obj = this->asJsonObject();

    QJsonDocument doc(*obj);
    QByteArray bytes = doc.toJson();
    delete obj;
    return QString(bytes);
}

QJsonObject*
SWGRemoteOutputSettings::asJsonObject() {
    QJsonObject* obj = new QJsonObject();
    if(m_nb_fec_blocks_isSet){
        obj->insert("nbFECBlocks", QJsonValue(nb_fec_blocks));
    }
    if(m_nb_tx_bytes_isSet){
        obj->insert("nbTxBytes", QJsonValue(nb_tx_bytes));
    }
    if(api_address != nullptr && *api_address != QString("")){
        toJsonValue(QString("apiAddress"), api_address, obj, QString("QString"));
    }
    if(m_api_port_isSet){
        obj->insert("apiPort", QJsonValue(api_port));
    }
    if(data_address != nullptr && *data_address != QString("")){
        toJsonValue(QString("dataAddress"), data_address, obj, QString("QString"));
    }
    if(m_data_port_isSet){
        obj->insert("dataPort", QJsonValue(data_port));
    }
    if(m_device_index_isSet){
        obj->insert("deviceIndex", QJsonValue(device_index));
    }
    if(m_channel_index_isSet){
        obj->insert("channelIndex", QJsonValue(channel_index));
    }
    if(m_use_r


_$impls[$p]!.firstValueOf(
          $a![0]?.as(
              const jni$_.$JMap$Type$<jni$_.JObject?, jni$_.JObject?>(
                  jni$_.$JObject$NullableType$(),
                  jni$_.$JObject$NullableType$()),
              releaseOriginal: true),
        );
        return ($r as jni$_.JObject?)
                ?.as(const jni$_.$JObject$Type$())
                .reference
                .toPointer() ??
            jni$_.nullptr;
      }
    } catch (e) {
      return jni$_.ProtectedJniExtensions.newDartException(e);
    }
    return jni$_.nullptr;
  }

  static void implementIn<$T extends jni$_.JObject?>(
    jni$_.JImplementer implementer,
    $GenericInterface<$T> $impl,
  ) {
    late final jni$_.RawReceivePort $p;
    $p = jni$_.RawReceivePort(($m) {
      if ($m == null) {
        _$impls.remove($p.sendPort.nativePort);
        $p.close();
        return;
      }
      final $i = jni$_.MethodInvocation.fromMessage($m);
      final $r = _$invokeMethod($p.sendPort.nativePort, $i);
      jni$_.ProtectedJniExtensions.returnResult($i.result, $r);
    });
    implementer.add(
      r'com.github.dart_lang.jnigen.interfaces.GenericInterface',
      $p,
      _$invokePointer,
      [],
    );
    final $a = $p.sendPort.nativePort;
    _$impls[$a] = $impl;
  }

  factory GenericInterface.implement(
    $GenericInterface<$T> $impl,
  ) {
    final $i = jni$_.JImplementer();
    implementIn($i, $impl);
    return GenericInterface<$T>.fromReference(
      $impl.T,
      $i.implementReference(),
    );
  }
}

abstract base mixin class $GenericInterface<$T extends jni$_.JObject?> {
  factory $GenericInterface({
    required jni$_.JType<$T> T,
    required jni$_.JArray<jni$_.JObject?>? Function(jni$_.JObject? object)
        genericArrayOf,
    required jni$_.JArray<jni$_.JObject?>? Function($T? object) arrayOf,
    required jni$_.JMap<jni$_.JObject?, jni$_.JObject?>? Function(
            $T? object, jni$_.JObject? object1)
        mapOf,
    required jni$_.JObject? Function(jni$_.JArray<jni$_.JObject?>? objects)
        firstOfGenericArray,
    required $T? Function(jni$_.JArray<jni$_.JObject?>? objects) firstOfArray,
    required $T? Function(jni$_.JMap<jni$_.JObject?, jni$_.JObject?>? map)
        firstKeyOf,
    required jni$_.JObject? Function(
            jni$_.JMap<jni$_.JObject?, jni$_.JObject?>? map)
        firstValueOf,
  }) = _$GenericInterface<$T>;

  jni$_.JType<$T> get T;

  jni$_.JArray<jni$_.JObject?>? genericArrayOf(jni$_.JObject? object);
  jni$_.JArray<jni$_.JObject?>? arrayOf($T? object);
  jni$_.JMap<jni$_.JObject?, jni$_.JObject?>? mapOf(
      $T? object, jni$_.JObject? object1);
  jni$_.JObject? firstOfGenericArray(jni$_.JArray<jni$_.JObject?>? objects);
  $T? firstOfArray(jni$_.JArray<jni$_.JObject?>? objects);
  $T? firstKeyOf(jni$_.JMap<jni$_.JObject?, jni$_.J


)
                        mListener.onPinError()
                        val mVibrator = ProtonMailApplication.getApplication()
                            .getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
                        mVibrator.vibrate(450)
                        mEditTextHandler.postDelayed(ClearTextRunnable(this), 350)
                    }
                }
            }
        }
    }

    private fun handlePinErrorUI(userManager: UserManager) {
        val currentAttempts = userManager.incorrectPinAttempts
        val remainingAttempts = Constants.MAX_INCORRECT_PIN_ATTEMPTS - currentAttempts
        if (remainingAttempts == Constants.MAX_INCORRECT_PIN_ATTEMPTS) {
            return
        }
        inputField.setTextColor(resources.getColor(R.color.notification_error))
        if (currentAttempts >= Constants.MAX_INCORRECT_PIN_ATTEMPTS - 3) {
            attempts.text = resources.getQuantityString(
                R.plurals.incorrect_pin_remaining_attempts_wipe, remainingAttempts, remainingAttempts
            )
        } else {
            attempts.text =
                resources.getQuantityString(
                    R.plurals.incorrect_pin_remaining_attempts, remainingAttempts, remainingAttempts
                )
        }
    }

    private fun resetContent() {
        inputField.setText("")
    }

    fun setText(string: String) {
        inputField.setText(string)
    }

    fun setSelection(length: Int) {
        inputField.setSelection(length)
    }

    fun setTextColor(color: Int) {
        inputField.setTextColor(color)
    }

    fun setErrorText(string: String) {
        attempts.text = string
    }

    private class EditTextHandler : Handler() { // non leaky handler
    }

    private val mEditTextHandler = EditTextHandler()

    private class ClearTextRunnable internal constructor(secureEditText: SecureEditText) : Runnable {

        // non leaky runnable
        private val secureEditTextWeakReference: WeakReference<SecureEditText> = WeakReference(secureEditText)
        override fun run() {
            val secureEditText = secureEditTextWeakReference.get()
            secureEditText?.resetContent()
        }
    }

    init {
        LayoutInflater.from(context).inflate(R.layout.secure_edit_view, this, true)
        handlePinErrorUI(ProtonMailApplication.getApplication().userManager)
        inputField.transformationMethod = BiggerDotPasswordTransformationMethod
    }
}

/**
 * A transformation to increase the size of the dots displayed in the text.
 */
private object BiggerDotPasswordTransformationMethod : PasswordTransformationMethod() {

    override fun getTransformation(source: CharSequence, view: View): CharSequence {
        return PasswordCharSequence(super.getTransformation(source, view))
    }

    private class PasswordCharSequence(
        val transformation: CharSequence
    ) : CharSequence by transformation {

        override fun get(index: Int): Char = if (transformation[index] == DOT) {
            BIGGER_DOT
        } else {
            transformation[index]
        }
    }

    private const val DOT = '\u2022'
    private const val BIGGER_DOT = '●'
}

interface ISecurePINListener {

    fun onPinSuccess()
    fun onPinError()
    fun onPinMaxDigitReached()
}
/*
 * Copyright (c) 2022 Proton AG
 *
 * This file is part of Proton Mail.
 *
 * Proton Mail 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 3 of the License, or
 * (at your option) any later version.
 *
 * Proton Mail 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 Proto


    fun createSpyDisplayLayout(globalBounds: RectF, dpi: Int, resources: Resources): DisplayLayout {
        val displayInfo = DisplayInfo()
        displayInfo.logicalDensityDpi = dpi
        val displayLayout = spy(DisplayLayout(displayInfo, resources, true, true))
        displayLayout.setGlobalBoundsDp(globalBounds)
        return displayLayout
    }
}
/*
 * Copyright (C) 2025 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.wm.shell.splitscreen

import android.app.ActivityManager
import android.hardware.display.DisplayManager
import android.view.Display
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.wm.shell.ShellTestCase
import com.android.wm.shell.common.split.SplitLayout
import com.google.common.truth.Truth.assertThat
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito.mock
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations

/**
 * Unit tests for [SplitMultiDisplayHelper].
 */
@SmallTest
@RunWith(AndroidJUnit4::class)
class SplitMultiDisplayHelperTests : ShellTestCase() {

    private lateinit var splitMultiDisplayHelper: SplitMultiDisplayHelper

    @Mock
    private lateinit var mockDisplayManager: DisplayManager
    @Mock
    private lateinit var mockSplitLayout: SplitLayout
    @Mock
    private lateinit var mockDisplay1: Display
    @Mock
    private lateinit var mockDisplay2: Display

    @Before
    fun setUp() {
        MockitoAnnotations.initMocks(this)
        mockDisplay1 = mockDisplayManager.getDisplay(Display.DEFAULT_DISPLAY) ?: mock(Display::class.java)
        mockDisplay2 = mockDisplayManager.getDisplay(Display.DEFAULT_DISPLAY + 1) ?: mock(Display::class.java)

        `when`(mockDisplay1.displayId).thenReturn(Display.DEFAULT_DISPLAY)
        `when`(mockDisplay2.displayId).thenReturn(Display.DEFAULT_DISPLAY + 1)

        splitMultiDisplayHelper = SplitMultiDisplayHelper(mockDisplayManager)
    }

    @Test
    fun getDisplayIds_noDisplays_returnsEmptyList() {
        `when`(mockDisplayManager.displays).thenReturn(emptyArray())

        val displayIds = splitMultiDisplayHelper.getDisplayIds()

        assertThat(displayIds).isEmpty()
    }

    @Test
    fun getDisplayIds_singleDisplay_returnsCorrectId() {
        `when`(mockDisplayManager.displays).thenReturn(arrayOf(mockDisplay1))

        val displayIds = splitMultiDisplayHelper.getDisplayIds()

        assertThat(displayIds).containsExactly(Display.DEFAULT_DISPLAY)
    }

    @Test
    fun getDisplayIds_multiDisplays_returnsCorrectIds() {
        `when`(mockDisplayManager.displays).thenReturn(arrayOf(mockDisplay1, mockDisplay2))

        val displayIds = splitMultiDisplayHelper.getDisplayIds()

        assertThat(displayIds).containsExactly(Display.DEFAULT_DISPLAY, Display.DEFAULT_DISPLAY + 1)
    }

    @Test
    fun swapDisplayTaskHierarchy_validDisplays_swapsHierarchies() {
        val rootTaskInfo1 = ActivityManager.RunningTaskInfo().apply { taskId = 1 }
        val rootTaskInfo2 = ActivityManager.RunningTaskInfo().apply { taskId = 2 }


RobotoThin_16_char103[0],
    &RobotoThin_16_char104[0],
    &RobotoThin_16_char105[0],
    &RobotoThin_16_char106[0],
    &RobotoThin_16_char107[0],
    &RobotoThin_16_char108[0],
    &RobotoThin_16_char109[0],
    &RobotoThin_16_char110[0],
    &RobotoThin_16_char111[0],
    &RobotoThin_16_char112[0],
    &RobotoThin_16_char113[0],
    &RobotoThin_16_char114[0],
    &RobotoThin_16_char115[0],
    &RobotoThin_16_char116[0],
    &RobotoThin_16_char117[0],
    &RobotoThin_16_char118[0],
    &RobotoThin_16_char119[0],
    &RobotoThin_16_char120[0],
    &RobotoThin_16_char121[0],
    &RobotoThin_16_char122[0],
    &RobotoThin_16_char123[0],
    &RobotoThin_16_char124[0],
    &RobotoThin_16_char125[0],
    &RobotoThin_16_char126[0],
};

Font RobotoThin_16 = {
    (void*)RobotoThin_16_data
};


 ] = 255;

			}

		}

		context.putImageData( imageData, 0, 0 );

		return canvas;

	},

	generateDataTexture: function ( width, height, color ) {

		var size = width * height;
		var data = new Uint8Array( 3 * size );

		var r = Math.floor( color.r * 255 );
		var g = Math.floor( color.g * 255 );
		var b = Math.floor( color.b * 255 );

		for ( var i = 0; i < size; i ++ ) {

			data[ i * 3 ] 	   = r;
			data[ i * 3 + 1 ] = g;
			data[ i * 3 + 2 ] = b;

		}

		var texture = new THREE.DataTexture( data, width, height, THREE.RGBFormat );
		texture.needsUpdate = true;

		return texture;

	}

};

// File:src/extras/SceneUtils.js

/**
 * @author alteredq / http://alteredqualia.com/
 */

THREE.SceneUtils = {

	createMultiMaterialObject: function ( geometry, materials ) {

		var group = new THREE.Object3D();

		for ( var i = 0, l = materials.length; i < l; i ++ ) {

			group.add( new THREE.Mesh( geometry, materials[ i ] ) );

		}

		return group;

	},

	detach: function ( child, parent, scene ) {

		child.applyMatrix( parent.matrixWorld );
		parent.remove( child );
		scene.add( child );

	},

	attach: function ( child, scene, parent ) {

		var matrixWorldInverse = new THREE.Matrix4();
		matrixWorldInverse.getInverse( parent.matrixWorld );
		child.applyMatrix( matrixWorldInverse );

		scene.remove( child );
		parent.add( child );

	}

};

// File:src/extras/FontUtils.js

/**
 * @author zz85 / http://www.lab4games.net/zz85/blog
 * @author alteredq / http://alteredqualia.com/
 *
 * For Text operations in three.js (See TextGeometry)
 *
 * It uses techniques used in:
 *
 * 	typeface.js and canvastext
 * 		For converting fonts and rendering with javascript
 *		http://typeface.neocracy.org
 *
 *	Triangulation ported from AS3
 *		Simple Polygon Triangulation
 *		http://actionsnippet.com/?p=1462
 *
 * 	A Method to triangulate shapes with holes
 *		http://www.sakri.net/blog/2009/06/12/an-approach-to-triangulating-polygons-with-holes/
 *
 */

THREE.FontUtils = {

	faces: {},

	// Just for now. face[weight][style]

	face: 'helvetiker',
	weight: 'normal',
	style: 'normal',
	size: 150,
	divisions: 10,

	getFace: function () {

		try {

			return this.faces[ this.face ][ this.weight ][ this.style ];

		} catch (e) {

			throw "The font " + this.face + " with " + this.weight + " weight and " + this.style + " style is missing."

		};

	},

	loadFace: function ( data ) {

		var family = data.familyName.toLowerCase();

		var ThreeFont = this;

		ThreeFont.faces[ family ] = ThreeFont.faces[ family ] || {};

		ThreeFont.faces[ family ][ data.cssFontWeight ] = ThreeFont.faces[ family ][ data.cssFontWeight ] || {};
		ThreeFont.faces[ family ][ data.cssFontWeight ][ data.cssFontStyle ] = data;


ELFORMATDESCRIPTORFc.cAccumGreenBits, (jbyte)lpStruct->cAccumGreenBits);
	(*env)->SetByteField(env, lpObject, PIXELFORMATDESCRIPTORFc.cAccumBlueBits, (jbyte)lpStruct->cAccumBlueBits);
	(*env)->SetByteField(env, lpObject, PIXELFORMATDESCRIPTORFc.cAccumAlphaBits, (jbyte)lpStruct->cAccumAlphaBits);
	(*env)->SetByteField(env, lpObject, PIXELFORMATDESCRIPTORFc.cDepthBits, (jbyte)lpStruct->cDepthBits);
	(*env)->SetByteField(env, lpObject, PIXELFORMATDESCRIPTORFc.cStencilBits, (jbyte)lpStruct->cStencilBits);
	(*env)->SetByteField(env, lpObject, PIXELFORMATDESCRIPTORFc.cAuxBuffers, (jbyte)lpStruct->cAuxBuffers);
	(*env)->SetByteField(env, lpObject, PIXELFORMATDESCRIPTORFc.iLayerType, (jbyte)lpStruct->iLayerType);
	(*env)->SetByteField(env, lpObject, PIXELFORMATDESCRIPTORFc.bReserved, (jbyte)lpStruct->bReserved);
	(*env)->SetIntField(env, lpObject, PIXELFORMATDESCRIPTORFc.dwLayerMask, (jint)lpStruct->dwLayerMask);
	(*env)->SetIntField(env, lpObject, PIXELFORMATDESCRIPTORFc.dwVisibleMask, (jint)lpStruct->dwVisibleMask);
	(*env)->SetIntField(env, lpObject, PIXELFORMATDESCRIPTORFc.dwDamageMask, (jint)lpStruct->dwDamageMask);
}
#endif


meInfo_t2DAA498B52B3F9E6396E322B749CE25915F28D8F * ___typeNameInfo1, RuntimeObject * ___value2, const RuntimeMethod* method);
// System.Void System.Runtime.Serialization.Formatters.Binary.__BinaryWriter::WriteMember(System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Object)
IL2CPP_EXTERN_C IL2CPP_METHOD_ATTR void __BinaryWriter_WriteMember_m795FC65F83F561B14C63E24FD9B4EC09D6A4F34E (__BinaryWriter_tADAED5EACC3B2674AF82C8D3A5226AD88B3B1694 * __this, NameInfo_t2DAA498B52B3F9E6396E322B749CE25915F28D8F * ___memberNameInfo0, NameInfo_t2DAA498B52B3F9E6396E322B749CE25915F28D8F * ___typeNameInfo1, RuntimeObject * ___value2, const RuntimeMethod* method);
// System.Void System.Runtime.Serialization.Formatters.Binary.__BinaryWriter::WriteMemberObjectRef(System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Int32)
IL2CPP_EXTERN_C IL2CPP_METHOD_ATTR void __BinaryWriter_WriteMemberObjectRef_m25D1359FE78FC23B0BCE6295B5863A325D35A2D2 (__BinaryWriter_tADAED5EACC3B2674AF82C8D3A5226AD88B3B1694 * __this, NameInfo_t2DAA498B52B3F9E6396E322B749CE25915F28D8F * ___memberNameInfo0, int32_t ___idRef1, const RuntimeMethod* method);
// System.Void System.Runtime.Serialization.Formatters.Binary.__BinaryWriter::WriteMemberString(System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Runtime.Serialization.Formatters.Binary.NameInfo,System.String)
IL2CPP_EXTERN_C IL2CPP_METHOD_ATTR void __BinaryWriter_WriteMemberString_mFB23186B2355A92F7AC4B0994B0696168D57D884 (__BinaryWriter_tADAED5EACC3B2674AF82C8D3A5226AD88B3B1694 * __this, NameInfo_t2DAA498B52B3F9E6396E322B749CE25915F28D8F * ___memberNameInfo0, NameInfo_t2DAA498B52B3F9E6396E322B749CE25915F28D8F * ___typeNameInfo1, String_t* ___value2, const RuntimeMethod* method);
// System.Void System.Runtime.Serialization.Formatters.Binary.__BinaryWriter::WriteDelayedNullItem()
IL2CPP_EXTERN_C IL2CPP_METHOD_ATTR void __BinaryWriter_WriteDelayedNullItem_m5C5CF7ACC406C53EADA6C4D5D6DC5B12A11386C4 (__BinaryWriter_tADAED5EACC3B2674AF82C8D3A5226AD88B3B1694 * __this, const RuntimeMethod* method);
// System.Void System.Runtime.Serialization.Formatters.Binary.__BinaryWriter::WriteNullItem(System.Runtime.Serialization.Formatters.Binary.NameInfo,System.Runtime.Serialization.Formatters.Binary.NameInfo)
IL2CPP_EXTERN_C IL2CPP_METHOD_ATTR void __BinaryWriter_WriteNullItem_mEF42F473CAA2417E8796E12C88C7EADA8B345359 (__BinaryWriter_tADAED5EACC3B2674AF82C8D3A5226AD88B3B1694 * __this, NameInfo_t2DAA498B52B3F9E6396E322B749CE25915F28D8F * ___itemNameInfo0, NameInfo_t2DAA498B52B3


 51 ||
          i == 54 ||
          i == 59 ||
          i == 62 ||
          i == 68) {
        expect(
          codeUnitFlags.hasFlag(i, CodeUnitFlag.whitespace),
          isTrue,
          reason: 'Expected whitespace at index $i',
        );
      } else {
        expect(
          codeUnitFlags.hasFlag(i, CodeUnitFlag.whitespace),
          isFalse,
          reason: 'Expected no whitespace at index $i',
        );
      }
      i += 1;
    }
  });
}
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'dart:js_interop';

import 'package:test/bootstrap/browser.dart';
import 'package:test/test.dart';
import 'package:ui/src/engine.dart';

import 'common.dart';

void main() {
  internalBootstrapBrowserTest(() => testMain);
}

// This test exists to make sure we don't accidentally run the CanvasKit test suite
// in "auto" mode. The CanvasKit variant should always be deterministic.
void testMain() {
  setUpCanvasKitTest();

  test('CanvasKit tests always run with a specific variant', () {
    expect(
      configuration.canvasKitVariant,
      anyOf(CanvasKitVariant.chromium, CanvasKitVariant.full),
      reason: 'canvasKitVariant must be set to "chromium" or "full" in canvaskit tests!',
    );
  });

  test('debugOverrideJsConfiguration can bypass (and restore) variant', () {
    // Set-up in the test_platform.dart file. See `_testBootstrapHandler`.
    final CanvasKitVariant originalValue = configuration.canvasKitVariant;
    expect(configuration.canvasKitVariant, isNot(CanvasKitVariant.auto));

    debugOverrideJsConfiguration(
      <String, Object?>{'canvasKitVariant': 'auto'}.jsify() as JsFlutterConfiguration?,
    );
    expect(configuration.canvasKitVariant, CanvasKitVariant.auto);

    debugOverrideJsConfiguration(null);
    expect(configuration.canvasKitVariant, originalValue);
  });
}
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'dart:convert';
import 'dart:typed_data';

import 'package:test/bootstrap/browser.dart';
import 'package:test/test.dart';
import 'package:ui/src/engine.dart';
import 'package:ui/ui.dart' as ui;

import '../common/test_initialization.dart';

void main() {
  internalBootstrapBrowserTest(() => testMain);
}

/// This is generated by impellerc, and included here as a source file to
/// simplify the build.
const String kJsonIPLR = r'''
{
  "sksl": {
    "entrypoint": "ink_sparkle_fragment_main",
    "shader": "// This SkSL shader is autogenerated by spirv-cross.\n\nfloat4 flutter_FragCoord;\n\nuniform vec4 u_color;\nuniform float u_alpha;\nuniform vec4 u_sparkle_color;\nuniform float u_sparkle_alpha;\nuniform float u_blur;\nuniform vec2 u_center;\nuniform float u_radius_scale


>
          </ul>
        </div>
      </doc:source>
      <doc:scenario>
         it('should check ng-repeat', function() {
           var r = using('.doc-example-live').repeater('ul li');
           expect(r.count()).toBe(2);
           expect(r.row(0)).toEqual(["1","John","25"]);
           expect(r.row(1)).toEqual(["2","Mary","28"]);
         });
      </doc:scenario>
    </doc:example>
 */
var ngRepeatDirective = ngDirective({
  transclude: 'element',
  priority: 1000,
  terminal: true,
  compile: function(element, attr, linker) {
    return function(scope, iterStartElement, attr){
      var expression = attr.ngRepeat;
      var match = expression.match(/^\s*(.+)\s+in\s+(.*)\s*$/),
        lhs, rhs, valueIdent, keyIdent;
      if (! match) {
        throw Error("Expected ngRepeat in form of '_item_ in _collection_' but got '" +
          expression + "'.");
      }
      lhs = match[1];
      rhs = match[2];
      match = lhs.match(/^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/);
      if (!match) {
        throw Error("'item' in 'item in collection' should be identifier or (key, value) but got '" +
            lhs + "'.");
      }
      valueIdent = match[3] || match[1];
      keyIdent = match[2];

      // Store a list of elements from previous run. This is a hash where key is the item from the
      // iterator, and the value is an array of objects with following properties.
      //   - scope: bound scope
      //   - element: previous element.
      //   - index: position
      // We need an array of these objects since the same object can be returned from the iterator.
      // We expect this to be a rare case.
      var lastOrder = new HashQueueMap();
      scope.$watch(function(scope){
        var index, length,
            collection = scope.$eval(rhs),
            collectionLength = size(collection, true),
            childScope,
            // Same as lastOrder but it has the current state. It will become the
            // lastOrder on the next iteration.
            nextOrder = new HashQueueMap(),
            key, value, // key/value of iteration
            array, last,       // last object information {scope, element, index}
            cursor = iterStartElement;     // current position of the node

        if (!isArray(collection)) {
          // if object, extract keys, sort them and use to determine order of iteration over obj props
          array = [];
          for(key in collection) {
            if (collection.hasOwnProperty(key) && key.charAt(0) != '$') {
              array.push(key);
            }
          }
          array.sort();
        } else {
          array = collection || [];
        }

        // we are not using forEach for perf reasons (trying to avoid #call)
        for (index = 0, length = array.length; index < length; index++) {
          key = (collection === array) ? index : array[index];
          value = collection[key];
          last = lastOrder.shift(value);
          if (last) {
            // if we have already seen this object, then we need to reuse the
            // associated scope/element
            childScope = last.scope;
            nextOrder.push(value, last);

            if (index === last.index) {
              // do nothing
              cursor = last.element;
            } else {
              // existing item which got moved
              last.index = index;
              // This may be a noop, if the element is next, but I don't know of a good way to
              // figure this out,  since it would require extra DOM access, so let's


#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Jun  8 22:05:09 2018

@author: liuchuang

栈 实现括号的检查

从空栈开始，从左到右处理括号字符串。
如果一个符号是一个开始符号，将其作为一个信号，
对应的结束符号稍后会出现。
另一方面，如果符号是结束符号，弹出栈，
只要弹出栈的开始符号可以匹配每个结束符号，
则括号保持匹配状态。
如果任何时候栈上没有出现符合开始符号的结束符号，
则字符串不匹配

"""

from pythonds.basic.stack import Stack

def parChecker(symbolString):
    s=Stack()
    balanced = True
    index = 0
    while index < len(symbolString) and balanced:
        symbol=symbolString[index]
        if symbol == "(":
            s.push(symbol)
        else:
            if s.isEmpty():
                balanced = False
            else:
                s.pop()

        index = index + 1

    if balanced and s.isEmpty():
        return True
    else:
        return False

print(parChecker('(((((())))'))
print(parChecker('((()))'))