OR-Tools  9.1
cp_model.pb.cc
Go to the documentation of this file.
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: ortools/sat/cp_model.proto
3 
5 
6 #include <algorithm>
7 
8 #include <google/protobuf/io/coded_stream.h>
9 #include <google/protobuf/extension_set.h>
10 #include <google/protobuf/wire_format_lite.h>
11 #include <google/protobuf/descriptor.h>
12 #include <google/protobuf/generated_message_reflection.h>
13 #include <google/protobuf/reflection_ops.h>
14 #include <google/protobuf/wire_format.h>
15 // @@protoc_insertion_point(includes)
16 #include <google/protobuf/port_def.inc>
17 
18 PROTOBUF_PRAGMA_INIT_SEG
19 namespace operations_research {
20 namespace sat {
22  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
23  : domain_()
24  , _domain_cached_byte_size_(0)
25  , name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
28  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
30  union {
32  };
33 };
36  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
37  : literals_()
38  , _literals_cached_byte_size_(0){}
41  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
43  union {
45  };
46 };
47 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT BoolArgumentProtoDefaultTypeInternal _BoolArgumentProto_default_instance_;
49  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
50  : vars_()
51  , _vars_cached_byte_size_(0)
52  , target_(0){}
55  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
57  union {
59  };
60 };
63  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
64  : vars_()
65  , _vars_cached_byte_size_(0)
66  , coeffs_()
67  , _coeffs_cached_byte_size_(0)
68  , offset_(int64_t{0}){}
71  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
73  union {
75  };
76 };
79  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
80  : exprs_()
81  , target_(nullptr){}
84  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
86  union {
88  };
89 };
90 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LinearArgumentProtoDefaultTypeInternal _LinearArgumentProto_default_instance_;
92  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
93  : vars_()
94  , _vars_cached_byte_size_(0){}
97  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
99  union {
101  };
102 };
105  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
106  : vars_()
107  , _vars_cached_byte_size_(0)
108  , coeffs_()
109  , _coeffs_cached_byte_size_(0)
110  , domain_()
111  , _domain_cached_byte_size_(0){}
114  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
116  union {
118  };
119 };
122  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
123  : vars_()
124  , _vars_cached_byte_size_(0)
125  , index_(0)
126  , target_(0){}
129  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
131  union {
133  };
134 };
137  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
138  : start_view_(nullptr)
139  , end_view_(nullptr)
140  , size_view_(nullptr)
141  , start_(0)
142  , end_(0)
143  , size_(0){}
146  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
148  union {
150  };
151 };
154  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
155  : intervals_()
156  , _intervals_cached_byte_size_(0){}
159  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
161  union {
163  };
164 };
167  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
168  : x_intervals_()
169  , _x_intervals_cached_byte_size_(0)
170  , y_intervals_()
171  , _y_intervals_cached_byte_size_(0)
172  , boxes_with_null_area_can_overlap_(false){}
175  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
177  union {
179  };
180 };
183  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
184  : intervals_()
185  , _intervals_cached_byte_size_(0)
186  , demands_()
187  , _demands_cached_byte_size_(0)
188  , energies_()
189  , capacity_(0){}
192  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
194  union {
196  };
197 };
200  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
201  : times_()
202  , _times_cached_byte_size_(0)
203  , demands_()
204  , _demands_cached_byte_size_(0)
205  , actives_()
206  , _actives_cached_byte_size_(0)
207  , min_level_(int64_t{0})
208  , max_level_(int64_t{0}){}
211  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
213  union {
215  };
216 };
219  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
220  : tails_()
221  , _tails_cached_byte_size_(0)
222  , heads_()
223  , _heads_cached_byte_size_(0)
224  , literals_()
225  , _literals_cached_byte_size_(0){}
228  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
230  union {
232  };
233 };
236  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
237  : tails_()
238  , _tails_cached_byte_size_(0)
239  , heads_()
240  , _heads_cached_byte_size_(0)
241  , literals_()
242  , _literals_cached_byte_size_(0)
243  , demands_()
244  , _demands_cached_byte_size_(0)
245  , capacity_(int64_t{0}){}
248  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
250  union {
252  };
253 };
256  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
257  : vars_()
258  , _vars_cached_byte_size_(0)
259  , values_()
260  , _values_cached_byte_size_(0)
261  , negated_(false){}
264  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
266  union {
268  };
269 };
272  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
273  : f_direct_()
274  , _f_direct_cached_byte_size_(0)
275  , f_inverse_()
276  , _f_inverse_cached_byte_size_(0){}
279  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
281  union {
283  };
284 };
287  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
288  : final_states_()
289  , _final_states_cached_byte_size_(0)
290  , transition_tail_()
291  , _transition_tail_cached_byte_size_(0)
292  , transition_head_()
293  , _transition_head_cached_byte_size_(0)
294  , transition_label_()
295  , _transition_label_cached_byte_size_(0)
296  , vars_()
297  , _vars_cached_byte_size_(0)
298  , starting_state_(int64_t{0}){}
301  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
303  union {
305  };
306 };
309  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
310  : vars_()
311  , _vars_cached_byte_size_(0){}
314  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
316  union {
318  };
319 };
322  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
323  : enforcement_literal_()
324  , _enforcement_literal_cached_byte_size_(0)
325  , name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
326  , _oneof_case_{}{}
329  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
331  union {
333  };
334 };
335 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ConstraintProtoDefaultTypeInternal _ConstraintProto_default_instance_;
337  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
338  : vars_()
339  , _vars_cached_byte_size_(0)
340  , coeffs_()
341  , _coeffs_cached_byte_size_(0)
342  , domain_()
343  , _domain_cached_byte_size_(0)
344  , offset_(0)
345  , scaling_factor_(0){}
348  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
350  union {
352  };
353 };
354 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpObjectiveProtoDefaultTypeInternal _CpObjectiveProto_default_instance_;
356  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
357  : offset_(int64_t{0})
358  , positive_coeff_(int64_t{0})
359  , index_(0){}
362  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
364  union {
366  };
367 };
370  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
371  : variables_()
372  , _variables_cached_byte_size_(0)
373  , transformations_()
374  , variable_selection_strategy_(0)
375 
376  , domain_reduction_strategy_(0)
377 {}
380  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
382  union {
384  };
385 };
388  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
389  : vars_()
390  , _vars_cached_byte_size_(0)
391  , values_()
392  , _values_cached_byte_size_(0){}
395  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
397  union {
399  };
400 };
403  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
404  : support_()
405  , _support_cached_byte_size_(0)
406  , cycle_sizes_()
407  , _cycle_sizes_cached_byte_size_(0){}
410  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
412  union {
414  };
415 };
418  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
419  : entries_()
420  , _entries_cached_byte_size_(0)
421  , num_rows_(0)
422  , num_cols_(0){}
425  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
427  union {
429  };
430 };
431 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT DenseMatrixProtoDefaultTypeInternal _DenseMatrixProto_default_instance_;
433  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
434  : permutations_()
435  , orbitopes_(){}
438  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
440  union {
442  };
443 };
444 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SymmetryProtoDefaultTypeInternal _SymmetryProto_default_instance_;
446  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
447  : variables_()
448  , constraints_()
449  , search_strategy_()
450  , assumptions_()
451  , _assumptions_cached_byte_size_(0)
452  , name_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
453  , objective_(nullptr)
454  , solution_hint_(nullptr)
455  , symmetry_(nullptr){}
458  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
460  union {
462  };
463 };
464 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpModelProtoDefaultTypeInternal _CpModelProto_default_instance_;
466  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
467  : solution_()
468  , _solution_cached_byte_size_(0)
469  , solution_lower_bounds_()
470  , _solution_lower_bounds_cached_byte_size_(0)
471  , solution_upper_bounds_()
472  , _solution_upper_bounds_cached_byte_size_(0)
473  , tightened_variables_()
474  , sufficient_assumptions_for_infeasibility_()
475  , _sufficient_assumptions_for_infeasibility_cached_byte_size_(0)
476  , solution_info_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
477  , solve_log_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
478  , objective_value_(0)
479  , status_(0)
480 
481  , all_solutions_were_found_(false)
482  , best_objective_bound_(0)
483  , num_booleans_(int64_t{0})
484  , num_conflicts_(int64_t{0})
485  , num_branches_(int64_t{0})
486  , num_binary_propagations_(int64_t{0})
487  , num_integer_propagations_(int64_t{0})
488  , wall_time_(0)
489  , user_time_(0)
490  , deterministic_time_(0)
491  , primal_integral_(0)
492  , num_restarts_(int64_t{0})
493  , num_lp_iterations_(int64_t{0}){}
496  : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
498  union {
500  };
501 };
502 PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpSolverResponseDefaultTypeInternal _CpSolverResponse_default_instance_;
503 } // namespace sat
504 } // namespace operations_research
505 static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fsat_2fcp_5fmodel_2eproto[29];
506 static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* file_level_enum_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto[3];
507 static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto = nullptr;
508 
509 const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fsat_2fcp_5fmodel_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
510  ~0u, // no _has_bits_
511  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, _internal_metadata_),
512  ~0u, // no _extensions_
513  ~0u, // no _oneof_case_
514  ~0u, // no _weak_field_map_
515  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, name_),
516  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerVariableProto, domain_),
517  ~0u, // no _has_bits_
518  PROTOBUF_FIELD_OFFSET(::operations_research::sat::BoolArgumentProto, _internal_metadata_),
519  ~0u, // no _extensions_
520  ~0u, // no _oneof_case_
521  ~0u, // no _weak_field_map_
522  PROTOBUF_FIELD_OFFSET(::operations_research::sat::BoolArgumentProto, literals_),
523  ~0u, // no _has_bits_
524  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerArgumentProto, _internal_metadata_),
525  ~0u, // no _extensions_
526  ~0u, // no _oneof_case_
527  ~0u, // no _weak_field_map_
528  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerArgumentProto, target_),
529  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntegerArgumentProto, vars_),
530  ~0u, // no _has_bits_
531  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, _internal_metadata_),
532  ~0u, // no _extensions_
533  ~0u, // no _oneof_case_
534  ~0u, // no _weak_field_map_
535  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, vars_),
536  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearExpressionProto, coeffs_),
538  ~0u, // no _has_bits_
539  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, _internal_metadata_),
540  ~0u, // no _extensions_
541  ~0u, // no _oneof_case_
542  ~0u, // no _weak_field_map_
543  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, target_),
544  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearArgumentProto, exprs_),
545  ~0u, // no _has_bits_
546  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AllDifferentConstraintProto, _internal_metadata_),
547  ~0u, // no _extensions_
548  ~0u, // no _oneof_case_
549  ~0u, // no _weak_field_map_
551  ~0u, // no _has_bits_
552  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, _internal_metadata_),
553  ~0u, // no _extensions_
554  ~0u, // no _oneof_case_
555  ~0u, // no _weak_field_map_
556  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, vars_),
557  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, coeffs_),
558  PROTOBUF_FIELD_OFFSET(::operations_research::sat::LinearConstraintProto, domain_),
559  ~0u, // no _has_bits_
560  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, _internal_metadata_),
561  ~0u, // no _extensions_
562  ~0u, // no _oneof_case_
563  ~0u, // no _weak_field_map_
564  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, index_),
565  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ElementConstraintProto, target_),
567  ~0u, // no _has_bits_
568  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, _internal_metadata_),
569  ~0u, // no _extensions_
570  ~0u, // no _oneof_case_
571  ~0u, // no _weak_field_map_
572  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, start_),
573  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, end_),
574  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, size_),
575  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, start_view_),
576  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, end_view_),
577  PROTOBUF_FIELD_OFFSET(::operations_research::sat::IntervalConstraintProto, size_view_),
578  ~0u, // no _has_bits_
579  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlapConstraintProto, _internal_metadata_),
580  ~0u, // no _extensions_
581  ~0u, // no _oneof_case_
582  ~0u, // no _weak_field_map_
583  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlapConstraintProto, intervals_),
584  ~0u, // no _has_bits_
585  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, _internal_metadata_),
586  ~0u, // no _extensions_
587  ~0u, // no _oneof_case_
588  ~0u, // no _weak_field_map_
589  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, x_intervals_),
590  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, y_intervals_),
591  PROTOBUF_FIELD_OFFSET(::operations_research::sat::NoOverlap2DConstraintProto, boxes_with_null_area_can_overlap_),
592  ~0u, // no _has_bits_
593  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, _internal_metadata_),
594  ~0u, // no _extensions_
595  ~0u, // no _oneof_case_
596  ~0u, // no _weak_field_map_
597  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, capacity_),
598  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, intervals_),
599  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, demands_),
600  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CumulativeConstraintProto, energies_),
601  ~0u, // no _has_bits_
602  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, _internal_metadata_),
603  ~0u, // no _extensions_
604  ~0u, // no _oneof_case_
605  ~0u, // no _weak_field_map_
606  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, min_level_),
607  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, max_level_),
608  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, times_),
609  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, demands_),
610  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ReservoirConstraintProto, actives_),
611  ~0u, // no _has_bits_
612  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, _internal_metadata_),
613  ~0u, // no _extensions_
614  ~0u, // no _oneof_case_
615  ~0u, // no _weak_field_map_
616  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, tails_),
617  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, heads_),
618  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CircuitConstraintProto, literals_),
619  ~0u, // no _has_bits_
620  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, _internal_metadata_),
621  ~0u, // no _extensions_
622  ~0u, // no _oneof_case_
623  ~0u, // no _weak_field_map_
624  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, tails_),
625  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, heads_),
626  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, literals_),
627  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, demands_),
628  PROTOBUF_FIELD_OFFSET(::operations_research::sat::RoutesConstraintProto, capacity_),
629  ~0u, // no _has_bits_
630  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, _internal_metadata_),
631  ~0u, // no _extensions_
632  ~0u, // no _oneof_case_
633  ~0u, // no _weak_field_map_
634  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, vars_),
635  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, values_),
636  PROTOBUF_FIELD_OFFSET(::operations_research::sat::TableConstraintProto, negated_),
637  ~0u, // no _has_bits_
638  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, _internal_metadata_),
639  ~0u, // no _extensions_
640  ~0u, // no _oneof_case_
641  ~0u, // no _weak_field_map_
642  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, f_direct_),
643  PROTOBUF_FIELD_OFFSET(::operations_research::sat::InverseConstraintProto, f_inverse_),
644  ~0u, // no _has_bits_
645  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, _internal_metadata_),
646  ~0u, // no _extensions_
647  ~0u, // no _oneof_case_
648  ~0u, // no _weak_field_map_
649  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, starting_state_),
650  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, final_states_),
651  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_tail_),
652  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_head_),
653  PROTOBUF_FIELD_OFFSET(::operations_research::sat::AutomatonConstraintProto, transition_label_),
655  ~0u, // no _has_bits_
656  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ListOfVariablesProto, _internal_metadata_),
657  ~0u, // no _extensions_
658  ~0u, // no _oneof_case_
659  ~0u, // no _weak_field_map_
660  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ListOfVariablesProto, vars_),
661  ~0u, // no _has_bits_
662  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, _internal_metadata_),
663  ~0u, // no _extensions_
664  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, _oneof_case_[0]),
665  ~0u, // no _weak_field_map_
666  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, name_),
667  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, enforcement_literal_),
668  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
669  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
670  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
671  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
672  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
673  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
674  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
675  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
676  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
677  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
678  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
679  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
680  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
681  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
682  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
683  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
684  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
685  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
686  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
687  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
688  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
689  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
690  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
691  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
692  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
693  ::PROTOBUF_NAMESPACE_ID::internal::kInvalidFieldOffsetTag,
694  PROTOBUF_FIELD_OFFSET(::operations_research::sat::ConstraintProto, constraint_),
695  ~0u, // no _has_bits_
696  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, _internal_metadata_),
697  ~0u, // no _extensions_
698  ~0u, // no _oneof_case_
699  ~0u, // no _weak_field_map_
700  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, vars_),
701  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, coeffs_),
702  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, offset_),
703  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, scaling_factor_),
704  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpObjectiveProto, domain_),
705  ~0u, // no _has_bits_
706  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, _internal_metadata_),
707  ~0u, // no _extensions_
708  ~0u, // no _oneof_case_
709  ~0u, // no _weak_field_map_
712  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto_AffineTransformation, positive_coeff_),
713  ~0u, // no _has_bits_
714  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, _internal_metadata_),
715  ~0u, // no _extensions_
716  ~0u, // no _oneof_case_
717  ~0u, // no _weak_field_map_
718  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, variables_),
719  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, variable_selection_strategy_),
720  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, domain_reduction_strategy_),
721  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DecisionStrategyProto, transformations_),
722  ~0u, // no _has_bits_
723  PROTOBUF_FIELD_OFFSET(::operations_research::sat::PartialVariableAssignment, _internal_metadata_),
724  ~0u, // no _extensions_
725  ~0u, // no _oneof_case_
726  ~0u, // no _weak_field_map_
728  PROTOBUF_FIELD_OFFSET(::operations_research::sat::PartialVariableAssignment, values_),
729  ~0u, // no _has_bits_
730  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SparsePermutationProto, _internal_metadata_),
731  ~0u, // no _extensions_
732  ~0u, // no _oneof_case_
733  ~0u, // no _weak_field_map_
734  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SparsePermutationProto, support_),
735  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SparsePermutationProto, cycle_sizes_),
736  ~0u, // no _has_bits_
737  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, _internal_metadata_),
738  ~0u, // no _extensions_
739  ~0u, // no _oneof_case_
740  ~0u, // no _weak_field_map_
741  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, num_rows_),
742  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, num_cols_),
743  PROTOBUF_FIELD_OFFSET(::operations_research::sat::DenseMatrixProto, entries_),
744  ~0u, // no _has_bits_
745  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SymmetryProto, _internal_metadata_),
746  ~0u, // no _extensions_
747  ~0u, // no _oneof_case_
748  ~0u, // no _weak_field_map_
749  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SymmetryProto, permutations_),
750  PROTOBUF_FIELD_OFFSET(::operations_research::sat::SymmetryProto, orbitopes_),
751  ~0u, // no _has_bits_
752  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, _internal_metadata_),
753  ~0u, // no _extensions_
754  ~0u, // no _oneof_case_
755  ~0u, // no _weak_field_map_
756  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, name_),
757  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, variables_),
758  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, constraints_),
759  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, objective_),
760  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, search_strategy_),
761  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, solution_hint_),
762  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, assumptions_),
763  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpModelProto, symmetry_),
764  ~0u, // no _has_bits_
765  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, _internal_metadata_),
766  ~0u, // no _extensions_
767  ~0u, // no _oneof_case_
768  ~0u, // no _weak_field_map_
769  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, status_),
770  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_),
771  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, objective_value_),
772  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, best_objective_bound_),
773  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_lower_bounds_),
774  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_upper_bounds_),
775  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, tightened_variables_),
776  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, sufficient_assumptions_for_infeasibility_),
777  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, all_solutions_were_found_),
778  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_booleans_),
779  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_conflicts_),
780  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_branches_),
781  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_binary_propagations_),
782  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_integer_propagations_),
783  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_restarts_),
784  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, num_lp_iterations_),
785  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, wall_time_),
786  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, user_time_),
787  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, deterministic_time_),
788  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, primal_integral_),
789  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solution_info_),
790  PROTOBUF_FIELD_OFFSET(::operations_research::sat::CpSolverResponse, solve_log_),
791 };
792 static const ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
819  { 234, -1, sizeof(::operations_research::sat::SymmetryProto)},
820  { 241, -1, sizeof(::operations_research::sat::CpModelProto)},
822 };
823 
824 static ::PROTOBUF_NAMESPACE_ID::Message const * const file_default_instances[] = {
825  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntegerVariableProto_default_instance_),
826  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_BoolArgumentProto_default_instance_),
827  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntegerArgumentProto_default_instance_),
828  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearExpressionProto_default_instance_),
829  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearArgumentProto_default_instance_),
830  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_AllDifferentConstraintProto_default_instance_),
831  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_LinearConstraintProto_default_instance_),
832  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ElementConstraintProto_default_instance_),
833  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_IntervalConstraintProto_default_instance_),
834  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_NoOverlapConstraintProto_default_instance_),
835  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_NoOverlap2DConstraintProto_default_instance_),
836  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CumulativeConstraintProto_default_instance_),
837  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ReservoirConstraintProto_default_instance_),
838  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CircuitConstraintProto_default_instance_),
839  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_RoutesConstraintProto_default_instance_),
840  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_TableConstraintProto_default_instance_),
841  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_InverseConstraintProto_default_instance_),
842  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_AutomatonConstraintProto_default_instance_),
843  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ListOfVariablesProto_default_instance_),
844  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_ConstraintProto_default_instance_),
845  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpObjectiveProto_default_instance_),
846  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DecisionStrategyProto_AffineTransformation_default_instance_),
847  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DecisionStrategyProto_default_instance_),
848  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_PartialVariableAssignment_default_instance_),
849  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_SparsePermutationProto_default_instance_),
850  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_DenseMatrixProto_default_instance_),
851  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_SymmetryProto_default_instance_),
852  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpModelProto_default_instance_),
853  reinterpret_cast<const ::PROTOBUF_NAMESPACE_ID::Message*>(&::operations_research::sat::_CpSolverResponse_default_instance_),
854 };
855 
856 const char descriptor_table_protodef_ortools_2fsat_2fcp_5fmodel_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
857  "\n\032ortools/sat/cp_model.proto\022\027operations"
858  "_research.sat\"4\n\024IntegerVariableProto\022\014\n"
859  "\004name\030\001 \001(\t\022\016\n\006domain\030\002 \003(\003\"%\n\021BoolArgum"
860  "entProto\022\020\n\010literals\030\001 \003(\005\"4\n\024IntegerArg"
861  "umentProto\022\016\n\006target\030\001 \001(\005\022\014\n\004vars\030\002 \003(\005"
862  "\"E\n\025LinearExpressionProto\022\014\n\004vars\030\001 \003(\005\022"
863  "\016\n\006coeffs\030\002 \003(\003\022\016\n\006offset\030\003 \001(\003\"\224\001\n\023Line"
864  "arArgumentProto\022>\n\006target\030\001 \001(\0132..operat"
865  "ions_research.sat.LinearExpressionProto\022"
866  "=\n\005exprs\030\002 \003(\0132..operations_research.sat"
867  ".LinearExpressionProto\"+\n\033AllDifferentCo"
868  "nstraintProto\022\014\n\004vars\030\001 \003(\005\"E\n\025LinearCon"
869  "straintProto\022\014\n\004vars\030\001 \003(\005\022\016\n\006coeffs\030\002 \003"
870  "(\003\022\016\n\006domain\030\003 \003(\003\"E\n\026ElementConstraintP"
871  "roto\022\r\n\005index\030\001 \001(\005\022\016\n\006target\030\002 \001(\005\022\014\n\004v"
872  "ars\030\003 \003(\005\"\214\002\n\027IntervalConstraintProto\022\r\n"
873  "\005start\030\001 \001(\005\022\013\n\003end\030\002 \001(\005\022\014\n\004size\030\003 \001(\005\022"
874  "B\n\nstart_view\030\004 \001(\0132..operations_researc"
875  "h.sat.LinearExpressionProto\022@\n\010end_view\030"
876  "\005 \001(\0132..operations_research.sat.LinearEx"
877  "pressionProto\022A\n\tsize_view\030\006 \001(\0132..opera"
878  "tions_research.sat.LinearExpressionProto"
879  "\"-\n\030NoOverlapConstraintProto\022\021\n\tinterval"
880  "s\030\001 \003(\005\"p\n\032NoOverlap2DConstraintProto\022\023\n"
881  "\013x_intervals\030\001 \003(\005\022\023\n\013y_intervals\030\002 \003(\005\022"
882  "(\n boxes_with_null_area_can_overlap\030\003 \001("
883  "\010\"\223\001\n\031CumulativeConstraintProto\022\020\n\010capac"
884  "ity\030\001 \001(\005\022\021\n\tintervals\030\002 \003(\005\022\017\n\007demands\030"
885  "\003 \003(\005\022@\n\010energies\030\004 \003(\0132..operations_res"
886  "earch.sat.LinearExpressionProto\"q\n\030Reser"
887  "voirConstraintProto\022\021\n\tmin_level\030\001 \001(\003\022\021"
888  "\n\tmax_level\030\002 \001(\003\022\r\n\005times\030\003 \003(\005\022\017\n\007dema"
889  "nds\030\004 \003(\003\022\017\n\007actives\030\005 \003(\005\"H\n\026CircuitCon"
890  "straintProto\022\r\n\005tails\030\003 \003(\005\022\r\n\005heads\030\004 \003"
891  "(\005\022\020\n\010literals\030\005 \003(\005\"j\n\025RoutesConstraint"
892  "Proto\022\r\n\005tails\030\001 \003(\005\022\r\n\005heads\030\002 \003(\005\022\020\n\010l"
893  "iterals\030\003 \003(\005\022\017\n\007demands\030\004 \003(\005\022\020\n\010capaci"
894  "ty\030\005 \001(\003\"E\n\024TableConstraintProto\022\014\n\004vars"
895  "\030\001 \003(\005\022\016\n\006values\030\002 \003(\003\022\017\n\007negated\030\003 \001(\010\""
896  "=\n\026InverseConstraintProto\022\020\n\010f_direct\030\001 "
897  "\003(\005\022\021\n\tf_inverse\030\002 \003(\005\"\242\001\n\030AutomatonCons"
898  "traintProto\022\026\n\016starting_state\030\002 \001(\003\022\024\n\014f"
899  "inal_states\030\003 \003(\003\022\027\n\017transition_tail\030\004 \003"
900  "(\003\022\027\n\017transition_head\030\005 \003(\003\022\030\n\020transitio"
901  "n_label\030\006 \003(\003\022\014\n\004vars\030\007 \003(\005\"$\n\024ListOfVar"
902  "iablesProto\022\014\n\004vars\030\001 \003(\005\"\270\016\n\017Constraint"
903  "Proto\022\014\n\004name\030\001 \001(\t\022\033\n\023enforcement_liter"
904  "al\030\002 \003(\005\022=\n\007bool_or\030\003 \001(\0132*.operations_r"
905  "esearch.sat.BoolArgumentProtoH\000\022>\n\010bool_"
906  "and\030\004 \001(\0132*.operations_research.sat.Bool"
907  "ArgumentProtoH\000\022A\n\013at_most_one\030\032 \001(\0132*.o"
908  "perations_research.sat.BoolArgumentProto"
909  "H\000\022A\n\013exactly_one\030\035 \001(\0132*.operations_res"
910  "earch.sat.BoolArgumentProtoH\000\022>\n\010bool_xo"
911  "r\030\005 \001(\0132*.operations_research.sat.BoolAr"
912  "gumentProtoH\000\022@\n\007int_div\030\007 \001(\0132-.operati"
913  "ons_research.sat.IntegerArgumentProtoH\000\022"
914  "@\n\007int_mod\030\010 \001(\0132-.operations_research.s"
915  "at.IntegerArgumentProtoH\000\022@\n\007int_max\030\t \001"
916  "(\0132-.operations_research.sat.IntegerArgu"
917  "mentProtoH\000\022\?\n\007lin_max\030\033 \001(\0132,.operation"
918  "s_research.sat.LinearArgumentProtoH\000\022@\n\007"
919  "int_min\030\n \001(\0132-.operations_research.sat."
920  "IntegerArgumentProtoH\000\022\?\n\007lin_min\030\034 \001(\0132"
921  ",.operations_research.sat.LinearArgument"
922  "ProtoH\000\022A\n\010int_prod\030\013 \001(\0132-.operations_r"
923  "esearch.sat.IntegerArgumentProtoH\000\022@\n\006li"
924  "near\030\014 \001(\0132..operations_research.sat.Lin"
925  "earConstraintProtoH\000\022H\n\010all_diff\030\r \001(\01324"
926  ".operations_research.sat.AllDifferentCon"
927  "straintProtoH\000\022B\n\007element\030\016 \001(\0132/.operat"
928  "ions_research.sat.ElementConstraintProto"
929  "H\000\022B\n\007circuit\030\017 \001(\0132/.operations_researc"
930  "h.sat.CircuitConstraintProtoH\000\022@\n\006routes"
931  "\030\027 \001(\0132..operations_research.sat.RoutesC"
932  "onstraintProtoH\000\022>\n\005table\030\020 \001(\0132-.operat"
933  "ions_research.sat.TableConstraintProtoH\000"
934  "\022F\n\tautomaton\030\021 \001(\01321.operations_researc"
935  "h.sat.AutomatonConstraintProtoH\000\022B\n\007inve"
936  "rse\030\022 \001(\0132/.operations_research.sat.Inve"
937  "rseConstraintProtoH\000\022F\n\treservoir\030\030 \001(\0132"
938  "1.operations_research.sat.ReservoirConst"
939  "raintProtoH\000\022D\n\010interval\030\023 \001(\01320.operati"
940  "ons_research.sat.IntervalConstraintProto"
941  "H\000\022G\n\nno_overlap\030\024 \001(\01321.operations_rese"
942  "arch.sat.NoOverlapConstraintProtoH\000\022L\n\rn"
943  "o_overlap_2d\030\025 \001(\01323.operations_research"
944  ".sat.NoOverlap2DConstraintProtoH\000\022H\n\ncum"
945  "ulative\030\026 \001(\01322.operations_research.sat."
946  "CumulativeConstraintProtoH\000\022I\n\020dummy_con"
947  "straint\030\036 \001(\0132-.operations_research.sat."
948  "ListOfVariablesProtoH\000B\014\n\nconstraint\"h\n\020"
949  "CpObjectiveProto\022\014\n\004vars\030\001 \003(\005\022\016\n\006coeffs"
950  "\030\004 \003(\003\022\016\n\006offset\030\002 \001(\001\022\026\n\016scaling_factor"
951  "\030\003 \001(\001\022\016\n\006domain\030\005 \003(\003\"\327\005\n\025DecisionStrat"
952  "egyProto\022\021\n\tvariables\030\001 \003(\005\022m\n\033variable_"
953  "selection_strategy\030\002 \001(\0162H.operations_re"
954  "search.sat.DecisionStrategyProto.Variabl"
955  "eSelectionStrategy\022i\n\031domain_reduction_s"
956  "trategy\030\003 \001(\0162F.operations_research.sat."
957  "DecisionStrategyProto.DomainReductionStr"
958  "ategy\022\\\n\017transformations\030\004 \003(\0132C.operati"
959  "ons_research.sat.DecisionStrategyProto.A"
960  "ffineTransformation\032M\n\024AffineTransformat"
961  "ion\022\r\n\005index\030\001 \001(\005\022\016\n\006offset\030\002 \001(\003\022\026\n\016po"
962  "sitive_coeff\030\003 \001(\003\"\224\001\n\031VariableSelection"
963  "Strategy\022\020\n\014CHOOSE_FIRST\020\000\022\025\n\021CHOOSE_LOW"
964  "EST_MIN\020\001\022\026\n\022CHOOSE_HIGHEST_MAX\020\002\022\032\n\026CHO"
965  "OSE_MIN_DOMAIN_SIZE\020\003\022\032\n\026CHOOSE_MAX_DOMA"
966  "IN_SIZE\020\004\"\214\001\n\027DomainReductionStrategy\022\024\n"
967  "\020SELECT_MIN_VALUE\020\000\022\024\n\020SELECT_MAX_VALUE\020"
968  "\001\022\025\n\021SELECT_LOWER_HALF\020\002\022\025\n\021SELECT_UPPER"
969  "_HALF\020\003\022\027\n\023SELECT_MEDIAN_VALUE\020\004\"9\n\031Part"
970  "ialVariableAssignment\022\014\n\004vars\030\001 \003(\005\022\016\n\006v"
971  "alues\030\002 \003(\003\">\n\026SparsePermutationProto\022\017\n"
972  "\007support\030\001 \003(\005\022\023\n\013cycle_sizes\030\002 \003(\005\"G\n\020D"
973  "enseMatrixProto\022\020\n\010num_rows\030\001 \001(\005\022\020\n\010num"
974  "_cols\030\002 \001(\005\022\017\n\007entries\030\003 \003(\005\"\224\001\n\rSymmetr"
975  "yProto\022E\n\014permutations\030\001 \003(\0132/.operation"
976  "s_research.sat.SparsePermutationProto\022<\n"
977  "\torbitopes\030\002 \003(\0132).operations_research.s"
978  "at.DenseMatrixProto\"\276\003\n\014CpModelProto\022\014\n\004"
979  "name\030\001 \001(\t\022@\n\tvariables\030\002 \003(\0132-.operatio"
980  "ns_research.sat.IntegerVariableProto\022=\n\013"
981  "constraints\030\003 \003(\0132(.operations_research."
982  "sat.ConstraintProto\022<\n\tobjective\030\004 \001(\0132)"
983  ".operations_research.sat.CpObjectiveProt"
984  "o\022G\n\017search_strategy\030\005 \003(\0132..operations_"
985  "research.sat.DecisionStrategyProto\022I\n\rso"
986  "lution_hint\030\006 \001(\01322.operations_research."
987  "sat.PartialVariableAssignment\022\023\n\013assumpt"
988  "ions\030\007 \003(\005\0228\n\010symmetry\030\010 \001(\0132&.operation"
989  "s_research.sat.SymmetryProto\"\256\005\n\020CpSolve"
990  "rResponse\0227\n\006status\030\001 \001(\0162\'.operations_r"
991  "esearch.sat.CpSolverStatus\022\020\n\010solution\030\002"
992  " \003(\003\022\027\n\017objective_value\030\003 \001(\001\022\034\n\024best_ob"
993  "jective_bound\030\004 \001(\001\022\035\n\025solution_lower_bo"
994  "unds\030\022 \003(\003\022\035\n\025solution_upper_bounds\030\023 \003("
995  "\003\022J\n\023tightened_variables\030\025 \003(\0132-.operati"
996  "ons_research.sat.IntegerVariableProto\0220\n"
997  "(sufficient_assumptions_for_infeasibilit"
998  "y\030\027 \003(\005\022 \n\030all_solutions_were_found\030\005 \001("
999  "\010\022\024\n\014num_booleans\030\n \001(\003\022\025\n\rnum_conflicts"
1000  "\030\013 \001(\003\022\024\n\014num_branches\030\014 \001(\003\022\037\n\027num_bina"
1001  "ry_propagations\030\r \001(\003\022 \n\030num_integer_pro"
1002  "pagations\030\016 \001(\003\022\024\n\014num_restarts\030\030 \001(\003\022\031\n"
1003  "\021num_lp_iterations\030\031 \001(\003\022\021\n\twall_time\030\017 "
1004  "\001(\001\022\021\n\tuser_time\030\020 \001(\001\022\032\n\022deterministic_"
1005  "time\030\021 \001(\001\022\027\n\017primal_integral\030\026 \001(\001\022\025\n\rs"
1006  "olution_info\030\024 \001(\t\022\021\n\tsolve_log\030\032 \001(\t*[\n"
1007  "\016CpSolverStatus\022\013\n\007UNKNOWN\020\000\022\021\n\rMODEL_IN"
1008  "VALID\020\001\022\014\n\010FEASIBLE\020\002\022\016\n\nINFEASIBLE\020\003\022\013\n"
1009  "\007OPTIMAL\020\004B@\n\026com.google.ortools.satB\017Cp"
1010  "ModelProtobufP\001\252\002\022Google.OrTools.Satb\006pr"
1011  "oto3"
1012  ;
1013 static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_once;
1014 const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto = {
1015  false, false, 6164, descriptor_table_protodef_ortools_2fsat_2fcp_5fmodel_2eproto, "ortools/sat/cp_model.proto",
1019 };
1020 PROTOBUF_ATTRIBUTE_WEAK const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable* descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_getter() {
1022 }
1023 
1024 // Force running AddDescriptors() at dynamic initialization time.
1025 PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptorsRunner dynamic_init_dummy_ortools_2fsat_2fcp_5fmodel_2eproto(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1026 namespace operations_research {
1027 namespace sat {
1028 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DecisionStrategyProto_VariableSelectionStrategy_descriptor() {
1029  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1031 }
1033  switch (value) {
1034  case 0:
1035  case 1:
1036  case 2:
1037  case 3:
1038  case 4:
1039  return true;
1040  default:
1041  return false;
1042  }
1043 }
1044 
1045 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1054 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1055 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* DecisionStrategyProto_DomainReductionStrategy_descriptor() {
1056  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1058 }
1060  switch (value) {
1061  case 0:
1062  case 1:
1063  case 2:
1064  case 3:
1065  case 4:
1066  return true;
1067  default:
1068  return false;
1069  }
1070 }
1071 
1072 #if (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1081 #endif // (__cplusplus < 201703) && (!defined(_MSC_VER) || _MSC_VER >= 1900)
1082 const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor* CpSolverStatus_descriptor() {
1083  ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(&descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto);
1085 }
1087  switch (value) {
1088  case 0:
1089  case 1:
1090  case 2:
1091  case 3:
1092  case 4:
1093  return true;
1094  default:
1095  return false;
1096  }
1097 }
1098 
1099 
1100 // ===================================================================
1101 
1103  public:
1104 };
1105 
1106 IntegerVariableProto::IntegerVariableProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
1107  bool is_message_owned)
1108  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
1109  domain_(arena) {
1110  SharedCtor();
1111  if (!is_message_owned) {
1112  RegisterArenaDtor(arena);
1113  }
1114  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntegerVariableProto)
1115 }
1117  : ::PROTOBUF_NAMESPACE_ID::Message(),
1118  domain_(from.domain_) {
1119  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1120  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1121  if (!from._internal_name().empty()) {
1122  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
1123  GetArenaForAllocation());
1124  }
1125  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntegerVariableProto)
1126 }
1127 
1128 inline void IntegerVariableProto::SharedCtor() {
1129 name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1130 }
1131 
1133  // @@protoc_insertion_point(destructor:operations_research.sat.IntegerVariableProto)
1134  if (GetArenaForAllocation() != nullptr) return;
1135  SharedDtor();
1136  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1137 }
1138 
1139 inline void IntegerVariableProto::SharedDtor() {
1140  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
1141  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
1142 }
1143 
1144 void IntegerVariableProto::ArenaDtor(void* object) {
1145  IntegerVariableProto* _this = reinterpret_cast< IntegerVariableProto* >(object);
1146  (void)_this;
1147 }
1148 void IntegerVariableProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1149 }
1150 void IntegerVariableProto::SetCachedSize(int size) const {
1151  _cached_size_.Set(size);
1152 }
1153 
1155 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntegerVariableProto)
1156  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1157  // Prevent compiler warnings about cached_has_bits being unused
1158  (void) cached_has_bits;
1159 
1160  domain_.Clear();
1161  name_.ClearToEmpty();
1162  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1163 }
1164 
1165 const char* IntegerVariableProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1166 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1167  while (!ctx->Done(&ptr)) {
1168  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
1169  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1170  switch (tag >> 3) {
1171  // string name = 1;
1172  case 1:
1173  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1174  auto str = _internal_mutable_name();
1175  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
1176  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.IntegerVariableProto.name"));
1177  CHK_(ptr);
1178  } else goto handle_unusual;
1179  continue;
1180  // repeated int64 domain = 2;
1181  case 2:
1182  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
1183  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
1184  CHK_(ptr);
1185  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
1186  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1187  CHK_(ptr);
1188  } else goto handle_unusual;
1189  continue;
1190  default: {
1191  handle_unusual:
1192  if ((tag == 0) || ((tag & 7) == 4)) {
1193  CHK_(ptr);
1194  ctx->SetLastTag(tag);
1195  goto success;
1196  }
1197  ptr = UnknownFieldParse(tag,
1198  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1199  ptr, ctx);
1200  CHK_(ptr != nullptr);
1201  continue;
1202  }
1203  } // switch
1204  } // while
1205 success:
1206  return ptr;
1207 failure:
1208  ptr = nullptr;
1209  goto success;
1210 #undef CHK_
1211 }
1212 
1213 ::PROTOBUF_NAMESPACE_ID::uint8* IntegerVariableProto::_InternalSerialize(
1214  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1215  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntegerVariableProto)
1216  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1217  (void) cached_has_bits;
1218 
1219  // string name = 1;
1220  if (!this->_internal_name().empty()) {
1221  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
1222  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
1223  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
1224  "operations_research.sat.IntegerVariableProto.name");
1225  target = stream->WriteStringMaybeAliased(
1226  1, this->_internal_name(), target);
1227  }
1228 
1229  // repeated int64 domain = 2;
1230  {
1231  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
1232  if (byte_size > 0) {
1233  target = stream->WriteInt64Packed(
1234  2, _internal_domain(), byte_size, target);
1235  }
1236  }
1237 
1238  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1239  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1240  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1241  }
1242  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.IntegerVariableProto)
1243  return target;
1244 }
1245 
1247 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntegerVariableProto)
1248  size_t total_size = 0;
1249 
1250  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1251  // Prevent compiler warnings about cached_has_bits being unused
1252  (void) cached_has_bits;
1253 
1254  // repeated int64 domain = 2;
1255  {
1256  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1257  Int64Size(this->domain_);
1258  if (data_size > 0) {
1259  total_size += 1 +
1260  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1261  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1262  }
1263  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1264  _domain_cached_byte_size_.store(cached_size,
1265  std::memory_order_relaxed);
1266  total_size += data_size;
1267  }
1268 
1269  // string name = 1;
1270  if (!this->_internal_name().empty()) {
1271  total_size += 1 +
1272  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
1273  this->_internal_name());
1274  }
1275 
1276  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1277  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1278  _internal_metadata_, total_size, &_cached_size_);
1279  }
1280  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1281  SetCachedSize(cached_size);
1282  return total_size;
1283 }
1284 
1285 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData IntegerVariableProto::_class_data_ = {
1286  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1287  IntegerVariableProto::MergeImpl
1288 };
1289 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*IntegerVariableProto::GetClassData() const { return &_class_data_; }
1290 
1291 void IntegerVariableProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
1292  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
1293  static_cast<IntegerVariableProto *>(to)->MergeFrom(
1294  static_cast<const IntegerVariableProto &>(from));
1295 }
1296 
1297 
1299 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntegerVariableProto)
1300  GOOGLE_DCHECK_NE(&from, this);
1301  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1302  (void) cached_has_bits;
1303 
1304  domain_.MergeFrom(from.domain_);
1305  if (!from._internal_name().empty()) {
1306  _internal_set_name(from._internal_name());
1307  }
1308  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1309 }
1310 
1312 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntegerVariableProto)
1313  if (&from == this) return;
1314  Clear();
1315  MergeFrom(from);
1316 }
1317 
1319  return true;
1320 }
1321 
1322 void IntegerVariableProto::InternalSwap(IntegerVariableProto* other) {
1323  using std::swap;
1324  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1325  domain_.InternalSwap(&other->domain_);
1326  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
1327  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
1328  &name_, GetArenaForAllocation(),
1329  &other->name_, other->GetArenaForAllocation()
1330  );
1331 }
1332 
1333 ::PROTOBUF_NAMESPACE_ID::Metadata IntegerVariableProto::GetMetadata() const {
1334  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1337 }
1338 
1339 // ===================================================================
1340 
1342  public:
1343 };
1344 
1345 BoolArgumentProto::BoolArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
1346  bool is_message_owned)
1347  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
1348  literals_(arena) {
1349  SharedCtor();
1350  if (!is_message_owned) {
1351  RegisterArenaDtor(arena);
1352  }
1353  // @@protoc_insertion_point(arena_constructor:operations_research.sat.BoolArgumentProto)
1354 }
1356  : ::PROTOBUF_NAMESPACE_ID::Message(),
1357  literals_(from.literals_) {
1358  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1359  // @@protoc_insertion_point(copy_constructor:operations_research.sat.BoolArgumentProto)
1360 }
1361 
1362 inline void BoolArgumentProto::SharedCtor() {
1363 }
1364 
1366  // @@protoc_insertion_point(destructor:operations_research.sat.BoolArgumentProto)
1367  if (GetArenaForAllocation() != nullptr) return;
1368  SharedDtor();
1369  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1370 }
1371 
1372 inline void BoolArgumentProto::SharedDtor() {
1373  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
1374 }
1375 
1376 void BoolArgumentProto::ArenaDtor(void* object) {
1377  BoolArgumentProto* _this = reinterpret_cast< BoolArgumentProto* >(object);
1378  (void)_this;
1379 }
1380 void BoolArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1381 }
1382 void BoolArgumentProto::SetCachedSize(int size) const {
1383  _cached_size_.Set(size);
1384 }
1385 
1387 // @@protoc_insertion_point(message_clear_start:operations_research.sat.BoolArgumentProto)
1388  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1389  // Prevent compiler warnings about cached_has_bits being unused
1390  (void) cached_has_bits;
1391 
1392  literals_.Clear();
1393  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1394 }
1395 
1396 const char* BoolArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1397 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1398  while (!ctx->Done(&ptr)) {
1399  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
1400  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1401  switch (tag >> 3) {
1402  // repeated int32 literals = 1;
1403  case 1:
1404  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1405  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
1406  CHK_(ptr);
1407  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
1408  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1409  CHK_(ptr);
1410  } else goto handle_unusual;
1411  continue;
1412  default: {
1413  handle_unusual:
1414  if ((tag == 0) || ((tag & 7) == 4)) {
1415  CHK_(ptr);
1416  ctx->SetLastTag(tag);
1417  goto success;
1418  }
1419  ptr = UnknownFieldParse(tag,
1420  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1421  ptr, ctx);
1422  CHK_(ptr != nullptr);
1423  continue;
1424  }
1425  } // switch
1426  } // while
1427 success:
1428  return ptr;
1429 failure:
1430  ptr = nullptr;
1431  goto success;
1432 #undef CHK_
1433 }
1434 
1435 ::PROTOBUF_NAMESPACE_ID::uint8* BoolArgumentProto::_InternalSerialize(
1436  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1437  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.BoolArgumentProto)
1438  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1439  (void) cached_has_bits;
1440 
1441  // repeated int32 literals = 1;
1442  {
1443  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
1444  if (byte_size > 0) {
1445  target = stream->WriteInt32Packed(
1446  1, _internal_literals(), byte_size, target);
1447  }
1448  }
1449 
1450  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1451  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1452  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1453  }
1454  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.BoolArgumentProto)
1455  return target;
1456 }
1457 
1459 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.BoolArgumentProto)
1460  size_t total_size = 0;
1461 
1462  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1463  // Prevent compiler warnings about cached_has_bits being unused
1464  (void) cached_has_bits;
1465 
1466  // repeated int32 literals = 1;
1467  {
1468  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1469  Int32Size(this->literals_);
1470  if (data_size > 0) {
1471  total_size += 1 +
1472  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1473  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1474  }
1475  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1476  _literals_cached_byte_size_.store(cached_size,
1477  std::memory_order_relaxed);
1478  total_size += data_size;
1479  }
1480 
1481  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1482  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1483  _internal_metadata_, total_size, &_cached_size_);
1484  }
1485  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1486  SetCachedSize(cached_size);
1487  return total_size;
1488 }
1489 
1490 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData BoolArgumentProto::_class_data_ = {
1491  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1492  BoolArgumentProto::MergeImpl
1493 };
1494 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*BoolArgumentProto::GetClassData() const { return &_class_data_; }
1495 
1496 void BoolArgumentProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
1497  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
1498  static_cast<BoolArgumentProto *>(to)->MergeFrom(
1499  static_cast<const BoolArgumentProto &>(from));
1500 }
1501 
1502 
1504 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.BoolArgumentProto)
1505  GOOGLE_DCHECK_NE(&from, this);
1506  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1507  (void) cached_has_bits;
1508 
1509  literals_.MergeFrom(from.literals_);
1510  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1511 }
1512 
1514 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.BoolArgumentProto)
1515  if (&from == this) return;
1516  Clear();
1517  MergeFrom(from);
1518 }
1519 
1521  return true;
1522 }
1523 
1524 void BoolArgumentProto::InternalSwap(BoolArgumentProto* other) {
1525  using std::swap;
1526  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1527  literals_.InternalSwap(&other->literals_);
1528 }
1529 
1530 ::PROTOBUF_NAMESPACE_ID::Metadata BoolArgumentProto::GetMetadata() const {
1531  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1534 }
1535 
1536 // ===================================================================
1537 
1539  public:
1540 };
1541 
1542 IntegerArgumentProto::IntegerArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
1543  bool is_message_owned)
1544  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
1545  vars_(arena) {
1546  SharedCtor();
1547  if (!is_message_owned) {
1548  RegisterArenaDtor(arena);
1549  }
1550  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntegerArgumentProto)
1551 }
1553  : ::PROTOBUF_NAMESPACE_ID::Message(),
1554  vars_(from.vars_) {
1555  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1556  target_ = from.target_;
1557  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntegerArgumentProto)
1558 }
1559 
1560 inline void IntegerArgumentProto::SharedCtor() {
1561 target_ = 0;
1562 }
1563 
1565  // @@protoc_insertion_point(destructor:operations_research.sat.IntegerArgumentProto)
1566  if (GetArenaForAllocation() != nullptr) return;
1567  SharedDtor();
1568  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1569 }
1570 
1571 inline void IntegerArgumentProto::SharedDtor() {
1572  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
1573 }
1574 
1575 void IntegerArgumentProto::ArenaDtor(void* object) {
1576  IntegerArgumentProto* _this = reinterpret_cast< IntegerArgumentProto* >(object);
1577  (void)_this;
1578 }
1579 void IntegerArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1580 }
1581 void IntegerArgumentProto::SetCachedSize(int size) const {
1582  _cached_size_.Set(size);
1583 }
1584 
1586 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntegerArgumentProto)
1587  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1588  // Prevent compiler warnings about cached_has_bits being unused
1589  (void) cached_has_bits;
1590 
1591  vars_.Clear();
1592  target_ = 0;
1593  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1594 }
1595 
1596 const char* IntegerArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1597 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1598  while (!ctx->Done(&ptr)) {
1599  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
1600  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1601  switch (tag >> 3) {
1602  // int32 target = 1;
1603  case 1:
1604  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
1605  target_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1606  CHK_(ptr);
1607  } else goto handle_unusual;
1608  continue;
1609  // repeated int32 vars = 2;
1610  case 2:
1611  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
1612  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
1613  CHK_(ptr);
1614  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
1615  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1616  CHK_(ptr);
1617  } else goto handle_unusual;
1618  continue;
1619  default: {
1620  handle_unusual:
1621  if ((tag == 0) || ((tag & 7) == 4)) {
1622  CHK_(ptr);
1623  ctx->SetLastTag(tag);
1624  goto success;
1625  }
1626  ptr = UnknownFieldParse(tag,
1627  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1628  ptr, ctx);
1629  CHK_(ptr != nullptr);
1630  continue;
1631  }
1632  } // switch
1633  } // while
1634 success:
1635  return ptr;
1636 failure:
1637  ptr = nullptr;
1638  goto success;
1639 #undef CHK_
1640 }
1641 
1642 ::PROTOBUF_NAMESPACE_ID::uint8* IntegerArgumentProto::_InternalSerialize(
1643  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1644  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntegerArgumentProto)
1645  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1646  (void) cached_has_bits;
1647 
1648  // int32 target = 1;
1649  if (this->_internal_target() != 0) {
1650  target = stream->EnsureSpace(target);
1651  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_target(), target);
1652  }
1653 
1654  // repeated int32 vars = 2;
1655  {
1656  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
1657  if (byte_size > 0) {
1658  target = stream->WriteInt32Packed(
1659  2, _internal_vars(), byte_size, target);
1660  }
1661  }
1662 
1663  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1664  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1665  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1666  }
1667  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.IntegerArgumentProto)
1668  return target;
1669 }
1670 
1672 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntegerArgumentProto)
1673  size_t total_size = 0;
1674 
1675  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1676  // Prevent compiler warnings about cached_has_bits being unused
1677  (void) cached_has_bits;
1678 
1679  // repeated int32 vars = 2;
1680  {
1681  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1682  Int32Size(this->vars_);
1683  if (data_size > 0) {
1684  total_size += 1 +
1685  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1686  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1687  }
1688  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1689  _vars_cached_byte_size_.store(cached_size,
1690  std::memory_order_relaxed);
1691  total_size += data_size;
1692  }
1693 
1694  // int32 target = 1;
1695  if (this->_internal_target() != 0) {
1696  total_size += 1 +
1697  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1698  this->_internal_target());
1699  }
1700 
1701  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1702  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1703  _internal_metadata_, total_size, &_cached_size_);
1704  }
1705  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1706  SetCachedSize(cached_size);
1707  return total_size;
1708 }
1709 
1710 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData IntegerArgumentProto::_class_data_ = {
1711  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1712  IntegerArgumentProto::MergeImpl
1713 };
1714 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*IntegerArgumentProto::GetClassData() const { return &_class_data_; }
1715 
1716 void IntegerArgumentProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
1717  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
1718  static_cast<IntegerArgumentProto *>(to)->MergeFrom(
1719  static_cast<const IntegerArgumentProto &>(from));
1720 }
1721 
1722 
1724 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntegerArgumentProto)
1725  GOOGLE_DCHECK_NE(&from, this);
1726  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1727  (void) cached_has_bits;
1728 
1729  vars_.MergeFrom(from.vars_);
1730  if (from._internal_target() != 0) {
1731  _internal_set_target(from._internal_target());
1732  }
1733  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1734 }
1735 
1737 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntegerArgumentProto)
1738  if (&from == this) return;
1739  Clear();
1740  MergeFrom(from);
1741 }
1742 
1744  return true;
1745 }
1746 
1747 void IntegerArgumentProto::InternalSwap(IntegerArgumentProto* other) {
1748  using std::swap;
1749  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
1750  vars_.InternalSwap(&other->vars_);
1751  swap(target_, other->target_);
1752 }
1753 
1754 ::PROTOBUF_NAMESPACE_ID::Metadata IntegerArgumentProto::GetMetadata() const {
1755  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
1758 }
1759 
1760 // ===================================================================
1761 
1763  public:
1764 };
1765 
1766 LinearExpressionProto::LinearExpressionProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
1767  bool is_message_owned)
1768  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
1769  vars_(arena),
1770  coeffs_(arena) {
1771  SharedCtor();
1772  if (!is_message_owned) {
1773  RegisterArenaDtor(arena);
1774  }
1775  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearExpressionProto)
1776 }
1778  : ::PROTOBUF_NAMESPACE_ID::Message(),
1779  vars_(from.vars_),
1780  coeffs_(from.coeffs_) {
1781  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1782  offset_ = from.offset_;
1783  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearExpressionProto)
1784 }
1785 
1786 inline void LinearExpressionProto::SharedCtor() {
1787 offset_ = int64_t{0};
1788 }
1789 
1791  // @@protoc_insertion_point(destructor:operations_research.sat.LinearExpressionProto)
1792  if (GetArenaForAllocation() != nullptr) return;
1793  SharedDtor();
1794  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1795 }
1796 
1797 inline void LinearExpressionProto::SharedDtor() {
1798  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
1799 }
1800 
1801 void LinearExpressionProto::ArenaDtor(void* object) {
1802  LinearExpressionProto* _this = reinterpret_cast< LinearExpressionProto* >(object);
1803  (void)_this;
1804 }
1805 void LinearExpressionProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
1806 }
1807 void LinearExpressionProto::SetCachedSize(int size) const {
1808  _cached_size_.Set(size);
1809 }
1810 
1812 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearExpressionProto)
1813  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1814  // Prevent compiler warnings about cached_has_bits being unused
1815  (void) cached_has_bits;
1816 
1817  vars_.Clear();
1818  coeffs_.Clear();
1819  offset_ = int64_t{0};
1820  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
1821 }
1822 
1823 const char* LinearExpressionProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
1824 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
1825  while (!ctx->Done(&ptr)) {
1826  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
1827  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
1828  switch (tag >> 3) {
1829  // repeated int32 vars = 1;
1830  case 1:
1831  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
1832  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
1833  CHK_(ptr);
1834  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
1835  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1836  CHK_(ptr);
1837  } else goto handle_unusual;
1838  continue;
1839  // repeated int64 coeffs = 2;
1840  case 2:
1841  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
1842  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
1843  CHK_(ptr);
1844  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
1845  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
1846  CHK_(ptr);
1847  } else goto handle_unusual;
1848  continue;
1849  // int64 offset = 3;
1850  case 3:
1851  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
1852  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
1853  CHK_(ptr);
1854  } else goto handle_unusual;
1855  continue;
1856  default: {
1857  handle_unusual:
1858  if ((tag == 0) || ((tag & 7) == 4)) {
1859  CHK_(ptr);
1860  ctx->SetLastTag(tag);
1861  goto success;
1862  }
1863  ptr = UnknownFieldParse(tag,
1864  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
1865  ptr, ctx);
1866  CHK_(ptr != nullptr);
1867  continue;
1868  }
1869  } // switch
1870  } // while
1871 success:
1872  return ptr;
1873 failure:
1874  ptr = nullptr;
1875  goto success;
1876 #undef CHK_
1877 }
1878 
1879 ::PROTOBUF_NAMESPACE_ID::uint8* LinearExpressionProto::_InternalSerialize(
1880  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
1881  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearExpressionProto)
1882  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1883  (void) cached_has_bits;
1884 
1885  // repeated int32 vars = 1;
1886  {
1887  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
1888  if (byte_size > 0) {
1889  target = stream->WriteInt32Packed(
1890  1, _internal_vars(), byte_size, target);
1891  }
1892  }
1893 
1894  // repeated int64 coeffs = 2;
1895  {
1896  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
1897  if (byte_size > 0) {
1898  target = stream->WriteInt64Packed(
1899  2, _internal_coeffs(), byte_size, target);
1900  }
1901  }
1902 
1903  // int64 offset = 3;
1904  if (this->_internal_offset() != 0) {
1905  target = stream->EnsureSpace(target);
1906  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_offset(), target);
1907  }
1908 
1909  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1910  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
1911  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
1912  }
1913  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearExpressionProto)
1914  return target;
1915 }
1916 
1918 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearExpressionProto)
1919  size_t total_size = 0;
1920 
1921  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1922  // Prevent compiler warnings about cached_has_bits being unused
1923  (void) cached_has_bits;
1924 
1925  // repeated int32 vars = 1;
1926  {
1927  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1928  Int32Size(this->vars_);
1929  if (data_size > 0) {
1930  total_size += 1 +
1931  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1932  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1933  }
1934  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1935  _vars_cached_byte_size_.store(cached_size,
1936  std::memory_order_relaxed);
1937  total_size += data_size;
1938  }
1939 
1940  // repeated int64 coeffs = 2;
1941  {
1942  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
1943  Int64Size(this->coeffs_);
1944  if (data_size > 0) {
1945  total_size += 1 +
1946  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
1947  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
1948  }
1949  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
1950  _coeffs_cached_byte_size_.store(cached_size,
1951  std::memory_order_relaxed);
1952  total_size += data_size;
1953  }
1954 
1955  // int64 offset = 3;
1956  if (this->_internal_offset() != 0) {
1957  total_size += 1 +
1958  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
1959  this->_internal_offset());
1960  }
1961 
1962  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
1963  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
1964  _internal_metadata_, total_size, &_cached_size_);
1965  }
1966  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
1967  SetCachedSize(cached_size);
1968  return total_size;
1969 }
1970 
1971 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LinearExpressionProto::_class_data_ = {
1972  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
1973  LinearExpressionProto::MergeImpl
1974 };
1975 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LinearExpressionProto::GetClassData() const { return &_class_data_; }
1976 
1977 void LinearExpressionProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
1978  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
1979  static_cast<LinearExpressionProto *>(to)->MergeFrom(
1980  static_cast<const LinearExpressionProto &>(from));
1981 }
1982 
1983 
1985 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearExpressionProto)
1986  GOOGLE_DCHECK_NE(&from, this);
1987  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
1988  (void) cached_has_bits;
1989 
1990  vars_.MergeFrom(from.vars_);
1991  coeffs_.MergeFrom(from.coeffs_);
1992  if (from._internal_offset() != 0) {
1993  _internal_set_offset(from._internal_offset());
1994  }
1995  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
1996 }
1997 
1999 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearExpressionProto)
2000  if (&from == this) return;
2001  Clear();
2002  MergeFrom(from);
2003 }
2004 
2006  return true;
2007 }
2008 
2009 void LinearExpressionProto::InternalSwap(LinearExpressionProto* other) {
2010  using std::swap;
2011  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2012  vars_.InternalSwap(&other->vars_);
2013  coeffs_.InternalSwap(&other->coeffs_);
2014  swap(offset_, other->offset_);
2015 }
2016 
2017 ::PROTOBUF_NAMESPACE_ID::Metadata LinearExpressionProto::GetMetadata() const {
2018  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
2021 }
2022 
2023 // ===================================================================
2024 
2026  public:
2027  static const ::operations_research::sat::LinearExpressionProto& target(const LinearArgumentProto* msg);
2028 };
2029 
2030 const ::operations_research::sat::LinearExpressionProto&
2032  return *msg->target_;
2033 }
2034 LinearArgumentProto::LinearArgumentProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
2035  bool is_message_owned)
2036  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
2037  exprs_(arena) {
2038  SharedCtor();
2039  if (!is_message_owned) {
2040  RegisterArenaDtor(arena);
2041  }
2042  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearArgumentProto)
2043 }
2045  : ::PROTOBUF_NAMESPACE_ID::Message(),
2046  exprs_(from.exprs_) {
2047  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2048  if (from._internal_has_target()) {
2049  target_ = new ::operations_research::sat::LinearExpressionProto(*from.target_);
2050  } else {
2051  target_ = nullptr;
2052  }
2053  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearArgumentProto)
2054 }
2055 
2056 inline void LinearArgumentProto::SharedCtor() {
2057 target_ = nullptr;
2058 }
2059 
2061  // @@protoc_insertion_point(destructor:operations_research.sat.LinearArgumentProto)
2062  if (GetArenaForAllocation() != nullptr) return;
2063  SharedDtor();
2064  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2065 }
2066 
2067 inline void LinearArgumentProto::SharedDtor() {
2068  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
2069  if (this != internal_default_instance()) delete target_;
2070 }
2071 
2072 void LinearArgumentProto::ArenaDtor(void* object) {
2073  LinearArgumentProto* _this = reinterpret_cast< LinearArgumentProto* >(object);
2074  (void)_this;
2075 }
2076 void LinearArgumentProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2077 }
2078 void LinearArgumentProto::SetCachedSize(int size) const {
2079  _cached_size_.Set(size);
2080 }
2081 
2083 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearArgumentProto)
2084  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2085  // Prevent compiler warnings about cached_has_bits being unused
2086  (void) cached_has_bits;
2087 
2088  exprs_.Clear();
2089  if (GetArenaForAllocation() == nullptr && target_ != nullptr) {
2090  delete target_;
2091  }
2092  target_ = nullptr;
2093  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2094 }
2095 
2096 const char* LinearArgumentProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2097 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2098  while (!ctx->Done(&ptr)) {
2099  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
2100  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2101  switch (tag >> 3) {
2102  // .operations_research.sat.LinearExpressionProto target = 1;
2103  case 1:
2104  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2105  ptr = ctx->ParseMessage(_internal_mutable_target(), ptr);
2106  CHK_(ptr);
2107  } else goto handle_unusual;
2108  continue;
2109  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
2110  case 2:
2111  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
2112  ptr -= 1;
2113  do {
2114  ptr += 1;
2115  ptr = ctx->ParseMessage(_internal_add_exprs(), ptr);
2116  CHK_(ptr);
2117  if (!ctx->DataAvailable(ptr)) break;
2118  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
2119  } else goto handle_unusual;
2120  continue;
2121  default: {
2122  handle_unusual:
2123  if ((tag == 0) || ((tag & 7) == 4)) {
2124  CHK_(ptr);
2125  ctx->SetLastTag(tag);
2126  goto success;
2127  }
2128  ptr = UnknownFieldParse(tag,
2129  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2130  ptr, ctx);
2131  CHK_(ptr != nullptr);
2132  continue;
2133  }
2134  } // switch
2135  } // while
2136 success:
2137  return ptr;
2138 failure:
2139  ptr = nullptr;
2140  goto success;
2141 #undef CHK_
2142 }
2143 
2144 ::PROTOBUF_NAMESPACE_ID::uint8* LinearArgumentProto::_InternalSerialize(
2145  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2146  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearArgumentProto)
2147  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2148  (void) cached_has_bits;
2149 
2150  // .operations_research.sat.LinearExpressionProto target = 1;
2151  if (this->_internal_has_target()) {
2152  target = stream->EnsureSpace(target);
2153  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2154  InternalWriteMessage(
2155  1, _Internal::target(this), target, stream);
2156  }
2157 
2158  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
2159  for (unsigned int i = 0,
2160  n = static_cast<unsigned int>(this->_internal_exprs_size()); i < n; i++) {
2161  target = stream->EnsureSpace(target);
2162  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2163  InternalWriteMessage(2, this->_internal_exprs(i), target, stream);
2164  }
2165 
2166  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2167  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2168  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2169  }
2170  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearArgumentProto)
2171  return target;
2172 }
2173 
2175 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearArgumentProto)
2176  size_t total_size = 0;
2177 
2178  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2179  // Prevent compiler warnings about cached_has_bits being unused
2180  (void) cached_has_bits;
2181 
2182  // repeated .operations_research.sat.LinearExpressionProto exprs = 2;
2183  total_size += 1UL * this->_internal_exprs_size();
2184  for (const auto& msg : this->exprs_) {
2185  total_size +=
2186  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
2187  }
2188 
2189  // .operations_research.sat.LinearExpressionProto target = 1;
2190  if (this->_internal_has_target()) {
2191  total_size += 1 +
2192  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
2193  *target_);
2194  }
2195 
2196  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2197  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2198  _internal_metadata_, total_size, &_cached_size_);
2199  }
2200  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2201  SetCachedSize(cached_size);
2202  return total_size;
2203 }
2204 
2205 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LinearArgumentProto::_class_data_ = {
2206  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
2207  LinearArgumentProto::MergeImpl
2208 };
2209 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LinearArgumentProto::GetClassData() const { return &_class_data_; }
2210 
2211 void LinearArgumentProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
2212  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
2213  static_cast<LinearArgumentProto *>(to)->MergeFrom(
2214  static_cast<const LinearArgumentProto &>(from));
2215 }
2216 
2217 
2219 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearArgumentProto)
2220  GOOGLE_DCHECK_NE(&from, this);
2221  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2222  (void) cached_has_bits;
2223 
2224  exprs_.MergeFrom(from.exprs_);
2225  if (from._internal_has_target()) {
2226  _internal_mutable_target()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_target());
2227  }
2228  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2229 }
2230 
2232 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearArgumentProto)
2233  if (&from == this) return;
2234  Clear();
2235  MergeFrom(from);
2236 }
2237 
2239  return true;
2240 }
2241 
2242 void LinearArgumentProto::InternalSwap(LinearArgumentProto* other) {
2243  using std::swap;
2244  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2245  exprs_.InternalSwap(&other->exprs_);
2246  swap(target_, other->target_);
2247 }
2248 
2249 ::PROTOBUF_NAMESPACE_ID::Metadata LinearArgumentProto::GetMetadata() const {
2250  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
2253 }
2254 
2255 // ===================================================================
2256 
2258  public:
2259 };
2260 
2261 AllDifferentConstraintProto::AllDifferentConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
2262  bool is_message_owned)
2263  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
2264  vars_(arena) {
2265  SharedCtor();
2266  if (!is_message_owned) {
2267  RegisterArenaDtor(arena);
2268  }
2269  // @@protoc_insertion_point(arena_constructor:operations_research.sat.AllDifferentConstraintProto)
2270 }
2272  : ::PROTOBUF_NAMESPACE_ID::Message(),
2273  vars_(from.vars_) {
2274  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2275  // @@protoc_insertion_point(copy_constructor:operations_research.sat.AllDifferentConstraintProto)
2276 }
2277 
2278 inline void AllDifferentConstraintProto::SharedCtor() {
2279 }
2280 
2282  // @@protoc_insertion_point(destructor:operations_research.sat.AllDifferentConstraintProto)
2283  if (GetArenaForAllocation() != nullptr) return;
2284  SharedDtor();
2285  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2286 }
2287 
2288 inline void AllDifferentConstraintProto::SharedDtor() {
2289  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
2290 }
2291 
2292 void AllDifferentConstraintProto::ArenaDtor(void* object) {
2293  AllDifferentConstraintProto* _this = reinterpret_cast< AllDifferentConstraintProto* >(object);
2294  (void)_this;
2295 }
2296 void AllDifferentConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2297 }
2298 void AllDifferentConstraintProto::SetCachedSize(int size) const {
2299  _cached_size_.Set(size);
2300 }
2301 
2303 // @@protoc_insertion_point(message_clear_start:operations_research.sat.AllDifferentConstraintProto)
2304  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2305  // Prevent compiler warnings about cached_has_bits being unused
2306  (void) cached_has_bits;
2307 
2308  vars_.Clear();
2309  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2310 }
2311 
2312 const char* AllDifferentConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2313 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2314  while (!ctx->Done(&ptr)) {
2315  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
2316  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2317  switch (tag >> 3) {
2318  // repeated int32 vars = 1;
2319  case 1:
2320  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2321  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2322  CHK_(ptr);
2323  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
2324  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2325  CHK_(ptr);
2326  } else goto handle_unusual;
2327  continue;
2328  default: {
2329  handle_unusual:
2330  if ((tag == 0) || ((tag & 7) == 4)) {
2331  CHK_(ptr);
2332  ctx->SetLastTag(tag);
2333  goto success;
2334  }
2335  ptr = UnknownFieldParse(tag,
2336  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2337  ptr, ctx);
2338  CHK_(ptr != nullptr);
2339  continue;
2340  }
2341  } // switch
2342  } // while
2343 success:
2344  return ptr;
2345 failure:
2346  ptr = nullptr;
2347  goto success;
2348 #undef CHK_
2349 }
2350 
2351 ::PROTOBUF_NAMESPACE_ID::uint8* AllDifferentConstraintProto::_InternalSerialize(
2352  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2353  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.AllDifferentConstraintProto)
2354  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2355  (void) cached_has_bits;
2356 
2357  // repeated int32 vars = 1;
2358  {
2359  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2360  if (byte_size > 0) {
2361  target = stream->WriteInt32Packed(
2362  1, _internal_vars(), byte_size, target);
2363  }
2364  }
2365 
2366  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2367  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2368  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2369  }
2370  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.AllDifferentConstraintProto)
2371  return target;
2372 }
2373 
2375 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.AllDifferentConstraintProto)
2376  size_t total_size = 0;
2377 
2378  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2379  // Prevent compiler warnings about cached_has_bits being unused
2380  (void) cached_has_bits;
2381 
2382  // repeated int32 vars = 1;
2383  {
2384  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2385  Int32Size(this->vars_);
2386  if (data_size > 0) {
2387  total_size += 1 +
2388  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2389  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2390  }
2391  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2392  _vars_cached_byte_size_.store(cached_size,
2393  std::memory_order_relaxed);
2394  total_size += data_size;
2395  }
2396 
2397  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2398  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2399  _internal_metadata_, total_size, &_cached_size_);
2400  }
2401  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2402  SetCachedSize(cached_size);
2403  return total_size;
2404 }
2405 
2406 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AllDifferentConstraintProto::_class_data_ = {
2407  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
2408  AllDifferentConstraintProto::MergeImpl
2409 };
2410 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AllDifferentConstraintProto::GetClassData() const { return &_class_data_; }
2411 
2412 void AllDifferentConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
2413  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
2414  static_cast<AllDifferentConstraintProto *>(to)->MergeFrom(
2415  static_cast<const AllDifferentConstraintProto &>(from));
2416 }
2417 
2418 
2420 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.AllDifferentConstraintProto)
2421  GOOGLE_DCHECK_NE(&from, this);
2422  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2423  (void) cached_has_bits;
2424 
2425  vars_.MergeFrom(from.vars_);
2426  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2427 }
2428 
2430 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.AllDifferentConstraintProto)
2431  if (&from == this) return;
2432  Clear();
2433  MergeFrom(from);
2434 }
2435 
2437  return true;
2438 }
2439 
2440 void AllDifferentConstraintProto::InternalSwap(AllDifferentConstraintProto* other) {
2441  using std::swap;
2442  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2443  vars_.InternalSwap(&other->vars_);
2444 }
2445 
2446 ::PROTOBUF_NAMESPACE_ID::Metadata AllDifferentConstraintProto::GetMetadata() const {
2447  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
2450 }
2451 
2452 // ===================================================================
2453 
2455  public:
2456 };
2457 
2458 LinearConstraintProto::LinearConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
2459  bool is_message_owned)
2460  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
2461  vars_(arena),
2462  coeffs_(arena),
2463  domain_(arena) {
2464  SharedCtor();
2465  if (!is_message_owned) {
2466  RegisterArenaDtor(arena);
2467  }
2468  // @@protoc_insertion_point(arena_constructor:operations_research.sat.LinearConstraintProto)
2469 }
2471  : ::PROTOBUF_NAMESPACE_ID::Message(),
2472  vars_(from.vars_),
2473  coeffs_(from.coeffs_),
2474  domain_(from.domain_) {
2475  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2476  // @@protoc_insertion_point(copy_constructor:operations_research.sat.LinearConstraintProto)
2477 }
2478 
2479 inline void LinearConstraintProto::SharedCtor() {
2480 }
2481 
2483  // @@protoc_insertion_point(destructor:operations_research.sat.LinearConstraintProto)
2484  if (GetArenaForAllocation() != nullptr) return;
2485  SharedDtor();
2486  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2487 }
2488 
2489 inline void LinearConstraintProto::SharedDtor() {
2490  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
2491 }
2492 
2493 void LinearConstraintProto::ArenaDtor(void* object) {
2494  LinearConstraintProto* _this = reinterpret_cast< LinearConstraintProto* >(object);
2495  (void)_this;
2496 }
2497 void LinearConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2498 }
2499 void LinearConstraintProto::SetCachedSize(int size) const {
2500  _cached_size_.Set(size);
2501 }
2502 
2504 // @@protoc_insertion_point(message_clear_start:operations_research.sat.LinearConstraintProto)
2505  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2506  // Prevent compiler warnings about cached_has_bits being unused
2507  (void) cached_has_bits;
2508 
2509  vars_.Clear();
2510  coeffs_.Clear();
2511  domain_.Clear();
2512  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2513 }
2514 
2515 const char* LinearConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2516 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2517  while (!ctx->Done(&ptr)) {
2518  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
2519  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2520  switch (tag >> 3) {
2521  // repeated int32 vars = 1;
2522  case 1:
2523  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
2524  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2525  CHK_(ptr);
2526  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
2527  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2528  CHK_(ptr);
2529  } else goto handle_unusual;
2530  continue;
2531  // repeated int64 coeffs = 2;
2532  case 2:
2533  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
2534  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
2535  CHK_(ptr);
2536  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
2537  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2538  CHK_(ptr);
2539  } else goto handle_unusual;
2540  continue;
2541  // repeated int64 domain = 3;
2542  case 3:
2543  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
2544  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
2545  CHK_(ptr);
2546  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
2547  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2548  CHK_(ptr);
2549  } else goto handle_unusual;
2550  continue;
2551  default: {
2552  handle_unusual:
2553  if ((tag == 0) || ((tag & 7) == 4)) {
2554  CHK_(ptr);
2555  ctx->SetLastTag(tag);
2556  goto success;
2557  }
2558  ptr = UnknownFieldParse(tag,
2559  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2560  ptr, ctx);
2561  CHK_(ptr != nullptr);
2562  continue;
2563  }
2564  } // switch
2565  } // while
2566 success:
2567  return ptr;
2568 failure:
2569  ptr = nullptr;
2570  goto success;
2571 #undef CHK_
2572 }
2573 
2574 ::PROTOBUF_NAMESPACE_ID::uint8* LinearConstraintProto::_InternalSerialize(
2575  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2576  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.LinearConstraintProto)
2577  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2578  (void) cached_has_bits;
2579 
2580  // repeated int32 vars = 1;
2581  {
2582  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2583  if (byte_size > 0) {
2584  target = stream->WriteInt32Packed(
2585  1, _internal_vars(), byte_size, target);
2586  }
2587  }
2588 
2589  // repeated int64 coeffs = 2;
2590  {
2591  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
2592  if (byte_size > 0) {
2593  target = stream->WriteInt64Packed(
2594  2, _internal_coeffs(), byte_size, target);
2595  }
2596  }
2597 
2598  // repeated int64 domain = 3;
2599  {
2600  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
2601  if (byte_size > 0) {
2602  target = stream->WriteInt64Packed(
2603  3, _internal_domain(), byte_size, target);
2604  }
2605  }
2606 
2607  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2608  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2609  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2610  }
2611  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.LinearConstraintProto)
2612  return target;
2613 }
2614 
2616 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.LinearConstraintProto)
2617  size_t total_size = 0;
2618 
2619  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2620  // Prevent compiler warnings about cached_has_bits being unused
2621  (void) cached_has_bits;
2622 
2623  // repeated int32 vars = 1;
2624  {
2625  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2626  Int32Size(this->vars_);
2627  if (data_size > 0) {
2628  total_size += 1 +
2629  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2630  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2631  }
2632  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2633  _vars_cached_byte_size_.store(cached_size,
2634  std::memory_order_relaxed);
2635  total_size += data_size;
2636  }
2637 
2638  // repeated int64 coeffs = 2;
2639  {
2640  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2641  Int64Size(this->coeffs_);
2642  if (data_size > 0) {
2643  total_size += 1 +
2644  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2645  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2646  }
2647  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2648  _coeffs_cached_byte_size_.store(cached_size,
2649  std::memory_order_relaxed);
2650  total_size += data_size;
2651  }
2652 
2653  // repeated int64 domain = 3;
2654  {
2655  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2656  Int64Size(this->domain_);
2657  if (data_size > 0) {
2658  total_size += 1 +
2659  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2660  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2661  }
2662  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2663  _domain_cached_byte_size_.store(cached_size,
2664  std::memory_order_relaxed);
2665  total_size += data_size;
2666  }
2667 
2668  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2669  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2670  _internal_metadata_, total_size, &_cached_size_);
2671  }
2672  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2673  SetCachedSize(cached_size);
2674  return total_size;
2675 }
2676 
2677 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData LinearConstraintProto::_class_data_ = {
2678  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
2679  LinearConstraintProto::MergeImpl
2680 };
2681 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*LinearConstraintProto::GetClassData() const { return &_class_data_; }
2682 
2683 void LinearConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
2684  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
2685  static_cast<LinearConstraintProto *>(to)->MergeFrom(
2686  static_cast<const LinearConstraintProto &>(from));
2687 }
2688 
2689 
2691 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.LinearConstraintProto)
2692  GOOGLE_DCHECK_NE(&from, this);
2693  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2694  (void) cached_has_bits;
2695 
2696  vars_.MergeFrom(from.vars_);
2697  coeffs_.MergeFrom(from.coeffs_);
2698  domain_.MergeFrom(from.domain_);
2699  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2700 }
2701 
2703 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.LinearConstraintProto)
2704  if (&from == this) return;
2705  Clear();
2706  MergeFrom(from);
2707 }
2708 
2710  return true;
2711 }
2712 
2713 void LinearConstraintProto::InternalSwap(LinearConstraintProto* other) {
2714  using std::swap;
2715  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2716  vars_.InternalSwap(&other->vars_);
2717  coeffs_.InternalSwap(&other->coeffs_);
2718  domain_.InternalSwap(&other->domain_);
2719 }
2720 
2721 ::PROTOBUF_NAMESPACE_ID::Metadata LinearConstraintProto::GetMetadata() const {
2722  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
2725 }
2726 
2727 // ===================================================================
2728 
2730  public:
2731 };
2732 
2733 ElementConstraintProto::ElementConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
2734  bool is_message_owned)
2735  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
2736  vars_(arena) {
2737  SharedCtor();
2738  if (!is_message_owned) {
2739  RegisterArenaDtor(arena);
2740  }
2741  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ElementConstraintProto)
2742 }
2744  : ::PROTOBUF_NAMESPACE_ID::Message(),
2745  vars_(from.vars_) {
2746  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2747  ::memcpy(&index_, &from.index_,
2748  static_cast<size_t>(reinterpret_cast<char*>(&target_) -
2749  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2750  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ElementConstraintProto)
2751 }
2752 
2753 inline void ElementConstraintProto::SharedCtor() {
2754 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
2755  reinterpret_cast<char*>(&index_) - reinterpret_cast<char*>(this)),
2756  0, static_cast<size_t>(reinterpret_cast<char*>(&target_) -
2757  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2758 }
2759 
2761  // @@protoc_insertion_point(destructor:operations_research.sat.ElementConstraintProto)
2762  if (GetArenaForAllocation() != nullptr) return;
2763  SharedDtor();
2764  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2765 }
2766 
2767 inline void ElementConstraintProto::SharedDtor() {
2768  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
2769 }
2770 
2771 void ElementConstraintProto::ArenaDtor(void* object) {
2772  ElementConstraintProto* _this = reinterpret_cast< ElementConstraintProto* >(object);
2773  (void)_this;
2774 }
2775 void ElementConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
2776 }
2777 void ElementConstraintProto::SetCachedSize(int size) const {
2778  _cached_size_.Set(size);
2779 }
2780 
2782 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ElementConstraintProto)
2783  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2784  // Prevent compiler warnings about cached_has_bits being unused
2785  (void) cached_has_bits;
2786 
2787  vars_.Clear();
2788  ::memset(&index_, 0, static_cast<size_t>(
2789  reinterpret_cast<char*>(&target_) -
2790  reinterpret_cast<char*>(&index_)) + sizeof(target_));
2791  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
2792 }
2793 
2794 const char* ElementConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
2795 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
2796  while (!ctx->Done(&ptr)) {
2797  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
2798  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
2799  switch (tag >> 3) {
2800  // int32 index = 1;
2801  case 1:
2802  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
2803  index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2804  CHK_(ptr);
2805  } else goto handle_unusual;
2806  continue;
2807  // int32 target = 2;
2808  case 2:
2809  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
2810  target_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
2811  CHK_(ptr);
2812  } else goto handle_unusual;
2813  continue;
2814  // repeated int32 vars = 3;
2815  case 3:
2816  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
2817  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
2818  CHK_(ptr);
2819  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
2820  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
2821  CHK_(ptr);
2822  } else goto handle_unusual;
2823  continue;
2824  default: {
2825  handle_unusual:
2826  if ((tag == 0) || ((tag & 7) == 4)) {
2827  CHK_(ptr);
2828  ctx->SetLastTag(tag);
2829  goto success;
2830  }
2831  ptr = UnknownFieldParse(tag,
2832  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
2833  ptr, ctx);
2834  CHK_(ptr != nullptr);
2835  continue;
2836  }
2837  } // switch
2838  } // while
2839 success:
2840  return ptr;
2841 failure:
2842  ptr = nullptr;
2843  goto success;
2844 #undef CHK_
2845 }
2846 
2847 ::PROTOBUF_NAMESPACE_ID::uint8* ElementConstraintProto::_InternalSerialize(
2848  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
2849  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ElementConstraintProto)
2850  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2851  (void) cached_has_bits;
2852 
2853  // int32 index = 1;
2854  if (this->_internal_index() != 0) {
2855  target = stream->EnsureSpace(target);
2856  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_index(), target);
2857  }
2858 
2859  // int32 target = 2;
2860  if (this->_internal_target() != 0) {
2861  target = stream->EnsureSpace(target);
2862  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_target(), target);
2863  }
2864 
2865  // repeated int32 vars = 3;
2866  {
2867  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
2868  if (byte_size > 0) {
2869  target = stream->WriteInt32Packed(
2870  3, _internal_vars(), byte_size, target);
2871  }
2872  }
2873 
2874  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2875  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
2876  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
2877  }
2878  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ElementConstraintProto)
2879  return target;
2880 }
2881 
2883 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ElementConstraintProto)
2884  size_t total_size = 0;
2885 
2886  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2887  // Prevent compiler warnings about cached_has_bits being unused
2888  (void) cached_has_bits;
2889 
2890  // repeated int32 vars = 3;
2891  {
2892  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
2893  Int32Size(this->vars_);
2894  if (data_size > 0) {
2895  total_size += 1 +
2896  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2897  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
2898  }
2899  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
2900  _vars_cached_byte_size_.store(cached_size,
2901  std::memory_order_relaxed);
2902  total_size += data_size;
2903  }
2904 
2905  // int32 index = 1;
2906  if (this->_internal_index() != 0) {
2907  total_size += 1 +
2908  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2909  this->_internal_index());
2910  }
2911 
2912  // int32 target = 2;
2913  if (this->_internal_target() != 0) {
2914  total_size += 1 +
2915  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
2916  this->_internal_target());
2917  }
2918 
2919  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
2920  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
2921  _internal_metadata_, total_size, &_cached_size_);
2922  }
2923  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
2924  SetCachedSize(cached_size);
2925  return total_size;
2926 }
2927 
2928 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ElementConstraintProto::_class_data_ = {
2929  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
2930  ElementConstraintProto::MergeImpl
2931 };
2932 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ElementConstraintProto::GetClassData() const { return &_class_data_; }
2933 
2934 void ElementConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
2935  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
2936  static_cast<ElementConstraintProto *>(to)->MergeFrom(
2937  static_cast<const ElementConstraintProto &>(from));
2938 }
2939 
2940 
2942 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ElementConstraintProto)
2943  GOOGLE_DCHECK_NE(&from, this);
2944  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
2945  (void) cached_has_bits;
2946 
2947  vars_.MergeFrom(from.vars_);
2948  if (from._internal_index() != 0) {
2949  _internal_set_index(from._internal_index());
2950  }
2951  if (from._internal_target() != 0) {
2952  _internal_set_target(from._internal_target());
2953  }
2954  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
2955 }
2956 
2958 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ElementConstraintProto)
2959  if (&from == this) return;
2960  Clear();
2961  MergeFrom(from);
2962 }
2963 
2965  return true;
2966 }
2967 
2968 void ElementConstraintProto::InternalSwap(ElementConstraintProto* other) {
2969  using std::swap;
2970  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
2971  vars_.InternalSwap(&other->vars_);
2972  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
2973  PROTOBUF_FIELD_OFFSET(ElementConstraintProto, target_)
2974  + sizeof(ElementConstraintProto::target_)
2975  - PROTOBUF_FIELD_OFFSET(ElementConstraintProto, index_)>(
2976  reinterpret_cast<char*>(&index_),
2977  reinterpret_cast<char*>(&other->index_));
2978 }
2979 
2980 ::PROTOBUF_NAMESPACE_ID::Metadata ElementConstraintProto::GetMetadata() const {
2981  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
2984 }
2985 
2986 // ===================================================================
2987 
2989  public:
2990  static const ::operations_research::sat::LinearExpressionProto& start_view(const IntervalConstraintProto* msg);
2991  static const ::operations_research::sat::LinearExpressionProto& end_view(const IntervalConstraintProto* msg);
2992  static const ::operations_research::sat::LinearExpressionProto& size_view(const IntervalConstraintProto* msg);
2993 };
2994 
2995 const ::operations_research::sat::LinearExpressionProto&
2997  return *msg->start_view_;
2998 }
2999 const ::operations_research::sat::LinearExpressionProto&
3001  return *msg->end_view_;
3002 }
3003 const ::operations_research::sat::LinearExpressionProto&
3005  return *msg->size_view_;
3006 }
3007 IntervalConstraintProto::IntervalConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
3008  bool is_message_owned)
3009  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
3010  SharedCtor();
3011  if (!is_message_owned) {
3012  RegisterArenaDtor(arena);
3013  }
3014  // @@protoc_insertion_point(arena_constructor:operations_research.sat.IntervalConstraintProto)
3015 }
3017  : ::PROTOBUF_NAMESPACE_ID::Message() {
3018  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3019  if (from._internal_has_start_view()) {
3020  start_view_ = new ::operations_research::sat::LinearExpressionProto(*from.start_view_);
3021  } else {
3022  start_view_ = nullptr;
3023  }
3024  if (from._internal_has_end_view()) {
3025  end_view_ = new ::operations_research::sat::LinearExpressionProto(*from.end_view_);
3026  } else {
3027  end_view_ = nullptr;
3028  }
3029  if (from._internal_has_size_view()) {
3030  size_view_ = new ::operations_research::sat::LinearExpressionProto(*from.size_view_);
3031  } else {
3032  size_view_ = nullptr;
3033  }
3034  ::memcpy(&start_, &from.start_,
3035  static_cast<size_t>(reinterpret_cast<char*>(&size_) -
3036  reinterpret_cast<char*>(&start_)) + sizeof(size_));
3037  // @@protoc_insertion_point(copy_constructor:operations_research.sat.IntervalConstraintProto)
3038 }
3039 
3040 inline void IntervalConstraintProto::SharedCtor() {
3041 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
3042  reinterpret_cast<char*>(&start_view_) - reinterpret_cast<char*>(this)),
3043  0, static_cast<size_t>(reinterpret_cast<char*>(&size_) -
3044  reinterpret_cast<char*>(&start_view_)) + sizeof(size_));
3045 }
3046 
3048  // @@protoc_insertion_point(destructor:operations_research.sat.IntervalConstraintProto)
3049  if (GetArenaForAllocation() != nullptr) return;
3050  SharedDtor();
3051  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3052 }
3053 
3054 inline void IntervalConstraintProto::SharedDtor() {
3055  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
3056  if (this != internal_default_instance()) delete start_view_;
3057  if (this != internal_default_instance()) delete end_view_;
3058  if (this != internal_default_instance()) delete size_view_;
3059 }
3060 
3061 void IntervalConstraintProto::ArenaDtor(void* object) {
3062  IntervalConstraintProto* _this = reinterpret_cast< IntervalConstraintProto* >(object);
3063  (void)_this;
3064 }
3065 void IntervalConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3066 }
3067 void IntervalConstraintProto::SetCachedSize(int size) const {
3068  _cached_size_.Set(size);
3069 }
3070 
3072 // @@protoc_insertion_point(message_clear_start:operations_research.sat.IntervalConstraintProto)
3073  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3074  // Prevent compiler warnings about cached_has_bits being unused
3075  (void) cached_has_bits;
3076 
3077  if (GetArenaForAllocation() == nullptr && start_view_ != nullptr) {
3078  delete start_view_;
3079  }
3080  start_view_ = nullptr;
3081  if (GetArenaForAllocation() == nullptr && end_view_ != nullptr) {
3082  delete end_view_;
3083  }
3084  end_view_ = nullptr;
3085  if (GetArenaForAllocation() == nullptr && size_view_ != nullptr) {
3086  delete size_view_;
3087  }
3088  size_view_ = nullptr;
3089  ::memset(&start_, 0, static_cast<size_t>(
3090  reinterpret_cast<char*>(&size_) -
3091  reinterpret_cast<char*>(&start_)) + sizeof(size_));
3092  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3093 }
3094 
3095 const char* IntervalConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3096 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3097  while (!ctx->Done(&ptr)) {
3098  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
3099  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3100  switch (tag >> 3) {
3101  // int32 start = 1;
3102  case 1:
3103  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
3104  start_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3105  CHK_(ptr);
3106  } else goto handle_unusual;
3107  continue;
3108  // int32 end = 2;
3109  case 2:
3110  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
3111  end_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3112  CHK_(ptr);
3113  } else goto handle_unusual;
3114  continue;
3115  // int32 size = 3;
3116  case 3:
3117  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
3118  size_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3119  CHK_(ptr);
3120  } else goto handle_unusual;
3121  continue;
3122  // .operations_research.sat.LinearExpressionProto start_view = 4;
3123  case 4:
3124  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
3125  ptr = ctx->ParseMessage(_internal_mutable_start_view(), ptr);
3126  CHK_(ptr);
3127  } else goto handle_unusual;
3128  continue;
3129  // .operations_research.sat.LinearExpressionProto end_view = 5;
3130  case 5:
3131  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
3132  ptr = ctx->ParseMessage(_internal_mutable_end_view(), ptr);
3133  CHK_(ptr);
3134  } else goto handle_unusual;
3135  continue;
3136  // .operations_research.sat.LinearExpressionProto size_view = 6;
3137  case 6:
3138  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
3139  ptr = ctx->ParseMessage(_internal_mutable_size_view(), ptr);
3140  CHK_(ptr);
3141  } else goto handle_unusual;
3142  continue;
3143  default: {
3144  handle_unusual:
3145  if ((tag == 0) || ((tag & 7) == 4)) {
3146  CHK_(ptr);
3147  ctx->SetLastTag(tag);
3148  goto success;
3149  }
3150  ptr = UnknownFieldParse(tag,
3151  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3152  ptr, ctx);
3153  CHK_(ptr != nullptr);
3154  continue;
3155  }
3156  } // switch
3157  } // while
3158 success:
3159  return ptr;
3160 failure:
3161  ptr = nullptr;
3162  goto success;
3163 #undef CHK_
3164 }
3165 
3166 ::PROTOBUF_NAMESPACE_ID::uint8* IntervalConstraintProto::_InternalSerialize(
3167  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3168  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.IntervalConstraintProto)
3169  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3170  (void) cached_has_bits;
3171 
3172  // int32 start = 1;
3173  if (this->_internal_start() != 0) {
3174  target = stream->EnsureSpace(target);
3175  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_start(), target);
3176  }
3177 
3178  // int32 end = 2;
3179  if (this->_internal_end() != 0) {
3180  target = stream->EnsureSpace(target);
3181  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_end(), target);
3182  }
3183 
3184  // int32 size = 3;
3185  if (this->_internal_size() != 0) {
3186  target = stream->EnsureSpace(target);
3187  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_size(), target);
3188  }
3189 
3190  // .operations_research.sat.LinearExpressionProto start_view = 4;
3191  if (this->_internal_has_start_view()) {
3192  target = stream->EnsureSpace(target);
3193  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3194  InternalWriteMessage(
3195  4, _Internal::start_view(this), target, stream);
3196  }
3197 
3198  // .operations_research.sat.LinearExpressionProto end_view = 5;
3199  if (this->_internal_has_end_view()) {
3200  target = stream->EnsureSpace(target);
3201  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3202  InternalWriteMessage(
3203  5, _Internal::end_view(this), target, stream);
3204  }
3205 
3206  // .operations_research.sat.LinearExpressionProto size_view = 6;
3207  if (this->_internal_has_size_view()) {
3208  target = stream->EnsureSpace(target);
3209  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3210  InternalWriteMessage(
3211  6, _Internal::size_view(this), target, stream);
3212  }
3213 
3214  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3215  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3216  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3217  }
3218  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.IntervalConstraintProto)
3219  return target;
3220 }
3221 
3223 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.IntervalConstraintProto)
3224  size_t total_size = 0;
3225 
3226  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3227  // Prevent compiler warnings about cached_has_bits being unused
3228  (void) cached_has_bits;
3229 
3230  // .operations_research.sat.LinearExpressionProto start_view = 4;
3231  if (this->_internal_has_start_view()) {
3232  total_size += 1 +
3233  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3234  *start_view_);
3235  }
3236 
3237  // .operations_research.sat.LinearExpressionProto end_view = 5;
3238  if (this->_internal_has_end_view()) {
3239  total_size += 1 +
3240  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3241  *end_view_);
3242  }
3243 
3244  // .operations_research.sat.LinearExpressionProto size_view = 6;
3245  if (this->_internal_has_size_view()) {
3246  total_size += 1 +
3247  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
3248  *size_view_);
3249  }
3250 
3251  // int32 start = 1;
3252  if (this->_internal_start() != 0) {
3253  total_size += 1 +
3254  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3255  this->_internal_start());
3256  }
3257 
3258  // int32 end = 2;
3259  if (this->_internal_end() != 0) {
3260  total_size += 1 +
3261  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3262  this->_internal_end());
3263  }
3264 
3265  // int32 size = 3;
3266  if (this->_internal_size() != 0) {
3267  total_size += 1 +
3268  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3269  this->_internal_size());
3270  }
3271 
3272  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3273  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3274  _internal_metadata_, total_size, &_cached_size_);
3275  }
3276  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3277  SetCachedSize(cached_size);
3278  return total_size;
3279 }
3280 
3281 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData IntervalConstraintProto::_class_data_ = {
3282  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
3283  IntervalConstraintProto::MergeImpl
3284 };
3285 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*IntervalConstraintProto::GetClassData() const { return &_class_data_; }
3286 
3287 void IntervalConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
3288  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
3289  static_cast<IntervalConstraintProto *>(to)->MergeFrom(
3290  static_cast<const IntervalConstraintProto &>(from));
3291 }
3292 
3293 
3295 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.IntervalConstraintProto)
3296  GOOGLE_DCHECK_NE(&from, this);
3297  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3298  (void) cached_has_bits;
3299 
3300  if (from._internal_has_start_view()) {
3301  _internal_mutable_start_view()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_start_view());
3302  }
3303  if (from._internal_has_end_view()) {
3304  _internal_mutable_end_view()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_end_view());
3305  }
3306  if (from._internal_has_size_view()) {
3307  _internal_mutable_size_view()->::operations_research::sat::LinearExpressionProto::MergeFrom(from._internal_size_view());
3308  }
3309  if (from._internal_start() != 0) {
3310  _internal_set_start(from._internal_start());
3311  }
3312  if (from._internal_end() != 0) {
3313  _internal_set_end(from._internal_end());
3314  }
3315  if (from._internal_size() != 0) {
3316  _internal_set_size(from._internal_size());
3317  }
3318  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3319 }
3320 
3322 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.IntervalConstraintProto)
3323  if (&from == this) return;
3324  Clear();
3325  MergeFrom(from);
3326 }
3327 
3329  return true;
3330 }
3331 
3332 void IntervalConstraintProto::InternalSwap(IntervalConstraintProto* other) {
3333  using std::swap;
3334  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
3335  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
3336  PROTOBUF_FIELD_OFFSET(IntervalConstraintProto, size_)
3337  + sizeof(IntervalConstraintProto::size_)
3338  - PROTOBUF_FIELD_OFFSET(IntervalConstraintProto, start_view_)>(
3339  reinterpret_cast<char*>(&start_view_),
3340  reinterpret_cast<char*>(&other->start_view_));
3341 }
3342 
3343 ::PROTOBUF_NAMESPACE_ID::Metadata IntervalConstraintProto::GetMetadata() const {
3344  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
3347 }
3348 
3349 // ===================================================================
3350 
3352  public:
3353 };
3354 
3355 NoOverlapConstraintProto::NoOverlapConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
3356  bool is_message_owned)
3357  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
3358  intervals_(arena) {
3359  SharedCtor();
3360  if (!is_message_owned) {
3361  RegisterArenaDtor(arena);
3362  }
3363  // @@protoc_insertion_point(arena_constructor:operations_research.sat.NoOverlapConstraintProto)
3364 }
3366  : ::PROTOBUF_NAMESPACE_ID::Message(),
3367  intervals_(from.intervals_) {
3368  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3369  // @@protoc_insertion_point(copy_constructor:operations_research.sat.NoOverlapConstraintProto)
3370 }
3371 
3372 inline void NoOverlapConstraintProto::SharedCtor() {
3373 }
3374 
3376  // @@protoc_insertion_point(destructor:operations_research.sat.NoOverlapConstraintProto)
3377  if (GetArenaForAllocation() != nullptr) return;
3378  SharedDtor();
3379  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3380 }
3381 
3382 inline void NoOverlapConstraintProto::SharedDtor() {
3383  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
3384 }
3385 
3386 void NoOverlapConstraintProto::ArenaDtor(void* object) {
3387  NoOverlapConstraintProto* _this = reinterpret_cast< NoOverlapConstraintProto* >(object);
3388  (void)_this;
3389 }
3390 void NoOverlapConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3391 }
3392 void NoOverlapConstraintProto::SetCachedSize(int size) const {
3393  _cached_size_.Set(size);
3394 }
3395 
3397 // @@protoc_insertion_point(message_clear_start:operations_research.sat.NoOverlapConstraintProto)
3398  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3399  // Prevent compiler warnings about cached_has_bits being unused
3400  (void) cached_has_bits;
3401 
3402  intervals_.Clear();
3403  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3404 }
3405 
3406 const char* NoOverlapConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3407 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3408  while (!ctx->Done(&ptr)) {
3409  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
3410  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3411  switch (tag >> 3) {
3412  // repeated int32 intervals = 1;
3413  case 1:
3414  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
3415  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_intervals(), ptr, ctx);
3416  CHK_(ptr);
3417  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
3418  _internal_add_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3419  CHK_(ptr);
3420  } else goto handle_unusual;
3421  continue;
3422  default: {
3423  handle_unusual:
3424  if ((tag == 0) || ((tag & 7) == 4)) {
3425  CHK_(ptr);
3426  ctx->SetLastTag(tag);
3427  goto success;
3428  }
3429  ptr = UnknownFieldParse(tag,
3430  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3431  ptr, ctx);
3432  CHK_(ptr != nullptr);
3433  continue;
3434  }
3435  } // switch
3436  } // while
3437 success:
3438  return ptr;
3439 failure:
3440  ptr = nullptr;
3441  goto success;
3442 #undef CHK_
3443 }
3444 
3445 ::PROTOBUF_NAMESPACE_ID::uint8* NoOverlapConstraintProto::_InternalSerialize(
3446  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3447  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.NoOverlapConstraintProto)
3448  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3449  (void) cached_has_bits;
3450 
3451  // repeated int32 intervals = 1;
3452  {
3453  int byte_size = _intervals_cached_byte_size_.load(std::memory_order_relaxed);
3454  if (byte_size > 0) {
3455  target = stream->WriteInt32Packed(
3456  1, _internal_intervals(), byte_size, target);
3457  }
3458  }
3459 
3460  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3461  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3462  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3463  }
3464  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.NoOverlapConstraintProto)
3465  return target;
3466 }
3467 
3469 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.NoOverlapConstraintProto)
3470  size_t total_size = 0;
3471 
3472  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3473  // Prevent compiler warnings about cached_has_bits being unused
3474  (void) cached_has_bits;
3475 
3476  // repeated int32 intervals = 1;
3477  {
3478  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3479  Int32Size(this->intervals_);
3480  if (data_size > 0) {
3481  total_size += 1 +
3482  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3483  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3484  }
3485  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3486  _intervals_cached_byte_size_.store(cached_size,
3487  std::memory_order_relaxed);
3488  total_size += data_size;
3489  }
3490 
3491  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3492  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3493  _internal_metadata_, total_size, &_cached_size_);
3494  }
3495  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3496  SetCachedSize(cached_size);
3497  return total_size;
3498 }
3499 
3500 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData NoOverlapConstraintProto::_class_data_ = {
3501  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
3502  NoOverlapConstraintProto::MergeImpl
3503 };
3504 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*NoOverlapConstraintProto::GetClassData() const { return &_class_data_; }
3505 
3506 void NoOverlapConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
3507  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
3508  static_cast<NoOverlapConstraintProto *>(to)->MergeFrom(
3509  static_cast<const NoOverlapConstraintProto &>(from));
3510 }
3511 
3512 
3514 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.NoOverlapConstraintProto)
3515  GOOGLE_DCHECK_NE(&from, this);
3516  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3517  (void) cached_has_bits;
3518 
3519  intervals_.MergeFrom(from.intervals_);
3520  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3521 }
3522 
3524 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.NoOverlapConstraintProto)
3525  if (&from == this) return;
3526  Clear();
3527  MergeFrom(from);
3528 }
3529 
3531  return true;
3532 }
3533 
3534 void NoOverlapConstraintProto::InternalSwap(NoOverlapConstraintProto* other) {
3535  using std::swap;
3536  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
3537  intervals_.InternalSwap(&other->intervals_);
3538 }
3539 
3540 ::PROTOBUF_NAMESPACE_ID::Metadata NoOverlapConstraintProto::GetMetadata() const {
3541  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
3544 }
3545 
3546 // ===================================================================
3547 
3549  public:
3550 };
3551 
3552 NoOverlap2DConstraintProto::NoOverlap2DConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
3553  bool is_message_owned)
3554  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
3555  x_intervals_(arena),
3556  y_intervals_(arena) {
3557  SharedCtor();
3558  if (!is_message_owned) {
3559  RegisterArenaDtor(arena);
3560  }
3561  // @@protoc_insertion_point(arena_constructor:operations_research.sat.NoOverlap2DConstraintProto)
3562 }
3564  : ::PROTOBUF_NAMESPACE_ID::Message(),
3565  x_intervals_(from.x_intervals_),
3566  y_intervals_(from.y_intervals_) {
3567  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3568  boxes_with_null_area_can_overlap_ = from.boxes_with_null_area_can_overlap_;
3569  // @@protoc_insertion_point(copy_constructor:operations_research.sat.NoOverlap2DConstraintProto)
3570 }
3571 
3572 inline void NoOverlap2DConstraintProto::SharedCtor() {
3573 boxes_with_null_area_can_overlap_ = false;
3574 }
3575 
3577  // @@protoc_insertion_point(destructor:operations_research.sat.NoOverlap2DConstraintProto)
3578  if (GetArenaForAllocation() != nullptr) return;
3579  SharedDtor();
3580  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3581 }
3582 
3583 inline void NoOverlap2DConstraintProto::SharedDtor() {
3584  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
3585 }
3586 
3587 void NoOverlap2DConstraintProto::ArenaDtor(void* object) {
3588  NoOverlap2DConstraintProto* _this = reinterpret_cast< NoOverlap2DConstraintProto* >(object);
3589  (void)_this;
3590 }
3591 void NoOverlap2DConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3592 }
3593 void NoOverlap2DConstraintProto::SetCachedSize(int size) const {
3594  _cached_size_.Set(size);
3595 }
3596 
3598 // @@protoc_insertion_point(message_clear_start:operations_research.sat.NoOverlap2DConstraintProto)
3599  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3600  // Prevent compiler warnings about cached_has_bits being unused
3601  (void) cached_has_bits;
3602 
3603  x_intervals_.Clear();
3604  y_intervals_.Clear();
3605  boxes_with_null_area_can_overlap_ = false;
3606  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3607 }
3608 
3609 const char* NoOverlap2DConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3610 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3611  while (!ctx->Done(&ptr)) {
3612  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
3613  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3614  switch (tag >> 3) {
3615  // repeated int32 x_intervals = 1;
3616  case 1:
3617  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
3618  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_x_intervals(), ptr, ctx);
3619  CHK_(ptr);
3620  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
3621  _internal_add_x_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3622  CHK_(ptr);
3623  } else goto handle_unusual;
3624  continue;
3625  // repeated int32 y_intervals = 2;
3626  case 2:
3627  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
3628  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_y_intervals(), ptr, ctx);
3629  CHK_(ptr);
3630  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
3631  _internal_add_y_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3632  CHK_(ptr);
3633  } else goto handle_unusual;
3634  continue;
3635  // bool boxes_with_null_area_can_overlap = 3;
3636  case 3:
3637  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
3638  boxes_with_null_area_can_overlap_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3639  CHK_(ptr);
3640  } else goto handle_unusual;
3641  continue;
3642  default: {
3643  handle_unusual:
3644  if ((tag == 0) || ((tag & 7) == 4)) {
3645  CHK_(ptr);
3646  ctx->SetLastTag(tag);
3647  goto success;
3648  }
3649  ptr = UnknownFieldParse(tag,
3650  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3651  ptr, ctx);
3652  CHK_(ptr != nullptr);
3653  continue;
3654  }
3655  } // switch
3656  } // while
3657 success:
3658  return ptr;
3659 failure:
3660  ptr = nullptr;
3661  goto success;
3662 #undef CHK_
3663 }
3664 
3665 ::PROTOBUF_NAMESPACE_ID::uint8* NoOverlap2DConstraintProto::_InternalSerialize(
3666  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3667  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.NoOverlap2DConstraintProto)
3668  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3669  (void) cached_has_bits;
3670 
3671  // repeated int32 x_intervals = 1;
3672  {
3673  int byte_size = _x_intervals_cached_byte_size_.load(std::memory_order_relaxed);
3674  if (byte_size > 0) {
3675  target = stream->WriteInt32Packed(
3676  1, _internal_x_intervals(), byte_size, target);
3677  }
3678  }
3679 
3680  // repeated int32 y_intervals = 2;
3681  {
3682  int byte_size = _y_intervals_cached_byte_size_.load(std::memory_order_relaxed);
3683  if (byte_size > 0) {
3684  target = stream->WriteInt32Packed(
3685  2, _internal_y_intervals(), byte_size, target);
3686  }
3687  }
3688 
3689  // bool boxes_with_null_area_can_overlap = 3;
3690  if (this->_internal_boxes_with_null_area_can_overlap() != 0) {
3691  target = stream->EnsureSpace(target);
3692  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_boxes_with_null_area_can_overlap(), target);
3693  }
3694 
3695  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3696  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3697  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3698  }
3699  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.NoOverlap2DConstraintProto)
3700  return target;
3701 }
3702 
3704 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.NoOverlap2DConstraintProto)
3705  size_t total_size = 0;
3706 
3707  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3708  // Prevent compiler warnings about cached_has_bits being unused
3709  (void) cached_has_bits;
3710 
3711  // repeated int32 x_intervals = 1;
3712  {
3713  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3714  Int32Size(this->x_intervals_);
3715  if (data_size > 0) {
3716  total_size += 1 +
3717  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3718  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3719  }
3720  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3721  _x_intervals_cached_byte_size_.store(cached_size,
3722  std::memory_order_relaxed);
3723  total_size += data_size;
3724  }
3725 
3726  // repeated int32 y_intervals = 2;
3727  {
3728  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3729  Int32Size(this->y_intervals_);
3730  if (data_size > 0) {
3731  total_size += 1 +
3732  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
3733  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
3734  }
3735  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
3736  _y_intervals_cached_byte_size_.store(cached_size,
3737  std::memory_order_relaxed);
3738  total_size += data_size;
3739  }
3740 
3741  // bool boxes_with_null_area_can_overlap = 3;
3742  if (this->_internal_boxes_with_null_area_can_overlap() != 0) {
3743  total_size += 1 + 1;
3744  }
3745 
3746  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3747  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
3748  _internal_metadata_, total_size, &_cached_size_);
3749  }
3750  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
3751  SetCachedSize(cached_size);
3752  return total_size;
3753 }
3754 
3755 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData NoOverlap2DConstraintProto::_class_data_ = {
3756  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
3757  NoOverlap2DConstraintProto::MergeImpl
3758 };
3759 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*NoOverlap2DConstraintProto::GetClassData() const { return &_class_data_; }
3760 
3761 void NoOverlap2DConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
3762  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
3763  static_cast<NoOverlap2DConstraintProto *>(to)->MergeFrom(
3764  static_cast<const NoOverlap2DConstraintProto &>(from));
3765 }
3766 
3767 
3769 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3770  GOOGLE_DCHECK_NE(&from, this);
3771  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3772  (void) cached_has_bits;
3773 
3774  x_intervals_.MergeFrom(from.x_intervals_);
3775  y_intervals_.MergeFrom(from.y_intervals_);
3776  if (from._internal_boxes_with_null_area_can_overlap() != 0) {
3777  _internal_set_boxes_with_null_area_can_overlap(from._internal_boxes_with_null_area_can_overlap());
3778  }
3779  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3780 }
3781 
3783 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.NoOverlap2DConstraintProto)
3784  if (&from == this) return;
3785  Clear();
3786  MergeFrom(from);
3787 }
3788 
3790  return true;
3791 }
3792 
3793 void NoOverlap2DConstraintProto::InternalSwap(NoOverlap2DConstraintProto* other) {
3794  using std::swap;
3795  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
3796  x_intervals_.InternalSwap(&other->x_intervals_);
3797  y_intervals_.InternalSwap(&other->y_intervals_);
3798  swap(boxes_with_null_area_can_overlap_, other->boxes_with_null_area_can_overlap_);
3799 }
3800 
3801 ::PROTOBUF_NAMESPACE_ID::Metadata NoOverlap2DConstraintProto::GetMetadata() const {
3802  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
3805 }
3806 
3807 // ===================================================================
3808 
3810  public:
3811 };
3812 
3813 CumulativeConstraintProto::CumulativeConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
3814  bool is_message_owned)
3815  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
3816  intervals_(arena),
3817  demands_(arena),
3818  energies_(arena) {
3819  SharedCtor();
3820  if (!is_message_owned) {
3821  RegisterArenaDtor(arena);
3822  }
3823  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CumulativeConstraintProto)
3824 }
3826  : ::PROTOBUF_NAMESPACE_ID::Message(),
3827  intervals_(from.intervals_),
3828  demands_(from.demands_),
3829  energies_(from.energies_) {
3830  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
3831  capacity_ = from.capacity_;
3832  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CumulativeConstraintProto)
3833 }
3834 
3835 inline void CumulativeConstraintProto::SharedCtor() {
3836 capacity_ = 0;
3837 }
3838 
3840  // @@protoc_insertion_point(destructor:operations_research.sat.CumulativeConstraintProto)
3841  if (GetArenaForAllocation() != nullptr) return;
3842  SharedDtor();
3843  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3844 }
3845 
3846 inline void CumulativeConstraintProto::SharedDtor() {
3847  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
3848 }
3849 
3850 void CumulativeConstraintProto::ArenaDtor(void* object) {
3851  CumulativeConstraintProto* _this = reinterpret_cast< CumulativeConstraintProto* >(object);
3852  (void)_this;
3853 }
3854 void CumulativeConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
3855 }
3856 void CumulativeConstraintProto::SetCachedSize(int size) const {
3857  _cached_size_.Set(size);
3858 }
3859 
3861 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CumulativeConstraintProto)
3862  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3863  // Prevent compiler warnings about cached_has_bits being unused
3864  (void) cached_has_bits;
3865 
3866  intervals_.Clear();
3867  demands_.Clear();
3868  energies_.Clear();
3869  capacity_ = 0;
3870  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
3871 }
3872 
3873 const char* CumulativeConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
3874 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
3875  while (!ctx->Done(&ptr)) {
3876  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
3877  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
3878  switch (tag >> 3) {
3879  // int32 capacity = 1;
3880  case 1:
3881  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
3882  capacity_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
3883  CHK_(ptr);
3884  } else goto handle_unusual;
3885  continue;
3886  // repeated int32 intervals = 2;
3887  case 2:
3888  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
3889  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_intervals(), ptr, ctx);
3890  CHK_(ptr);
3891  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
3892  _internal_add_intervals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3893  CHK_(ptr);
3894  } else goto handle_unusual;
3895  continue;
3896  // repeated int32 demands = 3;
3897  case 3:
3898  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
3899  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_demands(), ptr, ctx);
3900  CHK_(ptr);
3901  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
3902  _internal_add_demands(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
3903  CHK_(ptr);
3904  } else goto handle_unusual;
3905  continue;
3906  // repeated .operations_research.sat.LinearExpressionProto energies = 4;
3907  case 4:
3908  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
3909  ptr -= 1;
3910  do {
3911  ptr += 1;
3912  ptr = ctx->ParseMessage(_internal_add_energies(), ptr);
3913  CHK_(ptr);
3914  if (!ctx->DataAvailable(ptr)) break;
3915  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
3916  } else goto handle_unusual;
3917  continue;
3918  default: {
3919  handle_unusual:
3920  if ((tag == 0) || ((tag & 7) == 4)) {
3921  CHK_(ptr);
3922  ctx->SetLastTag(tag);
3923  goto success;
3924  }
3925  ptr = UnknownFieldParse(tag,
3926  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
3927  ptr, ctx);
3928  CHK_(ptr != nullptr);
3929  continue;
3930  }
3931  } // switch
3932  } // while
3933 success:
3934  return ptr;
3935 failure:
3936  ptr = nullptr;
3937  goto success;
3938 #undef CHK_
3939 }
3940 
3941 ::PROTOBUF_NAMESPACE_ID::uint8* CumulativeConstraintProto::_InternalSerialize(
3942  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
3943  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CumulativeConstraintProto)
3944  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3945  (void) cached_has_bits;
3946 
3947  // int32 capacity = 1;
3948  if (this->_internal_capacity() != 0) {
3949  target = stream->EnsureSpace(target);
3950  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_capacity(), target);
3951  }
3952 
3953  // repeated int32 intervals = 2;
3954  {
3955  int byte_size = _intervals_cached_byte_size_.load(std::memory_order_relaxed);
3956  if (byte_size > 0) {
3957  target = stream->WriteInt32Packed(
3958  2, _internal_intervals(), byte_size, target);
3959  }
3960  }
3961 
3962  // repeated int32 demands = 3;
3963  {
3964  int byte_size = _demands_cached_byte_size_.load(std::memory_order_relaxed);
3965  if (byte_size > 0) {
3966  target = stream->WriteInt32Packed(
3967  3, _internal_demands(), byte_size, target);
3968  }
3969  }
3970 
3971  // repeated .operations_research.sat.LinearExpressionProto energies = 4;
3972  for (unsigned int i = 0,
3973  n = static_cast<unsigned int>(this->_internal_energies_size()); i < n; i++) {
3974  target = stream->EnsureSpace(target);
3975  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3976  InternalWriteMessage(4, this->_internal_energies(i), target, stream);
3977  }
3978 
3979  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
3980  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
3981  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
3982  }
3983  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CumulativeConstraintProto)
3984  return target;
3985 }
3986 
3988 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CumulativeConstraintProto)
3989  size_t total_size = 0;
3990 
3991  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
3992  // Prevent compiler warnings about cached_has_bits being unused
3993  (void) cached_has_bits;
3994 
3995  // repeated int32 intervals = 2;
3996  {
3997  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
3998  Int32Size(this->intervals_);
3999  if (data_size > 0) {
4000  total_size += 1 +
4001  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4002  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4003  }
4004  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4005  _intervals_cached_byte_size_.store(cached_size,
4006  std::memory_order_relaxed);
4007  total_size += data_size;
4008  }
4009 
4010  // repeated int32 demands = 3;
4011  {
4012  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4013  Int32Size(this->demands_);
4014  if (data_size > 0) {
4015  total_size += 1 +
4016  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4017  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4018  }
4019  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4020  _demands_cached_byte_size_.store(cached_size,
4021  std::memory_order_relaxed);
4022  total_size += data_size;
4023  }
4024 
4025  // repeated .operations_research.sat.LinearExpressionProto energies = 4;
4026  total_size += 1UL * this->_internal_energies_size();
4027  for (const auto& msg : this->energies_) {
4028  total_size +=
4029  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
4030  }
4031 
4032  // int32 capacity = 1;
4033  if (this->_internal_capacity() != 0) {
4034  total_size += 1 +
4035  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4036  this->_internal_capacity());
4037  }
4038 
4039  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4040  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4041  _internal_metadata_, total_size, &_cached_size_);
4042  }
4043  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4044  SetCachedSize(cached_size);
4045  return total_size;
4046 }
4047 
4048 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CumulativeConstraintProto::_class_data_ = {
4049  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
4050  CumulativeConstraintProto::MergeImpl
4051 };
4052 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CumulativeConstraintProto::GetClassData() const { return &_class_data_; }
4053 
4054 void CumulativeConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
4055  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
4056  static_cast<CumulativeConstraintProto *>(to)->MergeFrom(
4057  static_cast<const CumulativeConstraintProto &>(from));
4058 }
4059 
4060 
4062 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CumulativeConstraintProto)
4063  GOOGLE_DCHECK_NE(&from, this);
4064  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4065  (void) cached_has_bits;
4066 
4067  intervals_.MergeFrom(from.intervals_);
4068  demands_.MergeFrom(from.demands_);
4069  energies_.MergeFrom(from.energies_);
4070  if (from._internal_capacity() != 0) {
4071  _internal_set_capacity(from._internal_capacity());
4072  }
4073  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4074 }
4075 
4077 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CumulativeConstraintProto)
4078  if (&from == this) return;
4079  Clear();
4080  MergeFrom(from);
4081 }
4082 
4084  return true;
4085 }
4086 
4087 void CumulativeConstraintProto::InternalSwap(CumulativeConstraintProto* other) {
4088  using std::swap;
4089  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
4090  intervals_.InternalSwap(&other->intervals_);
4091  demands_.InternalSwap(&other->demands_);
4092  energies_.InternalSwap(&other->energies_);
4093  swap(capacity_, other->capacity_);
4094 }
4095 
4096 ::PROTOBUF_NAMESPACE_ID::Metadata CumulativeConstraintProto::GetMetadata() const {
4097  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
4100 }
4101 
4102 // ===================================================================
4103 
4105  public:
4106 };
4107 
4108 ReservoirConstraintProto::ReservoirConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
4109  bool is_message_owned)
4110  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
4111  times_(arena),
4112  demands_(arena),
4113  actives_(arena) {
4114  SharedCtor();
4115  if (!is_message_owned) {
4116  RegisterArenaDtor(arena);
4117  }
4118  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ReservoirConstraintProto)
4119 }
4121  : ::PROTOBUF_NAMESPACE_ID::Message(),
4122  times_(from.times_),
4123  demands_(from.demands_),
4124  actives_(from.actives_) {
4125  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4126  ::memcpy(&min_level_, &from.min_level_,
4127  static_cast<size_t>(reinterpret_cast<char*>(&max_level_) -
4128  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
4129  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ReservoirConstraintProto)
4130 }
4131 
4132 inline void ReservoirConstraintProto::SharedCtor() {
4133 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
4134  reinterpret_cast<char*>(&min_level_) - reinterpret_cast<char*>(this)),
4135  0, static_cast<size_t>(reinterpret_cast<char*>(&max_level_) -
4136  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
4137 }
4138 
4140  // @@protoc_insertion_point(destructor:operations_research.sat.ReservoirConstraintProto)
4141  if (GetArenaForAllocation() != nullptr) return;
4142  SharedDtor();
4143  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4144 }
4145 
4146 inline void ReservoirConstraintProto::SharedDtor() {
4147  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
4148 }
4149 
4150 void ReservoirConstraintProto::ArenaDtor(void* object) {
4151  ReservoirConstraintProto* _this = reinterpret_cast< ReservoirConstraintProto* >(object);
4152  (void)_this;
4153 }
4154 void ReservoirConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4155 }
4156 void ReservoirConstraintProto::SetCachedSize(int size) const {
4157  _cached_size_.Set(size);
4158 }
4159 
4161 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ReservoirConstraintProto)
4162  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4163  // Prevent compiler warnings about cached_has_bits being unused
4164  (void) cached_has_bits;
4165 
4166  times_.Clear();
4167  demands_.Clear();
4168  actives_.Clear();
4169  ::memset(&min_level_, 0, static_cast<size_t>(
4170  reinterpret_cast<char*>(&max_level_) -
4171  reinterpret_cast<char*>(&min_level_)) + sizeof(max_level_));
4172  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4173 }
4174 
4175 const char* ReservoirConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4176 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4177  while (!ctx->Done(&ptr)) {
4178  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
4179  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4180  switch (tag >> 3) {
4181  // int64 min_level = 1;
4182  case 1:
4183  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
4184  min_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4185  CHK_(ptr);
4186  } else goto handle_unusual;
4187  continue;
4188  // int64 max_level = 2;
4189  case 2:
4190  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
4191  max_level_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4192  CHK_(ptr);
4193  } else goto handle_unusual;
4194  continue;
4195  // repeated int32 times = 3;
4196  case 3:
4197  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4198  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_times(), ptr, ctx);
4199  CHK_(ptr);
4200  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4201  _internal_add_times(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4202  CHK_(ptr);
4203  } else goto handle_unusual;
4204  continue;
4205  // repeated int64 demands = 4;
4206  case 4:
4207  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
4208  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_demands(), ptr, ctx);
4209  CHK_(ptr);
4210  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
4211  _internal_add_demands(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4212  CHK_(ptr);
4213  } else goto handle_unusual;
4214  continue;
4215  // repeated int32 actives = 5;
4216  case 5:
4217  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
4218  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_actives(), ptr, ctx);
4219  CHK_(ptr);
4220  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
4221  _internal_add_actives(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4222  CHK_(ptr);
4223  } else goto handle_unusual;
4224  continue;
4225  default: {
4226  handle_unusual:
4227  if ((tag == 0) || ((tag & 7) == 4)) {
4228  CHK_(ptr);
4229  ctx->SetLastTag(tag);
4230  goto success;
4231  }
4232  ptr = UnknownFieldParse(tag,
4233  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4234  ptr, ctx);
4235  CHK_(ptr != nullptr);
4236  continue;
4237  }
4238  } // switch
4239  } // while
4240 success:
4241  return ptr;
4242 failure:
4243  ptr = nullptr;
4244  goto success;
4245 #undef CHK_
4246 }
4247 
4248 ::PROTOBUF_NAMESPACE_ID::uint8* ReservoirConstraintProto::_InternalSerialize(
4249  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4250  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ReservoirConstraintProto)
4251  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4252  (void) cached_has_bits;
4253 
4254  // int64 min_level = 1;
4255  if (this->_internal_min_level() != 0) {
4256  target = stream->EnsureSpace(target);
4257  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(1, this->_internal_min_level(), target);
4258  }
4259 
4260  // int64 max_level = 2;
4261  if (this->_internal_max_level() != 0) {
4262  target = stream->EnsureSpace(target);
4263  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_max_level(), target);
4264  }
4265 
4266  // repeated int32 times = 3;
4267  {
4268  int byte_size = _times_cached_byte_size_.load(std::memory_order_relaxed);
4269  if (byte_size > 0) {
4270  target = stream->WriteInt32Packed(
4271  3, _internal_times(), byte_size, target);
4272  }
4273  }
4274 
4275  // repeated int64 demands = 4;
4276  {
4277  int byte_size = _demands_cached_byte_size_.load(std::memory_order_relaxed);
4278  if (byte_size > 0) {
4279  target = stream->WriteInt64Packed(
4280  4, _internal_demands(), byte_size, target);
4281  }
4282  }
4283 
4284  // repeated int32 actives = 5;
4285  {
4286  int byte_size = _actives_cached_byte_size_.load(std::memory_order_relaxed);
4287  if (byte_size > 0) {
4288  target = stream->WriteInt32Packed(
4289  5, _internal_actives(), byte_size, target);
4290  }
4291  }
4292 
4293  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4294  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4295  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4296  }
4297  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ReservoirConstraintProto)
4298  return target;
4299 }
4300 
4302 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ReservoirConstraintProto)
4303  size_t total_size = 0;
4304 
4305  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4306  // Prevent compiler warnings about cached_has_bits being unused
4307  (void) cached_has_bits;
4308 
4309  // repeated int32 times = 3;
4310  {
4311  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4312  Int32Size(this->times_);
4313  if (data_size > 0) {
4314  total_size += 1 +
4315  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4316  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4317  }
4318  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4319  _times_cached_byte_size_.store(cached_size,
4320  std::memory_order_relaxed);
4321  total_size += data_size;
4322  }
4323 
4324  // repeated int64 demands = 4;
4325  {
4326  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4327  Int64Size(this->demands_);
4328  if (data_size > 0) {
4329  total_size += 1 +
4330  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4331  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4332  }
4333  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4334  _demands_cached_byte_size_.store(cached_size,
4335  std::memory_order_relaxed);
4336  total_size += data_size;
4337  }
4338 
4339  // repeated int32 actives = 5;
4340  {
4341  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4342  Int32Size(this->actives_);
4343  if (data_size > 0) {
4344  total_size += 1 +
4345  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4346  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4347  }
4348  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4349  _actives_cached_byte_size_.store(cached_size,
4350  std::memory_order_relaxed);
4351  total_size += data_size;
4352  }
4353 
4354  // int64 min_level = 1;
4355  if (this->_internal_min_level() != 0) {
4356  total_size += 1 +
4357  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4358  this->_internal_min_level());
4359  }
4360 
4361  // int64 max_level = 2;
4362  if (this->_internal_max_level() != 0) {
4363  total_size += 1 +
4364  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4365  this->_internal_max_level());
4366  }
4367 
4368  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4369  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4370  _internal_metadata_, total_size, &_cached_size_);
4371  }
4372  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4373  SetCachedSize(cached_size);
4374  return total_size;
4375 }
4376 
4377 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ReservoirConstraintProto::_class_data_ = {
4378  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
4379  ReservoirConstraintProto::MergeImpl
4380 };
4381 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ReservoirConstraintProto::GetClassData() const { return &_class_data_; }
4382 
4383 void ReservoirConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
4384  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
4385  static_cast<ReservoirConstraintProto *>(to)->MergeFrom(
4386  static_cast<const ReservoirConstraintProto &>(from));
4387 }
4388 
4389 
4391 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ReservoirConstraintProto)
4392  GOOGLE_DCHECK_NE(&from, this);
4393  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4394  (void) cached_has_bits;
4395 
4396  times_.MergeFrom(from.times_);
4397  demands_.MergeFrom(from.demands_);
4398  actives_.MergeFrom(from.actives_);
4399  if (from._internal_min_level() != 0) {
4400  _internal_set_min_level(from._internal_min_level());
4401  }
4402  if (from._internal_max_level() != 0) {
4403  _internal_set_max_level(from._internal_max_level());
4404  }
4405  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4406 }
4407 
4409 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ReservoirConstraintProto)
4410  if (&from == this) return;
4411  Clear();
4412  MergeFrom(from);
4413 }
4414 
4416  return true;
4417 }
4418 
4419 void ReservoirConstraintProto::InternalSwap(ReservoirConstraintProto* other) {
4420  using std::swap;
4421  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
4422  times_.InternalSwap(&other->times_);
4423  demands_.InternalSwap(&other->demands_);
4424  actives_.InternalSwap(&other->actives_);
4425  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
4426  PROTOBUF_FIELD_OFFSET(ReservoirConstraintProto, max_level_)
4427  + sizeof(ReservoirConstraintProto::max_level_)
4428  - PROTOBUF_FIELD_OFFSET(ReservoirConstraintProto, min_level_)>(
4429  reinterpret_cast<char*>(&min_level_),
4430  reinterpret_cast<char*>(&other->min_level_));
4431 }
4432 
4433 ::PROTOBUF_NAMESPACE_ID::Metadata ReservoirConstraintProto::GetMetadata() const {
4434  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
4437 }
4438 
4439 // ===================================================================
4440 
4442  public:
4443 };
4444 
4445 CircuitConstraintProto::CircuitConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
4446  bool is_message_owned)
4447  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
4448  tails_(arena),
4449  heads_(arena),
4450  literals_(arena) {
4451  SharedCtor();
4452  if (!is_message_owned) {
4453  RegisterArenaDtor(arena);
4454  }
4455  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CircuitConstraintProto)
4456 }
4458  : ::PROTOBUF_NAMESPACE_ID::Message(),
4459  tails_(from.tails_),
4460  heads_(from.heads_),
4461  literals_(from.literals_) {
4462  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4463  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CircuitConstraintProto)
4464 }
4465 
4466 inline void CircuitConstraintProto::SharedCtor() {
4467 }
4468 
4470  // @@protoc_insertion_point(destructor:operations_research.sat.CircuitConstraintProto)
4471  if (GetArenaForAllocation() != nullptr) return;
4472  SharedDtor();
4473  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4474 }
4475 
4476 inline void CircuitConstraintProto::SharedDtor() {
4477  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
4478 }
4479 
4480 void CircuitConstraintProto::ArenaDtor(void* object) {
4481  CircuitConstraintProto* _this = reinterpret_cast< CircuitConstraintProto* >(object);
4482  (void)_this;
4483 }
4484 void CircuitConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4485 }
4486 void CircuitConstraintProto::SetCachedSize(int size) const {
4487  _cached_size_.Set(size);
4488 }
4489 
4491 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CircuitConstraintProto)
4492  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4493  // Prevent compiler warnings about cached_has_bits being unused
4494  (void) cached_has_bits;
4495 
4496  tails_.Clear();
4497  heads_.Clear();
4498  literals_.Clear();
4499  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4500 }
4501 
4502 const char* CircuitConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4503 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4504  while (!ctx->Done(&ptr)) {
4505  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
4506  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4507  switch (tag >> 3) {
4508  // repeated int32 tails = 3;
4509  case 3:
4510  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4511  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_tails(), ptr, ctx);
4512  CHK_(ptr);
4513  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4514  _internal_add_tails(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4515  CHK_(ptr);
4516  } else goto handle_unusual;
4517  continue;
4518  // repeated int32 heads = 4;
4519  case 4:
4520  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
4521  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_heads(), ptr, ctx);
4522  CHK_(ptr);
4523  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
4524  _internal_add_heads(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4525  CHK_(ptr);
4526  } else goto handle_unusual;
4527  continue;
4528  // repeated int32 literals = 5;
4529  case 5:
4530  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
4531  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
4532  CHK_(ptr);
4533  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
4534  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4535  CHK_(ptr);
4536  } else goto handle_unusual;
4537  continue;
4538  default: {
4539  handle_unusual:
4540  if ((tag == 0) || ((tag & 7) == 4)) {
4541  CHK_(ptr);
4542  ctx->SetLastTag(tag);
4543  goto success;
4544  }
4545  ptr = UnknownFieldParse(tag,
4546  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4547  ptr, ctx);
4548  CHK_(ptr != nullptr);
4549  continue;
4550  }
4551  } // switch
4552  } // while
4553 success:
4554  return ptr;
4555 failure:
4556  ptr = nullptr;
4557  goto success;
4558 #undef CHK_
4559 }
4560 
4561 ::PROTOBUF_NAMESPACE_ID::uint8* CircuitConstraintProto::_InternalSerialize(
4562  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4563  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CircuitConstraintProto)
4564  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4565  (void) cached_has_bits;
4566 
4567  // repeated int32 tails = 3;
4568  {
4569  int byte_size = _tails_cached_byte_size_.load(std::memory_order_relaxed);
4570  if (byte_size > 0) {
4571  target = stream->WriteInt32Packed(
4572  3, _internal_tails(), byte_size, target);
4573  }
4574  }
4575 
4576  // repeated int32 heads = 4;
4577  {
4578  int byte_size = _heads_cached_byte_size_.load(std::memory_order_relaxed);
4579  if (byte_size > 0) {
4580  target = stream->WriteInt32Packed(
4581  4, _internal_heads(), byte_size, target);
4582  }
4583  }
4584 
4585  // repeated int32 literals = 5;
4586  {
4587  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
4588  if (byte_size > 0) {
4589  target = stream->WriteInt32Packed(
4590  5, _internal_literals(), byte_size, target);
4591  }
4592  }
4593 
4594  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4595  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4596  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4597  }
4598  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CircuitConstraintProto)
4599  return target;
4600 }
4601 
4603 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CircuitConstraintProto)
4604  size_t total_size = 0;
4605 
4606  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4607  // Prevent compiler warnings about cached_has_bits being unused
4608  (void) cached_has_bits;
4609 
4610  // repeated int32 tails = 3;
4611  {
4612  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4613  Int32Size(this->tails_);
4614  if (data_size > 0) {
4615  total_size += 1 +
4616  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4617  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4618  }
4619  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4620  _tails_cached_byte_size_.store(cached_size,
4621  std::memory_order_relaxed);
4622  total_size += data_size;
4623  }
4624 
4625  // repeated int32 heads = 4;
4626  {
4627  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4628  Int32Size(this->heads_);
4629  if (data_size > 0) {
4630  total_size += 1 +
4631  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4632  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4633  }
4634  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4635  _heads_cached_byte_size_.store(cached_size,
4636  std::memory_order_relaxed);
4637  total_size += data_size;
4638  }
4639 
4640  // repeated int32 literals = 5;
4641  {
4642  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4643  Int32Size(this->literals_);
4644  if (data_size > 0) {
4645  total_size += 1 +
4646  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4647  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4648  }
4649  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4650  _literals_cached_byte_size_.store(cached_size,
4651  std::memory_order_relaxed);
4652  total_size += data_size;
4653  }
4654 
4655  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4656  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4657  _internal_metadata_, total_size, &_cached_size_);
4658  }
4659  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4660  SetCachedSize(cached_size);
4661  return total_size;
4662 }
4663 
4664 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CircuitConstraintProto::_class_data_ = {
4665  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
4666  CircuitConstraintProto::MergeImpl
4667 };
4668 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CircuitConstraintProto::GetClassData() const { return &_class_data_; }
4669 
4670 void CircuitConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
4671  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
4672  static_cast<CircuitConstraintProto *>(to)->MergeFrom(
4673  static_cast<const CircuitConstraintProto &>(from));
4674 }
4675 
4676 
4678 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CircuitConstraintProto)
4679  GOOGLE_DCHECK_NE(&from, this);
4680  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4681  (void) cached_has_bits;
4682 
4683  tails_.MergeFrom(from.tails_);
4684  heads_.MergeFrom(from.heads_);
4685  literals_.MergeFrom(from.literals_);
4686  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4687 }
4688 
4690 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CircuitConstraintProto)
4691  if (&from == this) return;
4692  Clear();
4693  MergeFrom(from);
4694 }
4695 
4697  return true;
4698 }
4699 
4700 void CircuitConstraintProto::InternalSwap(CircuitConstraintProto* other) {
4701  using std::swap;
4702  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
4703  tails_.InternalSwap(&other->tails_);
4704  heads_.InternalSwap(&other->heads_);
4705  literals_.InternalSwap(&other->literals_);
4706 }
4707 
4708 ::PROTOBUF_NAMESPACE_ID::Metadata CircuitConstraintProto::GetMetadata() const {
4709  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
4712 }
4713 
4714 // ===================================================================
4715 
4717  public:
4718 };
4719 
4720 RoutesConstraintProto::RoutesConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
4721  bool is_message_owned)
4722  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
4723  tails_(arena),
4724  heads_(arena),
4725  literals_(arena),
4726  demands_(arena) {
4727  SharedCtor();
4728  if (!is_message_owned) {
4729  RegisterArenaDtor(arena);
4730  }
4731  // @@protoc_insertion_point(arena_constructor:operations_research.sat.RoutesConstraintProto)
4732 }
4734  : ::PROTOBUF_NAMESPACE_ID::Message(),
4735  tails_(from.tails_),
4736  heads_(from.heads_),
4737  literals_(from.literals_),
4738  demands_(from.demands_) {
4739  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
4740  capacity_ = from.capacity_;
4741  // @@protoc_insertion_point(copy_constructor:operations_research.sat.RoutesConstraintProto)
4742 }
4743 
4744 inline void RoutesConstraintProto::SharedCtor() {
4745 capacity_ = int64_t{0};
4746 }
4747 
4749  // @@protoc_insertion_point(destructor:operations_research.sat.RoutesConstraintProto)
4750  if (GetArenaForAllocation() != nullptr) return;
4751  SharedDtor();
4752  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4753 }
4754 
4755 inline void RoutesConstraintProto::SharedDtor() {
4756  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
4757 }
4758 
4759 void RoutesConstraintProto::ArenaDtor(void* object) {
4760  RoutesConstraintProto* _this = reinterpret_cast< RoutesConstraintProto* >(object);
4761  (void)_this;
4762 }
4763 void RoutesConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
4764 }
4765 void RoutesConstraintProto::SetCachedSize(int size) const {
4766  _cached_size_.Set(size);
4767 }
4768 
4770 // @@protoc_insertion_point(message_clear_start:operations_research.sat.RoutesConstraintProto)
4771  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4772  // Prevent compiler warnings about cached_has_bits being unused
4773  (void) cached_has_bits;
4774 
4775  tails_.Clear();
4776  heads_.Clear();
4777  literals_.Clear();
4778  demands_.Clear();
4779  capacity_ = int64_t{0};
4780  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
4781 }
4782 
4783 const char* RoutesConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
4784 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
4785  while (!ctx->Done(&ptr)) {
4786  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
4787  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
4788  switch (tag >> 3) {
4789  // repeated int32 tails = 1;
4790  case 1:
4791  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
4792  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_tails(), ptr, ctx);
4793  CHK_(ptr);
4794  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
4795  _internal_add_tails(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4796  CHK_(ptr);
4797  } else goto handle_unusual;
4798  continue;
4799  // repeated int32 heads = 2;
4800  case 2:
4801  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
4802  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_heads(), ptr, ctx);
4803  CHK_(ptr);
4804  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
4805  _internal_add_heads(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4806  CHK_(ptr);
4807  } else goto handle_unusual;
4808  continue;
4809  // repeated int32 literals = 3;
4810  case 3:
4811  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
4812  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_literals(), ptr, ctx);
4813  CHK_(ptr);
4814  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
4815  _internal_add_literals(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4816  CHK_(ptr);
4817  } else goto handle_unusual;
4818  continue;
4819  // repeated int32 demands = 4;
4820  case 4:
4821  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
4822  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_demands(), ptr, ctx);
4823  CHK_(ptr);
4824  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
4825  _internal_add_demands(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
4826  CHK_(ptr);
4827  } else goto handle_unusual;
4828  continue;
4829  // int64 capacity = 5;
4830  case 5:
4831  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
4832  capacity_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
4833  CHK_(ptr);
4834  } else goto handle_unusual;
4835  continue;
4836  default: {
4837  handle_unusual:
4838  if ((tag == 0) || ((tag & 7) == 4)) {
4839  CHK_(ptr);
4840  ctx->SetLastTag(tag);
4841  goto success;
4842  }
4843  ptr = UnknownFieldParse(tag,
4844  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
4845  ptr, ctx);
4846  CHK_(ptr != nullptr);
4847  continue;
4848  }
4849  } // switch
4850  } // while
4851 success:
4852  return ptr;
4853 failure:
4854  ptr = nullptr;
4855  goto success;
4856 #undef CHK_
4857 }
4858 
4859 ::PROTOBUF_NAMESPACE_ID::uint8* RoutesConstraintProto::_InternalSerialize(
4860  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
4861  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.RoutesConstraintProto)
4862  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4863  (void) cached_has_bits;
4864 
4865  // repeated int32 tails = 1;
4866  {
4867  int byte_size = _tails_cached_byte_size_.load(std::memory_order_relaxed);
4868  if (byte_size > 0) {
4869  target = stream->WriteInt32Packed(
4870  1, _internal_tails(), byte_size, target);
4871  }
4872  }
4873 
4874  // repeated int32 heads = 2;
4875  {
4876  int byte_size = _heads_cached_byte_size_.load(std::memory_order_relaxed);
4877  if (byte_size > 0) {
4878  target = stream->WriteInt32Packed(
4879  2, _internal_heads(), byte_size, target);
4880  }
4881  }
4882 
4883  // repeated int32 literals = 3;
4884  {
4885  int byte_size = _literals_cached_byte_size_.load(std::memory_order_relaxed);
4886  if (byte_size > 0) {
4887  target = stream->WriteInt32Packed(
4888  3, _internal_literals(), byte_size, target);
4889  }
4890  }
4891 
4892  // repeated int32 demands = 4;
4893  {
4894  int byte_size = _demands_cached_byte_size_.load(std::memory_order_relaxed);
4895  if (byte_size > 0) {
4896  target = stream->WriteInt32Packed(
4897  4, _internal_demands(), byte_size, target);
4898  }
4899  }
4900 
4901  // int64 capacity = 5;
4902  if (this->_internal_capacity() != 0) {
4903  target = stream->EnsureSpace(target);
4904  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(5, this->_internal_capacity(), target);
4905  }
4906 
4907  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4908  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
4909  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
4910  }
4911  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.RoutesConstraintProto)
4912  return target;
4913 }
4914 
4916 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.RoutesConstraintProto)
4917  size_t total_size = 0;
4918 
4919  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
4920  // Prevent compiler warnings about cached_has_bits being unused
4921  (void) cached_has_bits;
4922 
4923  // repeated int32 tails = 1;
4924  {
4925  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4926  Int32Size(this->tails_);
4927  if (data_size > 0) {
4928  total_size += 1 +
4929  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4930  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4931  }
4932  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4933  _tails_cached_byte_size_.store(cached_size,
4934  std::memory_order_relaxed);
4935  total_size += data_size;
4936  }
4937 
4938  // repeated int32 heads = 2;
4939  {
4940  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4941  Int32Size(this->heads_);
4942  if (data_size > 0) {
4943  total_size += 1 +
4944  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4945  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4946  }
4947  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4948  _heads_cached_byte_size_.store(cached_size,
4949  std::memory_order_relaxed);
4950  total_size += data_size;
4951  }
4952 
4953  // repeated int32 literals = 3;
4954  {
4955  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4956  Int32Size(this->literals_);
4957  if (data_size > 0) {
4958  total_size += 1 +
4959  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4960  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4961  }
4962  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4963  _literals_cached_byte_size_.store(cached_size,
4964  std::memory_order_relaxed);
4965  total_size += data_size;
4966  }
4967 
4968  // repeated int32 demands = 4;
4969  {
4970  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
4971  Int32Size(this->demands_);
4972  if (data_size > 0) {
4973  total_size += 1 +
4974  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
4975  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
4976  }
4977  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
4978  _demands_cached_byte_size_.store(cached_size,
4979  std::memory_order_relaxed);
4980  total_size += data_size;
4981  }
4982 
4983  // int64 capacity = 5;
4984  if (this->_internal_capacity() != 0) {
4985  total_size += 1 +
4986  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
4987  this->_internal_capacity());
4988  }
4989 
4990  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
4991  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
4992  _internal_metadata_, total_size, &_cached_size_);
4993  }
4994  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
4995  SetCachedSize(cached_size);
4996  return total_size;
4997 }
4998 
4999 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData RoutesConstraintProto::_class_data_ = {
5000  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
5001  RoutesConstraintProto::MergeImpl
5002 };
5003 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*RoutesConstraintProto::GetClassData() const { return &_class_data_; }
5004 
5005 void RoutesConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
5006  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
5007  static_cast<RoutesConstraintProto *>(to)->MergeFrom(
5008  static_cast<const RoutesConstraintProto &>(from));
5009 }
5010 
5011 
5013 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.RoutesConstraintProto)
5014  GOOGLE_DCHECK_NE(&from, this);
5015  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5016  (void) cached_has_bits;
5017 
5018  tails_.MergeFrom(from.tails_);
5019  heads_.MergeFrom(from.heads_);
5020  literals_.MergeFrom(from.literals_);
5021  demands_.MergeFrom(from.demands_);
5022  if (from._internal_capacity() != 0) {
5023  _internal_set_capacity(from._internal_capacity());
5024  }
5025  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5026 }
5027 
5029 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.RoutesConstraintProto)
5030  if (&from == this) return;
5031  Clear();
5032  MergeFrom(from);
5033 }
5034 
5036  return true;
5037 }
5038 
5039 void RoutesConstraintProto::InternalSwap(RoutesConstraintProto* other) {
5040  using std::swap;
5041  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
5042  tails_.InternalSwap(&other->tails_);
5043  heads_.InternalSwap(&other->heads_);
5044  literals_.InternalSwap(&other->literals_);
5045  demands_.InternalSwap(&other->demands_);
5046  swap(capacity_, other->capacity_);
5047 }
5048 
5049 ::PROTOBUF_NAMESPACE_ID::Metadata RoutesConstraintProto::GetMetadata() const {
5050  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
5053 }
5054 
5055 // ===================================================================
5056 
5058  public:
5059 };
5060 
5061 TableConstraintProto::TableConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
5062  bool is_message_owned)
5063  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
5064  vars_(arena),
5065  values_(arena) {
5066  SharedCtor();
5067  if (!is_message_owned) {
5068  RegisterArenaDtor(arena);
5069  }
5070  // @@protoc_insertion_point(arena_constructor:operations_research.sat.TableConstraintProto)
5071 }
5073  : ::PROTOBUF_NAMESPACE_ID::Message(),
5074  vars_(from.vars_),
5075  values_(from.values_) {
5076  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5077  negated_ = from.negated_;
5078  // @@protoc_insertion_point(copy_constructor:operations_research.sat.TableConstraintProto)
5079 }
5080 
5081 inline void TableConstraintProto::SharedCtor() {
5082 negated_ = false;
5083 }
5084 
5086  // @@protoc_insertion_point(destructor:operations_research.sat.TableConstraintProto)
5087  if (GetArenaForAllocation() != nullptr) return;
5088  SharedDtor();
5089  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5090 }
5091 
5092 inline void TableConstraintProto::SharedDtor() {
5093  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
5094 }
5095 
5096 void TableConstraintProto::ArenaDtor(void* object) {
5097  TableConstraintProto* _this = reinterpret_cast< TableConstraintProto* >(object);
5098  (void)_this;
5099 }
5100 void TableConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5101 }
5102 void TableConstraintProto::SetCachedSize(int size) const {
5103  _cached_size_.Set(size);
5104 }
5105 
5107 // @@protoc_insertion_point(message_clear_start:operations_research.sat.TableConstraintProto)
5108  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5109  // Prevent compiler warnings about cached_has_bits being unused
5110  (void) cached_has_bits;
5111 
5112  vars_.Clear();
5113  values_.Clear();
5114  negated_ = false;
5115  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5116 }
5117 
5118 const char* TableConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5119 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5120  while (!ctx->Done(&ptr)) {
5121  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
5122  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5123  switch (tag >> 3) {
5124  // repeated int32 vars = 1;
5125  case 1:
5126  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
5127  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
5128  CHK_(ptr);
5129  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
5130  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5131  CHK_(ptr);
5132  } else goto handle_unusual;
5133  continue;
5134  // repeated int64 values = 2;
5135  case 2:
5136  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
5137  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_values(), ptr, ctx);
5138  CHK_(ptr);
5139  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
5140  _internal_add_values(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5141  CHK_(ptr);
5142  } else goto handle_unusual;
5143  continue;
5144  // bool negated = 3;
5145  case 3:
5146  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
5147  negated_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
5148  CHK_(ptr);
5149  } else goto handle_unusual;
5150  continue;
5151  default: {
5152  handle_unusual:
5153  if ((tag == 0) || ((tag & 7) == 4)) {
5154  CHK_(ptr);
5155  ctx->SetLastTag(tag);
5156  goto success;
5157  }
5158  ptr = UnknownFieldParse(tag,
5159  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5160  ptr, ctx);
5161  CHK_(ptr != nullptr);
5162  continue;
5163  }
5164  } // switch
5165  } // while
5166 success:
5167  return ptr;
5168 failure:
5169  ptr = nullptr;
5170  goto success;
5171 #undef CHK_
5172 }
5173 
5174 ::PROTOBUF_NAMESPACE_ID::uint8* TableConstraintProto::_InternalSerialize(
5175  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5176  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.TableConstraintProto)
5177  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5178  (void) cached_has_bits;
5179 
5180  // repeated int32 vars = 1;
5181  {
5182  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
5183  if (byte_size > 0) {
5184  target = stream->WriteInt32Packed(
5185  1, _internal_vars(), byte_size, target);
5186  }
5187  }
5188 
5189  // repeated int64 values = 2;
5190  {
5191  int byte_size = _values_cached_byte_size_.load(std::memory_order_relaxed);
5192  if (byte_size > 0) {
5193  target = stream->WriteInt64Packed(
5194  2, _internal_values(), byte_size, target);
5195  }
5196  }
5197 
5198  // bool negated = 3;
5199  if (this->_internal_negated() != 0) {
5200  target = stream->EnsureSpace(target);
5201  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(3, this->_internal_negated(), target);
5202  }
5203 
5204  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5205  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5206  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5207  }
5208  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.TableConstraintProto)
5209  return target;
5210 }
5211 
5213 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.TableConstraintProto)
5214  size_t total_size = 0;
5215 
5216  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5217  // Prevent compiler warnings about cached_has_bits being unused
5218  (void) cached_has_bits;
5219 
5220  // repeated int32 vars = 1;
5221  {
5222  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5223  Int32Size(this->vars_);
5224  if (data_size > 0) {
5225  total_size += 1 +
5226  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5227  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5228  }
5229  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5230  _vars_cached_byte_size_.store(cached_size,
5231  std::memory_order_relaxed);
5232  total_size += data_size;
5233  }
5234 
5235  // repeated int64 values = 2;
5236  {
5237  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5238  Int64Size(this->values_);
5239  if (data_size > 0) {
5240  total_size += 1 +
5241  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5242  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5243  }
5244  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5245  _values_cached_byte_size_.store(cached_size,
5246  std::memory_order_relaxed);
5247  total_size += data_size;
5248  }
5249 
5250  // bool negated = 3;
5251  if (this->_internal_negated() != 0) {
5252  total_size += 1 + 1;
5253  }
5254 
5255  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5256  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
5257  _internal_metadata_, total_size, &_cached_size_);
5258  }
5259  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
5260  SetCachedSize(cached_size);
5261  return total_size;
5262 }
5263 
5264 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData TableConstraintProto::_class_data_ = {
5265  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
5266  TableConstraintProto::MergeImpl
5267 };
5268 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*TableConstraintProto::GetClassData() const { return &_class_data_; }
5269 
5270 void TableConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
5271  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
5272  static_cast<TableConstraintProto *>(to)->MergeFrom(
5273  static_cast<const TableConstraintProto &>(from));
5274 }
5275 
5276 
5278 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.TableConstraintProto)
5279  GOOGLE_DCHECK_NE(&from, this);
5280  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5281  (void) cached_has_bits;
5282 
5283  vars_.MergeFrom(from.vars_);
5284  values_.MergeFrom(from.values_);
5285  if (from._internal_negated() != 0) {
5286  _internal_set_negated(from._internal_negated());
5287  }
5288  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5289 }
5290 
5292 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.TableConstraintProto)
5293  if (&from == this) return;
5294  Clear();
5295  MergeFrom(from);
5296 }
5297 
5299  return true;
5300 }
5301 
5302 void TableConstraintProto::InternalSwap(TableConstraintProto* other) {
5303  using std::swap;
5304  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
5305  vars_.InternalSwap(&other->vars_);
5306  values_.InternalSwap(&other->values_);
5307  swap(negated_, other->negated_);
5308 }
5309 
5310 ::PROTOBUF_NAMESPACE_ID::Metadata TableConstraintProto::GetMetadata() const {
5311  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
5314 }
5315 
5316 // ===================================================================
5317 
5319  public:
5320 };
5321 
5322 InverseConstraintProto::InverseConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
5323  bool is_message_owned)
5324  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
5325  f_direct_(arena),
5326  f_inverse_(arena) {
5327  SharedCtor();
5328  if (!is_message_owned) {
5329  RegisterArenaDtor(arena);
5330  }
5331  // @@protoc_insertion_point(arena_constructor:operations_research.sat.InverseConstraintProto)
5332 }
5334  : ::PROTOBUF_NAMESPACE_ID::Message(),
5335  f_direct_(from.f_direct_),
5336  f_inverse_(from.f_inverse_) {
5337  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5338  // @@protoc_insertion_point(copy_constructor:operations_research.sat.InverseConstraintProto)
5339 }
5340 
5341 inline void InverseConstraintProto::SharedCtor() {
5342 }
5343 
5345  // @@protoc_insertion_point(destructor:operations_research.sat.InverseConstraintProto)
5346  if (GetArenaForAllocation() != nullptr) return;
5347  SharedDtor();
5348  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5349 }
5350 
5351 inline void InverseConstraintProto::SharedDtor() {
5352  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
5353 }
5354 
5355 void InverseConstraintProto::ArenaDtor(void* object) {
5356  InverseConstraintProto* _this = reinterpret_cast< InverseConstraintProto* >(object);
5357  (void)_this;
5358 }
5359 void InverseConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5360 }
5361 void InverseConstraintProto::SetCachedSize(int size) const {
5362  _cached_size_.Set(size);
5363 }
5364 
5366 // @@protoc_insertion_point(message_clear_start:operations_research.sat.InverseConstraintProto)
5367  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5368  // Prevent compiler warnings about cached_has_bits being unused
5369  (void) cached_has_bits;
5370 
5371  f_direct_.Clear();
5372  f_inverse_.Clear();
5373  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5374 }
5375 
5376 const char* InverseConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5377 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5378  while (!ctx->Done(&ptr)) {
5379  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
5380  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5381  switch (tag >> 3) {
5382  // repeated int32 f_direct = 1;
5383  case 1:
5384  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
5385  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_f_direct(), ptr, ctx);
5386  CHK_(ptr);
5387  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
5388  _internal_add_f_direct(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5389  CHK_(ptr);
5390  } else goto handle_unusual;
5391  continue;
5392  // repeated int32 f_inverse = 2;
5393  case 2:
5394  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
5395  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_f_inverse(), ptr, ctx);
5396  CHK_(ptr);
5397  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
5398  _internal_add_f_inverse(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5399  CHK_(ptr);
5400  } else goto handle_unusual;
5401  continue;
5402  default: {
5403  handle_unusual:
5404  if ((tag == 0) || ((tag & 7) == 4)) {
5405  CHK_(ptr);
5406  ctx->SetLastTag(tag);
5407  goto success;
5408  }
5409  ptr = UnknownFieldParse(tag,
5410  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5411  ptr, ctx);
5412  CHK_(ptr != nullptr);
5413  continue;
5414  }
5415  } // switch
5416  } // while
5417 success:
5418  return ptr;
5419 failure:
5420  ptr = nullptr;
5421  goto success;
5422 #undef CHK_
5423 }
5424 
5425 ::PROTOBUF_NAMESPACE_ID::uint8* InverseConstraintProto::_InternalSerialize(
5426  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5427  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.InverseConstraintProto)
5428  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5429  (void) cached_has_bits;
5430 
5431  // repeated int32 f_direct = 1;
5432  {
5433  int byte_size = _f_direct_cached_byte_size_.load(std::memory_order_relaxed);
5434  if (byte_size > 0) {
5435  target = stream->WriteInt32Packed(
5436  1, _internal_f_direct(), byte_size, target);
5437  }
5438  }
5439 
5440  // repeated int32 f_inverse = 2;
5441  {
5442  int byte_size = _f_inverse_cached_byte_size_.load(std::memory_order_relaxed);
5443  if (byte_size > 0) {
5444  target = stream->WriteInt32Packed(
5445  2, _internal_f_inverse(), byte_size, target);
5446  }
5447  }
5448 
5449  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5450  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5451  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5452  }
5453  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.InverseConstraintProto)
5454  return target;
5455 }
5456 
5458 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.InverseConstraintProto)
5459  size_t total_size = 0;
5460 
5461  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5462  // Prevent compiler warnings about cached_has_bits being unused
5463  (void) cached_has_bits;
5464 
5465  // repeated int32 f_direct = 1;
5466  {
5467  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5468  Int32Size(this->f_direct_);
5469  if (data_size > 0) {
5470  total_size += 1 +
5471  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5472  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5473  }
5474  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5475  _f_direct_cached_byte_size_.store(cached_size,
5476  std::memory_order_relaxed);
5477  total_size += data_size;
5478  }
5479 
5480  // repeated int32 f_inverse = 2;
5481  {
5482  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5483  Int32Size(this->f_inverse_);
5484  if (data_size > 0) {
5485  total_size += 1 +
5486  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5487  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5488  }
5489  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5490  _f_inverse_cached_byte_size_.store(cached_size,
5491  std::memory_order_relaxed);
5492  total_size += data_size;
5493  }
5494 
5495  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5496  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
5497  _internal_metadata_, total_size, &_cached_size_);
5498  }
5499  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
5500  SetCachedSize(cached_size);
5501  return total_size;
5502 }
5503 
5504 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData InverseConstraintProto::_class_data_ = {
5505  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
5506  InverseConstraintProto::MergeImpl
5507 };
5508 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*InverseConstraintProto::GetClassData() const { return &_class_data_; }
5509 
5510 void InverseConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
5511  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
5512  static_cast<InverseConstraintProto *>(to)->MergeFrom(
5513  static_cast<const InverseConstraintProto &>(from));
5514 }
5515 
5516 
5518 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.InverseConstraintProto)
5519  GOOGLE_DCHECK_NE(&from, this);
5520  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5521  (void) cached_has_bits;
5522 
5523  f_direct_.MergeFrom(from.f_direct_);
5524  f_inverse_.MergeFrom(from.f_inverse_);
5525  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5526 }
5527 
5529 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.InverseConstraintProto)
5530  if (&from == this) return;
5531  Clear();
5532  MergeFrom(from);
5533 }
5534 
5536  return true;
5537 }
5538 
5539 void InverseConstraintProto::InternalSwap(InverseConstraintProto* other) {
5540  using std::swap;
5541  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
5542  f_direct_.InternalSwap(&other->f_direct_);
5543  f_inverse_.InternalSwap(&other->f_inverse_);
5544 }
5545 
5546 ::PROTOBUF_NAMESPACE_ID::Metadata InverseConstraintProto::GetMetadata() const {
5547  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
5550 }
5551 
5552 // ===================================================================
5553 
5555  public:
5556 };
5557 
5558 AutomatonConstraintProto::AutomatonConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
5559  bool is_message_owned)
5560  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
5561  final_states_(arena),
5562  transition_tail_(arena),
5563  transition_head_(arena),
5564  transition_label_(arena),
5565  vars_(arena) {
5566  SharedCtor();
5567  if (!is_message_owned) {
5568  RegisterArenaDtor(arena);
5569  }
5570  // @@protoc_insertion_point(arena_constructor:operations_research.sat.AutomatonConstraintProto)
5571 }
5573  : ::PROTOBUF_NAMESPACE_ID::Message(),
5574  final_states_(from.final_states_),
5575  transition_tail_(from.transition_tail_),
5576  transition_head_(from.transition_head_),
5577  transition_label_(from.transition_label_),
5578  vars_(from.vars_) {
5579  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5580  starting_state_ = from.starting_state_;
5581  // @@protoc_insertion_point(copy_constructor:operations_research.sat.AutomatonConstraintProto)
5582 }
5583 
5584 inline void AutomatonConstraintProto::SharedCtor() {
5585 starting_state_ = int64_t{0};
5586 }
5587 
5589  // @@protoc_insertion_point(destructor:operations_research.sat.AutomatonConstraintProto)
5590  if (GetArenaForAllocation() != nullptr) return;
5591  SharedDtor();
5592  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5593 }
5594 
5595 inline void AutomatonConstraintProto::SharedDtor() {
5596  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
5597 }
5598 
5599 void AutomatonConstraintProto::ArenaDtor(void* object) {
5600  AutomatonConstraintProto* _this = reinterpret_cast< AutomatonConstraintProto* >(object);
5601  (void)_this;
5602 }
5603 void AutomatonConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5604 }
5605 void AutomatonConstraintProto::SetCachedSize(int size) const {
5606  _cached_size_.Set(size);
5607 }
5608 
5610 // @@protoc_insertion_point(message_clear_start:operations_research.sat.AutomatonConstraintProto)
5611  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5612  // Prevent compiler warnings about cached_has_bits being unused
5613  (void) cached_has_bits;
5614 
5615  final_states_.Clear();
5616  transition_tail_.Clear();
5617  transition_head_.Clear();
5618  transition_label_.Clear();
5619  vars_.Clear();
5620  starting_state_ = int64_t{0};
5621  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5622 }
5623 
5624 const char* AutomatonConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5625 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5626  while (!ctx->Done(&ptr)) {
5627  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
5628  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5629  switch (tag >> 3) {
5630  // int64 starting_state = 2;
5631  case 2:
5632  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
5633  starting_state_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
5634  CHK_(ptr);
5635  } else goto handle_unusual;
5636  continue;
5637  // repeated int64 final_states = 3;
5638  case 3:
5639  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
5640  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_final_states(), ptr, ctx);
5641  CHK_(ptr);
5642  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
5643  _internal_add_final_states(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5644  CHK_(ptr);
5645  } else goto handle_unusual;
5646  continue;
5647  // repeated int64 transition_tail = 4;
5648  case 4:
5649  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
5650  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_tail(), ptr, ctx);
5651  CHK_(ptr);
5652  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
5653  _internal_add_transition_tail(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5654  CHK_(ptr);
5655  } else goto handle_unusual;
5656  continue;
5657  // repeated int64 transition_head = 5;
5658  case 5:
5659  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
5660  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_head(), ptr, ctx);
5661  CHK_(ptr);
5662  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
5663  _internal_add_transition_head(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5664  CHK_(ptr);
5665  } else goto handle_unusual;
5666  continue;
5667  // repeated int64 transition_label = 6;
5668  case 6:
5669  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
5670  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_transition_label(), ptr, ctx);
5671  CHK_(ptr);
5672  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 48) {
5673  _internal_add_transition_label(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5674  CHK_(ptr);
5675  } else goto handle_unusual;
5676  continue;
5677  // repeated int32 vars = 7;
5678  case 7:
5679  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
5680  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
5681  CHK_(ptr);
5682  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56) {
5683  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
5684  CHK_(ptr);
5685  } else goto handle_unusual;
5686  continue;
5687  default: {
5688  handle_unusual:
5689  if ((tag == 0) || ((tag & 7) == 4)) {
5690  CHK_(ptr);
5691  ctx->SetLastTag(tag);
5692  goto success;
5693  }
5694  ptr = UnknownFieldParse(tag,
5695  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
5696  ptr, ctx);
5697  CHK_(ptr != nullptr);
5698  continue;
5699  }
5700  } // switch
5701  } // while
5702 success:
5703  return ptr;
5704 failure:
5705  ptr = nullptr;
5706  goto success;
5707 #undef CHK_
5708 }
5709 
5710 ::PROTOBUF_NAMESPACE_ID::uint8* AutomatonConstraintProto::_InternalSerialize(
5711  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
5712  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.AutomatonConstraintProto)
5713  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5714  (void) cached_has_bits;
5715 
5716  // int64 starting_state = 2;
5717  if (this->_internal_starting_state() != 0) {
5718  target = stream->EnsureSpace(target);
5719  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_starting_state(), target);
5720  }
5721 
5722  // repeated int64 final_states = 3;
5723  {
5724  int byte_size = _final_states_cached_byte_size_.load(std::memory_order_relaxed);
5725  if (byte_size > 0) {
5726  target = stream->WriteInt64Packed(
5727  3, _internal_final_states(), byte_size, target);
5728  }
5729  }
5730 
5731  // repeated int64 transition_tail = 4;
5732  {
5733  int byte_size = _transition_tail_cached_byte_size_.load(std::memory_order_relaxed);
5734  if (byte_size > 0) {
5735  target = stream->WriteInt64Packed(
5736  4, _internal_transition_tail(), byte_size, target);
5737  }
5738  }
5739 
5740  // repeated int64 transition_head = 5;
5741  {
5742  int byte_size = _transition_head_cached_byte_size_.load(std::memory_order_relaxed);
5743  if (byte_size > 0) {
5744  target = stream->WriteInt64Packed(
5745  5, _internal_transition_head(), byte_size, target);
5746  }
5747  }
5748 
5749  // repeated int64 transition_label = 6;
5750  {
5751  int byte_size = _transition_label_cached_byte_size_.load(std::memory_order_relaxed);
5752  if (byte_size > 0) {
5753  target = stream->WriteInt64Packed(
5754  6, _internal_transition_label(), byte_size, target);
5755  }
5756  }
5757 
5758  // repeated int32 vars = 7;
5759  {
5760  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
5761  if (byte_size > 0) {
5762  target = stream->WriteInt32Packed(
5763  7, _internal_vars(), byte_size, target);
5764  }
5765  }
5766 
5767  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5768  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
5769  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
5770  }
5771  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.AutomatonConstraintProto)
5772  return target;
5773 }
5774 
5776 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.AutomatonConstraintProto)
5777  size_t total_size = 0;
5778 
5779  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5780  // Prevent compiler warnings about cached_has_bits being unused
5781  (void) cached_has_bits;
5782 
5783  // repeated int64 final_states = 3;
5784  {
5785  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5786  Int64Size(this->final_states_);
5787  if (data_size > 0) {
5788  total_size += 1 +
5789  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5790  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5791  }
5792  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5793  _final_states_cached_byte_size_.store(cached_size,
5794  std::memory_order_relaxed);
5795  total_size += data_size;
5796  }
5797 
5798  // repeated int64 transition_tail = 4;
5799  {
5800  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5801  Int64Size(this->transition_tail_);
5802  if (data_size > 0) {
5803  total_size += 1 +
5804  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5805  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5806  }
5807  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5808  _transition_tail_cached_byte_size_.store(cached_size,
5809  std::memory_order_relaxed);
5810  total_size += data_size;
5811  }
5812 
5813  // repeated int64 transition_head = 5;
5814  {
5815  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5816  Int64Size(this->transition_head_);
5817  if (data_size > 0) {
5818  total_size += 1 +
5819  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5820  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5821  }
5822  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5823  _transition_head_cached_byte_size_.store(cached_size,
5824  std::memory_order_relaxed);
5825  total_size += data_size;
5826  }
5827 
5828  // repeated int64 transition_label = 6;
5829  {
5830  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5831  Int64Size(this->transition_label_);
5832  if (data_size > 0) {
5833  total_size += 1 +
5834  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5835  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5836  }
5837  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5838  _transition_label_cached_byte_size_.store(cached_size,
5839  std::memory_order_relaxed);
5840  total_size += data_size;
5841  }
5842 
5843  // repeated int32 vars = 7;
5844  {
5845  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
5846  Int32Size(this->vars_);
5847  if (data_size > 0) {
5848  total_size += 1 +
5849  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
5850  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
5851  }
5852  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
5853  _vars_cached_byte_size_.store(cached_size,
5854  std::memory_order_relaxed);
5855  total_size += data_size;
5856  }
5857 
5858  // int64 starting_state = 2;
5859  if (this->_internal_starting_state() != 0) {
5860  total_size += 1 +
5861  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
5862  this->_internal_starting_state());
5863  }
5864 
5865  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
5866  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
5867  _internal_metadata_, total_size, &_cached_size_);
5868  }
5869  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
5870  SetCachedSize(cached_size);
5871  return total_size;
5872 }
5873 
5874 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData AutomatonConstraintProto::_class_data_ = {
5875  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
5876  AutomatonConstraintProto::MergeImpl
5877 };
5878 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*AutomatonConstraintProto::GetClassData() const { return &_class_data_; }
5879 
5880 void AutomatonConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
5881  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
5882  static_cast<AutomatonConstraintProto *>(to)->MergeFrom(
5883  static_cast<const AutomatonConstraintProto &>(from));
5884 }
5885 
5886 
5888 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.AutomatonConstraintProto)
5889  GOOGLE_DCHECK_NE(&from, this);
5890  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5891  (void) cached_has_bits;
5892 
5893  final_states_.MergeFrom(from.final_states_);
5894  transition_tail_.MergeFrom(from.transition_tail_);
5895  transition_head_.MergeFrom(from.transition_head_);
5896  transition_label_.MergeFrom(from.transition_label_);
5897  vars_.MergeFrom(from.vars_);
5898  if (from._internal_starting_state() != 0) {
5899  _internal_set_starting_state(from._internal_starting_state());
5900  }
5901  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5902 }
5903 
5905 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.AutomatonConstraintProto)
5906  if (&from == this) return;
5907  Clear();
5908  MergeFrom(from);
5909 }
5910 
5912  return true;
5913 }
5914 
5915 void AutomatonConstraintProto::InternalSwap(AutomatonConstraintProto* other) {
5916  using std::swap;
5917  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
5918  final_states_.InternalSwap(&other->final_states_);
5919  transition_tail_.InternalSwap(&other->transition_tail_);
5920  transition_head_.InternalSwap(&other->transition_head_);
5921  transition_label_.InternalSwap(&other->transition_label_);
5922  vars_.InternalSwap(&other->vars_);
5923  swap(starting_state_, other->starting_state_);
5924 }
5925 
5926 ::PROTOBUF_NAMESPACE_ID::Metadata AutomatonConstraintProto::GetMetadata() const {
5927  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
5930 }
5931 
5932 // ===================================================================
5933 
5935  public:
5936 };
5937 
5938 ListOfVariablesProto::ListOfVariablesProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
5939  bool is_message_owned)
5940  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
5941  vars_(arena) {
5942  SharedCtor();
5943  if (!is_message_owned) {
5944  RegisterArenaDtor(arena);
5945  }
5946  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ListOfVariablesProto)
5947 }
5949  : ::PROTOBUF_NAMESPACE_ID::Message(),
5950  vars_(from.vars_) {
5951  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
5952  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ListOfVariablesProto)
5953 }
5954 
5955 inline void ListOfVariablesProto::SharedCtor() {
5956 }
5957 
5959  // @@protoc_insertion_point(destructor:operations_research.sat.ListOfVariablesProto)
5960  if (GetArenaForAllocation() != nullptr) return;
5961  SharedDtor();
5962  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5963 }
5964 
5965 inline void ListOfVariablesProto::SharedDtor() {
5966  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
5967 }
5968 
5969 void ListOfVariablesProto::ArenaDtor(void* object) {
5970  ListOfVariablesProto* _this = reinterpret_cast< ListOfVariablesProto* >(object);
5971  (void)_this;
5972 }
5973 void ListOfVariablesProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
5974 }
5975 void ListOfVariablesProto::SetCachedSize(int size) const {
5976  _cached_size_.Set(size);
5977 }
5978 
5980 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ListOfVariablesProto)
5981  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
5982  // Prevent compiler warnings about cached_has_bits being unused
5983  (void) cached_has_bits;
5984 
5985  vars_.Clear();
5986  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
5987 }
5988 
5989 const char* ListOfVariablesProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
5990 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
5991  while (!ctx->Done(&ptr)) {
5992  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
5993  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
5994  switch (tag >> 3) {
5995  // repeated int32 vars = 1;
5996  case 1:
5997  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
5998  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
5999  CHK_(ptr);
6000  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
6001  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
6002  CHK_(ptr);
6003  } else goto handle_unusual;
6004  continue;
6005  default: {
6006  handle_unusual:
6007  if ((tag == 0) || ((tag & 7) == 4)) {
6008  CHK_(ptr);
6009  ctx->SetLastTag(tag);
6010  goto success;
6011  }
6012  ptr = UnknownFieldParse(tag,
6013  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
6014  ptr, ctx);
6015  CHK_(ptr != nullptr);
6016  continue;
6017  }
6018  } // switch
6019  } // while
6020 success:
6021  return ptr;
6022 failure:
6023  ptr = nullptr;
6024  goto success;
6025 #undef CHK_
6026 }
6027 
6028 ::PROTOBUF_NAMESPACE_ID::uint8* ListOfVariablesProto::_InternalSerialize(
6029  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
6030  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ListOfVariablesProto)
6031  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
6032  (void) cached_has_bits;
6033 
6034  // repeated int32 vars = 1;
6035  {
6036  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
6037  if (byte_size > 0) {
6038  target = stream->WriteInt32Packed(
6039  1, _internal_vars(), byte_size, target);
6040  }
6041  }
6042 
6043  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
6044  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
6045  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
6046  }
6047  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ListOfVariablesProto)
6048  return target;
6049 }
6050 
6052 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ListOfVariablesProto)
6053  size_t total_size = 0;
6054 
6055  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
6056  // Prevent compiler warnings about cached_has_bits being unused
6057  (void) cached_has_bits;
6058 
6059  // repeated int32 vars = 1;
6060  {
6061  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
6062  Int32Size(this->vars_);
6063  if (data_size > 0) {
6064  total_size += 1 +
6065  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
6066  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
6067  }
6068  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
6069  _vars_cached_byte_size_.store(cached_size,
6070  std::memory_order_relaxed);
6071  total_size += data_size;
6072  }
6073 
6074  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
6075  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
6076  _internal_metadata_, total_size, &_cached_size_);
6077  }
6078  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
6079  SetCachedSize(cached_size);
6080  return total_size;
6081 }
6082 
6083 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ListOfVariablesProto::_class_data_ = {
6084  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
6085  ListOfVariablesProto::MergeImpl
6086 };
6087 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ListOfVariablesProto::GetClassData() const { return &_class_data_; }
6088 
6089 void ListOfVariablesProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
6090  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
6091  static_cast<ListOfVariablesProto *>(to)->MergeFrom(
6092  static_cast<const ListOfVariablesProto &>(from));
6093 }
6094 
6095 
6097 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ListOfVariablesProto)
6098  GOOGLE_DCHECK_NE(&from, this);
6099  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
6100  (void) cached_has_bits;
6101 
6102  vars_.MergeFrom(from.vars_);
6103  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
6104 }
6105 
6107 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ListOfVariablesProto)
6108  if (&from == this) return;
6109  Clear();
6110  MergeFrom(from);
6111 }
6112 
6114  return true;
6115 }
6116 
6117 void ListOfVariablesProto::InternalSwap(ListOfVariablesProto* other) {
6118  using std::swap;
6119  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
6120  vars_.InternalSwap(&other->vars_);
6121 }
6122 
6123 ::PROTOBUF_NAMESPACE_ID::Metadata ListOfVariablesProto::GetMetadata() const {
6124  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
6127 }
6128 
6129 // ===================================================================
6130 
6132  public:
6133  static const ::operations_research::sat::BoolArgumentProto& bool_or(const ConstraintProto* msg);
6134  static const ::operations_research::sat::BoolArgumentProto& bool_and(const ConstraintProto* msg);
6135  static const ::operations_research::sat::BoolArgumentProto& at_most_one(const ConstraintProto* msg);
6136  static const ::operations_research::sat::BoolArgumentProto& exactly_one(const ConstraintProto* msg);
6137  static const ::operations_research::sat::BoolArgumentProto& bool_xor(const ConstraintProto* msg);
6138  static const ::operations_research::sat::IntegerArgumentProto& int_div(const ConstraintProto* msg);
6139  static const ::operations_research::sat::IntegerArgumentProto& int_mod(const ConstraintProto* msg);
6140  static const ::operations_research::sat::IntegerArgumentProto& int_max(const ConstraintProto* msg);
6141  static const ::operations_research::sat::LinearArgumentProto& lin_max(const ConstraintProto* msg);
6142  static const ::operations_research::sat::IntegerArgumentProto& int_min(const ConstraintProto* msg);
6143  static const ::operations_research::sat::LinearArgumentProto& lin_min(const ConstraintProto* msg);
6144  static const ::operations_research::sat::IntegerArgumentProto& int_prod(const ConstraintProto* msg);
6145  static const ::operations_research::sat::LinearConstraintProto& linear(const ConstraintProto* msg);
6146  static const ::operations_research::sat::AllDifferentConstraintProto& all_diff(const ConstraintProto* msg);
6147  static const ::operations_research::sat::ElementConstraintProto& element(const ConstraintProto* msg);
6148  static const ::operations_research::sat::CircuitConstraintProto& circuit(const ConstraintProto* msg);
6149  static const ::operations_research::sat::RoutesConstraintProto& routes(const ConstraintProto* msg);
6150  static const ::operations_research::sat::TableConstraintProto& table(const ConstraintProto* msg);
6151  static const ::operations_research::sat::AutomatonConstraintProto& automaton(const ConstraintProto* msg);
6152  static const ::operations_research::sat::InverseConstraintProto& inverse(const ConstraintProto* msg);
6153  static const ::operations_research::sat::ReservoirConstraintProto& reservoir(const ConstraintProto* msg);
6154  static const ::operations_research::sat::IntervalConstraintProto& interval(const ConstraintProto* msg);
6155  static const ::operations_research::sat::NoOverlapConstraintProto& no_overlap(const ConstraintProto* msg);
6156  static const ::operations_research::sat::NoOverlap2DConstraintProto& no_overlap_2d(const ConstraintProto* msg);
6157  static const ::operations_research::sat::CumulativeConstraintProto& cumulative(const ConstraintProto* msg);
6158  static const ::operations_research::sat::ListOfVariablesProto& dummy_constraint(const ConstraintProto* msg);
6159 };
6160 
6161 const ::operations_research::sat::BoolArgumentProto&
6163  return *msg->constraint_.bool_or_;
6164 }
6165 const ::operations_research::sat::BoolArgumentProto&
6167  return *msg->constraint_.bool_and_;
6168 }
6169 const ::operations_research::sat::BoolArgumentProto&
6171  return *msg->constraint_.at_most_one_;
6172 }
6173 const ::operations_research::sat::BoolArgumentProto&
6175  return *msg->constraint_.exactly_one_;
6176 }
6177 const ::operations_research::sat::BoolArgumentProto&
6179  return *msg->constraint_.bool_xor_;
6180 }
6181 const ::operations_research::sat::IntegerArgumentProto&
6183  return *msg->constraint_.int_div_;
6184 }
6185 const ::operations_research::sat::IntegerArgumentProto&
6187  return *msg->constraint_.int_mod_;
6188 }
6189 const ::operations_research::sat::IntegerArgumentProto&
6191  return *msg->constraint_.int_max_;
6192 }
6193 const ::operations_research::sat::LinearArgumentProto&
6195  return *msg->constraint_.lin_max_;
6196 }
6197 const ::operations_research::sat::IntegerArgumentProto&
6199  return *msg->constraint_.int_min_;
6200 }
6201 const ::operations_research::sat::LinearArgumentProto&
6203  return *msg->constraint_.lin_min_;
6204 }
6205 const ::operations_research::sat::IntegerArgumentProto&
6207  return *msg->constraint_.int_prod_;
6208 }
6209 const ::operations_research::sat::LinearConstraintProto&
6211  return *msg->constraint_.linear_;
6212 }
6213 const ::operations_research::sat::AllDifferentConstraintProto&
6215  return *msg->constraint_.all_diff_;
6216 }
6217 const ::operations_research::sat::ElementConstraintProto&
6219  return *msg->constraint_.element_;
6220 }
6221 const ::operations_research::sat::CircuitConstraintProto&
6223  return *msg->constraint_.circuit_;
6224 }
6225 const ::operations_research::sat::RoutesConstraintProto&
6227  return *msg->constraint_.routes_;
6228 }
6229 const ::operations_research::sat::TableConstraintProto&
6231  return *msg->constraint_.table_;
6232 }
6233 const ::operations_research::sat::AutomatonConstraintProto&
6235  return *msg->constraint_.automaton_;
6236 }
6237 const ::operations_research::sat::InverseConstraintProto&
6239  return *msg->constraint_.inverse_;
6240 }
6241 const ::operations_research::sat::ReservoirConstraintProto&
6243  return *msg->constraint_.reservoir_;
6244 }
6245 const ::operations_research::sat::IntervalConstraintProto&
6247  return *msg->constraint_.interval_;
6248 }
6249 const ::operations_research::sat::NoOverlapConstraintProto&
6251  return *msg->constraint_.no_overlap_;
6252 }
6253 const ::operations_research::sat::NoOverlap2DConstraintProto&
6255  return *msg->constraint_.no_overlap_2d_;
6256 }
6257 const ::operations_research::sat::CumulativeConstraintProto&
6259  return *msg->constraint_.cumulative_;
6260 }
6261 const ::operations_research::sat::ListOfVariablesProto&
6263  return *msg->constraint_.dummy_constraint_;
6264 }
6266  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6267  clear_constraint();
6268  if (bool_or) {
6269  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6270  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::BoolArgumentProto>::GetOwningArena(bool_or);
6271  if (message_arena != submessage_arena) {
6272  bool_or = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6273  message_arena, bool_or, submessage_arena);
6274  }
6275  set_has_bool_or();
6276  constraint_.bool_or_ = bool_or;
6277  }
6278  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_or)
6279 }
6281  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6282  clear_constraint();
6283  if (bool_and) {
6284  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6285  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::BoolArgumentProto>::GetOwningArena(bool_and);
6286  if (message_arena != submessage_arena) {
6287  bool_and = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6288  message_arena, bool_and, submessage_arena);
6289  }
6290  set_has_bool_and();
6291  constraint_.bool_and_ = bool_and;
6292  }
6293  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_and)
6294 }
6296  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6297  clear_constraint();
6298  if (at_most_one) {
6299  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6300  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::BoolArgumentProto>::GetOwningArena(at_most_one);
6301  if (message_arena != submessage_arena) {
6302  at_most_one = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6303  message_arena, at_most_one, submessage_arena);
6304  }
6305  set_has_at_most_one();
6306  constraint_.at_most_one_ = at_most_one;
6307  }
6308  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.at_most_one)
6309 }
6311  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6312  clear_constraint();
6313  if (exactly_one) {
6314  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6315  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::BoolArgumentProto>::GetOwningArena(exactly_one);
6316  if (message_arena != submessage_arena) {
6317  exactly_one = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6318  message_arena, exactly_one, submessage_arena);
6319  }
6320  set_has_exactly_one();
6321  constraint_.exactly_one_ = exactly_one;
6322  }
6323  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.exactly_one)
6324 }
6326  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6327  clear_constraint();
6328  if (bool_xor) {
6329  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6330  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::BoolArgumentProto>::GetOwningArena(bool_xor);
6331  if (message_arena != submessage_arena) {
6332  bool_xor = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6333  message_arena, bool_xor, submessage_arena);
6334  }
6335  set_has_bool_xor();
6336  constraint_.bool_xor_ = bool_xor;
6337  }
6338  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.bool_xor)
6339 }
6341  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6342  clear_constraint();
6343  if (int_div) {
6344  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6345  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::IntegerArgumentProto>::GetOwningArena(int_div);
6346  if (message_arena != submessage_arena) {
6347  int_div = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6348  message_arena, int_div, submessage_arena);
6349  }
6350  set_has_int_div();
6351  constraint_.int_div_ = int_div;
6352  }
6353  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_div)
6354 }
6356  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6357  clear_constraint();
6358  if (int_mod) {
6359  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6360  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::IntegerArgumentProto>::GetOwningArena(int_mod);
6361  if (message_arena != submessage_arena) {
6362  int_mod = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6363  message_arena, int_mod, submessage_arena);
6364  }
6365  set_has_int_mod();
6366  constraint_.int_mod_ = int_mod;
6367  }
6368  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_mod)
6369 }
6371  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6372  clear_constraint();
6373  if (int_max) {
6374  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6375  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::IntegerArgumentProto>::GetOwningArena(int_max);
6376  if (message_arena != submessage_arena) {
6377  int_max = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6378  message_arena, int_max, submessage_arena);
6379  }
6380  set_has_int_max();
6381  constraint_.int_max_ = int_max;
6382  }
6383  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_max)
6384 }
6386  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6387  clear_constraint();
6388  if (lin_max) {
6389  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6390  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::LinearArgumentProto>::GetOwningArena(lin_max);
6391  if (message_arena != submessage_arena) {
6392  lin_max = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6393  message_arena, lin_max, submessage_arena);
6394  }
6395  set_has_lin_max();
6396  constraint_.lin_max_ = lin_max;
6397  }
6398  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.lin_max)
6399 }
6401  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6402  clear_constraint();
6403  if (int_min) {
6404  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6405  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::IntegerArgumentProto>::GetOwningArena(int_min);
6406  if (message_arena != submessage_arena) {
6407  int_min = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6408  message_arena, int_min, submessage_arena);
6409  }
6410  set_has_int_min();
6411  constraint_.int_min_ = int_min;
6412  }
6413  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_min)
6414 }
6416  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6417  clear_constraint();
6418  if (lin_min) {
6419  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6420  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::LinearArgumentProto>::GetOwningArena(lin_min);
6421  if (message_arena != submessage_arena) {
6422  lin_min = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6423  message_arena, lin_min, submessage_arena);
6424  }
6425  set_has_lin_min();
6426  constraint_.lin_min_ = lin_min;
6427  }
6428  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.lin_min)
6429 }
6431  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6432  clear_constraint();
6433  if (int_prod) {
6434  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6435  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::IntegerArgumentProto>::GetOwningArena(int_prod);
6436  if (message_arena != submessage_arena) {
6437  int_prod = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6438  message_arena, int_prod, submessage_arena);
6439  }
6440  set_has_int_prod();
6441  constraint_.int_prod_ = int_prod;
6442  }
6443  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.int_prod)
6444 }
6446  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6447  clear_constraint();
6448  if (linear) {
6449  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6450  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::LinearConstraintProto>::GetOwningArena(linear);
6451  if (message_arena != submessage_arena) {
6452  linear = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6453  message_arena, linear, submessage_arena);
6454  }
6455  set_has_linear();
6456  constraint_.linear_ = linear;
6457  }
6458  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.linear)
6459 }
6461  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6462  clear_constraint();
6463  if (all_diff) {
6464  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6465  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::AllDifferentConstraintProto>::GetOwningArena(all_diff);
6466  if (message_arena != submessage_arena) {
6467  all_diff = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6468  message_arena, all_diff, submessage_arena);
6469  }
6470  set_has_all_diff();
6471  constraint_.all_diff_ = all_diff;
6472  }
6473  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.all_diff)
6474 }
6476  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6477  clear_constraint();
6478  if (element) {
6479  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6480  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::ElementConstraintProto>::GetOwningArena(element);
6481  if (message_arena != submessage_arena) {
6482  element = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6483  message_arena, element, submessage_arena);
6484  }
6485  set_has_element();
6486  constraint_.element_ = element;
6487  }
6488  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.element)
6489 }
6491  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6492  clear_constraint();
6493  if (circuit) {
6494  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6495  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::CircuitConstraintProto>::GetOwningArena(circuit);
6496  if (message_arena != submessage_arena) {
6497  circuit = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6498  message_arena, circuit, submessage_arena);
6499  }
6500  set_has_circuit();
6501  constraint_.circuit_ = circuit;
6502  }
6503  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.circuit)
6504 }
6506  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6507  clear_constraint();
6508  if (routes) {
6509  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6510  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::RoutesConstraintProto>::GetOwningArena(routes);
6511  if (message_arena != submessage_arena) {
6512  routes = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6513  message_arena, routes, submessage_arena);
6514  }
6515  set_has_routes();
6516  constraint_.routes_ = routes;
6517  }
6518  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.routes)
6519 }
6521  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6522  clear_constraint();
6523  if (table) {
6524  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6525  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::TableConstraintProto>::GetOwningArena(table);
6526  if (message_arena != submessage_arena) {
6527  table = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6528  message_arena, table, submessage_arena);
6529  }
6530  set_has_table();
6531  constraint_.table_ = table;
6532  }
6533  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.table)
6534 }
6536  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6537  clear_constraint();
6538  if (automaton) {
6539  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6540  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::AutomatonConstraintProto>::GetOwningArena(automaton);
6541  if (message_arena != submessage_arena) {
6542  automaton = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6543  message_arena, automaton, submessage_arena);
6544  }
6545  set_has_automaton();
6546  constraint_.automaton_ = automaton;
6547  }
6548  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.automaton)
6549 }
6551  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6552  clear_constraint();
6553  if (inverse) {
6554  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6555  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::InverseConstraintProto>::GetOwningArena(inverse);
6556  if (message_arena != submessage_arena) {
6557  inverse = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6558  message_arena, inverse, submessage_arena);
6559  }
6560  set_has_inverse();
6561  constraint_.inverse_ = inverse;
6562  }
6563  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.inverse)
6564 }
6566  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6567  clear_constraint();
6568  if (reservoir) {
6569  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6570  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::ReservoirConstraintProto>::GetOwningArena(reservoir);
6571  if (message_arena != submessage_arena) {
6572  reservoir = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6573  message_arena, reservoir, submessage_arena);
6574  }
6575  set_has_reservoir();
6576  constraint_.reservoir_ = reservoir;
6577  }
6578  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.reservoir)
6579 }
6581  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6582  clear_constraint();
6583  if (interval) {
6584  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6585  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::IntervalConstraintProto>::GetOwningArena(interval);
6586  if (message_arena != submessage_arena) {
6587  interval = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6588  message_arena, interval, submessage_arena);
6589  }
6590  set_has_interval();
6591  constraint_.interval_ = interval;
6592  }
6593  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.interval)
6594 }
6596  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6597  clear_constraint();
6598  if (no_overlap) {
6599  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6600  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::NoOverlapConstraintProto>::GetOwningArena(no_overlap);
6601  if (message_arena != submessage_arena) {
6602  no_overlap = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6603  message_arena, no_overlap, submessage_arena);
6604  }
6605  set_has_no_overlap();
6606  constraint_.no_overlap_ = no_overlap;
6607  }
6608  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.no_overlap)
6609 }
6611  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6612  clear_constraint();
6613  if (no_overlap_2d) {
6614  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6615  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::NoOverlap2DConstraintProto>::GetOwningArena(no_overlap_2d);
6616  if (message_arena != submessage_arena) {
6617  no_overlap_2d = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6618  message_arena, no_overlap_2d, submessage_arena);
6619  }
6620  set_has_no_overlap_2d();
6621  constraint_.no_overlap_2d_ = no_overlap_2d;
6622  }
6623  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.no_overlap_2d)
6624 }
6626  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6627  clear_constraint();
6628  if (cumulative) {
6629  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6630  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::CumulativeConstraintProto>::GetOwningArena(cumulative);
6631  if (message_arena != submessage_arena) {
6632  cumulative = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6633  message_arena, cumulative, submessage_arena);
6634  }
6635  set_has_cumulative();
6636  constraint_.cumulative_ = cumulative;
6637  }
6638  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.cumulative)
6639 }
6641  ::PROTOBUF_NAMESPACE_ID::Arena* message_arena = GetArenaForAllocation();
6642  clear_constraint();
6643  if (dummy_constraint) {
6644  ::PROTOBUF_NAMESPACE_ID::Arena* submessage_arena =
6645  ::PROTOBUF_NAMESPACE_ID::Arena::InternalHelper<::operations_research::sat::ListOfVariablesProto>::GetOwningArena(dummy_constraint);
6646  if (message_arena != submessage_arena) {
6647  dummy_constraint = ::PROTOBUF_NAMESPACE_ID::internal::GetOwnedMessage(
6648  message_arena, dummy_constraint, submessage_arena);
6649  }
6650  set_has_dummy_constraint();
6651  constraint_.dummy_constraint_ = dummy_constraint;
6652  }
6653  // @@protoc_insertion_point(field_set_allocated:operations_research.sat.ConstraintProto.dummy_constraint)
6654 }
6655 ConstraintProto::ConstraintProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
6656  bool is_message_owned)
6657  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
6658  enforcement_literal_(arena) {
6659  SharedCtor();
6660  if (!is_message_owned) {
6661  RegisterArenaDtor(arena);
6662  }
6663  // @@protoc_insertion_point(arena_constructor:operations_research.sat.ConstraintProto)
6664 }
6666  : ::PROTOBUF_NAMESPACE_ID::Message(),
6667  enforcement_literal_(from.enforcement_literal_) {
6668  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
6669  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6670  if (!from._internal_name().empty()) {
6671  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
6672  GetArenaForAllocation());
6673  }
6674  clear_has_constraint();
6675  switch (from.constraint_case()) {
6676  case kBoolOr: {
6677  _internal_mutable_bool_or()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_or());
6678  break;
6679  }
6680  case kBoolAnd: {
6681  _internal_mutable_bool_and()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_and());
6682  break;
6683  }
6684  case kAtMostOne: {
6685  _internal_mutable_at_most_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_at_most_one());
6686  break;
6687  }
6688  case kExactlyOne: {
6689  _internal_mutable_exactly_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_exactly_one());
6690  break;
6691  }
6692  case kBoolXor: {
6693  _internal_mutable_bool_xor()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_xor());
6694  break;
6695  }
6696  case kIntDiv: {
6697  _internal_mutable_int_div()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_div());
6698  break;
6699  }
6700  case kIntMod: {
6701  _internal_mutable_int_mod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_mod());
6702  break;
6703  }
6704  case kIntMax: {
6705  _internal_mutable_int_max()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_max());
6706  break;
6707  }
6708  case kLinMax: {
6709  _internal_mutable_lin_max()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_max());
6710  break;
6711  }
6712  case kIntMin: {
6713  _internal_mutable_int_min()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_min());
6714  break;
6715  }
6716  case kLinMin: {
6717  _internal_mutable_lin_min()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_min());
6718  break;
6719  }
6720  case kIntProd: {
6721  _internal_mutable_int_prod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_prod());
6722  break;
6723  }
6724  case kLinear: {
6725  _internal_mutable_linear()->::operations_research::sat::LinearConstraintProto::MergeFrom(from._internal_linear());
6726  break;
6727  }
6728  case kAllDiff: {
6729  _internal_mutable_all_diff()->::operations_research::sat::AllDifferentConstraintProto::MergeFrom(from._internal_all_diff());
6730  break;
6731  }
6732  case kElement: {
6733  _internal_mutable_element()->::operations_research::sat::ElementConstraintProto::MergeFrom(from._internal_element());
6734  break;
6735  }
6736  case kCircuit: {
6737  _internal_mutable_circuit()->::operations_research::sat::CircuitConstraintProto::MergeFrom(from._internal_circuit());
6738  break;
6739  }
6740  case kRoutes: {
6741  _internal_mutable_routes()->::operations_research::sat::RoutesConstraintProto::MergeFrom(from._internal_routes());
6742  break;
6743  }
6744  case kTable: {
6745  _internal_mutable_table()->::operations_research::sat::TableConstraintProto::MergeFrom(from._internal_table());
6746  break;
6747  }
6748  case kAutomaton: {
6749  _internal_mutable_automaton()->::operations_research::sat::AutomatonConstraintProto::MergeFrom(from._internal_automaton());
6750  break;
6751  }
6752  case kInverse: {
6753  _internal_mutable_inverse()->::operations_research::sat::InverseConstraintProto::MergeFrom(from._internal_inverse());
6754  break;
6755  }
6756  case kReservoir: {
6757  _internal_mutable_reservoir()->::operations_research::sat::ReservoirConstraintProto::MergeFrom(from._internal_reservoir());
6758  break;
6759  }
6760  case kInterval: {
6761  _internal_mutable_interval()->::operations_research::sat::IntervalConstraintProto::MergeFrom(from._internal_interval());
6762  break;
6763  }
6764  case kNoOverlap: {
6765  _internal_mutable_no_overlap()->::operations_research::sat::NoOverlapConstraintProto::MergeFrom(from._internal_no_overlap());
6766  break;
6767  }
6768  case kNoOverlap2D: {
6769  _internal_mutable_no_overlap_2d()->::operations_research::sat::NoOverlap2DConstraintProto::MergeFrom(from._internal_no_overlap_2d());
6770  break;
6771  }
6772  case kCumulative: {
6773  _internal_mutable_cumulative()->::operations_research::sat::CumulativeConstraintProto::MergeFrom(from._internal_cumulative());
6774  break;
6775  }
6776  case kDummyConstraint: {
6777  _internal_mutable_dummy_constraint()->::operations_research::sat::ListOfVariablesProto::MergeFrom(from._internal_dummy_constraint());
6778  break;
6779  }
6780  case CONSTRAINT_NOT_SET: {
6781  break;
6782  }
6783  }
6784  // @@protoc_insertion_point(copy_constructor:operations_research.sat.ConstraintProto)
6785 }
6786 
6787 inline void ConstraintProto::SharedCtor() {
6788 name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6789 clear_has_constraint();
6790 }
6791 
6793  // @@protoc_insertion_point(destructor:operations_research.sat.ConstraintProto)
6794  if (GetArenaForAllocation() != nullptr) return;
6795  SharedDtor();
6796  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
6797 }
6798 
6799 inline void ConstraintProto::SharedDtor() {
6800  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
6801  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
6802  if (has_constraint()) {
6803  clear_constraint();
6804  }
6805 }
6806 
6807 void ConstraintProto::ArenaDtor(void* object) {
6808  ConstraintProto* _this = reinterpret_cast< ConstraintProto* >(object);
6809  (void)_this;
6810 }
6811 void ConstraintProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
6812 }
6813 void ConstraintProto::SetCachedSize(int size) const {
6814  _cached_size_.Set(size);
6815 }
6816 
6818 // @@protoc_insertion_point(one_of_clear_start:operations_research.sat.ConstraintProto)
6819  switch (constraint_case()) {
6820  case kBoolOr: {
6821  if (GetArenaForAllocation() == nullptr) {
6822  delete constraint_.bool_or_;
6823  }
6824  break;
6825  }
6826  case kBoolAnd: {
6827  if (GetArenaForAllocation() == nullptr) {
6828  delete constraint_.bool_and_;
6829  }
6830  break;
6831  }
6832  case kAtMostOne: {
6833  if (GetArenaForAllocation() == nullptr) {
6834  delete constraint_.at_most_one_;
6835  }
6836  break;
6837  }
6838  case kExactlyOne: {
6839  if (GetArenaForAllocation() == nullptr) {
6840  delete constraint_.exactly_one_;
6841  }
6842  break;
6843  }
6844  case kBoolXor: {
6845  if (GetArenaForAllocation() == nullptr) {
6846  delete constraint_.bool_xor_;
6847  }
6848  break;
6849  }
6850  case kIntDiv: {
6851  if (GetArenaForAllocation() == nullptr) {
6852  delete constraint_.int_div_;
6853  }
6854  break;
6855  }
6856  case kIntMod: {
6857  if (GetArenaForAllocation() == nullptr) {
6858  delete constraint_.int_mod_;
6859  }
6860  break;
6861  }
6862  case kIntMax: {
6863  if (GetArenaForAllocation() == nullptr) {
6864  delete constraint_.int_max_;
6865  }
6866  break;
6867  }
6868  case kLinMax: {
6869  if (GetArenaForAllocation() == nullptr) {
6870  delete constraint_.lin_max_;
6871  }
6872  break;
6873  }
6874  case kIntMin: {
6875  if (GetArenaForAllocation() == nullptr) {
6876  delete constraint_.int_min_;
6877  }
6878  break;
6879  }
6880  case kLinMin: {
6881  if (GetArenaForAllocation() == nullptr) {
6882  delete constraint_.lin_min_;
6883  }
6884  break;
6885  }
6886  case kIntProd: {
6887  if (GetArenaForAllocation() == nullptr) {
6888  delete constraint_.int_prod_;
6889  }
6890  break;
6891  }
6892  case kLinear: {
6893  if (GetArenaForAllocation() == nullptr) {
6894  delete constraint_.linear_;
6895  }
6896  break;
6897  }
6898  case kAllDiff: {
6899  if (GetArenaForAllocation() == nullptr) {
6900  delete constraint_.all_diff_;
6901  }
6902  break;
6903  }
6904  case kElement: {
6905  if (GetArenaForAllocation() == nullptr) {
6906  delete constraint_.element_;
6907  }
6908  break;
6909  }
6910  case kCircuit: {
6911  if (GetArenaForAllocation() == nullptr) {
6912  delete constraint_.circuit_;
6913  }
6914  break;
6915  }
6916  case kRoutes: {
6917  if (GetArenaForAllocation() == nullptr) {
6918  delete constraint_.routes_;
6919  }
6920  break;
6921  }
6922  case kTable: {
6923  if (GetArenaForAllocation() == nullptr) {
6924  delete constraint_.table_;
6925  }
6926  break;
6927  }
6928  case kAutomaton: {
6929  if (GetArenaForAllocation() == nullptr) {
6930  delete constraint_.automaton_;
6931  }
6932  break;
6933  }
6934  case kInverse: {
6935  if (GetArenaForAllocation() == nullptr) {
6936  delete constraint_.inverse_;
6937  }
6938  break;
6939  }
6940  case kReservoir: {
6941  if (GetArenaForAllocation() == nullptr) {
6942  delete constraint_.reservoir_;
6943  }
6944  break;
6945  }
6946  case kInterval: {
6947  if (GetArenaForAllocation() == nullptr) {
6948  delete constraint_.interval_;
6949  }
6950  break;
6951  }
6952  case kNoOverlap: {
6953  if (GetArenaForAllocation() == nullptr) {
6954  delete constraint_.no_overlap_;
6955  }
6956  break;
6957  }
6958  case kNoOverlap2D: {
6959  if (GetArenaForAllocation() == nullptr) {
6960  delete constraint_.no_overlap_2d_;
6961  }
6962  break;
6963  }
6964  case kCumulative: {
6965  if (GetArenaForAllocation() == nullptr) {
6966  delete constraint_.cumulative_;
6967  }
6968  break;
6969  }
6970  case kDummyConstraint: {
6971  if (GetArenaForAllocation() == nullptr) {
6972  delete constraint_.dummy_constraint_;
6973  }
6974  break;
6975  }
6976  case CONSTRAINT_NOT_SET: {
6977  break;
6978  }
6979  }
6980  _oneof_case_[0] = CONSTRAINT_NOT_SET;
6981 }
6982 
6983 
6985 // @@protoc_insertion_point(message_clear_start:operations_research.sat.ConstraintProto)
6986  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
6987  // Prevent compiler warnings about cached_has_bits being unused
6988  (void) cached_has_bits;
6989 
6990  enforcement_literal_.Clear();
6991  name_.ClearToEmpty();
6992  clear_constraint();
6993  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
6994 }
6995 
6996 const char* ConstraintProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
6997 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
6998  while (!ctx->Done(&ptr)) {
6999  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
7000  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
7001  switch (tag >> 3) {
7002  // string name = 1;
7003  case 1:
7004  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
7005  auto str = _internal_mutable_name();
7006  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
7007  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.ConstraintProto.name"));
7008  CHK_(ptr);
7009  } else goto handle_unusual;
7010  continue;
7011  // repeated int32 enforcement_literal = 2;
7012  case 2:
7013  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
7014  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_enforcement_literal(), ptr, ctx);
7015  CHK_(ptr);
7016  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
7017  _internal_add_enforcement_literal(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7018  CHK_(ptr);
7019  } else goto handle_unusual;
7020  continue;
7021  // .operations_research.sat.BoolArgumentProto bool_or = 3;
7022  case 3:
7023  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
7024  ptr = ctx->ParseMessage(_internal_mutable_bool_or(), ptr);
7025  CHK_(ptr);
7026  } else goto handle_unusual;
7027  continue;
7028  // .operations_research.sat.BoolArgumentProto bool_and = 4;
7029  case 4:
7030  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
7031  ptr = ctx->ParseMessage(_internal_mutable_bool_and(), ptr);
7032  CHK_(ptr);
7033  } else goto handle_unusual;
7034  continue;
7035  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
7036  case 5:
7037  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
7038  ptr = ctx->ParseMessage(_internal_mutable_bool_xor(), ptr);
7039  CHK_(ptr);
7040  } else goto handle_unusual;
7041  continue;
7042  // .operations_research.sat.IntegerArgumentProto int_div = 7;
7043  case 7:
7044  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
7045  ptr = ctx->ParseMessage(_internal_mutable_int_div(), ptr);
7046  CHK_(ptr);
7047  } else goto handle_unusual;
7048  continue;
7049  // .operations_research.sat.IntegerArgumentProto int_mod = 8;
7050  case 8:
7051  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
7052  ptr = ctx->ParseMessage(_internal_mutable_int_mod(), ptr);
7053  CHK_(ptr);
7054  } else goto handle_unusual;
7055  continue;
7056  // .operations_research.sat.IntegerArgumentProto int_max = 9;
7057  case 9:
7058  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 74)) {
7059  ptr = ctx->ParseMessage(_internal_mutable_int_max(), ptr);
7060  CHK_(ptr);
7061  } else goto handle_unusual;
7062  continue;
7063  // .operations_research.sat.IntegerArgumentProto int_min = 10;
7064  case 10:
7065  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 82)) {
7066  ptr = ctx->ParseMessage(_internal_mutable_int_min(), ptr);
7067  CHK_(ptr);
7068  } else goto handle_unusual;
7069  continue;
7070  // .operations_research.sat.IntegerArgumentProto int_prod = 11;
7071  case 11:
7072  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 90)) {
7073  ptr = ctx->ParseMessage(_internal_mutable_int_prod(), ptr);
7074  CHK_(ptr);
7075  } else goto handle_unusual;
7076  continue;
7077  // .operations_research.sat.LinearConstraintProto linear = 12;
7078  case 12:
7079  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 98)) {
7080  ptr = ctx->ParseMessage(_internal_mutable_linear(), ptr);
7081  CHK_(ptr);
7082  } else goto handle_unusual;
7083  continue;
7084  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
7085  case 13:
7086  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 106)) {
7087  ptr = ctx->ParseMessage(_internal_mutable_all_diff(), ptr);
7088  CHK_(ptr);
7089  } else goto handle_unusual;
7090  continue;
7091  // .operations_research.sat.ElementConstraintProto element = 14;
7092  case 14:
7093  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 114)) {
7094  ptr = ctx->ParseMessage(_internal_mutable_element(), ptr);
7095  CHK_(ptr);
7096  } else goto handle_unusual;
7097  continue;
7098  // .operations_research.sat.CircuitConstraintProto circuit = 15;
7099  case 15:
7100  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 122)) {
7101  ptr = ctx->ParseMessage(_internal_mutable_circuit(), ptr);
7102  CHK_(ptr);
7103  } else goto handle_unusual;
7104  continue;
7105  // .operations_research.sat.TableConstraintProto table = 16;
7106  case 16:
7107  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 130)) {
7108  ptr = ctx->ParseMessage(_internal_mutable_table(), ptr);
7109  CHK_(ptr);
7110  } else goto handle_unusual;
7111  continue;
7112  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
7113  case 17:
7114  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 138)) {
7115  ptr = ctx->ParseMessage(_internal_mutable_automaton(), ptr);
7116  CHK_(ptr);
7117  } else goto handle_unusual;
7118  continue;
7119  // .operations_research.sat.InverseConstraintProto inverse = 18;
7120  case 18:
7121  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) {
7122  ptr = ctx->ParseMessage(_internal_mutable_inverse(), ptr);
7123  CHK_(ptr);
7124  } else goto handle_unusual;
7125  continue;
7126  // .operations_research.sat.IntervalConstraintProto interval = 19;
7127  case 19:
7128  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
7129  ptr = ctx->ParseMessage(_internal_mutable_interval(), ptr);
7130  CHK_(ptr);
7131  } else goto handle_unusual;
7132  continue;
7133  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
7134  case 20:
7135  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
7136  ptr = ctx->ParseMessage(_internal_mutable_no_overlap(), ptr);
7137  CHK_(ptr);
7138  } else goto handle_unusual;
7139  continue;
7140  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
7141  case 21:
7142  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
7143  ptr = ctx->ParseMessage(_internal_mutable_no_overlap_2d(), ptr);
7144  CHK_(ptr);
7145  } else goto handle_unusual;
7146  continue;
7147  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
7148  case 22:
7149  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 178)) {
7150  ptr = ctx->ParseMessage(_internal_mutable_cumulative(), ptr);
7151  CHK_(ptr);
7152  } else goto handle_unusual;
7153  continue;
7154  // .operations_research.sat.RoutesConstraintProto routes = 23;
7155  case 23:
7156  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
7157  ptr = ctx->ParseMessage(_internal_mutable_routes(), ptr);
7158  CHK_(ptr);
7159  } else goto handle_unusual;
7160  continue;
7161  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
7162  case 24:
7163  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 194)) {
7164  ptr = ctx->ParseMessage(_internal_mutable_reservoir(), ptr);
7165  CHK_(ptr);
7166  } else goto handle_unusual;
7167  continue;
7168  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
7169  case 26:
7170  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 210)) {
7171  ptr = ctx->ParseMessage(_internal_mutable_at_most_one(), ptr);
7172  CHK_(ptr);
7173  } else goto handle_unusual;
7174  continue;
7175  // .operations_research.sat.LinearArgumentProto lin_max = 27;
7176  case 27:
7177  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 218)) {
7178  ptr = ctx->ParseMessage(_internal_mutable_lin_max(), ptr);
7179  CHK_(ptr);
7180  } else goto handle_unusual;
7181  continue;
7182  // .operations_research.sat.LinearArgumentProto lin_min = 28;
7183  case 28:
7184  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 226)) {
7185  ptr = ctx->ParseMessage(_internal_mutable_lin_min(), ptr);
7186  CHK_(ptr);
7187  } else goto handle_unusual;
7188  continue;
7189  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
7190  case 29:
7191  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 234)) {
7192  ptr = ctx->ParseMessage(_internal_mutable_exactly_one(), ptr);
7193  CHK_(ptr);
7194  } else goto handle_unusual;
7195  continue;
7196  // .operations_research.sat.ListOfVariablesProto dummy_constraint = 30;
7197  case 30:
7198  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 242)) {
7199  ptr = ctx->ParseMessage(_internal_mutable_dummy_constraint(), ptr);
7200  CHK_(ptr);
7201  } else goto handle_unusual;
7202  continue;
7203  default: {
7204  handle_unusual:
7205  if ((tag == 0) || ((tag & 7) == 4)) {
7206  CHK_(ptr);
7207  ctx->SetLastTag(tag);
7208  goto success;
7209  }
7210  ptr = UnknownFieldParse(tag,
7211  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
7212  ptr, ctx);
7213  CHK_(ptr != nullptr);
7214  continue;
7215  }
7216  } // switch
7217  } // while
7218 success:
7219  return ptr;
7220 failure:
7221  ptr = nullptr;
7222  goto success;
7223 #undef CHK_
7224 }
7225 
7226 ::PROTOBUF_NAMESPACE_ID::uint8* ConstraintProto::_InternalSerialize(
7227  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
7228  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.ConstraintProto)
7229  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7230  (void) cached_has_bits;
7231 
7232  // string name = 1;
7233  if (!this->_internal_name().empty()) {
7234  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
7235  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
7236  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
7237  "operations_research.sat.ConstraintProto.name");
7238  target = stream->WriteStringMaybeAliased(
7239  1, this->_internal_name(), target);
7240  }
7241 
7242  // repeated int32 enforcement_literal = 2;
7243  {
7244  int byte_size = _enforcement_literal_cached_byte_size_.load(std::memory_order_relaxed);
7245  if (byte_size > 0) {
7246  target = stream->WriteInt32Packed(
7247  2, _internal_enforcement_literal(), byte_size, target);
7248  }
7249  }
7250 
7251  // .operations_research.sat.BoolArgumentProto bool_or = 3;
7252  if (_internal_has_bool_or()) {
7253  target = stream->EnsureSpace(target);
7254  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7255  InternalWriteMessage(
7256  3, _Internal::bool_or(this), target, stream);
7257  }
7258 
7259  // .operations_research.sat.BoolArgumentProto bool_and = 4;
7260  if (_internal_has_bool_and()) {
7261  target = stream->EnsureSpace(target);
7262  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7263  InternalWriteMessage(
7264  4, _Internal::bool_and(this), target, stream);
7265  }
7266 
7267  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
7268  if (_internal_has_bool_xor()) {
7269  target = stream->EnsureSpace(target);
7270  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7271  InternalWriteMessage(
7272  5, _Internal::bool_xor(this), target, stream);
7273  }
7274 
7275  // .operations_research.sat.IntegerArgumentProto int_div = 7;
7276  if (_internal_has_int_div()) {
7277  target = stream->EnsureSpace(target);
7278  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7279  InternalWriteMessage(
7280  7, _Internal::int_div(this), target, stream);
7281  }
7282 
7283  // .operations_research.sat.IntegerArgumentProto int_mod = 8;
7284  if (_internal_has_int_mod()) {
7285  target = stream->EnsureSpace(target);
7286  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7287  InternalWriteMessage(
7288  8, _Internal::int_mod(this), target, stream);
7289  }
7290 
7291  // .operations_research.sat.IntegerArgumentProto int_max = 9;
7292  if (_internal_has_int_max()) {
7293  target = stream->EnsureSpace(target);
7294  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7295  InternalWriteMessage(
7296  9, _Internal::int_max(this), target, stream);
7297  }
7298 
7299  // .operations_research.sat.IntegerArgumentProto int_min = 10;
7300  if (_internal_has_int_min()) {
7301  target = stream->EnsureSpace(target);
7302  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7303  InternalWriteMessage(
7304  10, _Internal::int_min(this), target, stream);
7305  }
7306 
7307  // .operations_research.sat.IntegerArgumentProto int_prod = 11;
7308  if (_internal_has_int_prod()) {
7309  target = stream->EnsureSpace(target);
7310  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7311  InternalWriteMessage(
7312  11, _Internal::int_prod(this), target, stream);
7313  }
7314 
7315  // .operations_research.sat.LinearConstraintProto linear = 12;
7316  if (_internal_has_linear()) {
7317  target = stream->EnsureSpace(target);
7318  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7319  InternalWriteMessage(
7320  12, _Internal::linear(this), target, stream);
7321  }
7322 
7323  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
7324  if (_internal_has_all_diff()) {
7325  target = stream->EnsureSpace(target);
7326  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7327  InternalWriteMessage(
7328  13, _Internal::all_diff(this), target, stream);
7329  }
7330 
7331  // .operations_research.sat.ElementConstraintProto element = 14;
7332  if (_internal_has_element()) {
7333  target = stream->EnsureSpace(target);
7334  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7335  InternalWriteMessage(
7336  14, _Internal::element(this), target, stream);
7337  }
7338 
7339  // .operations_research.sat.CircuitConstraintProto circuit = 15;
7340  if (_internal_has_circuit()) {
7341  target = stream->EnsureSpace(target);
7342  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7343  InternalWriteMessage(
7344  15, _Internal::circuit(this), target, stream);
7345  }
7346 
7347  // .operations_research.sat.TableConstraintProto table = 16;
7348  if (_internal_has_table()) {
7349  target = stream->EnsureSpace(target);
7350  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7351  InternalWriteMessage(
7352  16, _Internal::table(this), target, stream);
7353  }
7354 
7355  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
7356  if (_internal_has_automaton()) {
7357  target = stream->EnsureSpace(target);
7358  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7359  InternalWriteMessage(
7360  17, _Internal::automaton(this), target, stream);
7361  }
7362 
7363  // .operations_research.sat.InverseConstraintProto inverse = 18;
7364  if (_internal_has_inverse()) {
7365  target = stream->EnsureSpace(target);
7366  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7367  InternalWriteMessage(
7368  18, _Internal::inverse(this), target, stream);
7369  }
7370 
7371  // .operations_research.sat.IntervalConstraintProto interval = 19;
7372  if (_internal_has_interval()) {
7373  target = stream->EnsureSpace(target);
7374  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7375  InternalWriteMessage(
7376  19, _Internal::interval(this), target, stream);
7377  }
7378 
7379  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
7380  if (_internal_has_no_overlap()) {
7381  target = stream->EnsureSpace(target);
7382  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7383  InternalWriteMessage(
7384  20, _Internal::no_overlap(this), target, stream);
7385  }
7386 
7387  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
7388  if (_internal_has_no_overlap_2d()) {
7389  target = stream->EnsureSpace(target);
7390  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7391  InternalWriteMessage(
7392  21, _Internal::no_overlap_2d(this), target, stream);
7393  }
7394 
7395  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
7396  if (_internal_has_cumulative()) {
7397  target = stream->EnsureSpace(target);
7398  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7399  InternalWriteMessage(
7400  22, _Internal::cumulative(this), target, stream);
7401  }
7402 
7403  // .operations_research.sat.RoutesConstraintProto routes = 23;
7404  if (_internal_has_routes()) {
7405  target = stream->EnsureSpace(target);
7406  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7407  InternalWriteMessage(
7408  23, _Internal::routes(this), target, stream);
7409  }
7410 
7411  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
7412  if (_internal_has_reservoir()) {
7413  target = stream->EnsureSpace(target);
7414  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7415  InternalWriteMessage(
7416  24, _Internal::reservoir(this), target, stream);
7417  }
7418 
7419  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
7420  if (_internal_has_at_most_one()) {
7421  target = stream->EnsureSpace(target);
7422  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7423  InternalWriteMessage(
7424  26, _Internal::at_most_one(this), target, stream);
7425  }
7426 
7427  // .operations_research.sat.LinearArgumentProto lin_max = 27;
7428  if (_internal_has_lin_max()) {
7429  target = stream->EnsureSpace(target);
7430  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7431  InternalWriteMessage(
7432  27, _Internal::lin_max(this), target, stream);
7433  }
7434 
7435  // .operations_research.sat.LinearArgumentProto lin_min = 28;
7436  if (_internal_has_lin_min()) {
7437  target = stream->EnsureSpace(target);
7438  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7439  InternalWriteMessage(
7440  28, _Internal::lin_min(this), target, stream);
7441  }
7442 
7443  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
7444  if (_internal_has_exactly_one()) {
7445  target = stream->EnsureSpace(target);
7446  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7447  InternalWriteMessage(
7448  29, _Internal::exactly_one(this), target, stream);
7449  }
7450 
7451  // .operations_research.sat.ListOfVariablesProto dummy_constraint = 30;
7452  if (_internal_has_dummy_constraint()) {
7453  target = stream->EnsureSpace(target);
7454  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7455  InternalWriteMessage(
7456  30, _Internal::dummy_constraint(this), target, stream);
7457  }
7458 
7459  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7460  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
7461  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
7462  }
7463  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.ConstraintProto)
7464  return target;
7465 }
7466 
7468 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.ConstraintProto)
7469  size_t total_size = 0;
7470 
7471  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7472  // Prevent compiler warnings about cached_has_bits being unused
7473  (void) cached_has_bits;
7474 
7475  // repeated int32 enforcement_literal = 2;
7476  {
7477  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
7478  Int32Size(this->enforcement_literal_);
7479  if (data_size > 0) {
7480  total_size += 1 +
7481  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
7482  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
7483  }
7484  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
7485  _enforcement_literal_cached_byte_size_.store(cached_size,
7486  std::memory_order_relaxed);
7487  total_size += data_size;
7488  }
7489 
7490  // string name = 1;
7491  if (!this->_internal_name().empty()) {
7492  total_size += 1 +
7493  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
7494  this->_internal_name());
7495  }
7496 
7497  switch (constraint_case()) {
7498  // .operations_research.sat.BoolArgumentProto bool_or = 3;
7499  case kBoolOr: {
7500  total_size += 1 +
7501  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7502  *constraint_.bool_or_);
7503  break;
7504  }
7505  // .operations_research.sat.BoolArgumentProto bool_and = 4;
7506  case kBoolAnd: {
7507  total_size += 1 +
7508  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7509  *constraint_.bool_and_);
7510  break;
7511  }
7512  // .operations_research.sat.BoolArgumentProto at_most_one = 26;
7513  case kAtMostOne: {
7514  total_size += 2 +
7515  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7516  *constraint_.at_most_one_);
7517  break;
7518  }
7519  // .operations_research.sat.BoolArgumentProto exactly_one = 29;
7520  case kExactlyOne: {
7521  total_size += 2 +
7522  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7523  *constraint_.exactly_one_);
7524  break;
7525  }
7526  // .operations_research.sat.BoolArgumentProto bool_xor = 5;
7527  case kBoolXor: {
7528  total_size += 1 +
7529  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7530  *constraint_.bool_xor_);
7531  break;
7532  }
7533  // .operations_research.sat.IntegerArgumentProto int_div = 7;
7534  case kIntDiv: {
7535  total_size += 1 +
7536  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7537  *constraint_.int_div_);
7538  break;
7539  }
7540  // .operations_research.sat.IntegerArgumentProto int_mod = 8;
7541  case kIntMod: {
7542  total_size += 1 +
7543  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7544  *constraint_.int_mod_);
7545  break;
7546  }
7547  // .operations_research.sat.IntegerArgumentProto int_max = 9;
7548  case kIntMax: {
7549  total_size += 1 +
7550  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7551  *constraint_.int_max_);
7552  break;
7553  }
7554  // .operations_research.sat.LinearArgumentProto lin_max = 27;
7555  case kLinMax: {
7556  total_size += 2 +
7557  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7558  *constraint_.lin_max_);
7559  break;
7560  }
7561  // .operations_research.sat.IntegerArgumentProto int_min = 10;
7562  case kIntMin: {
7563  total_size += 1 +
7564  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7565  *constraint_.int_min_);
7566  break;
7567  }
7568  // .operations_research.sat.LinearArgumentProto lin_min = 28;
7569  case kLinMin: {
7570  total_size += 2 +
7571  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7572  *constraint_.lin_min_);
7573  break;
7574  }
7575  // .operations_research.sat.IntegerArgumentProto int_prod = 11;
7576  case kIntProd: {
7577  total_size += 1 +
7578  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7579  *constraint_.int_prod_);
7580  break;
7581  }
7582  // .operations_research.sat.LinearConstraintProto linear = 12;
7583  case kLinear: {
7584  total_size += 1 +
7585  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7586  *constraint_.linear_);
7587  break;
7588  }
7589  // .operations_research.sat.AllDifferentConstraintProto all_diff = 13;
7590  case kAllDiff: {
7591  total_size += 1 +
7592  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7593  *constraint_.all_diff_);
7594  break;
7595  }
7596  // .operations_research.sat.ElementConstraintProto element = 14;
7597  case kElement: {
7598  total_size += 1 +
7599  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7600  *constraint_.element_);
7601  break;
7602  }
7603  // .operations_research.sat.CircuitConstraintProto circuit = 15;
7604  case kCircuit: {
7605  total_size += 1 +
7606  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7607  *constraint_.circuit_);
7608  break;
7609  }
7610  // .operations_research.sat.RoutesConstraintProto routes = 23;
7611  case kRoutes: {
7612  total_size += 2 +
7613  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7614  *constraint_.routes_);
7615  break;
7616  }
7617  // .operations_research.sat.TableConstraintProto table = 16;
7618  case kTable: {
7619  total_size += 2 +
7620  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7621  *constraint_.table_);
7622  break;
7623  }
7624  // .operations_research.sat.AutomatonConstraintProto automaton = 17;
7625  case kAutomaton: {
7626  total_size += 2 +
7627  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7628  *constraint_.automaton_);
7629  break;
7630  }
7631  // .operations_research.sat.InverseConstraintProto inverse = 18;
7632  case kInverse: {
7633  total_size += 2 +
7634  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7635  *constraint_.inverse_);
7636  break;
7637  }
7638  // .operations_research.sat.ReservoirConstraintProto reservoir = 24;
7639  case kReservoir: {
7640  total_size += 2 +
7641  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7642  *constraint_.reservoir_);
7643  break;
7644  }
7645  // .operations_research.sat.IntervalConstraintProto interval = 19;
7646  case kInterval: {
7647  total_size += 2 +
7648  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7649  *constraint_.interval_);
7650  break;
7651  }
7652  // .operations_research.sat.NoOverlapConstraintProto no_overlap = 20;
7653  case kNoOverlap: {
7654  total_size += 2 +
7655  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7656  *constraint_.no_overlap_);
7657  break;
7658  }
7659  // .operations_research.sat.NoOverlap2DConstraintProto no_overlap_2d = 21;
7660  case kNoOverlap2D: {
7661  total_size += 2 +
7662  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7663  *constraint_.no_overlap_2d_);
7664  break;
7665  }
7666  // .operations_research.sat.CumulativeConstraintProto cumulative = 22;
7667  case kCumulative: {
7668  total_size += 2 +
7669  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7670  *constraint_.cumulative_);
7671  break;
7672  }
7673  // .operations_research.sat.ListOfVariablesProto dummy_constraint = 30;
7674  case kDummyConstraint: {
7675  total_size += 2 +
7676  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
7677  *constraint_.dummy_constraint_);
7678  break;
7679  }
7680  case CONSTRAINT_NOT_SET: {
7681  break;
7682  }
7683  }
7684  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
7685  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
7686  _internal_metadata_, total_size, &_cached_size_);
7687  }
7688  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
7689  SetCachedSize(cached_size);
7690  return total_size;
7691 }
7692 
7693 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData ConstraintProto::_class_data_ = {
7694  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
7695  ConstraintProto::MergeImpl
7696 };
7697 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*ConstraintProto::GetClassData() const { return &_class_data_; }
7698 
7699 void ConstraintProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
7700  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
7701  static_cast<ConstraintProto *>(to)->MergeFrom(
7702  static_cast<const ConstraintProto &>(from));
7703 }
7704 
7705 
7707 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.ConstraintProto)
7708  GOOGLE_DCHECK_NE(&from, this);
7709  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7710  (void) cached_has_bits;
7711 
7712  enforcement_literal_.MergeFrom(from.enforcement_literal_);
7713  if (!from._internal_name().empty()) {
7714  _internal_set_name(from._internal_name());
7715  }
7716  switch (from.constraint_case()) {
7717  case kBoolOr: {
7718  _internal_mutable_bool_or()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_or());
7719  break;
7720  }
7721  case kBoolAnd: {
7722  _internal_mutable_bool_and()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_and());
7723  break;
7724  }
7725  case kAtMostOne: {
7726  _internal_mutable_at_most_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_at_most_one());
7727  break;
7728  }
7729  case kExactlyOne: {
7730  _internal_mutable_exactly_one()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_exactly_one());
7731  break;
7732  }
7733  case kBoolXor: {
7734  _internal_mutable_bool_xor()->::operations_research::sat::BoolArgumentProto::MergeFrom(from._internal_bool_xor());
7735  break;
7736  }
7737  case kIntDiv: {
7738  _internal_mutable_int_div()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_div());
7739  break;
7740  }
7741  case kIntMod: {
7742  _internal_mutable_int_mod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_mod());
7743  break;
7744  }
7745  case kIntMax: {
7746  _internal_mutable_int_max()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_max());
7747  break;
7748  }
7749  case kLinMax: {
7750  _internal_mutable_lin_max()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_max());
7751  break;
7752  }
7753  case kIntMin: {
7754  _internal_mutable_int_min()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_min());
7755  break;
7756  }
7757  case kLinMin: {
7758  _internal_mutable_lin_min()->::operations_research::sat::LinearArgumentProto::MergeFrom(from._internal_lin_min());
7759  break;
7760  }
7761  case kIntProd: {
7762  _internal_mutable_int_prod()->::operations_research::sat::IntegerArgumentProto::MergeFrom(from._internal_int_prod());
7763  break;
7764  }
7765  case kLinear: {
7766  _internal_mutable_linear()->::operations_research::sat::LinearConstraintProto::MergeFrom(from._internal_linear());
7767  break;
7768  }
7769  case kAllDiff: {
7770  _internal_mutable_all_diff()->::operations_research::sat::AllDifferentConstraintProto::MergeFrom(from._internal_all_diff());
7771  break;
7772  }
7773  case kElement: {
7774  _internal_mutable_element()->::operations_research::sat::ElementConstraintProto::MergeFrom(from._internal_element());
7775  break;
7776  }
7777  case kCircuit: {
7778  _internal_mutable_circuit()->::operations_research::sat::CircuitConstraintProto::MergeFrom(from._internal_circuit());
7779  break;
7780  }
7781  case kRoutes: {
7782  _internal_mutable_routes()->::operations_research::sat::RoutesConstraintProto::MergeFrom(from._internal_routes());
7783  break;
7784  }
7785  case kTable: {
7786  _internal_mutable_table()->::operations_research::sat::TableConstraintProto::MergeFrom(from._internal_table());
7787  break;
7788  }
7789  case kAutomaton: {
7790  _internal_mutable_automaton()->::operations_research::sat::AutomatonConstraintProto::MergeFrom(from._internal_automaton());
7791  break;
7792  }
7793  case kInverse: {
7794  _internal_mutable_inverse()->::operations_research::sat::InverseConstraintProto::MergeFrom(from._internal_inverse());
7795  break;
7796  }
7797  case kReservoir: {
7798  _internal_mutable_reservoir()->::operations_research::sat::ReservoirConstraintProto::MergeFrom(from._internal_reservoir());
7799  break;
7800  }
7801  case kInterval: {
7802  _internal_mutable_interval()->::operations_research::sat::IntervalConstraintProto::MergeFrom(from._internal_interval());
7803  break;
7804  }
7805  case kNoOverlap: {
7806  _internal_mutable_no_overlap()->::operations_research::sat::NoOverlapConstraintProto::MergeFrom(from._internal_no_overlap());
7807  break;
7808  }
7809  case kNoOverlap2D: {
7810  _internal_mutable_no_overlap_2d()->::operations_research::sat::NoOverlap2DConstraintProto::MergeFrom(from._internal_no_overlap_2d());
7811  break;
7812  }
7813  case kCumulative: {
7814  _internal_mutable_cumulative()->::operations_research::sat::CumulativeConstraintProto::MergeFrom(from._internal_cumulative());
7815  break;
7816  }
7817  case kDummyConstraint: {
7818  _internal_mutable_dummy_constraint()->::operations_research::sat::ListOfVariablesProto::MergeFrom(from._internal_dummy_constraint());
7819  break;
7820  }
7821  case CONSTRAINT_NOT_SET: {
7822  break;
7823  }
7824  }
7825  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7826 }
7827 
7829 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.ConstraintProto)
7830  if (&from == this) return;
7831  Clear();
7832  MergeFrom(from);
7833 }
7834 
7836  return true;
7837 }
7838 
7839 void ConstraintProto::InternalSwap(ConstraintProto* other) {
7840  using std::swap;
7841  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
7842  enforcement_literal_.InternalSwap(&other->enforcement_literal_);
7843  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
7844  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
7845  &name_, GetArenaForAllocation(),
7846  &other->name_, other->GetArenaForAllocation()
7847  );
7848  swap(constraint_, other->constraint_);
7849  swap(_oneof_case_[0], other->_oneof_case_[0]);
7850 }
7851 
7852 ::PROTOBUF_NAMESPACE_ID::Metadata ConstraintProto::GetMetadata() const {
7853  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
7856 }
7857 
7858 // ===================================================================
7859 
7861  public:
7862 };
7863 
7864 CpObjectiveProto::CpObjectiveProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
7865  bool is_message_owned)
7866  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
7867  vars_(arena),
7868  coeffs_(arena),
7869  domain_(arena) {
7870  SharedCtor();
7871  if (!is_message_owned) {
7872  RegisterArenaDtor(arena);
7873  }
7874  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpObjectiveProto)
7875 }
7877  : ::PROTOBUF_NAMESPACE_ID::Message(),
7878  vars_(from.vars_),
7879  coeffs_(from.coeffs_),
7880  domain_(from.domain_) {
7881  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
7882  ::memcpy(&offset_, &from.offset_,
7883  static_cast<size_t>(reinterpret_cast<char*>(&scaling_factor_) -
7884  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_factor_));
7885  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpObjectiveProto)
7886 }
7887 
7888 inline void CpObjectiveProto::SharedCtor() {
7889 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
7890  reinterpret_cast<char*>(&offset_) - reinterpret_cast<char*>(this)),
7891  0, static_cast<size_t>(reinterpret_cast<char*>(&scaling_factor_) -
7892  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_factor_));
7893 }
7894 
7896  // @@protoc_insertion_point(destructor:operations_research.sat.CpObjectiveProto)
7897  if (GetArenaForAllocation() != nullptr) return;
7898  SharedDtor();
7899  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
7900 }
7901 
7902 inline void CpObjectiveProto::SharedDtor() {
7903  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
7904 }
7905 
7906 void CpObjectiveProto::ArenaDtor(void* object) {
7907  CpObjectiveProto* _this = reinterpret_cast< CpObjectiveProto* >(object);
7908  (void)_this;
7909 }
7910 void CpObjectiveProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
7911 }
7912 void CpObjectiveProto::SetCachedSize(int size) const {
7913  _cached_size_.Set(size);
7914 }
7915 
7917 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpObjectiveProto)
7918  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
7919  // Prevent compiler warnings about cached_has_bits being unused
7920  (void) cached_has_bits;
7921 
7922  vars_.Clear();
7923  coeffs_.Clear();
7924  domain_.Clear();
7925  ::memset(&offset_, 0, static_cast<size_t>(
7926  reinterpret_cast<char*>(&scaling_factor_) -
7927  reinterpret_cast<char*>(&offset_)) + sizeof(scaling_factor_));
7928  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
7929 }
7930 
7931 const char* CpObjectiveProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
7932 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
7933  while (!ctx->Done(&ptr)) {
7934  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
7935  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
7936  switch (tag >> 3) {
7937  // repeated int32 vars = 1;
7938  case 1:
7939  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
7940  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
7941  CHK_(ptr);
7942  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
7943  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7944  CHK_(ptr);
7945  } else goto handle_unusual;
7946  continue;
7947  // double offset = 2;
7948  case 2:
7949  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 17)) {
7950  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
7951  ptr += sizeof(double);
7952  } else goto handle_unusual;
7953  continue;
7954  // double scaling_factor = 3;
7955  case 3:
7956  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 25)) {
7957  scaling_factor_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
7958  ptr += sizeof(double);
7959  } else goto handle_unusual;
7960  continue;
7961  // repeated int64 coeffs = 4;
7962  case 4:
7963  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
7964  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_coeffs(), ptr, ctx);
7965  CHK_(ptr);
7966  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32) {
7967  _internal_add_coeffs(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7968  CHK_(ptr);
7969  } else goto handle_unusual;
7970  continue;
7971  // repeated int64 domain = 5;
7972  case 5:
7973  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
7974  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_domain(), ptr, ctx);
7975  CHK_(ptr);
7976  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40) {
7977  _internal_add_domain(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
7978  CHK_(ptr);
7979  } else goto handle_unusual;
7980  continue;
7981  default: {
7982  handle_unusual:
7983  if ((tag == 0) || ((tag & 7) == 4)) {
7984  CHK_(ptr);
7985  ctx->SetLastTag(tag);
7986  goto success;
7987  }
7988  ptr = UnknownFieldParse(tag,
7989  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
7990  ptr, ctx);
7991  CHK_(ptr != nullptr);
7992  continue;
7993  }
7994  } // switch
7995  } // while
7996 success:
7997  return ptr;
7998 failure:
7999  ptr = nullptr;
8000  goto success;
8001 #undef CHK_
8002 }
8003 
8004 ::PROTOBUF_NAMESPACE_ID::uint8* CpObjectiveProto::_InternalSerialize(
8005  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8006  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpObjectiveProto)
8007  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8008  (void) cached_has_bits;
8009 
8010  // repeated int32 vars = 1;
8011  {
8012  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
8013  if (byte_size > 0) {
8014  target = stream->WriteInt32Packed(
8015  1, _internal_vars(), byte_size, target);
8016  }
8017  }
8018 
8019  // double offset = 2;
8020  if (!(this->_internal_offset() <= 0 && this->_internal_offset() >= 0)) {
8021  target = stream->EnsureSpace(target);
8022  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(2, this->_internal_offset(), target);
8023  }
8024 
8025  // double scaling_factor = 3;
8026  if (!(this->_internal_scaling_factor() <= 0 && this->_internal_scaling_factor() >= 0)) {
8027  target = stream->EnsureSpace(target);
8028  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(3, this->_internal_scaling_factor(), target);
8029  }
8030 
8031  // repeated int64 coeffs = 4;
8032  {
8033  int byte_size = _coeffs_cached_byte_size_.load(std::memory_order_relaxed);
8034  if (byte_size > 0) {
8035  target = stream->WriteInt64Packed(
8036  4, _internal_coeffs(), byte_size, target);
8037  }
8038  }
8039 
8040  // repeated int64 domain = 5;
8041  {
8042  int byte_size = _domain_cached_byte_size_.load(std::memory_order_relaxed);
8043  if (byte_size > 0) {
8044  target = stream->WriteInt64Packed(
8045  5, _internal_domain(), byte_size, target);
8046  }
8047  }
8048 
8049  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8050  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8051  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8052  }
8053  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpObjectiveProto)
8054  return target;
8055 }
8056 
8058 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpObjectiveProto)
8059  size_t total_size = 0;
8060 
8061  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8062  // Prevent compiler warnings about cached_has_bits being unused
8063  (void) cached_has_bits;
8064 
8065  // repeated int32 vars = 1;
8066  {
8067  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8068  Int32Size(this->vars_);
8069  if (data_size > 0) {
8070  total_size += 1 +
8071  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8072  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8073  }
8074  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8075  _vars_cached_byte_size_.store(cached_size,
8076  std::memory_order_relaxed);
8077  total_size += data_size;
8078  }
8079 
8080  // repeated int64 coeffs = 4;
8081  {
8082  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8083  Int64Size(this->coeffs_);
8084  if (data_size > 0) {
8085  total_size += 1 +
8086  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8087  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8088  }
8089  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8090  _coeffs_cached_byte_size_.store(cached_size,
8091  std::memory_order_relaxed);
8092  total_size += data_size;
8093  }
8094 
8095  // repeated int64 domain = 5;
8096  {
8097  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8098  Int64Size(this->domain_);
8099  if (data_size > 0) {
8100  total_size += 1 +
8101  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8102  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8103  }
8104  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8105  _domain_cached_byte_size_.store(cached_size,
8106  std::memory_order_relaxed);
8107  total_size += data_size;
8108  }
8109 
8110  // double offset = 2;
8111  if (!(this->_internal_offset() <= 0 && this->_internal_offset() >= 0)) {
8112  total_size += 1 + 8;
8113  }
8114 
8115  // double scaling_factor = 3;
8116  if (!(this->_internal_scaling_factor() <= 0 && this->_internal_scaling_factor() >= 0)) {
8117  total_size += 1 + 8;
8118  }
8119 
8120  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8121  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8122  _internal_metadata_, total_size, &_cached_size_);
8123  }
8124  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8125  SetCachedSize(cached_size);
8126  return total_size;
8127 }
8128 
8129 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CpObjectiveProto::_class_data_ = {
8130  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
8131  CpObjectiveProto::MergeImpl
8132 };
8133 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CpObjectiveProto::GetClassData() const { return &_class_data_; }
8134 
8135 void CpObjectiveProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
8136  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
8137  static_cast<CpObjectiveProto *>(to)->MergeFrom(
8138  static_cast<const CpObjectiveProto &>(from));
8139 }
8140 
8141 
8143 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpObjectiveProto)
8144  GOOGLE_DCHECK_NE(&from, this);
8145  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8146  (void) cached_has_bits;
8147 
8148  vars_.MergeFrom(from.vars_);
8149  coeffs_.MergeFrom(from.coeffs_);
8150  domain_.MergeFrom(from.domain_);
8151  if (!(from._internal_offset() <= 0 && from._internal_offset() >= 0)) {
8152  _internal_set_offset(from._internal_offset());
8153  }
8154  if (!(from._internal_scaling_factor() <= 0 && from._internal_scaling_factor() >= 0)) {
8155  _internal_set_scaling_factor(from._internal_scaling_factor());
8156  }
8157  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8158 }
8159 
8161 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpObjectiveProto)
8162  if (&from == this) return;
8163  Clear();
8164  MergeFrom(from);
8165 }
8166 
8168  return true;
8169 }
8170 
8171 void CpObjectiveProto::InternalSwap(CpObjectiveProto* other) {
8172  using std::swap;
8173  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
8174  vars_.InternalSwap(&other->vars_);
8175  coeffs_.InternalSwap(&other->coeffs_);
8176  domain_.InternalSwap(&other->domain_);
8177  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8178  PROTOBUF_FIELD_OFFSET(CpObjectiveProto, scaling_factor_)
8179  + sizeof(CpObjectiveProto::scaling_factor_)
8180  - PROTOBUF_FIELD_OFFSET(CpObjectiveProto, offset_)>(
8181  reinterpret_cast<char*>(&offset_),
8182  reinterpret_cast<char*>(&other->offset_));
8183 }
8184 
8185 ::PROTOBUF_NAMESPACE_ID::Metadata CpObjectiveProto::GetMetadata() const {
8186  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
8189 }
8190 
8191 // ===================================================================
8192 
8194  public:
8195 };
8196 
8198  bool is_message_owned)
8199  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
8200  SharedCtor();
8201  if (!is_message_owned) {
8202  RegisterArenaDtor(arena);
8203  }
8204  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8205 }
8207  : ::PROTOBUF_NAMESPACE_ID::Message() {
8208  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8209  ::memcpy(&offset_, &from.offset_,
8210  static_cast<size_t>(reinterpret_cast<char*>(&index_) -
8211  reinterpret_cast<char*>(&offset_)) + sizeof(index_));
8212  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8213 }
8214 
8215 inline void DecisionStrategyProto_AffineTransformation::SharedCtor() {
8216 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
8217  reinterpret_cast<char*>(&offset_) - reinterpret_cast<char*>(this)),
8218  0, static_cast<size_t>(reinterpret_cast<char*>(&index_) -
8219  reinterpret_cast<char*>(&offset_)) + sizeof(index_));
8220 }
8221 
8223  // @@protoc_insertion_point(destructor:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8224  if (GetArenaForAllocation() != nullptr) return;
8225  SharedDtor();
8226  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8227 }
8228 
8229 inline void DecisionStrategyProto_AffineTransformation::SharedDtor() {
8230  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
8231 }
8232 
8233 void DecisionStrategyProto_AffineTransformation::ArenaDtor(void* object) {
8234  DecisionStrategyProto_AffineTransformation* _this = reinterpret_cast< DecisionStrategyProto_AffineTransformation* >(object);
8235  (void)_this;
8236 }
8237 void DecisionStrategyProto_AffineTransformation::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8238 }
8239 void DecisionStrategyProto_AffineTransformation::SetCachedSize(int size) const {
8240  _cached_size_.Set(size);
8241 }
8242 
8244 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8245  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8246  // Prevent compiler warnings about cached_has_bits being unused
8247  (void) cached_has_bits;
8248 
8249  ::memset(&offset_, 0, static_cast<size_t>(
8250  reinterpret_cast<char*>(&index_) -
8251  reinterpret_cast<char*>(&offset_)) + sizeof(index_));
8252  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8253 }
8254 
8255 const char* DecisionStrategyProto_AffineTransformation::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8256 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8257  while (!ctx->Done(&ptr)) {
8258  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
8259  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8260  switch (tag >> 3) {
8261  // int32 index = 1;
8262  case 1:
8263  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
8264  index_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8265  CHK_(ptr);
8266  } else goto handle_unusual;
8267  continue;
8268  // int64 offset = 2;
8269  case 2:
8270  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
8271  offset_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8272  CHK_(ptr);
8273  } else goto handle_unusual;
8274  continue;
8275  // int64 positive_coeff = 3;
8276  case 3:
8277  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
8278  positive_coeff_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8279  CHK_(ptr);
8280  } else goto handle_unusual;
8281  continue;
8282  default: {
8283  handle_unusual:
8284  if ((tag == 0) || ((tag & 7) == 4)) {
8285  CHK_(ptr);
8286  ctx->SetLastTag(tag);
8287  goto success;
8288  }
8289  ptr = UnknownFieldParse(tag,
8290  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8291  ptr, ctx);
8292  CHK_(ptr != nullptr);
8293  continue;
8294  }
8295  } // switch
8296  } // while
8297 success:
8298  return ptr;
8299 failure:
8300  ptr = nullptr;
8301  goto success;
8302 #undef CHK_
8303 }
8304 
8306  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8307  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8308  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8309  (void) cached_has_bits;
8310 
8311  // int32 index = 1;
8312  if (this->_internal_index() != 0) {
8313  target = stream->EnsureSpace(target);
8314  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_index(), target);
8315  }
8316 
8317  // int64 offset = 2;
8318  if (this->_internal_offset() != 0) {
8319  target = stream->EnsureSpace(target);
8320  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(2, this->_internal_offset(), target);
8321  }
8322 
8323  // int64 positive_coeff = 3;
8324  if (this->_internal_positive_coeff() != 0) {
8325  target = stream->EnsureSpace(target);
8326  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(3, this->_internal_positive_coeff(), target);
8327  }
8328 
8329  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8330  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8331  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8332  }
8333  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8334  return target;
8335 }
8336 
8338 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8339  size_t total_size = 0;
8340 
8341  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8342  // Prevent compiler warnings about cached_has_bits being unused
8343  (void) cached_has_bits;
8344 
8345  // int64 offset = 2;
8346  if (this->_internal_offset() != 0) {
8347  total_size += 1 +
8348  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
8349  this->_internal_offset());
8350  }
8351 
8352  // int64 positive_coeff = 3;
8353  if (this->_internal_positive_coeff() != 0) {
8354  total_size += 1 +
8355  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
8356  this->_internal_positive_coeff());
8357  }
8358 
8359  // int32 index = 1;
8360  if (this->_internal_index() != 0) {
8361  total_size += 1 +
8362  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8363  this->_internal_index());
8364  }
8365 
8366  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8367  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8368  _internal_metadata_, total_size, &_cached_size_);
8369  }
8370  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8371  SetCachedSize(cached_size);
8372  return total_size;
8373 }
8374 
8375 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData DecisionStrategyProto_AffineTransformation::_class_data_ = {
8376  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
8377  DecisionStrategyProto_AffineTransformation::MergeImpl
8378 };
8379 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*DecisionStrategyProto_AffineTransformation::GetClassData() const { return &_class_data_; }
8380 
8381 void DecisionStrategyProto_AffineTransformation::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
8382  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
8383  static_cast<DecisionStrategyProto_AffineTransformation *>(to)->MergeFrom(
8384  static_cast<const DecisionStrategyProto_AffineTransformation &>(from));
8385 }
8386 
8387 
8389 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8390  GOOGLE_DCHECK_NE(&from, this);
8391  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8392  (void) cached_has_bits;
8393 
8394  if (from._internal_offset() != 0) {
8395  _internal_set_offset(from._internal_offset());
8396  }
8397  if (from._internal_positive_coeff() != 0) {
8398  _internal_set_positive_coeff(from._internal_positive_coeff());
8399  }
8400  if (from._internal_index() != 0) {
8401  _internal_set_index(from._internal_index());
8402  }
8403  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8404 }
8405 
8407 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DecisionStrategyProto.AffineTransformation)
8408  if (&from == this) return;
8409  Clear();
8410  MergeFrom(from);
8411 }
8412 
8414  return true;
8415 }
8416 
8417 void DecisionStrategyProto_AffineTransformation::InternalSwap(DecisionStrategyProto_AffineTransformation* other) {
8418  using std::swap;
8419  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
8420  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8421  PROTOBUF_FIELD_OFFSET(DecisionStrategyProto_AffineTransformation, index_)
8422  + sizeof(DecisionStrategyProto_AffineTransformation::index_)
8423  - PROTOBUF_FIELD_OFFSET(DecisionStrategyProto_AffineTransformation, offset_)>(
8424  reinterpret_cast<char*>(&offset_),
8425  reinterpret_cast<char*>(&other->offset_));
8426 }
8427 
8428 ::PROTOBUF_NAMESPACE_ID::Metadata DecisionStrategyProto_AffineTransformation::GetMetadata() const {
8429  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
8432 }
8433 
8434 // ===================================================================
8435 
8437  public:
8438 };
8439 
8440 DecisionStrategyProto::DecisionStrategyProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
8441  bool is_message_owned)
8442  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
8443  variables_(arena),
8444  transformations_(arena) {
8445  SharedCtor();
8446  if (!is_message_owned) {
8447  RegisterArenaDtor(arena);
8448  }
8449  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DecisionStrategyProto)
8450 }
8452  : ::PROTOBUF_NAMESPACE_ID::Message(),
8453  variables_(from.variables_),
8454  transformations_(from.transformations_) {
8455  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8456  ::memcpy(&variable_selection_strategy_, &from.variable_selection_strategy_,
8457  static_cast<size_t>(reinterpret_cast<char*>(&domain_reduction_strategy_) -
8458  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8459  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DecisionStrategyProto)
8460 }
8461 
8462 inline void DecisionStrategyProto::SharedCtor() {
8463 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
8464  reinterpret_cast<char*>(&variable_selection_strategy_) - reinterpret_cast<char*>(this)),
8465  0, static_cast<size_t>(reinterpret_cast<char*>(&domain_reduction_strategy_) -
8466  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8467 }
8468 
8470  // @@protoc_insertion_point(destructor:operations_research.sat.DecisionStrategyProto)
8471  if (GetArenaForAllocation() != nullptr) return;
8472  SharedDtor();
8473  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8474 }
8475 
8476 inline void DecisionStrategyProto::SharedDtor() {
8477  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
8478 }
8479 
8480 void DecisionStrategyProto::ArenaDtor(void* object) {
8481  DecisionStrategyProto* _this = reinterpret_cast< DecisionStrategyProto* >(object);
8482  (void)_this;
8483 }
8484 void DecisionStrategyProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8485 }
8486 void DecisionStrategyProto::SetCachedSize(int size) const {
8487  _cached_size_.Set(size);
8488 }
8489 
8491 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DecisionStrategyProto)
8492  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8493  // Prevent compiler warnings about cached_has_bits being unused
8494  (void) cached_has_bits;
8495 
8496  variables_.Clear();
8497  transformations_.Clear();
8498  ::memset(&variable_selection_strategy_, 0, static_cast<size_t>(
8499  reinterpret_cast<char*>(&domain_reduction_strategy_) -
8500  reinterpret_cast<char*>(&variable_selection_strategy_)) + sizeof(domain_reduction_strategy_));
8501  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8502 }
8503 
8504 const char* DecisionStrategyProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8505 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8506  while (!ctx->Done(&ptr)) {
8507  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
8508  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8509  switch (tag >> 3) {
8510  // repeated int32 variables = 1;
8511  case 1:
8512  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
8513  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_variables(), ptr, ctx);
8514  CHK_(ptr);
8515  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
8516  _internal_add_variables(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8517  CHK_(ptr);
8518  } else goto handle_unusual;
8519  continue;
8520  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8521  case 2:
8522  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
8523  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8524  CHK_(ptr);
8525  _internal_set_variable_selection_strategy(static_cast<::operations_research::sat::DecisionStrategyProto_VariableSelectionStrategy>(val));
8526  } else goto handle_unusual;
8527  continue;
8528  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8529  case 3:
8530  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
8531  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
8532  CHK_(ptr);
8533  _internal_set_domain_reduction_strategy(static_cast<::operations_research::sat::DecisionStrategyProto_DomainReductionStrategy>(val));
8534  } else goto handle_unusual;
8535  continue;
8536  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8537  case 4:
8538  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
8539  ptr -= 1;
8540  do {
8541  ptr += 1;
8542  ptr = ctx->ParseMessage(_internal_add_transformations(), ptr);
8543  CHK_(ptr);
8544  if (!ctx->DataAvailable(ptr)) break;
8545  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<34>(ptr));
8546  } else goto handle_unusual;
8547  continue;
8548  default: {
8549  handle_unusual:
8550  if ((tag == 0) || ((tag & 7) == 4)) {
8551  CHK_(ptr);
8552  ctx->SetLastTag(tag);
8553  goto success;
8554  }
8555  ptr = UnknownFieldParse(tag,
8556  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8557  ptr, ctx);
8558  CHK_(ptr != nullptr);
8559  continue;
8560  }
8561  } // switch
8562  } // while
8563 success:
8564  return ptr;
8565 failure:
8566  ptr = nullptr;
8567  goto success;
8568 #undef CHK_
8569 }
8570 
8571 ::PROTOBUF_NAMESPACE_ID::uint8* DecisionStrategyProto::_InternalSerialize(
8572  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8573  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DecisionStrategyProto)
8574  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8575  (void) cached_has_bits;
8576 
8577  // repeated int32 variables = 1;
8578  {
8579  int byte_size = _variables_cached_byte_size_.load(std::memory_order_relaxed);
8580  if (byte_size > 0) {
8581  target = stream->WriteInt32Packed(
8582  1, _internal_variables(), byte_size, target);
8583  }
8584  }
8585 
8586  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8587  if (this->_internal_variable_selection_strategy() != 0) {
8588  target = stream->EnsureSpace(target);
8589  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
8590  2, this->_internal_variable_selection_strategy(), target);
8591  }
8592 
8593  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8594  if (this->_internal_domain_reduction_strategy() != 0) {
8595  target = stream->EnsureSpace(target);
8596  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
8597  3, this->_internal_domain_reduction_strategy(), target);
8598  }
8599 
8600  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8601  for (unsigned int i = 0,
8602  n = static_cast<unsigned int>(this->_internal_transformations_size()); i < n; i++) {
8603  target = stream->EnsureSpace(target);
8604  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8605  InternalWriteMessage(4, this->_internal_transformations(i), target, stream);
8606  }
8607 
8608  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8609  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8610  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8611  }
8612  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DecisionStrategyProto)
8613  return target;
8614 }
8615 
8617 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DecisionStrategyProto)
8618  size_t total_size = 0;
8619 
8620  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8621  // Prevent compiler warnings about cached_has_bits being unused
8622  (void) cached_has_bits;
8623 
8624  // repeated int32 variables = 1;
8625  {
8626  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8627  Int32Size(this->variables_);
8628  if (data_size > 0) {
8629  total_size += 1 +
8630  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8631  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8632  }
8633  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8634  _variables_cached_byte_size_.store(cached_size,
8635  std::memory_order_relaxed);
8636  total_size += data_size;
8637  }
8638 
8639  // repeated .operations_research.sat.DecisionStrategyProto.AffineTransformation transformations = 4;
8640  total_size += 1UL * this->_internal_transformations_size();
8641  for (const auto& msg : this->transformations_) {
8642  total_size +=
8643  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
8644  }
8645 
8646  // .operations_research.sat.DecisionStrategyProto.VariableSelectionStrategy variable_selection_strategy = 2;
8647  if (this->_internal_variable_selection_strategy() != 0) {
8648  total_size += 1 +
8649  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_variable_selection_strategy());
8650  }
8651 
8652  // .operations_research.sat.DecisionStrategyProto.DomainReductionStrategy domain_reduction_strategy = 3;
8653  if (this->_internal_domain_reduction_strategy() != 0) {
8654  total_size += 1 +
8655  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_domain_reduction_strategy());
8656  }
8657 
8658  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8659  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8660  _internal_metadata_, total_size, &_cached_size_);
8661  }
8662  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8663  SetCachedSize(cached_size);
8664  return total_size;
8665 }
8666 
8667 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData DecisionStrategyProto::_class_data_ = {
8668  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
8669  DecisionStrategyProto::MergeImpl
8670 };
8671 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*DecisionStrategyProto::GetClassData() const { return &_class_data_; }
8672 
8673 void DecisionStrategyProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
8674  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
8675  static_cast<DecisionStrategyProto *>(to)->MergeFrom(
8676  static_cast<const DecisionStrategyProto &>(from));
8677 }
8678 
8679 
8681 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DecisionStrategyProto)
8682  GOOGLE_DCHECK_NE(&from, this);
8683  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8684  (void) cached_has_bits;
8685 
8686  variables_.MergeFrom(from.variables_);
8687  transformations_.MergeFrom(from.transformations_);
8688  if (from._internal_variable_selection_strategy() != 0) {
8689  _internal_set_variable_selection_strategy(from._internal_variable_selection_strategy());
8690  }
8691  if (from._internal_domain_reduction_strategy() != 0) {
8692  _internal_set_domain_reduction_strategy(from._internal_domain_reduction_strategy());
8693  }
8694  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8695 }
8696 
8698 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DecisionStrategyProto)
8699  if (&from == this) return;
8700  Clear();
8701  MergeFrom(from);
8702 }
8703 
8705  return true;
8706 }
8707 
8708 void DecisionStrategyProto::InternalSwap(DecisionStrategyProto* other) {
8709  using std::swap;
8710  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
8711  variables_.InternalSwap(&other->variables_);
8712  transformations_.InternalSwap(&other->transformations_);
8713  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
8714  PROTOBUF_FIELD_OFFSET(DecisionStrategyProto, domain_reduction_strategy_)
8715  + sizeof(DecisionStrategyProto::domain_reduction_strategy_)
8716  - PROTOBUF_FIELD_OFFSET(DecisionStrategyProto, variable_selection_strategy_)>(
8717  reinterpret_cast<char*>(&variable_selection_strategy_),
8718  reinterpret_cast<char*>(&other->variable_selection_strategy_));
8719 }
8720 
8721 ::PROTOBUF_NAMESPACE_ID::Metadata DecisionStrategyProto::GetMetadata() const {
8722  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
8725 }
8726 
8727 // ===================================================================
8728 
8730  public:
8731 };
8732 
8733 PartialVariableAssignment::PartialVariableAssignment(::PROTOBUF_NAMESPACE_ID::Arena* arena,
8734  bool is_message_owned)
8735  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
8736  vars_(arena),
8737  values_(arena) {
8738  SharedCtor();
8739  if (!is_message_owned) {
8740  RegisterArenaDtor(arena);
8741  }
8742  // @@protoc_insertion_point(arena_constructor:operations_research.sat.PartialVariableAssignment)
8743 }
8745  : ::PROTOBUF_NAMESPACE_ID::Message(),
8746  vars_(from.vars_),
8747  values_(from.values_) {
8748  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8749  // @@protoc_insertion_point(copy_constructor:operations_research.sat.PartialVariableAssignment)
8750 }
8751 
8752 inline void PartialVariableAssignment::SharedCtor() {
8753 }
8754 
8756  // @@protoc_insertion_point(destructor:operations_research.sat.PartialVariableAssignment)
8757  if (GetArenaForAllocation() != nullptr) return;
8758  SharedDtor();
8759  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8760 }
8761 
8762 inline void PartialVariableAssignment::SharedDtor() {
8763  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
8764 }
8765 
8766 void PartialVariableAssignment::ArenaDtor(void* object) {
8767  PartialVariableAssignment* _this = reinterpret_cast< PartialVariableAssignment* >(object);
8768  (void)_this;
8769 }
8770 void PartialVariableAssignment::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
8771 }
8772 void PartialVariableAssignment::SetCachedSize(int size) const {
8773  _cached_size_.Set(size);
8774 }
8775 
8777 // @@protoc_insertion_point(message_clear_start:operations_research.sat.PartialVariableAssignment)
8778  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8779  // Prevent compiler warnings about cached_has_bits being unused
8780  (void) cached_has_bits;
8781 
8782  vars_.Clear();
8783  values_.Clear();
8784  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8785 }
8786 
8787 const char* PartialVariableAssignment::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
8788 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
8789  while (!ctx->Done(&ptr)) {
8790  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
8791  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
8792  switch (tag >> 3) {
8793  // repeated int32 vars = 1;
8794  case 1:
8795  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
8796  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_vars(), ptr, ctx);
8797  CHK_(ptr);
8798  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
8799  _internal_add_vars(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8800  CHK_(ptr);
8801  } else goto handle_unusual;
8802  continue;
8803  // repeated int64 values = 2;
8804  case 2:
8805  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
8806  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_values(), ptr, ctx);
8807  CHK_(ptr);
8808  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
8809  _internal_add_values(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
8810  CHK_(ptr);
8811  } else goto handle_unusual;
8812  continue;
8813  default: {
8814  handle_unusual:
8815  if ((tag == 0) || ((tag & 7) == 4)) {
8816  CHK_(ptr);
8817  ctx->SetLastTag(tag);
8818  goto success;
8819  }
8820  ptr = UnknownFieldParse(tag,
8821  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
8822  ptr, ctx);
8823  CHK_(ptr != nullptr);
8824  continue;
8825  }
8826  } // switch
8827  } // while
8828 success:
8829  return ptr;
8830 failure:
8831  ptr = nullptr;
8832  goto success;
8833 #undef CHK_
8834 }
8835 
8836 ::PROTOBUF_NAMESPACE_ID::uint8* PartialVariableAssignment::_InternalSerialize(
8837  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
8838  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.PartialVariableAssignment)
8839  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8840  (void) cached_has_bits;
8841 
8842  // repeated int32 vars = 1;
8843  {
8844  int byte_size = _vars_cached_byte_size_.load(std::memory_order_relaxed);
8845  if (byte_size > 0) {
8846  target = stream->WriteInt32Packed(
8847  1, _internal_vars(), byte_size, target);
8848  }
8849  }
8850 
8851  // repeated int64 values = 2;
8852  {
8853  int byte_size = _values_cached_byte_size_.load(std::memory_order_relaxed);
8854  if (byte_size > 0) {
8855  target = stream->WriteInt64Packed(
8856  2, _internal_values(), byte_size, target);
8857  }
8858  }
8859 
8860  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8861  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
8862  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
8863  }
8864  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.PartialVariableAssignment)
8865  return target;
8866 }
8867 
8869 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.PartialVariableAssignment)
8870  size_t total_size = 0;
8871 
8872  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8873  // Prevent compiler warnings about cached_has_bits being unused
8874  (void) cached_has_bits;
8875 
8876  // repeated int32 vars = 1;
8877  {
8878  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8879  Int32Size(this->vars_);
8880  if (data_size > 0) {
8881  total_size += 1 +
8882  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8883  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8884  }
8885  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8886  _vars_cached_byte_size_.store(cached_size,
8887  std::memory_order_relaxed);
8888  total_size += data_size;
8889  }
8890 
8891  // repeated int64 values = 2;
8892  {
8893  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
8894  Int64Size(this->values_);
8895  if (data_size > 0) {
8896  total_size += 1 +
8897  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
8898  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
8899  }
8900  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
8901  _values_cached_byte_size_.store(cached_size,
8902  std::memory_order_relaxed);
8903  total_size += data_size;
8904  }
8905 
8906  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
8907  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
8908  _internal_metadata_, total_size, &_cached_size_);
8909  }
8910  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
8911  SetCachedSize(cached_size);
8912  return total_size;
8913 }
8914 
8915 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData PartialVariableAssignment::_class_data_ = {
8916  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
8917  PartialVariableAssignment::MergeImpl
8918 };
8919 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*PartialVariableAssignment::GetClassData() const { return &_class_data_; }
8920 
8921 void PartialVariableAssignment::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
8922  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
8923  static_cast<PartialVariableAssignment *>(to)->MergeFrom(
8924  static_cast<const PartialVariableAssignment &>(from));
8925 }
8926 
8927 
8929 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.PartialVariableAssignment)
8930  GOOGLE_DCHECK_NE(&from, this);
8931  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
8932  (void) cached_has_bits;
8933 
8934  vars_.MergeFrom(from.vars_);
8935  values_.MergeFrom(from.values_);
8936  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8937 }
8938 
8940 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.PartialVariableAssignment)
8941  if (&from == this) return;
8942  Clear();
8943  MergeFrom(from);
8944 }
8945 
8947  return true;
8948 }
8949 
8950 void PartialVariableAssignment::InternalSwap(PartialVariableAssignment* other) {
8951  using std::swap;
8952  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
8953  vars_.InternalSwap(&other->vars_);
8954  values_.InternalSwap(&other->values_);
8955 }
8956 
8957 ::PROTOBUF_NAMESPACE_ID::Metadata PartialVariableAssignment::GetMetadata() const {
8958  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
8961 }
8962 
8963 // ===================================================================
8964 
8966  public:
8967 };
8968 
8969 SparsePermutationProto::SparsePermutationProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
8970  bool is_message_owned)
8971  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
8972  support_(arena),
8973  cycle_sizes_(arena) {
8974  SharedCtor();
8975  if (!is_message_owned) {
8976  RegisterArenaDtor(arena);
8977  }
8978  // @@protoc_insertion_point(arena_constructor:operations_research.sat.SparsePermutationProto)
8979 }
8981  : ::PROTOBUF_NAMESPACE_ID::Message(),
8982  support_(from.support_),
8983  cycle_sizes_(from.cycle_sizes_) {
8984  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
8985  // @@protoc_insertion_point(copy_constructor:operations_research.sat.SparsePermutationProto)
8986 }
8987 
8988 inline void SparsePermutationProto::SharedCtor() {
8989 }
8990 
8992  // @@protoc_insertion_point(destructor:operations_research.sat.SparsePermutationProto)
8993  if (GetArenaForAllocation() != nullptr) return;
8994  SharedDtor();
8995  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
8996 }
8997 
8998 inline void SparsePermutationProto::SharedDtor() {
8999  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
9000 }
9001 
9002 void SparsePermutationProto::ArenaDtor(void* object) {
9003  SparsePermutationProto* _this = reinterpret_cast< SparsePermutationProto* >(object);
9004  (void)_this;
9005 }
9006 void SparsePermutationProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9007 }
9008 void SparsePermutationProto::SetCachedSize(int size) const {
9009  _cached_size_.Set(size);
9010 }
9011 
9013 // @@protoc_insertion_point(message_clear_start:operations_research.sat.SparsePermutationProto)
9014  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9015  // Prevent compiler warnings about cached_has_bits being unused
9016  (void) cached_has_bits;
9017 
9018  support_.Clear();
9019  cycle_sizes_.Clear();
9020  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9021 }
9022 
9023 const char* SparsePermutationProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9024 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9025  while (!ctx->Done(&ptr)) {
9026  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
9027  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9028  switch (tag >> 3) {
9029  // repeated int32 support = 1;
9030  case 1:
9031  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
9032  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_support(), ptr, ctx);
9033  CHK_(ptr);
9034  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8) {
9035  _internal_add_support(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9036  CHK_(ptr);
9037  } else goto handle_unusual;
9038  continue;
9039  // repeated int32 cycle_sizes = 2;
9040  case 2:
9041  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
9042  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_cycle_sizes(), ptr, ctx);
9043  CHK_(ptr);
9044  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
9045  _internal_add_cycle_sizes(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9046  CHK_(ptr);
9047  } else goto handle_unusual;
9048  continue;
9049  default: {
9050  handle_unusual:
9051  if ((tag == 0) || ((tag & 7) == 4)) {
9052  CHK_(ptr);
9053  ctx->SetLastTag(tag);
9054  goto success;
9055  }
9056  ptr = UnknownFieldParse(tag,
9057  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9058  ptr, ctx);
9059  CHK_(ptr != nullptr);
9060  continue;
9061  }
9062  } // switch
9063  } // while
9064 success:
9065  return ptr;
9066 failure:
9067  ptr = nullptr;
9068  goto success;
9069 #undef CHK_
9070 }
9071 
9072 ::PROTOBUF_NAMESPACE_ID::uint8* SparsePermutationProto::_InternalSerialize(
9073  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9074  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.SparsePermutationProto)
9075  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9076  (void) cached_has_bits;
9077 
9078  // repeated int32 support = 1;
9079  {
9080  int byte_size = _support_cached_byte_size_.load(std::memory_order_relaxed);
9081  if (byte_size > 0) {
9082  target = stream->WriteInt32Packed(
9083  1, _internal_support(), byte_size, target);
9084  }
9085  }
9086 
9087  // repeated int32 cycle_sizes = 2;
9088  {
9089  int byte_size = _cycle_sizes_cached_byte_size_.load(std::memory_order_relaxed);
9090  if (byte_size > 0) {
9091  target = stream->WriteInt32Packed(
9092  2, _internal_cycle_sizes(), byte_size, target);
9093  }
9094  }
9095 
9096  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9097  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9098  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9099  }
9100  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.SparsePermutationProto)
9101  return target;
9102 }
9103 
9105 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.SparsePermutationProto)
9106  size_t total_size = 0;
9107 
9108  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9109  // Prevent compiler warnings about cached_has_bits being unused
9110  (void) cached_has_bits;
9111 
9112  // repeated int32 support = 1;
9113  {
9114  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9115  Int32Size(this->support_);
9116  if (data_size > 0) {
9117  total_size += 1 +
9118  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9119  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
9120  }
9121  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9122  _support_cached_byte_size_.store(cached_size,
9123  std::memory_order_relaxed);
9124  total_size += data_size;
9125  }
9126 
9127  // repeated int32 cycle_sizes = 2;
9128  {
9129  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9130  Int32Size(this->cycle_sizes_);
9131  if (data_size > 0) {
9132  total_size += 1 +
9133  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9134  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
9135  }
9136  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9137  _cycle_sizes_cached_byte_size_.store(cached_size,
9138  std::memory_order_relaxed);
9139  total_size += data_size;
9140  }
9141 
9142  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9143  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
9144  _internal_metadata_, total_size, &_cached_size_);
9145  }
9146  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
9147  SetCachedSize(cached_size);
9148  return total_size;
9149 }
9150 
9151 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SparsePermutationProto::_class_data_ = {
9152  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
9153  SparsePermutationProto::MergeImpl
9154 };
9155 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SparsePermutationProto::GetClassData() const { return &_class_data_; }
9156 
9157 void SparsePermutationProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
9158  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
9159  static_cast<SparsePermutationProto *>(to)->MergeFrom(
9160  static_cast<const SparsePermutationProto &>(from));
9161 }
9162 
9163 
9165 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.SparsePermutationProto)
9166  GOOGLE_DCHECK_NE(&from, this);
9167  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9168  (void) cached_has_bits;
9169 
9170  support_.MergeFrom(from.support_);
9171  cycle_sizes_.MergeFrom(from.cycle_sizes_);
9172  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9173 }
9174 
9176 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.SparsePermutationProto)
9177  if (&from == this) return;
9178  Clear();
9179  MergeFrom(from);
9180 }
9181 
9183  return true;
9184 }
9185 
9186 void SparsePermutationProto::InternalSwap(SparsePermutationProto* other) {
9187  using std::swap;
9188  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
9189  support_.InternalSwap(&other->support_);
9190  cycle_sizes_.InternalSwap(&other->cycle_sizes_);
9191 }
9192 
9193 ::PROTOBUF_NAMESPACE_ID::Metadata SparsePermutationProto::GetMetadata() const {
9194  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
9197 }
9198 
9199 // ===================================================================
9200 
9202  public:
9203 };
9204 
9205 DenseMatrixProto::DenseMatrixProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
9206  bool is_message_owned)
9207  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
9208  entries_(arena) {
9209  SharedCtor();
9210  if (!is_message_owned) {
9211  RegisterArenaDtor(arena);
9212  }
9213  // @@protoc_insertion_point(arena_constructor:operations_research.sat.DenseMatrixProto)
9214 }
9216  : ::PROTOBUF_NAMESPACE_ID::Message(),
9217  entries_(from.entries_) {
9218  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9219  ::memcpy(&num_rows_, &from.num_rows_,
9220  static_cast<size_t>(reinterpret_cast<char*>(&num_cols_) -
9221  reinterpret_cast<char*>(&num_rows_)) + sizeof(num_cols_));
9222  // @@protoc_insertion_point(copy_constructor:operations_research.sat.DenseMatrixProto)
9223 }
9224 
9225 inline void DenseMatrixProto::SharedCtor() {
9226 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
9227  reinterpret_cast<char*>(&num_rows_) - reinterpret_cast<char*>(this)),
9228  0, static_cast<size_t>(reinterpret_cast<char*>(&num_cols_) -
9229  reinterpret_cast<char*>(&num_rows_)) + sizeof(num_cols_));
9230 }
9231 
9233  // @@protoc_insertion_point(destructor:operations_research.sat.DenseMatrixProto)
9234  if (GetArenaForAllocation() != nullptr) return;
9235  SharedDtor();
9236  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9237 }
9238 
9239 inline void DenseMatrixProto::SharedDtor() {
9240  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
9241 }
9242 
9243 void DenseMatrixProto::ArenaDtor(void* object) {
9244  DenseMatrixProto* _this = reinterpret_cast< DenseMatrixProto* >(object);
9245  (void)_this;
9246 }
9247 void DenseMatrixProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9248 }
9249 void DenseMatrixProto::SetCachedSize(int size) const {
9250  _cached_size_.Set(size);
9251 }
9252 
9254 // @@protoc_insertion_point(message_clear_start:operations_research.sat.DenseMatrixProto)
9255  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9256  // Prevent compiler warnings about cached_has_bits being unused
9257  (void) cached_has_bits;
9258 
9259  entries_.Clear();
9260  ::memset(&num_rows_, 0, static_cast<size_t>(
9261  reinterpret_cast<char*>(&num_cols_) -
9262  reinterpret_cast<char*>(&num_rows_)) + sizeof(num_cols_));
9263  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9264 }
9265 
9266 const char* DenseMatrixProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9267 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9268  while (!ctx->Done(&ptr)) {
9269  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
9270  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9271  switch (tag >> 3) {
9272  // int32 num_rows = 1;
9273  case 1:
9274  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
9275  num_rows_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9276  CHK_(ptr);
9277  } else goto handle_unusual;
9278  continue;
9279  // int32 num_cols = 2;
9280  case 2:
9281  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
9282  num_cols_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
9283  CHK_(ptr);
9284  } else goto handle_unusual;
9285  continue;
9286  // repeated int32 entries = 3;
9287  case 3:
9288  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
9289  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_entries(), ptr, ctx);
9290  CHK_(ptr);
9291  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24) {
9292  _internal_add_entries(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9293  CHK_(ptr);
9294  } else goto handle_unusual;
9295  continue;
9296  default: {
9297  handle_unusual:
9298  if ((tag == 0) || ((tag & 7) == 4)) {
9299  CHK_(ptr);
9300  ctx->SetLastTag(tag);
9301  goto success;
9302  }
9303  ptr = UnknownFieldParse(tag,
9304  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9305  ptr, ctx);
9306  CHK_(ptr != nullptr);
9307  continue;
9308  }
9309  } // switch
9310  } // while
9311 success:
9312  return ptr;
9313 failure:
9314  ptr = nullptr;
9315  goto success;
9316 #undef CHK_
9317 }
9318 
9319 ::PROTOBUF_NAMESPACE_ID::uint8* DenseMatrixProto::_InternalSerialize(
9320  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9321  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.DenseMatrixProto)
9322  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9323  (void) cached_has_bits;
9324 
9325  // int32 num_rows = 1;
9326  if (this->_internal_num_rows() != 0) {
9327  target = stream->EnsureSpace(target);
9328  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_num_rows(), target);
9329  }
9330 
9331  // int32 num_cols = 2;
9332  if (this->_internal_num_cols() != 0) {
9333  target = stream->EnsureSpace(target);
9334  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_num_cols(), target);
9335  }
9336 
9337  // repeated int32 entries = 3;
9338  {
9339  int byte_size = _entries_cached_byte_size_.load(std::memory_order_relaxed);
9340  if (byte_size > 0) {
9341  target = stream->WriteInt32Packed(
9342  3, _internal_entries(), byte_size, target);
9343  }
9344  }
9345 
9346  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9347  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9348  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9349  }
9350  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.DenseMatrixProto)
9351  return target;
9352 }
9353 
9355 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.DenseMatrixProto)
9356  size_t total_size = 0;
9357 
9358  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9359  // Prevent compiler warnings about cached_has_bits being unused
9360  (void) cached_has_bits;
9361 
9362  // repeated int32 entries = 3;
9363  {
9364  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9365  Int32Size(this->entries_);
9366  if (data_size > 0) {
9367  total_size += 1 +
9368  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9369  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
9370  }
9371  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
9372  _entries_cached_byte_size_.store(cached_size,
9373  std::memory_order_relaxed);
9374  total_size += data_size;
9375  }
9376 
9377  // int32 num_rows = 1;
9378  if (this->_internal_num_rows() != 0) {
9379  total_size += 1 +
9380  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9381  this->_internal_num_rows());
9382  }
9383 
9384  // int32 num_cols = 2;
9385  if (this->_internal_num_cols() != 0) {
9386  total_size += 1 +
9387  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
9388  this->_internal_num_cols());
9389  }
9390 
9391  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9392  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
9393  _internal_metadata_, total_size, &_cached_size_);
9394  }
9395  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
9396  SetCachedSize(cached_size);
9397  return total_size;
9398 }
9399 
9400 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData DenseMatrixProto::_class_data_ = {
9401  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
9402  DenseMatrixProto::MergeImpl
9403 };
9404 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*DenseMatrixProto::GetClassData() const { return &_class_data_; }
9405 
9406 void DenseMatrixProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
9407  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
9408  static_cast<DenseMatrixProto *>(to)->MergeFrom(
9409  static_cast<const DenseMatrixProto &>(from));
9410 }
9411 
9412 
9414 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.DenseMatrixProto)
9415  GOOGLE_DCHECK_NE(&from, this);
9416  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9417  (void) cached_has_bits;
9418 
9419  entries_.MergeFrom(from.entries_);
9420  if (from._internal_num_rows() != 0) {
9421  _internal_set_num_rows(from._internal_num_rows());
9422  }
9423  if (from._internal_num_cols() != 0) {
9424  _internal_set_num_cols(from._internal_num_cols());
9425  }
9426  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9427 }
9428 
9430 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.DenseMatrixProto)
9431  if (&from == this) return;
9432  Clear();
9433  MergeFrom(from);
9434 }
9435 
9437  return true;
9438 }
9439 
9440 void DenseMatrixProto::InternalSwap(DenseMatrixProto* other) {
9441  using std::swap;
9442  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
9443  entries_.InternalSwap(&other->entries_);
9444  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
9445  PROTOBUF_FIELD_OFFSET(DenseMatrixProto, num_cols_)
9446  + sizeof(DenseMatrixProto::num_cols_)
9447  - PROTOBUF_FIELD_OFFSET(DenseMatrixProto, num_rows_)>(
9448  reinterpret_cast<char*>(&num_rows_),
9449  reinterpret_cast<char*>(&other->num_rows_));
9450 }
9451 
9452 ::PROTOBUF_NAMESPACE_ID::Metadata DenseMatrixProto::GetMetadata() const {
9453  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
9456 }
9457 
9458 // ===================================================================
9459 
9461  public:
9462 };
9463 
9464 SymmetryProto::SymmetryProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
9465  bool is_message_owned)
9466  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
9467  permutations_(arena),
9468  orbitopes_(arena) {
9469  SharedCtor();
9470  if (!is_message_owned) {
9471  RegisterArenaDtor(arena);
9472  }
9473  // @@protoc_insertion_point(arena_constructor:operations_research.sat.SymmetryProto)
9474 }
9476  : ::PROTOBUF_NAMESPACE_ID::Message(),
9477  permutations_(from.permutations_),
9478  orbitopes_(from.orbitopes_) {
9479  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9480  // @@protoc_insertion_point(copy_constructor:operations_research.sat.SymmetryProto)
9481 }
9482 
9483 inline void SymmetryProto::SharedCtor() {
9484 }
9485 
9487  // @@protoc_insertion_point(destructor:operations_research.sat.SymmetryProto)
9488  if (GetArenaForAllocation() != nullptr) return;
9489  SharedDtor();
9490  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9491 }
9492 
9493 inline void SymmetryProto::SharedDtor() {
9494  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
9495 }
9496 
9497 void SymmetryProto::ArenaDtor(void* object) {
9498  SymmetryProto* _this = reinterpret_cast< SymmetryProto* >(object);
9499  (void)_this;
9500 }
9501 void SymmetryProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9502 }
9503 void SymmetryProto::SetCachedSize(int size) const {
9504  _cached_size_.Set(size);
9505 }
9506 
9508 // @@protoc_insertion_point(message_clear_start:operations_research.sat.SymmetryProto)
9509  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9510  // Prevent compiler warnings about cached_has_bits being unused
9511  (void) cached_has_bits;
9512 
9513  permutations_.Clear();
9514  orbitopes_.Clear();
9515  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9516 }
9517 
9518 const char* SymmetryProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9519 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9520  while (!ctx->Done(&ptr)) {
9521  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
9522  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9523  switch (tag >> 3) {
9524  // repeated .operations_research.sat.SparsePermutationProto permutations = 1;
9525  case 1:
9526  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
9527  ptr -= 1;
9528  do {
9529  ptr += 1;
9530  ptr = ctx->ParseMessage(_internal_add_permutations(), ptr);
9531  CHK_(ptr);
9532  if (!ctx->DataAvailable(ptr)) break;
9533  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
9534  } else goto handle_unusual;
9535  continue;
9536  // repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
9537  case 2:
9538  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
9539  ptr -= 1;
9540  do {
9541  ptr += 1;
9542  ptr = ctx->ParseMessage(_internal_add_orbitopes(), ptr);
9543  CHK_(ptr);
9544  if (!ctx->DataAvailable(ptr)) break;
9545  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
9546  } else goto handle_unusual;
9547  continue;
9548  default: {
9549  handle_unusual:
9550  if ((tag == 0) || ((tag & 7) == 4)) {
9551  CHK_(ptr);
9552  ctx->SetLastTag(tag);
9553  goto success;
9554  }
9555  ptr = UnknownFieldParse(tag,
9556  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9557  ptr, ctx);
9558  CHK_(ptr != nullptr);
9559  continue;
9560  }
9561  } // switch
9562  } // while
9563 success:
9564  return ptr;
9565 failure:
9566  ptr = nullptr;
9567  goto success;
9568 #undef CHK_
9569 }
9570 
9571 ::PROTOBUF_NAMESPACE_ID::uint8* SymmetryProto::_InternalSerialize(
9572  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9573  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.SymmetryProto)
9574  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9575  (void) cached_has_bits;
9576 
9577  // repeated .operations_research.sat.SparsePermutationProto permutations = 1;
9578  for (unsigned int i = 0,
9579  n = static_cast<unsigned int>(this->_internal_permutations_size()); i < n; i++) {
9580  target = stream->EnsureSpace(target);
9581  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9582  InternalWriteMessage(1, this->_internal_permutations(i), target, stream);
9583  }
9584 
9585  // repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
9586  for (unsigned int i = 0,
9587  n = static_cast<unsigned int>(this->_internal_orbitopes_size()); i < n; i++) {
9588  target = stream->EnsureSpace(target);
9589  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9590  InternalWriteMessage(2, this->_internal_orbitopes(i), target, stream);
9591  }
9592 
9593  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9594  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9595  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9596  }
9597  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.SymmetryProto)
9598  return target;
9599 }
9600 
9602 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.SymmetryProto)
9603  size_t total_size = 0;
9604 
9605  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9606  // Prevent compiler warnings about cached_has_bits being unused
9607  (void) cached_has_bits;
9608 
9609  // repeated .operations_research.sat.SparsePermutationProto permutations = 1;
9610  total_size += 1UL * this->_internal_permutations_size();
9611  for (const auto& msg : this->permutations_) {
9612  total_size +=
9613  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9614  }
9615 
9616  // repeated .operations_research.sat.DenseMatrixProto orbitopes = 2;
9617  total_size += 1UL * this->_internal_orbitopes_size();
9618  for (const auto& msg : this->orbitopes_) {
9619  total_size +=
9620  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
9621  }
9622 
9623  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9624  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
9625  _internal_metadata_, total_size, &_cached_size_);
9626  }
9627  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
9628  SetCachedSize(cached_size);
9629  return total_size;
9630 }
9631 
9632 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData SymmetryProto::_class_data_ = {
9633  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
9634  SymmetryProto::MergeImpl
9635 };
9636 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*SymmetryProto::GetClassData() const { return &_class_data_; }
9637 
9638 void SymmetryProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
9639  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
9640  static_cast<SymmetryProto *>(to)->MergeFrom(
9641  static_cast<const SymmetryProto &>(from));
9642 }
9643 
9644 
9646 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.SymmetryProto)
9647  GOOGLE_DCHECK_NE(&from, this);
9648  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9649  (void) cached_has_bits;
9650 
9651  permutations_.MergeFrom(from.permutations_);
9652  orbitopes_.MergeFrom(from.orbitopes_);
9653  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9654 }
9655 
9657 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.SymmetryProto)
9658  if (&from == this) return;
9659  Clear();
9660  MergeFrom(from);
9661 }
9662 
9664  return true;
9665 }
9666 
9667 void SymmetryProto::InternalSwap(SymmetryProto* other) {
9668  using std::swap;
9669  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
9670  permutations_.InternalSwap(&other->permutations_);
9671  orbitopes_.InternalSwap(&other->orbitopes_);
9672 }
9673 
9674 ::PROTOBUF_NAMESPACE_ID::Metadata SymmetryProto::GetMetadata() const {
9675  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
9678 }
9679 
9680 // ===================================================================
9681 
9683  public:
9684  static const ::operations_research::sat::CpObjectiveProto& objective(const CpModelProto* msg);
9685  static const ::operations_research::sat::PartialVariableAssignment& solution_hint(const CpModelProto* msg);
9686  static const ::operations_research::sat::SymmetryProto& symmetry(const CpModelProto* msg);
9687 };
9688 
9689 const ::operations_research::sat::CpObjectiveProto&
9691  return *msg->objective_;
9692 }
9693 const ::operations_research::sat::PartialVariableAssignment&
9695  return *msg->solution_hint_;
9696 }
9697 const ::operations_research::sat::SymmetryProto&
9699  return *msg->symmetry_;
9700 }
9701 CpModelProto::CpModelProto(::PROTOBUF_NAMESPACE_ID::Arena* arena,
9702  bool is_message_owned)
9703  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
9704  variables_(arena),
9705  constraints_(arena),
9706  search_strategy_(arena),
9707  assumptions_(arena) {
9708  SharedCtor();
9709  if (!is_message_owned) {
9710  RegisterArenaDtor(arena);
9711  }
9712  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpModelProto)
9713 }
9715  : ::PROTOBUF_NAMESPACE_ID::Message(),
9716  variables_(from.variables_),
9717  constraints_(from.constraints_),
9718  search_strategy_(from.search_strategy_),
9719  assumptions_(from.assumptions_) {
9720  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
9721  name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9722  if (!from._internal_name().empty()) {
9723  name_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_name(),
9724  GetArenaForAllocation());
9725  }
9726  if (from._internal_has_objective()) {
9727  objective_ = new ::operations_research::sat::CpObjectiveProto(*from.objective_);
9728  } else {
9729  objective_ = nullptr;
9730  }
9731  if (from._internal_has_solution_hint()) {
9732  solution_hint_ = new ::operations_research::sat::PartialVariableAssignment(*from.solution_hint_);
9733  } else {
9734  solution_hint_ = nullptr;
9735  }
9736  if (from._internal_has_symmetry()) {
9737  symmetry_ = new ::operations_research::sat::SymmetryProto(*from.symmetry_);
9738  } else {
9739  symmetry_ = nullptr;
9740  }
9741  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpModelProto)
9742 }
9743 
9744 inline void CpModelProto::SharedCtor() {
9745 name_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9746 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
9747  reinterpret_cast<char*>(&objective_) - reinterpret_cast<char*>(this)),
9748  0, static_cast<size_t>(reinterpret_cast<char*>(&symmetry_) -
9749  reinterpret_cast<char*>(&objective_)) + sizeof(symmetry_));
9750 }
9751 
9753  // @@protoc_insertion_point(destructor:operations_research.sat.CpModelProto)
9754  if (GetArenaForAllocation() != nullptr) return;
9755  SharedDtor();
9756  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9757 }
9758 
9759 inline void CpModelProto::SharedDtor() {
9760  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
9761  name_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
9762  if (this != internal_default_instance()) delete objective_;
9763  if (this != internal_default_instance()) delete solution_hint_;
9764  if (this != internal_default_instance()) delete symmetry_;
9765 }
9766 
9767 void CpModelProto::ArenaDtor(void* object) {
9768  CpModelProto* _this = reinterpret_cast< CpModelProto* >(object);
9769  (void)_this;
9770 }
9771 void CpModelProto::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
9772 }
9773 void CpModelProto::SetCachedSize(int size) const {
9774  _cached_size_.Set(size);
9775 }
9776 
9778 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpModelProto)
9779  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9780  // Prevent compiler warnings about cached_has_bits being unused
9781  (void) cached_has_bits;
9782 
9783  variables_.Clear();
9784  constraints_.Clear();
9785  search_strategy_.Clear();
9786  assumptions_.Clear();
9787  name_.ClearToEmpty();
9788  if (GetArenaForAllocation() == nullptr && objective_ != nullptr) {
9789  delete objective_;
9790  }
9791  objective_ = nullptr;
9792  if (GetArenaForAllocation() == nullptr && solution_hint_ != nullptr) {
9793  delete solution_hint_;
9794  }
9795  solution_hint_ = nullptr;
9796  if (GetArenaForAllocation() == nullptr && symmetry_ != nullptr) {
9797  delete symmetry_;
9798  }
9799  symmetry_ = nullptr;
9800  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
9801 }
9802 
9803 const char* CpModelProto::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
9804 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
9805  while (!ctx->Done(&ptr)) {
9806  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
9807  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
9808  switch (tag >> 3) {
9809  // string name = 1;
9810  case 1:
9811  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
9812  auto str = _internal_mutable_name();
9813  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
9814  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.CpModelProto.name"));
9815  CHK_(ptr);
9816  } else goto handle_unusual;
9817  continue;
9818  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
9819  case 2:
9820  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
9821  ptr -= 1;
9822  do {
9823  ptr += 1;
9824  ptr = ctx->ParseMessage(_internal_add_variables(), ptr);
9825  CHK_(ptr);
9826  if (!ctx->DataAvailable(ptr)) break;
9827  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
9828  } else goto handle_unusual;
9829  continue;
9830  // repeated .operations_research.sat.ConstraintProto constraints = 3;
9831  case 3:
9832  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
9833  ptr -= 1;
9834  do {
9835  ptr += 1;
9836  ptr = ctx->ParseMessage(_internal_add_constraints(), ptr);
9837  CHK_(ptr);
9838  if (!ctx->DataAvailable(ptr)) break;
9839  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<26>(ptr));
9840  } else goto handle_unusual;
9841  continue;
9842  // .operations_research.sat.CpObjectiveProto objective = 4;
9843  case 4:
9844  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
9845  ptr = ctx->ParseMessage(_internal_mutable_objective(), ptr);
9846  CHK_(ptr);
9847  } else goto handle_unusual;
9848  continue;
9849  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
9850  case 5:
9851  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
9852  ptr -= 1;
9853  do {
9854  ptr += 1;
9855  ptr = ctx->ParseMessage(_internal_add_search_strategy(), ptr);
9856  CHK_(ptr);
9857  if (!ctx->DataAvailable(ptr)) break;
9858  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<42>(ptr));
9859  } else goto handle_unusual;
9860  continue;
9861  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
9862  case 6:
9863  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
9864  ptr = ctx->ParseMessage(_internal_mutable_solution_hint(), ptr);
9865  CHK_(ptr);
9866  } else goto handle_unusual;
9867  continue;
9868  // repeated int32 assumptions = 7;
9869  case 7:
9870  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
9871  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_assumptions(), ptr, ctx);
9872  CHK_(ptr);
9873  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 56) {
9874  _internal_add_assumptions(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
9875  CHK_(ptr);
9876  } else goto handle_unusual;
9877  continue;
9878  // .operations_research.sat.SymmetryProto symmetry = 8;
9879  case 8:
9880  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 66)) {
9881  ptr = ctx->ParseMessage(_internal_mutable_symmetry(), ptr);
9882  CHK_(ptr);
9883  } else goto handle_unusual;
9884  continue;
9885  default: {
9886  handle_unusual:
9887  if ((tag == 0) || ((tag & 7) == 4)) {
9888  CHK_(ptr);
9889  ctx->SetLastTag(tag);
9890  goto success;
9891  }
9892  ptr = UnknownFieldParse(tag,
9893  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
9894  ptr, ctx);
9895  CHK_(ptr != nullptr);
9896  continue;
9897  }
9898  } // switch
9899  } // while
9900 success:
9901  return ptr;
9902 failure:
9903  ptr = nullptr;
9904  goto success;
9905 #undef CHK_
9906 }
9907 
9908 ::PROTOBUF_NAMESPACE_ID::uint8* CpModelProto::_InternalSerialize(
9909  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
9910  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpModelProto)
9911  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9912  (void) cached_has_bits;
9913 
9914  // string name = 1;
9915  if (!this->_internal_name().empty()) {
9916  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
9917  this->_internal_name().data(), static_cast<int>(this->_internal_name().length()),
9918  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
9919  "operations_research.sat.CpModelProto.name");
9920  target = stream->WriteStringMaybeAliased(
9921  1, this->_internal_name(), target);
9922  }
9923 
9924  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
9925  for (unsigned int i = 0,
9926  n = static_cast<unsigned int>(this->_internal_variables_size()); i < n; i++) {
9927  target = stream->EnsureSpace(target);
9928  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9929  InternalWriteMessage(2, this->_internal_variables(i), target, stream);
9930  }
9931 
9932  // repeated .operations_research.sat.ConstraintProto constraints = 3;
9933  for (unsigned int i = 0,
9934  n = static_cast<unsigned int>(this->_internal_constraints_size()); i < n; i++) {
9935  target = stream->EnsureSpace(target);
9936  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9937  InternalWriteMessage(3, this->_internal_constraints(i), target, stream);
9938  }
9939 
9940  // .operations_research.sat.CpObjectiveProto objective = 4;
9941  if (this->_internal_has_objective()) {
9942  target = stream->EnsureSpace(target);
9943  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9944  InternalWriteMessage(
9945  4, _Internal::objective(this), target, stream);
9946  }
9947 
9948  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
9949  for (unsigned int i = 0,
9950  n = static_cast<unsigned int>(this->_internal_search_strategy_size()); i < n; i++) {
9951  target = stream->EnsureSpace(target);
9952  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9953  InternalWriteMessage(5, this->_internal_search_strategy(i), target, stream);
9954  }
9955 
9956  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
9957  if (this->_internal_has_solution_hint()) {
9958  target = stream->EnsureSpace(target);
9959  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9960  InternalWriteMessage(
9961  6, _Internal::solution_hint(this), target, stream);
9962  }
9963 
9964  // repeated int32 assumptions = 7;
9965  {
9966  int byte_size = _assumptions_cached_byte_size_.load(std::memory_order_relaxed);
9967  if (byte_size > 0) {
9968  target = stream->WriteInt32Packed(
9969  7, _internal_assumptions(), byte_size, target);
9970  }
9971  }
9972 
9973  // .operations_research.sat.SymmetryProto symmetry = 8;
9974  if (this->_internal_has_symmetry()) {
9975  target = stream->EnsureSpace(target);
9976  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
9977  InternalWriteMessage(
9978  8, _Internal::symmetry(this), target, stream);
9979  }
9980 
9981  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
9982  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
9983  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
9984  }
9985  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpModelProto)
9986  return target;
9987 }
9988 
9990 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpModelProto)
9991  size_t total_size = 0;
9992 
9993  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
9994  // Prevent compiler warnings about cached_has_bits being unused
9995  (void) cached_has_bits;
9996 
9997  // repeated .operations_research.sat.IntegerVariableProto variables = 2;
9998  total_size += 1UL * this->_internal_variables_size();
9999  for (const auto& msg : this->variables_) {
10000  total_size +=
10001  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
10002  }
10003 
10004  // repeated .operations_research.sat.ConstraintProto constraints = 3;
10005  total_size += 1UL * this->_internal_constraints_size();
10006  for (const auto& msg : this->constraints_) {
10007  total_size +=
10008  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
10009  }
10010 
10011  // repeated .operations_research.sat.DecisionStrategyProto search_strategy = 5;
10012  total_size += 1UL * this->_internal_search_strategy_size();
10013  for (const auto& msg : this->search_strategy_) {
10014  total_size +=
10015  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
10016  }
10017 
10018  // repeated int32 assumptions = 7;
10019  {
10020  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10021  Int32Size(this->assumptions_);
10022  if (data_size > 0) {
10023  total_size += 1 +
10024  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10025  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10026  }
10027  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10028  _assumptions_cached_byte_size_.store(cached_size,
10029  std::memory_order_relaxed);
10030  total_size += data_size;
10031  }
10032 
10033  // string name = 1;
10034  if (!this->_internal_name().empty()) {
10035  total_size += 1 +
10036  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
10037  this->_internal_name());
10038  }
10039 
10040  // .operations_research.sat.CpObjectiveProto objective = 4;
10041  if (this->_internal_has_objective()) {
10042  total_size += 1 +
10043  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
10044  *objective_);
10045  }
10046 
10047  // .operations_research.sat.PartialVariableAssignment solution_hint = 6;
10048  if (this->_internal_has_solution_hint()) {
10049  total_size += 1 +
10050  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
10051  *solution_hint_);
10052  }
10053 
10054  // .operations_research.sat.SymmetryProto symmetry = 8;
10055  if (this->_internal_has_symmetry()) {
10056  total_size += 1 +
10057  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(
10058  *symmetry_);
10059  }
10060 
10061  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
10062  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
10063  _internal_metadata_, total_size, &_cached_size_);
10064  }
10065  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
10066  SetCachedSize(cached_size);
10067  return total_size;
10068 }
10069 
10070 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CpModelProto::_class_data_ = {
10071  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
10072  CpModelProto::MergeImpl
10073 };
10074 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CpModelProto::GetClassData() const { return &_class_data_; }
10075 
10076 void CpModelProto::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
10077  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
10078  static_cast<CpModelProto *>(to)->MergeFrom(
10079  static_cast<const CpModelProto &>(from));
10080 }
10081 
10082 
10084 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpModelProto)
10085  GOOGLE_DCHECK_NE(&from, this);
10086  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10087  (void) cached_has_bits;
10088 
10089  variables_.MergeFrom(from.variables_);
10090  constraints_.MergeFrom(from.constraints_);
10091  search_strategy_.MergeFrom(from.search_strategy_);
10092  assumptions_.MergeFrom(from.assumptions_);
10093  if (!from._internal_name().empty()) {
10094  _internal_set_name(from._internal_name());
10095  }
10096  if (from._internal_has_objective()) {
10097  _internal_mutable_objective()->::operations_research::sat::CpObjectiveProto::MergeFrom(from._internal_objective());
10098  }
10099  if (from._internal_has_solution_hint()) {
10100  _internal_mutable_solution_hint()->::operations_research::sat::PartialVariableAssignment::MergeFrom(from._internal_solution_hint());
10101  }
10102  if (from._internal_has_symmetry()) {
10103  _internal_mutable_symmetry()->::operations_research::sat::SymmetryProto::MergeFrom(from._internal_symmetry());
10104  }
10105  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
10106 }
10107 
10109 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpModelProto)
10110  if (&from == this) return;
10111  Clear();
10112  MergeFrom(from);
10113 }
10114 
10116  return true;
10117 }
10118 
10119 void CpModelProto::InternalSwap(CpModelProto* other) {
10120  using std::swap;
10121  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
10122  variables_.InternalSwap(&other->variables_);
10123  constraints_.InternalSwap(&other->constraints_);
10124  search_strategy_.InternalSwap(&other->search_strategy_);
10125  assumptions_.InternalSwap(&other->assumptions_);
10126  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
10127  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
10128  &name_, GetArenaForAllocation(),
10129  &other->name_, other->GetArenaForAllocation()
10130  );
10131  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
10132  PROTOBUF_FIELD_OFFSET(CpModelProto, symmetry_)
10133  + sizeof(CpModelProto::symmetry_)
10134  - PROTOBUF_FIELD_OFFSET(CpModelProto, objective_)>(
10135  reinterpret_cast<char*>(&objective_),
10136  reinterpret_cast<char*>(&other->objective_));
10137 }
10138 
10139 ::PROTOBUF_NAMESPACE_ID::Metadata CpModelProto::GetMetadata() const {
10140  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
10143 }
10144 
10145 // ===================================================================
10146 
10148  public:
10149 };
10150 
10151 CpSolverResponse::CpSolverResponse(::PROTOBUF_NAMESPACE_ID::Arena* arena,
10152  bool is_message_owned)
10153  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
10154  solution_(arena),
10155  solution_lower_bounds_(arena),
10156  solution_upper_bounds_(arena),
10157  tightened_variables_(arena),
10158  sufficient_assumptions_for_infeasibility_(arena) {
10159  SharedCtor();
10160  if (!is_message_owned) {
10161  RegisterArenaDtor(arena);
10162  }
10163  // @@protoc_insertion_point(arena_constructor:operations_research.sat.CpSolverResponse)
10164 }
10166  : ::PROTOBUF_NAMESPACE_ID::Message(),
10167  solution_(from.solution_),
10168  solution_lower_bounds_(from.solution_lower_bounds_),
10169  solution_upper_bounds_(from.solution_upper_bounds_),
10170  tightened_variables_(from.tightened_variables_),
10171  sufficient_assumptions_for_infeasibility_(from.sufficient_assumptions_for_infeasibility_) {
10172  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
10173  solution_info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10174  if (!from._internal_solution_info().empty()) {
10175  solution_info_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_solution_info(),
10176  GetArenaForAllocation());
10177  }
10178  solve_log_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10179  if (!from._internal_solve_log().empty()) {
10180  solve_log_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_solve_log(),
10181  GetArenaForAllocation());
10182  }
10183  ::memcpy(&objective_value_, &from.objective_value_,
10184  static_cast<size_t>(reinterpret_cast<char*>(&num_lp_iterations_) -
10185  reinterpret_cast<char*>(&objective_value_)) + sizeof(num_lp_iterations_));
10186  // @@protoc_insertion_point(copy_constructor:operations_research.sat.CpSolverResponse)
10187 }
10188 
10189 inline void CpSolverResponse::SharedCtor() {
10190 solution_info_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10191 solve_log_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10192 ::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
10193  reinterpret_cast<char*>(&objective_value_) - reinterpret_cast<char*>(this)),
10194  0, static_cast<size_t>(reinterpret_cast<char*>(&num_lp_iterations_) -
10195  reinterpret_cast<char*>(&objective_value_)) + sizeof(num_lp_iterations_));
10196 }
10197 
10199  // @@protoc_insertion_point(destructor:operations_research.sat.CpSolverResponse)
10200  if (GetArenaForAllocation() != nullptr) return;
10201  SharedDtor();
10202  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
10203 }
10204 
10205 inline void CpSolverResponse::SharedDtor() {
10206  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
10207  solution_info_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10208  solve_log_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
10209 }
10210 
10211 void CpSolverResponse::ArenaDtor(void* object) {
10212  CpSolverResponse* _this = reinterpret_cast< CpSolverResponse* >(object);
10213  (void)_this;
10214 }
10215 void CpSolverResponse::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
10216 }
10217 void CpSolverResponse::SetCachedSize(int size) const {
10218  _cached_size_.Set(size);
10219 }
10220 
10222 // @@protoc_insertion_point(message_clear_start:operations_research.sat.CpSolverResponse)
10223  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10224  // Prevent compiler warnings about cached_has_bits being unused
10225  (void) cached_has_bits;
10226 
10227  solution_.Clear();
10228  solution_lower_bounds_.Clear();
10229  solution_upper_bounds_.Clear();
10230  tightened_variables_.Clear();
10231  sufficient_assumptions_for_infeasibility_.Clear();
10232  solution_info_.ClearToEmpty();
10233  solve_log_.ClearToEmpty();
10234  ::memset(&objective_value_, 0, static_cast<size_t>(
10235  reinterpret_cast<char*>(&num_lp_iterations_) -
10236  reinterpret_cast<char*>(&objective_value_)) + sizeof(num_lp_iterations_));
10237  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
10238 }
10239 
10240 const char* CpSolverResponse::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
10241 #define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
10242  while (!ctx->Done(&ptr)) {
10243  ::PROTOBUF_NAMESPACE_ID::uint32 tag;
10244  ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
10245  switch (tag >> 3) {
10246  // .operations_research.sat.CpSolverStatus status = 1;
10247  case 1:
10248  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
10249  ::PROTOBUF_NAMESPACE_ID::uint64 val = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10250  CHK_(ptr);
10251  _internal_set_status(static_cast<::operations_research::sat::CpSolverStatus>(val));
10252  } else goto handle_unusual;
10253  continue;
10254  // repeated int64 solution = 2;
10255  case 2:
10256  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
10257  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_solution(), ptr, ctx);
10258  CHK_(ptr);
10259  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16) {
10260  _internal_add_solution(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10261  CHK_(ptr);
10262  } else goto handle_unusual;
10263  continue;
10264  // double objective_value = 3;
10265  case 3:
10266  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 25)) {
10267  objective_value_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10268  ptr += sizeof(double);
10269  } else goto handle_unusual;
10270  continue;
10271  // double best_objective_bound = 4;
10272  case 4:
10273  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 33)) {
10274  best_objective_bound_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10275  ptr += sizeof(double);
10276  } else goto handle_unusual;
10277  continue;
10278  // bool all_solutions_were_found = 5;
10279  case 5:
10280  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
10281  all_solutions_were_found_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10282  CHK_(ptr);
10283  } else goto handle_unusual;
10284  continue;
10285  // int64 num_booleans = 10;
10286  case 10:
10287  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 80)) {
10288  num_booleans_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10289  CHK_(ptr);
10290  } else goto handle_unusual;
10291  continue;
10292  // int64 num_conflicts = 11;
10293  case 11:
10294  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 88)) {
10295  num_conflicts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10296  CHK_(ptr);
10297  } else goto handle_unusual;
10298  continue;
10299  // int64 num_branches = 12;
10300  case 12:
10301  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 96)) {
10302  num_branches_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10303  CHK_(ptr);
10304  } else goto handle_unusual;
10305  continue;
10306  // int64 num_binary_propagations = 13;
10307  case 13:
10308  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 104)) {
10309  num_binary_propagations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10310  CHK_(ptr);
10311  } else goto handle_unusual;
10312  continue;
10313  // int64 num_integer_propagations = 14;
10314  case 14:
10315  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 112)) {
10316  num_integer_propagations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10317  CHK_(ptr);
10318  } else goto handle_unusual;
10319  continue;
10320  // double wall_time = 15;
10321  case 15:
10322  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 121)) {
10323  wall_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10324  ptr += sizeof(double);
10325  } else goto handle_unusual;
10326  continue;
10327  // double user_time = 16;
10328  case 16:
10329  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 129)) {
10330  user_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10331  ptr += sizeof(double);
10332  } else goto handle_unusual;
10333  continue;
10334  // double deterministic_time = 17;
10335  case 17:
10336  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 137)) {
10337  deterministic_time_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10338  ptr += sizeof(double);
10339  } else goto handle_unusual;
10340  continue;
10341  // repeated int64 solution_lower_bounds = 18;
10342  case 18:
10343  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 146)) {
10344  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_solution_lower_bounds(), ptr, ctx);
10345  CHK_(ptr);
10346  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 144) {
10347  _internal_add_solution_lower_bounds(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10348  CHK_(ptr);
10349  } else goto handle_unusual;
10350  continue;
10351  // repeated int64 solution_upper_bounds = 19;
10352  case 19:
10353  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 154)) {
10354  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt64Parser(_internal_mutable_solution_upper_bounds(), ptr, ctx);
10355  CHK_(ptr);
10356  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 152) {
10357  _internal_add_solution_upper_bounds(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10358  CHK_(ptr);
10359  } else goto handle_unusual;
10360  continue;
10361  // string solution_info = 20;
10362  case 20:
10363  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 162)) {
10364  auto str = _internal_mutable_solution_info();
10365  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
10366  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.CpSolverResponse.solution_info"));
10367  CHK_(ptr);
10368  } else goto handle_unusual;
10369  continue;
10370  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
10371  case 21:
10372  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 170)) {
10373  ptr -= 2;
10374  do {
10375  ptr += 2;
10376  ptr = ctx->ParseMessage(_internal_add_tightened_variables(), ptr);
10377  CHK_(ptr);
10378  if (!ctx->DataAvailable(ptr)) break;
10379  } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<170>(ptr));
10380  } else goto handle_unusual;
10381  continue;
10382  // double primal_integral = 22;
10383  case 22:
10384  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 177)) {
10385  primal_integral_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
10386  ptr += sizeof(double);
10387  } else goto handle_unusual;
10388  continue;
10389  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
10390  case 23:
10391  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 186)) {
10392  ptr = ::PROTOBUF_NAMESPACE_ID::internal::PackedInt32Parser(_internal_mutable_sufficient_assumptions_for_infeasibility(), ptr, ctx);
10393  CHK_(ptr);
10394  } else if (static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 184) {
10395  _internal_add_sufficient_assumptions_for_infeasibility(::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr));
10396  CHK_(ptr);
10397  } else goto handle_unusual;
10398  continue;
10399  // int64 num_restarts = 24;
10400  case 24:
10401  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 192)) {
10402  num_restarts_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10403  CHK_(ptr);
10404  } else goto handle_unusual;
10405  continue;
10406  // int64 num_lp_iterations = 25;
10407  case 25:
10408  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 200)) {
10409  num_lp_iterations_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
10410  CHK_(ptr);
10411  } else goto handle_unusual;
10412  continue;
10413  // string solve_log = 26;
10414  case 26:
10415  if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 210)) {
10416  auto str = _internal_mutable_solve_log();
10417  ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
10418  CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "operations_research.sat.CpSolverResponse.solve_log"));
10419  CHK_(ptr);
10420  } else goto handle_unusual;
10421  continue;
10422  default: {
10423  handle_unusual:
10424  if ((tag == 0) || ((tag & 7) == 4)) {
10425  CHK_(ptr);
10426  ctx->SetLastTag(tag);
10427  goto success;
10428  }
10429  ptr = UnknownFieldParse(tag,
10430  _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
10431  ptr, ctx);
10432  CHK_(ptr != nullptr);
10433  continue;
10434  }
10435  } // switch
10436  } // while
10437 success:
10438  return ptr;
10439 failure:
10440  ptr = nullptr;
10441  goto success;
10442 #undef CHK_
10443 }
10444 
10445 ::PROTOBUF_NAMESPACE_ID::uint8* CpSolverResponse::_InternalSerialize(
10446  ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
10447  // @@protoc_insertion_point(serialize_to_array_start:operations_research.sat.CpSolverResponse)
10448  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10449  (void) cached_has_bits;
10450 
10451  // .operations_research.sat.CpSolverStatus status = 1;
10452  if (this->_internal_status() != 0) {
10453  target = stream->EnsureSpace(target);
10454  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteEnumToArray(
10455  1, this->_internal_status(), target);
10456  }
10457 
10458  // repeated int64 solution = 2;
10459  {
10460  int byte_size = _solution_cached_byte_size_.load(std::memory_order_relaxed);
10461  if (byte_size > 0) {
10462  target = stream->WriteInt64Packed(
10463  2, _internal_solution(), byte_size, target);
10464  }
10465  }
10466 
10467  // double objective_value = 3;
10468  if (!(this->_internal_objective_value() <= 0 && this->_internal_objective_value() >= 0)) {
10469  target = stream->EnsureSpace(target);
10470  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(3, this->_internal_objective_value(), target);
10471  }
10472 
10473  // double best_objective_bound = 4;
10474  if (!(this->_internal_best_objective_bound() <= 0 && this->_internal_best_objective_bound() >= 0)) {
10475  target = stream->EnsureSpace(target);
10476  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(4, this->_internal_best_objective_bound(), target);
10477  }
10478 
10479  // bool all_solutions_were_found = 5;
10480  if (this->_internal_all_solutions_were_found() != 0) {
10481  target = stream->EnsureSpace(target);
10482  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteBoolToArray(5, this->_internal_all_solutions_were_found(), target);
10483  }
10484 
10485  // int64 num_booleans = 10;
10486  if (this->_internal_num_booleans() != 0) {
10487  target = stream->EnsureSpace(target);
10488  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(10, this->_internal_num_booleans(), target);
10489  }
10490 
10491  // int64 num_conflicts = 11;
10492  if (this->_internal_num_conflicts() != 0) {
10493  target = stream->EnsureSpace(target);
10494  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(11, this->_internal_num_conflicts(), target);
10495  }
10496 
10497  // int64 num_branches = 12;
10498  if (this->_internal_num_branches() != 0) {
10499  target = stream->EnsureSpace(target);
10500  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(12, this->_internal_num_branches(), target);
10501  }
10502 
10503  // int64 num_binary_propagations = 13;
10504  if (this->_internal_num_binary_propagations() != 0) {
10505  target = stream->EnsureSpace(target);
10506  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(13, this->_internal_num_binary_propagations(), target);
10507  }
10508 
10509  // int64 num_integer_propagations = 14;
10510  if (this->_internal_num_integer_propagations() != 0) {
10511  target = stream->EnsureSpace(target);
10512  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(14, this->_internal_num_integer_propagations(), target);
10513  }
10514 
10515  // double wall_time = 15;
10516  if (!(this->_internal_wall_time() <= 0 && this->_internal_wall_time() >= 0)) {
10517  target = stream->EnsureSpace(target);
10518  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(15, this->_internal_wall_time(), target);
10519  }
10520 
10521  // double user_time = 16;
10522  if (!(this->_internal_user_time() <= 0 && this->_internal_user_time() >= 0)) {
10523  target = stream->EnsureSpace(target);
10524  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(16, this->_internal_user_time(), target);
10525  }
10526 
10527  // double deterministic_time = 17;
10528  if (!(this->_internal_deterministic_time() <= 0 && this->_internal_deterministic_time() >= 0)) {
10529  target = stream->EnsureSpace(target);
10530  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(17, this->_internal_deterministic_time(), target);
10531  }
10532 
10533  // repeated int64 solution_lower_bounds = 18;
10534  {
10535  int byte_size = _solution_lower_bounds_cached_byte_size_.load(std::memory_order_relaxed);
10536  if (byte_size > 0) {
10537  target = stream->WriteInt64Packed(
10538  18, _internal_solution_lower_bounds(), byte_size, target);
10539  }
10540  }
10541 
10542  // repeated int64 solution_upper_bounds = 19;
10543  {
10544  int byte_size = _solution_upper_bounds_cached_byte_size_.load(std::memory_order_relaxed);
10545  if (byte_size > 0) {
10546  target = stream->WriteInt64Packed(
10547  19, _internal_solution_upper_bounds(), byte_size, target);
10548  }
10549  }
10550 
10551  // string solution_info = 20;
10552  if (!this->_internal_solution_info().empty()) {
10553  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
10554  this->_internal_solution_info().data(), static_cast<int>(this->_internal_solution_info().length()),
10555  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
10556  "operations_research.sat.CpSolverResponse.solution_info");
10557  target = stream->WriteStringMaybeAliased(
10558  20, this->_internal_solution_info(), target);
10559  }
10560 
10561  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
10562  for (unsigned int i = 0,
10563  n = static_cast<unsigned int>(this->_internal_tightened_variables_size()); i < n; i++) {
10564  target = stream->EnsureSpace(target);
10565  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10566  InternalWriteMessage(21, this->_internal_tightened_variables(i), target, stream);
10567  }
10568 
10569  // double primal_integral = 22;
10570  if (!(this->_internal_primal_integral() <= 0 && this->_internal_primal_integral() >= 0)) {
10571  target = stream->EnsureSpace(target);
10572  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteDoubleToArray(22, this->_internal_primal_integral(), target);
10573  }
10574 
10575  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
10576  {
10577  int byte_size = _sufficient_assumptions_for_infeasibility_cached_byte_size_.load(std::memory_order_relaxed);
10578  if (byte_size > 0) {
10579  target = stream->WriteInt32Packed(
10580  23, _internal_sufficient_assumptions_for_infeasibility(), byte_size, target);
10581  }
10582  }
10583 
10584  // int64 num_restarts = 24;
10585  if (this->_internal_num_restarts() != 0) {
10586  target = stream->EnsureSpace(target);
10587  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(24, this->_internal_num_restarts(), target);
10588  }
10589 
10590  // int64 num_lp_iterations = 25;
10591  if (this->_internal_num_lp_iterations() != 0) {
10592  target = stream->EnsureSpace(target);
10593  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(25, this->_internal_num_lp_iterations(), target);
10594  }
10595 
10596  // string solve_log = 26;
10597  if (!this->_internal_solve_log().empty()) {
10598  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
10599  this->_internal_solve_log().data(), static_cast<int>(this->_internal_solve_log().length()),
10600  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
10601  "operations_research.sat.CpSolverResponse.solve_log");
10602  target = stream->WriteStringMaybeAliased(
10603  26, this->_internal_solve_log(), target);
10604  }
10605 
10606  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
10607  target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
10608  _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
10609  }
10610  // @@protoc_insertion_point(serialize_to_array_end:operations_research.sat.CpSolverResponse)
10611  return target;
10612 }
10613 
10615 // @@protoc_insertion_point(message_byte_size_start:operations_research.sat.CpSolverResponse)
10616  size_t total_size = 0;
10617 
10618  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10619  // Prevent compiler warnings about cached_has_bits being unused
10620  (void) cached_has_bits;
10621 
10622  // repeated int64 solution = 2;
10623  {
10624  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10625  Int64Size(this->solution_);
10626  if (data_size > 0) {
10627  total_size += 1 +
10628  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10629  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10630  }
10631  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10632  _solution_cached_byte_size_.store(cached_size,
10633  std::memory_order_relaxed);
10634  total_size += data_size;
10635  }
10636 
10637  // repeated int64 solution_lower_bounds = 18;
10638  {
10639  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10640  Int64Size(this->solution_lower_bounds_);
10641  if (data_size > 0) {
10642  total_size += 2 +
10643  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10644  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10645  }
10646  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10647  _solution_lower_bounds_cached_byte_size_.store(cached_size,
10648  std::memory_order_relaxed);
10649  total_size += data_size;
10650  }
10651 
10652  // repeated int64 solution_upper_bounds = 19;
10653  {
10654  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10655  Int64Size(this->solution_upper_bounds_);
10656  if (data_size > 0) {
10657  total_size += 2 +
10658  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10659  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10660  }
10661  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10662  _solution_upper_bounds_cached_byte_size_.store(cached_size,
10663  std::memory_order_relaxed);
10664  total_size += data_size;
10665  }
10666 
10667  // repeated .operations_research.sat.IntegerVariableProto tightened_variables = 21;
10668  total_size += 2UL * this->_internal_tightened_variables_size();
10669  for (const auto& msg : this->tightened_variables_) {
10670  total_size +=
10671  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
10672  }
10673 
10674  // repeated int32 sufficient_assumptions_for_infeasibility = 23;
10675  {
10676  size_t data_size = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
10677  Int32Size(this->sufficient_assumptions_for_infeasibility_);
10678  if (data_size > 0) {
10679  total_size += 2 +
10680  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int32Size(
10681  static_cast<::PROTOBUF_NAMESPACE_ID::int32>(data_size));
10682  }
10683  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(data_size);
10684  _sufficient_assumptions_for_infeasibility_cached_byte_size_.store(cached_size,
10685  std::memory_order_relaxed);
10686  total_size += data_size;
10687  }
10688 
10689  // string solution_info = 20;
10690  if (!this->_internal_solution_info().empty()) {
10691  total_size += 2 +
10692  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
10693  this->_internal_solution_info());
10694  }
10695 
10696  // string solve_log = 26;
10697  if (!this->_internal_solve_log().empty()) {
10698  total_size += 2 +
10699  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
10700  this->_internal_solve_log());
10701  }
10702 
10703  // double objective_value = 3;
10704  if (!(this->_internal_objective_value() <= 0 && this->_internal_objective_value() >= 0)) {
10705  total_size += 1 + 8;
10706  }
10707 
10708  // .operations_research.sat.CpSolverStatus status = 1;
10709  if (this->_internal_status() != 0) {
10710  total_size += 1 +
10711  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::EnumSize(this->_internal_status());
10712  }
10713 
10714  // bool all_solutions_were_found = 5;
10715  if (this->_internal_all_solutions_were_found() != 0) {
10716  total_size += 1 + 1;
10717  }
10718 
10719  // double best_objective_bound = 4;
10720  if (!(this->_internal_best_objective_bound() <= 0 && this->_internal_best_objective_bound() >= 0)) {
10721  total_size += 1 + 8;
10722  }
10723 
10724  // int64 num_booleans = 10;
10725  if (this->_internal_num_booleans() != 0) {
10726  total_size += 1 +
10727  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10728  this->_internal_num_booleans());
10729  }
10730 
10731  // int64 num_conflicts = 11;
10732  if (this->_internal_num_conflicts() != 0) {
10733  total_size += 1 +
10734  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10735  this->_internal_num_conflicts());
10736  }
10737 
10738  // int64 num_branches = 12;
10739  if (this->_internal_num_branches() != 0) {
10740  total_size += 1 +
10741  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10742  this->_internal_num_branches());
10743  }
10744 
10745  // int64 num_binary_propagations = 13;
10746  if (this->_internal_num_binary_propagations() != 0) {
10747  total_size += 1 +
10748  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10749  this->_internal_num_binary_propagations());
10750  }
10751 
10752  // int64 num_integer_propagations = 14;
10753  if (this->_internal_num_integer_propagations() != 0) {
10754  total_size += 1 +
10755  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10756  this->_internal_num_integer_propagations());
10757  }
10758 
10759  // double wall_time = 15;
10760  if (!(this->_internal_wall_time() <= 0 && this->_internal_wall_time() >= 0)) {
10761  total_size += 1 + 8;
10762  }
10763 
10764  // double user_time = 16;
10765  if (!(this->_internal_user_time() <= 0 && this->_internal_user_time() >= 0)) {
10766  total_size += 2 + 8;
10767  }
10768 
10769  // double deterministic_time = 17;
10770  if (!(this->_internal_deterministic_time() <= 0 && this->_internal_deterministic_time() >= 0)) {
10771  total_size += 2 + 8;
10772  }
10773 
10774  // double primal_integral = 22;
10775  if (!(this->_internal_primal_integral() <= 0 && this->_internal_primal_integral() >= 0)) {
10776  total_size += 2 + 8;
10777  }
10778 
10779  // int64 num_restarts = 24;
10780  if (this->_internal_num_restarts() != 0) {
10781  total_size += 2 +
10782  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10783  this->_internal_num_restarts());
10784  }
10785 
10786  // int64 num_lp_iterations = 25;
10787  if (this->_internal_num_lp_iterations() != 0) {
10788  total_size += 2 +
10789  ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::Int64Size(
10790  this->_internal_num_lp_iterations());
10791  }
10792 
10793  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
10794  return ::PROTOBUF_NAMESPACE_ID::internal::ComputeUnknownFieldsSize(
10795  _internal_metadata_, total_size, &_cached_size_);
10796  }
10797  int cached_size = ::PROTOBUF_NAMESPACE_ID::internal::ToCachedSize(total_size);
10798  SetCachedSize(cached_size);
10799  return total_size;
10800 }
10801 
10802 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CpSolverResponse::_class_data_ = {
10803  ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
10804  CpSolverResponse::MergeImpl
10805 };
10806 const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CpSolverResponse::GetClassData() const { return &_class_data_; }
10807 
10808 void CpSolverResponse::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message*to,
10809  const ::PROTOBUF_NAMESPACE_ID::Message&from) {
10810  static_cast<CpSolverResponse *>(to)->MergeFrom(
10811  static_cast<const CpSolverResponse &>(from));
10812 }
10813 
10814 
10816 // @@protoc_insertion_point(class_specific_merge_from_start:operations_research.sat.CpSolverResponse)
10817  GOOGLE_DCHECK_NE(&from, this);
10818  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
10819  (void) cached_has_bits;
10820 
10821  solution_.MergeFrom(from.solution_);
10822  solution_lower_bounds_.MergeFrom(from.solution_lower_bounds_);
10823  solution_upper_bounds_.MergeFrom(from.solution_upper_bounds_);
10824  tightened_variables_.MergeFrom(from.tightened_variables_);
10825  sufficient_assumptions_for_infeasibility_.MergeFrom(from.sufficient_assumptions_for_infeasibility_);
10826  if (!from._internal_solution_info().empty()) {
10827  _internal_set_solution_info(from._internal_solution_info());
10828  }
10829  if (!from._internal_solve_log().empty()) {
10830  _internal_set_solve_log(from._internal_solve_log());
10831  }
10832  if (!(from._internal_objective_value() <= 0 && from._internal_objective_value() >= 0)) {
10833  _internal_set_objective_value(from._internal_objective_value());
10834  }
10835  if (from._internal_status() != 0) {
10836  _internal_set_status(from._internal_status());
10837  }
10838  if (from._internal_all_solutions_were_found() != 0) {
10839  _internal_set_all_solutions_were_found(from._internal_all_solutions_were_found());
10840  }
10841  if (!(from._internal_best_objective_bound() <= 0 && from._internal_best_objective_bound() >= 0)) {
10842  _internal_set_best_objective_bound(from._internal_best_objective_bound());
10843  }
10844  if (from._internal_num_booleans() != 0) {
10845  _internal_set_num_booleans(from._internal_num_booleans());
10846  }
10847  if (from._internal_num_conflicts() != 0) {
10848  _internal_set_num_conflicts(from._internal_num_conflicts());
10849  }
10850  if (from._internal_num_branches() != 0) {
10851  _internal_set_num_branches(from._internal_num_branches());
10852  }
10853  if (from._internal_num_binary_propagations() != 0) {
10854  _internal_set_num_binary_propagations(from._internal_num_binary_propagations());
10855  }
10856  if (from._internal_num_integer_propagations() != 0) {
10857  _internal_set_num_integer_propagations(from._internal_num_integer_propagations());
10858  }
10859  if (!(from._internal_wall_time() <= 0 && from._internal_wall_time() >= 0)) {
10860  _internal_set_wall_time(from._internal_wall_time());
10861  }
10862  if (!(from._internal_user_time() <= 0 && from._internal_user_time() >= 0)) {
10863  _internal_set_user_time(from._internal_user_time());
10864  }
10865  if (!(from._internal_deterministic_time() <= 0 && from._internal_deterministic_time() >= 0)) {
10866  _internal_set_deterministic_time(from._internal_deterministic_time());
10867  }
10868  if (!(from._internal_primal_integral() <= 0 && from._internal_primal_integral() >= 0)) {
10869  _internal_set_primal_integral(from._internal_primal_integral());
10870  }
10871  if (from._internal_num_restarts() != 0) {
10872  _internal_set_num_restarts(from._internal_num_restarts());
10873  }
10874  if (from._internal_num_lp_iterations() != 0) {
10875  _internal_set_num_lp_iterations(from._internal_num_lp_iterations());
10876  }
10877  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
10878 }
10879 
10881 // @@protoc_insertion_point(class_specific_copy_from_start:operations_research.sat.CpSolverResponse)
10882  if (&from == this) return;
10883  Clear();
10884  MergeFrom(from);
10885 }
10886 
10888  return true;
10889 }
10890 
10891 void CpSolverResponse::InternalSwap(CpSolverResponse* other) {
10892  using std::swap;
10893  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
10894  solution_.InternalSwap(&other->solution_);
10895  solution_lower_bounds_.InternalSwap(&other->solution_lower_bounds_);
10896  solution_upper_bounds_.InternalSwap(&other->solution_upper_bounds_);
10897  tightened_variables_.InternalSwap(&other->tightened_variables_);
10898  sufficient_assumptions_for_infeasibility_.InternalSwap(&other->sufficient_assumptions_for_infeasibility_);
10899  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
10900  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
10901  &solution_info_, GetArenaForAllocation(),
10902  &other->solution_info_, other->GetArenaForAllocation()
10903  );
10904  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
10905  &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
10906  &solve_log_, GetArenaForAllocation(),
10907  &other->solve_log_, other->GetArenaForAllocation()
10908  );
10909  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
10910  PROTOBUF_FIELD_OFFSET(CpSolverResponse, num_lp_iterations_)
10911  + sizeof(CpSolverResponse::num_lp_iterations_)
10912  - PROTOBUF_FIELD_OFFSET(CpSolverResponse, objective_value_)>(
10913  reinterpret_cast<char*>(&objective_value_),
10914  reinterpret_cast<char*>(&other->objective_value_));
10915 }
10916 
10917 ::PROTOBUF_NAMESPACE_ID::Metadata CpSolverResponse::GetMetadata() const {
10918  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
10921 }
10922 
10923 // @@protoc_insertion_point(namespace_scope)
10924 } // namespace sat
10925 } // namespace operations_research
10926 PROTOBUF_NAMESPACE_OPEN
10927 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntegerVariableProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntegerVariableProto >(Arena* arena) {
10928  return Arena::CreateMessageInternal< ::operations_research::sat::IntegerVariableProto >(arena);
10929 }
10930 template<> PROTOBUF_NOINLINE ::operations_research::sat::BoolArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::BoolArgumentProto >(Arena* arena) {
10931  return Arena::CreateMessageInternal< ::operations_research::sat::BoolArgumentProto >(arena);
10932 }
10933 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntegerArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntegerArgumentProto >(Arena* arena) {
10934  return Arena::CreateMessageInternal< ::operations_research::sat::IntegerArgumentProto >(arena);
10935 }
10936 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearExpressionProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearExpressionProto >(Arena* arena) {
10937  return Arena::CreateMessageInternal< ::operations_research::sat::LinearExpressionProto >(arena);
10938 }
10939 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearArgumentProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearArgumentProto >(Arena* arena) {
10940  return Arena::CreateMessageInternal< ::operations_research::sat::LinearArgumentProto >(arena);
10941 }
10942 template<> PROTOBUF_NOINLINE ::operations_research::sat::AllDifferentConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::AllDifferentConstraintProto >(Arena* arena) {
10943  return Arena::CreateMessageInternal< ::operations_research::sat::AllDifferentConstraintProto >(arena);
10944 }
10945 template<> PROTOBUF_NOINLINE ::operations_research::sat::LinearConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::LinearConstraintProto >(Arena* arena) {
10946  return Arena::CreateMessageInternal< ::operations_research::sat::LinearConstraintProto >(arena);
10947 }
10948 template<> PROTOBUF_NOINLINE ::operations_research::sat::ElementConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ElementConstraintProto >(Arena* arena) {
10949  return Arena::CreateMessageInternal< ::operations_research::sat::ElementConstraintProto >(arena);
10950 }
10951 template<> PROTOBUF_NOINLINE ::operations_research::sat::IntervalConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::IntervalConstraintProto >(Arena* arena) {
10952  return Arena::CreateMessageInternal< ::operations_research::sat::IntervalConstraintProto >(arena);
10953 }
10954 template<> PROTOBUF_NOINLINE ::operations_research::sat::NoOverlapConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlapConstraintProto >(Arena* arena) {
10955  return Arena::CreateMessageInternal< ::operations_research::sat::NoOverlapConstraintProto >(arena);
10956 }
10957 template<> PROTOBUF_NOINLINE ::operations_research::sat::NoOverlap2DConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlap2DConstraintProto >(Arena* arena) {
10958  return Arena::CreateMessageInternal< ::operations_research::sat::NoOverlap2DConstraintProto >(arena);
10959 }
10960 template<> PROTOBUF_NOINLINE ::operations_research::sat::CumulativeConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::CumulativeConstraintProto >(Arena* arena) {
10961  return Arena::CreateMessageInternal< ::operations_research::sat::CumulativeConstraintProto >(arena);
10962 }
10963 template<> PROTOBUF_NOINLINE ::operations_research::sat::ReservoirConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ReservoirConstraintProto >(Arena* arena) {
10964  return Arena::CreateMessageInternal< ::operations_research::sat::ReservoirConstraintProto >(arena);
10965 }
10966 template<> PROTOBUF_NOINLINE ::operations_research::sat::CircuitConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::CircuitConstraintProto >(Arena* arena) {
10967  return Arena::CreateMessageInternal< ::operations_research::sat::CircuitConstraintProto >(arena);
10968 }
10969 template<> PROTOBUF_NOINLINE ::operations_research::sat::RoutesConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::RoutesConstraintProto >(Arena* arena) {
10970  return Arena::CreateMessageInternal< ::operations_research::sat::RoutesConstraintProto >(arena);
10971 }
10972 template<> PROTOBUF_NOINLINE ::operations_research::sat::TableConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::TableConstraintProto >(Arena* arena) {
10973  return Arena::CreateMessageInternal< ::operations_research::sat::TableConstraintProto >(arena);
10974 }
10975 template<> PROTOBUF_NOINLINE ::operations_research::sat::InverseConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::InverseConstraintProto >(Arena* arena) {
10976  return Arena::CreateMessageInternal< ::operations_research::sat::InverseConstraintProto >(arena);
10977 }
10978 template<> PROTOBUF_NOINLINE ::operations_research::sat::AutomatonConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::AutomatonConstraintProto >(Arena* arena) {
10979  return Arena::CreateMessageInternal< ::operations_research::sat::AutomatonConstraintProto >(arena);
10980 }
10981 template<> PROTOBUF_NOINLINE ::operations_research::sat::ListOfVariablesProto* Arena::CreateMaybeMessage< ::operations_research::sat::ListOfVariablesProto >(Arena* arena) {
10982  return Arena::CreateMessageInternal< ::operations_research::sat::ListOfVariablesProto >(arena);
10983 }
10984 template<> PROTOBUF_NOINLINE ::operations_research::sat::ConstraintProto* Arena::CreateMaybeMessage< ::operations_research::sat::ConstraintProto >(Arena* arena) {
10985  return Arena::CreateMessageInternal< ::operations_research::sat::ConstraintProto >(arena);
10986 }
10987 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpObjectiveProto* Arena::CreateMaybeMessage< ::operations_research::sat::CpObjectiveProto >(Arena* arena) {
10988  return Arena::CreateMessageInternal< ::operations_research::sat::CpObjectiveProto >(arena);
10989 }
10990 template<> PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto_AffineTransformation* Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(Arena* arena) {
10991  return Arena::CreateMessageInternal< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(arena);
10992 }
10993 template<> PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto* Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto >(Arena* arena) {
10994  return Arena::CreateMessageInternal< ::operations_research::sat::DecisionStrategyProto >(arena);
10995 }
10996 template<> PROTOBUF_NOINLINE ::operations_research::sat::PartialVariableAssignment* Arena::CreateMaybeMessage< ::operations_research::sat::PartialVariableAssignment >(Arena* arena) {
10997  return Arena::CreateMessageInternal< ::operations_research::sat::PartialVariableAssignment >(arena);
10998 }
10999 template<> PROTOBUF_NOINLINE ::operations_research::sat::SparsePermutationProto* Arena::CreateMaybeMessage< ::operations_research::sat::SparsePermutationProto >(Arena* arena) {
11000  return Arena::CreateMessageInternal< ::operations_research::sat::SparsePermutationProto >(arena);
11001 }
11002 template<> PROTOBUF_NOINLINE ::operations_research::sat::DenseMatrixProto* Arena::CreateMaybeMessage< ::operations_research::sat::DenseMatrixProto >(Arena* arena) {
11003  return Arena::CreateMessageInternal< ::operations_research::sat::DenseMatrixProto >(arena);
11004 }
11005 template<> PROTOBUF_NOINLINE ::operations_research::sat::SymmetryProto* Arena::CreateMaybeMessage< ::operations_research::sat::SymmetryProto >(Arena* arena) {
11006  return Arena::CreateMessageInternal< ::operations_research::sat::SymmetryProto >(arena);
11007 }
11008 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpModelProto* Arena::CreateMaybeMessage< ::operations_research::sat::CpModelProto >(Arena* arena) {
11009  return Arena::CreateMessageInternal< ::operations_research::sat::CpModelProto >(arena);
11010 }
11011 template<> PROTOBUF_NOINLINE ::operations_research::sat::CpSolverResponse* Arena::CreateMaybeMessage< ::operations_research::sat::CpSolverResponse >(Arena* arena) {
11012  return Arena::CreateMessageInternal< ::operations_research::sat::CpSolverResponse >(arena);
11013 }
11014 PROTOBUF_NAMESPACE_CLOSE
11015 
11016 // @@protoc_insertion_point(global_scope)
11017 #include <google/protobuf/port_undef.inc>
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static const ::operations_research::sat::AutomatonConstraintProto & automaton(const ConstraintProto *msg)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT TableConstraintProtoDefaultTypeInternal _TableConstraintProto_default_instance_
Definition: cp_model.pb.cc:270
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static const LinearArgumentProto * internal_default_instance()
Definition: cp_model.pb.h:982
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpObjectiveProtoDefaultTypeInternal _CpObjectiveProto_default_instance_
Definition: cp_model.pb.cc:354
static constexpr DomainReductionStrategy DomainReductionStrategy_MIN
Definition: cp_model.pb.h:5171
const ::operations_research::sat::TableConstraintProto & table() const
static const ::operations_research::sat::TableConstraintProto & table(const ConstraintProto *msg)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const ::operations_research::sat::LinearArgumentProto & lin_min() const
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * DecisionStrategyProto_VariableSelectionStrategy_descriptor()
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
#define CHK_(x)
static constexpr DomainReductionStrategy SELECT_MIN_VALUE
Definition: cp_model.pb.h:5158
const ::operations_research::sat::IntegerArgumentProto & int_prod() const
PROTOBUF_NOINLINE ::operations_research::sat::ElementConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::ElementConstraintProto >(Arena *arena)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static const ::operations_research::sat::NoOverlapConstraintProto & no_overlap(const ConstraintProto *msg)
bool DecisionStrategyProto_VariableSelectionStrategy_IsValid(int value)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT IntervalConstraintProtoDefaultTypeInternal _IntervalConstraintProto_default_instance_
Definition: cp_model.pb.cc:152
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void set_allocated_lin_max(::operations_research::sat::LinearArgumentProto *lin_max)
static const ::operations_research::sat::BoolArgumentProto & bool_xor(const ConstraintProto *msg)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
friend void swap(CumulativeConstraintProto &a, CumulativeConstraintProto &b)
Definition: cp_model.pb.h:2251
void MergeFrom(const IntervalConstraintProto &from)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
const ::operations_research::sat::BoolArgumentProto & bool_or() const
Definition: cp_model.pb.h:9335
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_NOINLINE ::operations_research::sat::CumulativeConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::CumulativeConstraintProto >(Arena *arena)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
void MergeFrom(const CumulativeConstraintProto &from)
void CopyFrom(const SymmetryProto &from)
::PROTOBUF_NAMESPACE_ID::int32 target() const
Definition: cp_model.pb.h:6873
const ::operations_research::sat::BoolArgumentProto & at_most_one() const
Definition: cp_model.pb.h:9483
PROTOBUF_NOINLINE ::operations_research::sat::ReservoirConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::ReservoirConstraintProto >(Arena *arena)
void MergeFrom(const IntegerVariableProto &from)
static const ::operations_research::sat::CircuitConstraintProto & circuit(const ConstraintProto *msg)
void MergeFrom(const RoutesConstraintProto &from)
void MergeFrom(const BoolArgumentProto &from)
void set_allocated_int_div(::operations_research::sat::IntegerArgumentProto *int_div)
const ::operations_research::sat::AllDifferentConstraintProto & all_diff() const
const ::operations_research::sat::BoolArgumentProto & bool_and() const
Definition: cp_model.pb.h:9409
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
static const ::operations_research::sat::LinearExpressionProto & start_view(const IntervalConstraintProto *msg)
void MergeFrom(const DenseMatrixProto &from)
void MergeFrom(const SymmetryProto &from)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void set_allocated_int_mod(::operations_research::sat::IntegerArgumentProto *int_mod)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
static const ::operations_research::sat::CpObjectiveProto & objective(const CpModelProto *msg)
void MergeFrom(const LinearConstraintProto &from)
static constexpr DomainReductionStrategy SELECT_MEDIAN_VALUE
Definition: cp_model.pb.h:5166
void CopyFrom(const IntervalConstraintProto &from)
PROTOBUF_NOINLINE ::operations_research::sat::BoolArgumentProto * Arena::CreateMaybeMessage< ::operations_research::sat::BoolArgumentProto >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static constexpr VariableSelectionStrategy CHOOSE_LOWEST_MIN
Definition: cp_model.pb.h:5124
PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto_AffineTransformation * Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto_AffineTransformation >(Arena *arena)
bool DecisionStrategyProto_DomainReductionStrategy_IsValid(int value)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT NoOverlap2DConstraintProtoDefaultTypeInternal _NoOverlap2DConstraintProto_default_instance_
Definition: cp_model.pb.cc:181
void MergeFrom(const LinearExpressionProto &from)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT IntegerArgumentProtoDefaultTypeInternal _IntegerArgumentProto_default_instance_
Definition: cp_model.pb.cc:61
const ::operations_research::sat::ReservoirConstraintProto & reservoir() const
void set_allocated_reservoir(::operations_research::sat::ReservoirConstraintProto *reservoir)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
::PROTOBUF_NAMESPACE_ID::int32 size() const
Definition: cp_model.pb.h:7523
void CopyFrom(const LinearArgumentProto &from)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static const ::operations_research::sat::ReservoirConstraintProto & reservoir(const ConstraintProto *msg)
void MergeFrom(const LinearArgumentProto &from)
void CopyFrom(const CpSolverResponse &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
void set_allocated_dummy_constraint(::operations_research::sat::ListOfVariablesProto *dummy_constraint)
void MergeFrom(const NoOverlapConstraintProto &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static const ::operations_research::sat::BoolArgumentProto & bool_or(const ConstraintProto *msg)
void swap(IdMap< K, V > &a, IdMap< K, V > &b)
Definition: id_map.h:263
void CopyFrom(const DecisionStrategyProto_AffineTransformation &from)
void MergeFrom(const ConstraintProto &from)
void CopyFrom(const BoolArgumentProto &from)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT DecisionStrategyProtoDefaultTypeInternal _DecisionStrategyProto_default_instance_
Definition: cp_model.pb.cc:386
PROTOBUF_NOINLINE ::operations_research::sat::RoutesConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::RoutesConstraintProto >(Arena *arena)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const ::operations_research::sat::ElementConstraintProto & element() const
const ::operations_research::sat::IntegerArgumentProto & int_min() const
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
void MergeFrom(const CpModelProto &from)
PROTOBUF_NOINLINE ::operations_research::sat::AllDifferentConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::AllDifferentConstraintProto >(Arena *arena)
void MergeFrom(const CpSolverResponse &from)
void MergeFrom(const CircuitConstraintProto &from)
static const ClassData _class_data_
Definition: cp_model.pb.h:6080
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT DecisionStrategyProto_AffineTransformationDefaultTypeInternal _DecisionStrategyProto_AffineTransformation_default_instance_
Definition: cp_model.pb.cc:368
const ::PROTOBUF_NAMESPACE_ID::uint32 TableStruct_ortools_2fsat_2fcp_5fmodel_2eproto::offsets [] PROTOBUF_SECTION_VARIABLE(protodesc_cold)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
const ::operations_research::sat::RoutesConstraintProto & routes() const
static constexpr VariableSelectionStrategy CHOOSE_HIGHEST_MAX
Definition: cp_model.pb.h:5126
friend void swap(LinearArgumentProto &a, LinearArgumentProto &b)
Definition: cp_model.pb.h:989
static constexpr DomainReductionStrategy DomainReductionStrategy_MAX
Definition: cp_model.pb.h:5173
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RoutesConstraintProtoDefaultTypeInternal _RoutesConstraintProto_default_instance_
Definition: cp_model.pb.cc:254
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT AllDifferentConstraintProtoDefaultTypeInternal _AllDifferentConstraintProto_default_instance_
Definition: cp_model.pb.cc:103
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
void MergeFrom(const DecisionStrategyProto &from)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void CopyFrom(const DenseMatrixProto &from)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void CopyFrom(const AutomatonConstraintProto &from)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SymmetryProtoDefaultTypeInternal _SymmetryProto_default_instance_
Definition: cp_model.pb.cc:444
static const ::operations_research::sat::PartialVariableAssignment & solution_hint(const CpModelProto *msg)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CumulativeConstraintProtoDefaultTypeInternal _CumulativeConstraintProto_default_instance_
Definition: cp_model.pb.cc:198
static constexpr VariableSelectionStrategy CHOOSE_FIRST
Definition: cp_model.pb.h:5122
void CopyFrom(const NoOverlapConstraintProto &from)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void set_allocated_no_overlap(::operations_research::sat::NoOverlapConstraintProto *no_overlap)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void set_allocated_automaton(::operations_research::sat::AutomatonConstraintProto *automaton)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_NOINLINE ::operations_research::sat::CpModelProto * Arena::CreateMaybeMessage< ::operations_research::sat::CpModelProto >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void CopyFrom(const CpModelProto &from)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
PROTOBUF_NOINLINE ::operations_research::sat::InverseConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::InverseConstraintProto >(Arena *arena)
const ::operations_research::sat::BoolArgumentProto & exactly_one() const
Definition: cp_model.pb.h:9557
void CopyFrom(const IntegerVariableProto &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void MergeFrom(const InverseConstraintProto &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static const ::operations_research::sat::SymmetryProto & symmetry(const CpModelProto *msg)
static const ::operations_research::sat::IntegerArgumentProto & int_min(const ConstraintProto *msg)
void MergeFrom(const AutomatonConstraintProto &from)
static constexpr VariableSelectionStrategy VariableSelectionStrategy_MAX
Definition: cp_model.pb.h:5137
const ::operations_research::sat::LinearConstraintProto & linear() const
PROTOBUF_NOINLINE ::operations_research::sat::SymmetryProto * Arena::CreateMaybeMessage< ::operations_research::sat::SymmetryProto >(Arena *arena)
void MergeFrom(const AllDifferentConstraintProto &from)
void CopyFrom(const ElementConstraintProto &from)
const ::operations_research::sat::NoOverlapConstraintProto & no_overlap() const
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static constexpr VariableSelectionStrategy CHOOSE_MAX_DOMAIN_SIZE
Definition: cp_model.pb.h:5130
void MergeFrom(const DecisionStrategyProto_AffineTransformation &from)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_NOINLINE ::operations_research::sat::CircuitConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::CircuitConstraintProto >(Arena *arena)
const ::operations_research::sat::LinearArgumentProto & lin_max() const
Definition: cp_model.pb.h:9927
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static const ::operations_research::sat::LinearExpressionProto & size_view(const IntervalConstraintProto *msg)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
static const CpModelProto * internal_default_instance()
Definition: cp_model.pb.h:6014
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto
PROTOBUF_NOINLINE ::operations_research::sat::IntervalConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::IntervalConstraintProto >(Arena *arena)
void CopyFrom(const DecisionStrategyProto &from)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const ::operations_research::sat::CumulativeConstraintProto & cumulative() const
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void CopyFrom(const PartialVariableAssignment &from)
void set_allocated_circuit(::operations_research::sat::CircuitConstraintProto *circuit)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static const ::operations_research::sat::BoolArgumentProto & exactly_one(const ConstraintProto *msg)
void CopyFrom(const NoOverlap2DConstraintProto &from)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
void MergeFrom(const PartialVariableAssignment &from)
static const ::operations_research::sat::IntervalConstraintProto & interval(const ConstraintProto *msg)
void CopyFrom(const LinearExpressionProto &from)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CircuitConstraintProtoDefaultTypeInternal _CircuitConstraintProto_default_instance_
Definition: cp_model.pb.cc:234
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
static const ::operations_research::sat::IntegerArgumentProto & int_prod(const ConstraintProto *msg)
void set_allocated_int_min(::operations_research::sat::IntegerArgumentProto *int_min)
PROTOBUF_NOINLINE ::operations_research::sat::LinearExpressionProto * Arena::CreateMaybeMessage< ::operations_research::sat::LinearExpressionProto >(Arena *arena)
IntVar *const objective_
Definition: search.cc:2966
void MergeFrom(const TableConstraintProto &from)
void CopyFrom(const InverseConstraintProto &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
void set_allocated_lin_min(::operations_research::sat::LinearArgumentProto *lin_min)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT DenseMatrixProtoDefaultTypeInternal _DenseMatrixProto_default_instance_
Definition: cp_model.pb.cc:431
const ::operations_research::sat::LinearExpressionProto & target() const
Definition: cp_model.pb.h:7073
void set_allocated_bool_and(::operations_research::sat::BoolArgumentProto *bool_and)
friend void swap(AutomatonConstraintProto &a, AutomatonConstraintProto &b)
Definition: cp_model.pb.h:3494
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static const ::operations_research::sat::CumulativeConstraintProto & cumulative(const ConstraintProto *msg)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_NOINLINE ::operations_research::sat::CpObjectiveProto * Arena::CreateMaybeMessage< ::operations_research::sat::CpObjectiveProto >(Arena *arena)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_NOINLINE ::operations_research::sat::ConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::ConstraintProto >(Arena *arena)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void set_allocated_at_most_one(::operations_research::sat::BoolArgumentProto *at_most_one)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LinearConstraintProtoDefaultTypeInternal _LinearConstraintProto_default_instance_
Definition: cp_model.pb.cc:120
const ::operations_research::sat::InverseConstraintProto & inverse() const
static const ::operations_research::sat::LinearExpressionProto & target(const LinearArgumentProto *msg)
void set_allocated_no_overlap_2d(::operations_research::sat::NoOverlap2DConstraintProto *no_overlap_2d)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
friend void swap(NoOverlap2DConstraintProto &a, NoOverlap2DConstraintProto &b)
Definition: cp_model.pb.h:2062
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void MergeFrom(const NoOverlap2DConstraintProto &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static constexpr VariableSelectionStrategy VariableSelectionStrategy_MIN
Definition: cp_model.pb.h:5135
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static constexpr DomainReductionStrategy SELECT_MAX_VALUE
Definition: cp_model.pb.h:5160
friend void swap(LinearExpressionProto &a, LinearExpressionProto &b)
Definition: cp_model.pb.h:800
::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_once
static const ::operations_research::sat::LinearExpressionProto & end_view(const IntervalConstraintProto *msg)
const ::operations_research::sat::IntegerArgumentProto & int_div() const
Definition: cp_model.pb.h:9705
const std::vector< IntVar * > vars_
Definition: alldiff_cst.cc:44
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static const ::operations_research::sat::IntegerArgumentProto & int_div(const ConstraintProto *msg)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ConstraintProtoDefaultTypeInternal _ConstraintProto_default_instance_
Definition: cp_model.pb.cc:335
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
void set_allocated_bool_or(::operations_research::sat::BoolArgumentProto *bool_or)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
void CopyFrom(const SparsePermutationProto &from)
void MergeFrom(const CpObjectiveProto &from)
friend void swap(IntegerArgumentProto &a, IntegerArgumentProto &b)
Definition: cp_model.pb.h:636
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ListOfVariablesProtoDefaultTypeInternal _ListOfVariablesProto_default_instance_
Definition: cp_model.pb.cc:320
static constexpr DomainReductionStrategy SELECT_UPPER_HALF
Definition: cp_model.pb.h:5164
friend void swap(TableConstraintProto &a, TableConstraintProto &b)
Definition: cp_model.pb.h:3127
friend void swap(RoutesConstraintProto &a, RoutesConstraintProto &b)
Definition: cp_model.pb.h:2888
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PartialVariableAssignmentDefaultTypeInternal _PartialVariableAssignment_default_instance_
Definition: cp_model.pb.cc:401
::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_ortools_2fsat_2fcp_5fmodel_2eproto[29]
Definition: cp_model.pb.cc:505
void CopyFrom(const CumulativeConstraintProto &from)
PROTOBUF_NOINLINE ::operations_research::sat::NoOverlap2DConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlap2DConstraintProto >(Arena *arena)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
const ::operations_research::sat::NoOverlap2DConstraintProto & no_overlap_2d() const
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT AutomatonConstraintProtoDefaultTypeInternal _AutomatonConstraintProto_default_instance_
Definition: cp_model.pb.cc:307
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ReservoirConstraintProtoDefaultTypeInternal _ReservoirConstraintProto_default_instance_
Definition: cp_model.pb.cc:217
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void CopyFrom(const ListOfVariablesProto &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT IntegerVariableProtoDefaultTypeInternal _IntegerVariableProto_default_instance_
Definition: cp_model.pb.cc:34
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const ** file_level_service_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto
Definition: cp_model.pb.cc:507
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static const ::operations_research::sat::NoOverlap2DConstraintProto & no_overlap_2d(const ConstraintProto *msg)
const ::operations_research::sat::CircuitConstraintProto & circuit() const
::PROTOBUF_NAMESPACE_ID::Message const *const file_default_instances[]
Definition: cp_model.pb.cc:824
PROTOBUF_NAMESPACE_OPEN PROTOBUF_NOINLINE ::operations_research::sat::IntegerVariableProto * Arena::CreateMaybeMessage< ::operations_research::sat::IntegerVariableProto >(Arena *arena)
static const IntervalConstraintProto * internal_default_instance()
Definition: cp_model.pb.h:1681
void CopyFrom(const ReservoirConstraintProto &from)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void CopyFrom(const IntegerArgumentProto &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_NOINLINE ::operations_research::sat::LinearConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::LinearConstraintProto >(Arena *arena)
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * DecisionStrategyProto_DomainReductionStrategy_descriptor()
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void CopyFrom(const AllDifferentConstraintProto &from)
void MergeFrom(const IntegerArgumentProto &from)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LinearArgumentProtoDefaultTypeInternal _LinearArgumentProto_default_instance_
Definition: cp_model.pb.cc:90
static constexpr VariableSelectionStrategy CHOOSE_MIN_DOMAIN_SIZE
Definition: cp_model.pb.h:5128
PROTOBUF_NOINLINE ::operations_research::sat::TableConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::TableConstraintProto >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
friend void swap(ConstraintProto &a, ConstraintProto &b)
Definition: cp_model.pb.h:3941
static const ::operations_research::sat::LinearConstraintProto & linear(const ConstraintProto *msg)
static const ::operations_research::sat::RoutesConstraintProto & routes(const ConstraintProto *msg)
void MergeFrom(const SparsePermutationProto &from)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_NOINLINE ::operations_research::sat::CpSolverResponse * Arena::CreateMaybeMessage< ::operations_research::sat::CpSolverResponse >(Arena *arena)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void CopyFrom(const CircuitConstraintProto &from)
void CopyFrom(const ConstraintProto &from)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT InverseConstraintProtoDefaultTypeInternal _InverseConstraintProto_default_instance_
Definition: cp_model.pb.cc:285
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
void set_allocated_all_diff(::operations_research::sat::AllDifferentConstraintProto *all_diff)
static const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * file_level_enum_descriptors_ortools_2fsat_2fcp_5fmodel_2eproto[3]
Definition: cp_model.pb.cc:506
const ::operations_research::sat::BoolArgumentProto & bool_xor() const
Definition: cp_model.pb.h:9631
static const ::operations_research::sat::ElementConstraintProto & element(const ConstraintProto *msg)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
void set_allocated_int_prod(::operations_research::sat::IntegerArgumentProto *int_prod)
void set_allocated_table(::operations_research::sat::TableConstraintProto *table)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_NOINLINE ::operations_research::sat::DenseMatrixProto * Arena::CreateMaybeMessage< ::operations_research::sat::DenseMatrixProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::AutomatonConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::AutomatonConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::ListOfVariablesProto * Arena::CreateMaybeMessage< ::operations_research::sat::ListOfVariablesProto >(Arena *arena)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT NoOverlapConstraintProtoDefaultTypeInternal _NoOverlapConstraintProto_default_instance_
Definition: cp_model.pb.cc:165
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
Collection of objects used to extend the Constraint Solver library.
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
static const ::operations_research::sat::LinearArgumentProto & lin_max(const ConstraintProto *msg)
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT BoolArgumentProtoDefaultTypeInternal _BoolArgumentProto_default_instance_
Definition: cp_model.pb.cc:47
void CopyFrom(const TableConstraintProto &from)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
const int64_t offset_
Definition: interval.cc:2108
const ::operations_research::sat::IntervalConstraintProto & interval() const
PROTOBUF_NOINLINE ::operations_research::sat::SparsePermutationProto * Arena::CreateMaybeMessage< ::operations_research::sat::SparsePermutationProto >(Arena *arena)
void CopyFrom(const LinearConstraintProto &from)
static constexpr int VariableSelectionStrategy_ARRAYSIZE
Definition: cp_model.pb.h:5139
static const ::operations_research::sat::ListOfVariablesProto & dummy_constraint(const ConstraintProto *msg)
void set_allocated_element(::operations_research::sat::ElementConstraintProto *element)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_ATTRIBUTE_WEAKconst ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable * descriptor_table_ortools_2fsat_2fcp_5fmodel_2eproto_getter()
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ElementConstraintProtoDefaultTypeInternal _ElementConstraintProto_default_instance_
Definition: cp_model.pb.cc:135
const ::operations_research::sat::IntegerArgumentProto & int_mod() const
Definition: cp_model.pb.h:9779
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void MergeFrom(const ReservoirConstraintProto &from)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const ::PROTOBUF_NAMESPACE_ID::EnumDescriptor * CpSolverStatus_descriptor()
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
void set_allocated_int_max(::operations_research::sat::IntegerArgumentProto *int_max)
static const ::operations_research::sat::AllDifferentConstraintProto & all_diff(const ConstraintProto *msg)
void set_allocated_inverse(::operations_research::sat::InverseConstraintProto *inverse)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
void set_allocated_interval(::operations_research::sat::IntervalConstraintProto *interval)
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
PROTOBUF_NOINLINE ::operations_research::sat::LinearArgumentProto * Arena::CreateMaybeMessage< ::operations_research::sat::LinearArgumentProto >(Arena *arena)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
void CopyFrom(const RoutesConstraintProto &from)
static constexpr DomainReductionStrategy SELECT_LOWER_HALF
Definition: cp_model.pb.h:5162
const ::operations_research::sat::ListOfVariablesProto & dummy_constraint() const
static const ::operations_research::sat::IntegerArgumentProto & int_mod(const ConstraintProto *msg)
static const ::operations_research::sat::LinearArgumentProto & lin_min(const ConstraintProto *msg)
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpModelProtoDefaultTypeInternal _CpModelProto_default_instance_
Definition: cp_model.pb.cc:464
void MergeFrom(const ListOfVariablesProto &from)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
PROTOBUF_ATTRIBUTE_REINITIALIZES void Clear() final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
static constexpr ::PROTOBUF_NAMESPACE_ID::internal::MigrationSchema * schemas
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
void CopyFrom(const CpObjectiveProto &from)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static const ::operations_research::sat::IntegerArgumentProto & int_max(const ConstraintProto *msg)
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
bool CpSolverStatus_IsValid(int value)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT CpSolverResponseDefaultTypeInternal _CpSolverResponse_default_instance_
Definition: cp_model.pb.cc:502
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SparsePermutationProtoDefaultTypeInternal _SparsePermutationProto_default_instance_
Definition: cp_model.pb.cc:416
const ::operations_research::sat::AutomatonConstraintProto & automaton() const
int64_t value
::PROTOBUF_NAMESPACE_ID::uint8 * _InternalSerialize(::PROTOBUF_NAMESPACE_ID::uint8 *target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream *stream) const final
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
static const ::PROTOBUF_NAMESPACE_ID::uint32 offsets[]
Definition: cp_model.pb.h:54
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
static const ::operations_research::sat::BoolArgumentProto & bool_and(const ConstraintProto *msg)
::PROTOBUF_NAMESPACE_ID::Metadata GetMetadata() const final
const char * _InternalParse(const char *ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext *ctx) final
const ::operations_research::sat::IntegerArgumentProto & int_max() const
Definition: cp_model.pb.h:9853
void MergeFrom(const ElementConstraintProto &from)
static const ::operations_research::sat::InverseConstraintProto & inverse(const ConstraintProto *msg)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
static const ::operations_research::sat::BoolArgumentProto & at_most_one(const ConstraintProto *msg)
::PROTOBUF_NAMESPACE_ID::int32 target() const
Definition: cp_model.pb.h:7412
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT LinearExpressionProtoDefaultTypeInternal _LinearExpressionProto_default_instance_
Definition: cp_model.pb.cc:77
void set_allocated_routes(::operations_research::sat::RoutesConstraintProto *routes)
void set_allocated_bool_xor(::operations_research::sat::BoolArgumentProto *bool_xor)
PROTOBUF_NOINLINE ::operations_research::sat::DecisionStrategyProto * Arena::CreateMaybeMessage< ::operations_research::sat::DecisionStrategyProto >(Arena *arena)
void set_allocated_linear(::operations_research::sat::LinearConstraintProto *linear)
void set_allocated_cumulative(::operations_research::sat::CumulativeConstraintProto *cumulative)
void set_allocated_exactly_one(::operations_research::sat::BoolArgumentProto *exactly_one)
PROTOBUF_NOINLINE ::operations_research::sat::IntegerArgumentProto * Arena::CreateMaybeMessage< ::operations_research::sat::IntegerArgumentProto >(Arena *arena)
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData * GetClassData() const final
PROTOBUF_NOINLINE ::operations_research::sat::NoOverlapConstraintProto * Arena::CreateMaybeMessage< ::operations_research::sat::NoOverlapConstraintProto >(Arena *arena)
PROTOBUF_NOINLINE ::operations_research::sat::PartialVariableAssignment * Arena::CreateMaybeMessage< ::operations_research::sat::PartialVariableAssignment >(Arena *arena)