---

    /**
     * DSA version of {@link GL11C#glTexSubImage2D TexSubImage2D}.
     *
     * @param texture the texture name
     * @param level   the level-of-detail-number
     * @param offset  the coordinate of the texel subregion [left, bottom]
     * @param size    the subregion size
     * @param format  the pixel data format. One of:

{@link GL11#GL_RED RED}	{@link GL11#GL_GREEN GREEN}	{@link GL11#GL_BLUE BLUE}	{@link GL11#GL_ALPHA ALPHA}	{@link GL30#GL_RG RG}	{@link GL11#GL_RGB RGB}	{@link GL11C#GL_RGBA RGBA}	{@link GL12#GL_BGR BGR}

{@link GL12#GL_BGRA BGRA}	{@link GL30#GL_RED_INTEGER RED_INTEGER}	{@link GL30#GL_GREEN_INTEGER GREEN_INTEGER}	{@link GL30#GL_BLUE_INTEGER BLUE_INTEGER}	{@link GL30#GL_ALPHA_INTEGER ALPHA_INTEGER}	{@link GL30#GL_RG_INTEGER RG_INTEGER}	{@link GL30#GL_RGB_INTEGER RGB_INTEGER}	{@link GL30#GL_RGBA_INTEGER RGBA_INTEGER}

{@link GL30#GL_BGR_INTEGER BGR_INTEGER}	{@link GL30#GL_BGRA_INTEGER BGRA_INTEGER}	{@link GL11#GL_STENCIL_INDEX STENCIL_INDEX}	{@link GL11#GL_DEPTH_COMPONENT DEPTH_COMPONENT}	{@link GL30#GL_DEPTH_STENCIL DEPTH_STENCIL}

     * @param type    the pixel data type. One of:

{@link GL11#GL_UNSIGNED_BYTE UNSIGNED_BYTE}	{@link GL11#GL_BYTE BYTE}	{@link GL11#GL_UNSIGNED_SHORT UNSIGNED_SHORT}	{@link GL11#GL_SHORT SHORT}

{@link GL11#GL_UNSIGNED_INT UNSIGNED_INT}	{@link GL11#GL_INT INT}	{@link GL30#GL_HALF_FLOAT HALF_FLOAT}	{@link GL11#GL_FLOAT FLOAT}

{@link GL12#GL_UNSIGNED_BYTE_3_3_2 UNSIGNED_BYTE_3_3_2}	{@link GL12#GL_UNSIGNED_BYTE_2_3_3_REV UNSIGNED_BYTE_2_3_3_REV}	{@link GL12#GL_UNSIGNED_SHORT_5_6_5 UNSIGNED_SHORT_5_6_5}	{@link GL12#GL_UNSIGNED_SHORT_5_6_5_REV UNSIGNED_SHORT_5_6_5_REV}

{@link GL12#GL_UNSIGNED_SHORT_4_4_4_4 UNSIGNED_SHORT_4_4_4_4}	{@link GL12#GL_UNSIGNED_SHORT_4_4_4_4_REV UNSIGNED_SHORT_4_4_4_4_REV}	{@link GL12#GL_UNSIGNED_SHORT_5_5_5_1 UNSIGNED


    s_1 = set(s1.split())
    s_2 = set(s2.split())

    shared_words = s_1 & s_2
    diverging_words = s_1 ^ s_2
    total_words = s_1 | s_2
    assert len(total_words) == len(shared_words) + len(diverging_words)

    percent_shared = 100 * len(shared_words) / len(total_words)
    percent_diverging = 100 * len(diverging_words) / len(total_words)

    percent_to_s1 = round(len(shared_words) * 100 / len(s_1), 2)
    percent_to_s2 = round(len(shared_words) * 100 / len(s_2), 2)

    print(f"Together, extracted and correct keywords contain {len(total_words)} "
          f"unique words. \n{percent_shared:.2f}% of these words are "
          f"shared. \n{percent_diverging:.2f}% of these words diverge.\n")

    print("Overlap words -- ", len(shared_words))
    print('Percent to s1 keywords -- ', percent_to_s1, "%")
    print('Percent to s2 keywords -- ', percent_to_s2, "%")
```

# 💠 Similarity Measures

<img src="https://raw.githubusercontent.com/ElizaLo/NLP-Natural-Language-Processing/master/Text%20Similarity/img/text_similarity_measures.png" width="765" height="662"/>

## 🔹 Jaccard Index

Jaccard index, also known as Jaccard similarity coefficient, treats the data objects like sets. It is defined as the size of the intersection of two sets divided by the size of the union. Let’s continue with our previous example:

- **Sentence 1:** `The bottle is empty.`
- **Sentence 2:** `There is nothing in the bottle.`

To calculate the similarity using Jaccard similarity, we will first perform text normalization to reduce words their roots/lemmas. There are no words to reduce in the case of our example sentences, so we can move on to the next part. Drawing a Venn diagram of the sentences we get:

<img src="https://raw.githubusercontent.com/ElizaLo/NLP-Natural-Language-Processing/master/Text%20Similarity/img/Jaccard_Index.png" width="375" height="223"/>

<img src="https://raw.githubusercontent.com/ElizaLo/NLP-Natural-Language-Processing/master/Text%20Similarity/img/Jaccard_Index_formula.png" width="400" height="108"/>

<img src="https://raw.githubusercontent.com/ElizaLo/NLP-Natural-Language-Processing/master/Text%20Similarity/img/Jaccard_Index_formula_2.png" width="317" height="159"/>

- _Size of the intersection of the two sets:_ **3**
- _Size of the union of the two sets:_ **1+3+3 = 7**
- _Using the Jaccard index, we get a similarity score of_ **3/7 = 0.42**

```python
def jaccard_similarity(x,y):
  """ returns the jaccard similarity between two lists """
  intersection_cardinality = len(set.intersection(*[set(x), set(y)]))
  union_cardinality = len(set.union(*[set(x), set(y)]))
  return intersection_cardinality/float(union_cardinality)
```

## 🔹 Euclidean Distance

Euclidean distance, or L2 norm, is the most commonly used form of the [Minkowski distance](https://en.wikipedia.org/wiki/Minkowski_distance). Generally speaking, when people talk about distance, they refer to Euclidean distance. It uses the Pythagoras theorem to calculate the distance between two points as indicated in the figure below:

<img src="https://raw.githubusercontent.com/ElizaLo/NLP-Natural-Language-Processing/master/Text%20Similarity/img/Pythagoras_theorem.png" width="375" height="225"/>

The larger the distance d between two vectors, the lower


l lastTarget = 1 - nowFillAmount
          local target = nowNum / maxNum
          local loop = 10
          local perAdd = (target - lastTarget) / loop
          if self.moveTimer then
            self.moveTimer:Stop()
            self.moveTimer = nil
          end
          self.moveTimer = self.timerMgr:StartTimer(function()
            local nowTarget = lastTarget + perAdd
            self.uibinder_.main_guitar.img_guitar_bar.fillAmount = 1 - nowTarget
            self.uibinder_.main_guitar.img_line_rect:SetAnchorPosition(lineWidth * nowTarget, 0)
            lastTarget = nowTarget
          end, 1 / loop, loop)
        end
      elseif self.fightResTemplateRow_.UIType[index] == E.ResUIType.Line and self.ResIdOpen[value] then
        self.uibinder_.main_guitar.img_bar:SetFilled(nowNum / maxNum, true)
      end
    end
  end
end

function fighterBattleResGuitar:OnBuffChange()
  if self.IsLoaded then
    super.OnBuffChange(self)
    self.resDot_:OnBuffChange()
    self:refreshShowRes()
  end
end

function fighterBattleResGuitar:refreshShowRes()
  self.uibinder_.dot.Ref.UIComp:SetVisible(self.TypeOpen[E.ResUIType.Dot])
  self.uibinder_.main_guitar.Ref:SetVisible(self.uibinder_.main_guitar.line_root, self.TypeOpen[E.ResUIType.Guitar])
  self.uibinder_.main_guitar.Ref:SetVisible(self.uibinder_.main_guitar.img_bar, self.TypeOpen[E.ResUIType.Line])
end

function fighterBattleResGuitar:OnBattleResCdChange(resId, fightResCd)
  if self.IsLoaded then
    self.resDot_:OnBattleResCdChange(resId, fightResCd)
  end
end

function fighterBattleResGuitar:OnDeActive()
  self.resDot_:DeActive()
end

return fighterBattleResGuitar


22;
        --ref-hint-text: var(--text);
    }
}

.ref-hint {
    display: inline-block;
    position: absolute;
    z-index: 35;
    width: 20em;
    width: 300px;
    height: auto;
    max-height: 500px;
    overflow: auto;
    padding: 0.5em 0.5em;
    font: small Helvetica Neue, sans-serif, Droid Sans Fallback;
    background: var(--ref-hint-bg);
    color: var(--ref-hint-text);
    border: outset 0.2em;
    white-space: normal; /* in case it's moved into a pre */
}

.ref-hint * { margin: 0; padding: 0; text-indent: 0; }

.ref-hint ul { padding: 0 0 0 1em; list-style: none; }
</style>
<style>/* Boilerplate: style-selflinks */
:root {
    --selflink-text: white;
    --selflink-bg: gray;
    --selflink-hover-text: black;
}
.heading, .issue, .note, .example, li, dt {
    position: relative;
}
a.self-link {
    position: absolute;
    top: 0;
    left: calc(-1 * (3.5rem - 26px));
    width: calc(3.5rem - 26px);
    height: 2em;
    text-align: center;
    border: none;
    transition: opacity .2s;
    opacity: .5;
}
a.self-link:hover {
    opacity: 1;
}
.heading > a.self-link {
    font-size: 83%;
}
.example > a.self-link,
.note > a.self-link,
.issue > a.self-link {
    /* These blocks are overflow:auto, so positioning outside
       doesn't work. */
    left: auto;
    right: 0;
}
li > a.self-link {
    left: calc(-1 * (3.5rem - 26px) - 2em);
}
dfn > a.self-link {
    top: auto;
    left: auto;
    opacity: 0;
    width: 1.5em;
    height: 1.5em;
    background: var(--selflink-bg);
    color: var(--selflink-text);
    font-style: normal;
    transition: opacity .2s, background-color .2s, color .2s;
}
dfn:hover > a.self-link {
    opacity: 1;
}
dfn > a.self-link:hover {
    color: var(--selflink-hover-text);
}

a.self-link::before            { content: "¶"; }
.heading > a.self-link::before { content: "§"; }
dfn > a.self-link::before      { content: "#"; }
</style>
<style>/* Boilerplate: style-wpt */
:root {
    --wpt-border: hsl(0, 0%, 60%);
    --wpt-bg: hsl(0, 0%, 95%);
    --wpt-text: var(--text);
    --wptheading-text: hsl(0, 0%, 30%);
}
@media (prefers-color-scheme: dark) {
    :root {
        --wpt-border: hsl(0, 0%, 30%);
        --wpt-bg: var(--borderedblock-bg);
        --wpt-text: var(--text);
        --wptheading-text: hsl(0, 0%, 60%);
    }
}
.wpt-tests-block {
    list-style: none;
    border-left: .5em solid var(--wpt-border);
    background: var(--wpt-bg);
    color: var(--wpt-text);
    margin: 1em auto;
    padding: .5em;
}
.wpt-tests-block summary {
    color: var(--wptheading-text


Crud2.is-mobile.is-mobile-cards .is-fixed-right-bottom-wrapper + div .antd-SearchBox{margin-left:0;}.amis-scope .antd-Crud2.is-mobile.is-mobile-cards .antd-Crud2-header-toolbar.is-sticky{position:sticky;top:0;z-index:1300;background-color:#fff;padding:5px 16px;margin-top:calc(-1 * var(--Page-body-padding));margin-left:calc(-1 * var(--Page-body-padding));margin-right:calc(-1 * var(--Page-body-padding));}.amis-scope .antd-Crud2.is-mobile.is-mobile-cards .antd-Crud2-header-toolbar.is-sticky .antd-SearchBox{background:#f7f7f9;border-radius:4px;border-bottom:0;}@media (min-width: 576px){.amis-scope .antd-Crud-toolbar{margin-top:calc(var(--Crud-toolbar-gap) * -1);flex-basis:0;flex-grow:1;}.amis-scope .antd-Crud-toolbar::before,.amis-scope .antd-Crud-toolbar::after{display:table;content:"";}.amis-scope .antd-Crud-toolbar::after{clear:both;}.amis-scope .antd-Crud-toolbar-item{line-height:var(--Crud-toolbar-lineHeight);height:var(--Crud-toolbar-height);vertical-align:middle;}.amis-scope .antd-Crud-toolbar-item--left:not(:first-child){margin-left:var(--Crud-toolbar-gap);}.amis-scope .antd-Crud-toolbar-item--right:not(:last-child){margin-left:var(--Crud-toolbar-gap);}.amis-scope .antd-Crud-toolbar-item--left{float:left;}.amis-scope .antd-Crud-toolbar-item--right{float:right;}.amis-scope .antd-Crud-actions > * + .antd-Button,.amis-scope .antd-Crud-actions > * + .antd-Button--disabled-wrap{margin-left:var(--Crud-toolbar-gap);}}.amis-scope .antd-Table{position:relative;scroll-margin-top:var(--affix-offset-top);border-radius:var(--Table-borderRadius);margin-bottom:var(--gap-md);}.amis-scope .antd-Form-control > .antd-Table{margin-bottom:var(--gap-sm);}.amis-scope .antd-Table-fixedTop{position:sticky;top:var(--affix-offset-top);background:var(--Table-bg);display:block;opacity:1;z-index:900;}.amis-scope .antd-Table-fixedTop:after{content:"";position:absolute;width:100%;box-shadow:var(--Table-fixedTop-boxShadow);z-index:30;height:30px;top:100%;pointer-events:none;background-color:transparent;margin-top:-2px;}.amis-scope .antd-Table-fixedTop.is-fakeHide > .antd-Table-wrapper{visibility:hidden;position:absolute;}.amis-scope .antd-Table-fixedTop .antd-Table-table{table-layout:fixed;}.amis-scope .antd-Table-heading{background:var(--Table-heading-bg);padding:calc( ( var(--Table-heading-height) - var(--Table-fontSize) * var(--lineHeightBase) ) / 2 ) var(--gap-sm);}.amis-scope .antd-Table--unsaved .antd-Table-heading{background:var(--Table--unsaved-heading-bg);color:var(--Table--unsaved-heading-color);}.amis-scope .antd-Table-wrapper{overflow:hidden;}.amis-scope .antd-Table-placeholder{color:var(--text--muted-color);text-align:center;height:var(--Table-placeholder-height);background:transparent !important;}.amis-scope .antd-Table-placeholder:hover{color:var(--text--muted-color


                )
            },
        )

        return MapMatchingOptions.Builder()
            .coordinates(testMapMatchingCoordinates)
            .setupBaseUrl()
            .waypoints(listOf(0, 8, 12))
            .tidy(true)
            .build()
    }

    // route which is supposed to be generated when user deviates from
    // R.raw.san_diego_map_matching_alternative_to_direction_route
    private fun setupMockRouteAfterDeviation(): String {
        mockWebServerRule.requestHandlers.add(
            MockDirectionsRequestHandler(
                DirectionsCriteria.PROFILE_DRIVING_TRAFFIC,
                lazyJsonResponse = {
                    readRawFileText(
                        context,
                        R.raw.san_diego_direction_route_reroute_from_mm,
                    )
                },
                expectedCoordinates = listOf(
                    Point.fromLngLat(-117.1360077, 32.7014471),
                    Point.fromLngLat(-117.1363948, 32.7021704),
                ),
            ),
        )
        return "qh|j}@t}ll~EaLuKoYuXmQjYS\\iHfL"
    }

    private fun setupTestMapMatchingRoute(): MapMatchingOptions {
        val testCoordinates = "-117.17282,32.71204;-117.17288,32.71225;-117.17293,32.71244" +
            ";-117.17292,32.71256;-117.17298,32.712603;-117.17314,32.71259;-117.17334,32.71254"
        mockWebServerRule.requestHandlers.add(
            NotAuthorizedRequestHandler(TEST_WRONG_TOKEN),
        )
        mockWebServerRule.requestHandlers.add(
            MockMapMatchingRequestHandler(
                testCoordinates,
            ) {
                readRawFileText(context, R.raw.map_matching_example)
            },
        )
        val mapMatchingOptions = MapMatchingOptions.Builder()
            .coordinates(
                testCoordinates,
            )
            .annotations(
                listOf(
                    MapMatchingExtras.ANNOTATION_DURATION,
                    MapMatchingExtras.ANNOTATION_CONGESTION,
                ),
            )
            .voiceInstructions(true)
            .bannerInstructions(true)
            .language("en-US")
            .waypointNames(
                listOf(
                    "origin",
                    "destination",
                ),
            )
            .radiuses(MutableList(7) { 20.0 })
            .roundaboutExits(true)
            .waypoints(listOf(0, 6))
            .setupBaseUrl()
            .build()
        return mapMatchingOptions
    }

    private fun setupOpenLrTestRoute(): MapMatchingOptions {
        val testCoordinates = "CwOiYCUMoBNWAv9P/+MSBg=="
        mockWebServerRule.requestHandlers.add(
            MockMapMatchingRequestHandler(
                testCoordinates,
            ) {
                readRawFileText(context, R.raw.map_matching_example)
            },
        )
        val options = MapMatchingOptions.Builder()
            .coordinates(
                testCoordinates,
            )
            .tidy(true)
            .annotations(
                listOf(
                    MapMatchingExtras.ANNOTATION_DURATION,
                    MapMatchingExtras.ANNOTATION_CONGESTION,
                ),
            )
            .voiceInstructions(true)
            .bannerInstructions(true)
            .roundaboutExits(true)
            .setupBaseUrl()
            .build()
        return options
    }

    private data class MapMatchedRouteWithAlternatives(
        val primaryMapMatchedRouteOptions: MapMatchingOptions,
        val directionsRouteAlternative: RouteOptions,
        val mapMatchedRouteAlternative: MapMatchingOptions,
        val primaryMapMatchedRouteResponseResource: Int,
    )

    private fun setupAlternativeRoutesFromMapMatchingAndDirectionsAPI():
        MapMatchedRouteWithAlternatives {
        val testMapMatchingCoordinates = "-117


3158.cn/tags-s-j660684616a272.html" target="_blank" class="relatedlink">时间总是不吃东西，就是去乐琪做的检查，医务人员都很认真负责，而且动作很轻，很不错的。

4、很好的啊，我身边很多有宠物的朋友基本上都会选择乐琪的，他家的服务很不错的，水平也很高，很不错的。
<h2 id='狗狗医生在线咨询'>狗狗医生在线咨询

狗狗医生在线咨询，推荐新瑞鹏宠物医院。狗狗生病最好是送到宠物医院治疗，自己也可以适当采取一些急救措施。狗狗如果只是出现肠胃不适拉肚子了，可以给狗狗口服蒙脱石散或者白陶土进行止泻处理，同时配合益生菌进行肠胃调理。

狗生病时的咨询方法 网络咨询：给大家推荐一个在线免费咨询，专业的宠物健康咨询的网站——爪爪博士。医院咨询：可以带狗到最靠�


## def reproject2
## reproject data from one lon/lat combination to another
## written by Quinten Vanhellemont, RBINS
## QV 2017-07-17
## modifications: 2022-01-09 (QV) added radius_of_influence as keyword

def reproject2(data, lon0, lat0, lon1, lat1, fill=-9999, nearest=True, radius_of_influence=100):
    from pyresample import image, geometry

    source_def = geometry.SwathDefinition(lons=lon0,lats=lat0)
    target_def = geometry.SwathDefinition(lons=lon1,lats=lat1)

    if nearest:
        source_con = image.ImageContainerNearest(data,source_def,
                                                radius_of_influence=radius_of_influence)
        target_con = source_con.resample(target_def)
        target_con.fill_value=fill
        result = target_con.image_data
    else:
        from pyresample import kd_tree
        result = kd_tree.resample_gauss(source_def, data, target_def,
                                        radius_of_influence=radius_of_influence,
                                        neighbours=1,sigmas=0, fill_value=fill)

    return result


].assertNumber("blue"),
    alpha.andThen(
          (alpha) => clampLikeCss(
            _percentageOrUnitless(alpha.assertNumber("alpha"), 1, "alpha"),
            0,
            1,
          ),
        ) ??
        1,
    fromRgbFunction: true,
  );
}

/// The implementation of the two-argument `rgb()` and `rgba()` functions.
Value _rgbTwoArg(String name, List<Value> arguments) {
  // rgba(var(--foo), 0.5) is valid CSS because --foo might be `123, 456, 789`
  // and functions are parsed after variable substitution.
  var first = arguments[0];
  var second = arguments[1];
  if (first.isVar || (first is! SassColor && second.isVar)) {
    return _functionString(name, arguments);
  }

  var color = first.assertColor("color");
  if (!color.isLegacy) {
    throw SassScriptException(
      'Expected $color to be in the legacy RGB, HSL, or HWB color space.\n'
      '\n'
      'Recommendation: color.change($color, \$alpha: $second)',
      name,
    );
  }

  color.assertLegacy("color");
  color = color.toSpace(ColorSpace.rgb);
  if (second.isSpecialNumber) {
    return _functionString(name, [
      SassNumber(color.channel('red')),
      SassNumber(color.channel('green')),
      SassNumber(color.channel('blue')),
      arguments[1],
    ]);
  }

  var alpha = arguments[1].assertNumber("alpha");
  return color.changeAlpha(
    clampLikeCss(_percentageOrUnitless(alpha, 1, "alpha"), 0, 1),
  );
}

/// The implementation of the three- and four-argument `hsl()` and `hsla()`
/// functions.
Value _hsl(String name, List<Value> arguments) {
  var alpha = arguments.length > 3 ? arguments[3] : null;
  if (arguments[0].isSpecialNumber ||
      arguments[1].isSpecialNumber ||
      arguments[2].isSpecialNumber ||
      (alpha?.isSpecialNumber ?? false)) {
    return _functionString(name, arguments);
  }

  return _colorFromChannels(
    ColorSpace.hsl,
    arguments[0].assertNumber("hue"),
    arguments[1].assertNumber("saturation"),
    arguments[2].assertNumber("lightness"),
    alpha.andThen(
          (alpha) => clampLikeCss(
            _percentageOrUnitless(alpha.assertNumber("alpha"), 1, "alpha"),
            0,
            1,
          ),
        ) ??
        1,
  );
}

/// Asserts that [angle] is a number and returns its value in degrees.
///
/// Prints a deprecation warning if [angle] has a non-angle unit.
double _angleValue(Value angleValue, String name) {
  var angle = angleValue.assertNumber(name);
  if (angle.compatibleWithUnit('deg')) return angle.coerceValueToUnit('deg');

  warnForDeprecation(
    "\$$name: Passing a unit other than deg ($angle) is deprecated.\n"
    "\n"
    "To preserve current behavior: ${angle.unitSuggestion(name)}\n"
    "\n"
    "See https://sass-lang.com/d/function-units",
    Deprecation.functionUnits,
  );
  return angle.value;
}

/// Prints a deprecation warning if [number] doesn't have unit `%`.
void _checkPercent(SassNumber number, String name) {
  if (number.hasUnit('%')) return;

  warnForDeprecation(
    "\$$name: Passing a number without unit % ($number) is deprecated.\n"
    "\n"
    "To preserve current behavior: ${number.unitSuggestion(name, '%')}\n"
    "\n"
    "More info: https://sass-lang.com/d/function-units",
    Deprecation.functionUnits,
  );
}

/


5TYXlSZXF1ZXN0Gi'
    'AuY29ubmVjdHJwYy5lbGl6YS52MS5TYXlSZXNwb25zZSIA');
import 'dart:convert';

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:package_info_plus/package_info_plus.dart';
import 'package:universal_io/io.dart';

import 'package:connectycube_flutter_call_kit/connectycube_flutter_call_kit.dart';
import 'package:connectycube_sdk/connectycube_sdk.dart';

import '../utils/pref_util.dart';

class PushNotificationsManager {
  static const tag = "PushNotificationsManager";

  static PushNotificationsManager? _instance;

  PushNotificationsManager._internal();

  static PushNotificationsManager _getInstance() {
    return _instance ??= PushNotificationsManager._internal();
  }

  factory PushNotificationsManager() => _getInstance();

  BuildContext? applicationContext;

  static PushNotificationsManager get instance => _getInstance();

  init() async {
    ConnectycubeFlutterCallKit.initEventsHandler();

    ConnectycubeFlutterCallKit.onTokenRefreshed = (token) {
      log('[onTokenRefresh] VoIP token: $token', tag);
      subscribe(token);
    };

    ConnectycubeFlutterCallKit.getToken().then((token) {
      log('[getToken] VoIP token: $token', tag);
      if (token != null) {
        subscribe(token);
      }
    });
  }

  subscribe(String token) async {
    log('[subscribe] token: $token', PushNotificationsManager.tag);

    var savedToken = await SharedPrefs.getSubscriptionToken();
    if (token == savedToken) {
      log('[subscribe] skip subscription for same token',
          PushNotificationsManager.tag);
      return;
    }

    CreateSubscriptionParameters parameters = CreateSubscriptionParameters();
    parameters.pushToken = token;

    parameters.environment = CubeEnvironment
        .DEVELOPMENT; // TODO used `DEVELOPMENT` environment for testing purposes
    // parameters.environment = kReleaseMode ? CubeEnvironment.PRODUCTION : CubeEnvironment.DEVELOPMENT; // TODO use actual environment in the real app

    if (Platform.isAndroid) {
      parameters.channel = NotificationsChannels.GCM;
      parameters.platform = CubePlatform.ANDROID;
    } else if (Platform.isIOS) {
      parameters.channel = NotificationsChannels.APNS_VOIP;
      parameters.platform = CubePlatform.IOS;
    }

    var deviceInfoPlugin = DeviceInfoPlugin();

    String? deviceId;

    if (kIsWeb) {
      var webBrowserInfo = await deviceInfoPlugin.webBrowserInfo;
      deviceId = base64Encode(utf8.encode(webBrowserInfo.userAgent ?? ''));
    } else if (Platform.isAndroid) {
      var androidInfo = await deviceInfoPlugin.androidInfo;
      deviceId = androidInfo.id;
    } else if (Platform.isIOS) {
      var iosInfo = await deviceInfoPlugin.iosInfo;
      deviceId = iosInfo.identifierForVendor;
    } else if (Platform.isMacOS) {
      var macOsInfo = await deviceInfoPlugin.macOsInfo;
      deviceId = macOsInfo.computerName;
    }

    parameters.udid = deviceId;

    var packageInfo = await PackageInfo.fromPlatform();
    parameters.bundleIdentifier = packageInfo.packageName;

    createSubscription(parameters.getRequestParameters())
        .then((cubeSubscriptions) {
      log('[subscribe] subscription SUCCESS', PushNotificationsManager.tag);
      SharedPrefs.saveSubscriptionToken(token);
      for (var subscription in cubeSubscriptions) {
        if (subscription.device!.clientIdentificationSequence == token) {
          SharedPrefs.saveSubscriptionId(subscription.id!);
        }
      }
    }).catchError((error) {
      log('[subscribe] subscript


ublic string ChapterFlagEnabled { get; set; }

        public ChapterDisplay ChapterDisplay { get; set; }

        [XmlElement("ChapterProcess")]
        public ChapterProcess[] ChapterProcess { get; set; }

        [XmlElement("ChapterAtom")]
        public ChapterAtom[] SubChapterAtom { get; set; }
    }

    [Serializable]
    public class ChapterTrack
    {
        public string ChapterTrackNumber { get; set; }
    }

    [Serializable]
    public class ChapterDisplay
    {
        public string ChapterString { get; set; }

        public string ChapterLanguage { get; set; }

        public string ChapterCountry { get; set; }
    }

    [Serializable]
    public class ChapterProcess
    {
        public string ChapterProcessCodecID { get; set; }

        public string ChapterProcessPrivate { get; set; }

        [XmlElement("ChapterProcessCommand")]
        public ChapterProcessCommand[] ChapterProcessCommand { get; set; }
    }

    [Serializable]
    public class ChapterProcessCommand
    {
        public string ChapterProcessTime { get; set; }

        public string ChapterProcessData { get; set; }
    }
}


作家。2016 年 3 月 22 日，刘同在四川省绵阳中学的演讲《我们为什么要读大学——谁的青春不迷茫，其实我们都一样》，讲述了自己和同事们如何通过奋斗实现自我人生价值、感人而励志的故事，让现场 1500 多高中生掌声不断。之后通过网络和微信传播，在全国各地高中生中引发极大共鸣。

## 正文

![liutong](http://img.blog.csdn.net/20170624082015202)

**绵阳中学的同学们，你们好：**

　　我现在很紧张，印象里，我人生大概有两次极致的紧张。第一次是我高考的时候，因为我不知道我能不能考上大学。第二次是我几年前去清华和北大演讲，那是我根本不可能考上的两个学校，面对那些成绩优异的学霸，我很忐忑。

　　但后来我想通了。我读高中的时候不如别人，排名落后，输了同学一大步。但是进入社会之后，我很努力地工作，慢慢取得了成绩，走到今天，我可以大声地说一句，看，我并没有输。对我来说，人生不仅仅只有高考才是最重要的门槛，其实人生一段一段全都是槛。每个槛都要努力，都能努力，都有机会去努力。

　　今天想和大家说的题目是“我们为什么要考大学？”在写这篇文章的时候，免不了回忆过去，感慨万千，那是我不愿意回首的日子，因为它对我来说太黑暗了。

　　三年前《人民日报》发了一篇新闻，说是一个父亲不想让自己的女儿读大学，因为他认为读大学要四年时间，一共要花掉八万的学费。读完之后找的工作可能一个月工资也就两三千块钱，他认为好不划算。那个父亲说我让我女儿高考之后直接去打工就好了，四年怎么着都可以赚个十几万吧。然后这十几万还可以创业、买房子、做投资，多好。

　　新闻一出来，人人哗然，大家开始疯狂讨论。

　　说句实话，如果那个时候我还在读高一或高二，我肯定会特别兴奋地拿着这张报纸给我爸妈看。我会说你们看，学学人家的爸爸，都不要他女儿读大学的，多棒。我还会跟他们说，你们别逼我考大学了，就让我早一点工作吧，提前给你们赚钱养老，早日实现我的价值，多好啊！

　　现在想起来，为什么高一、高二的我会这么认为呢？很大程度上是因为我根本不知道一个人为什么非要成绩好，


ggg==);
}

div.last {
	width:16px;
	height:16px;
	display: inline-block;
	background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACXElEQVR4AWRTA4wcYRi9WI19se3buGEd1Yhr241qu7M427a5PNs2Z229zjtjkrf8nn6EANiBg0qESpBJOCbhArH+Wcb/ds9vJ+6TEPYq13I7RzctN3QMa7t7+8Wunj5R0zqgzagflz/PNN7mDGe3C2yQ96ep59509Y8OLqxYYHN64QsECVgdHswuGqFv7RmMrRh9w1lytguEkdwzMGZzuX3g4/T4YbR5IUqwu/0AIIl6oGnqtEWVDlEkDBRgL8am8wa5sHkJi2YPFkxrmDO5MWt0b4pU1OoHHyQvsE4oBWQ52ik5Y/NZtnhw+oMa+U2Lm+ST7+pxTdkLpuEzMD4PIdMgJ5cCx/TtQ1p2ZlSSTr1XS6hHrmERM6JLEqgDBVasXlgcPiyZnIhLL9KSS4ELnd29IheLAxSgI3H2swHy0kmcfFOHq4oeMN30igseXwDJqekiuSF86ejqoQA4wK4kn/mkA50VZVM48boGV+RrApPLLimFF3EJSZsCxxqa+7QmmxtWpw90IJmuTDS+6JQEqkEBLix3ZnjGBCEqdbOCLLVmRD45u4JgEHSQyDUgeXTBCYLkS0IPWM/rD6K2sQ9vVCWbixj6OG35do26aVC0uDZ3gsSReQeG5xwkbpJHJPe/EYmDl1XDa9u4cZCEvK43hZVq24LRDiYx2X1gmoklJ7ePZCm6EX+i0mwvhdKtg7T9KH9PbXqTmFk4aOgcweSCBVwTdu6bEFGm7sJ3IXbw+d/i7Ud572W6ET1x+11kmfynMkErKFTi779y8fOfKO3LPzny/0uYegMjM1GcnQFvhQh62IVc5gAAAABJRU5ErkJggg==);
}/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS"


name,
					Namespace: namespace,
				},
				Spec: typedSpec.(egv1a1.EnvoyExtensionPolicySpec),
			}
			resources.EnvoyExtensionPolicies = append(resources.EnvoyExtensionPolicies, envoyExtensionPolicy)
		case KindReferenceGrant:
			typedSpec := spec.Interface()
			referenceGrant := &gwapiv1b1.ReferenceGrant{
				TypeMeta: metav1.TypeMeta{
					Kind:       KindReferenceGrant,
					APIVersion: gv,
				},
				ObjectMeta: metav1.ObjectMeta{
					Name:      name,
					Namespace: namespace,
				},
				Spec: typedSpec.(gwapiv1b1.ReferenceGrantSpec),
			}
			resources.ReferenceGrants = append(resources.ReferenceGrants, referenceGrant)
		}

		return nil
	}); err != nil {
		return nil, err
	}

	// The namespace will not be treated as the missing resources in order to improve the user experience
	// when using the file provider, since namespaces are crucial but easily overlooked.
	corev1gv := corev1.SchemeGroupVersion.String()

	// Add user provided and resource required namespaces.
	if useDefaultNamespace {
		if !providedNamespaceMap.Has(config.DefaultNamespace) {
			namespace := &corev1.Namespace{
				TypeMeta: metav1.TypeMeta{
					Kind:       KindNamespace,
					APIVersion: corev1gv,
				},
				ObjectMeta: metav1.ObjectMeta{
					Name: config.DefaultNamespace,
				},
			}
			resources.Namespaces = append(resources.Namespaces, namespace)
			providedNamespaceMap.Insert(config.DefaultNamespace)
		}
	}
	// Sort the required namespace in order to keep the consistency for test.
	sortedRequiredNamespace := requiredNamespaceMap.UnsortedList()
	sort.Strings(sortedRequiredNamespace)
	for _, ns := range sortedRequiredNamespace {
		if !providedNamespaceMap.Has(ns) {
			namespace := &corev1.Namespace{
				TypeMeta: metav1.TypeMeta{
					Kind:       KindNamespace,
					APIVersion: corev1gv,
				},
				ObjectMeta: metav1.ObjectMeta{
					Name: ns,
				},
			}
			resources.Namespaces = append(resources.Namespaces, namespace)
		}
	}

	if addMissingResources {
		requiredServiceMap := map[string]*corev1.Service{}
		for _, route := range resources.TCPRoutes {
			addMissingServices(requiredServiceMap, route)
		}
		for _, route := range resources.UDPRoutes {
			addMissingServices(requiredServiceMap, route)
		}
		for _, route := range resources.TLSRoutes {
			addMissingServices(requiredServiceMap, route)
		}
		for _, route := range resources.HTTPRoutes {
			addMissingServices(requiredServiceMap, route)
		}
		for _, route := range resources.GRPCRoutes {
			addMissingServices(requiredServiceMap, route)
		}
		// Sort the required service in order to keep the consistency for test.
		sortedRequiredService := make([]string, 0, len(requiredServiceMap))
		for key := range requiredServiceMap {
			sortedRequiredService = append(sortedRequiredService, key)
		}
		sort.Strings(sortedRequiredService)

		providedServiceMap := map[string]*corev1.Service{}
		for _, service := range resources.Services {
			providedServiceMap[service.Namespace+"/"+service.Name] = service
		}

		for _, key := range sortedRequiredService {
			service := requiredServiceMap[key]
			if provided, found := providedServiceMap[key]; !found {
				resources.Services = append(resources.Services, service)
			} else


#pragma once
/*
  Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.com>

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

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

  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

// an alternate I found.
/* Reference: MTGAP */
/* y p o u - | b d l c k j */
/* i n e a , | m h t s r v */
/* ( " ' . _ | ) f w g x */
/*   z */

#define CARTE_MTGAP                             \
  carte_de_map("   ypouj  kdlcw",               \
               "   inea,  mhtsr",               \
               "   qz/.;  bfgvx")

#define ___MTGAP___                                                     \
  LANG_MAP(_Y, _P, _O,      _U,     _J,        _K, _D, _L, _C, _W,      \
           _I, _N, _E,      _A,     TL_COMM,   _M, _H, _T, _S, _R,      \
           _Q, _Z, TL_SLSH, TL_DOT, TL_SCLN,   _B, _F, _G, _V, _X)

/* //APT v3*/
/* https://github.com/Apsu/APT */
#define CARTE_APT                               \
  carte_de_map("   wgdfb  qluoy",               \
               "   rsthk  jneai; ",             \
               "   xcmpv  z,.'/")

#define ___APT___                                                       \
  LANG_MAP(_W, _G, _D, _F, _B,    _Q, _L, _U, _O, _Y,                   \
           _R, _S, _T, _H, _K,    _J, _N, _E, _A, _I, TL_SCLN,          \
           _X, _C, _M, _P, _V,    _Z, TL_COMM, TL_DOT, TL_QUOT, TL_SLSH)

#define CARTE_CTGAP                             \
  carte_de_map("  vplcf  kuoyj",                \
               "  rntsd  'aeih",                \
               "  zbmgw  x,.;q")

#define ___CTGAP___                                                     \
  LANG_MAP(_V, _P, _L, _C, _F,   _K,      _U,      _O,     _Y,      _J, \
           _R, _N, _T, _S, _D,   TL_QUOT, _A,      _E,     _I,      _H, \
           _Z, _B, _M, _G, _W,   _X,      TL_COMM, TL_DOT, TL_SCLN, _Q)

#define CARTE_CANARY                                           \
  carte_de_map( "  wlypb   zfou'",                                 \
                "  crstg   mneia",                                 \
                "  qjvd    kxh/,.")

#define ___CANARY___                                                    \
  LANG_MAP(_W, _L, _Y, _P, _B, _Z, _F, _O,      _U,      TL_QUOT,       \
           _C, _R, _S, _T, _G, _M, _N, _E,      _I,      _A,            \
           _Q, _J, _V, _D, _K, _X, _H, TL_SLSH, TL_COMM, TL_DOT)


t V_1 = 0;
	SessionInfo_tEAFEEFE3C65BFE4DCD6DBA6F4B1F525553E17F4A  V_2;
	memset((&V_2), 0, sizeof(V_2));
	{
		NullCheck((RuntimeArray *)__this);
		int32_t L_0 = Array_get_Rank_m38145B59D67D75F9896A3F8CDA9B966641AE99E1((RuntimeArray *)__this, /*hidden argument*/NULL);
		if ((((int32_t)L_0) <= ((int32_t)1)))
		{
			goto IL_0019;
		}
	}
	{
		String_t* L_1 = Locale_GetText_m41F0CB4E76BAAB1E97D9D92D109C846A8ECC1324((String_t*)_stringLiteral05EEF590134C13CD36F8C414489EBA98237315AB, /*hidden argument*/NULL);
		RankException_t85F27ECAFB95F8FC0E72E5EA676169A3CE9B4B6F * L_2 = (RankException_t85F27ECAFB95F8FC0E72E5EA676169A3CE9B4B6F *)il2cpp_codegen_object_new(RankException_t85F27ECAFB95F8FC0E72E5EA676169A3CE9B4B6F_il2cpp_TypeInfo_var);
		RankException__ctor_m5C185B91AFCA252366D882B15B65C984BF02004D(L_2, (String_t*)L_1, /*hidden argument*/NULL);
		IL2CPP_RAISE_MANAGED_EXCEPTION(L_2, Array_InternalArray__ICollection_Contains_TisSessionInfo_tEAFEEFE3C65BFE4DCD6DBA6F4B1F525553E17F4A_m836C78840C357713657C505EC3FD5768553F9C6C_RuntimeMethod_var);
	}

IL_0019:
	{
		NullCheck((RuntimeArray *)__this);
		int32_t L_3 = Array_get_Length_m2239B6393651C3F4631D900EFC1B05DBE8F5466D((RuntimeArray *)__this, /*hidden argument*/NULL);
		V_0 = (int32_t)L_3;
		V_1 = (int32_t)0;
		goto IL_005a;
	}

IL_0024:
	{
		int32_t L_4 = V_1;
		NullCheck((RuntimeArray *)__this);
		ArrayGetGenericValueImpl((RuntimeArray *)__this, (int32_t)L_4, (SessionInfo_tEAFEEFE3C65BFE4DCD6DBA6F4B1F525553E17F4A *)(SessionInfo_tEAFEEFE3C65BFE4DCD6DBA6F4B1F525553E17F4A *)(&V_2));
		goto IL_003f;
	}
	{
		goto IL_0056;
	}
	{
		return (bool)1;
	}

IL_003f:
	{
		SessionInfo_tEAFEEFE3C65BFE4DCD6DBA6F4B1F525553E17F4A  L_7 = V_2;
		SessionInfo_tEAFEEFE3C65BFE4DCD6DBA6F4B1F525553E17F4A  L_8 = L_7;
		RuntimeObject * L_9 = Box(IL2CPP_RGCTX_DATA(method->rgctx_data, 0), &L_8);
		RuntimeObject * L_10 = Box(IL2CPP_RGCTX_DATA(method->rgctx_data, 0), (&___item0));
		NullCheck((RuntimeObject *)L_10);
		bool L_11 = VirtFuncInvoker1< bool, RuntimeObject * >::Invoke(0 /* System.Boolean


/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "memory/ColumnarBatchIterator.h"
#include "memory/VeloxColumnarBatch.h"
#include "utils/Exception.h"
#include "velox/common/memory/MemoryPool.h"
#include "velox/vector/ComplexVector.h"

namespace gluten {

class VeloxBatchResizer : public ColumnarBatchIterator {
 public:
  VeloxBatchResizer(
      facebook::velox::memory::MemoryPool* pool,
      int32_t minOutputBatchSize,
      int32_t maxOutputBatchSize,
      std::unique_ptr<ColumnarBatchIterator> in);

  std::shared_ptr<ColumnarBatch> next() override;

  int64_t spillFixedSize(int64_t size) override;

 private:
  facebook::velox::memory::MemoryPool* pool_;
  const int32_t minOutputBatchSize_;
  const int32_t maxOutputBatchSize_;
  std::unique_ptr<ColumnarBatchIterator> in_;

  std::unique_ptr<ColumnarBatchIterator> next_ = nullptr;
};

} // namespace gluten


throw _privateConstructorUsedError;
}

/// @nodoc
abstract class _$$ColorFilterMatrixCopyWith<$Res> {
  factory _$$ColorFilterMatrixCopyWith(
          _$ColorFilterMatrix value, $Res Function(_$ColorFilterMatrix) then) =
      __$$ColorFilterMatrixCopyWithImpl<$Res>;
  @useResult
  $Res call({List<double> matrix});
}

/// @nodoc
class __$$ColorFilterMatrixCopyWithImpl<$Res>
    extends _$ColorFilterCopyWithImpl<$Res, _$ColorFilterMatrix>
    implements _$$ColorFilterMatrixCopyWith<$Res> {
  __$$ColorFilterMatrixCopyWithImpl(
      _$ColorFilterMatrix _value, $Res Function(_$ColorFilterMatrix) _then)
      : super(_value, _then);

  @pragma('vm:prefer-inline')
  @override
  $Res call({
    Object? matrix = null,
  }) {
    return _then(_$ColorFilterMatrix(
      null == matrix
          ? _value._matrix
          : matrix // ignore: cast_nullable_to_non_nullable
              as List<double>,
    ));
  }
}

/// @nodoc
@JsonSerializable()
class _$ColorFilterMatrix implements ColorFilterMatrix {
  const _$ColorFilterMatrix(final List<double> matrix, {final String? $type})
      : _matrix = matrix,
        $type = $type ?? 'matrix';

  factory _$ColorFilterMatrix.fromJson(Map<String, dynamic> json) =>
      _$$ColorFilterMatrixFromJson(json);

  final List<double> _matrix;
  @override
  List<double> get matrix {
    if (_matrix is EqualUnmodifiableListView) return _matrix;
    // ignore: implicit_dynamic_type
    return EqualUnmodifiableListView(_matrix);
  }

  @JsonKey(name: 'runtimeType')
  final String $type;

  @override
  String toString() {
    return 'ColorFilter.matrix(matrix: $matrix)';
  }

  @override
  bool operator ==(dynamic other) {
    return identical(this, other) ||
        (other.runtimeType == runtimeType &&
            other is _$ColorFilterMatrix &&
            const DeepCollectionEquality().equals(other._matrix, _matrix));
  }

  @JsonKey(ignore: true)
  @override
  int get hashCode =>
      Object.hash(runtimeType, const DeepCollectionEquality().hash(_matrix));

  @JsonKey(ignore: true)
  @override
  @pragma('vm:prefer-inline')
  _$$ColorFilterMatrixCopyWith<_$ColorFilterMatrix> get copyWith =>
      __$$ColorFilterMatrixCopyWithImpl<_$ColorFilterMatrix>(this, _$identity);

  @override
  @optionalTypeArgs
  TResult when<TResult extends Object?>({
    required TResult Function(Color color, BlendMode blendMode) mode,
    required TResult Function(List<double> matrix) matrix,
    required TResult Function() linearToSrgbGamma,
    required TResult Function() srgbToLinearGamma,
  }) {
    return matrix(this.matrix);
  }

  @override
  @optionalTypeArgs
  TResult? whenOrNull<TResult extends Object?>({
    TResult? Function(Color color, BlendMode blendMode)? mode,
    TResult? Function(List<double> matrix)? matrix,
    TResult? Function()? linearToSrgbGamma,
    TResult? Function()? srgbToLinearGamma,
  }) {
    return matrix?.call(this.matrix);
  }

  @override
  @optionalTypeArgs
  TResult maybeWhen<TResult extends Object?>({
    TResult Function(Color color, BlendMode blendMode)? mode,
    TResult Function(List<double> matrix)? matrix,
    TResult Function()? linearToSrgbGamma,
    TResult Function()? srgbToLinearGamma,
    required TResult orElse(),
  }) {
    if (matrix != null) {
      return matrix(this.matrix);
    }
    return orElse();
  }

  @override
  @optionalTypeArgs
  TResult map<TResult


* optional .proto.Cmd.Priority priority = 7;
       *
       *

       * 指令执行的优先级
       *

       */
      public Builder setPriorityValue(int value) {
        priority_ = value;
        onChanged();
        return this;
      }
      /**
       * optional .proto.Cmd.Priority priority = 7;
       *
       *

       * 指令执行的优先级
       *

       */
      public com.yc.inter.websocket.protobuf.CmdPb.Cmd.Priority getPriority() {
        com.yc.inter.websocket.protobuf.CmdPb.Cmd.Priority result = com.yc.inter.websocket.protobuf.CmdPb.Cmd.Priority.valueOf(priority_);
        return result == null ? com.yc.inter.websocket.protobuf.CmdPb.Cmd.Priority.UNRECOGNIZED : result;
      }
      /**
       * optional .proto.Cmd.Priority priority = 7;
       *
       *

       * 指令执行的优先级
       *

       */
      public Builder setPriority(com.yc.inter.websocket.protobuf.CmdPb.Cmd.Priority value) {
        if (value == null) {
          throw new NullPointerException();
        }

        priority_ = value.getNumber();
        onChanged();
        return this;
      }
      /**
       * optional .proto.Cmd.Priority priority = 7;
       *
       *

       * 指令执行的优先级
       *

       */
      public Builder clearPriority() {

        priority_ = 0;
        onChanged();
        return this;
      }

      private int retryTimes_ ;
      /**
       * optional int32 retryTimes = 8;
       *
       *

       * 指令执行失败后重试次数，默认仅执行一次
       *

       */
      public int getRetryTimes() {
        return retryTimes_;
      }
      /**
       * optional int32 retryTimes = 8;
       *
       *

       * 指令执行失败后重试次数，默认仅执行一次
       *

       */
      public Builder setRetryTimes(int value) {

        retryTimes_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 retryTimes = 8;
       *
       *

       * 指令执行失败后重试次数，默认仅执行一次
       *

       */
      public Builder clearRetryTimes() {

        retryTimes_ = 0;
        onChanged();
        return this;
      }

      private int currentRetryTimes_ ;
      /**
       * optional int32 currentRetryTimes = 9;
       *
       *

       * 当前重试次数
       *

       */
      public int getCurrentRetryTimes() {
        return currentRetryTimes_;
      }
      /**
       * optional int32 currentRetryTimes = 9;
       *
       *

       * 当前重试次数
       *

       */
      public Builder setCurrentRetryTimes(int value) {

        currentRetryTimes_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 currentRetryTimes = 9;
       *
       *

       * 当前重试次数
       * </


#!/usr/bin/env python

from sys import argv
from fontTools.ttLib import TTFont

instance_values = {
	"Regular":  1.0,
	"Medium":   1.1842,
	"Semibold": 1.32455,
	"Bold":     1.50877,
	"Light":    0.75609,
	"Heavy":    1.7807,

	"Ultrathin": 0.0,
	"Black": 1.999,
}

file_path = argv[1]

f = TTFont(file_path)

# Set sfntVersion, just to be sure. It may come in wrong from any of the merged ttx files.
f.sfntVersion = "\x00\x01\x00\x00"

# Delete unneccessary tables

for tag in ("avar", "HVAR", "MVAR"):
	try:
		del f[tag]
	except KeyError:
		pass

# Fix fvar table
# We could fix this in the Glyphs file, but here it is easier.

fvar = f["fvar"]
name = f["name"]

for axis in fvar.axes:
	if axis.axisTag == "wght":
		print "[postprocess] Fixing weight axis range"
		axis.minValue = 0.0
		axis.defaultValue = 1.0
		axis.maxValue = 1.999

for instance in fvar.instances:
	instance_name = name.getName(instance.subfamilyNameID, 1, 0, 0).string
	v = instance_values[instance_name]
	print instance_name, instance.coordinates["wght"], "->", v
	instance.coordinates["wght"] = v

# Fix name table

name.setName(u"System Font", 4, 0, 3, 0)
name.setName(u".SF NS Text", 1, 1, 0, 0)
name.setName(u"System Font", 1, 3, 1, 0x409)
name.setName(u"Regular",     2, 1, 0, 0)
name.setName(u"System Font", 4, 3, 1, 0x409)
name.setName(u".SFNSText",   6, 3, 1, 0x409)

# Add more hyphens to cmap, needed for AirDrop button

for t in f["cmap"].tables:
	for u in (0x2010, 0x2011):
		if not u in t.cmap:
			t.cmap[u] = "hyphen"

f.save(file_path) # + "_fixed.ttf"
#f.saveXML(file_path + "_fixed.ttx") # + "_fixed.ttx"


;
  background-color: var(--jp-layout-color0);
  color: var(--jp-content-font-color1);
  font-family: var(--jp-code-font-family);
  font-size: inherit;
  line-height: var(--jp-code-line-height);
  padding: 0;
  white-space: pre-wrap;
}

.jp-RenderedHTMLCommon :not(pre) > code {
  background-color: var(--jp-layout-color2);
  padding: 1px 5px;
}

/* Tables */

.jp-RenderedHTMLCommon table {
  border-collapse: collapse;
  border-spacing: 0;
  border: none;
  color: var(--jp-ui-font-color1);
  font-size: var(--jp-ui-font-size1);
  table-layout: fixed;
  margin-left: auto;
  margin-right: auto;
}

.jp-RenderedHTMLCommon thead {
  border-bottom: var(--jp-border-width) solid var(--jp-border-color1);
  vertical-align: bottom;
}

.jp-RenderedHTMLCommon td,
.jp-RenderedHTMLCommon th,
.jp-RenderedHTMLCommon tr {
  vertical-align: middle;
  padding: 0.5em 0.5em;
  line-height: normal;
  white-space: normal;
  max-width: none;
  border: none;
}

.jp-RenderedMarkdown.jp-RenderedHTMLCommon td,
.jp-RenderedMarkdown.jp-RenderedHTMLCommon th {
  max-width: none;
}

:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon td,
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon th,
:not(.jp-RenderedMarkdown).jp-RenderedHTMLCommon tr {
  text-align: right;
}

.jp-RenderedHTMLCommon th {
  font-weight: bold;
}

.jp-RenderedHTMLCommon tbody tr:nth-child(odd) {
  background: var(--jp-layout-color0);
}

.jp-RenderedHTMLCommon tbody tr:nth-child(even) {
  background: var(--jp-rendermime-table-row-background);
}

.jp-RenderedHTMLCommon tbody tr:hover {
  background: var(--jp-rendermime-table-row-hover-background);
}

.jp-RenderedHTMLCommon table {
  margin-bottom: 1em;
}

.jp-RenderedHTMLCommon p {
  text-align: left;
  margin: 0px;
}

.jp-RenderedHTMLCommon p {
  margin-bottom: 1em;
}

.jp-RenderedHTMLCommon img {
  -moz-force-broken-image-icon: 1;
}

/* Restrict to direct children as other images could be nested in other content. */
.jp-RenderedHTMLCommon > img {
  display: block;
  margin-left: 0;
  margin-right: 0;
  margin-bottom: 1em;
}

/* Change color behind transparent images if they need it... */
[data-jp-theme-light='false'] .jp-RenderedImage img.jp-needs-light-background {
  background-color: var(--jp-inverse-layout-color1);
}
[data-jp-theme-light='true'] .jp-RenderedImage img.jp-needs-dark-background {
  background-color: var(--jp-inverse-layout-color1);
}
/* ...or leave it untouched if they don't */
[data-jp-theme-light='false'] .jp-RenderedImage img.jp-needs-dark-background {
}
[data-jp-theme-light='true'] .jp-RenderedImage img.jp-needs-light-background {
}

.jp-RenderedHTMLCommon img,
.jp-RenderedImage img,
.jp-Rendered


  }

  if (pcre_last_error == 0) {
    return result;
  } else {
    return false;
  }
}

OrFalse <int> regexp::match (const string &subject, var &matches, int flags, bool all_matches) const {
  pcre_last_error = 0;

  if (pcre_regexp == NULL && RE2_regexp == NULL) {
    return false;
  }

  if (is_utf8 && !mb_UTF8_check (subject.c_str())) {
    pcre_last_error = PCRE_ERROR_BADUTF8;
    return false;
  }

  bool offset_capture = false;
  if (flags & PREG_OFFSET_CAPTURE) {
    flags &= ~PREG_OFFSET_CAPTURE;
    offset_capture = true;
  }

  bool pattern_order = all_matches;
  if (all_matches) {
    if (flags & PREG_PATTERN_ORDER) {
      flags &= ~PREG_PATTERN_ORDER;
    } else if (flags & PREG_SET_ORDER) {
      flags &= ~PREG_SET_ORDER;
      pattern_order = false;
    }
  }

  if (flags) {
    php_warning ("Invalid parameter flags specified to preg_match%s", all_matches ? "_all" : "");
  }

  if (pattern_order) {
    matches = array <var> (array_size (subpatterns_count, named_subpatterns_count, named_subpatterns_count == 0));
    for (int i = 0; i < subpatterns_count; i++) {
      if (named_subpatterns_count && !subpattern_names[i].empty()) {
        matches.set_value (subpattern_names[i], array <var> ());
      }
      matches.push_back (array <var> ());
    }
  } else {
    matches = array <var> ();
  }

  bool second_try = false;//set after matching an empty string

  int result = 0;
  int offset = 0;
  array <var> empty_match (string(), -1);
  while (offset <= (int)subject.size()) {
    int count = exec (subject, offset, second_try);

    if (count == 0) {
      if (second_try) {
        second_try = false;
        do {
          offset++;
        } while (is_utf8 && offset < (int)subject.size() && (((unsigned char)subject[offset]) & 0xc0) == 0x80);
        continue;
      }

      break;
    }

    result++;

    if (pattern_order) {
      for (int i = 0; i < subpatterns_count; i++) {
        const string match_str (subject.c_str() + submatch[i + i], submatch[i + i + 1] - submatch[i + i]);
        if (offset_capture && (fix_php_bugs || i < count)) {
          array <var> match (match_str, submatch[i + i]);

          if (named_subpatterns_count && subpattern_names[i].size()) {
            matches[subpattern_names[i]].push_back (match);
          }
          matches[i].push_back (match);
        } else {
          if (named_subpatterns_count && subpattern_names[i].size()) {
            matches[subpattern_names[i]].push_back (match_str);
          }
          matches[i].push_back (match_str);
        }
      }
    } else {
      int size = fix_php_bugs ? subpatterns_count : count;
      array <var> result_set (array_size (size, named_subpatterns_count, named_subpatterns_count == 0));

      if (named_subpatterns_count) {
        for (int i = 0; i < size; i++) {
          const string match_str (subject.c_str() + submatch[i + i], submatch[i + i +


dropReads: false);
  testSimpleReadWrite(dropReads: true);
  testPauseServerSocket();
  testPauseSocket();
  testSocketZone();
  testSocketZoneError();
  testClosedError();
  testClosedServer();
  asyncEnd();
}
// Copyright (c) 2013, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
//
// VMOptions=
// VMOptions=--short_socket_read
// VMOptions=--short_socket_write
// VMOptions=--short_socket_read --short_socket_write
// OtherResources=http_server_close_response_after_error_client.dart

import 'dart:async';
import 'dart:io';

const CLIENT_SCRIPT = "http_server_close_response_after_error_client.dart";

void main() {
  HttpServer.bind("127.0.0.1", 0).then((server) {
    server.listen((request) {
      request.listen(
        null,
        onError: (e) {},
        onDone: () {
          request.response.close();
        },
      );
    });
    Process.run(
      Platform.executable,
      []
        ..addAll(Platform.executableArguments)
        ..addAll([
          Platform.script.resolve(CLIENT_SCRIPT).toString(),
          server.port.toString(),
        ]),
    ).then((result) {
      if (result.exitCode != 0) throw "Bad exit code";
      server.close();
    });
  });
}
// Copyright (c) 2012, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

import 'dart:io';

import "package:expect/async_helper.dart";
import "package:expect/expect.dart";

main() {
  asyncStart();

  // On MacOS you get the decomposed utf8 form of file and directory
  // names from the system. Therefore, we have to check for both here.
  var precomposed = 'æøå';
  var decomposed = new String.fromCharCodes([47, 230, 248, 97, 778]);

  Directory.systemTemp
      .createTemp('dart_file_non_ascii')
      .then((tempDir) {
        Directory nonAsciiDir = new Directory('${tempDir.path}/æøå');
        nonAsciiDir.create().then((nonAsciiDir) {
          nonAsciiDir.exists().then((result) {
            Expect.isTrue(result);
            File nonAsciiFile = new File('${nonAsciiDir.path}/æøå.txt');
            nonAsciiFile.writeAsString('æøå').then((_) {
              nonAsciiFile.exists().then((result) {
                Expect.isTrue(result);
                nonAsciiFile.readAsString().then((contents) {
                  // The contents of the file is precomposed utf8.
                  Expect.equals(precomposed, contents);
                  nonAsciiFile.create().then((_) {
                    var d = nonAsciiFile.parent;
                    Expect.isTrue(
                      d.path.endsWith(precomposed) ||
                          d.path.endsWith(decomposed),
                    );
                    nonAsciiFile.length().then((length) {
                      Expect.equals(6, length);
                      nonAsciiFile.lastModified().then((_) {
                        nonAsciiFile.resolveSymbolicLinks().then((path) {
                          Expect.isTrue(
                            path.endsWith('${precomposed}.txt') ||
                                path.endsWith


riance(): String =
  replace("out ", "").replace("in ", "")

fun String.asPlatform(): String =
  removeBackticks()
    .replaceFirst("kotlin.collections.", "java.util.")
    .replaceFirst("kotlin.", "java.lang.")

/**
 * TODO this is horrible is there a canonical way to obtain a kotlin type given a fqn java type name?
 */
fun String.asKotlin(): String =
  removeBackticks()
    .replace("/", ".")
    .replace("java.lang.Iterable", "kotlin.collections.Iterable")
    .replace("java.util.Iterable", "kotlin.collections.Iterable")
    .replace("kotlin.jvm.functions", "kotlin")
    .replace("java.util.List", "kotlin.collections.List")
    .replace("java.util.Set", "kotlin.collections.Set")
    .replace("java.util.Map", "kotlin.collections.Map")
    .replace("java.util.SortedMap", "kotlin.collections.SortedMap")
    .replace("java.util.Collection", "kotlin.collections.Collection")
    .replace("java.lang.Number", "kotlin.Number")
    .replace("java.lang.Comparable", "kotlin.Comparable")
    .replace("java.lang.Boolean", "kotlin.Boolean")
    .replace("java.lang.Long", "kotlin.Long")
    .replace("java.lang.Throwable", "kotlin.Throwable")
    .replace("kotlin.Integer", "kotlin.Int")
    .replace("java.lang.Integer", "kotlin.Int")
    .replace("java.lang.String", "kotlin.String")

internal fun String.asClassy(): TypeName.Classy {
  val seed = toString().asKotlin()
  val rawTypeName = seed.substringBefore("<")
  val pckg = if (rawTypeName.contains(".")) rawTypeName.substringBeforeLast(".") else ""
  val simpleName = rawTypeName.substringAfterLast(".")
  return TypeName.Classy(simpleName, rawTypeName, PackageName(pckg))
}

private val kindRegex: Regex =
  "(arrow\\.Kind|arrow\\.typeclasses\\.Conested)<(.*), (.*)>".toRegex()

fun String.downKParts(): List<String> =
  when (val matchResult = kindRegex.find(this)) {
    null -> listOf(this)
    else -> {
      val witness = matchResult.groupValues[2]
      val value = matchResult.groupValues[3]
      witness.downKParts() + value.downKParts()
    }
  }

data class DownKindReduction(
  val pckg: String,
  val name: String,
  val additionalTypeArgs: List<String> = emptyList()
)

internal fun String.downKind(): DownKindReduction {
  val parts = downKParts()
  return if (parts.isEmpty()) {
    val pckg =
      if (this.contains(".")) this.substringBefore("<").substringBeforeLast(".")
      else ""
    DownKindReduction(pckg, this)
  } else {
    val dataType = parts[0]
    val pckg =
      if (dataType.contains(".")) dataType.substringBeforeLast(".")
      else ""
    val simpleName = dataType.substringAfterLast(".").substringBefore("<")
    val unAppliedName =
      if (simpleName.startsWith("For")) simpleName.drop("For".length)
      else simpleName
    when {
      unAppliedName.endsWith("PartialOf") ->
        DownKindReduction(pckg, unAppliedName.substringBeforeLast("PartialOf"), parts.drop(1))
      unAppliedName.endsWith("Of") ->
        DownKindReduction(pckg, unAppliedName.substringBeforeLast("Of"), parts.drop(1))
      else -> {
        DownKindReduction(pckg, unAppliedName, parts.drop(1))
      }
    }
  }
}

fun String.quote(): String =
  split(".").joinToString(".") {
    if (KotlinReservedKeywords.contains(it)) "`$it`"
    else it
  }
package com


map;       // topic map of object being tested
  protected TopicMapBuilderIF builder; // builder used for creating new objects

  protected abstract TestFactoryIF getFactory() throws Exception;

  @Before
  public void setUp() throws Exception {
    factory = getFactory();
    // Get a new topic map object from the factory.
    topicmapRef = factory.makeTopicMapReference();
    topicmap = topicmapRef.createStore(false).getTopicMap();
    Assert.assertTrue("Null topic map!" , topicmap != null);
    // Get the builder of that topic map.
    builder = topicmap.getBuilder();
    Assert.assertTrue("Null builder!", builder != null);
  }

  @After
  public void tearDown() {
    if (topicmapRef != null) {
      // Inform the factory that the topic map is not needed anymore.
      topicmap.getStore().close();
      factory.releaseTopicMapReference(topicmapRef);
      // Reset the member variables.
      topicmapRef = null;
      topicmap = null;
      builder = null;
    }
  }
}
/*
 * #!
 * Ontopia Engine
 * #-
 * Copyright (C) 2001 - 2013 The Ontopia Project
 * #-
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * !#
 */

package net.ontopia.topicmaps.utils;

import java.io.File;
import java.io.IOException;
import java.util.Collections;
import java.util.Iterator;
import java.util.Objects;
import net.ontopia.infoset.core.LocatorIF;
import net.ontopia.infoset.impl.basic.URILocator;
import net.ontopia.topicmaps.core.AssociationIF;
import net.ontopia.topicmaps.core.AssociationRoleIF;
import net.ontopia.topicmaps.core.ConstraintViolationException;
import net.ontopia.topicmaps.core.OccurrenceIF;
import net.ontopia.topicmaps.core.TopicIF;
import net.ontopia.topicmaps.core.TopicMapBuilderIF;
import net.ontopia.topicmaps.core.TopicMapIF;
import net.ontopia.topicmaps.core.TopicNameIF;
import net.ontopia.topicmaps.core.VariantNameIF;
import net.ontopia.topicmaps.impl.basic.InMemoryTopicMapStore;
import net.ontopia.topicmaps.utils.ltm.LTMTopicMapReader;
import net.ontopia.topicmaps.xml.CanonicalTopicMapWriter;
import net.ontopia.topicmaps.xml.XTMTopicMapReader;
import net.ontopia.utils.TestFileUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

public class MergeTest {
  protected TopicMapIF    topicmap1;
  protected TopicMapIF    topicmap2;
  protected TopicMapBuilderIF builder1;
  protected TopicMapBuilderIF builder2;

  @Before
  public void setUp() {
    topicmap1 = makeTopicMap();
    topicmap2 = makeTopicMap();
    builder1 = topicmap1.getBuilder();
    builder2 = topicmap2.getBuilder();
  }

  // intended to be overridden
  protected TopicMapIF makeTopicMap() {
    InMemoryTopicMapStore store = new InMemoryTopicMapStore();
    return store.getTopicMap();
  }

  public URILocator makeLocator(String uri) {
    return URILocator.create(uri);
  }

  // ---


in the
    /// response indicates that more results might be available.
    /// If not specified, the default page_size is 100.
    #[prost(int32, tag = "3")]
    pub page_size: i32,
    /// Optional. If present, retrieves the next batch of results from the
    /// preceding call to this method. `page_token` must be the value of
    /// `next_page_token` from the previous response. The values of other method
    /// parameters should be identical to those in the previous call.
    #[prost(string, tag = "4")]
    pub page_token: ::prost::alloc::string::String,
}
/// Response message for the ComputeContacts method.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ComputeContactsResponse {
    /// All contacts for the resource that are subscribed to the specified
    /// notification categories, including contacts inherited from any parent
    /// resources.
    #[prost(message, repeated, tag = "1")]
    pub contacts: ::prost::alloc::vec::Vec<Contact>,
    /// If there are more results than those appearing in this response, then
    /// `next_page_token` is included. To get the next set of results, call this
    /// method again using the value of `next_page_token` as `page_token` and the
    /// rest of the parameters the same as the original request.
    #[prost(string, tag = "2")]
    pub next_page_token: ::prost::alloc::string::String,
}
/// Request message for the SendTestMessage method.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SendTestMessageRequest {
    /// Required. The list of names of the contacts to send a test message to.
    /// Format: organizations/{organization_id}/contacts/{contact_id},
    /// folders/{folder_id}/contacts/{contact_id} or
    /// projects/{project_id}/contacts/{contact_id}
    #[prost(string, repeated, tag = "1")]
    pub contacts: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    /// Required. The name of the resource to send the test message for. All
    /// contacts must either be set directly on this resource or inherited from
    /// another resource that is an ancestor of this one. Format:
    /// organizations/{organization_id}, folders/{folder_id} or
    /// projects/{project_id}
    #[prost(string, tag = "2")]
    pub resource: ::prost::alloc::string::String,
    /// Required. The notification category to send the test message for. All
    /// contacts must be subscribed to this category.
    #[prost(enumeration = "NotificationCategory", tag = "3")]
    pub notification_category: i32,
}
#[doc = r" Generated client implementations."]
pub mod essential_contacts_service_client {
    #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
    use tonic::codegen::*;
    #[doc = " Manages contacts for important Google Cloud notifications."]
    #[derive(Debug, Clone)]
    pub struct EssentialContactsServiceClient<T> {
        inner: tonic::client::Grpc<T>,
    }
    impl<T> EssentialContactsServiceClient<T>
    where
        T: tonic::client::GrpcService<tonic::body::BoxBody>,
        T::ResponseBody: Body + Send + Sync + 'static,
        T::Error: Into<StdError>,
        <T::ResponseBody as Body>::Error: Into<StdError> + Send,
    {
        pub fn new(inner: T) -> Self {
            let inner = tonic::client::Grpc::new(inner);
            Self { inner }
        }
        pub fn with_interceptor<F>(
            inner: T,
            interceptor: F,
        ) -> EssentialContactsServiceClient<InterceptedService<T, F>>
        where
            F: FnMut(tonic::Request<()>) -> Result<tonic::Request<()>, tonic


:.9em}
.date-time-label-text  {color:#000}
a.date-time-link:link, a.date-time-link:visited {color:#000;text-decoration:underline}
a.date-time-link:active {color:#F00;text-decoration:underline}
a.date-time-other-link:link, a.date-time-other-link:visited {color:#999;text-decoration:underline}
a.date-time-other-link:active {color:#F00;text-decoration:underline}
a.date-time-mark-link:link, a.date-time-mark-link:visited {color:#000;font-weight:bold;text-decoration:underline}
a.date-time-mark-link:active {color:#F00;text-decoration:underline}
.chooser-server-header {color:#000;font-weight:bold}
.chooser-server-text {color:#000}
.chooser-label-text {color:#000}
select.chooser-list {font-family:monospace}
option.chooser-folder-text {color:#000;font-family:monospace}
option.chooser-file-text {color:#666;font-family:monospace}
img[name*="mhCommon.ProdName"] {width: auto;height: auto;}
/*! bulma.io v0.9.1 | MIT License | github.com/jgthms/bulma */@-webkit-keyframes spinAround{from{transform:rotate(0)}to{transform:rotate(359deg)}}@keyframes spinAround{from{transform:rotate(0)}to{transform:rotate(359deg)}}.breadcrumb,.button,.delete,.file,.is-unselectable,.modal-close,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.tabs{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid transparent;border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:.625em;margin-top:-.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:.625em}.block:not(:last-child),.box:not(:last-child),.breadcrumb:not(:last-child),.content:not(:last-child),.highlight:not(:last-child),.level:not(:last-child),.message:not(:last-child),.notification:not(:last-child),.pagination:not(:last-child),.progress:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.tabs:not(:last-child),.title:not(:last-child){margin-bottom:1.5rem}.delete,.modal-close{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:0;position:relative;vertical-align:top;width:20px}.delete::after,.delete::before,.modal-close::after,.modal-close::before{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.delete::before,


; ==================================================================================================
; ENEMY_GENERAL_ONOX
; ==================================================================================================
enemyCode02:
	jr z,@normalStatus
	sub ENEMYSTATUS_NO_HEALTH
	ret c
	jr nz,@justHit
	; dead
	ld e,$a4
	ld a,(de)
	or a
	jr z,@dying
	ld a,$f0
	call playSound
@dying:
	ld e,$b2
	ld a,(de)
	or a
	jr nz,@dead
	call checkLinkCollisionsEnabled
	jr nc,@dead
	ld a,$ff
	ld ($cbca),a
	ld ($cc02),a
	ld h,d
	ld l,$a4
	ld (hl),$00
	ld l,$b2
	inc (hl)
	ld l,$86
	ld (hl),$78
	ld a,$67
	call playSound
@dead:
	jp enemyBoss_dead
@justHit:
	ld e,$82
	ld a,(de)
	or a
	call z,generalOnox_func_5c75
@normalStatus:
	call ecom_getSubidAndCpStateTo08
	jr nc,+
	rst_jumpTable
	.dw @state0
	.dw @stateStub
	.dw @stateStub
	.dw @stateStub
	.dw @stateStub
	.dw @stateStub
	.dw @stateStub
	.dw @stateStub
+
	ld a,b
	rst_jumpTable
	.dw generalOnox_subid0
	.dw generalOnox_subid1
	.dw generalOnox_subid2

@state0:
	ld a,b
	cp $02
	jr z,+
	ld bc,$0210
	call enemyBoss_spawnShadow
	ret nz
	ld a,$02
	ld b,$89
	call enemyBoss_initializeRoom
	ld a,$01
	ld (wLoadedTreeGfxIndex),a
	ld a,$0a
	jp ecom_setSpeedAndState8
+
	ld a,$89
	call loadPaletteHeader
	ld a,$01
	ld ($cfcf),a
	ld ($cbca),a
	call ecom_setSpeedAndState8
	ld a,$53
	jp playSound

@stateStub:
	ret

generalOnox_subid0:
	ld a,(de)
	sub $08
	rst_jumpTable
	.dw @state8
	.dw @state9
	.dw @stateA
	.dw @stateB
	.dw @stateC

@state8:
	ld b,PART_47
	call ecom_spawnProjectile
	ret nz
	ld h,d
	ld l,$84
	inc (hl)
	ld l,$89
	ld (hl),$10
	ld l,$8b
	ld (hl),$18
	ld l,$8d
	ld (hl),$78
	jp objectSetVisible83

@state9:
	inc e
	ld a,(de)
	rst_jumpTable
	.dw @@substate0
	.dw @@substate1
	.dw @@substate2
	.dw @@substate3

@@substate0:
	ld a,$05
	call objectGetRelatedObject2Var
	ld a,(hl)
	cp $04
	ret nz
	ld h,d
	ld l,$85
	inc (hl)
	ld l,$87
	ld (hl),$1e

@@substate1:
	call ecom_decCounter2
	ret nz
	ld a,(wFrameCounter)
	and $1f
	ld a,$70
	call z,playSound
	call objectApplySpeed
	ld e,$8


/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
 * All rights reserved.
 *
 * This package is an SSL implementation written
 * by Eric Young (eay@cryptsoft.com).
 * The implementation was written so as to conform with Netscapes SSL.
 *
 * This library is free for commercial and non-commercial use as long as
 * the following conditions are aheared to.  The following conditions
 * apply to all code found in this distribution, be it the RC4, RSA,
 * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
 * included with this distribution is covered by the same copyright terms
 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
 *
 * Copyright remains Eric Young's, and as such any Copyright notices in
 * the code are not to be removed.
 * If this package is used in a product, Eric Young should be given attribution
 * as the author of the parts of the library used.
 * This can be in the form of a textual message at program startup or
 * in documentation (online or textual) provided with the package.
 *
 * 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 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. All advertising materials mentioning features or use of this software
 *    must display the following acknowledgement:
 *    "This product includes cryptographic software written by
 *     Eric Young (eay@cryptsoft.com)"
 *    The word 'cryptographic' can be left out if the rouines from the library
 *    being used are not cryptographic related :-).
 * 4. If you include any Windows specific code (or a derivative thereof) from
 *    the apps directory (application code) you must include an acknowledgement:
 *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
 *
 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``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 AUTHOR 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.
 *
 * The licence and distribution terms for any publically available version or
 * derivative of this code cannot be changed.  i.e. this code cannot simply be
 * copied and put under another distribution licence
 * [including the GNU Public Licence.] */

#ifndef OPENSSL_HEADER_BLOWFISH_H
#define OPENSSL_HEADER_BLOWFISH_H

#include <openssl/base.h>

#ifdef  __cplusplus
extern "C" {
#endif

#define BF_ENCRYPT 1
#define BF_DECRYPT 0

#define BF_ROUNDS 16
#define BF_BLOCK 8

typedef struct bf_key_st {
  uint32_t P[BF_ROUNDS + 2];
  uint32_t S[4 * 256];
} BF_KEY;

OPENSSL_EXPORT void BF_set_key(BF_KEY *key, size_t len, const uint8_t *data);
OPENSSL_EXPORT void BF_encrypt(uint32_t *data, const BF_KEY *key);
OPENSSL_EXPORT void BF_decrypt(uint32_t *data, const BF_KEY *key);

OPENSSL_EXPORT void BF_ecb_encrypt(const uint8_t *in, uint8_t *out,
                                   const BF_KEY *key, int enc);
OPENSSL_EXPORT void BF_cbc_encrypt(const uint8_t *in, uint8_t *out, long length,
                                   const BF_KEY *schedule, uint8_t *ivec,
                                   int enc);

#ifdef  __cplusplus
}
#endif

#endif  // OPENSSL_HEADER_BLOWFISH_H


e32 v28, 0
	v_mov_b32_e32 v29, 0
	v_mov_b32_e32 v30, 0
	v_mov_b32_e32 v4, 0
	v_mov_b32_e32 v5, 0
	v_mov_b32_e32 v6, 0
	v_mov_b32_e32 v7, 0
	v_mov_b32_e32 v16, 0
	v_mov_b32_e32 v13, 0
	v_mov_b32_e32 v10, 0
	v_mov_b32_e32 v11, 0
	v_mov_b32_e32 v21, 0
	v_mov_b32_e32 v22, 0
	s_mov_b64 s[4:5], 0
	s_branch BB68_2
BB68_1:
	s_or_b32 exec_lo, exec_lo, s1
	s_waitcnt lgkmcnt(0)
	s_barrier
	ds_read_b128 v[31:34], v15 offset:16
	ds_read_b128 v[35:38], v15
	ds_read_b128 v[39:42], v15 offset:528
	ds_read_b128 v[43:46], v15 offset:512
	ds_read2_b64 v[47:50], v12 offset0:2 offset1:42
	ds_read2_b64 v[51:54], v12 offset0:82 offset1:122
	ds_read_b128 v[55:58], v12 offset:320
	v_mov_b32_e32 v59, 0xffff
	s_add_u32 s4, s4, 16
	s_addc_u32 s5, s5, 0
	s_cmpk_eq_i32 s4, 0x200
	s_waitcnt lgkmcnt(6)
	v_lshrrev_b32_e32 v60, 16, v31
	s_waitcnt lgkmcnt(5)
	v_and_b32_e32 v62, v59, v35
	v_and_b32_sdwa v35, v59, v35 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
	s_waitcnt lgkmcnt(3)
	v_and_b32_e32 v65, v59, v43
	v_lshrrev_b32_e32 v63, 16, v39
	v_and_b32_sdwa v43, v59, v43 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:DWORD src1_sel:WORD_1
	v_lshl_or_b32 v62, v31, 16, v62
	v_and_b32_e32 v66, v59, v36
	v_lshl_or_b32 v65, v39, 16, v65
	v_and_b32_e32 v67, v59, v44
	v_lshl_or_b32 v60, v60, 16, v35
	s_waitcnt lgkmcnt(1)
	v_pk_fma_f16 v26, v51, v62, v26 op_sel_hi:[0,1,1]
	v_pk_fma_f16 v24, v53, v62, v24 op_sel_hi:[0,1,1]
	v_lshl_or_b32 v43, v63, 16, v43
	v_pk_fma_f16 v25, v51, v65, v25 op_sel_hi:[0,1,1]
	v_pk_fma_f16 v23, v53, v65, v23 op_sel_hi:[0,1,1]
	v_lshrrev_b32_e32 v64, 16, v40
	v_and_b32_sdwa v44, v59, v44 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:


      let choices = vec!["one".to_string(),
        "two".to_string(),
        "three".to_string()];
        let search = Search::blank(&choices, None, 20);

        assert_eq!(search.done().selection(), Some("one".to_string()));
    }

    #[test]
    fn loop_around_when_reaching_bottom_of_choices() {
        let choices = vec!["one".to_string(), "two".to_string(), "three".to_string()];
        let search = Search::blank(&choices, None, 20);

        assert_eq!(search.append_to_search("n").down().selection(), Some("one".to_string()));
    }

    #[test]
    fn loop_around_when_reaching_top_of_choices() {
        let choices = vec!["one".to_string(),
        "two".to_string(),
        "three".to_string()];
        let search = Search::blank(&choices, None, 20);

        assert_eq!(search.append_to_search("n").up().selection(), Some("one".to_string()));
    }

    #[test]
    fn search_is_case_insensitive() {
        let choices = vec!["one".to_string(),
        "two".to_string(),
        "three".to_string()];
        let search = Search::blank(&choices, None, 20);

        assert_eq!(search.append_to_search("T").num_matches(), 2);
    }

    #[test]
    fn uses_configs_visible_limit_as_result_size() {
        let many_choices = input_times(30);
        let search = Search::blank(&many_choices, None, 20).append_to_search("c");

        assert_eq!(search.result.len(), 20);
    }
}
<gh_stars>1-10
use std::fmt;
use std::iter::{Enumerate, Map};
use std::ops::{Range, RangeFrom, RangeFull, RangeTo};
use std::slice::Iter;
use std::str::{CharIndices, Chars};

use crate::error::LangError;

use nom::{
    error::ErrorKind, error::ParseError, AsBytes, Compare, CompareResult, Err, FindSubstring,
    IResult, InputIter, InputLength, InputTake, InputTakeAtPosition, Offset, Slice,
};

#[derive(PartialEq, Eq, Clone, Hash)]
pub struct Span<T> {
    pub input: T,
    pub offset: usize,
    pub line: u32,
    pub column: u32,
}

impl<T> fmt::Debug for Span<T> {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(
            f,
            "Span {{ offset: {}, line: {}, column: {} }}",
            self.offset, self.line, self.column
        )
    }
}

impl<T: fmt::Display> fmt::Display for Span<T> {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        write!(
            f,
            "Span {{ offset: {}, line: {}, column: {} input: {} }}",
            self.offset, self.line, self.column, self.input
        )
    }
}

impl<T> Span<T> {
    pub fn new(input: T, offset: usize, line: u32, column: u32) -> Span<T> {
        Span {
            input,
            offset,
            line,
            column,
        }
    }
}

impl<T: InputLength> InputLength for Span<T> {
    fn input_len(&self) -> usize {
        self.input.input_len()
    }
}

macro_rules! gen_input_iter_impl {
    ($input_type:ty, $element:ty, $iterator:ty, $iterator_element:ty) => {
        impl<'a> InputIter for Span<$input_type> {
            type Item = $element;
            type Iter = $iterator;


= {"Сбежавший узник",nil},
[49948] = {"Сбежавший узник",nil},
[49949] = {"Налетчик Лонтрал","Наставник разбойников"},
[49950] = {"Сестра Нарсилла","Наставница жрецов"},
[49951] = {"Хранитель Реликвария",nil},
[49952] = {"Денара Вечное Солнце","Наставница магов"},
[49953] = {"Доктор Виззл Судень",nil},
[49954] = {"Харис Дыхание Света","Наставник паладинов"},
[49955] = {"Леоник Истинный Волос","Наставник воинов"},
[49956] = {"Камешек",nil},
[49957] = {"Делемм","Наставница паладинов"},
[49958] = {"Мэтт Браксворти","Наставник охотников"},
[49959] = {"Ленна","Наставник магов"},
[49960] = {"Гоббс","Питомец Мэтта"},
[49961] = {"Виик","Наставница воинов"},
[49962] = {"Андренатол","Наставник жрецов"},
[49963] = {"Лейра Дюбуа","Наставница чернокнижников"},
[49964] = {"Адрихи","Наставник шаманов"},
[49965] = {"Подгородская крыса",nil},
[49966] = {"Шанири","Наставница охотников"},
[49968] = {"Ларет Белд","Наставник магов"},
[49995] = {"Красногорская крыса",nil},
[49996] = {"Горный кролик",nil},
[49997] = {"Ден'чулу","Наставница друидов"},
[49998] = {"Гузини","Наставник чернокнижников"},
[49999] = {"Луговой кролик",nil},
[50000] = {"Болотный мотылек",nil},
[50001] = {"Парата","Наставница жрецов"},
[50002] = {"Бомсанчу","Наставник магов"},
[50003] = {"Больная моль",nil},
[50004] = {"Жамай","Наставница охотников"},
[50005] = {"Посейдус",nil},
[50006] = {"Енисс","Наставник воинов"},
[50007] = {"Дэритела","Наставница охотников"},
[50008] = {"Сумеречный караульный",nil},
[50009] = {"Мобус","Крушащая волна"},
[50010] = {"Аларесса","Наставница магов"},
[50011] = {"Кона","Наставница шаманов"},
[50012] = {"Рыцарь крови Аргарон","Наставник паладинов"},
[50013] = {"Сестра Измара","Наставница жрецов"},
[50014] = {"Сумеречный разлом",nil},
[50015] = {"Муналти","Наставник разбойников"},
[50016] = {"Налетчик Арпалир","Наставник разбойников"},
[50017] = {"Призыва


#ifndef G2O_TYPES_H
#define G2O_TYPES_H
#include "common_include.h"
#include "camera.h"

/*g2o dependencies*/
#include <g2o/core/base_vertex.h>
#include <g2o/core/base_unary_edge.h>
#include <g2o/core/block_solver.h>
#include <g2o/core/optimization_algorithm_levenberg.h>
#include <g2o/types/sba/types_six_dof_expmap.h>
#include <g2o/solvers/dense/linear_solver_dense.h>
#include <g2o/core/robust_kernel.h>
#include <g2o/core/robust_kernel_impl.h>

namespace myslam
{
class EdgeProjectXYZRGBD : public g2o::BaseBinaryEdge<3, Eigen::Vector3d, g2o::VertexSBAPointXYZ, g2o::VertexSE3Expmap>
{
public:
    EIGEN_MAKE_ALIGNED_OPERATOR_NEW
    virtual void computeError();
    virtual void linearizeOplus();
    virtual bool read(std::istream &in) {}
    virtual bool write(std::ostream& out) const {}
};

/*only to optimize the pose, no point*/
class EdgeProjectXYZRGBDPoseOnly: public g2o::BaseUnaryEdge<3, Eigen::Vector3d, g2o::VertexSE3Expmap>
{
public:
    EIGEN_MAKE_ALIGNED_OPERATOR_NEW
    virtual void computeError();
    virtual void linearizeOplus();
    virtual bool read(std::istream& in) {}
    virtual bool write(std::ostream& out) {}

    Vector3d point_;
};

class EdgeProjectXYZ2UVPoseOnly: public g2o::BaseUnaryEdge<2, Eigen::Vector2d, g2o::VertexSE3Expmap>
{
public:
    EIGEN_MAKE_ALIGNED_OPERATOR_NEW

    virtual void computeError();
    virtual void linearizeOplus();

    virtual bool read( std::istream& in ){}
    virtual bool write(std::ostream& os) const {}

    Vector3d point_;
    Camera* camera_;

};

}

#endif // G2O_TYPES_H


x end; assert(x == 1100); end
  do local x = 0; for i=1,100 do x = t - x end; assert(x == 1200); end
  do local x = 0; for i=1,100 do x = t * x end; assert(x == 1300); end
  do local x = 0; for i=1,100 do x = t / x end; assert(x == 1400); end
  do local x = 0; for i=1,100 do x = t % x end; assert(x == 1500); end
  do local x = 0; for i=1,100 do x = t ^ x end; assert(x == 1600); end
end

do --- assert both sides
  local t = {}
  local mt = {
    __add = function(a, b) assert(a == t and b == t); return 11 end,
    __sub = function(a, b) assert(a == t and b == t); return 12 end,
    __mul = function(a, b) assert(a == t and b == t); return 13 end,
    __div = function(a, b) assert(a == t and b == t); return 14 end,
    __mod = function(a, b) assert(a == t and b == t); return 15 end,
    __pow = function(a, b) assert(a == t and b == t); return 16 end,
  }
  t = setmetatable(t, mt)
  do local x = 0; for i=1,100 do x = t + t end; assert(x == 11); end
  do local x = 0; for i=1,100 do x = t - t end; assert(x == 12); end
  do local x = 0; for i=1,100 do x = t * t end; assert(x == 13); end
  do local x = 0; for i=1,100 do x = t / t end; assert(x == 14); end
  do local x = 0; for i=1,100 do x = t % t end; assert(x == 15); end
  do local x = 0; for i=1,100 do x = t ^ t end; assert(x == 16); end
end

do --- adjust no result to one result
  local t = {}
  local mt = { __add = function(a, b) end }
  t = setmetatable(t, mt)
  local x
  for i=1,100 do x = t+t end
  assert(x == nil)
end


gisters.ZERO)) | Registers.HALF_CARRY | Registers.SUBTRACT;
  }

  static void LD_FFn_A(CPU cpu)
  {
    //addDebugStack('LD_FFn_A', cpu);

    cpu.mmu.writeByte(0xFF00 | cpu.nextUnsignedBytePC(), cpu.registers.a);
  }

  static void LDH_FFC_A(CPU cpu)
  {
    //addDebugStack('LDH_FFC_A', cpu);

    cpu.mmu.writeByte(0xFF00 | (cpu.registers.c & 0xFF), cpu.registers.a);
  }

  static void LD_A_nn(CPU cpu)
  {
    //addDebugStack('LD_A_nn', cpu);

    int nn = cpu.nextUnsignedBytePC() | (cpu.nextUnsignedBytePC() << 8);
    cpu.registers.a = cpu.getUnsignedByte(nn);
  }

  static void LD_A_HLI(CPU cpu)
  {
    //addDebugStack('LD_A_HLI', cpu);

    cpu.registers.a = cpu.getUnsignedByte(cpu.registers.getRegisterPairSP(Registers.HL) & 0xFFFF);
    cpu.registers.setRegisterPairSP(Registers.HL, (cpu.registers.getRegisterPairSP(Registers.HL) + 1) & 0xFFFF);
  }

  static void LD_HLI_A(CPU cpu)
  {
    //addDebugStack('LD_HLI_A', cpu);

    cpu.mmu.writeByte(cpu.registers.getRegisterPairSP(Registers.HL) & 0xFFFF, cpu.registers.a);
    cpu.registers.setRegisterPairSP(Registers.HL, (cpu.registers.getRegisterPairSP(Registers.HL) + 1) & 0xFFFF);
  }

  static void LD_HLD_A(CPU cpu)
  {
    //addDebugStack('LD_HLD_A', cpu);

    int hl = cpu.registers.getRegisterPairSP(Registers.HL);
    cpu.mmu.writeByte(hl, cpu.registers.a);

    cpu.registers.setRegisterPairSP(Registers.HL, (hl - 1) & 0xFFFF);
  }

  static void STOP(CPU cpu)
  {
    //addDebugStack('STOP', cpu);

    NOP(cpu);
  }

  static void LD_r_r(CPU cpu, int op)
  {
    //addDebugStack('LD_r_r', cpu);

    int from = op & 0x7;
    int to = (op >> 3) & 0x7;

    // important note: getIO(6) fetches (HL)
    cpu.registers.setRegister(to, cpu.registers.getRegister(from) & 0xFF);
  }

  static void CBPrefix(CPU cpu)
  {
    //addDebugStack('CBPrefix', cpu);

    int op = cpu.getUnsignedByte(cpu.pc++);
    int reg = op & 0x7;
    int data = cpu.registers.getRegister(reg) & 0xFF;

    switch(op & 0xC0)
    {
      case 0x80:
        {
          // RES b, r
          // 1 0 b b b r r r
          cpu.registers.setRegister(reg, data & ~(0x1 << (op >> 3 & 0x7)));
          return;
        }
      case 0xC0:
        {
          // SET b, r
          // 1 1 b b b r r r
          cpu.registers.setRegister(reg, data | (0x1 << (op >> 3 & 0x7)));
          return;
        }
      case 0x40:
        {
          // BIT b, r
          // 0 1 b b b r r r
          cpu.registers.f &= Registers.CARRY;
          cpu.registers.f |= Registers.HALF_


-indent:-9999px}.repo-menu .downloads a{width:82px;background:url(../img/icons/fugue/document_zipper.png) no-repeat 3px;padding-left:25px}#repo-menu-links{float:right}.repo-menu .inertial-hover.hovering.branches>ul,.repo-menu .inertial-hover.hovering.tags>ul,.repo-menu .inertial-hover.hovering.get-source>ul{display:block}#repo-menu-links-mini{display:none}#content.repo-desc-hidden #repo-menu-links-mini{display:block;float:right}#content.repo-desc-hidden #repo-menu-links-mini.nosource{width:168px}#repo-menu-links-mini>li>a{float:left;margin-left:8px;width:16px;height:22px;background-repeat:no-repeat;background-position:0 50%;padding:0}#repo-menu-links-mini li:hover ul{left:4px}#repo-menu-links-mini .follow,#repo-menu-links-mini a[href="#share"],#repo-menu-links-mini .revoke,#repo-menu-links-mini .revoke-group{text-indent:-9999px}#content #repo-heading{margin:0 0 10px;padding:0;font-weight:normal;font-size:16px;line-height:1.5;color:#999}#content #repo-heading.private{margin-left:-1px;background:url(../img/icons/fugue/lock.png) no-repeat;padding-left:21px}#content #repo-heading .owner-username{color:inherit}#content #repo-heading .repo-name{color:#2b547d}.repo-avatar{margin-left:20px;padding-top:2px}#content.repo-desc-hidden .repo-avatar{display:none}#repo-desc{position:relative;margin-bottom:10px;min-height:28px;background:#fff;padding:8px 24px;font-size:1.1em;line-height:1.4em}#repo-desc pre{padding:0;margin:3px 0}#repo-desc h3{display:inline}#repo-desc h3 span{font-size:.8em}.repo-desc-description{margin:0 0 .5em;width:750px}#content.repo-desc-hidden .repo-desc-description{display:none}.repo-desc-private{background:#fff}#repo-desc-cloneinfo{margin:8px 0 0;border-top:1px solid #ddd;padding:8px 0 4px}#content.repo-desc-hidden #repo-desc-cloneinfo{display:none}#repo-desc-cloneinfo.https a.https,#repo-desc-cloneinfo.ssh a.ssh{font-weight:bold;text-decoration:none;cursor:default}#repo-desc-cloneinfo.https #clone-url-ssh,#repo-desc-cloneinfo.ssh #clone-url-https{display:none}#clone-url-https:before,#clone-url-ssh:before,#clone-url-ssh-git:before{content:"$\0020"}#repo-desc .repo-avatar{position:absolute;top:8px;right:0}#toggle-repo-content{position:absolute;left:0;bottom:0;display:block;width:928px;height:5px;border-top:1px solid #ddd;background:#eee url(../img/repo-toggle-up.png)}#content.repo-desc-hidden #toggle-repo-content{background-image:url(../img/repo-toggle-down.png)}#toggle-repo-content:hover{background-color:#ddd}#sourcelist .name{width:275px}#sourcelist .size{width:100px}#sourcelist .text{width:375px}#sourcelist.mq .text{width:300px}#sourcelist .mq{width:75px;padding-right:0}#sourcelist td.name{width:254px;background:url(../img/icons/fugue/document_text.png) no-repeat 0;padding-left:21px;f


$B把它交给这里，告诉我，这是你寻找的影子吗？",
    ["O"] = "交出您当前持有的套装部件来换取你最需要的套装部件。",
    ["T"] = "卓越护肩",
  },
  [41453] = {
    ["D"] = "你穿上了卓越的衣服，$C。我能感觉到它的光芒，但似乎相当昏暗。也许您携带的那些不适合您当前渴望的天赋。$B$B<梅鲁斯哼哼作响了几秒钟.>$B$B把它交给这里，告诉我，这是你寻找的影子吗？",
    ["O"] = "交出您当前持有的套装部件来换取你最需要的套装部件。",
    ["T"] = "卓越胸甲",
  },
  [41454] = {
    ["D"] = "你穿上了卓越的衣服，$C。我能感觉到它的光芒，但似乎相当昏暗。也许您携带的那些不适合您当前渴望的天赋。$B$B<梅鲁斯哼哼作响了几秒钟.>$B$B把它交给这里，告诉我，这是你寻找的影子吗？",
    ["O"] = "交出您当前持有的套装部件来换取你最需要的套装部件。",
    ["T"] = "卓越护腕",
  },
  [41455] = {
    ["D"] = "你穿上了卓越的衣服，$C。我能感觉到它的光芒，但似乎相当昏暗。也许您携带的那些不适合您当前渴望的天赋。$B$B<梅鲁斯哼哼作响了几秒钟.>$B$B把它交给这里，告诉我，这是你寻找的影子吗？",
    ["O"] = "交出您当前持有的套装部件来换取你最需要的套装部件。",
    ["T"] = "卓越手套",
  },
  [41456] = {
    ["D"] = "你穿上了卓越的衣服，$C。我能感觉到它的光芒，但似乎相当昏暗。也许您携带的那些不适合您当前渴望的天赋。$B$B<梅鲁斯哼哼作响了几秒钟.>$B$B把它交给这里，告诉我，这是你寻找的影子吗？",
    ["O"] = "交出您当前持有的套装部件来换取你最需要的套装部件。",
    ["T"] = "卓越腰带",
  },
  [41457] = {
    ["D"] = "你穿上了卓越的衣服，$C。我能感觉到它的光芒，但似乎相当昏暗。也许您携带的那些不适合您当前渴望的天赋。


so-fareast-font-family:宋体;mso-fareast-theme-font:
minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-theme-font:minor-latin">个之间的距离。第三行给出了n个正整数di（1<=di<=L1+L2+…+Ln）。其中di代表第i个飞机一次能走的航程。

输出格式

Your program should print S lines to the standard output: the i-th of these should contain a single integer, namely, the minimum lumber of flight segments (and thus also landings) necessary to fly the i-th airplane around the planet 3-SATurn along the equator, sta


System;
using System.Collections.Generic;
using Unity.Collections;
using UnityEngine;

namespace Spine.Unity {

	/// <summary>Holds several methods to prepare and generate a UnityEngine mesh based on a skeleton. Contains buffers needed to perform the operation, and serializes settings for mesh generation.</summary>
	[System.Serializable]
	public class MeshGeneratorUIElements : MeshGenerator {

#if HAS_NATIVE_COLLECTIONS
		public void FillVertexData (ref NativeSlice<UnityEngine.UIElements.Vertex> uiVertices) {

			var vertexBufferItems = vertexBuffer.Items;
			var uvBufferItems = uvBuffer.Items;
			var colorBufferItems = colorBuffer.Items;
			int vertexBufferLength = vertexBufferItems.Length;

			int vertexCount = vertexBuffer.Count;
			// Zero the extra.
			{
				var vector3zero = Vector3.zero;
				for (int i = vertexCount; i < vertexBufferLength; i++)
					vertexBufferItems[i] = vector3zero;
			}

			// Set the vertex buffer.
			{
				for (int i = 0; i < vertexCount; i++) {
					UnityEngine.UIElements.Vertex uiVertex = uiVertices[i];
					uiVertex.position = vertexBufferItems[i];
					uiVertex.tint = colorBufferItems[i];
					uiVertex.uv = uvBufferItems[i];
					uiVertices[i] = uiVertex;
				}
			}
		}

		public void FillTrianglesSingleSubmesh (ref NativeSlice<ushort> uiIndices, int submeshIndex = 0) {
			if (submeshes.Count == 0)
				return;

			var srcIndices32List = submeshes.Items[submeshIndex];
			int[] srcIndices32 = srcIndices32List.Items;
			int srcIndicesCount = srcIndices32List.Count;
			int dstIndicesCount = uiIndices.Length;
			for (int i = 0; i < srcIndicesCount; ++i)
				uiIndices[i] = (ushort)srcIndices32[i];
			for (int i = srcIndicesCount; i < dstIndicesCount; ++i)
				uiIndices[i] = 0;
		}
#endif // HAS_NATIVE_COLLECTIONS
	}
}


0xB, 0x3E0, 0xA, 0x29B, 0xB, 0x3D7, 0xA, 0x202, 0xB, 0x3AD, 0xA, 0x213,
        0xA, 0x253, 0xA, 0x32C, 0xA, 0x23D, 0xA, 0x23F, 0xA, 0x32F, 0xA, 0x11C, 0xA, 0x384, 0xA, 0x31C,
        0xA, 0x17C, 0xA, 0x30A, 0xA, 0x2E0, 0xA, 0x276, 0xA, 0x250, 0xB, 0x3E3, 0xA, 0x396, 0xA, 0x18F,
        0xA, 0x204, 0xA, 0x206, 0xA, 0x230, 0xA, 0x265, 0xA, 0x212, 0xA, 0x23E, 0xB, 0x3AC, 0xB, 0x393,
        0xB, 0x3E1, 0xA, 0x1DE, 0xB, 0x3D6, 0xA, 0x31D, 0xB, 0x3E5, 0xB, 0x3E4, 0xA, 0x207, 0xB, 0x3C7,
        0xA, 0x277, 0xB, 0x3D4, 0x8, 0x0C0, 0xA, 0x162, 0xA, 0x3DA, 0xA, 0x124, 0xA, 0x1B4, 0xA, 0x264,
        0xA, 0x33D, 0xA, 0x1D1, 0xA, 0x1AF, 0xA, 0x39E, 0xA, 0x24F, 0xB, 0x373, 0xA, 0x249, 0xB, 0x372,
        0x9, 0x167, 0xA, 0x210, 0xA, 0x23A, 0xA, 0x1B8, 0xB, 0x3AF, 0xA, 0x18E, 0xA, 0x2EC, 0x7, 0x062,
        0x4, 0x00D
    };

    public static int Compress(ReadOnlySpan<byte> input, Span<byte> output)
    {
        if (input.Length > DefiniteOverflow)
        {
            return 0;
        }

        int bitCount = 0;
        int bitValue = 0;

        int inputIdx = 0;
        int outputIdx = 0;


/*	Benjamin DELPY `gentilkiwi`
	blog.gentilkiwi.com
	benjamin@gentilkiwi.com
	Licence : creativecommons.org/licenses/by/4.0/
*/
#pragma once
#include "kull_m_memory.h"
#include "kull_m_service.h"
#include "kull_m_process.h"

typedef NTSTATUS (* PKULL_M_PATCH_CALLBACK) (int argc, wchar_t * args[]);

typedef struct _KULL_M_PATCH_PATTERN {
	DWORD Length;
	BYTE *Pattern;
} KULL_M_PATCH_PATTERN, *PKULL_M_PATCH_PATTERN;

typedef struct _KULL_M_PATCH_OFFSETS {
	LONG off0;
#if defined(_M_ARM64)
	LONG armOff0;
#endif
	LONG off1;
#if defined(_M_ARM64)
	LONG armOff1;
#endif
	LONG off2;
#if defined(_M_ARM64)
	LONG armOff2;
#endif
	LONG off3;
#if defined(_M_ARM64)
	LONG armOff3;
#endif
	LONG off4;
#if defined(_M_ARM64)
	LONG armOff4;
#endif
	LONG off5;
#if defined(_M_ARM64)
	LONG armOff5;
#endif
	LONG off6;
#if defined(_M_ARM64)
	LONG armOff6;
#endif
	LONG off7;
#if defined(_M_ARM64)
	LONG armOff7;
#endif
	LONG off8;
#if defined(_M_ARM64)
	LONG armOff8;
#endif
	LONG off9;
#if defined(_M_ARM64)
	LONG armOff9;
#endif
} KULL_M_PATCH_OFFSETS, *PKULL_M_PATCH_OFFSETS;

typedef struct _KULL_M_PATCH_GENERIC {
	DWORD MinBuildNumber;
	KULL_M_PATCH_PATTERN Search;
	KULL_M_PATCH_PATTERN Patch;
	KULL_M_PATCH_OFFSETS Offsets;
} KULL_M_PATCH_GENERIC, *PKULL_M_PATCH_GENERIC;

typedef struct _KULL_M_PATCH_MULTIPLE {
	KULL_M_PATCH_PATTERN Search;
	KULL_M_PATCH_PATTERN Patch;
	LONG Offset;
	KULL_M_MEMORY_ADDRESS AdressOfPatch;
	DWORD OldProtect;
	KULL_M_MEMORY_ADDRESS LocalBackup;
} KULL_M_PATCH_MULTIPLE, *PKULL_M_PATCH_MULTIPLE;

BOOL kull_m_patch(PKULL_M_MEMORY_SEARCH sMemory, PKULL_M_MEMORY_ADDRESS pPattern, SIZE_T szPattern, PKULL_M_MEMORY_ADDRESS pPatch, SIZE_T szPatch, LONG offsetOfPatch, PKULL_M_PATCH_CALLBACK pCallBackBeforeRestore, int argc, wchar_t * args[], NTSTATUS * pRetCallBack);
PKULL_M_PATCH_GENERIC kull_m_patch_getGenericFromBuild(PKULL_M_PATCH_GENERIC generics, SIZE_T cbGenerics, DWORD BuildNumber);
BOOL kull_m_patch_genericProcessOrServiceFromBuild(PKULL_M_PATCH_GENERIC generics, SIZE_T cbGenerics, PCWSTR processOrService, PCWSTR moduleName, BOOL isService);


t_basic()
   test_large()
   test_no_input()
   test_invalid_input()
   test_streaming()
   test_illegal_state()
   test_checksum()
   test_version()
   test_tom_macwright()
   test_amnon_david()
end

main()


   }
}

public static class UModProgram
{
    [Fact]
    public static int TestEntryPoint()
    {
        const int Pass = 100;
        const int Fail = -1;

        // U4

        try
        {
            UModConst.U4_Mod_0(42);
            return Fail;
        }
        catch (DivideByZeroException)
        {
        }
        catch (Exception)
        {
            return Fail;
        }

        if (UModConst.U4_Mod_1(42) != 0)
        {
            return Fail;
        }

        if (UModConst.U4_Mod_3(43) != 1)
        {
            return Fail;
        }

        if (UModConst.U4_Mod_5(42) != 2)
        {
            return Fail;
        }

        if (UModConst.U4_Mod_7(43) != 1)
        {
            return Fail;
        }

        if (UModConst.U4_ModPow2_16(42) != 10)
        {
            return Fail;
        }

        if (UModConst.U4_ModPow2_0x80000000(3) != 3)
        {
            return Fail;
        }

        if (UModConst.U4_ModPow2_0x80000000(0x80000001u) != 1)
        {
            return Fail;
        }

        // U8

        try
        {
            UModConst.U8_Mod_0(42);
            return Fail;
        }
        catch (DivideByZeroException)
        {
        }
        catch (Exception)
        {
            return Fail;
        }

        if (UModConst.U8_Mod_1(42) != 0)
        {
            return Fail;
        }

        if (UModConst.U8_Mod_3(43) != 1)
        {
            return Fail;
        }

        if (UModConst.U8_Mod_5(42) != 2)
        {
            return Fail;
        }

        if (UModConst.U8_Mod_7(420) != 0)
        {
            return Fail;
        }

        if (UModConst.U8_ModUncontained_I8Max(ulong.MaxValue - 1) != ulong.MaxValue - 1)
        {
            return Fail;
        }

        if (UModConst.U8_ModUncontained_I8Max(ulong.MaxValue) != 0)
        {
            return Fail;
        }

        if (UModConst.U8_ModPow2_8(42) != 2)
        {
            return Fail;
        }

        if (UModConst.U8_ModPow2_8(43) != 3)
        {
            return Fail;
        }

        if (UModConst.U8_ModUncontainedPow2_1Shl32((1UL << 33) + 42) != 42)
        {
            return Fail;
        }

        return Pass;
    }
}