Kurs Egitmenleri

Egitmenler Uzmanlık Alanları
Ibrahim Halil Tanboga Biyoistatistik, DL
Faysal Saylık Biyoistatistik, DL
Selim Topcu Biyoistatistik, Genel kardiyoloji ve AI
Taylan Akgün Elektrofizyoloji ve AI
Murat Çap Girişimsel Kardiyoloji, Görüntüleme ve AI
Süleyman Çagan Efe Girişimsel Kardiyoloji, Kalp yetersizligi ve AI
Aslan Erdogan Girişimsel Kardiyoloji, Yapısal ve AI

Giriş

Bu kurs, Derin Ögrenme (Deep Learning - DL) ve Büyük Dil Modelleri (Large Language Models - LLM) konularında kapsamlı bir anlayış geliştirmeyi amaçlamaktadır. Teorik temeller, modern uygulamalar ve pratik projelerle desteklenen bu program, katılımcılara güncel yapay zeka teknolojilerinde uzmanlık kazandırmayı hedeflemektedir.

Ögrenim Hedefleri

  • Derin ögrenme ve büyük dil modellerinin temel kavramlarını anlamak
  • Modern sinir agı mimarilerini ve optimizasyon tekniklerini kullanarak modeller geliştirmek
  • Uygulamalı projelerle teorik bilgileri pratige dökmek
  • Yapay zeka teknolojilerinde güncel trendleri takip edebilmek

1. Nöral Aglara Giriş

1.1. Derin öğrenmeye giriş

Egitmenler: Ibrahim Halil Tanboga, Selim Topcu

1.2. Temel Kavramlar

Egitmenler: Ibrahim Halil Tanboga, Selim Topcu

  • Nöral network anatomisi: Katmanlar ve ag mimarisi
  • Backpropagation ve gradient descent
  • Aktivasyon Fonksiyonları
  • Multiple input ve output, Softmax ve Argmax

1.3. Aktivasyon Fonksiyonları

Egitmenler: Ibrahim Halil Tanboga, Selim Topcu

  • Aktivasyon fonskiyonları: nedir? ne işe yarar
  • Dogru aktivasyon fonksiyon seçimi
  • Aktivasyon fonksiyonu: linear ve nonlinear familyaları (Tanh, ReLU, vs)

1.4. Kayıp (loss) Fonksiyonları

Egitmenler: Ibrahim Halil Tanboga, Selim Topcu

  • Loss function nedir? neden önemlidir?
  • Regression loss function (MSE, MAE, Huber loss vs)
  • Classification loss function (log loss, cross entropy loss, hinge loss vs)
  • Dogru loss function seçimi

1.5. Optimizasyon Algoritmaları

Egitmenler: Ibrahim Halil Tanboga, Selim Topcu

  • Optimizasyon nedir? ne işe yarar?
  • Optimizasyon algoritmaları nelerdir? (GD, SGD, momentum, Nesterov, RMSProp, Adam, ve AdaGrad)
  • Optimizasyon algoritmalarının seçimi

1.6. Regularizasyon Teknikleri

Egitmenler: Ibrahim Halil Tanboga, Selim Topcu

  • Nöral networklerde regülarizasyon neden yapılır?
  • L1 ve L2 Regularizasyonu
  • Data augmentation
  • Dropout
  • Batch Normalization
  • Layer Normalization
  • Early Stopping ve Model Checkpointing
  • Stochastic Depth

2. Konvolüsyonel Sinir Agları (CNN)

2.1. CNN temelleri ve Mimarisi

Egitmenler: Faysal Saylık, Murat Cap

  • İnsan Görme Sistemi ve CNN Analojisi
  • Geleneksel Görüntü İşleme vs. CNN
  • Giriş Katmanı ve Veri Hazırlama
  • Konvolüsyon Katmanları
  • Aktivasyon Katmanları
  • Pooling Katmanları
  • Tam Baglantılı Katmanlar
  • Skip Connections ve Residual Ögrenme

2.2. Konvolüsyon Katmanları

Egitmenler: Faysal Saylık, Murat Cap

  • Filtreler ve Çekirdekler
  • Stride ve Padding Stratejileri
  • Feature Map Oluşturma
  • Derinlik (Depth), Grup (Group) ve Nokta (Pointwise) Konvolüsyonları
  • Dilated/Atrous Konvolüsyonlar
  • Transposed Konvolüsyonlar

2.3. Pooling Katmanları

Egitmenler: Faysal Saylık, Murat Cap

  • Pooling (Max Pooling, Average Pooling, Global Pooling, Adaptive Pooling, Learnable Pooling)
  • Batch Normalization
  • Layer Normalization
  • Instance Normalization

2.4. Modern CNN Mimarileri

Egitmenler: Faysal Saylık, Murat Cap

  • Klasik Mimariler (AlexNet, VGG)
  • ResNet Ailesi (ResNet, ResNeXt)
  • Efficient mimariler (MobileNet, EfficientNet, RegNet)
  • Modern Yaklaşımlar (DenseNet, ConvNeXt, Vision Transformers, CNN-Transformer Hibritleri)

2.5. CNN Optimizasyonu ve Egitimi

Egitmenler: Faysal Saylık, Murat Cap

  • Kayıp Fonksiyonları
  • Optimizasyon Algoritmaları
  • Düzenlileştirme (Regularization) Teknikleri
  • Veri Artırma (Data Augmentation)
  • Transfer Ögrenme
  • Model Sıkıştırma ve Kantizsyon

2.6. CNN Uygulamaları ve İleri Konular

Egitmenler: Faysal Saylık, Murat Cap

  • Temel Uygulamalar: Görüntü Sınıflandırma, Nesne Tespiti (YOLO, RetinaNet), Görüntü Segmentasyonu (U-Net, Mask R-CNN)
  • İleri Uygulamalar: Style Transfer, Super Resolution, Anomali Tespiti, Few-Shot Learning
  • Yorumlanabilirlik ve Görselleştirme: Feature Visualization, Attribution Methods, Class Activation Mapping (CAM)

3. Tekrarlayan Sinir Agları (RNN)

3.1. RNN Temelleri

Egitmenler: Ibrahim Halil Tanboga, Aslan Erdogan

  • RNN Mimarisi ve Çalışma Prensibi
  • Hafıza Mekanizması ve İç Durum
  • Zaman Serisi ve Sekans Verisi
  • Backpropagation Through Time (BPTT)
  • Sequence-to-Sequence Modelleme
  • Encoder-Decoder Mimarisi

3.2. Gradyan Problemleri

Egitmenler: Ibrahim Halil Tanboga, Aslan Erdogan

  • Vanishing ve Exploding Gradients
  • Gradient Clipping Teknikleri
  • Layer Normalization
  • Skip Connections
  • Truncated BPTT
  • Residual Connections

3.3. Modern RNN Türleri

Egitmenler: Ibrahim Halil Tanboga, Aslan Erdogan

  • LSTM (forget gate, input gate, output gate, cell gate) ve extended LSTM
  • GRU ve Optimizasyonları
  • Bidirectional RNN ve DeepRNN
  • Attention-augmented RNNs (Self-Attention, Multi-Head Attention, Scaled Dot-Product Attention)

3.4. RNN optimizasyonu

Egitmenler: Ibrahim Halil Tanboga, Aslan Erdogan

  • Kayıp Fonksiyonları
  • Optimizasyon Algoritmaları
  • Regularizasyon Teknikleri
  • Dropout Stratejileri
  • Teacher Forcing
  • Curriculum Learning

3.5. RNN Uygulamaları

Egitmenler: Ibrahim Halil Tanboga, Aslan Erdogan

  • Dogal Dil İşleme: Metin Sınıflandırma, Duygu Analizi, Makine Çevirisi, Metin Özetleme
  • Zaman Serisi: Tahmin ve Öngörü, Anomali Tespiti, Finansal Tahminler
  • Ses ve Müzik: Konuşma Tanıma, Müzik Üretimi, Ses Sentezi

4. Attention ve Transformer Mimarisi

4.1. Attention Mekanizması

Egitmenler: Faysal Saylık, Süleyman Çagan Efe

  • Self-Attention
  • Multi-Head Attention
  • Cross-Attention
  • Relative Position Encoding
  • Sparse Attention
  • Linear Attention
  • Local Attention

4.2. Transformer Mimarisi

Egitmenler: Faysal Saylık, Süleyman Çagan Efe

  • Encoder-Decoder Yapısı
  • Positional Encoding
  • Layer Normalization
  • Feed-Forward Networks
  • Residual Connections
  • Maskeleme Stratejileri
  • Decoder-Only vs Encoder-Only

4.3. Transformer Optimizasyonları

Egitmenler: Faysal Saylık, Süleyman Çagan Efe

  • Gradient Checkpointing
  • Memory Efficient Training
  • Mixed Precision Training
  • Data Parallelism
  • Model Parallelism
  • Pipeline Parallelism
  • Flash Attention
  • Rotary Embeddings

4.4. Modern Transformer Varyantları

Egitmenler: Faysal Saylık, Süleyman Çagan Efe

  • Performer
  • Reformer
  • Linformer
  • Longformer
  • BigBird
  • TransformerXL
  • Switch Transformer
  • Universal Transformer

5. Büyük Dil Modelleri (LLM)

5.1. LLM Foundations ve Gelişim

Egitmenler: Ibrahim Halil Tanboga, Taylan Akgün

  • Model Ölçekleme: Parametre Boyutları, Compute Requirements, Training Infrastructure
  • Tarihsel Gelişim: GPT Ailesi, PaLM, BLOOM, LLaMA, Claude, Gemini
  • Açık Kaynak Modeller: LLaMA, BLOOM, Falcon, Mistral, Phi-2
  • Model Boyutları: 7B, 13B, 34B, 70B Comparison
  • Context Length: Flash Attention, RoPE, ALiBi, Improvements
  • Tokenizasyon: Context Window, Token Ekonomisi, Positional Encoding

5.2. LLM Training Pipeline

Egitmenler: Ibrahim Halil Tanboga, Taylan Akgün

  • Pre-training
  • Veri Hazırlama: Filtreleme, Deduplikasyon, Temizleme
  • Training Stratejileri: Masked LM, Causal LM
  • Loss Functions: Cross Entropy, Contrastive Loss
  • Compute Efficient Training: ZeRO, DeepSpeed, Megatron
  • Fine-tuning
  • Instruction Tuning: Natural Instructions, Task Templates
  • RLHF Pipeline: Reward Modeling, PPO Training
  • DPO (Direct Preference Optimization)
  • Constitutional AI: Rule-based Alignment, Value Learning
  • Knowledge Distillation: Teacher-Student Training

5.3. Prompt Engineering ve Optimizasyon

Egitmenler: Ibrahim Halil Tanboga, Taylan Akgün

  • Prompt Patterns
  • Zero-shot ve Few-shot Learning
  • Chain-of-Thought (CoT)
  • Tree of Thoughts
  • ReAct Framework
  • Advanced Techniques
  • System Prompting
  • Meta-prompting
  • Prompt Chaining
  • Temperature Tuning
  • Prompt Templates
  • Task-specific Templates
  • Role-based Prompting
  • Consistency Techniques

5.4. Retrieval Augmented Generation (RAG)

Egitmenler: Ibrahim Halil Tanboga, Taylan Akgün

  • Temel Bileşenler
  • Vector Databases
  • Embedding Models
  • Chunking Strategies
  • Retrieval Methods
  • Gelişmiş RAG
  • Hybrid Search
  • Re-ranking
  • Multi-step RAG
  • Recursive Retrieval
  • RAG Optimizasyonu
  • Context Window Management
  • Query Formulation
  • Response Synthesis

5.5. LLM Degerlendirme

Egitmenler: Ibrahim Halil Tanboga, Taylan Akgün

  • MMLU Benchmark
  • BBH (Big Bench Hard)
  • TruthfulQA
  • Perplexity ve BLEU
  • BERTScore
  • Task-Specific Metrics
  • Human Evaluation

5.6. LLM Uygulamaları

Egitmenler: Ibrahim Halil Tanboga, Taylan Akgün

  • Chatbot Development
  • Text Generation
  • Code Generation
  • Document Q&A
  • Text Summarization
  • Domain Adaptation
  • Tool Usage
  • Multi-Modal Integration

5.7. LLM Agent’lar

Egitmenler: Ibrahim Halil Tanboga, Taylan Akgün

  • Agent Mimarisi: ReAct Framework, Plan-and-Execute, Chain of Thought, Tree of Thoughts
  • Tool Kullanımı: Function Calling, Tool Learning, API Integration,
  • Hafıza ve Planlama: Episodic Memory, Working Memory, Task Planning
  • Multi-Agent Sistemler: Agent Communication, Role-based Agents, Collaborative Problem Solving
  • Agent Güvenligi: Sandbox Environments, Action Validation, Resource Limits, Safety Protocols
  • Özel Agent Türleri: Task-Specific Agents, Autonomous Agents, Embodied Agents, Assistant Agents

5.8. LLM Agent Frameworks

Egitmenler: Ibrahim Halil Tanboga, Taylan Akgün

  • LangChain
  • AutoGPT
  • BabyAGI
  • CrewAI
  • Microsoft Semantic Kernel
  • Agent Frameworks Extensions

5.9. Model Performance ve Metrikler

Egitmenler: Ibrahim Halil Tanboga, Taylan Akgün

  • Language Understanding
  • MMLU, BBH, GSM8K, HumanEval
  • TruthfulQA, Bias Evaluation
  • Toxicity Testing
  • System Performance
  • Latency, Throughput
  • Memory Usage
  • Cost per Token
  • Specialized Metrics
  • Code Generation: Pass@k
  • Math: Solution Accuracy
  • Reasoning: CoT Success Rate

5.10. Deployment ve Production

Egitmenler: Ibrahim Halil Tanboga, Taylan Akgün

  • Infrastructure
  • Serving Architectures
  • Load Balancing
  • Caching Strategies
  • Monitoring
  • Token Usage
  • Response Quality
  • Error Rates
  • Security
  • Prompt Injection Prevention
  • Rate Limiting
  • Content Filtering

6. Vision-Language Modeller (VLM)

6.1. Multimodal Learning

Egitmenler: Faysal Saylık, Selim Topcu

  • Temeller: Cross-modal Representations, Joint Embeddings, Attention Mekanizmaları
  • Fusion Stratejileri: Early Fusion, Late Fusion, Hybrid Fusion
  • Egitim Teknikleri: Contrastive Learning, Knowledge Distillation, Curriculum Learning

6.2. Modern VLM Mimarileri

Egitmenler: Faysal Saylık, Selim Topcu

  • CLIP Ailesi: CLIP/OpenCLIP, Florence, DeCLIP
  • Gelişmiş Modeller: Flamingo, PaLM-E, GPT-4V, Claude Vision, CoCa, BLIP/BLIP-2
  • Mimari Bileşenler: Vision Encoder, Text Encoder, Cross-Attention, Fusion Layers

6.3. VLM Uygulamaları

Egitmenler: Faysal Saylık, Selim Topcu

  • Temel Görevler: Image-Text Retrieval, Visual Question Answering, Image Captioning
  • İleri Uygulamalar: Visual Reasoning, Scene Understanding, Visual Grounding, Zero-shot Tanıma, Few-shot Ögrenme

6.4. Multimodal Chain-of-Thought

Egitmenler: Faysal Saylık, Selim Topcu

  • Visual Reasoning: Step-by-step Analysis, Visual Problem Solving, Inference Chain Building
  • Reasoning Türleri: Spatial Reasoning, Temporal Reasoning, Causal Reasoning
  • Multimodal CoT Stratejileri: Visual Prompting, Cross-modal Verification, Error Analysis

6.5. VLM Optimizasyon ve Degerlendirme

Egitmenler: Faysal Saylık, Selim Topcu

  • Model Optimizasyonu: Memory Efficiency, Inference Speed, Model Compression
  • Degerlendirme Metrikleri: BLEU/ROUGE, METEOR, CIDEr, SPICE
  • Benchmark Datasetleri: COCO, Flickr30k, Visual Genome, VQAv2

7. Generative Modeller

7.1. Variational Autoencoders (VAE)

Egitmenler: Ibrahim Halil Tanboga, Murat Cap

  • VAE Mimarisi: Encoder-Decoder Yapısı, Latent Space, Reparametrization Trick, KL Divergence
  • VAE Türleri: Beta-VAE, Conditional VAE, Hierarchical VAE
  • VQ-VAE: Vector Quantization, Codebook Learning, VQ-VAE-2
  • NVAE: Hierarchical Structure, Deep Normalization

7.2. GAN (Generative Adversarial Networks)

Egitmenler: Ibrahim Halil Tanboga, Murat Cap

  • GAN Temelleri: Generator, Discriminator, Training Dynamics, Mode Collapse
  • Modern GAN’lar: StyleGAN3, BigGAN, Progressive GAN, Self-Attention GAN
  • Conditional GANs: Pix2Pix, CycleGAN, SPADE, StarGAN
  • Training ve Stabilite: Gradient Penalties, R1 Regularization, Path Length Regularization

7.3. Diffusion Modeller

Egitmenler: Ibrahim Halil Tanboga, Murat Cap

  • Temel Diffusion: DDPM, DDIM, Score-based Models, Noise Scheduling
  • Modern Diffusion: Stable Diffusion, DALL-E 3, Imagen, Midjourney
  • Uygulamalar: Text-to-Image, Image-to-Image, Inpainting/Outpainting
  • Optimizasyon: Sampling Strategies, CFG, Guidance Scale

7.4. Flow-based Modeller

Egitmenler: Ibrahim Halil Tanboga, Murat Cap

  • Temel Kavramlar: Invertible Functions, Change of Variables, Maximum Likelihood
  • Mimari Türleri: Normalizing Flows, Real NVP, Glow, Flow++
  • Uygulamalar: Density Estimation, Image Generation, Voice Synthesis
  • Training: Coupling Layers, Affine Transformations, Flow Composition

7.5. Autoregressive Modeller

Egitmenler: Ibrahim Halil Tanboga, Murat Cap

  • Görüntü Modelleri: PixelCNN++, Image GPT, Taming Transformers
  • Ses Modelleri: WaveNet, SampleRNN, WaveRNN
  • Hybrid Yaklaşımlar: VQ-VAE + Transformer, DALL-E, Parti
  • Optimizasyon: Context Stacks, Skip Connections, Attention Mechanisms

7.6. Text-to-Image Modeller

Egitmenler: Ibrahim Halil Tanboga, Murat Cap

  • Model Mimarileri: DALL-E 3, Stable Diffusion, Imagen, Midjourney
  • Kontrol Mekanizmaları: ControlNet, T2I-Adapter, IP-Adapter
  • Fine-tuning: Textual Inversion, DreamBooth, LoRA, Hypernetworks
  • Prompt Engineering: Negative Prompts, Weight Tuning, Style Control

8. Model Optimizasyonu ve Deployment

8.1. Model Compression

Egitmenler: Faysal Saylık, Aslan Erdogan

  • Quantization (INT8, INT4)
  • Pruning Strategies
  • Knowledge Distillation
  • Model Architecture Search
  • Hardware-aware Optimization

8.2. Distributed Training

Egitmenler: Faysal Saylık, Aslan Erdogan

  • Data Parallelism
  • Model Parallelism
  • Pipeline Parallelism
  • ZeRO Optimization
  • Communication Strategies

8.3. Production Deployment

Egitmenler: Faysal Saylık, Aslan Erdogan

  • Model Serving (TorchServe, TensorRT)
  • API Development
  • Containerization
  • Load Balancing
  • Monitoring ve Logging

8.4. MLOps

Egitmenler: Faysal Saylık, Aslan Erdogan

  • CI/CD for ML
  • Experiment Tracking
  • Model Versioning
  • Feature Stores
  • A/B Testing

9. Responsible AI, Augmented intelligence ve Causal AI

9.1. Responsible AI

Egitmenler: Taylan Akgün

Responsible AI sistemleri, etik prensipler ve güvenlik önlemleri çerçevesinde geliştirilir, şeffaflık ve hesap verebilirlik temel alınarak toplumsal etkiler gözetilir. Veri mahremiyeti, bias yönetimi ve model güvenligi gibi konular sürekli izlenerek, sürdürülebilir ve adil AI sistemleri oluşturulması hedeflenir.

9.2. Augmented intelligence

Egitmenler: Süleyman Çagan Efe

Augmented Intelligence, insan yeteneklerini AI sistemleriyle güçlendirmeyi amaçlar. İnsan-AI işbirligi modellerinde, bilgi entegrasyonu ve karar destek sistemleri kullanılarak iş süreçleri optimize edilir. Kullanıcı deneyimi ve erişilebilirlik ön planda tutularak, sektörel ihtiyaçlara özel çözümler geliştirilir.

9.3. Causal ML/AI

Egitmenler: Ibrahim Halil Tanboga

Causal ML/AI, korelasyon yerine nedensellik iliSkilerini anlamaya odaklanır. Pearl’ün do-calculus ve yapısal nedensel modeller gibi teorik temeller üzerine kurulu olan bu alan, treatment effect estimation, counterfactual analysis ve causal discovery gibi tekniklerle gerçek dünya problemlerine çözümler sunar. Özellikle healthcare, business ve policy alanlarında etkili uygulamalar saglar.

10. Vision Transformers (ViT)

10.1. Vision Transformer Temelleri

Egitmenler: Ibrahim Halil Tanboga, Süleyman Çagan Efe

  • Temel Mimari: Patch Embedding, Self-Attention, MLP Head, Classification Token
  • Input Processing: Image Patching, Linear Projection, Position Embedding
  • Attention Mekanizması: Multi-Head Self-Attention, Layer Normalization, Skip Connections
  • Training Stratejileri: Pretraining Datasets, Data Augmentation, Transfer Learning

10.2. Modern ViT Mimarileri

Egitmenler: Ibrahim Halil Tanboga, Süleyman Çagan Efe

  • Efficient ViT: DeiT, Mobile-ViT, Compact Transformers
  • Hierarchical ViT: Swin Transformer, PVT, Twins
  • Hybrid Modeller: ConvNeXt, CoAtNet, CrossViT
  • Performance Improvements: XCiT, CaiT, LeViT

10.3. ViT Optimizasyonları

Egitmenler: Ibrahim Halil Tanboga, Süleyman Çagan Efe

  • Training: Knowledge Distillation, Progressive Learning, Token Merging
  • Memory Efficiency: Attention Approximations, Linear Complexity Methods
  • Inference: Model Pruning, Quantization, Hardware Acceleration
  • Data Pipeline: Efficient Patch Extraction, Memory Management

10.4. ViT Uygulamaları

Egitmenler: Ibrahim Halil Tanboga, Süleyman Çagan Efe

  • Görüntü Sınıflandırma: ImageNet, Fine-grained Recognition, Multi-label Classification
  • Nesne Tespiti: DETR, Deformable DETR, ViT-FRCNN
  • Segmentasyon: SegFormer, SETR, Dense Prediction
  • Özel Görevler: Depth Estimation, Pose Estimation, 3D Vision

11. Explainable AI (XAI)

11.1. XAI Temelleri

Egitmenler: Faysal Saylık, Taylan Akgün

  • Temel Kavramlar: Şeffaflık, Yorumlanabilirlik, Açıklanabilirlik, Güvenilirlik
  • Model Analiz Tipleri: Global Interpretability, Local Interpretability, Post-hoc Analysis
  • XAI Metrikleri: Fidelity, Comprehensibility, Completeness, Consistency

11.2. Global Interpretability Yöntemleri

Egitmenler: Faysal Saylık, Taylan Akgün

  • Feature Importance: Permutation Importance, SHAP Values, Feature Ablation
  • Model Distillation: Rule Extraction, Decision Trees, Linear Approximations
  • Model Agnostic: Partial Dependence Plots, Accumulated Local Effects

11.3. Local Interpretability Yöntemleri

Egitmenler: Faysal Saylık, Taylan Akgün

  • LIME: Local Interpretable Model-agnostic Explanations, SuperPixels
  • SHAP: SHapley Additive exPlanations, KernelSHAP, DeepSHAP
  • Counterfactuals: DiCE, Counterfactual Explanations, What-If Analysis

11.4. Deep Learning Spesifik XAI

Egitmenler: Faysal Saylık, Taylan Akgün

  • Görüntü Modelleri: Grad-CAM, Integrated Gradients, Occlusion Sensitivity
  • NLP Modelleri: Attention Visualization, Token Attribution, Input Saliency
  • Multimodal: Cross-Modal Attribution, Vision-Language Explanations

11.5. XAI Uygulamaları

Egitmenler: Faysal Saylık, Taylan Akgün

  • Sektör Uygulamaları: Healthcare, Finance, Autonomous Systems
  • Regülasyon Uyumlulugu: GDPR, AI Act, Model Documentation
  • Bias ve Fairness: Bias Detection, Model Debugging, Fairness Metrics

12. Multimodal Learning

12.1. Multimodal Foundations

Egitmenler: Ibrahim Halil Tanboga, Selim Topcu

  • Representations: Cross-modal Learning, Joint Embeddings, Modal Alignment
  • Fusion Strategies: Early Fusion, Late Fusion, Hybrid Fusion, Adaptive Fusion
  • Learning Techniques: Contrastive Learning, Knowledge Distillation, Cross-modal Pretraining
  • Architectural Components: Modal Encoders, Fusion Modules, Cross-attention

12.2. Cross-modal Understanding

Egitmenler: Ibrahim Halil Tanboga, Selim Topcu

  • Text-Vision Integration: CLIP, ALIGN, Florence
  • Audio-Visual Learning: AV-HuBERT, AudioCLIP
  • Text-Audio Systems: Whisper, Wav2Vec
  • Multi-sensor Fusion: Point Clouds, Depth, Thermal

12.3. Multimodal Applications

Egitmenler: Ibrahim Halil Tanboga, Selim Topcu

  • Chatbots: GPT-4V, Claude Vision, LLaVA
  • Question Answering: Visual QA, Audio QA, Multi-hop QA
  • Content Generation: Text-to-Image, Text-to-Video, Text-to-Audio
  • Reasoning: Visual Reasoning, Scene Understanding, Cross-modal Inference

12.4. Advanced Topics

Egitmenler: Ibrahim Halil Tanboga, Selim Topcu

  • Few-shot Learning: Cross-modal Adaptation, Modal Transfer
  • Zero-shot Learning: Cross-modal Generalization
  • Continual Learning: Modal Incremental Learning
  • Robustness: Modal Missing, Noise Handling

12.5. Evaluation & Metrics

Egitmenler: Ibrahim Halil Tanboga, Selim Topcu

  • Task-Specific Metrics: VQA Score, ROUGE, BLEU, CIDEr
  • Cross-modal Metrics: Retrieval Metrics, Alignment Scores
  • Human Evaluation: User Studies, A/B Testing
  • Diagnostic Tools: Attribution Analysis, Error Analysis

13. Tabular Veri ile Derin Ögrenme

13.1. Tabular DL Temelleri

Egitmenler: Faysal Saylık, Murat Cap

  • Veri İşleme: Preprocessing, Feature Engineering, Encoding, Normalization
  • Neural Network Yapıları: MLP, Embedding Layers, Categorical Handling
  • Preprocessing: Missing Values, Outliers, Feature Scaling, Encoding
  • Architecture Design: Layer Size, Activation Functions, Regularization

13.2. Modern Tabular Modeller

Egitmenler: Faysal Saylık, Murat Cap

  • TabNet: Feature Selection, Sequential Processing, Instance-wise Feature Selection
  • Transformer-based: TabTransformer, FT-Transformer, SAINT
  • Hybrid Modeller: NODE, AdapterBoost, AutoGluon
  • Entity Embeddings: Categorical Encoding, Feature Interactions

13.3. Advanced Techniques

Egitmenler: Faysal Saylık, Murat Cap

  • Feature Interactions: AutoInt, DCN, CrossNet
  • Attention Mechanisms: Self-Attention, Cross-Feature Attention
  • Regularization: Dropout, L1/L2, Feature Dropout
  • Ensemble Methods: Stacking, Bagging, Model Fusion

13.4. Model Optimization

Egitmenler: Faysal Saylık, Murat Cap

  • Hyperparameter Tuning: Grid Search, Bayesian Optimization
  • Learning Rate Scheduling: Warm-up, Cyclic LR, One-Cycle
  • Model Compression: Pruning, Quantization, Knowledge Distillation
  • Performance Metrics: RMSE, MAE, ROC-AUC, PR-AUC

13.5. Interpretability & Deployment

Egitmenler: Faysal Saylık, Murat Cap

  • Model Interpretation: SHAP, LIME, Feature Importance
  • Calibration: Platt Scaling, Isotonic Regression
  • Deployment: Model Serving, Online Learning
  • Monitoring: Drift Detection, Performance Tracking

14. Deep Learning donanım gereksinimleri

14.1. GPU Mimarisi ve Seçimi

Egitmenler: Faysal Saylık, Aslan Erdogan

  • GPU Bileşenleri: CUDA Cores, Tensor Cores, Memory Bandwidth
  • GPU Seçim Kriterleri: VRAM, Compute Capability, Power Efficiency
  • Multi-GPU Sistemler: NVLink, Multi-GPU Training
  • GPU Alternatifleri: TPU, FPGA, Neural Processors

14.2. Hardware Optimizasyonu

Egitmenler: Faysal Saylık, Aslan Erdogan

  • Memory Management: Gradient Checkpointing, Mixed Precision Training
  • Parallelization: Data Parallel, Model Parallel, Pipeline Parallel
  • Distributed Training: Parameter Server, Ring AllReduce
  • Resource Monitoring: GPU Utilization, Memory Usage, Power Consumption

14.3. Cloud Infrastructure

Egitmenler: Faysal Saylık, Aslan Erdogan

  • Cloud Providers: AWS, GCP, Azure ML
  • Instance Types: GPU Instances, High Memory, Spot Instances
  • Orchestration: Kubernetes, Docker, Cloud Management
  • Cost Optimization: Instance Selection, Spot Strategies

14.4. Deployment Hardware

Egitmenler: Faysal Saylık, Aslan Erdogan

  • Edge Devices: Mobile, IoT, Embedded Systems
  • Model Optimization: Quantization, Pruning, Distillation
  • Inference Acceleration: TensorRT, ONNX Runtime
  • Deployment Strategies: CPU vs GPU vs Edge TPU

15. Computer Vision

15.1. Temel Görüntü İşleme

Egitmenler: Faysal Saylık, Süleyman Çagan Efe

Görüntü Ön İşleme: Filtreleme, Normalizasyon, Augmentation Feature Extraction: SIFT, SURF, ORB, HOG Segmentation: Threshold, Edge Detection, Watershed Morphological Operations: Erosion, Dilation, Opening, Closing

15.2. Derin Ögrenme Mimarileri

Egitmenler: Faysal Saylık, Süleyman Çagan Efe

CNN Mimarileri: ResNet, EfficientNet, Vision Transformer Object Detection: YOLO, Faster R-CNN, DETR Segmentation Networks: U-Net, Mask R-CNN, DeepLab Multi-task Learning: MTL Architectures, Feature Sharing

15.3. 3D Vision

Egitmenler: Faysal Saylık, Süleyman Çagan Efe

3D Reconstruction: SfM, SLAM, NeRF Point Cloud Processing: PointNet++, DGCNN Depth Estimation: Monocular, Stereo Vision 3D Object Detection: VoxelNet, PointPillars

15.4. Video Understanding

Egitmenler: Faysal Saylık, Süleyman Çagan Efe

Action Recognition: I3D, SlowFast Networks Tracking: SORT, DeepSORT, ByteTrack Temporal Modeling: LSTM, 3D CNN, Transformer Video Generation: Video Diffusion, Motion Transfer

15.5. Advanced Topics

Egitmenler: Faysal Saylık, Süleyman Çagan Efe

Few-shot Learning: Prototypical Networks, MAML Self-supervised Learning: MoCo, DINO, MAE Multi-modal Learning: CLIP, Florence, CoCa Neural Rendering: NeRF, GauGAN, StyleGAN3

15.6. Uygulamalar ve Deployment

Egitmenler: Faysal Saylık, Süleyman Çagan Efe

Model Optimization: Pruning, Quantization, KD Edge Deployment: TensorRT, CoreML, TFLite Pipeline Design: Data Flow, Caching, Batching Monitoring: Performance Metrics, Failure Cases

LS0tCnRpdGxlOiAiRGVyaW4gw5ZncmVubWUgdmUgQsO8ecO8ayBEaWwgTW9kZWxsZXJpIEt1cnN1IgphdXRob3I6ICJEaWppdGFsIEthcmRpeW9sb2ppIERlcm5lZ2kiCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCIKb3V0cHV0OiAKICBodG1sX25vdGVib29rOgogICAgdG9jOiB0cnVlCiAgICB0b2NfZGVwdGg6IDQKICAgIHRvY19mbG9hdDogdHJ1ZQogICAgdGhlbWU6IHVuaXRlZAogICAgaGlnaGxpZ2h0OiB0YW5nbwogICAgY29kZV9mb2xkaW5nOiBzaG93Ci0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldCgKICBlY2hvID0gVFJVRSwKICB3YXJuaW5nID0gRkFMU0UsCiAgbWVzc2FnZSA9IEZBTFNFCikKYGBgCgojIEt1cnMgRWdpdG1lbmxlcmkKCnwgICAgKipFZ2l0bWVubGVyKiogICAgIHwgICAgICAgICAgICAgICoqVXptYW5sxLFrIEFsYW5sYXLEsSoqICAgICAgICAgICAgICB8Cnw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tOnw6LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS06fAp8IElicmFoaW0gSGFsaWwgVGFuYm9nYSB8ICAgICAgICAgICAgICAgQml5b2lzdGF0aXN0aWssIERMICAgICAgICAgICAgICAgIHwKfCAgICAgRmF5c2FsIFNheWzEsWsgICAgIHwgICAgICAgICAgICAgICBCaXlvaXN0YXRpc3RpaywgREwgICAgICAgICAgICAgICAgfAp8ICAgICAgU2VsaW0gVG9wY3UgICAgICB8ICAgICBCaXlvaXN0YXRpc3RpaywgR2VuZWwga2FyZGl5b2xvamkgdmUgQUkgICAgIHwKfCAgICAgVGF5bGFuIEFrZ8O8biAgICAgIHwgICAgICAgICAgICAgRWxla3Ryb2ZpenlvbG9qaSB2ZSBBSSAgICAgICAgICAgICAgfAp8ICAgICAgIE11cmF0IMOHYXAgICAgICAgfCAgICBHaXJpxZ9pbXNlbCBLYXJkaXlvbG9qaSwgR8O2csO8bnTDvGxlbWUgdmUgQUkgICAgfAp8ICBTw7xsZXltYW4gw4dhZ2FuIEVmZSAgIHwgR2lyacWfaW1zZWwgS2FyZGl5b2xvamksIEthbHAgeWV0ZXJzaXpsaWdpIHZlIEFJIHwKfCAgICAgQXNsYW4gRXJkb2dhbiAgICAgfCAgICAgIEdpcmnFn2ltc2VsIEthcmRpeW9sb2ppLCBZYXDEsXNhbCB2ZSBBSSAgICAgIHwKCiMgR2lyacWfCgpCdSBrdXJzLCBEZXJpbiDDlmdyZW5tZSAoRGVlcCBMZWFybmluZyAtIERMKSB2ZSBCw7x5w7xrIERpbCBNb2RlbGxlcmkgKExhcmdlIExhbmd1YWdlIE1vZGVscyAtIExMTSkga29udWxhcsSxbmRhIGthcHNhbWzEsSBiaXIgYW5sYXnEscWfIGdlbGnFn3Rpcm1leWkgYW1hw6dsYW1ha3RhZMSxci4gVGVvcmlrIHRlbWVsbGVyLCBtb2Rlcm4gdXlndWxhbWFsYXIgdmUgcHJhdGlrIHByb2plbGVybGUgZGVzdGVrbGVuZW4gYnUgcHJvZ3JhbSwga2F0xLFsxLFtY8SxbGFyYSBnw7xuY2VsIHlhcGF5IHpla2EgdGVrbm9sb2ppbGVyaW5kZSB1em1hbmzEsWsga2F6YW5kxLFybWF5xLEgaGVkZWZsZW1la3RlZGlyLgoKIyMgw5ZncmVuaW0gSGVkZWZsZXJpCgotICAgRGVyaW4gw7ZncmVubWUgdmUgYsO8ecO8ayBkaWwgbW9kZWxsZXJpbmluIHRlbWVsIGthdnJhbWxhcsSxbsSxIGFubGFtYWsKLSAgIE1vZGVybiBzaW5pciBhZ8SxIG1pbWFyaWxlcmluaSB2ZSBvcHRpbWl6YXN5b24gdGVrbmlrbGVyaW5pIGt1bGxhbmFyYWsgbW9kZWxsZXIgZ2VsacWfdGlybWVrCi0gICBVeWd1bGFtYWzEsSBwcm9qZWxlcmxlIHRlb3JpayBiaWxnaWxlcmkgcHJhdGlnZSBkw7ZrbWVrCi0gICBZYXBheSB6ZWthIHRla25vbG9qaWxlcmluZGUgZ8O8bmNlbCB0cmVuZGxlcmkgdGFraXAgZWRlYmlsbWVrCgojIDEuIE7DtnJhbCBBZ2xhcmEgR2lyacWfIHsudGFic2V0fQoKIyMgMS4xLiBEZXJpbiDDtsSfcmVubWV5ZSBnaXJpxZ8KCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgU2VsaW0gVG9wY3UqKioKCgojIyAxLjIuIFRlbWVsIEthdnJhbWxhciAKCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgU2VsaW0gVG9wY3UqKioKCi0gICBOw7ZyYWwgbmV0d29yayBhbmF0b21pc2k6IEthdG1hbmxhciB2ZSBhZyBtaW1hcmlzaQotICAgQmFja3Byb3BhZ2F0aW9uIHZlIGdyYWRpZW50IGRlc2NlbnQKLSAgIEFrdGl2YXN5b24gRm9ua3NpeW9ubGFyxLEKLSAgIE11bHRpcGxlIGlucHV0IHZlIG91dHB1dCwgU29mdG1heCB2ZSBBcmdtYXgKCiMjIDEuMy4gQWt0aXZhc3lvbiBGb25rc2l5b25sYXLEsQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIFNlbGltIFRvcGN1KioqCgotICAgQWt0aXZhc3lvbiBmb25za2l5b25sYXLEsTogbmVkaXI/IG5lIGnFn2UgeWFyYXIKLSAgIERvZ3J1IGFrdGl2YXN5b24gZm9ua3NpeW9uIHNlw6dpbWkKLSAgIEFrdGl2YXN5b24gZm9ua3NpeW9udTogbGluZWFyIHZlIG5vbmxpbmVhciBmYW1pbHlhbGFyxLEgKFRhbmgsIFJlTFUsIHZzKQoKIyMgMS40LiBLYXnEsXAgKGxvc3MpIEZvbmtzaXlvbmxhcsSxCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgU2VsaW0gVG9wY3UqKioKCi0gICBMb3NzIGZ1bmN0aW9uIG5lZGlyPyBuZWRlbiDDtm5lbWxpZGlyPwotICAgUmVncmVzc2lvbiBsb3NzIGZ1bmN0aW9uIChNU0UsIE1BRSwgSHViZXIgbG9zcyB2cykKLSAgIENsYXNzaWZpY2F0aW9uIGxvc3MgZnVuY3Rpb24gKGxvZyBsb3NzLCBjcm9zcyBlbnRyb3B5IGxvc3MsIGhpbmdlIGxvc3MgdnMpCi0gICBEb2dydSBsb3NzIGZ1bmN0aW9uIHNlw6dpbWkKCiMjIDEuNS4gT3B0aW1pemFzeW9uIEFsZ29yaXRtYWxhcsSxCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgU2VsaW0gVG9wY3UqKioKCi0gICBPcHRpbWl6YXN5b24gbmVkaXI/IG5lIGnFn2UgeWFyYXI/Ci0gICBPcHRpbWl6YXN5b24gYWxnb3JpdG1hbGFyxLEgbmVsZXJkaXI/IChHRCwgU0dELCBtb21lbnR1bSwgTmVzdGVyb3YsIFJNU1Byb3AsIEFkYW0sIHZlIEFkYUdyYWQpCi0gICBPcHRpbWl6YXN5b24gYWxnb3JpdG1hbGFyxLFuxLFuIHNlw6dpbWkKCiMjIDEuNi4gUmVndWxhcml6YXN5b24gVGVrbmlrbGVyaQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIFNlbGltIFRvcGN1KioqCgotICAgTsO2cmFsIG5ldHdvcmtsZXJkZSByZWfDvGxhcml6YXN5b24gbmVkZW4geWFwxLFsxLFyPwotICAgTDEgdmUgTDIgUmVndWxhcml6YXN5b251Ci0gICBEYXRhIGF1Z21lbnRhdGlvbgotICAgRHJvcG91dAotICAgQmF0Y2ggTm9ybWFsaXphdGlvbgotICAgTGF5ZXIgTm9ybWFsaXphdGlvbgotICAgRWFybHkgU3RvcHBpbmcgdmUgTW9kZWwgQ2hlY2twb2ludGluZwotICAgU3RvY2hhc3RpYyBEZXB0aAoKIyAyLiBLb252b2zDvHN5b25lbCBTaW5pciBBZ2xhcsSxIChDTk4pIHsudGFic2V0fQoKIyMgMi4xLiBDTk4gdGVtZWxsZXJpIHZlIE1pbWFyaXNpCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBNdXJhdCBDYXAqKioKCi0gICDEsG5zYW4gR8O2cm1lIFNpc3RlbWkgdmUgQ05OIEFuYWxvamlzaQotICAgR2VsZW5la3NlbCBHw7Zyw7xudMO8IMSwxZ9sZW1lIHZzLiBDTk4KLSAgIEdpcmnFnyBLYXRtYW7EsSB2ZSBWZXJpIEhhesSxcmxhbWEKLSAgIEtvbnZvbMO8c3lvbiBLYXRtYW5sYXLEsQotICAgQWt0aXZhc3lvbiBLYXRtYW5sYXLEsQotICAgUG9vbGluZyBLYXRtYW5sYXLEsQotICAgVGFtIEJhZ2xhbnTEsWzEsSBLYXRtYW5sYXIKLSAgIFNraXAgQ29ubmVjdGlvbnMgdmUgUmVzaWR1YWwgw5ZncmVubWUKCiMjIDIuMi4gS29udm9sw7xzeW9uIEthdG1hbmxhcsSxCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBNdXJhdCBDYXAqKioKCi0gICBGaWx0cmVsZXIgdmUgw4dla2lyZGVrbGVyCi0gICBTdHJpZGUgdmUgUGFkZGluZyBTdHJhdGVqaWxlcmkKLSAgIEZlYXR1cmUgTWFwIE9sdcWfdHVybWEKLSAgIERlcmlubGlrIChEZXB0aCksIEdydXAgKEdyb3VwKSB2ZSBOb2t0YSAoUG9pbnR3aXNlKSBLb252b2zDvHN5b25sYXLEsQotICAgRGlsYXRlZC9BdHJvdXMgS29udm9sw7xzeW9ubGFyCi0gICBUcmFuc3Bvc2VkIEtvbnZvbMO8c3lvbmxhcgoKIyMgMi4zLiBQb29saW5nIEthdG1hbmxhcsSxCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBNdXJhdCBDYXAqKioKCi0gICBQb29saW5nIChNYXggUG9vbGluZywgQXZlcmFnZSBQb29saW5nLCBHbG9iYWwgUG9vbGluZywgQWRhcHRpdmUgUG9vbGluZywgTGVhcm5hYmxlIFBvb2xpbmcpCi0gICBCYXRjaCBOb3JtYWxpemF0aW9uCi0gICBMYXllciBOb3JtYWxpemF0aW9uCi0gICBJbnN0YW5jZSBOb3JtYWxpemF0aW9uCgojIyAyLjQuIE1vZGVybiBDTk4gTWltYXJpbGVyaQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgTXVyYXQgQ2FwKioqCgotICAgS2xhc2lrIE1pbWFyaWxlciAoQWxleE5ldCwgVkdHKQotICAgUmVzTmV0IEFpbGVzaSAoUmVzTmV0LCBSZXNOZVh0KQotICAgRWZmaWNpZW50IG1pbWFyaWxlciAoTW9iaWxlTmV0LCBFZmZpY2llbnROZXQsIFJlZ05ldCkKLSAgIE1vZGVybiBZYWtsYcWfxLFtbGFyIChEZW5zZU5ldCwgQ29udk5lWHQsIFZpc2lvbiBUcmFuc2Zvcm1lcnMsIENOTi1UcmFuc2Zvcm1lciBIaWJyaXRsZXJpKQoKIyMgMi41LiBDTk4gT3B0aW1pemFzeW9udSB2ZSBFZ2l0aW1pCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBNdXJhdCBDYXAqKioKCi0gICBLYXnEsXAgRm9ua3NpeW9ubGFyxLEKLSAgIE9wdGltaXphc3lvbiBBbGdvcml0bWFsYXLEsQotICAgRMO8emVubGlsZcWfdGlybWUgKFJlZ3VsYXJpemF0aW9uKSBUZWtuaWtsZXJpCi0gICBWZXJpIEFydMSxcm1hIChEYXRhIEF1Z21lbnRhdGlvbikKLSAgIFRyYW5zZmVyIMOWZ3Jlbm1lCi0gICBNb2RlbCBTxLFrxLHFn3TEsXJtYSB2ZSBLYW50aXpzeW9uCgojIyAyLjYuIENOTiBVeWd1bGFtYWxhcsSxIHZlIMSwbGVyaSBLb251bGFyCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBNdXJhdCBDYXAqKioKCi0gICBUZW1lbCBVeWd1bGFtYWxhcjogR8O2csO8bnTDvCBTxLFuxLFmbGFuZMSxcm1hLCBOZXNuZSBUZXNwaXRpIChZT0xPLCBSZXRpbmFOZXQpLCBHw7Zyw7xudMO8IFNlZ21lbnRhc3lvbnUgKFUtTmV0LCBNYXNrIFItQ05OKQotICAgxLBsZXJpIFV5Z3VsYW1hbGFyOiBTdHlsZSBUcmFuc2ZlciwgU3VwZXIgUmVzb2x1dGlvbiwgQW5vbWFsaSBUZXNwaXRpLCBGZXctU2hvdCBMZWFybmluZwotICAgWW9ydW1sYW5hYmlsaXJsaWsgdmUgR8O2cnNlbGxlxZ90aXJtZTogRmVhdHVyZSBWaXN1YWxpemF0aW9uLCBBdHRyaWJ1dGlvbiBNZXRob2RzLCBDbGFzcyBBY3RpdmF0aW9uIE1hcHBpbmcgKENBTSkKCiMgMy4gVGVrcmFybGF5YW4gU2luaXIgQWdsYXLEsSAoUk5OKSB7LnRhYnNldH0KCiMjIDMuMS4gUk5OIFRlbWVsbGVyaQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIEFzbGFuIEVyZG9nYW4qKioKCi0gICBSTk4gTWltYXJpc2kgdmUgw4dhbMSxxZ9tYSBQcmVuc2liaQotICAgSGFmxLF6YSBNZWthbml6bWFzxLEgdmUgxLDDpyBEdXJ1bQotICAgWmFtYW4gU2VyaXNpIHZlIFNla2FucyBWZXJpc2kKLSAgIEJhY2twcm9wYWdhdGlvbiBUaHJvdWdoIFRpbWUgKEJQVFQpCi0gICBTZXF1ZW5jZS10by1TZXF1ZW5jZSBNb2RlbGxlbWUKLSAgIEVuY29kZXItRGVjb2RlciBNaW1hcmlzaQoKIyMgMy4yLiBHcmFkeWFuIFByb2JsZW1sZXJpCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgQXNsYW4gRXJkb2dhbioqKgoKLSAgIFZhbmlzaGluZyB2ZSBFeHBsb2RpbmcgR3JhZGllbnRzCi0gICBHcmFkaWVudCBDbGlwcGluZyBUZWtuaWtsZXJpCi0gICBMYXllciBOb3JtYWxpemF0aW9uCi0gICBTa2lwIENvbm5lY3Rpb25zCi0gICBUcnVuY2F0ZWQgQlBUVAotICAgUmVzaWR1YWwgQ29ubmVjdGlvbnMKCiMjIDMuMy4gTW9kZXJuIFJOTiBUw7xybGVyaQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIEFzbGFuIEVyZG9nYW4qKioKCi0gICBMU1RNIChmb3JnZXQgZ2F0ZSwgaW5wdXQgZ2F0ZSwgb3V0cHV0IGdhdGUsIGNlbGwgZ2F0ZSkgdmUgZXh0ZW5kZWQgTFNUTQotICAgR1JVIHZlIE9wdGltaXphc3lvbmxhcsSxCi0gICBCaWRpcmVjdGlvbmFsIFJOTiB2ZSBEZWVwUk5OCi0gICBBdHRlbnRpb24tYXVnbWVudGVkIFJOTnMgKFNlbGYtQXR0ZW50aW9uLCBNdWx0aS1IZWFkIEF0dGVudGlvbiwgU2NhbGVkIERvdC1Qcm9kdWN0IEF0dGVudGlvbikKCiMjIDMuNC4gUk5OIG9wdGltaXphc3lvbnUKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBBc2xhbiBFcmRvZ2FuKioqCgotICAgS2F5xLFwIEZvbmtzaXlvbmxhcsSxCi0gICBPcHRpbWl6YXN5b24gQWxnb3JpdG1hbGFyxLEKLSAgIFJlZ3VsYXJpemFzeW9uIFRla25pa2xlcmkKLSAgIERyb3BvdXQgU3RyYXRlamlsZXJpCi0gICBUZWFjaGVyIEZvcmNpbmcKLSAgIEN1cnJpY3VsdW0gTGVhcm5pbmcKCiMjIDMuNS4gUk5OIFV5Z3VsYW1hbGFyxLEKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBBc2xhbiBFcmRvZ2FuKioqCgotICAgRG9nYWwgRGlsIMSwxZ9sZW1lOiBNZXRpbiBTxLFuxLFmbGFuZMSxcm1hLCBEdXlndSBBbmFsaXppLCBNYWtpbmUgw4dldmlyaXNpLCBNZXRpbiDDlnpldGxlbWUKLSAgIFphbWFuIFNlcmlzaTogVGFobWluIHZlIMOWbmfDtnLDvCwgQW5vbWFsaSBUZXNwaXRpLCBGaW5hbnNhbCBUYWhtaW5sZXIKLSAgIFNlcyB2ZSBNw7x6aWs6IEtvbnXFn21hIFRhbsSxbWEsIE3DvHppayDDnHJldGltaSwgU2VzIFNlbnRlemkKCiMgNC4gQXR0ZW50aW9uIHZlIFRyYW5zZm9ybWVyIE1pbWFyaXNpIHsudGFic2V0fQoKIyMgNC4xLiBBdHRlbnRpb24gTWVrYW5pem1hc8SxCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBTw7xsZXltYW4gw4dhZ2FuIEVmZSoqKgoKLSAgIFNlbGYtQXR0ZW50aW9uCi0gICBNdWx0aS1IZWFkIEF0dGVudGlvbgotICAgQ3Jvc3MtQXR0ZW50aW9uCi0gICBSZWxhdGl2ZSBQb3NpdGlvbiBFbmNvZGluZwotICAgU3BhcnNlIEF0dGVudGlvbgotICAgTGluZWFyIEF0dGVudGlvbgotICAgTG9jYWwgQXR0ZW50aW9uCgojIyA0LjIuIFRyYW5zZm9ybWVyIE1pbWFyaXNpCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBTw7xsZXltYW4gw4dhZ2FuIEVmZSoqKgoKLSAgIEVuY29kZXItRGVjb2RlciBZYXDEsXPEsQotICAgUG9zaXRpb25hbCBFbmNvZGluZwotICAgTGF5ZXIgTm9ybWFsaXphdGlvbgotICAgRmVlZC1Gb3J3YXJkIE5ldHdvcmtzCi0gICBSZXNpZHVhbCBDb25uZWN0aW9ucwotICAgTWFza2VsZW1lIFN0cmF0ZWppbGVyaQotICAgRGVjb2Rlci1Pbmx5IHZzIEVuY29kZXItT25seQoKIyMgNC4zLiBUcmFuc2Zvcm1lciBPcHRpbWl6YXN5b25sYXLEsQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgU8O8bGV5bWFuIMOHYWdhbiBFZmUqKioKCi0gICBHcmFkaWVudCBDaGVja3BvaW50aW5nCi0gICBNZW1vcnkgRWZmaWNpZW50IFRyYWluaW5nCi0gICBNaXhlZCBQcmVjaXNpb24gVHJhaW5pbmcKLSAgIERhdGEgUGFyYWxsZWxpc20KLSAgIE1vZGVsIFBhcmFsbGVsaXNtCi0gICBQaXBlbGluZSBQYXJhbGxlbGlzbQotICAgRmxhc2ggQXR0ZW50aW9uCi0gICBSb3RhcnkgRW1iZWRkaW5ncwoKIyMgNC40LiBNb2Rlcm4gVHJhbnNmb3JtZXIgVmFyeWFudGxhcsSxCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBTw7xsZXltYW4gw4dhZ2FuIEVmZSoqKgoKLSAgIFBlcmZvcm1lcgotICAgUmVmb3JtZXIKLSAgIExpbmZvcm1lcgotICAgTG9uZ2Zvcm1lcgotICAgQmlnQmlyZAotICAgVHJhbnNmb3JtZXJYTAotICAgU3dpdGNoIFRyYW5zZm9ybWVyCi0gICBVbml2ZXJzYWwgVHJhbnNmb3JtZXIKCiMgNS4gQsO8ecO8ayBEaWwgTW9kZWxsZXJpIChMTE0pIHsudGFic2V0fQoKIyMgNS4xLiBMTE0gRm91bmRhdGlvbnMgdmUgR2VsacWfaW0KKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBUYXlsYW4gQWtnw7xuKioqCgotICAgTW9kZWwgw5Zsw6dla2xlbWU6IFBhcmFtZXRyZSBCb3l1dGxhcsSxLCBDb21wdXRlIFJlcXVpcmVtZW50cywgVHJhaW5pbmcgSW5mcmFzdHJ1Y3R1cmUKLSAgIFRhcmloc2VsIEdlbGnFn2ltOiBHUFQgQWlsZXNpLCBQYUxNLCBCTE9PTSwgTExhTUEsIENsYXVkZSwgR2VtaW5pCi0gICBBw6fEsWsgS2F5bmFrIE1vZGVsbGVyOiBMTGFNQSwgQkxPT00sIEZhbGNvbiwgTWlzdHJhbCwgUGhpLTIKLSAgIE1vZGVsIEJveXV0bGFyxLE6IDdCLCAxM0IsIDM0QiwgNzBCIENvbXBhcmlzb24KLSAgIENvbnRleHQgTGVuZ3RoOiBGbGFzaCBBdHRlbnRpb24sIFJvUEUsIEFMaUJpLCBJbXByb3ZlbWVudHMKLSAgIFRva2VuaXphc3lvbjogQ29udGV4dCBXaW5kb3csIFRva2VuIEVrb25vbWlzaSwgUG9zaXRpb25hbCBFbmNvZGluZwoKIyMgNS4yLiBMTE0gVHJhaW5pbmcgUGlwZWxpbmUKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBUYXlsYW4gQWtnw7xuKioqCgotICAgUHJlLXRyYWluaW5nCi0gICBWZXJpIEhhesSxcmxhbWE6IEZpbHRyZWxlbWUsIERlZHVwbGlrYXN5b24sIFRlbWl6bGVtZQotICAgVHJhaW5pbmcgU3RyYXRlamlsZXJpOiBNYXNrZWQgTE0sIENhdXNhbCBMTQotICAgTG9zcyBGdW5jdGlvbnM6IENyb3NzIEVudHJvcHksIENvbnRyYXN0aXZlIExvc3MKLSAgIENvbXB1dGUgRWZmaWNpZW50IFRyYWluaW5nOiBaZVJPLCBEZWVwU3BlZWQsIE1lZ2F0cm9uCi0gICBGaW5lLXR1bmluZwotICAgSW5zdHJ1Y3Rpb24gVHVuaW5nOiBOYXR1cmFsIEluc3RydWN0aW9ucywgVGFzayBUZW1wbGF0ZXMKLSAgIFJMSEYgUGlwZWxpbmU6IFJld2FyZCBNb2RlbGluZywgUFBPIFRyYWluaW5nCi0gICBEUE8gKERpcmVjdCBQcmVmZXJlbmNlIE9wdGltaXphdGlvbikKLSAgIENvbnN0aXR1dGlvbmFsIEFJOiBSdWxlLWJhc2VkIEFsaWdubWVudCwgVmFsdWUgTGVhcm5pbmcKLSAgIEtub3dsZWRnZSBEaXN0aWxsYXRpb246IFRlYWNoZXItU3R1ZGVudCBUcmFpbmluZwoKIyMgNS4zLiBQcm9tcHQgRW5naW5lZXJpbmcgdmUgT3B0aW1pemFzeW9uCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgVGF5bGFuIEFrZ8O8bioqKgoKLSAgIFByb21wdCBQYXR0ZXJucwotICAgWmVyby1zaG90IHZlIEZldy1zaG90IExlYXJuaW5nCi0gICBDaGFpbi1vZi1UaG91Z2h0IChDb1QpCi0gICBUcmVlIG9mIFRob3VnaHRzCi0gICBSZUFjdCBGcmFtZXdvcmsKLSAgIEFkdmFuY2VkIFRlY2huaXF1ZXMKLSAgIFN5c3RlbSBQcm9tcHRpbmcKLSAgIE1ldGEtcHJvbXB0aW5nCi0gICBQcm9tcHQgQ2hhaW5pbmcKLSAgIFRlbXBlcmF0dXJlIFR1bmluZwotICAgUHJvbXB0IFRlbXBsYXRlcwotICAgVGFzay1zcGVjaWZpYyBUZW1wbGF0ZXMKLSAgIFJvbGUtYmFzZWQgUHJvbXB0aW5nCi0gICBDb25zaXN0ZW5jeSBUZWNobmlxdWVzCgojIyA1LjQuIFJldHJpZXZhbCBBdWdtZW50ZWQgR2VuZXJhdGlvbiAoUkFHKQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIFRheWxhbiBBa2fDvG4qKioKCi0gICBUZW1lbCBCaWxlxZ9lbmxlcgotICAgVmVjdG9yIERhdGFiYXNlcwotICAgRW1iZWRkaW5nIE1vZGVscwotICAgQ2h1bmtpbmcgU3RyYXRlZ2llcwotICAgUmV0cmlldmFsIE1ldGhvZHMKLSAgIEdlbGnFn21pxZ8gUkFHCi0gICBIeWJyaWQgU2VhcmNoCi0gICBSZS1yYW5raW5nCi0gICBNdWx0aS1zdGVwIFJBRwotICAgUmVjdXJzaXZlIFJldHJpZXZhbAotICAgUkFHIE9wdGltaXphc3lvbnUKLSAgIENvbnRleHQgV2luZG93IE1hbmFnZW1lbnQKLSAgIFF1ZXJ5IEZvcm11bGF0aW9uCi0gICBSZXNwb25zZSBTeW50aGVzaXMKCiMjIDUuNS4gTExNIERlZ2VybGVuZGlybWUKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBUYXlsYW4gQWtnw7xuKioqCgotICAgTU1MVSBCZW5jaG1hcmsKLSAgIEJCSCAoQmlnIEJlbmNoIEhhcmQpCi0gICBUcnV0aGZ1bFFBCi0gICBQZXJwbGV4aXR5IHZlIEJMRVUKLSAgIEJFUlRTY29yZQotICAgVGFzay1TcGVjaWZpYyBNZXRyaWNzCi0gICBIdW1hbiBFdmFsdWF0aW9uCgojIyA1LjYuIExMTSBVeWd1bGFtYWxhcsSxCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgVGF5bGFuIEFrZ8O8bioqKgoKLSAgIENoYXRib3QgRGV2ZWxvcG1lbnQKLSAgIFRleHQgR2VuZXJhdGlvbgotICAgQ29kZSBHZW5lcmF0aW9uCi0gICBEb2N1bWVudCBRJkEKLSAgIFRleHQgU3VtbWFyaXphdGlvbgotICAgRG9tYWluIEFkYXB0YXRpb24KLSAgIFRvb2wgVXNhZ2UKLSAgIE11bHRpLU1vZGFsIEludGVncmF0aW9uCgojIyA1LjcuIExMTSBBZ2VudCdsYXIKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBUYXlsYW4gQWtnw7xuKioqCgotICAgQWdlbnQgTWltYXJpc2k6IFJlQWN0IEZyYW1ld29yaywgUGxhbi1hbmQtRXhlY3V0ZSwgQ2hhaW4gb2YgVGhvdWdodCwgVHJlZSBvZiBUaG91Z2h0cwotICAgVG9vbCBLdWxsYW7EsW3EsTogRnVuY3Rpb24gQ2FsbGluZywgVG9vbCBMZWFybmluZywgQVBJIEludGVncmF0aW9uLAotICAgSGFmxLF6YSB2ZSBQbGFubGFtYTogRXBpc29kaWMgTWVtb3J5LCBXb3JraW5nIE1lbW9yeSwgVGFzayBQbGFubmluZwotICAgTXVsdGktQWdlbnQgU2lzdGVtbGVyOiBBZ2VudCBDb21tdW5pY2F0aW9uLCBSb2xlLWJhc2VkIEFnZW50cywgQ29sbGFib3JhdGl2ZSBQcm9ibGVtIFNvbHZpbmcKLSAgIEFnZW50IEfDvHZlbmxpZ2k6IFNhbmRib3ggRW52aXJvbm1lbnRzLCBBY3Rpb24gVmFsaWRhdGlvbiwgUmVzb3VyY2UgTGltaXRzLCBTYWZldHkgUHJvdG9jb2xzCi0gICDDlnplbCBBZ2VudCBUw7xybGVyaTogVGFzay1TcGVjaWZpYyBBZ2VudHMsIEF1dG9ub21vdXMgQWdlbnRzLCBFbWJvZGllZCBBZ2VudHMsIEFzc2lzdGFudCBBZ2VudHMKCiMjIDUuOC4gTExNIEFnZW50IEZyYW1ld29ya3MKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBUYXlsYW4gQWtnw7xuKioqCgotICAgTGFuZ0NoYWluCi0gICBBdXRvR1BUCi0gICBCYWJ5QUdJCi0gICBDcmV3QUkKLSAgIE1pY3Jvc29mdCBTZW1hbnRpYyBLZXJuZWwKLSAgIEFnZW50IEZyYW1ld29ya3MgRXh0ZW5zaW9ucwoKIyMgNS45LiBNb2RlbCBQZXJmb3JtYW5jZSB2ZSBNZXRyaWtsZXIKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBUYXlsYW4gQWtnw7xuKioqCgotICAgTGFuZ3VhZ2UgVW5kZXJzdGFuZGluZwotICAgTU1MVSwgQkJILCBHU004SywgSHVtYW5FdmFsCi0gICBUcnV0aGZ1bFFBLCBCaWFzIEV2YWx1YXRpb24KLSAgIFRveGljaXR5IFRlc3RpbmcKLSAgIFN5c3RlbSBQZXJmb3JtYW5jZQotICAgTGF0ZW5jeSwgVGhyb3VnaHB1dAotICAgTWVtb3J5IFVzYWdlCi0gICBDb3N0IHBlciBUb2tlbgotICAgU3BlY2lhbGl6ZWQgTWV0cmljcwotICAgQ29kZSBHZW5lcmF0aW9uOiBQYXNzXEBrCi0gICBNYXRoOiBTb2x1dGlvbiBBY2N1cmFjeQotICAgUmVhc29uaW5nOiBDb1QgU3VjY2VzcyBSYXRlCgojIyA1LjEwLiBEZXBsb3ltZW50IHZlIFByb2R1Y3Rpb24KKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBUYXlsYW4gQWtnw7xuKioqCgotICAgSW5mcmFzdHJ1Y3R1cmUKLSAgIFNlcnZpbmcgQXJjaGl0ZWN0dXJlcwotICAgTG9hZCBCYWxhbmNpbmcKLSAgIENhY2hpbmcgU3RyYXRlZ2llcwotICAgTW9uaXRvcmluZwotICAgVG9rZW4gVXNhZ2UKLSAgIFJlc3BvbnNlIFF1YWxpdHkKLSAgIEVycm9yIFJhdGVzCi0gICBTZWN1cml0eQotICAgUHJvbXB0IEluamVjdGlvbiBQcmV2ZW50aW9uCi0gICBSYXRlIExpbWl0aW5nCi0gICBDb250ZW50IEZpbHRlcmluZwoKIyMgNS4xMS4gRW1lcmdpbmcgVHJlbmRzCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgVGF5bGFuIEFrZ8O8bioqKgoKLSAgIE11bHRpbW9kYWwgSW50ZWdyYXRpb24KLSAgIFZpc2lvbi1MYW5ndWFnZSBNb2RlbHMKLSAgIEF1ZGlvIFByb2Nlc3NpbmcKLSAgIE11bHRpLW1vZGFsIENoYXQKLSAgIFRvb2wgVXNlCi0gICBGdW5jdGlvbiBDYWxsaW5nCi0gICBDb2RlIEludGVycHJldGF0aW9uCi0gICBFeHRlcm5hbCBBUEkgSW50ZWdyYXRpb24KLSAgIE1vZGVsIEN1c3RvbWl6YXRpb24KLSAgIERvbWFpbiBBZGFwdGF0aW9uCi0gICBQZXJzb25hbGl0eSBUdW5pbmcKLSAgIEJlaGF2aW9yIEFsaWdubWVudAoKIyA2LiBWaXNpb24tTGFuZ3VhZ2UgTW9kZWxsZXIgKFZMTSkgey50YWJzZXR9CgojIyA2LjEuIE11bHRpbW9kYWwgTGVhcm5pbmcKKioqRWdpdG1lbmxlcjogRmF5c2FsIFNheWzEsWssIFNlbGltIFRvcGN1KioqCgotICAgVGVtZWxsZXI6IENyb3NzLW1vZGFsIFJlcHJlc2VudGF0aW9ucywgSm9pbnQgRW1iZWRkaW5ncywgQXR0ZW50aW9uIE1la2FuaXptYWxhcsSxCi0gICBGdXNpb24gU3RyYXRlamlsZXJpOiBFYXJseSBGdXNpb24sIExhdGUgRnVzaW9uLCBIeWJyaWQgRnVzaW9uCi0gICBFZ2l0aW0gVGVrbmlrbGVyaTogQ29udHJhc3RpdmUgTGVhcm5pbmcsIEtub3dsZWRnZSBEaXN0aWxsYXRpb24sIEN1cnJpY3VsdW0gTGVhcm5pbmcKCiMjIDYuMi4gTW9kZXJuIFZMTSBNaW1hcmlsZXJpCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBTZWxpbSBUb3BjdSoqKgoKLSAgIENMSVAgQWlsZXNpOiBDTElQL09wZW5DTElQLCBGbG9yZW5jZSwgRGVDTElQCi0gICBHZWxpxZ9tacWfIE1vZGVsbGVyOiBGbGFtaW5nbywgUGFMTS1FLCBHUFQtNFYsIENsYXVkZSBWaXNpb24sIENvQ2EsIEJMSVAvQkxJUC0yCi0gICBNaW1hcmkgQmlsZcWfZW5sZXI6IFZpc2lvbiBFbmNvZGVyLCBUZXh0IEVuY29kZXIsIENyb3NzLUF0dGVudGlvbiwgRnVzaW9uIExheWVycwoKIyMgNi4zLiBWTE0gVXlndWxhbWFsYXLEsQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgU2VsaW0gVG9wY3UqKioKCi0gICBUZW1lbCBHw7ZyZXZsZXI6IEltYWdlLVRleHQgUmV0cmlldmFsLCBWaXN1YWwgUXVlc3Rpb24gQW5zd2VyaW5nLCBJbWFnZSBDYXB0aW9uaW5nCi0gICDEsGxlcmkgVXlndWxhbWFsYXI6IFZpc3VhbCBSZWFzb25pbmcsIFNjZW5lIFVuZGVyc3RhbmRpbmcsIFZpc3VhbCBHcm91bmRpbmcsIFplcm8tc2hvdCBUYW7EsW1hLCBGZXctc2hvdCDDlmdyZW5tZQoKIyMgNi40LiBNdWx0aW1vZGFsIENoYWluLW9mLVRob3VnaHQKKioqRWdpdG1lbmxlcjogRmF5c2FsIFNheWzEsWssIFNlbGltIFRvcGN1KioqCgotICAgVmlzdWFsIFJlYXNvbmluZzogU3RlcC1ieS1zdGVwIEFuYWx5c2lzLCBWaXN1YWwgUHJvYmxlbSBTb2x2aW5nLCBJbmZlcmVuY2UgQ2hhaW4gQnVpbGRpbmcKLSAgIFJlYXNvbmluZyBUw7xybGVyaTogU3BhdGlhbCBSZWFzb25pbmcsIFRlbXBvcmFsIFJlYXNvbmluZywgQ2F1c2FsIFJlYXNvbmluZwotICAgTXVsdGltb2RhbCBDb1QgU3RyYXRlamlsZXJpOiBWaXN1YWwgUHJvbXB0aW5nLCBDcm9zcy1tb2RhbCBWZXJpZmljYXRpb24sIEVycm9yIEFuYWx5c2lzCgojIyA2LjUuIFZMTSBPcHRpbWl6YXN5b24gdmUgRGVnZXJsZW5kaXJtZQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgU2VsaW0gVG9wY3UqKioKCi0gICBNb2RlbCBPcHRpbWl6YXN5b251OiBNZW1vcnkgRWZmaWNpZW5jeSwgSW5mZXJlbmNlIFNwZWVkLCBNb2RlbCBDb21wcmVzc2lvbgotICAgRGVnZXJsZW5kaXJtZSBNZXRyaWtsZXJpOiBCTEVVL1JPVUdFLCBNRVRFT1IsIENJREVyLCBTUElDRQotICAgQmVuY2htYXJrIERhdGFzZXRsZXJpOiBDT0NPLCBGbGlja3IzMGssIFZpc3VhbCBHZW5vbWUsIFZRQXYyCgojIDcuIEdlbmVyYXRpdmUgTW9kZWxsZXIgey50YWJzZXR9CgojIyA3LjEuIFZhcmlhdGlvbmFsIEF1dG9lbmNvZGVycyAoVkFFKQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIE11cmF0IENhcCoqKgoKLSAgIFZBRSBNaW1hcmlzaTogRW5jb2Rlci1EZWNvZGVyIFlhcMSxc8SxLCBMYXRlbnQgU3BhY2UsIFJlcGFyYW1ldHJpemF0aW9uIFRyaWNrLCBLTCBEaXZlcmdlbmNlCi0gICBWQUUgVMO8cmxlcmk6IEJldGEtVkFFLCBDb25kaXRpb25hbCBWQUUsIEhpZXJhcmNoaWNhbCBWQUUKLSAgIFZRLVZBRTogVmVjdG9yIFF1YW50aXphdGlvbiwgQ29kZWJvb2sgTGVhcm5pbmcsIFZRLVZBRS0yCi0gICBOVkFFOiBIaWVyYXJjaGljYWwgU3RydWN0dXJlLCBEZWVwIE5vcm1hbGl6YXRpb24KCiMjIDcuMi4gR0FOIChHZW5lcmF0aXZlIEFkdmVyc2FyaWFsIE5ldHdvcmtzKQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIE11cmF0IENhcCoqKgoKLSAgIEdBTiBUZW1lbGxlcmk6IEdlbmVyYXRvciwgRGlzY3JpbWluYXRvciwgVHJhaW5pbmcgRHluYW1pY3MsIE1vZGUgQ29sbGFwc2UKLSAgIE1vZGVybiBHQU4nbGFyOiBTdHlsZUdBTjMsIEJpZ0dBTiwgUHJvZ3Jlc3NpdmUgR0FOLCBTZWxmLUF0dGVudGlvbiBHQU4KLSAgIENvbmRpdGlvbmFsIEdBTnM6IFBpeDJQaXgsIEN5Y2xlR0FOLCBTUEFERSwgU3RhckdBTgotICAgVHJhaW5pbmcgdmUgU3RhYmlsaXRlOiBHcmFkaWVudCBQZW5hbHRpZXMsIFIxIFJlZ3VsYXJpemF0aW9uLCBQYXRoIExlbmd0aCBSZWd1bGFyaXphdGlvbgoKIyMgNy4zLiBEaWZmdXNpb24gTW9kZWxsZXIKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBNdXJhdCBDYXAqKioKCi0gICBUZW1lbCBEaWZmdXNpb246IEREUE0sIERESU0sIFNjb3JlLWJhc2VkIE1vZGVscywgTm9pc2UgU2NoZWR1bGluZwotICAgTW9kZXJuIERpZmZ1c2lvbjogU3RhYmxlIERpZmZ1c2lvbiwgREFMTC1FIDMsIEltYWdlbiwgTWlkam91cm5leQotICAgVXlndWxhbWFsYXI6IFRleHQtdG8tSW1hZ2UsIEltYWdlLXRvLUltYWdlLCBJbnBhaW50aW5nL091dHBhaW50aW5nCi0gICBPcHRpbWl6YXN5b246IFNhbXBsaW5nIFN0cmF0ZWdpZXMsIENGRywgR3VpZGFuY2UgU2NhbGUKCiMjIDcuNC4gRmxvdy1iYXNlZCBNb2RlbGxlcgoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIE11cmF0IENhcCoqKgoKLSAgIFRlbWVsIEthdnJhbWxhcjogSW52ZXJ0aWJsZSBGdW5jdGlvbnMsIENoYW5nZSBvZiBWYXJpYWJsZXMsIE1heGltdW0gTGlrZWxpaG9vZAotICAgTWltYXJpIFTDvHJsZXJpOiBOb3JtYWxpemluZyBGbG93cywgUmVhbCBOVlAsIEdsb3csIEZsb3crKwotICAgVXlndWxhbWFsYXI6IERlbnNpdHkgRXN0aW1hdGlvbiwgSW1hZ2UgR2VuZXJhdGlvbiwgVm9pY2UgU3ludGhlc2lzCi0gICBUcmFpbmluZzogQ291cGxpbmcgTGF5ZXJzLCBBZmZpbmUgVHJhbnNmb3JtYXRpb25zLCBGbG93IENvbXBvc2l0aW9uCgojIyA3LjUuIEF1dG9yZWdyZXNzaXZlIE1vZGVsbGVyCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgTXVyYXQgQ2FwKioqCgotICAgR8O2csO8bnTDvCBNb2RlbGxlcmk6IFBpeGVsQ05OKyssIEltYWdlIEdQVCwgVGFtaW5nIFRyYW5zZm9ybWVycwotICAgU2VzIE1vZGVsbGVyaTogV2F2ZU5ldCwgU2FtcGxlUk5OLCBXYXZlUk5OCi0gICBIeWJyaWQgWWFrbGHFn8SxbWxhcjogVlEtVkFFICsgVHJhbnNmb3JtZXIsIERBTEwtRSwgUGFydGkKLSAgIE9wdGltaXphc3lvbjogQ29udGV4dCBTdGFja3MsIFNraXAgQ29ubmVjdGlvbnMsIEF0dGVudGlvbiBNZWNoYW5pc21zCgojIyA3LjYuIFRleHQtdG8tSW1hZ2UgTW9kZWxsZXIKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBNdXJhdCBDYXAqKioKCi0gICBNb2RlbCBNaW1hcmlsZXJpOiBEQUxMLUUgMywgU3RhYmxlIERpZmZ1c2lvbiwgSW1hZ2VuLCBNaWRqb3VybmV5Ci0gICBLb250cm9sIE1la2FuaXptYWxhcsSxOiBDb250cm9sTmV0LCBUMkktQWRhcHRlciwgSVAtQWRhcHRlcgotICAgRmluZS10dW5pbmc6IFRleHR1YWwgSW52ZXJzaW9uLCBEcmVhbUJvb3RoLCBMb1JBLCBIeXBlcm5ldHdvcmtzCi0gICBQcm9tcHQgRW5naW5lZXJpbmc6IE5lZ2F0aXZlIFByb21wdHMsIFdlaWdodCBUdW5pbmcsIFN0eWxlIENvbnRyb2wKCiMgOC4gTW9kZWwgT3B0aW1pemFzeW9udSB2ZSBEZXBsb3ltZW50IHsudGFic2V0fQoKIyMgOC4xLiBNb2RlbCBDb21wcmVzc2lvbgoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgQXNsYW4gRXJkb2dhbioqKgoKLSAgIFF1YW50aXphdGlvbiAoSU5UOCwgSU5UNCkKLSAgIFBydW5pbmcgU3RyYXRlZ2llcwotICAgS25vd2xlZGdlIERpc3RpbGxhdGlvbgotICAgTW9kZWwgQXJjaGl0ZWN0dXJlIFNlYXJjaAotICAgSGFyZHdhcmUtYXdhcmUgT3B0aW1pemF0aW9uCgojIyA4LjIuIERpc3RyaWJ1dGVkIFRyYWluaW5nCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBBc2xhbiBFcmRvZ2FuKioqCgotICAgRGF0YSBQYXJhbGxlbGlzbQotICAgTW9kZWwgUGFyYWxsZWxpc20KLSAgIFBpcGVsaW5lIFBhcmFsbGVsaXNtCi0gICBaZVJPIE9wdGltaXphdGlvbgotICAgQ29tbXVuaWNhdGlvbiBTdHJhdGVnaWVzCgojIyA4LjMuIFByb2R1Y3Rpb24gRGVwbG95bWVudAoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgQXNsYW4gRXJkb2dhbioqKgoKLSAgIE1vZGVsIFNlcnZpbmcgKFRvcmNoU2VydmUsIFRlbnNvclJUKQotICAgQVBJIERldmVsb3BtZW50Ci0gICBDb250YWluZXJpemF0aW9uCi0gICBMb2FkIEJhbGFuY2luZwotICAgTW9uaXRvcmluZyB2ZSBMb2dnaW5nCgojIyA4LjQuIE1MT3BzCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBBc2xhbiBFcmRvZ2FuKioqCgotICAgQ0kvQ0QgZm9yIE1MCi0gICBFeHBlcmltZW50IFRyYWNraW5nCi0gICBNb2RlbCBWZXJzaW9uaW5nCi0gICBGZWF0dXJlIFN0b3JlcwotICAgQS9CIFRlc3RpbmcKCiMgOS4gUmVzcG9uc2libGUgQUksIEF1Z21lbnRlZCBpbnRlbGxpZ2VuY2UgdmUgQ2F1c2FsIEFJIHsudGFic2V0fQoKIyMgOS4xLiBSZXNwb25zaWJsZSBBSSB7LnRhYnNldH0KKioqRWdpdG1lbmxlcjogVGF5bGFuIEFrZ8O8bioqKgoKUmVzcG9uc2libGUgQUkgc2lzdGVtbGVyaSwgZXRpayBwcmVuc2lwbGVyIHZlIGfDvHZlbmxpayDDtm5sZW1sZXJpIMOnZXLDp2V2ZXNpbmRlIGdlbGnFn3RpcmlsaXIsIMWfZWZmYWZsxLFrIHZlIGhlc2FwIHZlcmViaWxpcmxpayB0ZW1lbCBhbMSxbmFyYWsgdG9wbHVtc2FsIGV0a2lsZXIgZ8O2emV0aWxpci4gVmVyaSBtYWhyZW1peWV0aSwgYmlhcyB5w7ZuZXRpbWkgdmUgbW9kZWwgZ8O8dmVubGlnaSBnaWJpIGtvbnVsYXIgc8O8cmVrbGkgaXpsZW5lcmVrLCBzw7xyZMO8csO8bGViaWxpciB2ZSBhZGlsIEFJIHNpc3RlbWxlcmkgb2x1xZ90dXJ1bG1hc8SxIGhlZGVmbGVuaXIuCgojIyA5LjIuIEF1Z21lbnRlZCBpbnRlbGxpZ2VuY2Ugey50YWJzZXR9CioqKkVnaXRtZW5sZXI6IFPDvGxleW1hbiDDh2FnYW4gRWZlKioqCgpBdWdtZW50ZWQgSW50ZWxsaWdlbmNlLCBpbnNhbiB5ZXRlbmVrbGVyaW5pIEFJIHNpc3RlbWxlcml5bGUgZ8O8w6dsZW5kaXJtZXlpIGFtYcOnbGFyLiDEsG5zYW4tQUkgacWfYmlybGlnaSBtb2RlbGxlcmluZGUsIGJpbGdpIGVudGVncmFzeW9udSB2ZSBrYXJhciBkZXN0ZWsgc2lzdGVtbGVyaSBrdWxsYW7EsWxhcmFrIGnFnyBzw7xyZcOnbGVyaSBvcHRpbWl6ZSBlZGlsaXIuIEt1bGxhbsSxY8SxIGRlbmV5aW1pIHZlIGVyacWfaWxlYmlsaXJsaWsgw7ZuIHBsYW5kYSB0dXR1bGFyYWssIHNla3TDtnJlbCBpaHRpeWHDp2xhcmEgw7Z6ZWwgw6fDtnrDvG1sZXIgZ2VsacWfdGlyaWxpci4KCiMjIDkuMy4gQ2F1c2FsIE1ML0FJIHsudGFic2V0fQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EqKioKCkNhdXNhbCBNTC9BSSwga29yZWxhc3lvbiB5ZXJpbmUgbmVkZW5zZWxsaWsgaWxpU2tpbGVyaW5pIGFubGFtYXlhIG9kYWtsYW7EsXIuIFBlYXJsJ8O8biBkby1jYWxjdWx1cyB2ZSB5YXDEsXNhbCBuZWRlbnNlbCBtb2RlbGxlciBnaWJpIHRlb3JpayB0ZW1lbGxlciDDvHplcmluZSBrdXJ1bHUgb2xhbiBidSBhbGFuLCB0cmVhdG1lbnQgZWZmZWN0IGVzdGltYXRpb24sIGNvdW50ZXJmYWN0dWFsIGFuYWx5c2lzIHZlIGNhdXNhbCBkaXNjb3ZlcnkgZ2liaSB0ZWtuaWtsZXJsZSBnZXLDp2VrIGTDvG55YSBwcm9ibGVtbGVyaW5lIMOnw7Z6w7xtbGVyIHN1bmFyLiDDlnplbGxpa2xlIGhlYWx0aGNhcmUsIGJ1c2luZXNzIHZlIHBvbGljeSBhbGFubGFyxLFuZGEgZXRraWxpIHV5Z3VsYW1hbGFyIHNhZ2xhci4KCgojIDEwLiBWaXNpb24gVHJhbnNmb3JtZXJzIChWaVQpIHsudGFic2V0fQoKIyMgMTAuMS4gVmlzaW9uIFRyYW5zZm9ybWVyIFRlbWVsbGVyaQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIFPDvGxleW1hbiDDh2FnYW4gRWZlKioqCgotICAgVGVtZWwgTWltYXJpOiBQYXRjaCBFbWJlZGRpbmcsIFNlbGYtQXR0ZW50aW9uLCBNTFAgSGVhZCwgQ2xhc3NpZmljYXRpb24gVG9rZW4KLSAgIElucHV0IFByb2Nlc3Npbmc6IEltYWdlIFBhdGNoaW5nLCBMaW5lYXIgUHJvamVjdGlvbiwgUG9zaXRpb24gRW1iZWRkaW5nCi0gICBBdHRlbnRpb24gTWVrYW5pem1hc8SxOiBNdWx0aS1IZWFkIFNlbGYtQXR0ZW50aW9uLCBMYXllciBOb3JtYWxpemF0aW9uLCBTa2lwIENvbm5lY3Rpb25zCi0gICBUcmFpbmluZyBTdHJhdGVqaWxlcmk6IFByZXRyYWluaW5nIERhdGFzZXRzLCBEYXRhIEF1Z21lbnRhdGlvbiwgVHJhbnNmZXIgTGVhcm5pbmcKCiMjIDEwLjIuIE1vZGVybiBWaVQgTWltYXJpbGVyaQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIFPDvGxleW1hbiDDh2FnYW4gRWZlKioqCgotICAgRWZmaWNpZW50IFZpVDogRGVpVCwgTW9iaWxlLVZpVCwgQ29tcGFjdCBUcmFuc2Zvcm1lcnMKLSAgIEhpZXJhcmNoaWNhbCBWaVQ6IFN3aW4gVHJhbnNmb3JtZXIsIFBWVCwgVHdpbnMKLSAgIEh5YnJpZCBNb2RlbGxlcjogQ29udk5lWHQsIENvQXROZXQsIENyb3NzVmlUCi0gICBQZXJmb3JtYW5jZSBJbXByb3ZlbWVudHM6IFhDaVQsIENhaVQsIExlVmlUCgojIyAxMC4zLiBWaVQgT3B0aW1pemFzeW9ubGFyxLEKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBTw7xsZXltYW4gw4dhZ2FuIEVmZSoqKgoKLSAgIFRyYWluaW5nOiBLbm93bGVkZ2UgRGlzdGlsbGF0aW9uLCBQcm9ncmVzc2l2ZSBMZWFybmluZywgVG9rZW4gTWVyZ2luZwotICAgTWVtb3J5IEVmZmljaWVuY3k6IEF0dGVudGlvbiBBcHByb3hpbWF0aW9ucywgTGluZWFyIENvbXBsZXhpdHkgTWV0aG9kcwotICAgSW5mZXJlbmNlOiBNb2RlbCBQcnVuaW5nLCBRdWFudGl6YXRpb24sIEhhcmR3YXJlIEFjY2VsZXJhdGlvbgotICAgRGF0YSBQaXBlbGluZTogRWZmaWNpZW50IFBhdGNoIEV4dHJhY3Rpb24sIE1lbW9yeSBNYW5hZ2VtZW50CgojIyAxMC40LiBWaVQgVXlndWxhbWFsYXLEsQoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIFPDvGxleW1hbiDDh2FnYW4gRWZlKioqCgotICAgR8O2csO8bnTDvCBTxLFuxLFmbGFuZMSxcm1hOiBJbWFnZU5ldCwgRmluZS1ncmFpbmVkIFJlY29nbml0aW9uLCBNdWx0aS1sYWJlbCBDbGFzc2lmaWNhdGlvbgotICAgTmVzbmUgVGVzcGl0aTogREVUUiwgRGVmb3JtYWJsZSBERVRSLCBWaVQtRlJDTk4KLSAgIFNlZ21lbnRhc3lvbjogU2VnRm9ybWVyLCBTRVRSLCBEZW5zZSBQcmVkaWN0aW9uCi0gICDDlnplbCBHw7ZyZXZsZXI6IERlcHRoIEVzdGltYXRpb24sIFBvc2UgRXN0aW1hdGlvbiwgM0QgVmlzaW9uCgojIDExLiBFeHBsYWluYWJsZSBBSSAoWEFJKSB7LnRhYnNldH0KCiMjIDExLjEuIFhBSSBUZW1lbGxlcmkKKioqRWdpdG1lbmxlcjogRmF5c2FsIFNheWzEsWssIFRheWxhbiBBa2fDvG4qKioKCi0gICBUZW1lbCBLYXZyYW1sYXI6IMWeZWZmYWZsxLFrLCBZb3J1bWxhbmFiaWxpcmxpaywgQcOnxLFrbGFuYWJpbGlybGlrLCBHw7x2ZW5pbGlybGlrCi0gICBNb2RlbCBBbmFsaXogVGlwbGVyaTogR2xvYmFsIEludGVycHJldGFiaWxpdHksIExvY2FsIEludGVycHJldGFiaWxpdHksIFBvc3QtaG9jIEFuYWx5c2lzCi0gICBYQUkgTWV0cmlrbGVyaTogRmlkZWxpdHksIENvbXByZWhlbnNpYmlsaXR5LCBDb21wbGV0ZW5lc3MsIENvbnNpc3RlbmN5CgojIyAxMS4yLiBHbG9iYWwgSW50ZXJwcmV0YWJpbGl0eSBZw7ZudGVtbGVyaQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgVGF5bGFuIEFrZ8O8bioqKgoKLSAgIEZlYXR1cmUgSW1wb3J0YW5jZTogUGVybXV0YXRpb24gSW1wb3J0YW5jZSwgU0hBUCBWYWx1ZXMsIEZlYXR1cmUgQWJsYXRpb24KLSAgIE1vZGVsIERpc3RpbGxhdGlvbjogUnVsZSBFeHRyYWN0aW9uLCBEZWNpc2lvbiBUcmVlcywgTGluZWFyIEFwcHJveGltYXRpb25zCi0gICBNb2RlbCBBZ25vc3RpYzogUGFydGlhbCBEZXBlbmRlbmNlIFBsb3RzLCBBY2N1bXVsYXRlZCBMb2NhbCBFZmZlY3RzCgojIyAxMS4zLiBMb2NhbCBJbnRlcnByZXRhYmlsaXR5IFnDtm50ZW1sZXJpCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBUYXlsYW4gQWtnw7xuKioqCgotICAgTElNRTogTG9jYWwgSW50ZXJwcmV0YWJsZSBNb2RlbC1hZ25vc3RpYyBFeHBsYW5hdGlvbnMsIFN1cGVyUGl4ZWxzCi0gICBTSEFQOiBTSGFwbGV5IEFkZGl0aXZlIGV4UGxhbmF0aW9ucywgS2VybmVsU0hBUCwgRGVlcFNIQVAKLSAgIENvdW50ZXJmYWN0dWFsczogRGlDRSwgQ291bnRlcmZhY3R1YWwgRXhwbGFuYXRpb25zLCBXaGF0LUlmIEFuYWx5c2lzCgojIyAxMS40LiBEZWVwIExlYXJuaW5nIFNwZXNpZmlrIFhBSQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgVGF5bGFuIEFrZ8O8bioqKgoKLSAgIEfDtnLDvG50w7wgTW9kZWxsZXJpOiBHcmFkLUNBTSwgSW50ZWdyYXRlZCBHcmFkaWVudHMsIE9jY2x1c2lvbiBTZW5zaXRpdml0eQotICAgTkxQIE1vZGVsbGVyaTogQXR0ZW50aW9uIFZpc3VhbGl6YXRpb24sIFRva2VuIEF0dHJpYnV0aW9uLCBJbnB1dCBTYWxpZW5jeQotICAgTXVsdGltb2RhbDogQ3Jvc3MtTW9kYWwgQXR0cmlidXRpb24sIFZpc2lvbi1MYW5ndWFnZSBFeHBsYW5hdGlvbnMKCiMjIDExLjUuIFhBSSBVeWd1bGFtYWxhcsSxCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBUYXlsYW4gQWtnw7xuKioqCgotICAgU2VrdMO2ciBVeWd1bGFtYWxhcsSxOiBIZWFsdGhjYXJlLCBGaW5hbmNlLCBBdXRvbm9tb3VzIFN5c3RlbXMKLSAgIFJlZ8O8bGFzeW9uIFV5dW1sdWx1Z3U6IEdEUFIsIEFJIEFjdCwgTW9kZWwgRG9jdW1lbnRhdGlvbgotICAgQmlhcyB2ZSBGYWlybmVzczogQmlhcyBEZXRlY3Rpb24sIE1vZGVsIERlYnVnZ2luZywgRmFpcm5lc3MgTWV0cmljcwoKIyAxMi4gTXVsdGltb2RhbCBMZWFybmluZyB7LnRhYnNldH0KCiMjIDEyLjEuIE11bHRpbW9kYWwgRm91bmRhdGlvbnMKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBTZWxpbSBUb3BjdSoqKgoKLSAgIFJlcHJlc2VudGF0aW9uczogQ3Jvc3MtbW9kYWwgTGVhcm5pbmcsIEpvaW50IEVtYmVkZGluZ3MsIE1vZGFsIEFsaWdubWVudAotICAgRnVzaW9uIFN0cmF0ZWdpZXM6IEVhcmx5IEZ1c2lvbiwgTGF0ZSBGdXNpb24sIEh5YnJpZCBGdXNpb24sIEFkYXB0aXZlIEZ1c2lvbgotICAgTGVhcm5pbmcgVGVjaG5pcXVlczogQ29udHJhc3RpdmUgTGVhcm5pbmcsIEtub3dsZWRnZSBEaXN0aWxsYXRpb24sIENyb3NzLW1vZGFsIFByZXRyYWluaW5nCi0gICBBcmNoaXRlY3R1cmFsIENvbXBvbmVudHM6IE1vZGFsIEVuY29kZXJzLCBGdXNpb24gTW9kdWxlcywgQ3Jvc3MtYXR0ZW50aW9uCgojIyAxMi4yLiBDcm9zcy1tb2RhbCBVbmRlcnN0YW5kaW5nCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgU2VsaW0gVG9wY3UqKioKCi0gICBUZXh0LVZpc2lvbiBJbnRlZ3JhdGlvbjogQ0xJUCwgQUxJR04sIEZsb3JlbmNlCi0gICBBdWRpby1WaXN1YWwgTGVhcm5pbmc6IEFWLUh1QkVSVCwgQXVkaW9DTElQCi0gICBUZXh0LUF1ZGlvIFN5c3RlbXM6IFdoaXNwZXIsIFdhdjJWZWMKLSAgIE11bHRpLXNlbnNvciBGdXNpb246IFBvaW50IENsb3VkcywgRGVwdGgsIFRoZXJtYWwKCiMjIDEyLjMuIE11bHRpbW9kYWwgQXBwbGljYXRpb25zCioqKkVnaXRtZW5sZXI6IElicmFoaW0gSGFsaWwgVGFuYm9nYSwgU2VsaW0gVG9wY3UqKioKCi0gICBDaGF0Ym90czogR1BULTRWLCBDbGF1ZGUgVmlzaW9uLCBMTGFWQQotICAgUXVlc3Rpb24gQW5zd2VyaW5nOiBWaXN1YWwgUUEsIEF1ZGlvIFFBLCBNdWx0aS1ob3AgUUEKLSAgIENvbnRlbnQgR2VuZXJhdGlvbjogVGV4dC10by1JbWFnZSwgVGV4dC10by1WaWRlbywgVGV4dC10by1BdWRpbwotICAgUmVhc29uaW5nOiBWaXN1YWwgUmVhc29uaW5nLCBTY2VuZSBVbmRlcnN0YW5kaW5nLCBDcm9zcy1tb2RhbCBJbmZlcmVuY2UKCiMjIDEyLjQuIEFkdmFuY2VkIFRvcGljcwoqKipFZ2l0bWVubGVyOiBJYnJhaGltIEhhbGlsIFRhbmJvZ2EsIFNlbGltIFRvcGN1KioqCgotICAgRmV3LXNob3QgTGVhcm5pbmc6IENyb3NzLW1vZGFsIEFkYXB0YXRpb24sIE1vZGFsIFRyYW5zZmVyCi0gICBaZXJvLXNob3QgTGVhcm5pbmc6IENyb3NzLW1vZGFsIEdlbmVyYWxpemF0aW9uCi0gICBDb250aW51YWwgTGVhcm5pbmc6IE1vZGFsIEluY3JlbWVudGFsIExlYXJuaW5nCi0gICBSb2J1c3RuZXNzOiBNb2RhbCBNaXNzaW5nLCBOb2lzZSBIYW5kbGluZwoKIyMgMTIuNS4gRXZhbHVhdGlvbiAmIE1ldHJpY3MKKioqRWdpdG1lbmxlcjogSWJyYWhpbSBIYWxpbCBUYW5ib2dhLCBTZWxpbSBUb3BjdSoqKgoKLSAgIFRhc2stU3BlY2lmaWMgTWV0cmljczogVlFBIFNjb3JlLCBST1VHRSwgQkxFVSwgQ0lERXIKLSAgIENyb3NzLW1vZGFsIE1ldHJpY3M6IFJldHJpZXZhbCBNZXRyaWNzLCBBbGlnbm1lbnQgU2NvcmVzCi0gICBIdW1hbiBFdmFsdWF0aW9uOiBVc2VyIFN0dWRpZXMsIEEvQiBUZXN0aW5nCi0gICBEaWFnbm9zdGljIFRvb2xzOiBBdHRyaWJ1dGlvbiBBbmFseXNpcywgRXJyb3IgQW5hbHlzaXMKCiMgMTMuIFRhYnVsYXIgVmVyaSBpbGUgRGVyaW4gw5ZncmVubWUgey50YWJzZXR9CgojIyAxMy4xLiBUYWJ1bGFyIERMIFRlbWVsbGVyaQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgTXVyYXQgQ2FwKioqCgotICAgVmVyaSDEsMWfbGVtZTogUHJlcHJvY2Vzc2luZywgRmVhdHVyZSBFbmdpbmVlcmluZywgRW5jb2RpbmcsIE5vcm1hbGl6YXRpb24KLSAgIE5ldXJhbCBOZXR3b3JrIFlhcMSxbGFyxLE6IE1MUCwgRW1iZWRkaW5nIExheWVycywgQ2F0ZWdvcmljYWwgSGFuZGxpbmcKLSAgIFByZXByb2Nlc3Npbmc6IE1pc3NpbmcgVmFsdWVzLCBPdXRsaWVycywgRmVhdHVyZSBTY2FsaW5nLCBFbmNvZGluZwotICAgQXJjaGl0ZWN0dXJlIERlc2lnbjogTGF5ZXIgU2l6ZSwgQWN0aXZhdGlvbiBGdW5jdGlvbnMsIFJlZ3VsYXJpemF0aW9uCgojIyAxMy4yLiBNb2Rlcm4gVGFidWxhciBNb2RlbGxlcgoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgTXVyYXQgQ2FwKioqCgotICAgVGFiTmV0OiBGZWF0dXJlIFNlbGVjdGlvbiwgU2VxdWVudGlhbCBQcm9jZXNzaW5nLCBJbnN0YW5jZS13aXNlIEZlYXR1cmUgU2VsZWN0aW9uCi0gICBUcmFuc2Zvcm1lci1iYXNlZDogVGFiVHJhbnNmb3JtZXIsIEZULVRyYW5zZm9ybWVyLCBTQUlOVAotICAgSHlicmlkIE1vZGVsbGVyOiBOT0RFLCBBZGFwdGVyQm9vc3QsIEF1dG9HbHVvbgotICAgRW50aXR5IEVtYmVkZGluZ3M6IENhdGVnb3JpY2FsIEVuY29kaW5nLCBGZWF0dXJlIEludGVyYWN0aW9ucwoKIyMgMTMuMy4gQWR2YW5jZWQgVGVjaG5pcXVlcwoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgTXVyYXQgQ2FwKioqCgotICAgRmVhdHVyZSBJbnRlcmFjdGlvbnM6IEF1dG9JbnQsIERDTiwgQ3Jvc3NOZXQKLSAgIEF0dGVudGlvbiBNZWNoYW5pc21zOiBTZWxmLUF0dGVudGlvbiwgQ3Jvc3MtRmVhdHVyZSBBdHRlbnRpb24KLSAgIFJlZ3VsYXJpemF0aW9uOiBEcm9wb3V0LCBMMS9MMiwgRmVhdHVyZSBEcm9wb3V0Ci0gICBFbnNlbWJsZSBNZXRob2RzOiBTdGFja2luZywgQmFnZ2luZywgTW9kZWwgRnVzaW9uCgojIyAxMy40LiBNb2RlbCBPcHRpbWl6YXRpb24KKioqRWdpdG1lbmxlcjogRmF5c2FsIFNheWzEsWssIE11cmF0IENhcCoqKgoKLSAgIEh5cGVycGFyYW1ldGVyIFR1bmluZzogR3JpZCBTZWFyY2gsIEJheWVzaWFuIE9wdGltaXphdGlvbgotICAgTGVhcm5pbmcgUmF0ZSBTY2hlZHVsaW5nOiBXYXJtLXVwLCBDeWNsaWMgTFIsIE9uZS1DeWNsZQotICAgTW9kZWwgQ29tcHJlc3Npb246IFBydW5pbmcsIFF1YW50aXphdGlvbiwgS25vd2xlZGdlIERpc3RpbGxhdGlvbgotICAgUGVyZm9ybWFuY2UgTWV0cmljczogUk1TRSwgTUFFLCBST0MtQVVDLCBQUi1BVUMKCiMjIDEzLjUuIEludGVycHJldGFiaWxpdHkgJiBEZXBsb3ltZW50CioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBNdXJhdCBDYXAqKioKCi0gICBNb2RlbCBJbnRlcnByZXRhdGlvbjogU0hBUCwgTElNRSwgRmVhdHVyZSBJbXBvcnRhbmNlCi0gICBDYWxpYnJhdGlvbjogUGxhdHQgU2NhbGluZywgSXNvdG9uaWMgUmVncmVzc2lvbgotICAgRGVwbG95bWVudDogTW9kZWwgU2VydmluZywgT25saW5lIExlYXJuaW5nCi0gICBNb25pdG9yaW5nOiBEcmlmdCBEZXRlY3Rpb24sIFBlcmZvcm1hbmNlIFRyYWNraW5nCgojIDE0LiBEZWVwIExlYXJuaW5nIGRvbmFuxLFtIGdlcmVrc2luaW1sZXJpIHsudGFic2V0fQoKIyMgMTQuMS4gR1BVIE1pbWFyaXNpIHZlIFNlw6dpbWkKKioqRWdpdG1lbmxlcjogRmF5c2FsIFNheWzEsWssIEFzbGFuIEVyZG9nYW4qKioKCi0gICBHUFUgQmlsZcWfZW5sZXJpOiBDVURBIENvcmVzLCBUZW5zb3IgQ29yZXMsIE1lbW9yeSBCYW5kd2lkdGgKLSAgIEdQVSBTZcOnaW0gS3JpdGVybGVyaTogVlJBTSwgQ29tcHV0ZSBDYXBhYmlsaXR5LCBQb3dlciBFZmZpY2llbmN5Ci0gICBNdWx0aS1HUFUgU2lzdGVtbGVyOiBOVkxpbmssIE11bHRpLUdQVSBUcmFpbmluZwotICAgR1BVIEFsdGVybmF0aWZsZXJpOiBUUFUsIEZQR0EsIE5ldXJhbCBQcm9jZXNzb3JzCgojIyAxNC4yLiBIYXJkd2FyZSBPcHRpbWl6YXN5b251CioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBBc2xhbiBFcmRvZ2FuKioqCgotICAgTWVtb3J5IE1hbmFnZW1lbnQ6IEdyYWRpZW50IENoZWNrcG9pbnRpbmcsIE1peGVkIFByZWNpc2lvbiBUcmFpbmluZwotICAgUGFyYWxsZWxpemF0aW9uOiBEYXRhIFBhcmFsbGVsLCBNb2RlbCBQYXJhbGxlbCwgUGlwZWxpbmUgUGFyYWxsZWwKLSAgIERpc3RyaWJ1dGVkIFRyYWluaW5nOiBQYXJhbWV0ZXIgU2VydmVyLCBSaW5nIEFsbFJlZHVjZQotICAgUmVzb3VyY2UgTW9uaXRvcmluZzogR1BVIFV0aWxpemF0aW9uLCBNZW1vcnkgVXNhZ2UsIFBvd2VyIENvbnN1bXB0aW9uCgojIyAxNC4zLiBDbG91ZCBJbmZyYXN0cnVjdHVyZQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgQXNsYW4gRXJkb2dhbioqKgoKLSAgIENsb3VkIFByb3ZpZGVyczogQVdTLCBHQ1AsIEF6dXJlIE1MCi0gICBJbnN0YW5jZSBUeXBlczogR1BVIEluc3RhbmNlcywgSGlnaCBNZW1vcnksIFNwb3QgSW5zdGFuY2VzCi0gICBPcmNoZXN0cmF0aW9uOiBLdWJlcm5ldGVzLCBEb2NrZXIsIENsb3VkIE1hbmFnZW1lbnQKLSAgIENvc3QgT3B0aW1pemF0aW9uOiBJbnN0YW5jZSBTZWxlY3Rpb24sIFNwb3QgU3RyYXRlZ2llcwoKIyMgMTQuNC4gRGVwbG95bWVudCBIYXJkd2FyZQoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgQXNsYW4gRXJkb2dhbioqKgoKLSAgIEVkZ2UgRGV2aWNlczogTW9iaWxlLCBJb1QsIEVtYmVkZGVkIFN5c3RlbXMKLSAgIE1vZGVsIE9wdGltaXphdGlvbjogUXVhbnRpemF0aW9uLCBQcnVuaW5nLCBEaXN0aWxsYXRpb24KLSAgIEluZmVyZW5jZSBBY2NlbGVyYXRpb246IFRlbnNvclJULCBPTk5YIFJ1bnRpbWUKLSAgIERlcGxveW1lbnQgU3RyYXRlZ2llczogQ1BVIHZzIEdQVSB2cyBFZGdlIFRQVQoKIyAxNS4gQ29tcHV0ZXIgVmlzaW9uIHsudGFic2V0fQojIyAxNS4xLiBUZW1lbCBHw7Zyw7xudMO8IMSwxZ9sZW1lCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBTw7xsZXltYW4gw4dhZ2FuIEVmZSoqKgoKR8O2csO8bnTDvCDDlm4gxLDFn2xlbWU6IEZpbHRyZWxlbWUsIE5vcm1hbGl6YXN5b24sIEF1Z21lbnRhdGlvbgpGZWF0dXJlIEV4dHJhY3Rpb246IFNJRlQsIFNVUkYsIE9SQiwgSE9HClNlZ21lbnRhdGlvbjogVGhyZXNob2xkLCBFZGdlIERldGVjdGlvbiwgV2F0ZXJzaGVkCk1vcnBob2xvZ2ljYWwgT3BlcmF0aW9uczogRXJvc2lvbiwgRGlsYXRpb24sIE9wZW5pbmcsIENsb3NpbmcKCiMjIDE1LjIuIERlcmluIMOWZ3Jlbm1lIE1pbWFyaWxlcmkKKioqRWdpdG1lbmxlcjogRmF5c2FsIFNheWzEsWssIFPDvGxleW1hbiDDh2FnYW4gRWZlKioqCgpDTk4gTWltYXJpbGVyaTogUmVzTmV0LCBFZmZpY2llbnROZXQsIFZpc2lvbiBUcmFuc2Zvcm1lcgpPYmplY3QgRGV0ZWN0aW9uOiBZT0xPLCBGYXN0ZXIgUi1DTk4sIERFVFIKU2VnbWVudGF0aW9uIE5ldHdvcmtzOiBVLU5ldCwgTWFzayBSLUNOTiwgRGVlcExhYgpNdWx0aS10YXNrIExlYXJuaW5nOiBNVEwgQXJjaGl0ZWN0dXJlcywgRmVhdHVyZSBTaGFyaW5nCgojIyAxNS4zLiAzRCBWaXNpb24KKioqRWdpdG1lbmxlcjogRmF5c2FsIFNheWzEsWssIFPDvGxleW1hbiDDh2FnYW4gRWZlKioqCgozRCBSZWNvbnN0cnVjdGlvbjogU2ZNLCBTTEFNLCBOZVJGClBvaW50IENsb3VkIFByb2Nlc3Npbmc6IFBvaW50TmV0KyssIERHQ05OCkRlcHRoIEVzdGltYXRpb246IE1vbm9jdWxhciwgU3RlcmVvIFZpc2lvbgozRCBPYmplY3QgRGV0ZWN0aW9uOiBWb3hlbE5ldCwgUG9pbnRQaWxsYXJzCgojIyAxNS40LiBWaWRlbyBVbmRlcnN0YW5kaW5nCioqKkVnaXRtZW5sZXI6IEZheXNhbCBTYXlsxLFrLCBTw7xsZXltYW4gw4dhZ2FuIEVmZSoqKgoKQWN0aW9uIFJlY29nbml0aW9uOiBJM0QsIFNsb3dGYXN0IE5ldHdvcmtzClRyYWNraW5nOiBTT1JULCBEZWVwU09SVCwgQnl0ZVRyYWNrClRlbXBvcmFsIE1vZGVsaW5nOiBMU1RNLCAzRCBDTk4sIFRyYW5zZm9ybWVyClZpZGVvIEdlbmVyYXRpb246IFZpZGVvIERpZmZ1c2lvbiwgTW90aW9uIFRyYW5zZmVyCgojIyAxNS41LiBBZHZhbmNlZCBUb3BpY3MKKioqRWdpdG1lbmxlcjogRmF5c2FsIFNheWzEsWssIFPDvGxleW1hbiDDh2FnYW4gRWZlKioqCgpGZXctc2hvdCBMZWFybmluZzogUHJvdG90eXBpY2FsIE5ldHdvcmtzLCBNQU1MClNlbGYtc3VwZXJ2aXNlZCBMZWFybmluZzogTW9DbywgRElOTywgTUFFCk11bHRpLW1vZGFsIExlYXJuaW5nOiBDTElQLCBGbG9yZW5jZSwgQ29DYQpOZXVyYWwgUmVuZGVyaW5nOiBOZVJGLCBHYXVHQU4sIFN0eWxlR0FOMwoKIyMgMTUuNi4gVXlndWxhbWFsYXIgdmUgRGVwbG95bWVudAoqKipFZ2l0bWVubGVyOiBGYXlzYWwgU2F5bMSxaywgU8O8bGV5bWFuIMOHYWdhbiBFZmUqKioKCk1vZGVsIE9wdGltaXphdGlvbjogUHJ1bmluZywgUXVhbnRpemF0aW9uLCBLRApFZGdlIERlcGxveW1lbnQ6IFRlbnNvclJULCBDb3JlTUwsIFRGTGl0ZQpQaXBlbGluZSBEZXNpZ246IERhdGEgRmxvdywgQ2FjaGluZywgQmF0Y2hpbmcKTW9uaXRvcmluZzogUGVyZm9ybWFuY2UgTWV0cmljcywgRmFpbHVyZSBDYXNlcwoKCg==