ory"] = "Reiniciar Histórico de Missões",
    ["Respawn"] = "Reaparecimento",
    ["Right-Click"] = "Clique Direito",
    ["Routes"] = "Rotas",
    ["Save & Close"] = "Salvar/Fechar",
    ["Scanning server for items..."] = "Buscando o servidor por itens...",
    ["Scan the server for custom items"] = "Busca o servidor por itens customizados",
    ["Search"] = "Buscar",
    ["Search item vendors"] = "Buscar vendedores de itens",
    ["Search loot"] = "Buscar saque",
    ["Search object"] = "Buscar objeto",
    ["Search unit"] = "Buscar unidade",
    ["Server scan started..."] = "Busca no servidor iniciada...",
    ["Shift-Click"] = "Shift-Clique",
    ["Show"] = "Mostrar",
    ["Show all chests on map"] = "Mostrar todos os baús no mapa",
    ["Show all quests on map"] = "Mostrar todas as missões no mapa",
    ["Show all rare mobs of Level [min] to [max]"] = "Mostrar todos os monstros raros de Nível [min] a [max]",
    ["Show all taxi nodes of [faction]"] = "Mostrar todos os nós de vôo da [faction]",
    ["Show Arrow Along Routes"] = "Mostrar Seta ao Longo das Rotas",
    ["Show cluster icons with summarized locations and also display all spawn points of each quest objective"] = "Mostrar ícones agrupados com localizações resumidas e também exibir todos os locais de reaparecimento de cada objetivo de missão",
    ["Show configuration interface"] = "Mostrar interface de configuração",
    ["Show Current Quests"] = "Mostrar Missões Atuais",
    ["Show Database IDs"] = "Mostrar IDs da Base de Dados",
    ["Show database interface"] = "Mostrar inteface da base de dados",
    ["Show Database Results"] = "Mostrar Resultados da Busca",
    ["Show Help On Tooltips"] = "Mostrar Ajuda na Ferramenta de Dicas",
    ["Show herbs with an appropriate skill level for your character"] = "Mostrar ervas com um nível de habilidade adequado ao seu personagem",
    ["Show herbs with skill range of [min] to [max]"] = "Mostrar ervas com nível de habilidade de [min] a [max]",
    ["Show Level On Quest Log"] =  "Mostrar Nível no Registro de Missões",
    ["Show Level On Quest Tracker"] = "Mostrar Nível no Rastreador de Missões",
    ["Show map tracker"] = "Mostrar rastreador no mapa",
    ["Show mines with an appropriate skill level for your character"] = "Mostrar minérios com um nível de habilidade adequado ao seu personagem",
    ["Show mines with skill range of [min] to [max]"] = "Mostrar minérios com nível de habilidade de [min] a [max]",
    ["Show Navigation Arrow"] = "Mostrar Seta de Navegação",
    ["Show navigation arrow that points you to the nearest quest location."] = "Mostrar seta de navegação que aponta para a localização da missão mais próxima",
    ["Show quest arrow"] = "Exibe GPS",
    ["Show Quest Givers"] = "Mostrar Provedores de Missões",
    ["Show quest journal"] = "Mostrar diário de missões",
    ["Show Route Between Objects"] = "Mostrar Rota Entre Objetos",
    ["Show Route On Minimap"] = "Mostrar Rota no Minimapa",
    ["Show specific quest"] = "Mostrar missão específica",
    ["Show Tooltips"] = "Mostrar Ferramenta


from the directory of input TypeScript file.
	 *
	 * Either 'configFile' or 'configFileName' can be specified; both cannot be specified.
	 * ('configFileName' is an alias of 'configFile'.)
	 */
	configFile?: string | undefined;
	/**
	 * Specifies the TypeScript project file (such as tsconfig.json) or the directory path.
	 * If omitted, tsconfig.json will be searched from the directory of input TypeScript file.
	 *
	 * Either 'configFile' or 'configFileName' can be specified; both cannot be specified.
	 * ('configFileName' is an alias of 'configFile'.)
	 */
	configFileName?: string | undefined;
	/**
	 * Temporal output directory for emitted JS files from TypeScript compiler.
	 * If not specified, JS files are not emitted onto the real file systm.
	 */
	tempBuildDir?: string | undefined;
	/** The locale/language for TypeScript messages [default: (unspecified)] */
	locale?: string | undefined;
	/**
	 * An object containing handlers for events and loggings. [default: (none)]
	 * To output logs, handlers must be specified.
	 */
	logger?: {
		/**
		 * Called when an usual log message is outputted.
		 * @param message a message
		 * @param details a detail object for the message if available
		 */
		logInfo?(message: string, details?: any): void;
		/**
		 * Called when a verbose log message is outputted.
		 * @param message a message
		 * @param details a detail object for the message if available
		 */
		logVerbose?(message: string, details?: any): void;
	};
	/**
	 * Suppress logs from the loader. If true, the methods in 'logger' are not called.
	 */
	silent?: boolean;
	/**
	 * Outputs the loader version on the first initialization. Ignored if 'silent' is true.
	 */
	showVersion?: boolean;
	/**
	 * Specifies true if using module resolution method from TypeScript only.
	 * By default, the plugin uses enhanced-resolve with webpack configuration for module resolution.
	 */
	useTsModuleResolution?: boolean | undefined;
	/**
	 * Additional compiler options for TypeScript files.
	 * This overrides the options in the config file.
	 *
	 * NOTE: For the purpose of this loader, you cannot specify additional options per files;
	 * otherwise an unexpected behavior may occur.
	 */
	compilerOptions?: ts.CompilerOptions;
}
import {Component} from 'angular2/core';
import {Router} from "angular2/router";
import {Knight} from "./knight";

@Component({
    selector: 'knight',
    template: `

            Name:
            <input [(ngModel)]="knight.name" type="text" id="name">

            Level:
            <input [(ngModel)]="knight.level" type="text" id="level">

            Armor:
            <input [(ngModel)]="knight.armor" type="text" id="armor">

            Sword:
            <input [(ngModel)]="knight.sword" type="text" id="sword">

            Health:
            <input [(ngModel)]="knight.health" type="text" id="health">

        <button (click)="onCreateNew()">Create new Knight from this knight</button>
        `,
    //relative to class KnightComponent's knight
    //data from knightList will flow in to it
    inputs: ["knight"],
    styles: [`
        label {
            display: inline-block;


id;
                    long intId;
                    if (Int64.TryParse(idString, out intId))
                    {
                        element = ElementSelector.ByElementId(intId);
                        break;
                    }

                    element = ElementSelector.ByUniqueId(idString);
                    break;

                default:
                    throw new InvalidOperationException(Revit.Properties.Resources.InvalidElementId);
            }

            return element;
        }

        internal static IEnumerable<Autodesk.Revit.DB.Level> GetAllLevels()
        {
            var collector = new Autodesk.Revit.DB.FilteredElementCollector(DocumentManager.Instance.CurrentDBDocument);
            collector.OfClass(typeof(Autodesk.Revit.DB.Level));
            return collector.ToElements().Cast<Autodesk.Revit.DB.Level>();
        }

        public static List<List<Element>> RoomsByStatus()
        {
            var roomsByStatus = new List<List<Element>>();
            Document doc = DocumentManager.Instance.CurrentDBDocument;
            var allRooms = new FilteredElementCollector(doc)
                .OfCategory(BuiltInCategory.OST_Rooms)
                .WhereElementIsNotElementType()
                .Cast<Autodesk.Revit.DB.Architecture.Room>();


neSourceReq("summary", this.widget._bookId);
    var entryPoint =
        await Repository().getBookGenuineSource(genuineSourceReq.toJson());
    BookGenuineSourceResp bookGenuineSourceResp =
        BookGenuineSourceResp(entryPoint);
    if (bookGenuineSourceResp.data != null &&
        bookGenuineSourceResp.data.length > 0) {
      await Repository()
          .getBookChapters(bookGenuineSourceResp.data[0].id)
          .then((json) {
        BookChaptersResp bookChaptersResp = BookChaptersResp(json);
        setState(() {
          _listBean = bookChaptersResp.chapters;
        });
      }).catchError((e) {
        //请求出错
        print(e.toString());
      });
    }
  }

  Widget itemView(int index) {
    return Material(
      color: Colors.transparent,
      child: InkWell(
        onTap: () {
          Navigator.push(context, MaterialPageRoute(builder: (context) {
            return BookContentPage(
                _listBean[index].link,
                this.widget._bookId,
                this.widget._image,
                index,
                _isReversed,
                this.widget._bookName,
                0);
          }));
        },
        child: Padding(
          padding: EdgeInsets.fromLTRB(
              Dimens.leftMargin, 16, Dimens.rightMargin, 16),
          child: Row(
            crossAxisAlignment: CrossAxisAlignment.center,
            mainAxisSize: MainAxisSize.max,
            children: <Widget>[
              Padding(
                padding: EdgeInsets.fromLTRB(0, 4, 0, 0),
                child: Text(
                  "${index + 1}.  ",
                  style: TextStyle(fontSize: 9, color: MyColors.textBlack9),
                ),
              ),
              Expanded(
                child: Text(
                  _listBean[index].title,
                  style: TextStyle(
                      fontSize: Dimens.textSizeM, color: MyColors.textBlack9),
                ),
              ),
              _listBean[index].isVip
                  ? Image.asset(
                      "images/icon_chapters_vip.png",
                      width: 16,
                      height: 16,
                    )
                  : Container(),
            ],
          ),
        ),
      ),
    );
  }
}
import 'dart:convert' show json;

import 'package:json_annotation/json_annotation.dart';

class FuzzySearchResp {

  int total;
  bool ok;
  List<FuzzySearchList> books;

  FuzzySearchResp.fromParams({this.total, this.ok, this.books});

  factory FuzzySearchResp(jsonStr) => jsonStr == null ? null : jsonStr is String ? new FuzzySearchResp.fromJson(json.decode(jsonStr)) : new FuzzySearchResp.fromJson(jsonStr);

  FuzzySearchResp.fromJson(jsonRes) {
    total = jsonRes['total'];
    ok = jsonRes['ok'];
    books = jsonRes['books'] == null ? null : [];

    for (var booksItem in books == null ? [] : jsonRes['books']){
      books.add(booksItem == null ? null : new FuzzySearchList.fromJson(booksItem));
    }
  }

  @override
  String toString() {
    return '{"total": $total,"ok": $ok,"books": $books}';
  }
}

class FuzzySearchList {

  int wordCount;
  @JsonKey(name: "_id")
  String id;
  String author;
  String cat;
  String cover;
  String title;

  FuzzySearchList.fromParams({this.wordCount, this.id, this.author, this.cat, this.cover, this.title});

  FuzzySearchList.fromJson(jsonRes) {
    wordCount = jsonRes['wordCount'];
    id = jsonRes['_id'];
    author = jsonRes['author'];
    cat = jsonRes['cat'];
    cover = jsonRes['cover'];
    title = jsonRes


mbus
 *
 * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
 */
/**
 * Shape/Polygon/Square
 *
 * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
 */
/**
 * Shape/Polygon/Star
 *
 * @todo check if setting a z-index by default is a good thing
 * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
 */
/**
 * Shape/Polygon/Trapezoid
 *
 * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
 */
/**
 * Shape/Polygon/Triangle
 *
 * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
 */
/**
 * Shape/Symbol
 *
 * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
 */
/**
 * Shape/Symbol/Diamond
 *
 * @todo add height support
 *
 * @author Alexander Futekov
 * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
 */
/**
 * Shape/Symbol/Egg
 *
 * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
 */
/**
 * Shape/Symbol/Heart
 *
 * @author Nicolas Gallagher @necolas
 * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
 */
/**
 * Shape/Symbol/Infinity
 *
 * @author Nicolas Gallagher @necolas
 * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
 */
/**
 * Shape/Symbol/Pacman
 *
 * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
 */
/**
 * Shape/Symbol/Yin-yang
 *
 * @author Alexander Futekov
 * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
 */
/**
 * Micro clearfix hack
 *
 * The clearfix hack is a popular way to clear floats without resorting to using presentational markup. This article presents an update to the clearfix method that further reduces the amount of CSS required.
 * Known support: Firefox 2+, Safari 2+, Chrome, Opera 9.27+, IE 6+, IE Mac.
 *
 * @thanks Nicolas Gallagher @necolas
 * @link http://nicolasgallagher.com/micro-clearfix-hack/
 */
/**
 * Note IE7/6 doesn't understand pseudo element as ::before and ::after
 * IE8 need to have :before and not ::before
 * So use only : and not :: if you want to support IE8
 * IE9 Webkit Firefox Opera understand ::
 */
/**
 * UI convex effect from one color
 *
 * @todo merge with ui-button ?
 *
 * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
 */
/**
 * UI Glossy helper
 *
 * @deprecated
 * @todo Remove in 0.4
 * @see background/gradients
 *
 * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
 */
/**
 * UI simple gradient from one color
 *
 * @todo merge with ui-button ?
 *
 * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
 */
/**
 * Shape/Polygon/Triangle
 *
 * @author Maxime Thirouin maxime.thirouin@gmail.com @MoOx
 */
/**
 * Keyboard key touch
 * A simple stylesheet for rendering beautiful keyboard-style elements.

 * @author Michael Hüneburg http://michaelhue.com/keyscss
 * @link https://github.com/michaelhue/keyscss (commit 76bb603e921d0145362e0f60eabb79d4f69cbda0)
 *
 * @author Maxime Thirouin @MoOx maxime.thirouin@gmail.com
*/
/**
 * Menu dropdown helper
 *
 * @author Maxime Thirouin @MoOx maxime.thirouin@gmail.com
*/
/**
 * U


w.onCheckChange(selected);
        }
    }
});

<!DOCTYPE html>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>The source code</title>
  <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />

/**
 * Creates the base structure of CheckboxGroup.
 * @member Ext.form.CheckboxGroup
 */
@mixin extjs-form-checkboxgroup {

    .#{$prefix}form-checkboxgroup-body {
        padding: 1px 4px 1px 4px;
    }

    .#{$prefix}form-invalid {
        .#{$prefix}form-checkboxgroup-body {
            border: 1px solid #c30!important;
            background: transparent repeat-x bottom;
            background-image: theme-background-image($theme-name, 'grid/invalid_line.gif');
            padding: 1px 3px 0 3px;
        }
    }

    .#{$prefix}check-group-alt {
        background: adjust-color($base-color, $hue: 2.667deg, $saturation: -7.168%, $lightness: 3.725%);

        border-top:1px dotted adjust-color($base-color, $hue: 17.193deg, $saturation: -40.827%, $lightness: -9.412%);
        border-bottom:1px dotted adjust-color($base-color, $hue: 17.193deg, $saturation: -40.827%, $lightness: -9.412%);
    }

    .#{$prefix}form-check-group-label {
        color: #333;

        border-bottom: 1px solid #333;

        margin: 0 30px 5px 0;
        padding: 2px;
    }
}

<!DOCTYPE html>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>The source code</title>
  <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />

/**
 * Utility class for setting/reading values from browser cookies.
 * Values can be written using the {@link #set} method.
 * Values can be read using the {@link #get} method.
 * A cookie can be invalidated on the client machine using the {@link #clear} method.
 */
Ext.define('Ext.util.Cookies', {
    singleton: true,

    /**
     * Creates a cookie with the specified name and value. Additional settings for the cookie may be optionally specified
     * (for example: expiration, access restriction, SSL).
     * @param {String} name The name of the cookie to set.
     * @param {Object} value The value to set for the cookie.
     * @param {Object} [expires] Specify an expiration date the cookie is to persist until. Note that the specified Date
     * object will be converted to Green


tom_attribute('icon') then
	          icon_name = mclass.custom_attribute_value('icon')
               end

	       if imgui.ImageButton(
	          'toolbox_'..icon_name,
	          main.resolve_icon('tools/'..icon_name, true),
		  size,size
	       ) then
	          tools.tool(tool_class_name)
	       end
	       autogui.tooltip(autogui.help(mclass))

	       if mclass.nb_properties() > OGF.Object.nb_properties() then
		  if imgui.BeginPopupContextItem(tool_class_name.."##ops") then
	             tools.tool(tool_class_name)
		     autogui.properties_editor(tools.current())
	             imgui.EndPopup()
	          end
	       end

	       imgui.SameLine()
	       if imgui.GetContentRegionAvail() < size then
	          imgui.NewLine()
		  imgui.Spacing()
	       end

	    end

	    if pushed_color then
               imgui.PopStyleColor(1)
	    end

	 end
end

graphite_main_window.add_module(toolbox_gui)

--------------------------------------------------------

tools = OGF.SceneGraphToolsManager.create(main.render_area)

ray_pick=OGF.RayPicker.create()

gom.connect(
   main.render_area.mouse_down, ray_pick.grab
).if_arg('control', 'false').if_arg('shift', 'false')

-- When grob selection tool is active, and when using
-- <ctrl> to move the camera, ensure that when releasing
-- right mouse one does not get the pulldown context menu
gom.connect(
   main.render_area.mouse_down,
   function()
      main.picked_grob = nil
   end
).if_arg('control', 'true')

gom.connect(
   main.render_area.mouse_move, ray_pick.drag
).if_arg('control', 'false').if_arg('shift', 'false')

gom.connect(
   main.render_area.mouse_up, ray_pick.release
).if_arg('control', 'false').if_arg('shift', 'false')

gom.connect(ray_pick.ray_grab,   tools.grab   )
gom.connect(ray_pick.ray_drag,   tools.drag   )
gom.connect(ray_pick.ray_release,tools.release)

gom.connect(
   scene_graph.scene_graph_shader_manager.focus_changed,
   tools.focus
)

----------------------------------------------------------


he DER-encoded value, not any tag or
 * length bytes.
 *
 * @param bytes the byte buffer.
 *
 * @return the OID dot-separated string.
 */
asn1.derToOid = function(bytes) {
  var oid;

  // wrap in buffer if needed
  if(typeof bytes === 'string') {
    bytes = forge.util.createBuffer(bytes);
  }

  // first byte is 40 * value1 + value2
  var b = bytes.getByte();
  oid = Math.floor(b / 40) + '.' + (b % 40);

  // other bytes are each value in base 128 with 8th bit set except for
  // the last byte for each value
  var value = 0;
  while(bytes.length() > 0) {
    b = bytes.getByte();
    value = value << 7;
    // not the last byte for the value
    if(b & 0x80) {
      value += b & 0x7F;
    } else {
      // last byte
      oid += '.' + (value + b);
      value = 0;
    }
  }

  return oid;
};

/**
 * Converts a UTCTime value to a date.
 *
 * Note: GeneralizedTime has 4 digits for the year and is used for X.509
 * dates passed 2049. Parsing that structure hasn't been implemented yet.
 *
 * @param utc the UTCTime value to convert.
 *
 * @return the date.
 */
asn1.utcTimeToDate = function(utc) {
  /* The following formats can be used:

    YYMMDDhhmmZ
    YYMMDDhhmm+hh'mm'
    YYMMDDhhmm-hh'mm'
    YYMMDDhhmmssZ
    YYMMDDhhmmss+hh'mm'
    YYMMDDhhmmss-hh'mm'

    Where:

    YY is the least significant two digits of the year
    MM is the month (01 to 12)
    DD is the day (01 to 31)
    hh is the hour (00 to 23)
    mm are the minutes (00 to 59)
    ss are the seconds (00 to 59)
    Z indicates that local time is GMT, + indicates that local time is
    later than GMT, and - indicates that local time is earlier than GMT
    hh' is the absolute value of the offset from GMT in hours
    mm' is the absolute value of the offset from GMT in minutes */
  var date = new Date();

  // if YY >= 50 use 19xx, if YY < 50 use 20xx
  var year = parseInt(utc.substr(0, 2), 10);
  year = (year >= 50) ? 1900 + year : 2000 + year;
  var MM = parseInt(utc.substr(2, 2), 10) - 1; // use 0-11 for month
  var DD = parseInt(utc.substr(4, 2), 10);
  var hh = parseInt(utc.substr(6, 2), 10);
  var mm = parseInt(utc.substr(8, 2), 10);
  var ss = 0;

  // not just YYMMDDhhmmZ
  if(utc.length > 11) {
    // get character after minutes
    var c = utc.charAt(10);
    var end = 10;

    // see if seconds are present
    if(c !== '+' && c !== '-') {
      // get seconds
      ss = parseInt(utc.substr(10, 2), 10);
      end += 2;
    }
  }

  // update date
  date.setUTCFullYear(year, MM, DD);
  date.setUTCHours(hh, mm, ss, 0);

  if(end) {
    // get +/- after end of time
    c = utc.charAt(end);
    if(c === '+' || c === '-') {
      // get hours+minutes offset
      var hhoffset = parseInt(utc.substr(end + 1, 2), 10);
      var mmoffset = parseInt(utc.substr(end + 4, 2), 10);

      // calculate offset in milliseconds
      var offset = hhoffset * 60 + mmoffset;
      offset *= 60000;

      // apply offset
      if(c === '+


0345',	'',	'0',	'{"isHide":1,"clicks":[1,0]}',	'1',	''},
{'5004103',	'',	'',	'7',	'7',	'click3',	'[[-522.8,60.9,165,165,45]]',	'50040346,50040347,50040348',	'',	'0',	'{"isHide":1,"clicks":[1,0]}',	'1',	''},
{'5004103',	'',	'',	'8',	'7',	'click4',	'[[-397.8,-65.1,165,165,45]]',	'50040349,50040350,50040351',	'',	'0',	'{"isHide":1,"clicks":[1,0]}',	'1',	''},
{'5004103',	'',	'',	'9',	'2',	'click5',	'[[-139.39,167.5,278.79,138.07,0]]',	'50040352,50040353,50040354',	'',	'0',	'',	'1',	''},
{'5004103',	'',	'',	'10',	'2',	'guochang',	'[[447,212,165,165,45]]',	'50040361,50040362,50040363',	'',	'0',	'{"isHide":1,"changeIdle":["idle1",1000,5,6,7,8,13],"activation":{"9":1}}',	'1',	''},
{'5004103',	'',	'',	'11',	'2',	'guochang',	'[[576,84.7,165,165,45]]',	'50040364,50040365,50040366',	'',	'0',	'{"isHide":1,"changeIdle":["idle4",1000,5,6,7,8,13],"activation":{"9":0}}',	'1',	''},
{'5004103',	'',	'',	'12',	'2',	'guochang',	'[[447,-44.3,165,165,45]]',	'50040367,50040368,50040369',	'',	'0',	'{"isHide":1,"changeIdle":["idle5",1000,5,6,7,8,13],"activation":{"9":0}}',	'1',	''},
{'5004103',	'',	'',	'13',	'7',	'click8',	'[[656.6,-441.5,342.66,588.84,0]]',	'',	'',	'0',	'{"clicks":[0.55,1]}',	'1',	''},
{'5004103',	'',	'',	'14',	'2',	'click6',	'[[115.2,66.5,1183.75,1243,0]]',	'50040382,50040383,50040384',	'',	'0',	'{"isHide":1}',	'2',	''},
{'5004103',	'',	'',	'15',	'2',	'click1',	'[[-92.1,-109.01,225.75,379.23,0]]',	'50040370,50040371,50040372,50040341',	'',	'0',	'',	'2',	''},
{'5004103',	'',	'',	'16',	'2',	'click2',	'[[133.4,-109.01,225.13,379.23,0]]',	'50040373,50040374,50040375',	'',	'0',	'',	'2',	''},
{'5004103',	'',	'',	'17',	'2',	'click3',	'[[6.1,278.6,281.29,396.89,0]]',	'50040376,50040377,50040378',	'',	'0',	'{"


s should give the same result for any zoom level");
	}

	@Test
	public void testCalculateGetBoundsWithVerticalIndent() {
		Display display = Display.getDefault();
		Shell shell = new Shell(display);

		TextLayout layout = new TextLayout(display);
		layout.setVerticalIndent(16);
		layout.setText(text);
		Rectangle unscaledBounds = layout.getBounds();

		int scalingFactor = 2;
		int newZoom = DPIUtil.getNativeDeviceZoom() * scalingFactor;
		DPITestUtil.changeDPIZoom(shell, newZoom);
		TextLayout scaledLayout = new TextLayout(display);
		scaledLayout.setVerticalIndent(16);
		scaledLayout.setText(text);
		Rectangle scaledBounds = scaledLayout.getBounds();

		assertNotEquals(layout.nativeZoom, scaledLayout.nativeZoom, "The native zoom for the TextLayouts must differ");
		assertEquals(unscaledBounds.height, scaledBounds.height, 1, "The public API for getBounds with vertical indent > 0 should give a similar result for any zoom level");
	}

}
/*******************************************************************************
 * Copyright (c) 2024 Yatta Solutions
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     Yatta Solutions - initial API and implementation
 *******************************************************************************/
package org.eclipse.swt.graphics;

import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import java.util.*;

import org.eclipse.swt.internal.*;
import org.eclipse.swt.internal.gdip.*;
import org.eclipse.swt.widgets.*;
import org.junit.jupiter.api.*;
import org.junit.jupiter.api.extension.*;

@ExtendWith(PlatformSpecificExecutionExtension.class)
@ExtendWith(WithMonitorSpecificScalingExtension.class)
class PathWin32Tests {

	int zoom = 100;
	int scaledZoom = 200;

	@Test
	public void testPathMustBeScaledOnZoomLevelChange() {
		Display display = Display.getDefault();
		Path path = new Path(display);
		path.addArc(0, 0, 10, 10, 0, 90);
		PathData pathData = path.getPathData();
		DPIUtil.setDeviceZoom(scaledZoom);
		Path scaledPath = new Path(display, pathData);
		PathData scaledPathData = scaledPath.getPathData();
		assertTrue("PathData types don't change on zoom level change", Arrays.equals(pathData.types, scaledPathData.types));
		assertTrue("PathData points don't change on zoom level change", Arrays.equals(pathData.points, scaledPathData.points));
	}

	@Test
	public void testHandlesExistForEachZoomLevelInHashMap() {
		Display display = Display.getDefault();
		DPIUtil.setDeviceZoom(zoom);
		Path path = new Path(display);
		path.addArc(0, 0, 10, 10, 0, 90);
		path.getHandle(zoom);
		assertTrue("zoomLevelToHandle should contain initial zoom's handle", path.toString().contains(zoom + "="));
		assertFalse("zoomLevelToHandle should not contains scaled handle", path.toString().contains(scaledZoom + "="));
		path.getHandle(scaledZoom);
		assertTrue("zoomLevelToHandle should contain scaled handle", path.toString().contains(scaledZoom + "="));
	}

	@Test
	public void testBoundsAreScaledWRTZoomLevel() {
		Display display = Display.getDefault();
		DPIUtil.setDeviceZoom(zoom);
		int scalingFactor = scaledZoom/zoom;
		Path path = new Path(display);
		path.addArc(0, 0, 10, 10, 0, 90);
		RectF bounds = new RectF();
		Rect


End If

   ' Draw icon if any:
   lIconIndex = ColumnImage(m_tGroupedCol(lGroupIndex).lColumn)
   If (lIconIndex > -1) Then
      If (ColumnImageOnRight(m_tGroupedCol(lGroupIndex).lColumn)) Then
         ImageList_Draw m_hIml, lIconIndex, lhDC, tR.right - 20, tR.top +
          (tR.bottom - tR.top - 16) \ 2, ILD_TRANSPARENT
         tR.right = tR.right - 20
      Else
         ImageList_Draw m_hIml, lIconIndex, lhDC, tR.left + 4, tR.top +
          (tR.bottom - tR.top - 16) \ 2, ILD_TRANSPARENT
         tR.left = tR.left + 20
      End If
   End If
   tR.right = tR.right - 1
   tR.left = tR.left + 1
   sText = ColumnHeader(m_tGroupedCol(lGroupIndex).lColumn)
   ' Draw text:
   SetBkMode lhDC, TRANSPARENT
   If (m_bIsNt) Then
      DrawTextW lhDC, StrPtr(" " & sText & " "), -1, tR, lFmt
   Else
      DrawTextA lhDC, " " & sText & " ", -1, tR, lFmt
   End If

   DeleteObject hPenLight
   DeleteObject hPenDark

End Sub

Home . VB . Code . Controls . TreeView . Multi-Column TreeView Control . VB5 MultiColumn Tree Full Source . cHeaderControl.cls

Copyright © 2004 Steve McMahon steve@vbaccelerator.com.  All rights reserved.
Last Updated: 18 April 2004


| indent(4) }}
                env->SetObjectArrayElement({{ output }}, idx, element);
            }
        {% elif member.type.name.get() in ['int', 'int32_t', 'uint32_t'] %}
            jintArray {{ output }} = env->NewIntArray({{ size }});
            {{'    '}}env->SetIntArrayRegion({{ output }}, 0, {{ size }}, reinterpret_cast<const jint *>({{ input }}));
        {% else %}
            {{ unreachable_code() }}
        {% endif %}
    {% elif member.type.category == 'object' %}
        jobject {{ output }};
        {
            jclass clz = env->FindClass("{{ jni_name(member.type) }}");
            jmethodID init = env->GetMethodID(clz, "<init>", "(J)V");
            {{ output }} = env->NewObject(clz, init, reinterpret_cast<jlong>({{ input }}));
        }
    {% elif member.type.category in ['callback info', 'structure'] %}
        jobject {{ output }} = ToKotlin(env, {{ '&' if member.annotation not in ['*', 'const*'] }}{{ input }});
    {% elif member.type.name.get() == 'void *' %}
        jlong {{ output }} = reinterpret_cast<jlong>({{ input }});
    {% elif member.type.category in ['bitmask', 'enum', 'native'] %}
        //* We use Kotlin value classes for bitmask and enum, and they get inlined as lone values.
        {{ to_jni_type(member.type) }} {{ output }} = static_cast<{{ to_jni_type(member.type) }}>({{ input }});
    {% elif member.type.category in ['callback function', 'function pointer'] %}
        jobject {{ output }} = nullptr;
        dawn::WarningLog() << "while converting {{ as_cType(member.type.name) }}: Native callbacks cannot be converted to Kotlin";
    {% else %}
        {{ unreachable_code() }}
    {% endif %}
{% endmacro %}
//* Copyright 2022 The Dawn & Tint Authors
//*
//* Redistribution and use in source and binary forms, with or without
//* modification, are permitted provided that the following conditions are met:
//*
//* 1. Redistributions of source code must retain the above copyright notice, this
//*    list of conditions and the following disclaimer.
//*
//* 2. 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.
//*
//* 3. Neither the name of the copyright holder nor the names of its
//*    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.

{% set impl_dir = metadata.impl_dir + "/" if metadata.impl_dir else "" %}
{% set namespace_name = Name(metadata.native_namespace) %}
{% set native_namespace = namespace_name.namespace_case() %}
{% set native_dir = impl_dir + namespace_name.Dirs() %}
{% set prefix = metadata.proc_table_prefix.lower() %}
#include "{{native


0xff]
// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode

v_cmp_lt_i32 vcc, v1, v2 row_shl:15
// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x0f,0x01,0xff]
// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode

v_cmp_lt_i32 vcc, v1, v2 row_shr:1
// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x11,0x01,0xff]
// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode

v_cmp_lt_i32 vcc, v1, v2 row_shr:15
// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x1f,0x01,0xff]
// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode

v_cmp_lt_i32 vcc, v1, v2 row_ror:1
// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x21,0x01,0xff]
// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode

v_cmp_lt_i32 vcc, v1, v2 row_ror:15
// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x2f,0x01,0xff]
// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode

v_cmp_lt_i32 vcc, v1, v2 row_share:0 row_mask:0xf bank_mask:0xf
// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x50,0x01,0xff]
// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode

v_cmp_lt_i32 vcc, v1, v2 row_share:15 row_mask:0x0 bank_mask:0x1
// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x5f,0x01,0x01]
// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode

v_cmp_lt_i32 vcc, v1, v2 row_xmask:0 row_mask:0x1 bank_mask:0x3 bound_ctrl:1 fi:0
// W64: encoding: [0xfa,0x04,0x82,0x7c,0x01,0x60,0x09,0x13]
// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operands are not valid for this GPU or mode

v_cmp_lt_i32 vcc, v255, v255 row_xmask:15 row_mask:0x3 bank_mask:0x0 bound_ctrl:0 fi:1
// W64: encoding: [0xfa,0xfe,0x83,0x7c,0xff,0x6f,0x05,0x30]
// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: operand


   #[inline(always)]
    pub fn ep_base(&mut self) -> EP_BASE_W {
        EP_BASE_W { w: self }
    }
    #[doc = "Writes raw bits to the register."]
    #[inline(always)]
    pub unsafe fn bits(&mut self, bits: u32) -> &mut Self {
        self.0.bits(bits);
        self
    }
}
#[doc = "USB Endpoint Descriptor Table Base Address\n\nThis register you can [`read`](crate::generic::Reg::read), [`write_with_zero`](crate::generic::Reg::write_with_zero), [`reset`](crate::generic::Reg::reset), [`write`](crate::generic::Reg::write), [`modify`](crate::generic::Reg::modify). See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [ep_base](index.html) module"]
pub struct EP_BASE_SPEC;
impl crate::RegisterSpec for EP_BASE_SPEC {
    type Ux = u32;
}
#[doc = "`read()` method returns [ep_base::R](R) reader structure"]
impl crate::Readable for EP_BASE_SPEC {
    type Reader = R;
}
#[doc = "`write(|w| ..)` method takes [ep_base::W](W) writer structure"]
impl crate::Writable for EP_BASE_SPEC {
    type Writer = W;
}
#[doc = "`reset()` method sets EP_BASE to value 0"]
impl crate::Resettable for EP_BASE_SPEC {
    #[inline(always)]
    fn reset_value() -> Self::Ux {
        0
    }
}
// Copyright 2019-2021 Tauri Programme within The Commons Conservancy
// SPDX-License-Identifier: Apache-2.0
// SPDX-License-Identifier: MIT

use std::{fs::File, io::BufReader};
mod utils;

fn main() {
  let tauri_data = &utils::tauri_root_path()
    .join("gh-pages")
    .join("tauri-data.json");
  let tauri_recent = &utils::tauri_root_path()
    .join("gh-pages")
    .join("tauri-recent.json");

  // current data
  let current_data_buffer = BufReader::new(
    File::open(&utils::target_dir().join("bench.json")).expect("Unable to read current data file"),
  );
  let current_data: utils::BenchResult =
    serde_json::from_reader(current_data_buffer).expect("Unable to read current data buffer");

  // all data's
  let all_data_buffer =
    BufReader::new(File::open(&tauri_data).expect("Unable to read all data file"));
  let mut all_data: Vec<utils::BenchResult> =
    serde_json::from_reader(all_data_buffer).expect("Unable to read all data buffer");

  // add current data to alls data
  all_data.push(current_data);

  // use only latest 20 elements from alls data
  let recent: Vec<utils::BenchResult>;
  if all_data.len() > 20 {
    recent = all_data[all_data.len() - 20..].to_vec();
  } else {
    recent = all_data.clone();
  }

  // write json's
  utils::write_json(
    tauri_data
      .to_str()
      .expect("Something wrong with tauri_data"),
    &serde_json::to_value(&all_data).expect("Unable to build final json (alls)"),
  )
  .expect(format!("Unable to write {:?}", tauri_data).as_str());

  utils::write_json(
    tauri_recent
      .to_str()


-mobile-sidebar .hp-sidebar .hp-sidebar-container .hp-sidebar-header-menu>ul>li>ul li a .menu-arrow{margin-right:4px}.hp-mobile-sidebar .hp-sidebar .hp-sidebar-container .hp-sidebar-footer{padding:0 12px}.hp-sidebar-dropdown-container{z-index:99}.hp-sidebar-dropdown-container ul{min-width:160px;margin:0;border-radius:7px;padding:0 4px;overflow-y:auto;overflow-x:hidden}.hp-sidebar-dropdown-container ul:before{content:"";position:absolute;top:0;left:4px;right:4px;bottom:0;border-radius:7px;background:#f0f3f5;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.012),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.012),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.hp-sidebar-dropdown-container ul li{list-style:none;position:relative}.hp-sidebar-dropdown-container ul li a{font-size:14px;color:#636e72;padding:13px 12px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin:4px 0;-webkit-transition:.3s;transition:.3s;position:relative;overflow:hidden}.hp-sidebar-dropdown-container ul li a>span{position:relative}.hp-sidebar-dropdown-container ul li a:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#ebfafa;opacity:0}.hp-sidebar-dropdown-container ul li a:hover{color:#0010f7}.hp-sidebar-dropdown-container ul li a.active{color:#0010f7}.hp-sidebar-dropdown-container ul li a.active:before{opacity:1}.hp-sidebar-dropdown-container ul li a .menu-arrow{position:relative;width:20px;height:20px;margin-right:-7px;-webkit-transition:.3s;transition:.3s}.hp-sidebar-dropdown-container ul li a .menu-arrow:before{content:"";position:absolute;top:50%;right:0;width:100%;height:100%;-webkit-transform:translate(0,-50%) rotate(-90deg);transform:translate(0,-50%) rotate(-90deg);background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none'%3E%3Cpath stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-miterlimit='10' stroke-width='1.5' d='M19.92 8.95l-6.52 6.52c-.77.77-2.03.77-2.8 0L4.08 8.95'/%3E%3C/svg%3E") transparent no-repeat 50%/contain}.hp-sidebar-dropdown-container ul li .submenu-children{position:absolute;top:0;left:100%}@media screen and (max-width:1199px){.hp-mobile-sidebar .hp-sidebar{display:block}.hp-sidebar{display:none}}@font-face{font-family:remixicon;src:url("remixicon.eot");src:url("remixicon.eot") format("embedded-opentype"),url("remixicon.woff2") form


..3 + name_len];
    Some(format!("Replace `\\k<{name}>` with `::{name}`"))
}
<filename>tests/taproot_script_spend.rs
use bitcoin::{
    schnorr,
    secp256k1::{Message, Secp256k1},
    util::taproot,
};
use secp256k1_zkp::MusigAggNonce;
use swapper::taproot::TaprootContract;

use rand::thread_rng;

#[test]
fn musig_keygen_tapscript_spend() {
    let s = Secp256k1::new();
    let mut rng = thread_rng();

    let keypair = schnorr::KeyPair::new(&s, &mut rng);
    let oth_keypair = schnorr::KeyPair::new(&s, &mut rng);

    let pubkeys = [
        schnorr::PublicKey::from_keypair(&s, &keypair),
        schnorr::PublicKey::from_keypair(&s, &oth_keypair),
    ];
    let timelock_keypair = schnorr::KeyPair::new(&s, &mut rng);

    let mut contract = TaprootContract::with_musig_keygen(
        &s,
        keypair,
        &pubkeys,
        schnorr::PublicKey::from_keypair(&s, &timelock_keypair),
    )
    .unwrap();
    let mut oth_contract = TaprootContract::with_musig_keygen(
        &s,
        oth_keypair,
        &pubkeys,
        schnorr::PublicKey::from_keypair(&s, &timelock_keypair),
    )
    .unwrap();

    let _tweak_pub = contract.musig_pubkey_tweak_add(&s, &[42; 32]).unwrap();
    let _oth_tweak_pub = oth_contract.musig_pubkey_tweak_add(&s, &[69; 32]).unwrap();

    let msg = Message::from_slice(&[0; 32]).unwrap();

    contract
        .musig_nonce_gen(&s, /*session_id*/ &[1; 32], &msg, None)
        .unwrap();
    oth_contract
        .musig_nonce_gen(&s, /*session_id*/ &[1; 32], &msg, None)
        .unwrap();

    let agg_nonce = MusigAggNonce::new(
        &s,
        &[
            *contract.musig_pub_nonce().unwrap(),
            *oth_contract.musig_pub_nonce().unwrap(),
        ],
    )
    .unwrap();

    contract
        .musig_nonce_process(&s, &agg_nonce, &msg, None)
        .unwrap();
    oth_contract
        .musig_nonce_process(&s, &agg_nonce, &msg, None)
        .unwrap();

    let lock_sequence = 10;
    let leaf_version = taproot::LeafVersion::default();
    contract
        .musig_create_contract(&s, lock_sequence, leaf_version)
        .unwrap();
    oth_contract
        .musig_create_contract(&s, lock_sequence, leaf_version)
        .unwrap();
}
use std::ops::{Add, AddAssign, Sub, SubAssign};
use std::time::Duration;

#[derive(Copy, Clone, Debug, PartialEq, PartialOrd, Hash)]
pub struct Instant(Duration);

impl Ord for Instant {
    fn cmp(&self, other: &Self) -> std::cmp::Ordering {
        self.partial_cmp(other)
            .expect("an instant should never be NaN or Inf.")
    }
}
impl Eq for Instant {}

impl Instant {
    #[inline]
    pub fn now() -> Self {
        Instant(duration_from_f64(now()))
    }

    #[inline]
    pub fn duration_since(&self, earlier: Instant) -> Duration {
        assert!(
            earlier.0 <= self.0,
            "`earlier` cannot be later than `s


t0Func->setDoesNotThrow();
  SetTempRet0Func->setDoesNotThrow();

  bool Changed = false;

  // Exception handling
  if (EnableEH) {
    // Register __resumeException function
    FunctionType *ResumeFTy =
        FunctionType::get(IRB.getVoidTy(), IRB.getInt8PtrTy(), false);
    ResumeF = Function::Create(ResumeFTy, GlobalValue::ExternalLinkage,
                               ResumeFName, &M);

    // Register llvm_eh_typeid_for function
    FunctionType *EHTypeIDTy =
        FunctionType::get(IRB.getInt32Ty(), IRB.getInt8PtrTy(), false);
    EHTypeIDF = Function::Create(EHTypeIDTy, GlobalValue::ExternalLinkage,
                                 EHTypeIDFName, &M);

    for (Function &F : M) {
      if (F.isDeclaration())
        continue;
      Changed |= runEHOnFunction(F);
    }
  }

  // Setjmp/longjmp handling
  if (DoSjLj) {
    Changed = true; // We have setjmp or longjmp somewhere

    if (LongjmpF) {
      // Replace all uses of longjmp with emscripten_longjmp_jmpbuf, which is
      // defined in JS code
      EmLongjmpJmpbufF = Function::Create(LongjmpF->getFunctionType(),
                                          GlobalValue::ExternalLinkage,
                                          EmLongjmpJmpbufFName, &M);

      LongjmpF->replaceAllUsesWith(EmLongjmpJmpbufF);
    }

    if (SetjmpF) {
      // Register saveSetjmp function
      FunctionType *SetjmpFTy = SetjmpF->getFunctionType();
      SmallVector<Type *, 4> Params = {SetjmpFTy->getParamType(0),
                                       IRB.getInt32Ty(), Type::getInt32PtrTy(C),
                                       IRB.getInt32Ty()};
      FunctionType *FTy =
          FunctionType::get(Type::getInt32PtrTy(C), Params, false);
      SaveSetjmpF = Function::Create(FTy, GlobalValue::ExternalLinkage,
                                     SaveSetjmpFName, &M);

      // Register testSetjmp function
      Params = {IRB.getInt32Ty(), Type::getInt32PtrTy(C), IRB.getInt32Ty()};
      FTy = FunctionType::get(IRB.getInt32Ty(), Params, false);
      TestSetjmpF = Function::Create(FTy, GlobalValue::ExternalLinkage,
                                     TestSetjmpFName, &M);

      FTy = FunctionType::get(IRB.getVoidTy(),
                              {IRB.getInt32Ty(), IRB.getInt32Ty()}, false);
      EmLongjmpF = Function::Create(FTy, GlobalValue::ExternalLinkage,
                                    EmLongjmpFName, &M);

      // Only traverse functions that uses setjmp in order not to insert
      // unnecessary prep / cleanup code in every function
      SmallPtrSet<Function *, 8> SetjmpUsers;
      for (User *U : SetjmpF->users()) {
        auto *UI = cast<Instruction>(U);
        SetjmpUsers.insert(UI->getFunction());
      }
      for (Function *F : SetjmpUsers)
        runSjLjOnFunction(*F);
    }
  }

  if (!Changed) {
    // Delete unused global variables and functions
    if (ResumeF)
      ResumeF->eraseFromParent();
    if (EHTypeIDF)
      EHTypeIDF->


 These are
    // candidates for simplifying.

    try
    {
      boolean candidate[] = new boolean [edge.length];
      boolean any = false;
      for (int i = 0; i < edge.length; i++)
      {
        VertexInfo vi1 = allVert.elementAt(edge[i].v1);
        VertexInfo vi2 = allVert.elementAt(edge[i].v2);
        candidate[i] = (vi1.type == BOUNDARY || vi2.type == BOUNDARY);
        any |= candidate[i];
      }
      if (any)
        new TriMeshSimplifier(mesh, candidate, 0.0001, null);
    }
    catch (Exception ex)
    {
      // This sometimes happens due to problems (especially degenerate triangles)
      // in the input objects.  Nothing we can do about it.
    }
    return mesh;
  }

  /** Add a polygon with its vertices to the final mesh */

  private void addPolygon(FaceInfo f, boolean reverseNormal, Vector<VertexInfo> objVert,
                          Vector<VertexInfo> allVert, int[] vertIndex, Vector<int[]> faceIndex, Vector<float[]> faceSmoothness)
  {
    // Add polygon's vertices

    for (int n = 1; n <= 3; n ++)
    {
      int i = (n == 1 ? f.v1 : (n == 2 ? f.v2 : f.v3));
      if (vertIndex[i] == -1)
      {
        VertexInfo v = objVert.elementAt(i);

        if (v.type == BOUNDARY)
        {
          // See if this is the same as a vertex we have already added.

          for (int j = 0; vertIndex[i] == -1 && j < allVert.size(); j++)
          {
            VertexInfo v2 = allVert.elementAt(j);
            if (v2.type == BOUNDARY && areEqual(v2.r, v.r))
              vertIndex[i] = j;
          }
          if (vertIndex[i] == -1)
          {
            // This is a new vertex.

            vertIndex[i] = allVert.size();
            allVert.addElement(v);
          }
        }
        else
        {
          vertIndex[i] = allVert.size();
          allVert.addElement(v);
        }
      }
    }

    // Add the polygon

    if (reverseNormal)
    {
      faceIndex.addElement(new int [] {vertIndex[f.v2], vertIndex[f.v1], vertIndex[f.v3]});
      faceSmoothness.addElement(new float [] {f.smoothness1, f.smoothness3, f.smoothness2});
    }
    else
    {
      faceIndex.addElement(new int [] {vertIndex[f.v1], vertIndex[f.v2], vertIndex[f.v3]});
      faceSmoothness.addElement(new float [] {f.smoothness1, f.smoothness2, f.smoothness3});
    }
  }

  /** Split the faces in one mesh so that they do not intersect the faces of the other mesh. */

  private void splitFaces(Vector<VertexInfo> v1, Vector<FaceInfo> f1, BoundingBox bounds1, Vector<VertexInfo> v2, final Vector<FaceInfo> f2, BoundingBox bounds2)
  {
    if (!intersect(bounds1, bounds2))
      return;

    int intersectVertA[] = new int [2], intersectVertB[] = new int [2];
    double intersectDistA[] = new double [2], intersectDistB[] = new double [2];
    int intersectTypeA[] = new int [2];
    int spanTypeA;
    double m[][] = new double [3][3], b[] = new double [3];
    Vec3 root = new Vec3();


USE5_MIN, O30_HOUSE6_MIN,  O30_HOUSE7_MIN,  O30_HOUSE8_MIN,
       O30_HOUSE9_MIN, O30_HOUSE10_MIN, O30_HOUSE11_MIN, O30_HOUSE12_MIN};
  static final double[] maxLonO30 = new double[]
      {O30_ASC_MAX,    O30_MC_MAX,      O30_ARMC_MAX,    O30_VERTEX_MAX,
       O30_EQUASC_MAX, O30_COASC1_MAX,  O30_COASC2_MAX,  O30_POLASC_MAX,
       O30_HOUSE1_MAX, O30_HOUSE2_MAX,  O30_HOUSE3_MAX,  O30_HOUSE4_MAX,
       O30_HOUSE5_MAX, O30_HOUSE6_MAX,  O30_HOUSE7_MAX,  O30_HOUSE8_MAX,
       O30_HOUSE9_MAX, O30_HOUSE10_MAX, O30_HOUSE11_MAX, O30_HOUSE12_MAX};
  static final double[] minLonO40 = new double[]
      {O40_ASC_MIN,    O40_MC_MIN,      O40_ARMC_MIN,    O40_VERTEX_MIN,
       O40_EQUASC_MIN, O40_COASC1_MIN,  O40_COASC2_MIN,  O40_POLASC_MIN,
       O40_HOUSE1_MIN, O40_HOUSE2_MIN,  O40_HOUSE3_MIN,  O40_HOUSE4_MIN,
       O40_HOUSE5_MIN, O40_HOUSE6_MIN,  O40_HOUSE7_MIN,  O40_HOUSE8_MIN,
       O40_HOUSE9_MIN, O40_HOUSE10_MIN, O40_HOUSE11_MIN, O40_HOUSE12_MIN};
  static final double[] maxLonO40 = new double[]
      {O40_ASC_MAX,    O40_MC_MAX,      O40_ARMC_MAX,    O40_VERTEX_MAX,
       O40_EQUASC_MAX, O40_COASC1_MAX,  O40_COASC2_MAX,  O40_POLASC_MAX,
       O40_HOUSE1_MAX, O40_HOUSE2_MAX,  O40_HOUSE3_MAX,  O40_HOUSE4_MAX,
       O40_HOUSE5_MAX, O40_HOUSE6_MAX,  O40_HOUSE7_MAX,  O40_HOUSE8_MAX,
       O40_HOUSE9_MAX, O40_HOUSE10_MAX, O40_HOUSE11_MAX, O40_HOUSE12_MAX};
  static final double[] minLonO50 = new double[]
      {O50_ASC_MIN,    O50_MC_MIN,      O50_ARMC_MIN,    O50_VERTEX_MIN,
       O50_EQUASC_MIN, O50_COASC1_MIN,  O50_COASC2_MIN,  O50_POLASC_MIN,
       O50_HOUSE1_MIN, O50_HOUSE2_MIN,  O50_HOUSE3_MIN,  O50_HOUSE4_MIN,
       O50_HOUSE5_MIN, O50_HOUSE6_MIN,  O50_HOUSE7_MIN,  O50_HOUSE8_MIN,
       O50_HOUSE9_MIN, O50_HOUSE10_MIN, O50_HOUSE11_MIN, O50_HOUSE12_MIN};
  static final double[] maxLonO50 = new double[]
      {O50_ASC_MAX,    O50_MC_MAX,      O50_ARMC_MAX,    O50_VERTEX_MAX,
       O50_EQUASC_MAX, O50_COASC1_MAX,  O50_COASC2_MAX,  O50_POLASC_MAX,
       O50_HOU


terMetric(l.evicted, float64(l.entries.Len()))
		l.removeAll()
		return
	}
	bytes := startFrame.frameLen - startFrame.frag0Start
	canReassemble := false
	framingError := false
	for e := start.Next(); e != nil; e = e.Next() {
		currFrame := e.Value.(*frameBuf)
		// Add number of bytes contained in this frame. This potentially adds
		// too much, but we are only using it to detect whether we potentially
		// have everything we need.
		bytes += (currFrame.frameLen - sigHdrSize)
		// Check if we have found all frames.
		if bytes >= startFrame.pktLen {
			canReassemble = true
			break
		}
		if currFrame.index != 0xffff {
			logger.Error("Framing error occurred. Not enough bytes to reassemble packet",
				"startFrame", startFrame.String(), "currFrame", currFrame.String(),
				"pktLen", startFrame.pktLen)
			framingError = true
			break
		}
	}
	if canReassemble {
		l.collectAndWrite(ctx)
	} else if framingError {
		increaseCounterMetric(l.invalid, 1)
		l.removeBefore(l.entries.Back())
	}
}

// collectAndWrite reassembles the packet in the reassembly list and writes it
// out to the buffer. It will also write every complete packet in the last frame.
func (l *reassemblyList) collectAndWrite(ctx context.Context) {
	logger := log.FromCtx(ctx)
	start := l.entries.Front()
	startFrame := start.Value.(*frameBuf)
	// Reset reassembly buffer.
	l.buf.Reset()
	// Collect the start of the packet.
	pktLen := startFrame.pktLen
	l.buf.Write(startFrame.raw[startFrame.frag0Start:startFrame.frameLen])
	// We cannot process the startframe any further.
	startFrame.SetProcessed()
	// Collect rest.
	var frame *frameBuf
	for e := start.Next(); l.buf.Len() < pktLen && e != nil; e = e.Next() {
		frame = e.Value.(*frameBuf)
		missingBytes := pktLen - l.buf.Len()
		l.buf.Write(
			frame.raw[sigHdrSize:intMin(missingBytes+sigHdrSize, frame.frameLen)],
		)
		frame.fragNProcessed = true
	}
	// Check length of the reassembled packet.
	if l.buf.Len() != pktLen {
		logger.Error("Packet len for reassembled packet does not match header",
			"expected", pktLen, "have", l.buf.Len())
	} else {
		// Write the packet to the wire.
		if err := l.snd.send(l.buf.Bytes()); err != nil {
			logger.Error("Unable to send reassembled packet", "err", err)
		}
	}
	// Process the complete packets in the last frame
	frame.ProcessCompletePkts(ctx)
	// Remove all processed frames from the list.
	l.removeProcessed()
}

func (l *reassemblyList) removeEntry(e *list.Element) {
	frame := e.Value.(*frameBuf)
	frame.Release()
	l.entries.Remove(e)
}

func (l *reassemblyList) removeProcessed() {
	var next *list.Element
	for e := l.entries.Front(); e != nil; e = next {
		frame := e.Value.(*frameBuf)
		next = e.Next()
		if frame.Processed() {
			l.removeEntry(e)
		}
	}
}

func (l *reassemblyList) removeAll() {
	l.removeBefore(nil)
}

func (l *reassemblyList) removeBefore(ele *list.Element) {
	var next *list.Element
	for e := l.entries.Front(); e != ele; e = next {
		next = e.Next()
		l.removeEntry(e)
	}
}


deInMapSelf)
			{
				// 查询该节点父节点的信息,并且根据需要修改  "from ZigBeeNode z where z.IEEEAddress=?"
				zbNodeInDBParent = wsnDaoService.findParentByPIEEEAddress(zbNode.getPieeeAddress());
				if (zbNodeInDBParent.getIsLeaf().equals("Y"))
				{
					// 将该父节点设置为非叶子节点
					zbNodeInDBParent.setIsLeaf("N");
					// 并将更新过的父节点 放进Map
					zigbeeNTMap.put(
							zbNodeInDBParent.getIeeeAddress(), zbNodeInDBParent);
					// 并父节点更改数据库信息
					wsnDaoService.updateZigbeeNTData(zbNodeInDBParent);
				}
				//将节点放到map里
				zigbeeNTMap.put(zbNode.getIeeeAddress(), zbNode);
				//将子节点放进去
				wsnDaoService.addZigbeeNTData(zbNode);
			}
			//如果map里已经有该节点信息
			else
			{
				//再判断节点的 父节点IEEE信息  父节点Pnet信息有没有改变过,
				if ((!zbNodeInMapSelf.getPieeeAddress().equals(
						zbNode.getPieeeAddress()))
						|| (!zbNodeInMapSelf.getpNetAddress().equals(
								zbNode.getpNetAddress())))
				{
					//如果有一个改变过的话,看该父节点下面是否还有其他子节点
					brothersList = wsnDaoService
							.findBrothersByPIEEEAddress(zbNodeInMapSelf
									.getPieeeAddress());
					//brothersList.size() == 1 意味着只是自己
					if (brothersList.size() == 1)
					{
						zbNodeInDBParent = wsnDaoService
								.findParentByPIEEEAddress(zbNodeInMapSelf
										.getPieeeAddress());
						zbNodeInDBParent.setIsLeaf("Y");
						zigbeeNTMap.put(zbNodeInDBParent.getIeeeAddress(),
								zbNodeInDBParent);
						wsnDaoService.updateZigbeeNTData(zbNodeInDBParent);
					}
					// 改变过的话， 就替换原来的
					zigbeeNTMap.put(zbNode.getIeeeAddress(),
							zbNode);
					// 并且修改数据库里自己的信息
					wsnDaoService.updateZigbeeNTData(zbNode);
					// 修改父节点的信息
				}
				else if (!zbNodeInMapSelf.getNetAddress().equals(
						zbNode.getNetAddress()))
				{
					// 改变的过的话， 就替换原来的
					zigbeeNTMap.put(zbNode.getIeeeAddress(),
							zbNode);
					// 并且修改数据库里自己的信息
					wsnDaoService.updateZigbeeNTData(zbNode);
					// 修改父节点的信息
				}
			}
		}
	}
	/**
	 * 将SensorData RouterData CoorData转化为ZigbeeNodeNT
	 * @param zbNode
	 */
	public synchronized void transformToZigbeeNode(Object zbNode)
	{
		ZigBeeNode zbData = new ZigBeeNode();
		if (zbNode instanceof EndDevice)
		{
			zbData.setIeeeAddress(((EndDevice) zbNode).getIeeeAddress());
			zbData.setPieeeAddress(((EndDevice) zb


-- MoonFLTK example: unittest_lines.lua
--
-- Derived from the FLTK test/unittest_lines.cxx example (http://www.fltk.org)
--

------- test the line drawing capabilities of this implementation ----------

return function(x, y, w, h)
   local label = "drawing lines"
   local self = fl.box_sub(x, y, w, h)
   self:label("testing the integer based fl.line calls\n" ..
     "No red pixels should be visible.\n" ..
     "If you see bright red pixels, the line drawing alignment is off,\n" ..
     "or the last pixel in a line does not get drawn.\n" ..
     "If you see dark red pixels, anti-aliasing must be switched off.")
   self:align(fl.ALIGN_INSIDE|fl.ALIGN_BOTTOM|fl.ALIGN_LEFT|fl.ALIGN_WRAP)
   self:box('border box')
   self:override_draw(function()
      self:super_draw()
      local x, y = self:x(), self:y()
      local a, b = x+10, y+10
      fl.color(fl.BLACK) fl.rect(a, b, 100, 100)
      -- test


ver.registerQuery("B = load '"+ Util.generateURI(tmpFile2.toString(), pigServer.getPigContext()) + "' AS (b0, b1:int);");
        pigServer.registerQuery("C = cogroup A by $1, B by $1;");
        pigServer.registerQuery("D = foreach C generate AVG($1.$1);");
        Iterator<Tuple> iter = pigServer.openIterator("D");

        assertTrue(iter.hasNext());
        Tuple t = iter.next();

        assertEquals(1, t.size());
        assertNull(t.get(0));

        assertTrue(iter.hasNext());
        t = iter.next();

        assertEquals(1, t.size());
        assertEquals("2.0", t.get(0).toString());

        assertTrue(iter.hasNext());
        t = iter.next();

        assertEquals(1, t.size());
        assertEquals("5.0", t.get(0).toString());

        assertFalse(iter.hasNext());

        assertTrue(checkLogFileMessage(new String[]{"Columns pruned for B: $0"}));
    }

    @Test
    public void testCoGroup2() throws Exception {
        pigServer.registerQuery("A = load '"+ Util.generateURI(tmpFile1.toString(), pigServer.getPigContext()) + "' AS (a0, a1:int, a2);");
        pigServer.registerQuery("B = group A all;");
        pigServer.registerQuery("C = foreach B generate $1;");
        Iterator<Tuple> iter = pigServer.openIterator("C");

        String[] expected = new String[] {
                "({(1,2,3),(2,5,2)})"
        };
        assertTrue(iter.hasNext());
        Util.checkQueryOutputsAfterSortRecursive(iter, expected, org.apache.pig.newplan.logical.Util.translateSchema(pigServer.dumpSchema("C")));

        assertTrue(emptyLogFileMessage());
    }

    @Test
    public void testCoGroup3() throws Exception {
        pigServer.registerQuery("A = load '"+ Util.generateURI(tmpFile1.toString(), pigServer.getPigContext()) + "' AS (a0, a1:int, a2);");
        pigServer.registerQuery("B = group A by $1;");
        pigServer.registerQuery("C = foreach B generate $1, '1';");
        Iterator<Tuple> iter = pigServer.openIterator("C");

        assertTrue(iter.hasNext());
        Tuple t = iter.next();

        assertEquals(2, t.size());
        assertEquals("{(1,2,3)}", t.get(0).toString());
        assertEquals("1", t.get(1).toString());

        assertTrue(iter.hasNext());
        t = iter.next();

        assertEquals(2, t.size());
        assertEquals("{(2,5,2)}", t.get(0).toString());
        assertEquals("1", t.get(1).toString());

        assertFalse(iter.hasNext());

        assertTrue(emptyLogFileMessage());
    }

    @Test
    public void testCoGroup4() throws Exception {
        pigServer.registerQuery("A = load '"+ Util.generateURI(tmpFile1.toString(), pigServer.getPigContext()) + "' AS (a0, a1:int, a2);");
        pigServer.registerQuery("B = load '"+ Util.generateURI(tmpFile2.toString(), pigServer.getPigContext()) + "' AS (b0, b1:int);");
        pigServer.registerQuery("C = cogroup A by ($1), B by ($1);");
        pigServer.registerQuery("D = foreach C generate $1.$1, $2.$1;");
        Iterator<Tuple> iter = pigServer.openIterator("D");

        assertTrue(iter.hasNext());
        Tuple t = iter.next();

        assertEquals(2, t.size());
        assertEquals("{}", t.get(0).toString());
        assertEquals("{(1)}", t.get(1).toString());

        assertTrue(iter.hasNext());
        t = iter.next();

        assertEquals(2, t.


}

impl PxVec3 {
    pub fn x(&self) -> f32 {
        self.obj.x
    }

    pub fn y(&self) -> f32 {
        self.obj.y
    }

    pub fn z(&self) -> f32 {
        self.obj.z
    }

    pub fn x_mut(&mut self) -> &mut f32 {
        &mut self.obj.x
    }

    pub fn y_mut(&mut self) -> &mut f32 {
        &mut self.obj.y
    }

    pub fn z_mut(&mut self) -> &mut f32 {
        &mut self.obj.z
    }

    pub fn new(x: f32, y: f32, z: f32) -> PxVec3 {
        unsafe {
            PxVec3 {
                obj: PxVec3_new_3(x, y, z),
            }
        }
    }

    pub fn abs(&self) -> PxVec3 {
        unsafe { PxVec3_abs(self.as_ptr()).into() }
    }

    pub fn cross(&self, other: &PxVec3) -> PxVec3 {
        unsafe { PxVec3_cross(self.as_ptr(), other.as_ptr()).into() }
    }

    pub fn dot(&self, other: &PxVec3) -> f32 {
        unsafe { PxVec3_dot(self.as_ptr(), other.as_ptr()) }
    }

    pub fn get_normalized(&self) -> PxVec3 {
        unsafe { PxVec3_getNormalized(self.as_ptr()).into() }
    }

    pub fn is_finite(&self) -> bool {
        unsafe { PxVec3_isFinite(self.as_ptr()) }
    }

    pub fn is_normalized(&self) -> bool {
        unsafe { PxVec3_isNormalized(self.as_ptr()) }
    }

    pub fn is_zero(&self) -> bool {
        unsafe { PxVec3_isZero(self.as_ptr()) }
    }

    pub fn magnitude(&self) -> f32 {
        unsafe { PxVec3_magnitude(self.as_ptr()) }
    }

    pub fn magnitude_squared(&self) -> f32 {
        unsafe { PxVec3_magnitudeSquared(self.as_ptr()) }
    }

    pub fn max_element(&self) -> f32 {
        unsafe { PxVec3_maxElement(self.as_ptr()) }
    }

    pub fn maximum(&self, other: &PxVec3) -> PxVec3 {
        unsafe { PxVec3_maximum(self.as_ptr(), other.as_ptr()).into() }
    }

    pub fn min_element(&self) -> f32 {
        unsafe { PxVec3_minElement(self.as_ptr()) }
    }

    pub fn minimum(&self, other: &PxVec3) -> PxVec3 {
        unsafe { PxVec3_minimum(self.as_ptr(), other.as_ptr()).into() }
    }

    pub fn multiply(&self, other: &PxVec3) -> PxVec3 {
        unsafe { PxVec3_multiply(self.as_ptr(), other.as_ptr()).into() }
    }

    /// normalize in place and returns the original magnitude.
    pub fn normalize(&mut self) -> f32 {
        unsafe { PxVec3_normalize_mut(self.as_mut_ptr()) }
    }
}

unsafe impl Send for PxVec3 {}
unsafe impl Sync for PxVec3 {}
use clap::{App, Arg};
use futures::stream::{StreamExt, TryStreamExt};
use k8s_openapi::api::core::v1::Pod;
use kube::{
    api::{Api, ListParams, Meta},
    Client,
};
use kube_runtime::watcher;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let matches = App


�毁蒋匪反共救国团广西分团》。“四?二二”中有一大批人被当作“反共救国团”逮捕、关押和枪杀。

   同日  广西“四·二二”指挥部发表《就广西革筹、广西军区〈六·一七公告〉告全区人民书》。指出，《公告》的发布，是为更大规模的血腥大屠杀，消灭广西“四?二二”一派群众组织大造舆论。

   同日  广西“联指”所属的航运“红联”攻打“四?二二”“航运工总”控制下的南宁北大路码头，打了几个小时攻不下，要求广西“联指”指挥部通知河南片“联指”给予炮火支援。南宁糖纸厂民兵炮连当即把一门三七炮拉到西园饭店后面河边，向“桂宏”号船开炮，接着南宁化工厂“联指”也拉来一门炮参加轰击。打到第二天下午三点多，停泊在河边的“桂宏”、“东风”号等四十多艘船只被炮火击中，全部起火焚烧。

   24日  自治区革筹小组、广西军区发布所谓《关于破获“中华民国反共救国团广西分团”的反革命案件公告》后，全区各地“联指”一派武装人员乱杀人的情况极为严重。对此，自治区革筹小组、广西军区于今天向各专区、市革委会、各军分区、人武部发出《关于禁止乱杀人、乱抓人的指示》。但乱杀人、乱抓人并未停止，不少地方反而愈演愈烈。

   同日  《广西日报》三版在《千万不要忘记阶级斗争》特大通栏标题下，刊登三篇长文，“批判”所谓天津黑会、黑戏，“揭露”广西“四·二二”派人参加所谓天津黑会的“罪行”。

   28日  自治区革筹小组、广西军区向中央、中央军委、中央文革发出关于公布“上石农总”为反动组织的情况报告，宣称：经过对其进行了武


re-icon-size) / 2) solid transparent;\n  border-bottom: var(--score-icon-size) solid var(--color-fail);\n}\n\n.lh-audit--manual .lh-audit__display-text,\n.lh-audit--notapplicable .lh-audit__display-text {\n  color: var(--color-gray-600);\n}\n.lh-audit--manual .lh-audit__score-icon,\n.lh-audit--notapplicable .lh-audit__score-icon {\n  border: calc(0.2 * var(--score-icon-size)) solid var(--color-gray-400);\n  border-radius: 100%;\n  background: none;\n}\n\n.lh-audit--informative .lh-audit__display-text {\n  color: var(--color-gray-600);\n}\n\n.lh-audit--informative .lh-audit__score-icon {\n  border: calc(0.2 * var(--score-icon-size)) solid var(--color-gray-400);\n  border-radius: 100%;\n}\n\n.lh-audit__description,\n.lh-audit__stackpack {\n  color: var(--report-text-color-secondary);\n}\n.lh-audit__adorn {\n  border: 1px solid slategray;\n  border-radius: 3px;\n  margin: 0 3px;\n  padding: 0 2px;\n  line-height: 1.1;\n  display: inline-block;\n  font-size: 90%;\n}\n\n.lh-category-header__description  {\n  text-align: center;\n  color: var(--color-gray-700);\n  margin: 0px auto;\n  max-width: 400px;\n}\n\n\n.lh-audit__display-text,\n.lh-load-opportunity__sparkline,\n.lh-chevron-container {\n  margin: 0 var(--audit-margin-horizontal);\n}\n.lh-chevron-container {\n  margin-right: 0;\n}\n\n.lh-audit__title-and-text {\n  flex: 1;\n}\n\n.lh-audit__title-and-text code {\n  color: var(--snippet-color);\n  font-size: var(--report-monospace-font-size);\n}\n\n/* Prepend display text with em dash separator. But not in Opportunities. */\n.lh-audit__display-text:not(:empty):before {\n  content: \'—\';\n  margin-right: var(--audit-margin-horizontal);\n}\n.lh-audit-group.lh-audit-group--load-opportunities .lh-audit__display-text:not(:empty):before {\n  display: none;\n}\n\n/* Expandable Details (Audit Groups, Audits) */\n.lh-audit__header {\n  display: flex;\n  align-items: center;\n  padding: var(--default-padding);\n}\n\n.lh-audit--load-opportunity .lh-audit__header {\n  display: block;\n}\n\n\n.lh-metricfilter {\n  display: grid;\n  justify-content: end;\n  align-items: center;\n  grid-auto-flow: column;\n  gap: 4px;\n  color: var(--color-gray-700);\n}\n\n.lh-metricfilter__radio {\n  position: absolute;\n  left: -9999px;\n}\n.lh-metricfilter input[type=\'radio\']:focus-visible + label {\n  outline: -webkit-focus-ring-color auto 1px;\n}\n\n.lh-metricfilter__


r to modification.
        /// </summary>
        /// <exception cref="InvalidOperationException">if modification is not allowed</exception>
        internal void NotifyArrayFormulaChanging()
        {
            CellReference ref1 = new CellReference(this);
            String msg = "Cell " + ref1.FormatAsString() + " is part of a multi-cell array formula. " +
                    "You cannot change part of an array.";
            NotifyArrayFormulaChanging(msg);
        }

        #region ICell Members

        public bool IsMergedCell
        {
            get {
                return this.Sheet.IsMergedRegion(new CellRangeAddress(this.RowIndex, this.RowIndex, this.ColumnIndex, this.ColumnIndex));
            }

        }

        #endregion

        public ICell CopyCellTo(int targetIndex)
        {
            return CellUtil.CopyCell(this.Row, this.ColumnIndex, targetIndex);
        }

        public CellType GetCachedFormulaResultTypeEnum()
        {
            throw new NotImplementedException();
        }
    }

}


2S, CV_32F, or CV_64F.
 *
 * @see org.opencv.imgproc.Imgproc.integral
 */
    public static void integral(Mat src, Mat sum, int sdepth)
    {

        integral_0(src.nativeObj, sum.nativeObj, sdepth);

        return;
    }

/**
 *
Calculates the integral of an image.

 *
 *
The functions calculate one or more integral images for the source image as
 * follows:

 *
 *
sum(X,Y) = sum(by: x&ltX,y&ltY) image(x,y)

 *
 *
 *
 *
sqsum(X,Y) = sum(by: x&ltX,y&ltY) image(x,y)^2

 *
 *
 *
 *
tilted(X,Y) = sum(by: y&ltY,abs(x-X+1) <= Y-y-1) image(x,y)

 *
 *
Using these integral images, you can calculate sum, mean, and standard
 * deviation over a specific up-right or rotated rectangular region of the image
 * in a constant time, for example:

 *
 *
sum(by: x_1 <= x &lt x_2, y_1 <= y &lt y_2) image(x,y) = sum(x_2,y_2)-
 * sum(x_1,y_2)- sum(x_2,y_1)+ sum(x_1,y_1)

 *
 *
It makes possible to do a fast blurring or fast block correlation with a
 * variable window size, for example. In case of multi-channel images, sums for
 * each channel are accumulated independently.

 *
 *
As a practical example, the next figure shows the calculation of the integral
 * of a straight rectangle Rect(3,3,3,2) and of a tilted rectangle
 * Rect(5,1,2,3). The selected pixels in the original
 * image are shown, as well as the relative pixels in the integral
 * images sum and tilted.

 *
 * @param src a src
 * @param sum integral image as (W+1)x(H+1), 32-bit integer or
 * floating-point (32f or 64f).
 *
 * @see org.opencv.imgproc.Imgproc.integral
 */
    public static void integral(Mat src, Mat sum)
    {

        integral_1(src.nativeObj, sum.nativeObj);

        return;
    }

    //
    // C++:  void integral(Mat src, Mat& sum, Mat& sqsum, int sdepth = -1)
    //

/**
 *
Calculates the integral of an image.

 *
 *
The functions calculate one or more integral images for the source image as
 * follows:

 *
 *
sum(X,Y) = sum(by: x&ltX,y&ltY) image(x,y)

 *
 *
 *
 *
sqsum(X,Y) = sum(by: x&ltX,y&ltY) image(x,y)^2

 *
 *
 *
 *
tilted(X,Y) = sum(by: y&ltY,abs(x-X+1) <= Y-y-1) image(x,y)

 *
 *
Using these integral images, you can calculate sum, mean, and standard
 * deviation over a specific up-right or rotated rectangular region of the image
 * in a constant time, for example:

 *


prefix=ABICALLS-ON %s
// ABICALLS-ON: -cc1as
// ABICALLS-ON: "-target-feature" "-noabicalls"

// RUN: %clang -target mips-linux-gnu -### -fintegrated-as


ForPlayer).

| ID Crima | zece-cod | Descriere                                                                |
| -------- | -------- | ------------------------------------------------------------------------ |
| 3        | 10-71    | Recomandați natura incendiului (dimensiunea, tipul, conținutul clădirii) |
| 4        | 10-47    | Sunt necesare reparații de urgență la drum                               |
| 5        | 10-81    | Raport Breatherlizer                                                     |
| 6        | 10-24    | Temă finalizată                                                          |
| 7        | 10-21    | Sunați () prin telefon                                                   |
| 8        | 10-21    | Sunați () prin telefon                                                   |
| 9        | 10-21    | Sunați () prin telefon                                                   |
| 10       | 10-17    | Faceți cunoștință cu reclamantul                                         |
| 11       | 10-81    | Raport Breatherlizer                                                     |
| 12       | 10-91    | Ridică prizonierul / subiectul                                           |
| 13       | 10-28    | Informații despre înmatricularea vehiculului                             |
| 14       | 10-81    | Aparat de etilotest                                                      |
| 15       | 10-28    | Informații despre înmatricularea vehiculului                             |
| 16       | 10-91    | Ridică prizonierul / subiectul                                           |
| 17       | 10-34    | Riot                                                                     |
| 18       | 10-37    | (Investigați) vehicul suspect                                            |
| 19       | 10-81    | Aparat de etilotest                                                      |
| 21       | 10-7     | In afara serviciului                                                     |
| 22       | 10-7     | In afara serviciului                                                     |
---
title: "Cuvant: Operatori"
sidebar_label: "Cuvant: Operatori"
---

## `char`

char returnează numărul de celule necesare pentru a deține numărul dat de caractere dintr-un șir împachetat. Adică numărul de celule de 4 octeți necesare pentru a deține un număr dat de octeți. De exemplu:

```c
4 char
```

Returnează 1.

```c
3 char
```

Returnează 1 (nu poti avea 3/4 dintr-o variabila).

```c
256 char
```

Returnează 64 (256 impartit la 4).

Acest lucru este utilizat în general în declarațiile variabile.

```c
new
    someVar[40 char];
```

Va face o matrice de 10 celule mari.

Pentru mai multe informații despre șirurile împachetate, citiți pawn-lang.pdf.

## `defined`

Verifică dacă există un simbol. Utilizat în general în declarațiile #if:

```c
new
    someVar = 5;
#if defined someVar
    printf("%d", someVar);
#else
    #error The variable 'someVar' isn't defined
#endif
```

Cel mai frecvent este folosit pentru a verifica dacă este definită o definire și pentru a genera cod în consecință:

```c
#define FILTERSCRIPT

#if defined FILTERSCRIPT

public OnFilterScriptI


pos.copyByType(Coords.xym).values, [10.0, 20.0, 40.0]);
      expect(pos.copyByType(Coords.xyzm).values, [10.0, 20.0, 30.0, 40.0]);
      expect(pos.copyWith(x: 11.0).values, [11.0, 20.0, 30.0, 40.0]);
      expect(pos.copyWith(y: 21.0).values, [10.0, 21.0, 30.0, 40.0]);
      expect(pos.copyWith(z: 31.0).values, [10.0, 20.0, 31.0, 40.0]);
      expect(pos.copyWith(m: 41.0).values, [10.0, 20.0, 30.0, 41.0]);
      expect(pos.toText(compactNums: false), '10.0,20.0,30.0,40.0');
      expect(pos.toText(delimiter: ' '), '10 20 30 40');
      expect(pos.toText(swapXY: true), '20,10,30,40');
      expect(pos.toText(decimals: 0), '10,20,30,40');
      expect(pos.toText(decimals: 0, compactNums: false), '10,20,30,40');
      expect(
        pos.toText(decimals: 2, compactNums: false),
        '10.00,20.00,30.00,40.00',
      );
      expect(pos.toText(decimals: 2), '10,20,30,40');
    } else {
      expect(pos[2], 30.0);
      expect(pos[3], 0.0);
      expect(pos.values, [10.0, 20.0, 30.0]);
      expect(pos.valuesByType(Coords.xyz), [10.0, 20.0, 30.0]);
      expect(pos.valuesByType(Coords.xym), [10.0, 20.0, 0.0]);
      expect(pos.valuesByType(Coords.xyzm), [10.0, 20.0, 30.0, 0.0]);
      expect(pos.copyByType(Coords.xyz).values, [10.0, 20.0, 30.0]);
      expect(pos.copyByType(Coords.xym).values, [10.0, 20.0, 0.0]);
      expect(pos.copyByType(Coords.xyzm).values, [10.0, 20.0, 30.0, 0.0]);
      expect(pos.copyWith(x: 11.0).values, [11.0, 20.0, 30.0]);
      expect(pos.copyWith(y: 21.0).values, [10.0, 21.0, 30.0]);
      expect(pos.copyWith(z: 31.0).values, [10.0, 20.0, 31.0]);
      expect(pos.copyWith(m: 41.0).values, [10.0, 20.0, 30.0, 41.0]);
      expect(pos.toText(), '10,20,30');
    }
    expect(pos.equals3D(other), false);
    expect(pos.equals3D(other, toleranceHoriz: 0.1), false);
    expect(pos.equals3D(other, toleranceHoriz: 0.1, toleranceVert: 0.1), true);
  } else {
    if (pos.isMeasured) {
      expect(pos[2], 40.0);
      expect(pos[3], 0.0);
      expect(pos.values, [10.0, 20.0, 40.0]);
      expect(pos.valuesByType(Coords.xyz), [10.0, 20.0, 0.0]);
      expect(pos.valuesByType(Coords.xym), [10.0, 20.0, 40.0]);
      expect(pos.valuesByType(Coords.xyzm), [10.0, 20.0, 0.0, 40.0]);
      expect(pos.copyByType(Coords.xyz).values, [10.0, 20.0, 0.0]);
      expect(pos.copyByType(Coords.xym).values, [10.0, 20.0, 40.0]);
      expect(pos.copyByType(Coords.xyzm).values, [10.0, 20.0, 0.0, 40


Score, DocAddress)> = searcher.search(&query, &TopDocs::with_limit(10))?;

    if top_docs.len() > 0 {
        info!(
            "Test query {:?} found {} results.",
            test_query,
            top_docs.len()
        );
        for (_score, doc_address) in top_docs {
            let retrieved_doc = searcher.doc(doc_address)?;
            info!("Found in Tantivy index: {:?}", retrieved_doc);
            // println!("{}", schema.to_json(&retrieved_doc));
        }
    } else {
        warn!("Test query {:?} failed to find results.", test_query);
    }

    Ok(())
}

// FIXME: do I really need this or can I just use what Tantivy already has for json parsing?
// TODO: error msgs + HierarchicalFacet
fn add_to_doc(
    field: Field,
    field_entry: &FieldEntry,
    v: &Value,
    doc: &mut Document,
) -> anyhow::Result<()> {
    match field_entry.field_type() {
        tantivy::schema::FieldType::Str(_) => {
            let text = v[field_entry.name()]
                .as_str()
                .ok_or(anyhow::anyhow!("bad text"))?;
            doc.add_text(field, text);
            Ok(())
        }
        tantivy::schema::FieldType::U64(_) => {
            let num = v[field_entry.name()]
                .as_u64()
                .ok_or(anyhow::anyhow!("bad u64"))?;
            doc.add_u64(field, num);
            Ok(())
        }
        tantivy::schema::FieldType::I64(_) => {
            let num = v[field_entry.name()]
                .as_i64()
                .ok_or(anyhow::anyhow!("bad i64"))?;
            doc.add_i64(field, num);
            Ok(())
        }
        tantivy::schema::FieldType::F64(_) => {
            let num = v[field_entry.name()]
                .as_f64()
                .ok_or(anyhow::anyhow!("bad f64"))?;
            doc.add_f64(field, num);
            Ok(())
        }
        tantivy::schema::FieldType::Date(_) => {
            // NOTE: only rf3339? https://github.com/tantivy-search/tantivy/pull/721/files
            let fv = &v[field_entry.name()];
            let datetime_str = fv.as_str().ok_or(anyhow::anyhow!("bad date"))?;

            let datetime = DateTime::<Utc>::from_str(&datetime_str)?;
            doc.add_date(field, &datetime);
            Ok(())
        }
        tantivy::schema::FieldType::HierarchicalFacet(_) => {
            todo!()
        }
        tantivy::schema::FieldType::Bytes(_) => {
            let b = v[field_entry.name()]
                .as_str()
                .ok_or(anyhow::anyhow!("bad  (bytes)"))?
                .as_bytes();
            doc.add_bytes(field, b);
            Ok(())
        }
    }
}

fn main() {
    let opts: Opts = Opts::parse();
    env_logger::init();

    // FIXME: this is old Rust 2015 format...
    if let Err(e) = run(opts.input, opts.output, opts.schema_path, opts.test_query) {
        println!("Application error: {}", e);
        process::exit(1);
    }
}

// FIXME: clean up these tests
#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_doc_field_text_parsing() {
        let mut doc = Document::new();
        let tantivy_f_title = r#"
        [{
            "name": "title",


.UniqueItems, true; got != want {
		t.Errorf("got %v want %v", got, want)
	}
	p5, _ := props.Properties["Password"]
	if got, want := p5.Type[0], "string"; got != want {
		t.Errorf("got %v want %v", got, want)
	}
	p6, _ := props.Properties["FakeInt"]
	if got, want := p6.Type[0], "integer"; got != want {
		t.Errorf("got %v want %v", got, want)
	}
	p7, _ := props.Properties["FakeArray"]
	if got, want := p7.Type[0], "array"; got != want {
		t.Errorf("got %v want %v", got, want)
	}
	p7p, _ := props.Properties["FakeArray"]
	if got, want := p7p.Items.Schema.Type[0], "string"; got != want {
		t.Errorf("got %v want %v", got, want)
	}
	p8, _ := props.Properties["IP"]
	if got, want := p8.Type[0], "string"; got != want {
		t.Errorf("got %v want %v", got, want)
	}
	p9, _ := props.Properties["Created"]
	if got, want := p9.ReadOnly, true; got != want {
		t.Errorf("got %v want %v", got, want)
	}
	if got, want := strings.Contains(fmt.Sprintf("%v", props.Required), "Optional"), false; got != want {
		t.Errorf("got %v want %v", got, want)
	}
	if got, want := props.Description, "a test\nmore description"; got != want {
		t.Errorf("got %v want %v", got, want)
	}
	p10, _ := props.Properties["NullableField"]
	if got, want := p10.Extensions["x-nullable"], true; got != want {
		t.Errorf("got %v want %v", got, want)
	}
	p11, _ := props.Properties["NotNullableField"]
	if got, want := p11.Extensions["x-nullable"], false; got != want {
		t.Errorf("got %v want %v", got, want)
	}
	p12, _ := props.Properties["UUID"]
	if got, want := p12.Type[0], "string"; got != want {
		t.Errorf("got %v want %v", got, want)
	}
	if got, want := p12.Format, "UUID"; got != want {
		t.Errorf("got %v want %v", got, want)
	}
	p13, _ := props.Properties["XGoName"]
	if got, want := p13.Extensions["x-go-name"], "specgoname"; got != want {
		t.Errorf("got %v want %v", got, want)
	}
}
package forest

import (
	"bytes"
	"encoding/json"
	"encoding/xml"
	"fmt"
	"io"
	"net/http"
	"net/url"
	"strings"
)

// RequestConfig holds additional information to construct a Http request.
type RequestConfig struct {
	URI        string
	BodyReader io.Reader
	HeaderMap  http.Header
	// for Query parameters
	Values         url.Values
	FormData       url.Values
	User, Password string
	Cookies        []*http.Cookie
	// for logging
	logRequestLine bool
}

// Path is an alias for NewConfig
var Path = NewConfig

// NewRequestConfig is an alias for NewConfig
var NewRequestConfig = NewConfig

// NewConfig returns a new RequestConfig with initialized empty headers and query parameters.
// See Path for an explanation of the function parameters.
func NewConfig(pathTemplate string, pathParams ...interface{}) *RequestConfig {
	cfg := &RequestConfig{
		HeaderMap:      http.Header{},
		Values:         url.Values{},
		logRequestLine: true,
	}
	cfg.Path(pathTemplate, pathParams...)
	return cfg


>MessageCount());

  ShowFrames(metadata);
  m_ola_client.GetSelectServer()->Terminate();
}

/**
 * Show frames if asked for
 */
void RDMController::ShowFrames(const ola::client::RDMMetadata &metadata) {
  if (m_show_frames && !metadata.frames.empty()) {
    cout << "------- Frame Information --------" << endl;
    ola::rdm::RDMFrames::const_iterator iter = metadata.frames.begin();
    for (; iter != metadata.frames.end(); ++iter) {
      std::ios::fmtflags f(cout.flags());
      cout << std::fixed << std::setprecision(1);

      if (iter->timing.response_time) {
        cout << "Response Time: " << iter->timing.response_time / 1000.0 << "uS"
             << endl;
      }
      if (iter->timing.break_time) {
        cout << "Break Time: " << iter->timing.break_time / 1000.0 << "uS"
             << endl;
      }
      if (iter->timing.mark_time) {
        cout << "Mark Time: " << iter->timing.mark_time / 1000.0 << "uS"
             << endl;
      }
      if (iter->timing.data_time) {
        cout << "Data Time: " << iter->timing.data_time / 1000.0 << "uS"
             << endl;
      }
      cout.flags(f);
      ola::strings::FormatData(&cout, iter->data.data(), iter->data.size());
    }
  }
}

/**
 * Build a RDM Request from the options provided and send it to the daemon.
 */
int RDMController::PerformRequestAndWait(unsigned int universe,
                                         const UID &uid,
                                         uint16_t sub_device,
                                         const string &pid_name,
                                         bool is_set,
                                         const vector<string> &inputs) {
  // get the pid descriptor
  const ola::rdm::PidDescriptor *pid_descriptor = m_pid_helper.GetDescriptor(
      pid_name,
      uid.ManufacturerId());

  uint16_t pid_value;
  if (!pid_descriptor &&
      (ola::PrefixedHexStringToInt(pid_name, &pid_value) ||
       ola::StringToInt(pid_name, &pid_value))) {
    pid_descriptor = m_pid_helper.GetDescriptor(
        pid_value,
        uid.ManufacturerId());
  }

  if (!pid_descriptor) {
    cout << "Unknown PID: " << pid_name << endl;
    cout << "Use --list-pids to list the available PIDs." << endl;
    return ola::EXIT_USAGE;
  }

  const ola::messaging::Descriptor *descriptor = NULL;
  if (is_set)
    descriptor = pid_descriptor->SetRequest();
  else
    descriptor = pid_descriptor->GetRequest();

  if (!descriptor) {
    cout << (is_set ? "SET" : "GET") << " command not supported for "
      << pid_name << endl;
    exit(ola::EXIT_USAGE);
  }

  // attempt to build the message
  auto_ptr<const ola::messaging::Message> message(m_pid_helper.BuildMessage(
      descriptor,
      inputs));

  if (!message.get()) {
    cout << m_pid_helper.SchemaAsString(descriptor);
    return ola::EXIT_USAGE;
  }

  m_pending_request.universe = universe;
  m_pending_request.uid = &uid;
  m_pending_request.sub_device = sub_device;
  m_pending_request.pid_value = pid_descriptor->Value();

  unsigned int param_data_length;
  const uint8_t *param_data = m_pid_helper.SerializeMessage(
      message.get(),
      &param_data_length);

  ola::client::SendRDMArgs args(
      ola::NewSingleCallback(this, &RDMController::HandleResponse));


   TEST32i32,
    TEST32mi,
    TEST32mialt,
    TEST32ri,
    TEST32rialt,
    TEST32rm,
    TEST32rr,
    TEST64i32,
    TEST64mi32,
    TEST64mi32alt,
    TEST64ri32,
    TEST64ri32alt,
    TEST64rm,
    TEST64rr,
    TEST8i8,
    TEST8mi,
    TEST8mialt,
    TEST8ri,
    TEST8riNOREX,
    TEST8rialt,
    TEST8rm,
    TEST8rr,
    TLSCall32,
    TLSCall64,
    TLSaddr32,
    TLSaddr64,
    TLSbaseaddr32,
    TLSbaseaddr64,
    TRAP,
    TSTF,
    TSTFp32,
    TSTFp64,
    TSTFp80,
    TZCNT16rm,
    TZCNT16rr,
    TZCNT32rm,
    TZCNT32rr,
    TZCNT64rm,
    TZCNT64rr,
    TZMSK32rm,
    TZMSK32rr,
    TZMSK64rm,
    TZMSK64rr,
    UCOMISDrm,
    UCOMISDrr,
    UCOMISSrm,
    UCOMISSrr,
    UCOMFIPr,
    UCOMFIr,
    UCOMFPPr,
    UCOMFPr,
    UCOMFpIr32,
    UCOMFpIr64,
    UCOMFpIr80,
    UCOMFpr32,
    UCOMFpr64,
    UCOMFpr80,
    UCOMFr,
    UD2B,
    UNPCKHPDrm,
    UNPCKHPDrr,
    UNPCKHPSrm,
    UNPCKHPSrr,
    UNPCKLPDrm,
    UNPCKLPDrr,
    UNPCKLPSrm,
    UNPCKLPSrr,
    W64ALLOCA,
    WAIT,
    WBINVD,
    WINALLOCA,
    WINFTOL32,
    WINFTOL64,
    WRFSBASE,
    WRFSBASE64,
    WRGSBASE,
    WRGSBASE64,
    WRMSR,
    XABORT,
    XACQUIREPREFIX,
    XADD16rm,
    XADD16rr,
    XADD32rm,
    XADD32rr,
    XADD64rm,
    XADD64rr,
    XADD8rm,
    XADD8rr,
    XBEGIN,
    XBEGIN4,
    XCHG16ar,
    XCHG16rm,
    XCHG16rr,
    XCHG32ar,
    XCHG32ar64,
    XCHG32rm,
    XCHG32rr,
    XCHG64ar,
    XCHG64rm,
    XCHG64rr,
    XCHG8rm,
    XCHG8rr,
    XCHF,
    XCRYPTCBC,
    XCRYPTCFB,
    XCRYPTCTR,
    XCRYPTECB,
    XCRYPTOFB,
    XEND,
    XGETBV,
    XLAT,
    XOR16i16,
    XOR16mi,
    XOR16mi8,
    XOR16mr,
    XOR16ri,
    XOR16ri8,
    XOR16rm,
    XOR16rr,
    XOR16rrREV,
    XOR32i32,
    XOR32mi,
    XOR32mi8,
    XOR32mr,
    XOR32ri,
    XOR32ri8,
    XOR32rm,
    XOR32rr,
    XOR32rrREV,
    XOR64i32,
    XOR64mi32,
    XOR64mi8,
    XOR64mr,
    XOR64ri32,
    XOR64ri8,
    XOR64rm


LEGROUND_SCORE_VICTORY_POINTS = "Points de victoire : %d/%d";
BATTLEGROUND_SILENCE = "Réduire au silence (champ de bataille)";
BATTLEGROUND_UNSILENCE = "Rendre la parole (champ de bataille)";
BATTLEGROUND_YOUR_AVERAGE_RATING = "Valeur d’association de votre équipe : |cffffffff%d|r";
BATTLEGROUND_YOUR_PERSONAL_RATING = "Votre valeur d’association : %s";
BATTLENET_ADD_FRIEND_INFO = "Si vous ajoutez un ami par son adresse e-mail, il verra toujours votre véritable nom (vous êtes amis en nom réel).\n\nSi vous ajoutez un ami par son BattleTag, il ne verra que votre BattleTag. Vous devez inclure le signe # et les chiffres qui suivent pour ajouter un ami BattleTag.";
BATTLENET_BROADCAST = "Annonce";
BATTLENET_FRIEND = "Nom réel";
BATTLENET_FRIEND_INFO = "C'est une personne que vous connaissez et à qui vous faites confiance dans le monde réel. Vous pourrez discuter avec elle, peu importe le jeu Blizzard auquel vous jouez. Une fois que cette personne aura accepté votre invitation, votre vrai nom sera visible pour tous ses amis.";
BATTLENET_FRIEND_PROMPT = "BattleTag#0000 ou Ami@Email.com";
BATTLENET_FRIEND_REQUEST_RECEIVED = "Vous avez reçu une nouvelle demande d’ami (nom réel).";
BATTLENET_NAME_FORMAT = "%1$s %2$s";
BATTLENET_OPTIONS_LABEL = "Services Blizzard";
BATTLENET_OPTIONS_SUBTEXT = "Ces options vous permettent de changer les types de messages que vous recevez de Blizzard.";
BATTLENET_UNAVAILABLE = "Les services Blizzard sont indisponibles";
BATTLENET_UNAVAILABLE_ALERT = "Les services Blizzard sont actuellement indisponibles.\n\nVos amis (nom réel et BattleTag) ne seront pas affichés. Vous ne pourrez pas envoyer ni recevoir de nouvelles demandes de contact. Il sera peut-être nécessaire de redémarrer le jeu pour réactiver ces fonctionnalités.";
BATTLETAG = "BattleTag";
BATTLETAG_CREATE = "Créer";
BATTLETAG_CREATE_INFO = "Pour ajouter des amis (par BattleTag), vous devez créer votre propre BattleTag. Cliquez sur Créer pour commencer.";
BATTLETAG_CREATE_WEBSITE = "Cliquer sur Créer vous emmènera sur le site Blizzard.com.";
BATTLETAG_FRIEND_LABEL = "Saisir un BattleTag";
BATTLETAG_REMOVE_FRIEND_CONFIRMATION = "Voulez-vous vraiment retirer %s de vos contacts (ami par BattleTag) ?";
BATTLE_FOR_AZEROTH_MASTER = "Maître de Battle for Azeroth";
BATTLE_PETS_ACHIEVEMENT = "Hauts faits des combats de mascottes";
BATTLE_PETS_ACHIEVEMENT_TOOLTIP = "Votre nombre de points de hauts faits de mascottes. Certains de ces hauts faits débloquent des fonctionn


.CompactResponseShort, false, usage.CompactResponse)

	return cmd
}
// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/mongodb/mongodb-atlas-cli/atlascli/internal/cli/organizations/apikeys (interfaces: OrganizationAPIKeyDeleter)
//
// Generated by this command:
//
//	mockgen -typed -destination=delete_mock_test.go -package=apikeys . OrganizationAPIKeyDeleter
//

// Package apikeys is a generated GoMock package.
package apikeys

import (
	reflect "reflect"

	gomock "go.uber.org/mock/gomock"
)

// MockOrganizationAPIKeyDeleter is a mock of OrganizationAPIKeyDeleter interface.
type MockOrganizationAPIKeyDeleter struct {
	ctrl     *gomock.Controller
	recorder *MockOrganizationAPIKeyDeleterMockRecorder
	isgomock struct{}
}

// MockOrganizationAPIKeyDeleterMockRecorder is the mock recorder for MockOrganizationAPIKeyDeleter.
type MockOrganizationAPIKeyDeleterMockRecorder struct {
	mock *MockOrganizationAPIKeyDeleter
}

// NewMockOrganizationAPIKeyDeleter creates a new mock instance.
func NewMockOrganizationAPIKeyDeleter(ctrl *gomock.Controller) *MockOrganizationAPIKeyDeleter {
	mock := &MockOrganizationAPIKeyDeleter{ctrl: ctrl}
	mock.recorder = &MockOrganizationAPIKeyDeleterMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockOrganizationAPIKeyDeleter) EXPECT() *MockOrganizationAPIKeyDeleterMockRecorder {
	return m.recorder
}

// DeleteOrganizationAPIKey mocks base method.
func (m *MockOrganizationAPIKeyDeleter) DeleteOrganizationAPIKey(arg0, arg1 string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DeleteOrganizationAPIKey", arg0, arg1)
	ret0, _ := ret[0].(error)
	return ret0
}

// DeleteOrganizationAPIKey indicates an expected call of DeleteOrganizationAPIKey.
func (mr *MockOrganizationAPIKeyDeleterMockRecorder) DeleteOrganizationAPIKey(arg0, arg1 any) *MockOrganizationAPIKeyDeleterDeleteOrganizationAPIKeyCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteOrganizationAPIKey", reflect.TypeOf((*MockOrganizationAPIKeyDeleter)(nil).DeleteOrganizationAPIKey), arg0, arg1)
	return &MockOrganizationAPIKeyDeleterDeleteOrganizationAPIKeyCall{Call: call}
}

// MockOrganizationAPIKeyDeleterDeleteOrganizationAPIKeyCall wrap *gomock.Call
type MockOrganizationAPIKeyDeleterDeleteOrganizationAPIKeyCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockOrganizationAPIKeyDeleterDeleteOrganizationAPIKeyCall) Return(arg0 error) *MockOrganizationAPIKeyDeleterDeleteOrganizationAPIKeyCall {
	c.Call = c.Call.Return(arg0)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockOrganizationAPIKeyDeleterDeleteOrganizationAPIKeyCall) Do(f func(string, string) error) *MockOrganizationAPIKeyDeleterDeleteOrganizationAPIKeyCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockOrganizationAPIKeyDeleterDeleteOrganizationAPIKeyCall) DoAndReturn(f func(string, string) error) *MockOrganizationAPIKeyDeleterDeleteOr


',\n  xlinkarcrole: 'xlinkArcrole',\n  'xlink:arcrole': 'xlinkArcrole',\n  xlinkhref: 'xlinkHref',\n  'xlink:href': 'xlinkHref',\n  xlinkrole: 'xlinkRole',\n  'xlink:role': 'xlinkRole',\n  xlinkshow: 'xlinkShow',\n  'xlink:show': 'xlinkShow',\n  xlinktitle: 'xlinkTitle',\n  'xlink:title': 'xlinkTitle',\n  xlinktype: 'xlinkType',\n  'xlink:type': 'xlinkType',\n  xmlbase: 'xmlBase',\n  'xml:base': 'xmlBase',\n  xmllang: 'xmlLang',\n  'xml:lang': 'xmlLang',\n  xmlns: 'xmlns',\n  'xml:space': 'xmlSpace',\n  xmlnsxlink: 'xmlnsXlink',\n  'xmlns:xlink': 'xmlnsXlink',\n  xmlspace: 'xmlSpace',\n  y1: 'y1',\n  y2: 'y2',\n  y: 'y',\n  ychannelselector: 'yChannelSelector',\n  z: 'z',\n  zoomandpan: 'zoomAndPan'\n};\n\nfunction getStackAddendum$3() {\n  var stack = ReactDebugCurrentFrame.getStackAddendum();\n  return stack != null ? stack : '';\n}\n\n{\n  var warnedProperties$1 = {};\n  var hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n  var EVENT_NAME_REGEX = /^on./;\n  var INVALID_EVENT_NAME_REGEX = /^on[^A-Z]/;\n  var rARIA$1 = new RegExp('^(aria)-[' + ATTRIBUTE_NAME_CHAR + ']*$');\n  var rARIACamel$1 = new RegExp('^(aria)[A-Z][' + ATTRIBUTE_NAME_CHAR + ']*$');\n\n  var validateProperty$1 = function (tagName, name, value, canUseEventSystem) {\n    if (hasOwnProperty$1.call(warnedProperties$1, name) && warnedProperties$1[name]) {\n      return true;\n    }\n\n    var lowerCasedName = name.toLowerCase();\n    if (lowerCasedName === 'onfocusin' || lowerCasedName === 'onfocusout') {\n      warning(false, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.');\n      warnedProperties$1[name] = true;\n      return true;\n    }\n\n    // We can't rely on the event system being injected on the server.\n    if (canUseEventSystem) {\n      if (registrationNameModules.hasOwnProperty(name)) {\n        return true;\n      }\n      var registrationName = possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? possibleRegistrationNames[lowerCasedName] : null;\n      if (registrationName != null) {\n        warning(false, 'Invalid event handler property `%s`. Did you mean `%s`?%s', name, registrationName, getStackAddendum$3());\n        warnedProperties$1[name] = true;\n        return true;\n      }\n      if (EVENT_NAME_REGEX.test(name)) {\n        warning(false, 'Unknown event handler property `%s`. It will be ignored.%s', name, getStackAddendum$3());\n        warnedProperties$1[name] = true;\n        return true;\n      }\n    } else if (EVENT_NAME_REGEX.test(name)) {\n      // If no event plugins have been injected, we are in a server environment.\n      // So we can't tell if the event name is correct for sure, but we can filter\n      // out known bad ones like `onclick`. We can't suggest a specific replacement though.\n      if (INVALID_EVENT_NAME_REGEX.test(name)) {\n        warning(false, 'Invalid event handler property `%s`. ' + 'React events use the camelCase naming convention, for example `onClick`.%s', name, getStackAddendum$3());\n      }\n      warnedProperties$1[name] = true;\n


ic Class<?>[] getParameterTypes() {
		return this.methodSelector.getParameterTypes();
	}

	@Override
	public boolean equals(Object o) {
		if (this == o) {
			return true;
		}
		if (o == null || getClass() != o.getClass()) {
			return false;
		}
		NestedMethodSelector that = (NestedMethodSelector) o;
		return this.nestedClassSelector.equals(that.nestedClassSelector)
				&& this.methodSelector.equals(that.methodSelector);
	}

	@Override
	public int hashCode() {
		return Objects.hash(this.nestedClassSelector, this.methodSelector);
	}

	@Override
	public String toString() {
		return new ToStringBuilder(this) //
				.append("enclosingClassNames", getEnclosingClassNames()) //
				.append("nestedClassName", getNestedClassName()) //
				.append("methodName", getMethodName()) //
				.append("parameterTypes", getParameterTypeNames()) //
				.append("classLoader", getClassLoader()) //
				.toString();
	}

	@Override
	public Optional<DiscoverySelectorIdentifier> toIdentifier() {
		return nestedClassSelector.toIdentifier() //
				.map(parent -> {
					String fullyQualifiedMethodName = ReflectionUtils.getFullyQualifiedMethodName(parent.getValue(),
						methodSelector.getMethodName(), methodSelector.getParameterTypeNames());
					return DiscoverySelectorIdentifier.create(IdentifierParser.PREFIX, fullyQualifiedMethodName);
				});
	}

	/**
	 * The {@link DiscoverySelectorIdentifierParser} for
	 * {@link NestedMethodSelector NestedMethodSelectors}.
	 */
	@API(status = INTERNAL, since = "1.11")
	public static class IdentifierParser implements DiscoverySelectorIdentifierParser {

		private static final String PREFIX = "nested-method";

		public IdentifierParser() {
		}

		@Override
		public String getPrefix() {
			return PREFIX;
		}

		@Override
		public Optional<NestedMethodSelector> parse(DiscoverySelectorIdentifier identifier, Context context) {
			List<String> parts = Arrays.asList(identifier.getValue().split("/"));
			List<String> enclosingClassNames = parts.subList(0, parts.size() - 1);

			String[] methodParts = ReflectionUtils.parseFullyQualifiedMethodName(parts.get(parts.size() - 1));
			String nestedClassName = methodParts[0];
			String methodName = methodParts[1];
			String parameterTypeNames = methodParts[2];

			return Optional.of(DiscoverySelectors.selectNestedMethod(enclosingClassNames, nestedClassName, methodName,
				parameterTypeNames));
		}

	}

}
/*
 * Copyright 2015-2025 the original author or authors.
 *
 * All rights reserved. This program and the accompanying materials are
 * made available under the terms of the Eclipse Public License v2.0 which
 * accompanies this distribution and is available at
 *
 * https://www.eclipse.org/legal/epl-v20.html
 */

package org.junit.platform.engine.support.hierarchical;

import static java.util.Collections.emptySet;
import static org.apiguardian.api.API.Status.MAINTAINED;
import static org.apiguardian.api.API.Status.STABLE;

import java.util.Optional;
import java.util.Set;
import java.util.concurrent.Future;

import org.apiguardian.api.API;
import org.jspecify.annotations.Nullable;
import org.junit.platform.commons.util.ToStringBuilder;
import org.junit.platform.engine.EngineExecutionListener;
import org.junit.platform.engine.TestDescriptor;
import org.junit.platform.engine.TestExecutionResult;

/**
 * A node within the execution hierarchy.
 *
 * @param <C> the type of {@code EngineExecutionContext} used by the
 * {@code HierarchicalTestEngine}
 * @since 1.0
 * @see HierarchicalTestEngine
 */
@API(status = MAINTAINED, since = "1.0", consumers = "org.junit.platform.engine.support.hierarchical


"empty.png",
    }
    container = Chili.Grid:New{
        parent = scroll,
        x = 0,
        y = 0,
        width = "100%",
        height = "100%",
    }

    widgetHandler:AddAction("resetplanesbar", ResetPlanesBar)

    -- Set the widget size, which apparently were not working well
    x = WG.PLANESBAROPTS.x * viewSizeX
    y = WG.PLANESBAROPTS.y * viewSizeY
    w = WG.PLANESBAROPTS.width * viewSizeX
    h = WG.PLANESBAROPTS.height * viewSizeY
    main_win:SetPosRelative(x, y, w, h, true, false)
    main_win.OnMove = {__OnMainWinSize,}
    main_win.OnResize = {__OnMainWinSize,}
    ResizeContainer()
    -- Save the new dimensions when the widget is locked
    main_win.OnLockWindow = {__OnLockWindow,}
    main_win.OnUnlockWindow = {__OnUnlockWindow,}
end

function widget:ViewResize(viewSizeX, viewSizeY)
    if main_win == nil then
        return
    end
    x = WG.PLANESBAROPTS.x * viewSizeX
    y = WG.PLANESBAROPTS.y * viewSizeY
    w = WG.PLANESBAROPTS.width * viewSizeX
    h = WG.PLANESBAROPTS.height * viewSizeY
    if w < main_win.minWidth then
        w = main_win.minWidth
    end
    if h < main_win.minHeight then
        h = main_win.minHeight
    end
    main_win:SetPosRelative(x, y, w, h, true, false)
    ResizeContainer()
end

function widget:UnitCreated(unitID, unitDefID, unitTeam)
    if (unitTeam ~= myTeamID) then
        return
    end

    local unitDef = UnitDefs[unitDefID]
    if unitDef.canFly then
        __makeAircraft(unitID, unitDefID, unitDef)
        ResizeContainer()
    end
end

function widget:UnitGiven(unitID, unitDefID, unitTeam, oldTeam)
    widget:UnitCreated(unitID, unitDefID, unitTeam)
end

function widget:UnitDestroyed(unitID, unitDefID, unitTeam)
    if (unitTeam ~= myTeamID) or (aircrafts[unitID] == nil) then
        return
    end

    for i, u in ipairs(aircrafts_iterator) do
        if u == unitID then
            table.remove(aircrafts_iterator, i)
            break
        end
    end
    aircrafts[unitID]:Dispose()
    aircrafts[unitID] = nil
    ResizeContainer()
end

function widget:UnitTaken(unitID, unitDefID, unitTeam, newTeam)
    widget:UnitDestroyed(unitID, unitDefID, unitTeam)
end

function widget:Update()
    if myTeamID ~= GetMyTeamID() then
        myTeamID = GetMyTeamID()
        GenerateAircrafts()
        return
    end

    if #aircrafts_iterator == 0 then
        return
    end
    current_aircraft = (current_aircraft % #aircrafts_iterator) + 1
    local unitID = aircrafts_iterator[current_aircraft]
    local button = aircrafts[unitID]
    local unitDef = button.unitDef

    local sHP, sMaxHP = GetUnitHealth(unitID)
    button.hbar:SetValue(sHP / sMaxHP * 100)

    local sMaxFuel = unitDef.customParams.maxfuel or 1
    local sFuel = GetUnitRulesParam(unitID, "fuel") or sMaxFuel
    button.fbar:SetValue(sFuel / sMaxFuel * 100)
end

function widget:DrawWorld()
    local unitID = overAircraft
    if unitID == nil then
        return
    end

    -- hilight the unit we are about to click on
    glUnit(unitID, true)
    local ux, uy,